diff --git a/storybook/iframe.html b/storybook/iframe.html index 0c55ab4..5412011 100644 --- a/storybook/iframe.html +++ b/storybook/iframe.html @@ -57,4 +57,4 @@ console.warn('unable to connect to parent frame for connecting dev tools'); }

No Preview

Sorry, but you either have no stories or none are selected somehow.

     
-  
\ No newline at end of file +
\ No newline at end of file diff --git a/storybook/main.3f9d4653c82a8e2b2aae.bundle.js b/storybook/main.3f9d4653c82a8e2b2aae.bundle.js deleted file mode 100644 index 86194be..0000000 --- a/storybook/main.3f9d4653c82a8e2b2aae.bundle.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{187:function(module,exports,__webpack_require__){var _interopRequireWildcard=__webpack_require__(709),_interopRequireDefault=__webpack_require__(710);Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _classCallCheck2=_interopRequireDefault(__webpack_require__(711)),_createClass2=_interopRequireDefault(__webpack_require__(712)),_possibleConstructorReturn2=_interopRequireDefault(__webpack_require__(713)),_getPrototypeOf3=_interopRequireDefault(__webpack_require__(716)),_inherits2=_interopRequireDefault(__webpack_require__(717)),_react=_interopRequireWildcard(__webpack_require__(0)),_reactDom=_interopRequireDefault(__webpack_require__(45)),_View=_interopRequireDefault(__webpack_require__(720)),_bodymovin=_interopRequireDefault(__webpack_require__(719)),_default=function(_PureComponent){function Animation(){var _getPrototypeOf2,_this;(0,_classCallCheck2.default)(this,Animation);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(Animation)).call.apply(_getPrototypeOf2,[this].concat(args)))).animationDOMNode=null,_this.loadAnimation=function(props){_this.anim&&_this.anim.destroy(),_this.anim=_bodymovin.default.loadAnimation({container:_this.animationDOMNode,animationData:props.source,renderer:"svg",loop:props.loop||!1,autoplay:props.autoPlay})},_this.setAnimationDOMNode=function(ref){return _this.animationDOMNode=_reactDom.default.findDOMNode(ref)},_this}return(0,_inherits2.default)(Animation,_PureComponent),(0,_createClass2.default)(Animation,[{key:"componentDidMount",value:function(){this.loadAnimation(this.props)}},{key:"componentWillReceiveProps",value:function(nextProps){this.props.source&&nextProps.source&&this.props.source.nm!==nextProps.source.nm&&this.loadAnimation(nextProps)}},{key:"render",value:function(){return _react.default.createElement(_View.default,{style:this.props.style,ref:this.setAnimationDOMNode})}}]),Animation}(_react.PureComponent);exports.default=_default},321:function(module){module.exports={v:"4.9.0",fr:30,ip:0,op:38,w:315,h:280,nm:"new",ddd:0,assets:[],layers:[{ddd:0,ind:1,ty:4,nm:"bodyband Konturen",parent:3,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[157.5,129,0]},a:{a:0,k:[157.5,140,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:9,s:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,52],[14.5,52],[14.5,52.25],[-14.5,52.25]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-41],[14.5,-41],[14.5,52.25],[-14.5,52.25]],c:!0}]},{t:19.111328125}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.871,.702,.271,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[160.5,184],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"topband Konturen",parent:4,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[157.5,140,0]},a:{a:0,k:[157.5,140,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:16.777,s:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-14.5],[14.5,-14.5],[15.036,-14.207],[-13.964,-14.207]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-14.5],[14.5,-14.5],[14.5,14.5],[-14.5,14.5]],c:!0}]},{t:23}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.831,.396,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[160.5,128.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:3,ty:4,nm:"body Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:0,s:[0],e:[-13]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5.432,s:[-13],e:[17.85]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11.111,s:[17.85],e:[0]},{t:16.2958984375}]},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:0,s:[162.125,247.599,0],e:[162.125,145.599,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:8.148,s:[162.125,145.599,0],e:[162.125,236.099,0],to:[0,0,0],ti:[0,0,0]},{t:16.2958984375}]},a:{a:0,k:[162.125,225.099,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:.833},o:{x:.167,y:.167},n:"0p833_0p833_0p167_0p167",t:0,s:[{i:[[0,0],[0,0],[0,0],[-3.228,0],[0,0],[-2.75,.062]],o:[[0,0],[0,0],[4.75,-.188],[0,0],[3.228,0],[0,0]],v:[[56.25,46.5],[-54.75,46.5],[-55,46.688],[-49.658,46.5],[49.658,46.5],[56,46.688]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[-3.228,0],[0,0],[0,3.21]],o:[[0,0],[0,0],[0,3.21],[0,0],[3.228,0],[0,0]],v:[[55.5,-46.5],[-55.5,-46.5],[-55.5,40.688],[-49.658,46.5],[49.658,46.5],[55.5,40.688]],c:!0}]},{t:3.7041015625}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.008,.588,.847,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161.5,178.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:4,ty:4,nm:"top Konturen",sr:1,ks:{o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3.704,s:[0],e:[100]},{t:4.4443359375}]},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8.148,s:[10],e:[-23]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:14.074,s:[-23],e:[0]},{t:20}]},p:{a:1,k:[{i:{x:.937,y:.946},o:{x:.167,y:.167},n:"0p937_0p946_0p167_0p167",t:0,s:[160,177.5,0],e:[150,34.5,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.097,y:0},o:{x:.084,y:.101},n:"0p097_0_0p084_0p101",t:10.37,s:[150,34.5,0],e:[161,128.5,0],to:[0,0,0],ti:[0,0,0]},{t:20}]},a:{a:0,k:[161,128.5,0]},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},n:["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],t:0,s:[0,0,100],e:[58.621,58.621,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},n:["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],t:10.37,s:[58.621,58.621,100],e:[100,100,100]},{t:20}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[3.219,0],[0,0],[0,-3.204],[0,0],[-3.219,0],[0,0],[0,3.204],[0,0]],o:[[0,0],[-3.219,0],[0,0],[0,3.204],[0,0],[3.219,0],[0,0],[0,-3.204]],v:[[61.174,-14.5],[-61.174,-14.5],[-67,-8.7],[-67,8.7],[-61.174,14.5],[61.174,14.5],[67,8.7],[67,-8.7]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161,128.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:5,ty:4,nm:"schleife/new Konturen",parent:4,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[161,115,0]},a:{a:0,k:[161,115,0]},s:{a:1,k:[{i:{x:[.029,.029,.833],y:[1.656,1.656,-15.667]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p029_1p656_0p167_0p167","0p029_1p656_0p167_0p167","0p833_-15p667_0p167_16p667"],t:23,s:[0,0,100],e:[100,100,100]},{t:34}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[8.059,0],[1.667,-.428],[-.598,-1.849],[-1.278,0],[0,-4.797],[4.835,0],[0,0],[-8.693,2.139],[.541,1.87],[3.006,-6.366],[4.932,3.716],[1.157,-1.595],[-1.586,-3.998],[0,0],[0,4.796],[-4.834,0],[-2.606,-1.934],[-1.272,1.478],[5.256,0],[0,-7.995],[-8.058,0],[0,0],[0,0],[0,7.995]],o:[[-1.91,0],[.541,1.87],[1.145,-.282],[4.835,0],[0,4.796],[0,0],[2.097,-5.318],[-.598,-1.849],[-9.385,2.413],[-2.071,-4.386],[-1.272,1.478],[5.152,3.823],[0,0],[-4.834,0],[0,-4.797],[3.679,0],[1.157,-1.595],[-3.498,-2.637],[-8.058,0],[0,7.995],[0,0],[0,0],[8.059,0],[0,-7.995]],v:[[23.385,-14.5],[18.024,-13.831],[19.756,-8.259],[23.385,-8.7],[32.155,0],[23.385,8.7],[4.075,8.7],[19.756,-8.259],[18.024,-13.831],[0,3.422],[-10.322,-10.065],[-13.987,-5.478],[-4.083,8.7],[-23.385,8.7],[-32.154,0],[-23.385,-8.7],[-13.987,-5.478],[-10.322,-10.065],[-23.385,-14.5],[-38,0],[-23.385,14.5],[0,14.5],[23.385,14.5],[38,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.831,.396,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161,100.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:6,ty:4,nm:"shadow Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[162,236,0]},a:{a:0,k:[162,225,0]},s:{a:1,k:[{i:{x:[.115,.115,.833],y:[1,1,-5.19]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p115_1_0p167_0p167","0p115_1_0p167_0p167","0p833_-5p19_0p167_16p667"],t:0,s:[0,0,100],e:[100,100,100]},{t:13}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-53.02,0],[0,-3.313],[53.02,0],[0,3.313]],o:[[53.02,0],[0,3.313],[-53.02,0],[0,-3.313]],v:[[0,-6],[96,0],[0,6],[-96,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.945,.945,.945,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[162,225],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:7,ty:4,nm:"Ebene 12 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:9,s:[262],e:[0]},{t:29}]},p:{a:1,k:[{i:{x:0,y:.359},o:{x:.167,y:.167},n:"0_0p359_0p167_0p167",t:9,s:[157.5,140,0],e:[95.449,44.997,0],to:[0,0,0],ti:[0,0,0]},{t:29}]},a:{a:0,k:[95.449,44.997,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:9,s:[0,0,100],e:[100,100,100]},{t:29}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],v:[[-2.18,-3.777],[2.178,-3.775],[4.359,.001],[2.181,3.777],[-2.18,3.775],[-4.359,-.001]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[95.449,44.997],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:8,ty:4,nm:"Ebene 13 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[-63],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.564},o:{x:.167,y:.167},n:"0_0p564_0p167_0p167",t:3,s:[157.5,140,0],e:[248.067,112.75,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[248.067,112.75,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],v:[[-1.53,-6.63],[4.974,-4.639],[6.505,1.99],[1.532,6.63],[-4.972,4.64],[-6.505,-1.989]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[248.067,112.75],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:9,ty:4,nm:"Ebene 14 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:0,s:[-200],e:[0]},{t:20}]},p:{a:1,k:[{i:{x:0,y:.477},o:{x:.167,y:.167},n:"0_0p477_0p167_0p167",t:0,s:[157.5,140,0],e:[268.728,57.196,0],to:[0,0,0],ti:[0,0,0]},{t:20}]},a:{a:0,k:[120.728,247.196,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:0,s:[0,0,100],e:[100,100,100]},{t:20}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[-2.376,-3.394],[2.799,1.018],[-2.799,3.394]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.149,.784,.333,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[120.728,247.196],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:10,ty:4,nm:"Ebene 15 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8,s:[134],e:[0]},{t:28}]},p:{a:1,k:[{i:{x:0,y:.547},o:{x:.167,y:.167},n:"0_0p547_0p167_0p167",t:8,s:[157.5,140,0],e:[61.63,139.445,0],to:[0,0,0],ti:[0,0,0]},{t:28}]},a:{a:0,k:[61.63,139.445,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:8,s:[0,0,100],e:[100,100,100]},{t:28}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[4.37,-5.433],[4.286,5.433],[-4.37,1.022]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.149,.784,.333,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[61.63,139.445],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:11,ty:4,nm:"Ebene 16 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5,s:[74],e:[0]},{t:25}]},p:{a:1,k:[{i:{x:0,y:.387},o:{x:.167,y:.167},n:"0_0p387_0p167_0p167",t:5,s:[157.5,140,0],e:[183.561,32.661,0],to:[0,0,0],ti:[0,0,0]},{t:25}]},a:{a:0,k:[183.561,32.661,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:5,s:[0,0,100],e:[100,100,100]},{t:25}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-2.146,0],[0,-2.147],[2.146,0],[0,2.147]],o:[[2.146,0],[0,2.147],[-2.146,0],[0,-2.147]],v:[[-.001,-3.888],[3.886,0],[-.001,3.888],[-3.887,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.039,.314,.392,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[183.561,32.661],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:12,ty:4,nm:"Ebene 17 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:12,s:[29],e:[0]},{t:32}]},p:{a:1,k:[{i:{x:0,y:.463},o:{x:.167,y:.167},n:"0_0p463_0p167_0p167",t:12,s:[157.5,140,0],e:[44.65,36.558,0],to:[0,0,0],ti:[0,0,0]},{t:32}]},a:{a:0,k:[214.65,244.558,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:12,s:[0,0,100],e:[100,100,100]},{t:32}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-3.22,0],[0,-3.222],[3.22,0],[0,3.221]],o:[[3.22,0],[0,3.221],[-3.22,0],[0,-3.222]],v:[[0,-5.832],[5.829,0],[0,5.832],[-5.829,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.039,.314,.392,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[214.65,244.558],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:13,ty:4,nm:"Ebene 18 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[168],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.243},o:{x:.167,y:.167},n:"0_0p243_0p167_0p167",t:3,s:[157.5,140,0],e:[294.925,112.226,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[62.925,234.226,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.209,.131],[0,0],[0,0],[.174,-.142],[0,0],[0,0],[-.093,-.228],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.236],[0,0],[0,0]],o:[[0,0],[0,0],[-.012,-.223],[0,0],[0,0],[-.238,-.069],[0,0],[0,0],[-.135,.201],[0,0],[0,0],[.155,.19],[0,0],[0,0],[.232,-.083]],v:[[2.206,-.077],[1.1,-.771],[1.036,-2.051],[.544,-2.269],[-.45,-1.461],[-1.706,-1.819],[-2.062,-1.431],[-1.568,-.237],[-2.281,.82],[-2.008,1.278],[-.711,1.208],[.105,2.221],[.628,2.116],[.938,.878],[2.156,.446]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[62.916,234.223],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:14,ty:4,nm:"Ebene 19 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8,s:[-209],e:[0]},{t:28}]},p:{a:1,k:[{i:{x:0,y:.25},o:{x:.167,y:.167},n:"0_0p25_0p167_0p167",t:8,s:[157.5,140,0],e:[35.721,103.978,0],to:[0,0,0],ti:[0,0,0]},{t:28}]},a:{a:0,k:[35.721,103.978,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:8,s:[0,0,100],e:[100,100,100]},{t:28}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.209,.131],[0,0],[0,0],[.174,-.141],[0,0],[0,0],[-.094,-.227],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.237],[0,0],[0,0]],o:[[0,0],[0,0],[-.012,-.224],[0,0],[0,0],[-.238,-.068],[0,0],[0,0],[-.135,.2],[0,0],[0,0],[.155,.191],[0,0],[0,0],[.231,-.083]],v:[[2.206,-.078],[1.1,-.771],[1.036,-2.051],[.544,-2.27],[-.45,-1.461],[-1.706,-1.82],[-2.062,-1.432],[-1.568,-.238],[-2.281,.82],[-2.008,1.278],[-.711,1.207],[.105,2.22],[.628,2.115],[.938,.878],[2.156,.446]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[35.712,103.975],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:15,ty:4,nm:"Ebene 20 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:7,s:[275],e:[0]},{t:27}]},p:{a:1,k:[{i:{x:0,y:.09},o:{x:.167,y:.167},n:"0_0p09_0p167_0p167",t:7,s:[157.5,140,0],e:[261.12,26.218,0],to:[0,0,0],ti:[0,0,0]},{t:27}]},a:{a:0,k:[261.12,26.218,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:7,s:[0,0,100],e:[100,100,100]},{t:27}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.21,.131],[0,0],[0,0],[.174,-.141],[0,0],[0,0],[-.093,-.228],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.236],[0,0],[0,0]],o:[[0,0],[0,0],[-.011,-.223],[0,0],[0,0],[-.238,-.068],[0,0],[0,0],[-.135,.2],[0,0],[0,0],[.155,.19],[0,0],[0,0],[.232,-.082]],v:[[2.206,-.078],[1.099,-.771],[1.034,-2.052],[.543,-2.27],[-.45,-1.461],[-1.707,-1.82],[-2.062,-1.432],[-1.568,-.238],[-2.281,.82],[-2.009,1.278],[-.711,1.207],[.105,2.22],[.628,2.115],[.937,.878],[2.155,.445]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[261.111,26.215],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:16,ty:4,nm:"Ebene 21 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[132.9],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.326},o:{x:.167,y:.167},n:"0_0p326_0p167_0p167",t:3,s:[157.5,140,0],e:[268.337,196.938,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[252.337,213.938,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.411,.258],[0,0],[0,0],[.34,-.276],[0,0],[0,0],[-.184,-.446],[0,0],[0,0],[-.483,.027],[0,0],[0,0],[-.116,.463],[0,0],[0,0]],o:[[0,0],[0,0],[-.022,-.439],[0,0],[0,0],[-.466,-.133],[0,0],[0,0],[-.265,.392],[0,0],[0,0],[.302,.373],[0,0],[0,0],[.454,-.162]],v:[[4.322,-.152],[2.152,-1.51],[2.027,-4.017],[1.065,-4.447],[-.882,-2.861],[-3.344,-3.565],[-4.038,-2.804],[-3.072,-.465],[-4.468,1.607],[-3.935,2.505],[-1.392,2.366],[.207,4.35],[1.231,4.145],[1.837,1.72],[4.222,.874]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[252.32,213.932],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:17,ty:4,nm:"Ebene 22 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:13,s:[-266],e:[0]},{t:33}]},p:{a:1,k:[{i:{x:0,y:.337},o:{x:.167,y:.167},n:"0_0p337_0p167_0p167",t:13,s:[157.5,140,0],e:[133.395,26.515,0],to:[0,0,0],ti:[0,0,0]},{t:33}]},a:{a:0,k:[133.395,26.515,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:13,s:[0,0,100],e:[100,100,100]},{t:33}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.411,.258],[0,0],[0,0],[.34,-.277],[0,0],[0,0],[-.183,-.446],[0,0],[0,0],[-.484,.026],[0,0],[0,0],[-.116,.462],[0,0],[0,0]],o:[[0,0],[0,0],[-.022,-.438],[0,0],[0,0],[-.466,-.133],[0,0],[0,0],[-.264,.392],[0,0],[0,0],[.302,.373],[0,0],[0,0],[.454,-.162]],v:[[4.322,-.152],[2.152,-1.511],[2.027,-4.018],[1.065,-4.446],[-.882,-2.861],[-3.344,-3.565],[-4.039,-2.804],[-3.072,-.466],[-4.469,1.607],[-3.935,2.505],[-1.392,2.366],[.207,4.35],[1.231,4.145],[1.837,1.72],[4.222,.874]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[133.378,26.508],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:18,ty:4,nm:"Ebene 23 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5,s:[399],e:[0]},{t:25}]},p:{a:1,k:[{i:{x:0,y:.478},o:{x:.167,y:.167},n:"0_0p478_0p167_0p167",t:5,s:[157.5,140,0],e:[257.258,159.497,0],to:[0,0,0],ti:[0,0,0]},{t:25}]},a:{a:0,k:[257.258,159.497,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:5,s:[0,0,100],e:[100,100,100]},{t:25}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.721,-.604],[0,0],[0,0],[-.306,-.794],[0,0],[0,0],[-.932,.071],[0,0],[0,0],[-.241,.908],[0,0],[0,0],[.783,.491],[0,0],[0,0]],o:[[0,0],[0,0],[-.821,-.221],[0,0],[0,0],[-.524,.78],[0,0],[0,0],[.566,.723],[0,0],[0,0],[.869,-.333],[0,0],[0,0],[-.027,-.935]],v:[[2.281,-8.697],[-1.528,-5.509],[-6.23,-6.781],[-7.598,-5.261],[-5.84,-.719],[-8.615,3.403],[-7.627,5.141],[-2.732,4.758],[.255,8.578],[2.232,8.133],[3.5,3.356],[8.121,1.595],[8.357,-.417],[4.245,-2.989],[4.113,-7.897]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[257.231,159.483],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:19,ty:4,nm:"Ebene 24 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11,s:[-212],e:[0]},{t:31}]},p:{a:1,k:[{i:{x:0,y:.748},o:{x:.167,y:.167},n:"0_0p748_0p167_0p167",t:11,s:[157.5,140,0],e:[97.064,84.204,0],to:[0,0,0],ti:[0,0,0]},{t:31}]},a:{a:0,k:[97.064,84.204,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:11,s:[0,0,100],e:[100,100,100]},{t:31}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.675,-.565],[0,0],[0,0],[-.287,-.743],[0,0],[0,0],[-.872,.067],[0,0],[0,0],[-.226,.849],[0,0],[0,0],[.734,.459],[0,0],[0,0]],o:[[0,0],[0,0],[-.77,-.208],[0,0],[0,0],[-.491,.73],[0,0],[0,0],[.53,.677],[0,0],[0,0],[.814,-.312],[0,0],[0,0],[-.026,-.875]],v:[[2.135,-8.142],[-1.43,-5.157],[-5.831,-6.348],[-7.113,-4.926],[-5.467,-.674],[-8.064,3.186],[-7.141,4.812],[-2.557,4.454],[.239,8.029],[2.09,7.613],[3.277,3.141],[7.602,1.493],[7.822,-.391],[3.974,-2.799],[3.851,-7.393]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[97.039,84.191],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:20,ty:4,nm:"Ebene 25 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[-256],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.718},o:{x:.167,y:.167},n:"0_0p718_0p167_0p167",t:3,s:[157.5,140,0],e:[78.559,168.874,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[78.559,168.874,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.516,-.432],[0,0],[0,0],[-.219,-.569],[0,0],[0,0],[-.668,.051],[0,0],[0,0],[-.173,.65],[0,0],[0,0],[.562,.351],[0,0],[0,0]],o:[[0,0],[0,0],[-.588,-.159],[0,0],[0,0],[-.376,.559],[0,0],[0,0],[.405,.518],[0,0],[0,0],[.623,-.239],[0,0],[0,0],[-.02,-.669]],v:[[1.633,-6.229],[-1.096,-3.945],[-4.463,-4.856],[-5.442,-3.768],[-4.183,-.516],[-6.17,2.436],[-5.463,3.681],[-1.958,3.407],[.182,6.143],[1.598,5.824],[2.507,2.403],[5.814,1.142],[5.984,-.299],[3.04,-2.141],[2.945,-5.656]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[78.54,168.865],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:21,ty:4,nm:"Ebene 26 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:17,s:[50],e:[18]},{t:37}]},p:{a:1,k:[{i:{x:0,y:.897},o:{x:.167,y:.167},n:"0_0p897_0p167_0p167",t:17,s:[157.5,140,0],e:[155.771,214.44,0],to:[0,0,0],ti:[0,0,0]},{t:37}]},a:{a:0,k:[155.771,214.44,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.008,1.008,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,15.952]},n:["0p042_1p008_0p167_0p167","0p042_1p008_0p167_0p167","0p833_-26p778_0p167_15p952"],t:17,s:[0,0,100],e:[67,67,100]},{t:37}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[1.312,-.183],[0,0],[0,0],[.227,-1.177],[0,0],[0,0],[-1.168,-.61],[0,0],[0,0],[-.967,.904],[0,0],[0,0],[.57,1.171],[0,0],[0,0]],o:[[0,0],[0,0],[-.816,-.879],[0,0],[0,0],[-1.21,.541],[0,0],[0,0],[.137,1.287],[0,0],[0,0],[1.289,.251],[0,0],[0,0],[.665,-1.137]],v:[[10.542,-8.02],[3.609,-7.053],[-1.06,-12.084],[-3.829,-11.291],[-5.121,-4.55],[-11.514,-1.696],[-11.632,1.119],[-5.496,4.318],[-4.779,11.114],[-2.084,12.058],[2.999,7.295],[9.835,8.642],[11.62,6.414],[8.627,.269],[12.136,-5.695]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[155.828,214.455],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:22,ty:4,nm:"Ebene 27 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11,s:[-239],e:[0]},{t:31}]},p:{a:1,k:[{i:{x:0,y:.5},o:{x:.167,y:.167},n:"0_0p5_0p167_0p167",t:11,s:[157.5,140,0],e:[219.606,61.933,0],to:[0,0,0],ti:[0,0,0]},{t:31}]},a:{a:0,k:[219.606,61.933,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:11,s:[0,0,100],e:[100,100,100]},{t:31}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.946,-.131],[0,0],[0,0],[.163,-.849],[0,0],[0,0],[-.842,-.44],[0,0],[0,0],[-.697,.652],[0,0],[0,0],[.411,.845],[0,0],[0,0]],o:[[0,0],[0,0],[-.588,-.633],[0,0],[0,0],[-.872,.39],[0,0],[0,0],[.099,.928],[0,0],[0,0],[.929,.181],[0,0],[0,0],[.479,-.819]],v:[[7.601,-5.783],[2.602,-5.086],[-.764,-8.713],[-2.76,-8.141],[-3.693,-3.281],[-8.301,-1.223],[-8.387,.807],[-3.962,3.114],[-3.445,8.013],[-1.503,8.694],[2.163,5.259],[7.09,6.23],[8.378,4.624],[6.219,.195],[8.749,-4.107]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[219.647,61.944],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0}]}},323:function(module,__webpack_exports__,__webpack_require__){"use strict";var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(46),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),react_native__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(186),styles=react_native__WEBPACK_IMPORTED_MODULE_1__.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",minHeight:"100vh"}});__webpack_exports__.a=function(renderStory){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_native__WEBPACK_IMPORTED_MODULE_1__.View,{style:styles.root},renderStory())}},324:function(module,exports,__webpack_require__){__webpack_require__(325),__webpack_require__(441),module.exports=__webpack_require__(442)},442:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),function(module){var _storybook_addon_options__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(322),_storybook_react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(90),_decorator_centered__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(323);Object(_storybook_react__WEBPACK_IMPORTED_MODULE_1__.addDecorator)(_decorator_centered__WEBPACK_IMPORTED_MODULE_2__.a),Object(_storybook_addon_options__WEBPACK_IMPORTED_MODULE_0__.setOptions)({name:"Lottie",url:"https://react-native-web-community.github.io/react-native-web-lottie",goFullScreen:!1,showLeftPanel:!0,showDownPanel:!1,downPanelInRight:!1}),Object(_storybook_react__WEBPACK_IMPORTED_MODULE_1__.configure)(function(){__webpack_require__(708)},module)}.call(this,__webpack_require__(236)(module))},708:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),function(module){var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(46),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),lottie_react_native__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(187),lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(lottie_react_native__WEBPACK_IMPORTED_MODULE_1__),_storybook_react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(90);Object(_storybook_react__WEBPACK_IMPORTED_MODULE_2__.storiesOf)("Lottie",module).add("basic",function(){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default.a,{source:__webpack_require__(321),autoPlay:!0})}).add("loop",function(){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default.a,{source:__webpack_require__(321),loop:!0,autoPlay:!0})})}.call(this,__webpack_require__(236)(module))}},[[324,1,2]]]); -//# sourceMappingURL=main.3f9d4653c82a8e2b2aae.bundle.js.map \ No newline at end of file diff --git a/storybook/main.9de0a314e42e1192fb40.bundle.js b/storybook/main.9de0a314e42e1192fb40.bundle.js new file mode 100644 index 0000000..c14519e --- /dev/null +++ b/storybook/main.9de0a314e42e1192fb40.bundle.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{187:function(module,exports,__webpack_require__){var _interopRequireWildcard=__webpack_require__(709),_interopRequireDefault=__webpack_require__(710);Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _extends2=_interopRequireDefault(__webpack_require__(711)),_classCallCheck2=_interopRequireDefault(__webpack_require__(712)),_createClass2=_interopRequireDefault(__webpack_require__(713)),_possibleConstructorReturn2=_interopRequireDefault(__webpack_require__(714)),_getPrototypeOf3=_interopRequireDefault(__webpack_require__(717)),_inherits2=_interopRequireDefault(__webpack_require__(718)),_react=_interopRequireWildcard(__webpack_require__(0)),_reactDom=_interopRequireDefault(__webpack_require__(45)),_View=_interopRequireDefault(__webpack_require__(721)),_bodymovin=_interopRequireDefault(__webpack_require__(720)),Animation=function(_PureComponent){function Animation(){var _getPrototypeOf2,_this;(0,_classCallCheck2.default)(this,Animation);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(Animation)).call.apply(_getPrototypeOf2,[this].concat(args)))).animationDOMNode=null,_this.loadAnimation=function(props){_this.anim&&_this.anim.destroy(),_this.anim=_bodymovin.default.loadAnimation({container:_this.animationDOMNode,animationData:props.source,renderer:"svg",loop:props.loop||!1,autoplay:props.autoPlay})},_this.setAnimationDOMNode=function(ref){return _this.animationDOMNode=_reactDom.default.findDOMNode(ref)},_this}return(0,_inherits2.default)(Animation,_PureComponent),(0,_createClass2.default)(Animation,[{key:"componentDidMount",value:function(){this.loadAnimation(this.props)}},{key:"componentWillReceiveProps",value:function(nextProps){this.props.source&&nextProps.source&&this.props.source.nm!==nextProps.source.nm&&this.loadAnimation(nextProps)}},{key:"render",value:function(){return _react.default.createElement(_View.default,{style:this.props.style,ref:this.setAnimationDOMNode})}}]),Animation}(_react.PureComponent),_default=_react.default.forwardRef(function(props,ref){return _react.default.createElement(Animation,(0,_extends2.default)({},props,{ref:"function"==typeof ref?function(c){return ref(c&&c.anim)}:ref}))});exports.default=_default},321:function(module){module.exports={v:"4.9.0",fr:30,ip:0,op:38,w:315,h:280,nm:"new",ddd:0,assets:[],layers:[{ddd:0,ind:1,ty:4,nm:"bodyband Konturen",parent:3,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[157.5,129,0]},a:{a:0,k:[157.5,140,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:9,s:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,52],[14.5,52],[14.5,52.25],[-14.5,52.25]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-41],[14.5,-41],[14.5,52.25],[-14.5,52.25]],c:!0}]},{t:19.111328125}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.871,.702,.271,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[160.5,184],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"topband Konturen",parent:4,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[157.5,140,0]},a:{a:0,k:[157.5,140,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:16.777,s:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-14.5],[14.5,-14.5],[15.036,-14.207],[-13.964,-14.207]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0]],v:[[-14.5,-14.5],[14.5,-14.5],[14.5,14.5],[-14.5,14.5]],c:!0}]},{t:23}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.831,.396,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[160.5,128.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:3,ty:4,nm:"body Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:0,s:[0],e:[-13]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5.432,s:[-13],e:[17.85]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11.111,s:[17.85],e:[0]},{t:16.2958984375}]},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:0,s:[162.125,247.599,0],e:[162.125,145.599,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.667,y:1},o:{x:.333,y:0},n:"0p667_1_0p333_0",t:8.148,s:[162.125,145.599,0],e:[162.125,236.099,0],to:[0,0,0],ti:[0,0,0]},{t:16.2958984375}]},a:{a:0,k:[162.125,225.099,0]},s:{a:0,k:[100,100,100]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:.833},o:{x:.167,y:.167},n:"0p833_0p833_0p167_0p167",t:0,s:[{i:[[0,0],[0,0],[0,0],[-3.228,0],[0,0],[-2.75,.062]],o:[[0,0],[0,0],[4.75,-.188],[0,0],[3.228,0],[0,0]],v:[[56.25,46.5],[-54.75,46.5],[-55,46.688],[-49.658,46.5],[49.658,46.5],[56,46.688]],c:!0}],e:[{i:[[0,0],[0,0],[0,0],[-3.228,0],[0,0],[0,3.21]],o:[[0,0],[0,0],[0,3.21],[0,0],[3.228,0],[0,0]],v:[[55.5,-46.5],[-55.5,-46.5],[-55.5,40.688],[-49.658,46.5],[49.658,46.5],[55.5,40.688]],c:!0}]},{t:3.7041015625}]},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.008,.588,.847,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161.5,178.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:4,ty:4,nm:"top Konturen",sr:1,ks:{o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3.704,s:[0],e:[100]},{t:4.4443359375}]},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8.148,s:[10],e:[-23]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:14.074,s:[-23],e:[0]},{t:20}]},p:{a:1,k:[{i:{x:.937,y:.946},o:{x:.167,y:.167},n:"0p937_0p946_0p167_0p167",t:0,s:[160,177.5,0],e:[150,34.5,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.097,y:0},o:{x:.084,y:.101},n:"0p097_0_0p084_0p101",t:10.37,s:[150,34.5,0],e:[161,128.5,0],to:[0,0,0],ti:[0,0,0]},{t:20}]},a:{a:0,k:[161,128.5,0]},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},n:["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],t:0,s:[0,0,100],e:[58.621,58.621,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},n:["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],t:10.37,s:[58.621,58.621,100],e:[100,100,100]},{t:20}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[3.219,0],[0,0],[0,-3.204],[0,0],[-3.219,0],[0,0],[0,3.204],[0,0]],o:[[0,0],[-3.219,0],[0,0],[0,3.204],[0,0],[3.219,0],[0,0],[0,-3.204]],v:[[61.174,-14.5],[-61.174,-14.5],[-67,-8.7],[-67,8.7],[-61.174,14.5],[61.174,14.5],[67,8.7],[67,-8.7]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161,128.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:5,ty:4,nm:"schleife/new Konturen",parent:4,sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[161,115,0]},a:{a:0,k:[161,115,0]},s:{a:1,k:[{i:{x:[.029,.029,.833],y:[1.656,1.656,-15.667]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p029_1p656_0p167_0p167","0p029_1p656_0p167_0p167","0p833_-15p667_0p167_16p667"],t:23,s:[0,0,100],e:[100,100,100]},{t:34}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[8.059,0],[1.667,-.428],[-.598,-1.849],[-1.278,0],[0,-4.797],[4.835,0],[0,0],[-8.693,2.139],[.541,1.87],[3.006,-6.366],[4.932,3.716],[1.157,-1.595],[-1.586,-3.998],[0,0],[0,4.796],[-4.834,0],[-2.606,-1.934],[-1.272,1.478],[5.256,0],[0,-7.995],[-8.058,0],[0,0],[0,0],[0,7.995]],o:[[-1.91,0],[.541,1.87],[1.145,-.282],[4.835,0],[0,4.796],[0,0],[2.097,-5.318],[-.598,-1.849],[-9.385,2.413],[-2.071,-4.386],[-1.272,1.478],[5.152,3.823],[0,0],[-4.834,0],[0,-4.797],[3.679,0],[1.157,-1.595],[-3.498,-2.637],[-8.058,0],[0,7.995],[0,0],[0,0],[8.059,0],[0,-7.995]],v:[[23.385,-14.5],[18.024,-13.831],[19.756,-8.259],[23.385,-8.7],[32.155,0],[23.385,8.7],[4.075,8.7],[19.756,-8.259],[18.024,-13.831],[0,3.422],[-10.322,-10.065],[-13.987,-5.478],[-4.083,8.7],[-23.385,8.7],[-32.154,0],[-23.385,-8.7],[-13.987,-5.478],[-10.322,-10.065],[-23.385,-14.5],[-38,0],[-23.385,14.5],[0,14.5],[23.385,14.5],[38,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.831,.396,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[161,100.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:6,ty:4,nm:"shadow Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[162,236,0]},a:{a:0,k:[162,225,0]},s:{a:1,k:[{i:{x:[.115,.115,.833],y:[1,1,-5.19]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p115_1_0p167_0p167","0p115_1_0p167_0p167","0p833_-5p19_0p167_16p667"],t:0,s:[0,0,100],e:[100,100,100]},{t:13}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-53.02,0],[0,-3.313],[53.02,0],[0,3.313]],o:[[53.02,0],[0,3.313],[-53.02,0],[0,-3.313]],v:[[0,-6],[96,0],[0,6],[-96,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[.945,.945,.945,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[162,225],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:7,ty:4,nm:"Ebene 12 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:9,s:[262],e:[0]},{t:29}]},p:{a:1,k:[{i:{x:0,y:.359},o:{x:.167,y:.167},n:"0_0p359_0p167_0p167",t:9,s:[157.5,140,0],e:[95.449,44.997,0],to:[0,0,0],ti:[0,0,0]},{t:29}]},a:{a:0,k:[95.449,44.997,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:9,s:[0,0,100],e:[100,100,100]},{t:29}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],v:[[-2.18,-3.777],[2.178,-3.775],[4.359,.001],[2.181,3.777],[-2.18,3.775],[-4.359,-.001]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[95.449,44.997],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:8,ty:4,nm:"Ebene 13 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[-63],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.564},o:{x:.167,y:.167},n:"0_0p564_0p167_0p167",t:3,s:[157.5,140,0],e:[248.067,112.75,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[248.067,112.75,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],v:[[-1.53,-6.63],[4.974,-4.639],[6.505,1.99],[1.532,6.63],[-4.972,4.64],[-6.505,-1.989]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.012,.663,.957,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[248.067,112.75],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:9,ty:4,nm:"Ebene 14 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:0,s:[-200],e:[0]},{t:20}]},p:{a:1,k:[{i:{x:0,y:.477},o:{x:.167,y:.167},n:"0_0p477_0p167_0p167",t:0,s:[157.5,140,0],e:[268.728,57.196,0],to:[0,0,0],ti:[0,0,0]},{t:20}]},a:{a:0,k:[120.728,247.196,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:0,s:[0,0,100],e:[100,100,100]},{t:20}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[-2.376,-3.394],[2.799,1.018],[-2.799,3.394]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.149,.784,.333,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[120.728,247.196],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:10,ty:4,nm:"Ebene 15 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8,s:[134],e:[0]},{t:28}]},p:{a:1,k:[{i:{x:0,y:.547},o:{x:.167,y:.167},n:"0_0p547_0p167_0p167",t:8,s:[157.5,140,0],e:[61.63,139.445,0],to:[0,0,0],ti:[0,0,0]},{t:28}]},a:{a:0,k:[61.63,139.445,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:8,s:[0,0,100],e:[100,100,100]},{t:28}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[4.37,-5.433],[4.286,5.433],[-4.37,1.022]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.149,.784,.333,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[61.63,139.445],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:11,ty:4,nm:"Ebene 16 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5,s:[74],e:[0]},{t:25}]},p:{a:1,k:[{i:{x:0,y:.387},o:{x:.167,y:.167},n:"0_0p387_0p167_0p167",t:5,s:[157.5,140,0],e:[183.561,32.661,0],to:[0,0,0],ti:[0,0,0]},{t:25}]},a:{a:0,k:[183.561,32.661,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:5,s:[0,0,100],e:[100,100,100]},{t:25}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-2.146,0],[0,-2.147],[2.146,0],[0,2.147]],o:[[2.146,0],[0,2.147],[-2.146,0],[0,-2.147]],v:[[-.001,-3.888],[3.886,0],[-.001,3.888],[-3.887,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.039,.314,.392,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[183.561,32.661],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:12,ty:4,nm:"Ebene 17 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:12,s:[29],e:[0]},{t:32}]},p:{a:1,k:[{i:{x:0,y:.463},o:{x:.167,y:.167},n:"0_0p463_0p167_0p167",t:12,s:[157.5,140,0],e:[44.65,36.558,0],to:[0,0,0],ti:[0,0,0]},{t:32}]},a:{a:0,k:[214.65,244.558,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:12,s:[0,0,100],e:[100,100,100]},{t:32}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-3.22,0],[0,-3.222],[3.22,0],[0,3.221]],o:[[3.22,0],[0,3.221],[-3.22,0],[0,-3.222]],v:[[0,-5.832],[5.829,0],[0,5.832],[-5.829,0]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"st",c:{a:0,k:[.039,.314,.392,1]},o:{a:0,k:100},w:{a:0,k:1},lc:1,lj:1,ml:4,nm:"Kontur 1",mn:"ADBE Vector Graphic - Stroke"},{ty:"tr",p:{a:0,k:[214.65,244.558],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:13,ty:4,nm:"Ebene 18 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[168],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.243},o:{x:.167,y:.167},n:"0_0p243_0p167_0p167",t:3,s:[157.5,140,0],e:[294.925,112.226,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[62.925,234.226,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.209,.131],[0,0],[0,0],[.174,-.142],[0,0],[0,0],[-.093,-.228],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.236],[0,0],[0,0]],o:[[0,0],[0,0],[-.012,-.223],[0,0],[0,0],[-.238,-.069],[0,0],[0,0],[-.135,.201],[0,0],[0,0],[.155,.19],[0,0],[0,0],[.232,-.083]],v:[[2.206,-.077],[1.1,-.771],[1.036,-2.051],[.544,-2.269],[-.45,-1.461],[-1.706,-1.819],[-2.062,-1.431],[-1.568,-.237],[-2.281,.82],[-2.008,1.278],[-.711,1.208],[.105,2.221],[.628,2.116],[.938,.878],[2.156,.446]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[62.916,234.223],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:14,ty:4,nm:"Ebene 19 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:8,s:[-209],e:[0]},{t:28}]},p:{a:1,k:[{i:{x:0,y:.25},o:{x:.167,y:.167},n:"0_0p25_0p167_0p167",t:8,s:[157.5,140,0],e:[35.721,103.978,0],to:[0,0,0],ti:[0,0,0]},{t:28}]},a:{a:0,k:[35.721,103.978,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:8,s:[0,0,100],e:[100,100,100]},{t:28}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.209,.131],[0,0],[0,0],[.174,-.141],[0,0],[0,0],[-.094,-.227],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.237],[0,0],[0,0]],o:[[0,0],[0,0],[-.012,-.224],[0,0],[0,0],[-.238,-.068],[0,0],[0,0],[-.135,.2],[0,0],[0,0],[.155,.191],[0,0],[0,0],[.231,-.083]],v:[[2.206,-.078],[1.1,-.771],[1.036,-2.051],[.544,-2.27],[-.45,-1.461],[-1.706,-1.82],[-2.062,-1.432],[-1.568,-.238],[-2.281,.82],[-2.008,1.278],[-.711,1.207],[.105,2.22],[.628,2.115],[.938,.878],[2.156,.446]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[35.712,103.975],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:15,ty:4,nm:"Ebene 20 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:7,s:[275],e:[0]},{t:27}]},p:{a:1,k:[{i:{x:0,y:.09},o:{x:.167,y:.167},n:"0_0p09_0p167_0p167",t:7,s:[157.5,140,0],e:[261.12,26.218,0],to:[0,0,0],ti:[0,0,0]},{t:27}]},a:{a:0,k:[261.12,26.218,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:7,s:[0,0,100],e:[100,100,100]},{t:27}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.21,.131],[0,0],[0,0],[.174,-.141],[0,0],[0,0],[-.093,-.228],[0,0],[0,0],[-.247,.014],[0,0],[0,0],[-.059,.236],[0,0],[0,0]],o:[[0,0],[0,0],[-.011,-.223],[0,0],[0,0],[-.238,-.068],[0,0],[0,0],[-.135,.2],[0,0],[0,0],[.155,.19],[0,0],[0,0],[.232,-.082]],v:[[2.206,-.078],[1.099,-.771],[1.034,-2.052],[.543,-2.27],[-.45,-1.461],[-1.707,-1.82],[-2.062,-1.432],[-1.568,-.238],[-2.281,.82],[-2.009,1.278],[-.711,1.207],[.105,2.22],[.628,2.115],[.937,.878],[2.155,.445]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[261.111,26.215],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:16,ty:4,nm:"Ebene 21 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[132.9],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.326},o:{x:.167,y:.167},n:"0_0p326_0p167_0p167",t:3,s:[157.5,140,0],e:[268.337,196.938,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[252.337,213.938,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.411,.258],[0,0],[0,0],[.34,-.276],[0,0],[0,0],[-.184,-.446],[0,0],[0,0],[-.483,.027],[0,0],[0,0],[-.116,.463],[0,0],[0,0]],o:[[0,0],[0,0],[-.022,-.439],[0,0],[0,0],[-.466,-.133],[0,0],[0,0],[-.265,.392],[0,0],[0,0],[.302,.373],[0,0],[0,0],[.454,-.162]],v:[[4.322,-.152],[2.152,-1.51],[2.027,-4.017],[1.065,-4.447],[-.882,-2.861],[-3.344,-3.565],[-4.038,-2.804],[-3.072,-.465],[-4.468,1.607],[-3.935,2.505],[-1.392,2.366],[.207,4.35],[1.231,4.145],[1.837,1.72],[4.222,.874]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[252.32,213.932],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:17,ty:4,nm:"Ebene 22 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:13,s:[-266],e:[0]},{t:33}]},p:{a:1,k:[{i:{x:0,y:.337},o:{x:.167,y:.167},n:"0_0p337_0p167_0p167",t:13,s:[157.5,140,0],e:[133.395,26.515,0],to:[0,0,0],ti:[0,0,0]},{t:33}]},a:{a:0,k:[133.395,26.515,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:13,s:[0,0,100],e:[100,100,100]},{t:33}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.411,.258],[0,0],[0,0],[.34,-.277],[0,0],[0,0],[-.183,-.446],[0,0],[0,0],[-.484,.026],[0,0],[0,0],[-.116,.462],[0,0],[0,0]],o:[[0,0],[0,0],[-.022,-.438],[0,0],[0,0],[-.466,-.133],[0,0],[0,0],[-.264,.392],[0,0],[0,0],[.302,.373],[0,0],[0,0],[.454,-.162]],v:[[4.322,-.152],[2.152,-1.511],[2.027,-4.018],[1.065,-4.446],[-.882,-2.861],[-3.344,-3.565],[-4.039,-2.804],[-3.072,-.466],[-4.469,1.607],[-3.935,2.505],[-1.392,2.366],[.207,4.35],[1.231,4.145],[1.837,1.72],[4.222,.874]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[133.378,26.508],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:18,ty:4,nm:"Ebene 23 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:5,s:[399],e:[0]},{t:25}]},p:{a:1,k:[{i:{x:0,y:.478},o:{x:.167,y:.167},n:"0_0p478_0p167_0p167",t:5,s:[157.5,140,0],e:[257.258,159.497,0],to:[0,0,0],ti:[0,0,0]},{t:25}]},a:{a:0,k:[257.258,159.497,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:5,s:[0,0,100],e:[100,100,100]},{t:25}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.721,-.604],[0,0],[0,0],[-.306,-.794],[0,0],[0,0],[-.932,.071],[0,0],[0,0],[-.241,.908],[0,0],[0,0],[.783,.491],[0,0],[0,0]],o:[[0,0],[0,0],[-.821,-.221],[0,0],[0,0],[-.524,.78],[0,0],[0,0],[.566,.723],[0,0],[0,0],[.869,-.333],[0,0],[0,0],[-.027,-.935]],v:[[2.281,-8.697],[-1.528,-5.509],[-6.23,-6.781],[-7.598,-5.261],[-5.84,-.719],[-8.615,3.403],[-7.627,5.141],[-2.732,4.758],[.255,8.578],[2.232,8.133],[3.5,3.356],[8.121,1.595],[8.357,-.417],[4.245,-2.989],[4.113,-7.897]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[257.231,159.483],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:19,ty:4,nm:"Ebene 24 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11,s:[-212],e:[0]},{t:31}]},p:{a:1,k:[{i:{x:0,y:.748},o:{x:.167,y:.167},n:"0_0p748_0p167_0p167",t:11,s:[157.5,140,0],e:[97.064,84.204,0],to:[0,0,0],ti:[0,0,0]},{t:31}]},a:{a:0,k:[97.064,84.204,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:11,s:[0,0,100],e:[100,100,100]},{t:31}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.675,-.565],[0,0],[0,0],[-.287,-.743],[0,0],[0,0],[-.872,.067],[0,0],[0,0],[-.226,.849],[0,0],[0,0],[.734,.459],[0,0],[0,0]],o:[[0,0],[0,0],[-.77,-.208],[0,0],[0,0],[-.491,.73],[0,0],[0,0],[.53,.677],[0,0],[0,0],[.814,-.312],[0,0],[0,0],[-.026,-.875]],v:[[2.135,-8.142],[-1.43,-5.157],[-5.831,-6.348],[-7.113,-4.926],[-5.467,-.674],[-8.064,3.186],[-7.141,4.812],[-2.557,4.454],[.239,8.029],[2.09,7.613],[3.277,3.141],[7.602,1.493],[7.822,-.391],[3.974,-2.799],[3.851,-7.393]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[97.039,84.191],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:20,ty:4,nm:"Ebene 25 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:3,s:[-256],e:[0]},{t:23}]},p:{a:1,k:[{i:{x:0,y:.718},o:{x:.167,y:.167},n:"0_0p718_0p167_0p167",t:3,s:[157.5,140,0],e:[78.559,168.874,0],to:[0,0,0],ti:[0,0,0]},{t:23}]},a:{a:0,k:[78.559,168.874,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:3,s:[0,0,100],e:[100,100,100]},{t:23}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.516,-.432],[0,0],[0,0],[-.219,-.569],[0,0],[0,0],[-.668,.051],[0,0],[0,0],[-.173,.65],[0,0],[0,0],[.562,.351],[0,0],[0,0]],o:[[0,0],[0,0],[-.588,-.159],[0,0],[0,0],[-.376,.559],[0,0],[0,0],[.405,.518],[0,0],[0,0],[.623,-.239],[0,0],[0,0],[-.02,-.669]],v:[[1.633,-6.229],[-1.096,-3.945],[-4.463,-4.856],[-5.442,-3.768],[-4.183,-.516],[-6.17,2.436],[-5.463,3.681],[-1.958,3.407],[.182,6.143],[1.598,5.824],[2.507,2.403],[5.814,1.142],[5.984,-.299],[3.04,-2.141],[2.945,-5.656]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[78.54,168.865],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:21,ty:4,nm:"Ebene 26 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:17,s:[50],e:[18]},{t:37}]},p:{a:1,k:[{i:{x:0,y:.897},o:{x:.167,y:.167},n:"0_0p897_0p167_0p167",t:17,s:[157.5,140,0],e:[155.771,214.44,0],to:[0,0,0],ti:[0,0,0]},{t:37}]},a:{a:0,k:[155.771,214.44,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.008,1.008,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,15.952]},n:["0p042_1p008_0p167_0p167","0p042_1p008_0p167_0p167","0p833_-26p778_0p167_15p952"],t:17,s:[0,0,100],e:[67,67,100]},{t:37}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[1.312,-.183],[0,0],[0,0],[.227,-1.177],[0,0],[0,0],[-1.168,-.61],[0,0],[0,0],[-.967,.904],[0,0],[0,0],[.57,1.171],[0,0],[0,0]],o:[[0,0],[0,0],[-.816,-.879],[0,0],[0,0],[-1.21,.541],[0,0],[0,0],[.137,1.287],[0,0],[0,0],[1.289,.251],[0,0],[0,0],[.665,-1.137]],v:[[10.542,-8.02],[3.609,-7.053],[-1.06,-12.084],[-3.829,-11.291],[-5.121,-4.55],[-11.514,-1.696],[-11.632,1.119],[-5.496,4.318],[-4.779,11.114],[-2.084,12.058],[2.999,7.295],[9.835,8.642],[11.62,6.414],[8.627,.269],[12.136,-5.695]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[155.828,214.455],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0},{ddd:0,ind:22,ty:4,nm:"Ebene 27 Konturen",sr:1,ks:{o:{a:0,k:100},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},n:["0p833_0p833_0p167_0p167"],t:11,s:[-239],e:[0]},{t:31}]},p:{a:1,k:[{i:{x:0,y:.5},o:{x:.167,y:.167},n:"0_0p5_0p167_0p167",t:11,s:[157.5,140,0],e:[219.606,61.933,0],to:[0,0,0],ti:[0,0,0]},{t:31}]},a:{a:0,k:[219.606,61.933,0]},s:{a:1,k:[{i:{x:[.042,.042,.833],y:[1.006,1.006,-26.778]},o:{x:[.167,.167,.167],y:[.167,.167,16.667]},n:["0p042_1p006_0p167_0p167","0p042_1p006_0p167_0p167","0p833_-26p778_0p167_16p667"],t:11,s:[0,0,100],e:[100,100,100]},{t:31}]}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.946,-.131],[0,0],[0,0],[.163,-.849],[0,0],[0,0],[-.842,-.44],[0,0],[0,0],[-.697,.652],[0,0],[0,0],[.411,.845],[0,0],[0,0]],o:[[0,0],[0,0],[-.588,-.633],[0,0],[0,0],[-.872,.39],[0,0],[0,0],[.099,.928],[0,0],[0,0],[.929,.181],[0,0],[0,0],[.479,-.819]],v:[[7.601,-5.783],[2.602,-5.086],[-.764,-8.713],[-2.76,-8.141],[-3.693,-3.281],[-8.301,-1.223],[-8.387,.807],[-3.962,3.114],[-3.445,8.013],[-1.503,8.694],[2.163,5.259],[7.09,6.23],[8.378,4.624],[6.219,.195],[8.749,-4.107]],c:!0}},nm:"Pfad 1",mn:"ADBE Vector Shape - Group"},{ty:"fl",c:{a:0,k:[1,.729,.031,1]},o:{a:0,k:100},r:1,nm:"Fläche 1",mn:"ADBE Vector Graphic - Fill"},{ty:"tr",p:{a:0,k:[219.647,61.944],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transformieren"}],nm:"Gruppe 1",np:2,cix:2,ix:1,mn:"ADBE Vector Group"}],ip:0,op:150,st:0,bm:0}]}},323:function(module,__webpack_exports__,__webpack_require__){"use strict";var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(46),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),react_native__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(186),styles=react_native__WEBPACK_IMPORTED_MODULE_1__.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",minHeight:"100vh"}});__webpack_exports__.a=function(renderStory){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_native__WEBPACK_IMPORTED_MODULE_1__.View,{style:styles.root},renderStory())}},324:function(module,exports,__webpack_require__){__webpack_require__(325),__webpack_require__(441),module.exports=__webpack_require__(442)},442:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),function(module){var _storybook_addon_options__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(322),_storybook_react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(90),_decorator_centered__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(323);Object(_storybook_react__WEBPACK_IMPORTED_MODULE_1__.addDecorator)(_decorator_centered__WEBPACK_IMPORTED_MODULE_2__.a),Object(_storybook_addon_options__WEBPACK_IMPORTED_MODULE_0__.setOptions)({name:"Lottie",url:"https://react-native-web-community.github.io/react-native-web-lottie",goFullScreen:!1,showLeftPanel:!0,showDownPanel:!1,downPanelInRight:!1}),Object(_storybook_react__WEBPACK_IMPORTED_MODULE_1__.configure)(function(){__webpack_require__(708)},module)}.call(this,__webpack_require__(236)(module))},708:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),function(module){var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(46),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),lottie_react_native__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(187),lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(lottie_react_native__WEBPACK_IMPORTED_MODULE_1__),_storybook_react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(90);Object(_storybook_react__WEBPACK_IMPORTED_MODULE_2__.storiesOf)("Lottie",module).add("basic",function(){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default.a,{source:__webpack_require__(321),autoPlay:!0})}).add("loop",function(){return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(lottie_react_native__WEBPACK_IMPORTED_MODULE_1___default.a,{source:__webpack_require__(321),loop:!0,autoPlay:!0})})}.call(this,__webpack_require__(236)(module))}},[[324,1,2]]]); +//# sourceMappingURL=main.9de0a314e42e1192fb40.bundle.js.map \ No newline at end of file diff --git a/storybook/main.3f9d4653c82a8e2b2aae.bundle.js.map b/storybook/main.9de0a314e42e1192fb40.bundle.js.map similarity index 79% rename from storybook/main.3f9d4653c82a8e2b2aae.bundle.js.map rename to storybook/main.9de0a314e42e1192fb40.bundle.js.map index e69cf9b..805396d 100644 --- a/storybook/main.3f9d4653c82a8e2b2aae.bundle.js.map +++ b/storybook/main.9de0a314e42e1192fb40.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"main.3f9d4653c82a8e2b2aae.bundle.js","sources":["webpack:///../src/index.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport { View } from 'react-native';\nimport bodymovin from 'bodymovin';\n\nclass Animation extends PureComponent {\n animationDOMNode = null;\n\n componentDidMount() {\n this.loadAnimation(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.source && nextProps.source && this.props.source.nm !== nextProps.source.nm) {\n this.loadAnimation(nextProps);\n }\n }\n\n loadAnimation = props => {\n if (this.anim) {\n this.anim.destroy();\n }\n\n this.anim = bodymovin.loadAnimation({\n container: this.animationDOMNode,\n animationData: props.source,\n renderer: 'svg',\n loop: props.loop || false,\n autoplay: props.autoPlay,\n });\n };\n\n setAnimationDOMNode = ref => (this.animationDOMNode = ReactDOM.findDOMNode(ref));\n\n render() {\n return ;\n }\n}\n\nexport default Animation;\n"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"main.9de0a314e42e1192fb40.bundle.js","sources":["webpack:///../src/index.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport { View } from 'react-native';\nimport bodymovin from 'bodymovin';\n\nclass Animation extends PureComponent {\n animationDOMNode = null;\n\n componentDidMount() {\n this.loadAnimation(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.source && nextProps.source && this.props.source.nm !== nextProps.source.nm) {\n this.loadAnimation(nextProps);\n }\n }\n\n loadAnimation = props => {\n if (this.anim) {\n this.anim.destroy();\n }\n\n this.anim = bodymovin.loadAnimation({\n container: this.animationDOMNode,\n animationData: props.source,\n renderer: 'svg',\n loop: props.loop || false,\n autoplay: props.autoPlay,\n });\n };\n\n setAnimationDOMNode = ref => (this.animationDOMNode = ReactDOM.findDOMNode(ref));\n\n render() {\n return ;\n }\n}\n\nexport default React.forwardRef((props, ref) => (\n ref(c && c.anim) : ref} />\n));\n"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/storybook/runtime~main.3f9d4653c82a8e2b2aae.bundle.js b/storybook/runtime~main.9de0a314e42e1192fb40.bundle.js similarity index 97% rename from storybook/runtime~main.3f9d4653c82a8e2b2aae.bundle.js rename to storybook/runtime~main.9de0a314e42e1192fb40.bundle.js index 7d6c320..b92670a 100644 --- a/storybook/runtime~main.3f9d4653c82a8e2b2aae.bundle.js +++ b/storybook/runtime~main.9de0a314e42e1192fb40.bundle.js @@ -1,2 +1,2 @@ !function(modules){function webpackJsonpCallback(data){for(var moduleId,chunkId,chunkIds=data[0],moreModules=data[1],executeModules=data[2],i=0,resolves=[];iRa||(b.current=Qa[Ra],Qa[Ra]=null,Ra--)}function F(b,a){Qa[++Ra]=b.current,b.current=a}var G={},H={current:G},I={current:!1},Sa=G;function Ta(b,a){var c=b.type.contextTypes;if(!c)return G;var d=b.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===a)return d.__reactInternalMemoizedMaskedChildContext;var f,e={};for(f in c)e[f]=a[f];return d&&((b=b.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,b.__reactInternalMemoizedMaskedChildContext=e),e}function K(b){return null!=(b=b.childContextTypes)}function Ua(b){E(I),E(H)}function Va(b){E(I),E(H)}function Wa(b,a,c){H.current!==G&&p("168"),F(H,a),F(I,c)}function Xa(b,a,c){var d=b.stateNode;if(b=a.childContextTypes,"function"!=typeof d.getChildContext)return c;for(var e in d=d.getChildContext())e in b||p("108",B(a)||"Unknown",e);return aa({},c,d)}function Ya(b){var a=b.stateNode;return a=a&&a.__reactInternalMemoizedMergedChildContext||G,Sa=H.current,F(H,a),F(I,I.current),!0}function Za(b,a,c){var d=b.stateNode;d||p("169"),c?(a=Xa(b,a,Sa),d.__reactInternalMemoizedMergedChildContext=a,E(I),E(H),F(H,a)):E(I),F(I,c)}var $a=null,ab=null;function bb(b){return function(a){try{return b(a)}catch(c){}}}function db(b,a,c,d){this.tag=b,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function L(b,a,c,d){return new db(b,a,c,d)}function eb(b){return!(!(b=b.prototype)||!b.isReactComponent)}function hb(b,a){var c=b.alternate;return null===c?((c=L(b.tag,a,b.key,b.mode)).elementType=b.elementType,c.type=b.type,c.stateNode=b.stateNode,c.alternate=b,b.alternate=c):(c.pendingProps=a,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null),c.childExpirationTime=b.childExpirationTime,c.expirationTime=b.expirationTime,c.child=b.child,c.memoizedProps=b.memoizedProps,c.memoizedState=b.memoizedState,c.updateQueue=b.updateQueue,c.firstContextDependency=b.firstContextDependency,c.sibling=b.sibling,c.index=b.index,c.ref=b.ref,c}function ib(b,a,c,d,e,f){var g=2;if(d=b,"function"==typeof b)eb(b)&&(g=1);else if("string"==typeof b)g=5;else a:switch(b){case A:return M(c.children,e,f,a);case oa:return jb(c,3|e,f,a);case ka:return jb(c,2|e,f,a);case la:return(b=L(12,c,a,4|e)).elementType=la,b.type=la,b.expirationTime=f,b;case qa:return(b=L(13,c,a,e)).elementType=qa,b.type=qa,b.expirationTime=f,b;default:if("object"==typeof b&&null!==b)switch(b.$$typeof){case ma:g=10;break a;case na:g=9;break a;case pa:g=11;break a;case ra:g=14;break a;case sa:g=16,d=null;break a}p("130",null==b?b:typeof b,"")}return(a=L(g,c,a,e)).elementType=b,a.type=d,a.expirationTime=f,a}function M(b,a,c,d){return(b=L(7,b,d,a)).expirationTime=c,b}function jb(b,a,c,d){return b=L(8,b,d,a),a=0==(1&a)?ka:oa,b.elementType=a,b.type=a,b.expirationTime=c,b}function kb(b,a,c){return(b=L(6,b,null,a)).expirationTime=c,b}function lb(b,a,c){return(a=L(4,null!==b.children?b.children:[],b.key,a)).expirationTime=c,a.stateNode={containerInfo:b.containerInfo,pendingChildren:null,implementation:b.implementation},a}function mb(b,a){b.didError=!1;var c=b.earliestPendingTime;0===c?b.earliestPendingTime=b.latestPendingTime=a:ca&&(b.latestPendingTime=a),nb(a,b)}function ob(b,a){b.didError=!1,b.latestPingedTime>=a&&(b.latestPingedTime=0);var c=b.earliestPendingTime,d=b.latestPendingTime;c===a?b.earliestPendingTime=d===a?b.latestPendingTime=0:d:d===a&&(b.latestPendingTime=c),c=b.earliestSuspendedTime,d=b.latestSuspendedTime,0===c?b.earliestSuspendedTime=b.latestSuspendedTime=a:ca&&(b.latestSuspendedTime=a),nb(a,b)}function pb(b,a){var c=b.earliestPendingTime;return c>a&&(a=c),(b=b.earliestSuspendedTime)>a&&(a=b),a}function nb(b,a){var c=a.earliestSuspendedTime,d=a.latestSuspendedTime,e=a.earliestPendingTime,f=a.latestPingedTime;0===(e=0!==e?e:f)&&(0===b||db&&(b=c),a.nextExpirationTimeToWorkOn=e,a.expirationTime=b}var qb=!1;function rb(b){return{baseState:b,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function sb(b){return{baseState:b.baseState,firstUpdate:b.firstUpdate,lastUpdate:b.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function tb(b){return{expirationTime:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ub(b,a){null===b.lastUpdate?b.firstUpdate=b.lastUpdate=a:(b.lastUpdate.next=a,b.lastUpdate=a)}function N(b,a){var c=b.alternate;if(null===c){var d=b.updateQueue,e=null;null===d&&(d=b.updateQueue=rb(b.memoizedState))}else d=b.updateQueue,e=c.updateQueue,null===d?null===e?(d=b.updateQueue=rb(b.memoizedState),e=c.updateQueue=rb(c.memoizedState)):d=b.updateQueue=sb(e):null===e&&(e=c.updateQueue=sb(d));null===e||d===e?ub(d,a):null===d.lastUpdate||null===e.lastUpdate?(ub(d,a),ub(e,a)):(ub(d,a),e.lastUpdate=a)}function vb(b,a){var c=b.updateQueue;null===(c=null===c?b.updateQueue=rb(b.memoizedState):wb(b,c)).lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=a:(c.lastCapturedUpdate.next=a,c.lastCapturedUpdate=a)}function wb(b,a){var c=b.alternate;return null!==c&&a===c.updateQueue&&(a=b.updateQueue=sb(a)),a}function xb(b,a,c,d,e,f){switch(c.tag){case 1:return"function"==typeof(b=c.payload)?b.call(f,d,e):b;case 3:b.effectTag=-2049&b.effectTag|64;case 0:if(null==(e="function"==typeof(b=c.payload)?b.call(f,d,e):b))break;return aa({},d,e);case 2:qb=!0}return d}function yb(b,a,c,d,e){qb=!1;for(var f=(a=wb(b,a)).baseState,g=null,k=0,h=a.firstUpdate,l=f;null!==h;){var n=h.expirationTime;nq?(n=r,r=null):n=r.sibling;var t=u(e,r,h[q],k);if(null===t){null===r&&(r=n);break}b&&r&&null===t.alternate&&a(e,r),g=f(t,g,q),null===x?l=t:x.sibling=t,x=t,r=n}if(q===h.length)return c(e,r),l;if(null===r){for(;qx?(n=q,q=null):n=q.sibling;var v=u(e,q,t.value,k);if(null===v){q||(q=n);break}b&&q&&null===v.alternate&&a(e,q),g=f(v,g,x),null===r?l=v:r.sibling=v,r=v,q=n}if(t.done)return c(e,q),l;if(null===q){for(;!t.done;x++,t=h.next())null!==(t=y(e,t.value,k))&&(g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return l}for(q=d(e,q);!t.done;x++,t=h.next())null!==(t=w(q,e,x,t.value,k))&&(b&&null!==t.alternate&&q.delete(null===t.key?x:t.key),g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return b&&q.forEach(function(b){return a(e,b)}),l}return function(b,d,f,h){var k="object"==typeof f&&null!==f&&f.type===A&&null===f.key;k&&(f=f.props.children);var l="object"==typeof f&&null!==f;if(l)switch(f.$$typeof){case ia:a:{for(l=f.key,k=d;null!==k;){if(k.key===l){if(7===k.tag?f.type===A:k.elementType===f.type){c(b,k.sibling),(d=e(k,f.type===A?f.props.children:f.props)).ref=jc(b,k,f),d.return=b,b=d;break a}c(b,k);break}a(b,k),k=k.sibling}f.type===A?((d=M(f.props.children,b.mode,h,f.key)).return=b,b=d):((h=ib(f.type,f.key,f.props,null,b.mode,h)).ref=jc(b,d,f),h.return=b,b=h)}return g(b);case ja:a:{for(k=f.key;null!==d;){if(d.key===k){if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(b,d.sibling),(d=e(d,f.children||[])).return=b,b=d;break a}c(b,d);break}a(b,d),d=d.sibling}(d=lb(f,b.mode,h)).return=b,b=d}return g(b)}if("string"==typeof f||"number"==typeof f)return f=""+f,null!==d&&6===d.tag?(c(b,d.sibling),(d=e(d,f)).return=b,b=d):(c(b,d),(d=kb(f,b.mode,h)).return=b,b=d),g(b);if(ic(f))return J(b,d,f,h);if(ua(f))return v(b,d,f,h);if(l&&kc(b,f),void 0===f&&!k)switch(b.tag){case 1:case 0:p("152",(h=b.type).displayName||h.name||"Component")}return c(b,d)}}var mc=lc(!0),nc=lc(!1),oc=null,pc=null,qc=!1;function rc(b){switch(b.tag){case 5:case 6:return p("305"),b.stateNode=void 0,!0;default:return!1}}function sc(b){if(qc){var a=pc;if(a){var c=a;if(!rc(b)){if(p("305"),!(a=void 0)||!rc(b))return b.effectTag|=2,qc=!1,void(oc=b);a=oc;var d=L(5,null,null,0);d.elementType="DELETED",d.type="DELETED",d.stateNode=c,d.return=a,d.effectTag=8,null!==a.lastEffect?(a.lastEffect.nextEffect=d,a.lastEffect=d):a.firstEffect=a.lastEffect=d}oc=b,p("305"),pc=void 0}else b.effectTag|=2,qc=!1,oc=b}}var tc=ha.ReactCurrentOwner;function Q(b,a,c,d){a.child=null===b?nc(a,null,c,d):mc(a,b.child,c,d)}function uc(b,a,c,d,e){c=c.render;var f=a.ref;return Ib(a),d=c(d,f),a.effectTag|=1,Q(b,a,d,e),a.child}function vc(b,a,c,d,e,f){if(null===b){var g=c.type;return"function"!=typeof g||eb(g)||void 0!==g.defaultProps||null!==c.compare||void 0!==c.defaultProps?((b=ib(c.type,null,d,null,a.mode,f)).ref=a.ref,b.return=a,a.child=b):(a.tag=15,a.type=g,wc(b,a,g,d,e,f))}return g=b.child,e=c?Dc(b,a,c):null!==(a=xc(b,a,c))?a.sibling:null}return xc(b,a,c)}switch(a.expirationTime=0,a.tag){case 2:d=a.elementType,null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2),b=a.pendingProps;var e=Ta(a,H.current);if(Ib(a),e=d(b,e),a.effectTag|=1,"object"==typeof e&&null!==e&&"function"==typeof e.render&&void 0===e.$$typeof){if(a.tag=1,K(d)){var f=!0;Ya(a)}else f=!1;a.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"==typeof g&&Zb(a,d,g,b),e.updater=dc,a.stateNode=e,e._reactInternalFiber=a,hc(a,d,b,c),a=Bc(null,a,d,!0,f,c)}else a.tag=0,Q(null,a,e,c),a=a.child;return a;case 16:switch(e=a.elementType,null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2),f=a.pendingProps,b=function(b){var a=b._result;switch(b._status){case 1:return a;case 2:case 0:throw a;default:throw b._status=0,(a=(a=b._ctor)()).then(function(a){0===b._status&&(a=a.default,b._status=1,b._result=a)},function(a){0===b._status&&(b._status=2,b._result=a)}),b._result=a,a}}(e),a.type=b,e=a.tag=function(b){if("function"==typeof b)return eb(b)?1:0;if(null!=b){if((b=b.$$typeof)===pa)return 11;if(b===ra)return 14}return 2}(b),f=P(b,f),g=void 0,e){case 0:g=yc(null,a,b,f,c);break;case 1:g=Ac(null,a,b,f,c);break;case 11:g=uc(null,a,b,f,c);break;case 14:g=vc(null,a,b,P(b.type,f),d,c);break;default:p("306",b,"")}return g;case 0:return d=a.type,e=a.pendingProps,yc(b,a,d,e=a.elementType===d?e:P(d,e),c);case 1:return d=a.type,e=a.pendingProps,Ac(b,a,d,e=a.elementType===d?e:P(d,e),c);case 3:return Cc(a),null===(d=a.updateQueue)&&p("282"),e=null!==(e=a.memoizedState)?e.element:null,yb(a,d,a.pendingProps,null,c),(d=a.memoizedState.element)===e?a=xc(b,a,c):(Q(b,a,d,c),a=a.child),a;case 5:return Rb(a),null===b&&sc(a),d=a.type,e=a.pendingProps,f=null!==b?b.memoizedProps:null,g=e.children,Na(0,e)?g=null:null!==f&&Na(0,f)&&(a.effectTag|=16),zc(b,a),Q(b,a,g,c),a=a.child;case 6:return null===b&&sc(a),null;case 13:return Dc(b,a,c);case 4:return Pb(a,a.stateNode.containerInfo),d=a.pendingProps,null===b?a.child=mc(a,null,d,c):Q(b,a,d,c),a.child;case 11:return d=a.type,e=a.pendingProps,uc(b,a,d,e=a.elementType===d?e:P(d,e),c);case 7:return Q(b,a,a.pendingProps,c),a.child;case 8:case 12:return Q(b,a,a.pendingProps.children,c),a.child;case 10:a:{if(d=a.type._context,e=a.pendingProps,g=a.memoizedProps,Gb(a,f=e.value),null!==g){var k=g.value;if(0===(f=k===f&&(0!==k||1/k==1/f)||k!=k&&f!=f?0:0|("function"==typeof d._calculateChangedBits?d._calculateChangedBits(k,f):1073741823))){if(g.children===e.children&&!I.current){a=xc(b,a,c);break a}}else for(null!==(g=a.child)&&(g.return=a);null!==g;){if(null!==(k=g.firstContextDependency))do{if(k.context===d&&0!=(k.observedBits&f)){if(1===g.tag){var h=tb(c);h.tag=2,N(g,h)}g.expirationTimee&&(e=f),(k=g.childExpirationTime)>e&&(e=k),g=g.sibling;a.childExpirationTime=e}if(null!==R)return R;null!==c&&0==(1024&c.effectTag)&&(null===c.firstEffect&&(c.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=b.firstEffect),c.lastEffect=b.lastEffect),1=w?y=0:(-1===y||w component higher in the tree to provide a loading indicator or placeholder to display."+Pa(h))}gd=!0,l=Bb(l,h),g=k;do{switch(g.tag){case 3:g.effectTag|=2048,g.expirationTime=f,vb(g,f=Yc(g,l,f));break a;case 1:if(n=l,y=g.type,u=g.stateNode,0==(64&g.effectTag)&&("function"==typeof y.getDerivedStateFromError||null!==u&&"function"==typeof u.componentDidCatch&&(null===ad||!ad.has(u)))){g.effectTag|=2048,g.expirationTime=f,vb(g,f=$c(g,n,f));break a}}g=g.return}while(null!==g)}R=ld(e);continue}d=!0,Zc(J)}}break}if(ed=!1,Fb=Eb=Db=dd.currentDispatcher=null,d)S=null,b.finishedWork=null;else if(null!==R)b.finishedWork=null;else{if(null===(d=b.current.alternate)&&p("281"),S=null,gd){if(e=b.latestPendingTime,f=b.latestSuspendedTime,g=b.latestPingedTime,0!==e&&ea?0:a)):(b.pendingCommitExpirationTime=c,b.finishedWork=d)}}function Pc(b,a){for(var c=b.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if("function"==typeof c.type.getDerivedStateFromError||"function"==typeof d.componentDidCatch&&(null===ad||!ad.has(d)))return N(c,b=$c(c,b=Bb(a,b),1073741823)),void cc(c,1073741823);break;case 3:return N(c,b=Yc(c,b=Bb(a,b),1073741823)),void cc(c,1073741823)}c=c.return}3===b.tag&&(N(b,c=Yc(b,c=Bb(a,b),1073741823)),cc(b,1073741823))}function ac(b,a){return ed?b=hd?1073741823:T:1&a.mode?(b=rd?1073741822-10*(1+((1073741822-b+15)/10|0)):1073741822-25*(1+((1073741822-b+500)/25|0)),null!==S&&b===T&&--b):b=1073741823,b}function pd(b,a,c){var d=b.pingCache;null!==d&&d.delete(a),null!==S&&T===c?S=null:(a=b.earliestSuspendedTime,d=b.latestSuspendedTime,0!==a&&c<=a&&c>=d&&(b.didError=!1,(0===(a=b.latestPingedTime)||a>c)&&(b.latestPingedTime=c),nb(c,b),0!==(c=b.expirationTime)&&sd(b,c)))}function td(b,a){b.expirationTimeT&&kd(),mb(b,a),ed&&!hd&&S===b||sd(b,b.expirationTime),ud>vd&&(ud=0,p("185")))}var V=null,W=null,wd=0,xd=void 0,yd=!1,X=null,Y=0,zd=!1,Ad=null,Bd=!1,Cd=!1,rd=!1,Dd=null,Ed=ca.unstable_now(),Z=1073741822-(Ed/10|0),Gd=Z,vd=50,ud=0,Hd=null;function Id(){Z=1073741822-((ca.unstable_now()-Ed)/10|0)}function Jd(b,a){if(0!==wd){if(ab.expirationTime&&(b.expirationTime=a),yd||(Bd?Cd&&(X=b,Y=1073741823,Md(b,1073741823,!1)):1073741823===a?Nd(1073741823,!1):Jd(b,a))}function Od(){var b=0,a=null;if(null!==W)for(var c=W,d=V;null!==d;){var e=d.expirationTime;if(0===e){if((null===c||null===W)&&p("244"),d===d.nextScheduledRoot){V=W=d.nextScheduledRoot=null;break}if(d===V)V=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else{if(d===W){(W=c).nextScheduledRoot=V,d.nextScheduledRoot=null;break}c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null}d=c.nextScheduledRoot}else{if(e>b&&(b=e,a=d),d===W)break;if(1073741823===b)break;c=d,d=d.nextScheduledRoot}}X=a,Y=b}var Pd=!1;function od(){return!!Pd||!!ca.unstable_shouldYield()&&(Pd=!0)}function Kd(){try{if(!od()&&null!==V){Id();var b=V;do{var a=b.expirationTime;0!==a&&Z<=a&&(b.nextExpirationTimeToWorkOn=Z),b=b.nextScheduledRoot}while(b!==V)}Nd(0,!0)}finally{Pd=!1}}function Nd(b,a){if(Od(),a)for(Id(),Gd=Z;null!==X&&0!==Y&&b<=Y&&!(Pd&&Z>Y);)Md(X,Y,Z>Y),Od(),Id(),Gd=Z;else for(;null!==X&&0!==Y&&b<=Y;)Md(X,Y,!1),Od();if(a&&(wd=0,xd=null),0!==Y&&Jd(X,Y),ud=0,Hd=null,null!==Dd)for(b=Dd,Dd=null,a=0;a=c&&(null===Dd?Dd=[d]:Dd.push(d),d._defer))return b.finishedWork=a,void(b.expirationTime=0);b.finishedWork=null,b===Hd?ud++:(Hd=b,ud=0),hd=ed=!0,b.current===a&&p("177"),0===(c=b.pendingCommitExpirationTime)&&p("261"),b.pendingCommitExpirationTime=0,d=a.expirationTime;var e=a.childExpirationTime;for(d=e>d?e:d,b.didError=!1,0===d?(b.earliestPendingTime=0,b.latestPendingTime=0,b.earliestSuspendedTime=0,b.latestSuspendedTime=0,b.latestPingedTime=0):(dd?b.earliestPendingTime=b.latestPendingTime=0:b.earliestPendingTime>d&&(b.earliestPendingTime=b.latestPendingTime)),0===(e=b.earliestSuspendedTime)?mb(b,d):de&&mb(b,d)),nb(0,b),dd.current=null,1q?a:q)&&(ad=null),b.expirationTime=a,b.finishedWork=null}function Zc(b){null===X&&p("246"),X.expirationTime=0,zd||(zd=!0,Ad=b)}function Rd(b,a,c,d){var e=a.current,f=$b();e=ac(f,e),f=a.current;a:if(c){b:{2===va(c=c._reactInternalFiber)&&1===c.tag||p("170");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(K(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);p("171"),g=void 0}if(1===c.tag){var k=c.type;if(K(k)){c=Xa(c,k,g);break a}}c=g}else c=G;return null===a.context?a.context=c:a.pendingContext=c,a=d,(d=tb(e)).payload={element:b},null!==(a=void 0===a?null:a)&&(d.callback=a),bc(),N(f,d),cc(f,e),e}var Sd=aa||function(b){for(var a=1;athis.width||y>this.height)return null;for(var node=this.lastChild;node;){var hit=node.hitTest(x,y);if(hit)return hit;node=node.previousSibling}return null},render:function(){var node=this.firstChild,context=this.context;for(context.setTransform(resolution,0,0,resolution,0,0),context.clearRect(0,0,this.width,this.height);node;)node.renderTo(context,resolution,0,0,resolution,0,0),node=node.nextSibling;this.refreshCursor()}});CanvasSurface.tagName="canvas",module.exports=CanvasSurface},function(module,exports,__webpack_require__){var Class=__webpack_require__(8),Base=__webpack_require__(305),Path=__webpack_require__(303);module.exports=Class(Base,{base_initialize:Base.prototype.initialize,initialize:function(path,width,height){this.base_initialize(),this.width=width,this.height=height,null!=path&&this.draw(path)},draw:function(path,width,height){return path instanceof Path||(path=new Path(path)),this.path=path,this._commands=path.toCommands(),null!=width&&(this.width=width),null!=height&&(this.height=height),this.invalidate()},localHitTest:function(x,y){if(!this._fill)return null;if(null==this.width||null==this.height){var context=Base._genericContext,commands=this._commands;if(!commands)return null;context.beginPath();for(var i=0,l=commands.length;i0&&y>0&&xwidth&&(width=w)}return this.width=width,this.height=l?1.1*l*em:0,this.invalidate()},localHitTest:function(x,y){return this._fill&&x>0&&y>0&&x-1;)offsetRows+="\n";textPath.string=offsetRows+textPath.string,this.element.path="m0,0l1,0"}style=(element=element.cloneNode(!0)).style,element.coordorigin="0,0",element.coordsize="10000,10000",style.left="0px",style.top="0px",style.width="10000px",style.height="10000px",style.rotation=0,element.removeChild(element.firstChild);var canvas=new Surface(1,1),group=new Group,body=element.ownerDocument.body;canvas.inject(body),group.element.appendChild(element),group.inject(canvas);var ebb=element.getBoundingClientRect(),cbb=canvas.toElement().getBoundingClientRect();return canvas.eject(),this.left=ebb.left-cbb.left,this.top=ebb.top-cbb.top,this.width=ebb.right-ebb.left,this.height=ebb.bottom-ebb.top,this.right=ebb.right-cbb.left,this.bottom=ebb.bottom-cbb.top,this._transform(),this}})},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;_interopRequireDefault(__webpack_require__(12));var _StyleSheet=_interopRequireDefault(__webpack_require__(5)),_TouchableOpacity=_interopRequireDefault(__webpack_require__(311)),_Text=_interopRequireDefault(__webpack_require__(165)),_react=(__webpack_require__(1),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Button=function(_Component){var subClass,superClass;function Button(){return _Component.apply(this,arguments)||this}return superClass=_Component,(subClass=Button).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,Button.prototype.render=function(){var _this$props=this.props,accessibilityLabel=_this$props.accessibilityLabel,color=_this$props.color,disabled=_this$props.disabled,onPress=_this$props.onPress,testID=_this$props.testID,title=_this$props.title;return _react.default.createElement(_TouchableOpacity.default,{accessibilityLabel:accessibilityLabel,accessibilityRole:"button",disabled:disabled,onPress:onPress,style:[styles.button,color&&{backgroundColor:color},disabled&&styles.buttonDisabled],testID:testID},_react.default.createElement(_Text.default,{style:[styles.text,disabled&&styles.textDisabled]},title))},Button}(_react.Component);Button.propTypes={};var styles=_StyleSheet.default.create({button:{backgroundColor:"#2196F3",borderRadius:2},text:{color:"#fff",fontWeight:"500",padding:8,textAlign:"center",textTransform:"uppercase"},buttonDisabled:{backgroundColor:"#dfdfdf"},textDisabled:{color:"#a1a1a1"}}),_default=Button;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_PooledClass=(obj=__webpack_require__(312))&&obj.__esModule?obj:{default:obj};var twoArgumentPooler=_PooledClass.default.twoArgumentPooler;function BoundingDimensions(width,height){this.width=width,this.height=height}BoundingDimensions.prototype.destructor=function(){this.width=null,this.height=null},BoundingDimensions.getPooledFromElement=function(element){return BoundingDimensions.getPooled(element.offsetWidth,element.offsetHeight)},_PooledClass.default.addPoolingTo(BoundingDimensions,twoArgumentPooler);var _default=BoundingDimensions;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_PooledClass=(obj=__webpack_require__(312))&&obj.__esModule?obj:{default:obj};var twoArgumentPooler=_PooledClass.default.twoArgumentPooler;function Position(left,top){this.left=left,this.top=top}Position.prototype.destructor=function(){this.left=null,this.top=null},_PooledClass.default.addPoolingTo(Position,twoArgumentPooler);var _default=Position;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";module.exports={extractSingleTouch:function(nativeEvent){var touches=nativeEvent.touches,changedTouches=nativeEvent.changedTouches,hasTouches=touches&&touches.length>0,hasChangedTouches=changedTouches&&changedTouches.length>0;return!hasTouches&&hasChangedTouches?changedTouches[0]:hasTouches?touches[0]:nativeEvent}}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_createElement=(_interopRequireDefault(__webpack_require__(12)),_interopRequireDefault(__webpack_require__(36))),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_UIManager=_interopRequireDefault(__webpack_require__(33)),_View=_interopRequireDefault(__webpack_require__(7)),_react=(_interopRequireDefault(__webpack_require__(13)),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props2,["color","disabled","onChange","onValueChange","style","value"]),fakeControl=_react.default.createElement(_View.default,{style:[styles.fakeControl,value&&styles.fakeControlChecked,value&&color&&{backgroundColor:color,borderColor:color},disabled&&styles.fakeControlDisabled,value&&disabled&&styles.fakeControlCheckedAndDisabled]}),nativeControl=(0,_createElement.default)("input",{checked:value,disabled:disabled,onChange:this._handleChange,ref:this._setCheckboxRef,style:[styles.nativeControl,styles.cursorInherit],type:"checkbox"});return _react.default.createElement(_View.default,_extends({},other,{style:[styles.root,style,disabled&&styles.cursorDefault]}),fakeControl,nativeControl)},CheckBox}(_react.Component);CheckBox.displayName="CheckBox",CheckBox.defaultProps={disabled:!1,value:!1},CheckBox.propTypes={};var styles=_StyleSheet.default.create({root:{cursor:"pointer",height:16,userSelect:"none",width:16},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},fakeControl:{alignItems:"center",backgroundColor:"#fff",borderColor:"#657786",borderRadius:2,borderStyle:"solid",borderWidth:2,height:"100%",justifyContent:"center",width:"100%"},fakeControlChecked:{backgroundColor:"#009688",backgroundImage:'url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")',backgroundRepeat:"no-repeat",borderColor:"#009688"},fakeControlDisabled:{borderColor:"#CCD6DD"},fakeControlCheckedAndDisabled:{backgroundColor:"#AAB8C2",borderColor:"#AAB8C2"},nativeControl:function(target){for(var i=1;iMath.random(),this._resetData()}FillRateHelper.addListener=function(callback){return(0,_warning.default)(null!==_sampleRate,"Call `FillRateHelper.setSampleRate` before `addListener`."),_listeners.push(callback),{remove:function(){_listeners=_listeners.filter(function(listener){return callback!==listener})}}},FillRateHelper.setSampleRate=function(sampleRate){_sampleRate=sampleRate},FillRateHelper.setMinSampleCount=function(minSampleCount){_minSampleCount=minSampleCount};var _proto=FillRateHelper.prototype;return _proto.activate=function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=(0,_performanceNow.default)())},_proto.deactivateAndFlush=function(){if(this._enabled){var start=this._samplesStartTime;if(null!=start)if(this._info.sample_count<_minSampleCount)this._resetData();else{var total_time_spent=(0,_performanceNow.default)()-start,info=function(target){for(var i=1;i0&&(blankTop=Math.min(visibleLength,Math.max(0,firstFrame.offset-offset)));for(var blankBottom=0,last=state.last,lastFrame=this._getFrameMetrics(last);last>=state.first&&(!lastFrame||!lastFrame.inLayout);)lastFrame=this._getFrameMetrics(last),last--;if(lastFrame&&last0?(this._anyBlankStartTime=now,this._info.any_blank_speed_sum+=scrollSpeed,this._info.any_blank_count++,this._info.pixels_blank+=pixels_blank,blankness>.5&&(this._mostlyBlankStartTime=now,this._info.mostly_blank_count++)):(scrollSpeed<.01||Math.abs(dOffset)<1)&&this.deactivateAndFlush(),blankness},_proto.enabled=function(){return this._enabled},_proto._resetData=function(){this._anyBlankStartTime=null,this._info=new Info,this._mostlyBlankStartTime=null,this._samplesStartTime=null},FillRateHelper}();exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var performanceNow,performance=__webpack_require__(676);performanceNow=performance.now?function(){return performance.now()}:function(){return Date.now()},module.exports=performanceNow},function(module,exports,__webpack_require__){"use strict";var performance;__webpack_require__(3).canUseDOM&&(performance=window.performance||window.msPerformance||window.webkitPerformance),module.exports=performance||{}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_invariant=(obj=__webpack_require__(2))&&obj.__esModule?obj:{default:obj};function _objectSpread(target){for(var i=1;i=0&&bottom<=viewportHeight&&bottom>top}(top,bottom,viewportHeight))return!0;var pixels=function(top,bottom,viewportHeight){var visibleHeight=Math.min(bottom,viewportHeight)-Math.max(top,0);return Math.max(0,visibleHeight)}(top,bottom,viewportHeight);return 100*(viewAreaMode?pixels/viewportHeight:pixels/itemLength)>=viewablePercentThreshold}var _default=function(){function ViewabilityHelper(config){void 0===config&&(config={viewAreaCoveragePercentThreshold:0}),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=config}var _proto=ViewabilityHelper.prototype;return _proto.dispose=function(){this._timers.forEach(clearTimeout)},_proto.computeViewableItems=function(itemCount,scrollOffset,viewportHeight,getFrameMetrics,renderRange){var _this$_config=this._config,itemVisiblePercentThreshold=_this$_config.itemVisiblePercentThreshold,viewAreaCoveragePercentThreshold=_this$_config.viewAreaCoveragePercentThreshold,viewAreaMode=null!=viewAreaCoveragePercentThreshold,viewablePercentThreshold=viewAreaMode?viewAreaCoveragePercentThreshold:itemVisiblePercentThreshold;(0,_invariant.default)(null!=viewablePercentThreshold&&null!=itemVisiblePercentThreshold!=(null!=viewAreaCoveragePercentThreshold),"Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold");var viewableIndices=[];if(0===itemCount)return viewableIndices;var firstVisible=-1,_ref=renderRange||{first:0,last:itemCount-1},first=_ref.first,last=_ref.last;(0,_invariant.default)(last0)firstVisible=idx,_isViewable(viewAreaMode,viewablePercentThreshold,top,bottom,viewportHeight,metrics.length)&&viewableIndices.push(idx);else if(firstVisible>=0)break}}return viewableIndices},_proto.onUpdate=function(itemCount,scrollOffset,viewportHeight,getFrameMetrics,createViewToken,onViewableItemsChanged,renderRange){var _this=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==itemCount&&getFrameMetrics(0)){var viewableIndices=[];if(itemCount&&(viewableIndices=this.computeViewableItems(itemCount,scrollOffset,viewportHeight,getFrameMetrics,renderRange)),this._viewableIndices.length!==viewableIndices.length||!this._viewableIndices.every(function(v,ii){return v===viewableIndices[ii]}))if(this._viewableIndices=viewableIndices,this._config.minimumViewTime){var handle=setTimeout(function(){_this._timers.delete(handle),_this._onUpdateSync(viewableIndices,onViewableItemsChanged,createViewToken)},this._config.minimumViewTime);this._timers.add(handle)}else this._onUpdateSync(viewableIndices,onViewableItemsChanged,createViewToken)}},_proto.resetViewableIndices=function(){this._viewableIndices=[]},_proto.recordInteraction=function(){this._hasInteracted=!0},_proto._onUpdateSync=function(viewableIndicesToCheck,onViewableItemsChanged,createViewToken){var _this2=this;viewableIndicesToCheck=viewableIndicesToCheck.filter(function(ii){return _this2._viewableIndices.includes(ii)});var prevItems=this._viewableItems,nextItems=new Map(viewableIndicesToCheck.map(function(ii){var viewable=createViewToken(ii,!0);return[viewable.key,viewable]})),changed=[],_iterator=nextItems,_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref2;if(_isArray){if(_i>=_iterator.length)break;_ref2=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref2=_i.value}var _ref4=_ref2,key=_ref4[0],viewable=_ref4[1];prevItems.has(key)||changed.push(viewable)}var _iterator2=prevItems,_isArray2=Array.isArray(_iterator2),_i2=0;for(_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;){var _ref3;if(_isArray2){if(_i2>=_iterator2.length)break;_ref3=_iterator2[_i2++]}else{if((_i2=_iterator2.next()).done)break;_ref3=_i2.value}var _ref5=_ref3;key=_ref5[0],viewable=_ref5[1];nextItems.has(key)||changed.push(_objectSpread({},viewable,{isViewable:!1}))}changed.length>0&&(this._viewableItems=nextItems,onViewableItemsChanged({viewableItems:Array.from(nextItems.values()),changed:changed,viewabilityConfig:this._config}))},ViewabilityHelper}();exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.computeWindowedRenderLimits=computeWindowedRenderLimits,exports.elementsThatOverlapOffsets=elementsThatOverlapOffsets,exports.newRangeCount=newRangeCount,exports.default=void 0;var obj,_invariant=(obj=__webpack_require__(2))&&obj.__esModule?obj:{default:obj};function elementsThatOverlapOffsets(offsets,itemCount,getFrameMetrics){for(var out=[],outLength=0,ii=0;ii=offsets[kk]&&(out[kk]=ii,outLength++,kk===offsets.length-1))return(0,_invariant.default)(outLength===offsets.length,"bad offsets input, should be in increasing order: %s",JSON.stringify(offsets)),out;return out}function newRangeCount(prev,next){return next.last-next.first+1-Math.max(0,1+Math.min(next.last,prev.last)-Math.max(next.first,prev.first))}function computeWindowedRenderLimits(props,prev,getFrameMetricsApprox,scrollMetrics){var data=props.data,getItemCount=props.getItemCount,maxToRenderPerBatch=props.maxToRenderPerBatch,windowSize=props.windowSize,itemCount=getItemCount(data);if(0===itemCount)return prev;var offset=scrollMetrics.offset,velocity=scrollMetrics.velocity,visibleLength=scrollMetrics.visibleLength,visibleBegin=Math.max(0,offset),visibleEnd=visibleBegin+visibleLength,overscanLength=(windowSize-1)*visibleLength,fillPreference=velocity>1?"after":velocity<-1?"before":"none",overscanBegin=Math.max(0,visibleBegin-.5*overscanLength),overscanEnd=Math.max(0,visibleEnd+.5*overscanLength);if(getFrameMetricsApprox(itemCount-1).offset=overscanLast);){var maxNewCells=newCellCount>=maxToRenderPerBatch,firstWillAddMore=first<=prev.first||first>prev.last,firstShouldIncrement=first>overscanFirst&&(!maxNewCells||!firstWillAddMore),lastWillAddMore=last>=prev.last||last=first&&first>=0&&last=overscanFirst&&last<=overscanLast&&first<=visible.first&&last>=visible.last))throw new Error("Bad window calculation "+JSON.stringify({first:first,last:last,itemCount:itemCount,overscanFirst:overscanFirst,overscanLast:overscanLast,visible:visible}));return{first:first,last:last}}var _default={computeWindowedRenderLimits:computeWindowedRenderLimits,elementsThatOverlapOffsets:elementsThatOverlapOffsets,newRangeCount:newRangeCount};exports.default=_default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _default=function(){var _console;return(_console=console).log.apply(_console,arguments)};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _ensureComponentIsNative=_interopRequireDefault(__webpack_require__(315)),_Image=_interopRequireDefault(__webpack_require__(163)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_View=_interopRequireDefault(__webpack_require__(7)),_react=(_interopRequireDefault(__webpack_require__(13)),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["children","style","imageStyle","imageRef"]);return _react.default.createElement(_View.default,{ref:this._captureRef,style:style},_react.default.createElement(_Image.default,_extends({},props,{ref:imageRef,style:[_StyleSheet.default.absoluteFill,{width:style.width,height:style.height,zIndex:-1},imageStyle]})),children)},ImageBackground}(_react.Component);ImageBackground.defaultProps={style:{}},ImageBackground.propTypes={};var _default=ImageBackground;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _View=_interopRequireDefault(__webpack_require__(7)),_react=(__webpack_require__(1),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));_interopRequireDefault(__webpack_require__(13));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["behavior","contentContainerStyle","keyboardVerticalOffset"]));return _react.default.createElement(_View.default,_extends({onLayout:this.onLayout},rest))},KeyboardAvoidingView}(_react.Component);KeyboardAvoidingView.defaultProps={keyboardVerticalOffset:0},KeyboardAvoidingView.propTypes={};var _default=KeyboardAvoidingView;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(316))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=__webpack_require__(0);__webpack_require__(1);var StaticRenderer=function(_Component){var subClass,superClass;function StaticRenderer(){return _Component.apply(this,arguments)||this}superClass=_Component,(subClass=StaticRenderer).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass;var _proto=StaticRenderer.prototype;return _proto.shouldComponentUpdate=function(nextProps){return nextProps.shouldUpdate},_proto.render=function(){return this.props.render()},StaticRenderer}(_react.Component);exports.default=StaticRenderer,StaticRenderer.propTypes={},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_react=(obj=__webpack_require__(0))&&obj.__esModule?obj:{default:obj};function _objectSpread(target){for(var i=1;i2?_len-2:0),_key=2;_key<_len;_key++)children[_key-2]=arguments[_key];return null==originalRef||null==cloneRef?_react.default.cloneElement.apply(_react.default,[element,config].concat(children)):"function"!=typeof originalRef?(__DEV__&&console.warn("Cloning an element with a ref that will be overwritten because it is not a function. Use a composable callback-style ref instead. Ignoring ref: "+originalRef),_react.default.cloneElement.apply(_react.default,[element,config].concat(children))):_react.default.cloneElement.apply(_react.default,[element,_objectSpread({},config,{ref:function(component){cloneRef(component),originalRef(component)}})].concat(children))};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(51))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;_interopRequireDefault(__webpack_require__(12));var _react=__webpack_require__(0),_createElement=_interopRequireDefault(__webpack_require__(36));__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var PickerItem=function(_Component){var subClass,superClass;function PickerItem(){return _Component.apply(this,arguments)||this}return superClass=_Component,(subClass=PickerItem).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,PickerItem.prototype.render=function(){var _this$props=this.props,color=_this$props.color,label=_this$props.label,testID=_this$props.testID,value=_this$props.value,style={color:color};return(0,_createElement.default)("option",{style:style,testID:testID,value:value},label)},PickerItem}(_react.Component);exports.default=PickerItem,PickerItem.propTypes={},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_=_interopRequireDefault(__webpack_require__(319));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _default=function(props,propName,componentName){var prop=props[propName],error=null;return _react.default.Children.forEach(prop,function(child){child.type!==_.default.Item&&(error=new Error("`Picker` children must be of type `Picker.Item`."))}),error};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _ColorPropType=_interopRequireDefault(__webpack_require__(12));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var _default=function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props2,["color","indeterminate","progress","trackColor","style"]),percentageProgress=100*progress;return _react.default.createElement(_View.default,_extends({},other,{accessibilityRole:"progressbar","aria-valuemax":"100","aria-valuemin":"0","aria-valuenow":indeterminate?null:percentageProgress,style:[styles.track,style,{backgroundColor:trackColor}]}),_react.default.createElement(_View.default,{ref:this._setProgressRef,style:[styles.progress,indeterminate&&styles.animation,{backgroundColor:color}]}))},ProgressBar}(_react.Component);ProgressBar.displayName="ProgressBar",ProgressBar.defaultProps={color:"#1976D2",indeterminate:!1,progress:0,trackColor:"transparent"},ProgressBar.propTypes={};var styles=_StyleSheet.default.create({track:{height:5,overflow:"hidden",userSelect:"none",zIndex:0},progress:{height:"100%",zIndex:-1},animation:{animationDuration:"1s",animationName:[{"0%":{transform:[{translateX:"-100%"}]},"100%":{transform:[{translateX:"400%"}]}}],animationTimingFunction:"linear",animationIterationCount:"infinite"}}),_default=(0,_applyNativeMethods.default)(ProgressBar);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_View=_interopRequireDefault(__webpack_require__(7));_interopRequireDefault(__webpack_require__(13));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["style"]);return _react.default.createElement(_View.default,_extends({},rest,{style:_StyleSheet.default.compose(styles.root,style)}))},SafeAreaView}(_react.default.Component);SafeAreaView.displayName="SafeAreaView",SafeAreaView.propTypes={};var styles=_StyleSheet.default.create({root:{paddingTop:"env(safe-area-inset-top)",paddingRight:"env(safe-area-inset-right)",paddingBottom:"env(safe-area-inset-bottom)",paddingLeft:"env(safe-area-inset-left)"}}),_default=SafeAreaView;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(692))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _UnimplementedView=_interopRequireDefault(__webpack_require__(51)),_Platform=_interopRequireDefault(__webpack_require__(86)),_react=_interopRequireDefault(__webpack_require__(0)),_VirtualizedSectionList=(_interopRequireDefault(__webpack_require__(87)),_interopRequireDefault(__webpack_require__(693)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=section.data.length+1))return-1===itemIndex?{section:section,key:key+":header",index:null,header:!0,trailingSection:this.props.sections[ii+1]}:itemIndex===section.data.length?{section:section,key:key+":footer",index:null,header:!1,trailingSection:this.props.sections[ii+1]}:{section:section,key:key+":"+(section.keyExtractor||defaultKeyExtractor)(section.data[itemIndex],itemIndex),index:itemIndex,leadingItem:section.data[itemIndex-1],leadingSection:this.props.sections[ii-1],trailingItem:section.data[itemIndex+1],trailingSection:this.props.sections[ii+1]};itemIndex-=section.data.length+1}},_proto._getSeparatorComponent=function(index,info){if(!(info=info||this._subExtractor(index)))return null;var ItemSeparatorComponent=info.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,SectionSeparatorComponent=this.props.SectionSeparatorComponent,isLastItemInList=index===this.state.childProps.getItemCount()-1,isLastItemInSection=info.index===info.section.data.length-1;return SectionSeparatorComponent&&isLastItemInSection?SectionSeparatorComponent:!ItemSeparatorComponent||isLastItemInSection||isLastItemInList?null:ItemSeparatorComponent},_proto._computeState=function(props){var offset=props.ListHeaderComponent?1:0,stickyHeaderIndices=[],itemCount=props.sections.reduce(function(v,section){return stickyHeaderIndices.push(v+offset),v+section.data.length+2},0);return{childProps:_objectSpread({},props,{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:props.sections,getItemCount:function(){return itemCount},getItem:getItem,keyExtractor:this._keyExtractor,onViewableItemsChanged:props.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:props.stickySectionHeadersEnabled?stickyHeaderIndices:void 0})}},_proto.UNSAFE_componentWillReceiveProps=function(nextProps){this.setState(this._computeState(nextProps))},_proto.render=function(){return _react.default.createElement(_VirtualizedList.default,_extends({},this.state.childProps,{ref:this._captureRef}))},VirtualizedSectionList}(_react.default.PureComponent);VirtualizedSectionList.defaultProps=_objectSpread({},_VirtualizedList.default.defaultProps,{data:[]});var ItemWithSeparator=function(_React$Component){function ItemWithSeparator(){for(var _this2,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this2=_React$Component.call.apply(_React$Component,[this].concat(args))||this).state={separatorProps:{highlighted:!1,leadingItem:_this2.props.item,leadingSection:_this2.props.leadingSection,section:_this2.props.section,trailingItem:_this2.props.trailingItem,trailingSection:_this2.props.trailingSection},leadingSeparatorProps:{highlighted:!1,leadingItem:_this2.props.leadingItem,leadingSection:_this2.props.leadingSection,section:_this2.props.section,trailingItem:_this2.props.item,trailingSection:_this2.props.trailingSection}},_this2._separators={highlight:function(){["leading","trailing"].forEach(function(s){return _this2._separators.updateProps(s,{highlighted:!0})})},unhighlight:function(){["leading","trailing"].forEach(function(s){return _this2._separators.updateProps(s,{highlighted:!1})})},updateProps:function(select,newProps){var _this2$props=_this2.props,LeadingSeparatorComponent=_this2$props.LeadingSeparatorComponent,cellKey=_this2$props.cellKey,prevCellKey=_this2$props.prevCellKey;"leading"===select&&LeadingSeparatorComponent?_this2.setState(function(state){return{leadingSeparatorProps:_objectSpread({},state.leadingSeparatorProps,newProps)}}):_this2.props.onUpdateSeparator("leading"===select&&prevCellKey||cellKey,newProps)}},_this2}_inheritsLoose(ItemWithSeparator,_React$Component);var _proto2=ItemWithSeparator.prototype;return _proto2.UNSAFE_componentWillReceiveProps=function(props){var _this3=this;this.setState(function(state){return{separatorProps:_objectSpread({},_this3.state.separatorProps,{leadingItem:props.item,leadingSection:props.leadingSection,section:props.section,trailingItem:props.trailingItem,trailingSection:props.trailingSection}),leadingSeparatorProps:_objectSpread({},_this3.state.leadingSeparatorProps,{leadingItem:props.leadingItem,leadingSection:props.leadingSection,section:props.section,trailingItem:props.item,trailingSection:props.trailingSection})}})},_proto2.updateSeparatorProps=function(newProps){this.setState(function(state){return{separatorProps:_objectSpread({},state.separatorProps,newProps)}})},_proto2.render=function(){var _this$props=this.props,LeadingSeparatorComponent=_this$props.LeadingSeparatorComponent,SeparatorComponent=_this$props.SeparatorComponent,item=_this$props.item,index=_this$props.index,section=_this$props.section,element=this.props.renderItem({item:item,index:index,section:section,separators:this._separators}),leadingSeparator=LeadingSeparatorComponent&&_react.default.createElement(LeadingSeparatorComponent,this.state.leadingSeparatorProps),separator=SeparatorComponent&&_react.default.createElement(SeparatorComponent,this.state.separatorProps);return leadingSeparator||separator?_react.default.createElement(_View.default,null,leadingSeparator,element,separator):element},ItemWithSeparator}(_react.default.Component);function getItem(sections,index){if(!sections)return null;for(var itemIdx=index-1,ii=0;ii=0||(target[key]=source[key]);return target}(_this$props,["accessibilityLabel","activeThumbColor","activeTrackColor","disabled","onValueChange","style","thumbColor","trackColor","value","onTintColor","thumbTintColor","tintColor"]),_StyleSheet$flatten=_StyleSheet.default.flatten(style),styleHeight=_StyleSheet$flatten.height,styleWidth=_StyleSheet$flatten.width,height=styleHeight||20,minWidth=(0,_multiplyStyleLengthValue.default)(height,2),width=styleWidth>minWidth?styleWidth:minWidth,trackBorderRadius=(0,_multiplyStyleLengthValue.default)(height,.5),trackCurrentColor=value?onTintColor||activeTrackColor:tintColor||trackColor,thumbCurrentColor=value?activeThumbColor:thumbTintColor||thumbColor,thumbHeight=height,thumbWidth=thumbHeight,rootStyle=[styles.root,style,{height:height,width:width},disabled&&styles.cursorDefault],trackStyle=[styles.track,{backgroundColor:trackCurrentColor,borderRadius:trackBorderRadius},disabled&&styles.disabledTrack],thumbStyle=[styles.thumb,{backgroundColor:thumbCurrentColor,height:thumbHeight,width:thumbWidth},disabled&&styles.disabledThumb],nativeControl=(0,_createElement.default)("input",{accessibilityLabel:accessibilityLabel,checked:value,disabled:disabled,onBlur:this._handleFocusState,onChange:this._handleChange,onFocus:this._handleFocusState,ref:this._setCheckboxRef,style:[styles.nativeControl,styles.cursorInherit],type:"checkbox"});return _react.default.createElement(_View.default,_extends({},other,{style:rootStyle}),_react.default.createElement(_View.default,{style:trackStyle}),_react.default.createElement(_View.default,{ref:this._setThumbRef,style:[thumbStyle,value&&styles.thumbOn,{marginStart:value?(0,_multiplyStyleLengthValue.default)(thumbWidth,-1):0}]}),nativeControl)},Switch}(_react.Component);Switch.displayName="Switch",Switch.defaultProps={activeThumbColor:"#009688",activeTrackColor:"#A3D3CF",disabled:!1,style:{},thumbColor:"#FAFAFA",trackColor:"#939393",value:!1},Switch.propTypes={};var styles=_StyleSheet.default.create({root:{cursor:"pointer",userSelect:"none"},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},track:_objectSpread({},_StyleSheet.default.absoluteFillObject,{height:"70%",margin:"auto",transitionDuration:"0.1s",width:"100%"}),disabledTrack:{backgroundColor:"#D5D5D5"},thumb:{alignSelf:"flex-start",borderRadius:"100%",boxShadow:thumbDefaultBoxShadow,start:"0%",transform:[{translateZ:0}],transitionDuration:"0.1s"},thumbOn:{start:"100%"},disabledThumb:{backgroundColor:"#BDBDBD"},nativeControl:_objectSpread({},_StyleSheet.default.absoluteFillObject,{height:"100%",margin:0,opacity:0,padding:0,width:"100%"})}),_default=(0,_applyNativeMethods.default)(Switch);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyLayout=_interopRequireDefault(__webpack_require__(149)),_applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_ExecutionEnvironment=__webpack_require__(3),_react=__webpack_require__(0),_createElement=(_interopRequireDefault(__webpack_require__(12)),_interopRequireDefault(__webpack_require__(36))),_findNodeHandle=_interopRequireDefault(__webpack_require__(28)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_TextInputState=(_interopRequireDefault(__webpack_require__(85)),_interopRequireDefault(__webpack_require__(279)),_interopRequireDefault(__webpack_require__(164)));_interopRequireDefault(__webpack_require__(13)),__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isAndroid=_ExecutionEnvironment.canUseDOM&&/Android/i.test(navigator&&navigator.userAgent),emptyObject={},normalizeEventHandler=function(handler){return function(e){if(handler)return e.nativeEvent.text=e.target.value,handler(e)}},isSelectionStale=function(node,selection){if(node&&selection){var selectionEnd=node.selectionEnd,selectionStart=node.selectionStart,start=selection.start,end=selection.end;return start!==selectionStart||end!==selectionEnd}return!1},setSelection=function(node,selection){try{if(isSelectionStale(node,selection)){var start=selection.start,end=selection.end;isAndroid?setTimeout(function(){return node.setSelectionRange(start,end||start)},10):node.setSelectionRange(start,end||start)}}catch(e){}},TextInput=function(_Component){var subClass,superClass;function TextInput(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this=_Component.call.apply(_Component,[this].concat(args))||this)._handleBlur=function(e){var onBlur=_this.props.onBlur;_TextInputState.default._currentlyFocusedNode=null,onBlur&&onBlur(e)},_this._handleChange=function(e){var _this$props=_this.props,onChange=_this$props.onChange,onChangeText=_this$props.onChangeText,text=e.nativeEvent.text;onChange&&onChange(e),onChangeText&&onChangeText(text),_this._handleSelectionChange(e)},_this._handleFocus=function(e){var _this$props2=_this.props,clearTextOnFocus=_this$props2.clearTextOnFocus,onFocus=_this$props2.onFocus,selectTextOnFocus=_this$props2.selectTextOnFocus,node=_this._node;_TextInputState.default._currentlyFocusedNode=_this._node,onFocus&&onFocus(e),clearTextOnFocus&&_this.clear(),selectTextOnFocus&&node&&node.select()},_this._handleKeyDown=function(e){e.stopPropagation(),("ArrowLeft"===e.key||"ArrowUp"===e.key||"ArrowRight"===e.key||"ArrowDown"===e.key||"Backspace"===e.key||"Escape"===e.key||"Enter"===e.key&&e.metaKey||"Tab"===e.key)&&_this._handleKeyPress(e)},_this._handleKeyPress=function(e){var _this$props3=_this.props,blurOnSubmit=_this$props3.blurOnSubmit,multiline=_this$props3.multiline,onKeyPress=_this$props3.onKeyPress,onSubmitEditing=_this$props3.onSubmitEditing,shouldBlurOnSubmit=null==blurOnSubmit?!multiline:blurOnSubmit;if(onKeyPress){var keyValue=e.key;keyValue&&(e.nativeEvent={altKey:e.altKey,ctrlKey:e.ctrlKey,key:keyValue,metaKey:e.metaKey,shiftKey:e.shiftKey,target:e.target},onKeyPress(e))}e.isDefaultPrevented()||"Enter"!==e.key||e.shiftKey||(!blurOnSubmit&&multiline||!onSubmitEditing||(e.preventDefault(),e.nativeEvent={target:e.target,text:e.target.value},onSubmitEditing(e)),shouldBlurOnSubmit&&_this.blur())},_this._handleSelectionChange=function(e){var _this$props4=_this.props,onSelectionChange=_this$props4.onSelectionChange,_this$props4$selectio=_this$props4.selection,selection=void 0===_this$props4$selectio?emptyObject:_this$props4$selectio;if(onSelectionChange)try{var node=e.target;if(isSelectionStale(node,selection)){var selectionStart=node.selectionStart,selectionEnd=node.selectionEnd;e.nativeEvent.selection={start:selectionStart,end:selectionEnd},onSelectionChange(e)}}catch(e){}},_this._setNode=function(component){_this._node=(0,_findNodeHandle.default)(component)},_this}superClass=_Component,(subClass=TextInput).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass;var _proto=TextInput.prototype;return _proto.clear=function(){this._node.value=""},_proto.isFocused=function(){return _TextInputState.default.currentlyFocusedField()===this._node},_proto.componentDidMount=function(){setSelection(this._node,this.props.selection),document.activeElement===this._node&&(_TextInputState.default._currentlyFocusedNode=this._node)},_proto.componentDidUpdate=function(){setSelection(this._node,this.props.selection)},_proto.render=function(){var type,_this$props5=this.props,autoCorrect=_this$props5.autoCorrect,editable=_this$props5.editable,keyboardType=_this$props5.keyboardType,multiline=_this$props5.multiline,numberOfLines=_this$props5.numberOfLines,secureTextEntry=_this$props5.secureTextEntry,style=_this$props5.style,spellCheck=(_this$props5.blurOnSubmit,_this$props5.clearTextOnFocus,_this$props5.onChangeText,_this$props5.onLayout,_this$props5.onSelectionChange,_this$props5.onSubmitEditing,_this$props5.selection,_this$props5.selectTextOnFocus,_this$props5.spellCheck),otherProps=(_this$props5.accessibilityViewIsModal,_this$props5.allowFontScaling,_this$props5.caretHidden,_this$props5.clearButtonMode,_this$props5.dataDetectorTypes,_this$props5.disableFullscreenUI,_this$props5.enablesReturnKeyAutomatically,_this$props5.hitSlop,_this$props5.inlineImageLeft,_this$props5.inlineImagePadding,_this$props5.inputAccessoryViewID,_this$props5.keyboardAppearance,_this$props5.needsOffscreenAlphaCompositing,_this$props5.onAccessibilityTap,_this$props5.onContentSizeChange,_this$props5.onEndEditing,_this$props5.onMagicTap,_this$props5.onScroll,_this$props5.removeClippedSubviews,_this$props5.renderToHardwareTextureAndroid,_this$props5.returnKeyLabel,_this$props5.returnKeyType,_this$props5.scrollEnabled,_this$props5.selectionColor,_this$props5.selectionState,_this$props5.shouldRasterizeIOS,_this$props5.textBreakStrategy,_this$props5.textContentType,_this$props5.underlineColorAndroid,function(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i=0||(target[key]=source[key]);return target}(_this$props5,["autoCorrect","editable","keyboardType","multiline","numberOfLines","secureTextEntry","style","blurOnSubmit","clearTextOnFocus","onChangeText","onLayout","onSelectionChange","onSubmitEditing","selection","selectTextOnFocus","spellCheck","accessibilityViewIsModal","allowFontScaling","caretHidden","clearButtonMode","dataDetectorTypes","disableFullscreenUI","enablesReturnKeyAutomatically","hitSlop","inlineImageLeft","inlineImagePadding","inputAccessoryViewID","keyboardAppearance","needsOffscreenAlphaCompositing","onAccessibilityTap","onContentSizeChange","onEndEditing","onMagicTap","onScroll","removeClippedSubviews","renderToHardwareTextureAndroid","returnKeyLabel","returnKeyType","scrollEnabled","selectionColor","selectionState","shouldRasterizeIOS","textBreakStrategy","textContentType","underlineColorAndroid"]));switch(keyboardType){case"email-address":type="email";break;case"number-pad":case"numeric":type="number";break;case"phone-pad":type="tel";break;case"search":case"web-search":type="search";break;case"url":type="url";break;default:type="text"}secureTextEntry&&(type="password");var component=multiline?"textarea":"input";return Object.assign(otherProps,{autoCorrect:autoCorrect?"on":"off",dir:"auto",onBlur:normalizeEventHandler(this._handleBlur),onChange:normalizeEventHandler(this._handleChange),onFocus:normalizeEventHandler(this._handleFocus),onKeyDown:this._handleKeyDown,onKeyPress:this._handleKeyPress,onSelect:normalizeEventHandler(this._handleSelectionChange),readOnly:!editable,ref:this._setNode,spellCheck:null!=spellCheck?spellCheck:autoCorrect,style:[styles.initial,style]}),multiline?otherProps.rows=numberOfLines:otherProps.type=type,(0,_createElement.default)(component,otherProps)},TextInput}(_react.Component);TextInput.displayName="TextInput",TextInput.defaultProps={autoCapitalize:"sentences",autoComplete:"on",autoCorrect:!0,editable:!0,keyboardType:"default",multiline:!1,numberOfLines:1,secureTextEntry:!1,style:emptyObject},TextInput.State=_TextInputState.default,TextInput.propTypes={};var styles=_StyleSheet.default.create({initial:{MozAppearance:"textfield",WebkitAppearance:"none",backgroundColor:"transparent",borderColor:"black",borderRadius:0,borderStyle:"solid",borderWidth:0,boxSizing:"border-box",fontFamily:"System",fontSize:14,padding:0,resize:"none"}}),_default=(0,_applyLayout.default)((0,_applyNativeMethods.default)(TextInput));exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_ColorPropType=_interopRequireDefault(__webpack_require__(12)),_createReactClass=_interopRequireDefault(__webpack_require__(66)),_ensureComponentIsNative=_interopRequireDefault(__webpack_require__(315)),_ensurePositiveDelayProps=_interopRequireDefault(__webpack_require__(170)),_react=_interopRequireDefault(__webpack_require__(0)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_reactTimerMixin=_interopRequireDefault(__webpack_require__(108)),_Touchable=_interopRequireDefault(__webpack_require__(107)),_TouchableWithoutFeedback=_interopRequireDefault(__webpack_require__(171)),_View=_interopRequireDefault(__webpack_require__(7)),_ViewPropTypes=_interopRequireDefault(__webpack_require__(13)),_propTypes=__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["activeOpacity","onHideUnderlay","onShowUnderlay","underlayColor","delayLongPress","delayPressIn","delayPressOut","onLongPress","onPress","onPressIn","onPressOut","pressRetentionOffset"]));return _react.default.createElement(_View.default,_extends({},other,{accessible:!1!==this.props.accessible,onKeyDown:this.touchableHandleKeyEvent,onKeyUp:this.touchableHandleKeyEvent,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,ref:this._setUnderlayRef,style:[styles.root,!this.props.disabled&&styles.actionable,this.state.underlayStyle]}),_react.default.cloneElement(_react.default.Children.only(this.props.children),{ref:this._setChildRef}),_Touchable.default.renderDebugView({color:"green",hitSlop:this.props.hitSlop}))}}),INACTIVE_CHILD_PROPS={style:_StyleSheet.default.create({x:{opacity:1}}).x},INACTIVE_UNDERLAY_PROPS={style:_StyleSheet.default.create({x:{backgroundColor:"transparent"}}).x},styles=_StyleSheet.default.create({root:{userSelect:"none"},actionable:{cursor:"pointer",touchAction:"manipulation"}}),_default=(0,_applyNativeMethods.default)(TouchableHighlight);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(51))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(172))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_UnimplementedView=_interopRequireDefault(__webpack_require__(51));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _default=function(_React$Component){var subClass,superClass;function YellowBox(){return _React$Component.apply(this,arguments)||this}return superClass=_React$Component,(subClass=YellowBox).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,YellowBox.ignoreWarnings=function(){},YellowBox.prototype.render=function(){return _react.default.createElement(_UnimplementedView.default,this.props)},YellowBox}(_react.default.Component);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_createStrictShapeTypeChecker=(obj=__webpack_require__(157))&&obj.__esModule?obj:{default:obj},_propTypes=__webpack_require__(1);var _default=(0,_createStrictShapeTypeChecker.default)({x:_propTypes.number,y:_propTypes.number});exports.default=_default,module.exports=exports.default},,function(module,exports){module.exports=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}},function(module,exports){module.exports=function(obj){return obj&&obj.__esModule?obj:{default:obj}}},function(module,exports){module.exports=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}},function(module,exports){function _defineProperties(target,props){for(var i=0;i0;--i)result+=chars[Math.round(Math.random()*(chars.length-1))];return result}function HSVtoRGB(h,s,v){var r,g,b,i,f,p,q,t;switch(1===arguments.length&&(s=h.s,v=h.v,h=h.h),p=v*(1-s),q=v*(1-(f=6*h-(i=Math.floor(6*h)))*s),t=v*(1-(1-f)*s),i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q}return[r,g,b]}function RGBtoHSV(r,g,b){1===arguments.length&&(g=r.g,b=r.b,r=r.r);var h,max=Math.max(r,g,b),min=Math.min(r,g,b),d=max-min,s=0===max?0:d/max,v=max/255;switch(max){case min:h=0;break;case r:h=g-b+d*(g1?hsv[1]=1:hsv[1]<=0&&(hsv[1]=0),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function addBrightnessToRGB(color,offset){var hsv=RGBtoHSV(255*color[0],255*color[1],255*color[2]);return hsv[2]+=offset,hsv[2]>1?hsv[2]=1:hsv[2]<0&&(hsv[2]=0),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function addHueToRGB(color,offset){var hsv=RGBtoHSV(255*color[0],255*color[1],255*color[2]);return hsv[0]+=offset/360,hsv[0]>1?hsv[0]-=1:hsv[0]<0&&(hsv[0]+=1),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function componentToHex(c){var hex=c.toString(16);return 1==hex.length?"0"+hex:hex}roundValues(!1);var rgbToHex=function(){var i,hex,colorMap=[];for(i=0;i<256;i+=1)hex=i.toString(16),colorMap[i]=1==hex.length?"0"+hex:hex;return function(r,g,b){return r<0&&(r=0),g<0&&(g=0),b<0&&(b=0),"#"+colorMap[r]+colorMap[g]+colorMap[b]}}();function fillToRgba(hex,alpha){if(!cachedColors[hex]){var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);cachedColors[hex]=parseInt(result[1],16)+","+parseInt(result[2],16)+","+parseInt(result[3],16)}return"rgba("+cachedColors[hex]+","+alpha+")"}var fillColorToString=(colorMap=[],function(colorArr,alpha){return void 0!==alpha&&(colorArr[3]=alpha),colorMap[colorArr[0]]||(colorMap[colorArr[0]]={}),colorMap[colorArr[0]][colorArr[1]]||(colorMap[colorArr[0]][colorArr[1]]={}),colorMap[colorArr[0]][colorArr[1]][colorArr[2]]||(colorMap[colorArr[0]][colorArr[1]][colorArr[2]]={}),colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]||(colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]="rgba("+colorArr.join(",")+")"),colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]}),colorMap;function RenderedFrame(tr,o){this.tr=tr,this.o=o}function iterateDynamicProperties(num){var i,len=this.dynamicProperties;for(i=0;iRa||(b.current=Qa[Ra],Qa[Ra]=null,Ra--)}function F(b,a){Qa[++Ra]=b.current,b.current=a}var G={},H={current:G},I={current:!1},Sa=G;function Ta(b,a){var c=b.type.contextTypes;if(!c)return G;var d=b.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===a)return d.__reactInternalMemoizedMaskedChildContext;var f,e={};for(f in c)e[f]=a[f];return d&&((b=b.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,b.__reactInternalMemoizedMaskedChildContext=e),e}function K(b){return null!=(b=b.childContextTypes)}function Ua(b){E(I),E(H)}function Va(b){E(I),E(H)}function Wa(b,a,c){H.current!==G&&p("168"),F(H,a),F(I,c)}function Xa(b,a,c){var d=b.stateNode;if(b=a.childContextTypes,"function"!=typeof d.getChildContext)return c;for(var e in d=d.getChildContext())e in b||p("108",B(a)||"Unknown",e);return aa({},c,d)}function Ya(b){var a=b.stateNode;return a=a&&a.__reactInternalMemoizedMergedChildContext||G,Sa=H.current,F(H,a),F(I,I.current),!0}function Za(b,a,c){var d=b.stateNode;d||p("169"),c?(a=Xa(b,a,Sa),d.__reactInternalMemoizedMergedChildContext=a,E(I),E(H),F(H,a)):E(I),F(I,c)}var $a=null,ab=null;function bb(b){return function(a){try{return b(a)}catch(c){}}}function db(b,a,c,d){this.tag=b,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function L(b,a,c,d){return new db(b,a,c,d)}function eb(b){return!(!(b=b.prototype)||!b.isReactComponent)}function hb(b,a){var c=b.alternate;return null===c?((c=L(b.tag,a,b.key,b.mode)).elementType=b.elementType,c.type=b.type,c.stateNode=b.stateNode,c.alternate=b,b.alternate=c):(c.pendingProps=a,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null),c.childExpirationTime=b.childExpirationTime,c.expirationTime=b.expirationTime,c.child=b.child,c.memoizedProps=b.memoizedProps,c.memoizedState=b.memoizedState,c.updateQueue=b.updateQueue,c.firstContextDependency=b.firstContextDependency,c.sibling=b.sibling,c.index=b.index,c.ref=b.ref,c}function ib(b,a,c,d,e,f){var g=2;if(d=b,"function"==typeof b)eb(b)&&(g=1);else if("string"==typeof b)g=5;else a:switch(b){case A:return M(c.children,e,f,a);case oa:return jb(c,3|e,f,a);case ka:return jb(c,2|e,f,a);case la:return(b=L(12,c,a,4|e)).elementType=la,b.type=la,b.expirationTime=f,b;case qa:return(b=L(13,c,a,e)).elementType=qa,b.type=qa,b.expirationTime=f,b;default:if("object"==typeof b&&null!==b)switch(b.$$typeof){case ma:g=10;break a;case na:g=9;break a;case pa:g=11;break a;case ra:g=14;break a;case sa:g=16,d=null;break a}p("130",null==b?b:typeof b,"")}return(a=L(g,c,a,e)).elementType=b,a.type=d,a.expirationTime=f,a}function M(b,a,c,d){return(b=L(7,b,d,a)).expirationTime=c,b}function jb(b,a,c,d){return b=L(8,b,d,a),a=0==(1&a)?ka:oa,b.elementType=a,b.type=a,b.expirationTime=c,b}function kb(b,a,c){return(b=L(6,b,null,a)).expirationTime=c,b}function lb(b,a,c){return(a=L(4,null!==b.children?b.children:[],b.key,a)).expirationTime=c,a.stateNode={containerInfo:b.containerInfo,pendingChildren:null,implementation:b.implementation},a}function mb(b,a){b.didError=!1;var c=b.earliestPendingTime;0===c?b.earliestPendingTime=b.latestPendingTime=a:ca&&(b.latestPendingTime=a),nb(a,b)}function ob(b,a){b.didError=!1,b.latestPingedTime>=a&&(b.latestPingedTime=0);var c=b.earliestPendingTime,d=b.latestPendingTime;c===a?b.earliestPendingTime=d===a?b.latestPendingTime=0:d:d===a&&(b.latestPendingTime=c),c=b.earliestSuspendedTime,d=b.latestSuspendedTime,0===c?b.earliestSuspendedTime=b.latestSuspendedTime=a:ca&&(b.latestSuspendedTime=a),nb(a,b)}function pb(b,a){var c=b.earliestPendingTime;return c>a&&(a=c),(b=b.earliestSuspendedTime)>a&&(a=b),a}function nb(b,a){var c=a.earliestSuspendedTime,d=a.latestSuspendedTime,e=a.earliestPendingTime,f=a.latestPingedTime;0===(e=0!==e?e:f)&&(0===b||db&&(b=c),a.nextExpirationTimeToWorkOn=e,a.expirationTime=b}var qb=!1;function rb(b){return{baseState:b,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function sb(b){return{baseState:b.baseState,firstUpdate:b.firstUpdate,lastUpdate:b.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function tb(b){return{expirationTime:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ub(b,a){null===b.lastUpdate?b.firstUpdate=b.lastUpdate=a:(b.lastUpdate.next=a,b.lastUpdate=a)}function N(b,a){var c=b.alternate;if(null===c){var d=b.updateQueue,e=null;null===d&&(d=b.updateQueue=rb(b.memoizedState))}else d=b.updateQueue,e=c.updateQueue,null===d?null===e?(d=b.updateQueue=rb(b.memoizedState),e=c.updateQueue=rb(c.memoizedState)):d=b.updateQueue=sb(e):null===e&&(e=c.updateQueue=sb(d));null===e||d===e?ub(d,a):null===d.lastUpdate||null===e.lastUpdate?(ub(d,a),ub(e,a)):(ub(d,a),e.lastUpdate=a)}function vb(b,a){var c=b.updateQueue;null===(c=null===c?b.updateQueue=rb(b.memoizedState):wb(b,c)).lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=a:(c.lastCapturedUpdate.next=a,c.lastCapturedUpdate=a)}function wb(b,a){var c=b.alternate;return null!==c&&a===c.updateQueue&&(a=b.updateQueue=sb(a)),a}function xb(b,a,c,d,e,f){switch(c.tag){case 1:return"function"==typeof(b=c.payload)?b.call(f,d,e):b;case 3:b.effectTag=-2049&b.effectTag|64;case 0:if(null==(e="function"==typeof(b=c.payload)?b.call(f,d,e):b))break;return aa({},d,e);case 2:qb=!0}return d}function yb(b,a,c,d,e){qb=!1;for(var f=(a=wb(b,a)).baseState,g=null,k=0,h=a.firstUpdate,l=f;null!==h;){var n=h.expirationTime;nq?(n=r,r=null):n=r.sibling;var t=u(e,r,h[q],k);if(null===t){null===r&&(r=n);break}b&&r&&null===t.alternate&&a(e,r),g=f(t,g,q),null===x?l=t:x.sibling=t,x=t,r=n}if(q===h.length)return c(e,r),l;if(null===r){for(;qx?(n=q,q=null):n=q.sibling;var v=u(e,q,t.value,k);if(null===v){q||(q=n);break}b&&q&&null===v.alternate&&a(e,q),g=f(v,g,x),null===r?l=v:r.sibling=v,r=v,q=n}if(t.done)return c(e,q),l;if(null===q){for(;!t.done;x++,t=h.next())null!==(t=y(e,t.value,k))&&(g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return l}for(q=d(e,q);!t.done;x++,t=h.next())null!==(t=w(q,e,x,t.value,k))&&(b&&null!==t.alternate&&q.delete(null===t.key?x:t.key),g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return b&&q.forEach(function(b){return a(e,b)}),l}return function(b,d,f,h){var k="object"==typeof f&&null!==f&&f.type===A&&null===f.key;k&&(f=f.props.children);var l="object"==typeof f&&null!==f;if(l)switch(f.$$typeof){case ia:a:{for(l=f.key,k=d;null!==k;){if(k.key===l){if(7===k.tag?f.type===A:k.elementType===f.type){c(b,k.sibling),(d=e(k,f.type===A?f.props.children:f.props)).ref=jc(b,k,f),d.return=b,b=d;break a}c(b,k);break}a(b,k),k=k.sibling}f.type===A?((d=M(f.props.children,b.mode,h,f.key)).return=b,b=d):((h=ib(f.type,f.key,f.props,null,b.mode,h)).ref=jc(b,d,f),h.return=b,b=h)}return g(b);case ja:a:{for(k=f.key;null!==d;){if(d.key===k){if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(b,d.sibling),(d=e(d,f.children||[])).return=b,b=d;break a}c(b,d);break}a(b,d),d=d.sibling}(d=lb(f,b.mode,h)).return=b,b=d}return g(b)}if("string"==typeof f||"number"==typeof f)return f=""+f,null!==d&&6===d.tag?(c(b,d.sibling),(d=e(d,f)).return=b,b=d):(c(b,d),(d=kb(f,b.mode,h)).return=b,b=d),g(b);if(ic(f))return J(b,d,f,h);if(ua(f))return v(b,d,f,h);if(l&&kc(b,f),void 0===f&&!k)switch(b.tag){case 1:case 0:p("152",(h=b.type).displayName||h.name||"Component")}return c(b,d)}}var mc=lc(!0),nc=lc(!1),oc=null,pc=null,qc=!1;function rc(b){switch(b.tag){case 5:case 6:return p("305"),b.stateNode=void 0,!0;default:return!1}}function sc(b){if(qc){var a=pc;if(a){var c=a;if(!rc(b)){if(p("305"),!(a=void 0)||!rc(b))return b.effectTag|=2,qc=!1,void(oc=b);a=oc;var d=L(5,null,null,0);d.elementType="DELETED",d.type="DELETED",d.stateNode=c,d.return=a,d.effectTag=8,null!==a.lastEffect?(a.lastEffect.nextEffect=d,a.lastEffect=d):a.firstEffect=a.lastEffect=d}oc=b,p("305"),pc=void 0}else b.effectTag|=2,qc=!1,oc=b}}var tc=ha.ReactCurrentOwner;function Q(b,a,c,d){a.child=null===b?nc(a,null,c,d):mc(a,b.child,c,d)}function uc(b,a,c,d,e){c=c.render;var f=a.ref;return Ib(a),d=c(d,f),a.effectTag|=1,Q(b,a,d,e),a.child}function vc(b,a,c,d,e,f){if(null===b){var g=c.type;return"function"!=typeof g||eb(g)||void 0!==g.defaultProps||null!==c.compare||void 0!==c.defaultProps?((b=ib(c.type,null,d,null,a.mode,f)).ref=a.ref,b.return=a,a.child=b):(a.tag=15,a.type=g,wc(b,a,g,d,e,f))}return g=b.child,e=c?Dc(b,a,c):null!==(a=xc(b,a,c))?a.sibling:null}return xc(b,a,c)}switch(a.expirationTime=0,a.tag){case 2:d=a.elementType,null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2),b=a.pendingProps;var e=Ta(a,H.current);if(Ib(a),e=d(b,e),a.effectTag|=1,"object"==typeof e&&null!==e&&"function"==typeof e.render&&void 0===e.$$typeof){if(a.tag=1,K(d)){var f=!0;Ya(a)}else f=!1;a.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"==typeof g&&Zb(a,d,g,b),e.updater=dc,a.stateNode=e,e._reactInternalFiber=a,hc(a,d,b,c),a=Bc(null,a,d,!0,f,c)}else a.tag=0,Q(null,a,e,c),a=a.child;return a;case 16:switch(e=a.elementType,null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2),f=a.pendingProps,b=function(b){var a=b._result;switch(b._status){case 1:return a;case 2:case 0:throw a;default:throw b._status=0,(a=(a=b._ctor)()).then(function(a){0===b._status&&(a=a.default,b._status=1,b._result=a)},function(a){0===b._status&&(b._status=2,b._result=a)}),b._result=a,a}}(e),a.type=b,e=a.tag=function(b){if("function"==typeof b)return eb(b)?1:0;if(null!=b){if((b=b.$$typeof)===pa)return 11;if(b===ra)return 14}return 2}(b),f=P(b,f),g=void 0,e){case 0:g=yc(null,a,b,f,c);break;case 1:g=Ac(null,a,b,f,c);break;case 11:g=uc(null,a,b,f,c);break;case 14:g=vc(null,a,b,P(b.type,f),d,c);break;default:p("306",b,"")}return g;case 0:return d=a.type,e=a.pendingProps,yc(b,a,d,e=a.elementType===d?e:P(d,e),c);case 1:return d=a.type,e=a.pendingProps,Ac(b,a,d,e=a.elementType===d?e:P(d,e),c);case 3:return Cc(a),null===(d=a.updateQueue)&&p("282"),e=null!==(e=a.memoizedState)?e.element:null,yb(a,d,a.pendingProps,null,c),(d=a.memoizedState.element)===e?a=xc(b,a,c):(Q(b,a,d,c),a=a.child),a;case 5:return Rb(a),null===b&&sc(a),d=a.type,e=a.pendingProps,f=null!==b?b.memoizedProps:null,g=e.children,Na(0,e)?g=null:null!==f&&Na(0,f)&&(a.effectTag|=16),zc(b,a),Q(b,a,g,c),a=a.child;case 6:return null===b&&sc(a),null;case 13:return Dc(b,a,c);case 4:return Pb(a,a.stateNode.containerInfo),d=a.pendingProps,null===b?a.child=mc(a,null,d,c):Q(b,a,d,c),a.child;case 11:return d=a.type,e=a.pendingProps,uc(b,a,d,e=a.elementType===d?e:P(d,e),c);case 7:return Q(b,a,a.pendingProps,c),a.child;case 8:case 12:return Q(b,a,a.pendingProps.children,c),a.child;case 10:a:{if(d=a.type._context,e=a.pendingProps,g=a.memoizedProps,Gb(a,f=e.value),null!==g){var k=g.value;if(0===(f=k===f&&(0!==k||1/k==1/f)||k!=k&&f!=f?0:0|("function"==typeof d._calculateChangedBits?d._calculateChangedBits(k,f):1073741823))){if(g.children===e.children&&!I.current){a=xc(b,a,c);break a}}else for(null!==(g=a.child)&&(g.return=a);null!==g;){if(null!==(k=g.firstContextDependency))do{if(k.context===d&&0!=(k.observedBits&f)){if(1===g.tag){var h=tb(c);h.tag=2,N(g,h)}g.expirationTimee&&(e=f),(k=g.childExpirationTime)>e&&(e=k),g=g.sibling;a.childExpirationTime=e}if(null!==R)return R;null!==c&&0==(1024&c.effectTag)&&(null===c.firstEffect&&(c.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=b.firstEffect),c.lastEffect=b.lastEffect),1=w?y=0:(-1===y||w component higher in the tree to provide a loading indicator or placeholder to display."+Pa(h))}gd=!0,l=Bb(l,h),g=k;do{switch(g.tag){case 3:g.effectTag|=2048,g.expirationTime=f,vb(g,f=Yc(g,l,f));break a;case 1:if(n=l,y=g.type,u=g.stateNode,0==(64&g.effectTag)&&("function"==typeof y.getDerivedStateFromError||null!==u&&"function"==typeof u.componentDidCatch&&(null===ad||!ad.has(u)))){g.effectTag|=2048,g.expirationTime=f,vb(g,f=$c(g,n,f));break a}}g=g.return}while(null!==g)}R=ld(e);continue}d=!0,Zc(J)}}break}if(ed=!1,Fb=Eb=Db=dd.currentDispatcher=null,d)S=null,b.finishedWork=null;else if(null!==R)b.finishedWork=null;else{if(null===(d=b.current.alternate)&&p("281"),S=null,gd){if(e=b.latestPendingTime,f=b.latestSuspendedTime,g=b.latestPingedTime,0!==e&&ea?0:a)):(b.pendingCommitExpirationTime=c,b.finishedWork=d)}}function Pc(b,a){for(var c=b.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if("function"==typeof c.type.getDerivedStateFromError||"function"==typeof d.componentDidCatch&&(null===ad||!ad.has(d)))return N(c,b=$c(c,b=Bb(a,b),1073741823)),void cc(c,1073741823);break;case 3:return N(c,b=Yc(c,b=Bb(a,b),1073741823)),void cc(c,1073741823)}c=c.return}3===b.tag&&(N(b,c=Yc(b,c=Bb(a,b),1073741823)),cc(b,1073741823))}function ac(b,a){return ed?b=hd?1073741823:T:1&a.mode?(b=rd?1073741822-10*(1+((1073741822-b+15)/10|0)):1073741822-25*(1+((1073741822-b+500)/25|0)),null!==S&&b===T&&--b):b=1073741823,b}function pd(b,a,c){var d=b.pingCache;null!==d&&d.delete(a),null!==S&&T===c?S=null:(a=b.earliestSuspendedTime,d=b.latestSuspendedTime,0!==a&&c<=a&&c>=d&&(b.didError=!1,(0===(a=b.latestPingedTime)||a>c)&&(b.latestPingedTime=c),nb(c,b),0!==(c=b.expirationTime)&&sd(b,c)))}function td(b,a){b.expirationTimeT&&kd(),mb(b,a),ed&&!hd&&S===b||sd(b,b.expirationTime),ud>vd&&(ud=0,p("185")))}var V=null,W=null,wd=0,xd=void 0,yd=!1,X=null,Y=0,zd=!1,Ad=null,Bd=!1,Cd=!1,rd=!1,Dd=null,Ed=ca.unstable_now(),Z=1073741822-(Ed/10|0),Gd=Z,vd=50,ud=0,Hd=null;function Id(){Z=1073741822-((ca.unstable_now()-Ed)/10|0)}function Jd(b,a){if(0!==wd){if(ab.expirationTime&&(b.expirationTime=a),yd||(Bd?Cd&&(X=b,Y=1073741823,Md(b,1073741823,!1)):1073741823===a?Nd(1073741823,!1):Jd(b,a))}function Od(){var b=0,a=null;if(null!==W)for(var c=W,d=V;null!==d;){var e=d.expirationTime;if(0===e){if((null===c||null===W)&&p("244"),d===d.nextScheduledRoot){V=W=d.nextScheduledRoot=null;break}if(d===V)V=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else{if(d===W){(W=c).nextScheduledRoot=V,d.nextScheduledRoot=null;break}c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null}d=c.nextScheduledRoot}else{if(e>b&&(b=e,a=d),d===W)break;if(1073741823===b)break;c=d,d=d.nextScheduledRoot}}X=a,Y=b}var Pd=!1;function od(){return!!Pd||!!ca.unstable_shouldYield()&&(Pd=!0)}function Kd(){try{if(!od()&&null!==V){Id();var b=V;do{var a=b.expirationTime;0!==a&&Z<=a&&(b.nextExpirationTimeToWorkOn=Z),b=b.nextScheduledRoot}while(b!==V)}Nd(0,!0)}finally{Pd=!1}}function Nd(b,a){if(Od(),a)for(Id(),Gd=Z;null!==X&&0!==Y&&b<=Y&&!(Pd&&Z>Y);)Md(X,Y,Z>Y),Od(),Id(),Gd=Z;else for(;null!==X&&0!==Y&&b<=Y;)Md(X,Y,!1),Od();if(a&&(wd=0,xd=null),0!==Y&&Jd(X,Y),ud=0,Hd=null,null!==Dd)for(b=Dd,Dd=null,a=0;a=c&&(null===Dd?Dd=[d]:Dd.push(d),d._defer))return b.finishedWork=a,void(b.expirationTime=0);b.finishedWork=null,b===Hd?ud++:(Hd=b,ud=0),hd=ed=!0,b.current===a&&p("177"),0===(c=b.pendingCommitExpirationTime)&&p("261"),b.pendingCommitExpirationTime=0,d=a.expirationTime;var e=a.childExpirationTime;for(d=e>d?e:d,b.didError=!1,0===d?(b.earliestPendingTime=0,b.latestPendingTime=0,b.earliestSuspendedTime=0,b.latestSuspendedTime=0,b.latestPingedTime=0):(dd?b.earliestPendingTime=b.latestPendingTime=0:b.earliestPendingTime>d&&(b.earliestPendingTime=b.latestPendingTime)),0===(e=b.earliestSuspendedTime)?mb(b,d):de&&mb(b,d)),nb(0,b),dd.current=null,1q?a:q)&&(ad=null),b.expirationTime=a,b.finishedWork=null}function Zc(b){null===X&&p("246"),X.expirationTime=0,zd||(zd=!0,Ad=b)}function Rd(b,a,c,d){var e=a.current,f=$b();e=ac(f,e),f=a.current;a:if(c){b:{2===va(c=c._reactInternalFiber)&&1===c.tag||p("170");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(K(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);p("171"),g=void 0}if(1===c.tag){var k=c.type;if(K(k)){c=Xa(c,k,g);break a}}c=g}else c=G;return null===a.context?a.context=c:a.pendingContext=c,a=d,(d=tb(e)).payload={element:b},null!==(a=void 0===a?null:a)&&(d.callback=a),bc(),N(f,d),cc(f,e),e}var Sd=aa||function(b){for(var a=1;athis.width||y>this.height)return null;for(var node=this.lastChild;node;){var hit=node.hitTest(x,y);if(hit)return hit;node=node.previousSibling}return null},render:function(){var node=this.firstChild,context=this.context;for(context.setTransform(resolution,0,0,resolution,0,0),context.clearRect(0,0,this.width,this.height);node;)node.renderTo(context,resolution,0,0,resolution,0,0),node=node.nextSibling;this.refreshCursor()}});CanvasSurface.tagName="canvas",module.exports=CanvasSurface},function(module,exports,__webpack_require__){var Class=__webpack_require__(8),Base=__webpack_require__(305),Path=__webpack_require__(303);module.exports=Class(Base,{base_initialize:Base.prototype.initialize,initialize:function(path,width,height){this.base_initialize(),this.width=width,this.height=height,null!=path&&this.draw(path)},draw:function(path,width,height){return path instanceof Path||(path=new Path(path)),this.path=path,this._commands=path.toCommands(),null!=width&&(this.width=width),null!=height&&(this.height=height),this.invalidate()},localHitTest:function(x,y){if(!this._fill)return null;if(null==this.width||null==this.height){var context=Base._genericContext,commands=this._commands;if(!commands)return null;context.beginPath();for(var i=0,l=commands.length;i0&&y>0&&xwidth&&(width=w)}return this.width=width,this.height=l?1.1*l*em:0,this.invalidate()},localHitTest:function(x,y){return this._fill&&x>0&&y>0&&x-1;)offsetRows+="\n";textPath.string=offsetRows+textPath.string,this.element.path="m0,0l1,0"}style=(element=element.cloneNode(!0)).style,element.coordorigin="0,0",element.coordsize="10000,10000",style.left="0px",style.top="0px",style.width="10000px",style.height="10000px",style.rotation=0,element.removeChild(element.firstChild);var canvas=new Surface(1,1),group=new Group,body=element.ownerDocument.body;canvas.inject(body),group.element.appendChild(element),group.inject(canvas);var ebb=element.getBoundingClientRect(),cbb=canvas.toElement().getBoundingClientRect();return canvas.eject(),this.left=ebb.left-cbb.left,this.top=ebb.top-cbb.top,this.width=ebb.right-ebb.left,this.height=ebb.bottom-ebb.top,this.right=ebb.right-cbb.left,this.bottom=ebb.bottom-cbb.top,this._transform(),this}})},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;_interopRequireDefault(__webpack_require__(12));var _StyleSheet=_interopRequireDefault(__webpack_require__(5)),_TouchableOpacity=_interopRequireDefault(__webpack_require__(311)),_Text=_interopRequireDefault(__webpack_require__(165)),_react=(__webpack_require__(1),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Button=function(_Component){var subClass,superClass;function Button(){return _Component.apply(this,arguments)||this}return superClass=_Component,(subClass=Button).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,Button.prototype.render=function(){var _this$props=this.props,accessibilityLabel=_this$props.accessibilityLabel,color=_this$props.color,disabled=_this$props.disabled,onPress=_this$props.onPress,testID=_this$props.testID,title=_this$props.title;return _react.default.createElement(_TouchableOpacity.default,{accessibilityLabel:accessibilityLabel,accessibilityRole:"button",disabled:disabled,onPress:onPress,style:[styles.button,color&&{backgroundColor:color},disabled&&styles.buttonDisabled],testID:testID},_react.default.createElement(_Text.default,{style:[styles.text,disabled&&styles.textDisabled]},title))},Button}(_react.Component);Button.propTypes={};var styles=_StyleSheet.default.create({button:{backgroundColor:"#2196F3",borderRadius:2},text:{color:"#fff",fontWeight:"500",padding:8,textAlign:"center",textTransform:"uppercase"},buttonDisabled:{backgroundColor:"#dfdfdf"},textDisabled:{color:"#a1a1a1"}}),_default=Button;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_PooledClass=(obj=__webpack_require__(312))&&obj.__esModule?obj:{default:obj};var twoArgumentPooler=_PooledClass.default.twoArgumentPooler;function BoundingDimensions(width,height){this.width=width,this.height=height}BoundingDimensions.prototype.destructor=function(){this.width=null,this.height=null},BoundingDimensions.getPooledFromElement=function(element){return BoundingDimensions.getPooled(element.offsetWidth,element.offsetHeight)},_PooledClass.default.addPoolingTo(BoundingDimensions,twoArgumentPooler);var _default=BoundingDimensions;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_PooledClass=(obj=__webpack_require__(312))&&obj.__esModule?obj:{default:obj};var twoArgumentPooler=_PooledClass.default.twoArgumentPooler;function Position(left,top){this.left=left,this.top=top}Position.prototype.destructor=function(){this.left=null,this.top=null},_PooledClass.default.addPoolingTo(Position,twoArgumentPooler);var _default=Position;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";module.exports={extractSingleTouch:function(nativeEvent){var touches=nativeEvent.touches,changedTouches=nativeEvent.changedTouches,hasTouches=touches&&touches.length>0,hasChangedTouches=changedTouches&&changedTouches.length>0;return!hasTouches&&hasChangedTouches?changedTouches[0]:hasTouches?touches[0]:nativeEvent}}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_createElement=(_interopRequireDefault(__webpack_require__(12)),_interopRequireDefault(__webpack_require__(36))),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_UIManager=_interopRequireDefault(__webpack_require__(33)),_View=_interopRequireDefault(__webpack_require__(7)),_react=(_interopRequireDefault(__webpack_require__(13)),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props2,["color","disabled","onChange","onValueChange","style","value"]),fakeControl=_react.default.createElement(_View.default,{style:[styles.fakeControl,value&&styles.fakeControlChecked,value&&color&&{backgroundColor:color,borderColor:color},disabled&&styles.fakeControlDisabled,value&&disabled&&styles.fakeControlCheckedAndDisabled]}),nativeControl=(0,_createElement.default)("input",{checked:value,disabled:disabled,onChange:this._handleChange,ref:this._setCheckboxRef,style:[styles.nativeControl,styles.cursorInherit],type:"checkbox"});return _react.default.createElement(_View.default,_extends({},other,{style:[styles.root,style,disabled&&styles.cursorDefault]}),fakeControl,nativeControl)},CheckBox}(_react.Component);CheckBox.displayName="CheckBox",CheckBox.defaultProps={disabled:!1,value:!1},CheckBox.propTypes={};var styles=_StyleSheet.default.create({root:{cursor:"pointer",height:16,userSelect:"none",width:16},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},fakeControl:{alignItems:"center",backgroundColor:"#fff",borderColor:"#657786",borderRadius:2,borderStyle:"solid",borderWidth:2,height:"100%",justifyContent:"center",width:"100%"},fakeControlChecked:{backgroundColor:"#009688",backgroundImage:'url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")',backgroundRepeat:"no-repeat",borderColor:"#009688"},fakeControlDisabled:{borderColor:"#CCD6DD"},fakeControlCheckedAndDisabled:{backgroundColor:"#AAB8C2",borderColor:"#AAB8C2"},nativeControl:function(target){for(var i=1;iMath.random(),this._resetData()}FillRateHelper.addListener=function(callback){return(0,_warning.default)(null!==_sampleRate,"Call `FillRateHelper.setSampleRate` before `addListener`."),_listeners.push(callback),{remove:function(){_listeners=_listeners.filter(function(listener){return callback!==listener})}}},FillRateHelper.setSampleRate=function(sampleRate){_sampleRate=sampleRate},FillRateHelper.setMinSampleCount=function(minSampleCount){_minSampleCount=minSampleCount};var _proto=FillRateHelper.prototype;return _proto.activate=function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=(0,_performanceNow.default)())},_proto.deactivateAndFlush=function(){if(this._enabled){var start=this._samplesStartTime;if(null!=start)if(this._info.sample_count<_minSampleCount)this._resetData();else{var total_time_spent=(0,_performanceNow.default)()-start,info=function(target){for(var i=1;i0&&(blankTop=Math.min(visibleLength,Math.max(0,firstFrame.offset-offset)));for(var blankBottom=0,last=state.last,lastFrame=this._getFrameMetrics(last);last>=state.first&&(!lastFrame||!lastFrame.inLayout);)lastFrame=this._getFrameMetrics(last),last--;if(lastFrame&&last0?(this._anyBlankStartTime=now,this._info.any_blank_speed_sum+=scrollSpeed,this._info.any_blank_count++,this._info.pixels_blank+=pixels_blank,blankness>.5&&(this._mostlyBlankStartTime=now,this._info.mostly_blank_count++)):(scrollSpeed<.01||Math.abs(dOffset)<1)&&this.deactivateAndFlush(),blankness},_proto.enabled=function(){return this._enabled},_proto._resetData=function(){this._anyBlankStartTime=null,this._info=new Info,this._mostlyBlankStartTime=null,this._samplesStartTime=null},FillRateHelper}();exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var performanceNow,performance=__webpack_require__(676);performanceNow=performance.now?function(){return performance.now()}:function(){return Date.now()},module.exports=performanceNow},function(module,exports,__webpack_require__){"use strict";var performance;__webpack_require__(3).canUseDOM&&(performance=window.performance||window.msPerformance||window.webkitPerformance),module.exports=performance||{}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_invariant=(obj=__webpack_require__(2))&&obj.__esModule?obj:{default:obj};function _objectSpread(target){for(var i=1;i=0&&bottom<=viewportHeight&&bottom>top}(top,bottom,viewportHeight))return!0;var pixels=function(top,bottom,viewportHeight){var visibleHeight=Math.min(bottom,viewportHeight)-Math.max(top,0);return Math.max(0,visibleHeight)}(top,bottom,viewportHeight);return 100*(viewAreaMode?pixels/viewportHeight:pixels/itemLength)>=viewablePercentThreshold}var _default=function(){function ViewabilityHelper(config){void 0===config&&(config={viewAreaCoveragePercentThreshold:0}),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=config}var _proto=ViewabilityHelper.prototype;return _proto.dispose=function(){this._timers.forEach(clearTimeout)},_proto.computeViewableItems=function(itemCount,scrollOffset,viewportHeight,getFrameMetrics,renderRange){var _this$_config=this._config,itemVisiblePercentThreshold=_this$_config.itemVisiblePercentThreshold,viewAreaCoveragePercentThreshold=_this$_config.viewAreaCoveragePercentThreshold,viewAreaMode=null!=viewAreaCoveragePercentThreshold,viewablePercentThreshold=viewAreaMode?viewAreaCoveragePercentThreshold:itemVisiblePercentThreshold;(0,_invariant.default)(null!=viewablePercentThreshold&&null!=itemVisiblePercentThreshold!=(null!=viewAreaCoveragePercentThreshold),"Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold");var viewableIndices=[];if(0===itemCount)return viewableIndices;var firstVisible=-1,_ref=renderRange||{first:0,last:itemCount-1},first=_ref.first,last=_ref.last;(0,_invariant.default)(last0)firstVisible=idx,_isViewable(viewAreaMode,viewablePercentThreshold,top,bottom,viewportHeight,metrics.length)&&viewableIndices.push(idx);else if(firstVisible>=0)break}}return viewableIndices},_proto.onUpdate=function(itemCount,scrollOffset,viewportHeight,getFrameMetrics,createViewToken,onViewableItemsChanged,renderRange){var _this=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==itemCount&&getFrameMetrics(0)){var viewableIndices=[];if(itemCount&&(viewableIndices=this.computeViewableItems(itemCount,scrollOffset,viewportHeight,getFrameMetrics,renderRange)),this._viewableIndices.length!==viewableIndices.length||!this._viewableIndices.every(function(v,ii){return v===viewableIndices[ii]}))if(this._viewableIndices=viewableIndices,this._config.minimumViewTime){var handle=setTimeout(function(){_this._timers.delete(handle),_this._onUpdateSync(viewableIndices,onViewableItemsChanged,createViewToken)},this._config.minimumViewTime);this._timers.add(handle)}else this._onUpdateSync(viewableIndices,onViewableItemsChanged,createViewToken)}},_proto.resetViewableIndices=function(){this._viewableIndices=[]},_proto.recordInteraction=function(){this._hasInteracted=!0},_proto._onUpdateSync=function(viewableIndicesToCheck,onViewableItemsChanged,createViewToken){var _this2=this;viewableIndicesToCheck=viewableIndicesToCheck.filter(function(ii){return _this2._viewableIndices.includes(ii)});var prevItems=this._viewableItems,nextItems=new Map(viewableIndicesToCheck.map(function(ii){var viewable=createViewToken(ii,!0);return[viewable.key,viewable]})),changed=[],_iterator=nextItems,_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref2;if(_isArray){if(_i>=_iterator.length)break;_ref2=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref2=_i.value}var _ref4=_ref2,key=_ref4[0],viewable=_ref4[1];prevItems.has(key)||changed.push(viewable)}var _iterator2=prevItems,_isArray2=Array.isArray(_iterator2),_i2=0;for(_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;){var _ref3;if(_isArray2){if(_i2>=_iterator2.length)break;_ref3=_iterator2[_i2++]}else{if((_i2=_iterator2.next()).done)break;_ref3=_i2.value}var _ref5=_ref3;key=_ref5[0],viewable=_ref5[1];nextItems.has(key)||changed.push(_objectSpread({},viewable,{isViewable:!1}))}changed.length>0&&(this._viewableItems=nextItems,onViewableItemsChanged({viewableItems:Array.from(nextItems.values()),changed:changed,viewabilityConfig:this._config}))},ViewabilityHelper}();exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.computeWindowedRenderLimits=computeWindowedRenderLimits,exports.elementsThatOverlapOffsets=elementsThatOverlapOffsets,exports.newRangeCount=newRangeCount,exports.default=void 0;var obj,_invariant=(obj=__webpack_require__(2))&&obj.__esModule?obj:{default:obj};function elementsThatOverlapOffsets(offsets,itemCount,getFrameMetrics){for(var out=[],outLength=0,ii=0;ii=offsets[kk]&&(out[kk]=ii,outLength++,kk===offsets.length-1))return(0,_invariant.default)(outLength===offsets.length,"bad offsets input, should be in increasing order: %s",JSON.stringify(offsets)),out;return out}function newRangeCount(prev,next){return next.last-next.first+1-Math.max(0,1+Math.min(next.last,prev.last)-Math.max(next.first,prev.first))}function computeWindowedRenderLimits(props,prev,getFrameMetricsApprox,scrollMetrics){var data=props.data,getItemCount=props.getItemCount,maxToRenderPerBatch=props.maxToRenderPerBatch,windowSize=props.windowSize,itemCount=getItemCount(data);if(0===itemCount)return prev;var offset=scrollMetrics.offset,velocity=scrollMetrics.velocity,visibleLength=scrollMetrics.visibleLength,visibleBegin=Math.max(0,offset),visibleEnd=visibleBegin+visibleLength,overscanLength=(windowSize-1)*visibleLength,fillPreference=velocity>1?"after":velocity<-1?"before":"none",overscanBegin=Math.max(0,visibleBegin-.5*overscanLength),overscanEnd=Math.max(0,visibleEnd+.5*overscanLength);if(getFrameMetricsApprox(itemCount-1).offset=overscanLast);){var maxNewCells=newCellCount>=maxToRenderPerBatch,firstWillAddMore=first<=prev.first||first>prev.last,firstShouldIncrement=first>overscanFirst&&(!maxNewCells||!firstWillAddMore),lastWillAddMore=last>=prev.last||last=first&&first>=0&&last=overscanFirst&&last<=overscanLast&&first<=visible.first&&last>=visible.last))throw new Error("Bad window calculation "+JSON.stringify({first:first,last:last,itemCount:itemCount,overscanFirst:overscanFirst,overscanLast:overscanLast,visible:visible}));return{first:first,last:last}}var _default={computeWindowedRenderLimits:computeWindowedRenderLimits,elementsThatOverlapOffsets:elementsThatOverlapOffsets,newRangeCount:newRangeCount};exports.default=_default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _default=function(){var _console;return(_console=console).log.apply(_console,arguments)};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _ensureComponentIsNative=_interopRequireDefault(__webpack_require__(315)),_Image=_interopRequireDefault(__webpack_require__(163)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_View=_interopRequireDefault(__webpack_require__(7)),_react=(_interopRequireDefault(__webpack_require__(13)),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["children","style","imageStyle","imageRef"]);return _react.default.createElement(_View.default,{ref:this._captureRef,style:style},_react.default.createElement(_Image.default,_extends({},props,{ref:imageRef,style:[_StyleSheet.default.absoluteFill,{width:style.width,height:style.height,zIndex:-1},imageStyle]})),children)},ImageBackground}(_react.Component);ImageBackground.defaultProps={style:{}},ImageBackground.propTypes={};var _default=ImageBackground;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _View=_interopRequireDefault(__webpack_require__(7)),_react=(__webpack_require__(1),function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)));_interopRequireDefault(__webpack_require__(13));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["behavior","contentContainerStyle","keyboardVerticalOffset"]));return _react.default.createElement(_View.default,_extends({onLayout:this.onLayout},rest))},KeyboardAvoidingView}(_react.Component);KeyboardAvoidingView.defaultProps={keyboardVerticalOffset:0},KeyboardAvoidingView.propTypes={};var _default=KeyboardAvoidingView;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(316))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=__webpack_require__(0);__webpack_require__(1);var StaticRenderer=function(_Component){var subClass,superClass;function StaticRenderer(){return _Component.apply(this,arguments)||this}superClass=_Component,(subClass=StaticRenderer).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass;var _proto=StaticRenderer.prototype;return _proto.shouldComponentUpdate=function(nextProps){return nextProps.shouldUpdate},_proto.render=function(){return this.props.render()},StaticRenderer}(_react.Component);exports.default=StaticRenderer,StaticRenderer.propTypes={},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_react=(obj=__webpack_require__(0))&&obj.__esModule?obj:{default:obj};function _objectSpread(target){for(var i=1;i2?_len-2:0),_key=2;_key<_len;_key++)children[_key-2]=arguments[_key];return null==originalRef||null==cloneRef?_react.default.cloneElement.apply(_react.default,[element,config].concat(children)):"function"!=typeof originalRef?(__DEV__&&console.warn("Cloning an element with a ref that will be overwritten because it is not a function. Use a composable callback-style ref instead. Ignoring ref: "+originalRef),_react.default.cloneElement.apply(_react.default,[element,config].concat(children))):_react.default.cloneElement.apply(_react.default,[element,_objectSpread({},config,{ref:function(component){cloneRef(component),originalRef(component)}})].concat(children))};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(51))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;_interopRequireDefault(__webpack_require__(12));var _react=__webpack_require__(0),_createElement=_interopRequireDefault(__webpack_require__(36));__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var PickerItem=function(_Component){var subClass,superClass;function PickerItem(){return _Component.apply(this,arguments)||this}return superClass=_Component,(subClass=PickerItem).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,PickerItem.prototype.render=function(){var _this$props=this.props,color=_this$props.color,label=_this$props.label,testID=_this$props.testID,value=_this$props.value,style={color:color};return(0,_createElement.default)("option",{style:style,testID:testID,value:value},label)},PickerItem}(_react.Component);exports.default=PickerItem,PickerItem.propTypes={},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_=_interopRequireDefault(__webpack_require__(319));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _default=function(props,propName,componentName){var prop=props[propName],error=null;return _react.default.Children.forEach(prop,function(child){child.type!==_.default.Item&&(error=new Error("`Picker` children must be of type `Picker.Item`."))}),error};exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _ColorPropType=_interopRequireDefault(__webpack_require__(12));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var _default=function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props2,["color","indeterminate","progress","trackColor","style"]),percentageProgress=100*progress;return _react.default.createElement(_View.default,_extends({},other,{accessibilityRole:"progressbar","aria-valuemax":"100","aria-valuemin":"0","aria-valuenow":indeterminate?null:percentageProgress,style:[styles.track,style,{backgroundColor:trackColor}]}),_react.default.createElement(_View.default,{ref:this._setProgressRef,style:[styles.progress,indeterminate&&styles.animation,{backgroundColor:color}]}))},ProgressBar}(_react.Component);ProgressBar.displayName="ProgressBar",ProgressBar.defaultProps={color:"#1976D2",indeterminate:!1,progress:0,trackColor:"transparent"},ProgressBar.propTypes={};var styles=_StyleSheet.default.create({track:{height:5,overflow:"hidden",userSelect:"none",zIndex:0},progress:{height:"100%",zIndex:-1},animation:{animationDuration:"1s",animationName:[{"0%":{transform:[{translateX:"-100%"}]},"100%":{transform:[{translateX:"400%"}]}}],animationTimingFunction:"linear",animationIterationCount:"infinite"}}),_default=(0,_applyNativeMethods.default)(ProgressBar);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_View=_interopRequireDefault(__webpack_require__(7));_interopRequireDefault(__webpack_require__(13));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["style"]);return _react.default.createElement(_View.default,_extends({},rest,{style:_StyleSheet.default.compose(styles.root,style)}))},SafeAreaView}(_react.default.Component);SafeAreaView.displayName="SafeAreaView",SafeAreaView.propTypes={};var styles=_StyleSheet.default.create({root:{paddingTop:"env(safe-area-inset-top)",paddingRight:"env(safe-area-inset-right)",paddingBottom:"env(safe-area-inset-bottom)",paddingLeft:"env(safe-area-inset-left)"}}),_default=SafeAreaView;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(692))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _UnimplementedView=_interopRequireDefault(__webpack_require__(51)),_Platform=_interopRequireDefault(__webpack_require__(86)),_react=_interopRequireDefault(__webpack_require__(0)),_VirtualizedSectionList=(_interopRequireDefault(__webpack_require__(87)),_interopRequireDefault(__webpack_require__(693)));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=section.data.length+1))return-1===itemIndex?{section:section,key:key+":header",index:null,header:!0,trailingSection:this.props.sections[ii+1]}:itemIndex===section.data.length?{section:section,key:key+":footer",index:null,header:!1,trailingSection:this.props.sections[ii+1]}:{section:section,key:key+":"+(section.keyExtractor||defaultKeyExtractor)(section.data[itemIndex],itemIndex),index:itemIndex,leadingItem:section.data[itemIndex-1],leadingSection:this.props.sections[ii-1],trailingItem:section.data[itemIndex+1],trailingSection:this.props.sections[ii+1]};itemIndex-=section.data.length+1}},_proto._getSeparatorComponent=function(index,info){if(!(info=info||this._subExtractor(index)))return null;var ItemSeparatorComponent=info.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,SectionSeparatorComponent=this.props.SectionSeparatorComponent,isLastItemInList=index===this.state.childProps.getItemCount()-1,isLastItemInSection=info.index===info.section.data.length-1;return SectionSeparatorComponent&&isLastItemInSection?SectionSeparatorComponent:!ItemSeparatorComponent||isLastItemInSection||isLastItemInList?null:ItemSeparatorComponent},_proto._computeState=function(props){var offset=props.ListHeaderComponent?1:0,stickyHeaderIndices=[],itemCount=props.sections.reduce(function(v,section){return stickyHeaderIndices.push(v+offset),v+section.data.length+2},0);return{childProps:_objectSpread({},props,{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:props.sections,getItemCount:function(){return itemCount},getItem:getItem,keyExtractor:this._keyExtractor,onViewableItemsChanged:props.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:props.stickySectionHeadersEnabled?stickyHeaderIndices:void 0})}},_proto.UNSAFE_componentWillReceiveProps=function(nextProps){this.setState(this._computeState(nextProps))},_proto.render=function(){return _react.default.createElement(_VirtualizedList.default,_extends({},this.state.childProps,{ref:this._captureRef}))},VirtualizedSectionList}(_react.default.PureComponent);VirtualizedSectionList.defaultProps=_objectSpread({},_VirtualizedList.default.defaultProps,{data:[]});var ItemWithSeparator=function(_React$Component){function ItemWithSeparator(){for(var _this2,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this2=_React$Component.call.apply(_React$Component,[this].concat(args))||this).state={separatorProps:{highlighted:!1,leadingItem:_this2.props.item,leadingSection:_this2.props.leadingSection,section:_this2.props.section,trailingItem:_this2.props.trailingItem,trailingSection:_this2.props.trailingSection},leadingSeparatorProps:{highlighted:!1,leadingItem:_this2.props.leadingItem,leadingSection:_this2.props.leadingSection,section:_this2.props.section,trailingItem:_this2.props.item,trailingSection:_this2.props.trailingSection}},_this2._separators={highlight:function(){["leading","trailing"].forEach(function(s){return _this2._separators.updateProps(s,{highlighted:!0})})},unhighlight:function(){["leading","trailing"].forEach(function(s){return _this2._separators.updateProps(s,{highlighted:!1})})},updateProps:function(select,newProps){var _this2$props=_this2.props,LeadingSeparatorComponent=_this2$props.LeadingSeparatorComponent,cellKey=_this2$props.cellKey,prevCellKey=_this2$props.prevCellKey;"leading"===select&&LeadingSeparatorComponent?_this2.setState(function(state){return{leadingSeparatorProps:_objectSpread({},state.leadingSeparatorProps,newProps)}}):_this2.props.onUpdateSeparator("leading"===select&&prevCellKey||cellKey,newProps)}},_this2}_inheritsLoose(ItemWithSeparator,_React$Component);var _proto2=ItemWithSeparator.prototype;return _proto2.UNSAFE_componentWillReceiveProps=function(props){var _this3=this;this.setState(function(state){return{separatorProps:_objectSpread({},_this3.state.separatorProps,{leadingItem:props.item,leadingSection:props.leadingSection,section:props.section,trailingItem:props.trailingItem,trailingSection:props.trailingSection}),leadingSeparatorProps:_objectSpread({},_this3.state.leadingSeparatorProps,{leadingItem:props.leadingItem,leadingSection:props.leadingSection,section:props.section,trailingItem:props.item,trailingSection:props.trailingSection})}})},_proto2.updateSeparatorProps=function(newProps){this.setState(function(state){return{separatorProps:_objectSpread({},state.separatorProps,newProps)}})},_proto2.render=function(){var _this$props=this.props,LeadingSeparatorComponent=_this$props.LeadingSeparatorComponent,SeparatorComponent=_this$props.SeparatorComponent,item=_this$props.item,index=_this$props.index,section=_this$props.section,element=this.props.renderItem({item:item,index:index,section:section,separators:this._separators}),leadingSeparator=LeadingSeparatorComponent&&_react.default.createElement(LeadingSeparatorComponent,this.state.leadingSeparatorProps),separator=SeparatorComponent&&_react.default.createElement(SeparatorComponent,this.state.separatorProps);return leadingSeparator||separator?_react.default.createElement(_View.default,null,leadingSeparator,element,separator):element},ItemWithSeparator}(_react.default.Component);function getItem(sections,index){if(!sections)return null;for(var itemIdx=index-1,ii=0;ii=0||(target[key]=source[key]);return target}(_this$props,["accessibilityLabel","activeThumbColor","activeTrackColor","disabled","onValueChange","style","thumbColor","trackColor","value","onTintColor","thumbTintColor","tintColor"]),_StyleSheet$flatten=_StyleSheet.default.flatten(style),styleHeight=_StyleSheet$flatten.height,styleWidth=_StyleSheet$flatten.width,height=styleHeight||20,minWidth=(0,_multiplyStyleLengthValue.default)(height,2),width=styleWidth>minWidth?styleWidth:minWidth,trackBorderRadius=(0,_multiplyStyleLengthValue.default)(height,.5),trackCurrentColor=value?onTintColor||activeTrackColor:tintColor||trackColor,thumbCurrentColor=value?activeThumbColor:thumbTintColor||thumbColor,thumbHeight=height,thumbWidth=thumbHeight,rootStyle=[styles.root,style,{height:height,width:width},disabled&&styles.cursorDefault],trackStyle=[styles.track,{backgroundColor:trackCurrentColor,borderRadius:trackBorderRadius},disabled&&styles.disabledTrack],thumbStyle=[styles.thumb,{backgroundColor:thumbCurrentColor,height:thumbHeight,width:thumbWidth},disabled&&styles.disabledThumb],nativeControl=(0,_createElement.default)("input",{accessibilityLabel:accessibilityLabel,checked:value,disabled:disabled,onBlur:this._handleFocusState,onChange:this._handleChange,onFocus:this._handleFocusState,ref:this._setCheckboxRef,style:[styles.nativeControl,styles.cursorInherit],type:"checkbox"});return _react.default.createElement(_View.default,_extends({},other,{style:rootStyle}),_react.default.createElement(_View.default,{style:trackStyle}),_react.default.createElement(_View.default,{ref:this._setThumbRef,style:[thumbStyle,value&&styles.thumbOn,{marginStart:value?(0,_multiplyStyleLengthValue.default)(thumbWidth,-1):0}]}),nativeControl)},Switch}(_react.Component);Switch.displayName="Switch",Switch.defaultProps={activeThumbColor:"#009688",activeTrackColor:"#A3D3CF",disabled:!1,style:{},thumbColor:"#FAFAFA",trackColor:"#939393",value:!1},Switch.propTypes={};var styles=_StyleSheet.default.create({root:{cursor:"pointer",userSelect:"none"},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},track:_objectSpread({},_StyleSheet.default.absoluteFillObject,{height:"70%",margin:"auto",transitionDuration:"0.1s",width:"100%"}),disabledTrack:{backgroundColor:"#D5D5D5"},thumb:{alignSelf:"flex-start",borderRadius:"100%",boxShadow:thumbDefaultBoxShadow,start:"0%",transform:[{translateZ:0}],transitionDuration:"0.1s"},thumbOn:{start:"100%"},disabledThumb:{backgroundColor:"#BDBDBD"},nativeControl:_objectSpread({},_StyleSheet.default.absoluteFillObject,{height:"100%",margin:0,opacity:0,padding:0,width:"100%"})}),_default=(0,_applyNativeMethods.default)(Switch);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyLayout=_interopRequireDefault(__webpack_require__(149)),_applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_ExecutionEnvironment=__webpack_require__(3),_react=__webpack_require__(0),_createElement=(_interopRequireDefault(__webpack_require__(12)),_interopRequireDefault(__webpack_require__(36))),_findNodeHandle=_interopRequireDefault(__webpack_require__(28)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_TextInputState=(_interopRequireDefault(__webpack_require__(85)),_interopRequireDefault(__webpack_require__(279)),_interopRequireDefault(__webpack_require__(164)));_interopRequireDefault(__webpack_require__(13)),__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isAndroid=_ExecutionEnvironment.canUseDOM&&/Android/i.test(navigator&&navigator.userAgent),emptyObject={},normalizeEventHandler=function(handler){return function(e){if(handler)return e.nativeEvent.text=e.target.value,handler(e)}},isSelectionStale=function(node,selection){if(node&&selection){var selectionEnd=node.selectionEnd,selectionStart=node.selectionStart,start=selection.start,end=selection.end;return start!==selectionStart||end!==selectionEnd}return!1},setSelection=function(node,selection){try{if(isSelectionStale(node,selection)){var start=selection.start,end=selection.end;isAndroid?setTimeout(function(){return node.setSelectionRange(start,end||start)},10):node.setSelectionRange(start,end||start)}}catch(e){}},TextInput=function(_Component){var subClass,superClass;function TextInput(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return(_this=_Component.call.apply(_Component,[this].concat(args))||this)._handleBlur=function(e){var onBlur=_this.props.onBlur;_TextInputState.default._currentlyFocusedNode=null,onBlur&&onBlur(e)},_this._handleChange=function(e){var _this$props=_this.props,onChange=_this$props.onChange,onChangeText=_this$props.onChangeText,text=e.nativeEvent.text;onChange&&onChange(e),onChangeText&&onChangeText(text),_this._handleSelectionChange(e)},_this._handleFocus=function(e){var _this$props2=_this.props,clearTextOnFocus=_this$props2.clearTextOnFocus,onFocus=_this$props2.onFocus,selectTextOnFocus=_this$props2.selectTextOnFocus,node=_this._node;_TextInputState.default._currentlyFocusedNode=_this._node,onFocus&&onFocus(e),clearTextOnFocus&&_this.clear(),selectTextOnFocus&&node&&node.select()},_this._handleKeyDown=function(e){e.stopPropagation(),("ArrowLeft"===e.key||"ArrowUp"===e.key||"ArrowRight"===e.key||"ArrowDown"===e.key||"Backspace"===e.key||"Escape"===e.key||"Enter"===e.key&&e.metaKey||"Tab"===e.key)&&_this._handleKeyPress(e)},_this._handleKeyPress=function(e){var _this$props3=_this.props,blurOnSubmit=_this$props3.blurOnSubmit,multiline=_this$props3.multiline,onKeyPress=_this$props3.onKeyPress,onSubmitEditing=_this$props3.onSubmitEditing,shouldBlurOnSubmit=null==blurOnSubmit?!multiline:blurOnSubmit;if(onKeyPress){var keyValue=e.key;keyValue&&(e.nativeEvent={altKey:e.altKey,ctrlKey:e.ctrlKey,key:keyValue,metaKey:e.metaKey,shiftKey:e.shiftKey,target:e.target},onKeyPress(e))}e.isDefaultPrevented()||"Enter"!==e.key||e.shiftKey||(!blurOnSubmit&&multiline||!onSubmitEditing||(e.preventDefault(),e.nativeEvent={target:e.target,text:e.target.value},onSubmitEditing(e)),shouldBlurOnSubmit&&_this.blur())},_this._handleSelectionChange=function(e){var _this$props4=_this.props,onSelectionChange=_this$props4.onSelectionChange,_this$props4$selectio=_this$props4.selection,selection=void 0===_this$props4$selectio?emptyObject:_this$props4$selectio;if(onSelectionChange)try{var node=e.target;if(isSelectionStale(node,selection)){var selectionStart=node.selectionStart,selectionEnd=node.selectionEnd;e.nativeEvent.selection={start:selectionStart,end:selectionEnd},onSelectionChange(e)}}catch(e){}},_this._setNode=function(component){_this._node=(0,_findNodeHandle.default)(component)},_this}superClass=_Component,(subClass=TextInput).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass;var _proto=TextInput.prototype;return _proto.clear=function(){this._node.value=""},_proto.isFocused=function(){return _TextInputState.default.currentlyFocusedField()===this._node},_proto.componentDidMount=function(){setSelection(this._node,this.props.selection),document.activeElement===this._node&&(_TextInputState.default._currentlyFocusedNode=this._node)},_proto.componentDidUpdate=function(){setSelection(this._node,this.props.selection)},_proto.render=function(){var type,_this$props5=this.props,autoCorrect=_this$props5.autoCorrect,editable=_this$props5.editable,keyboardType=_this$props5.keyboardType,multiline=_this$props5.multiline,numberOfLines=_this$props5.numberOfLines,secureTextEntry=_this$props5.secureTextEntry,style=_this$props5.style,spellCheck=(_this$props5.blurOnSubmit,_this$props5.clearTextOnFocus,_this$props5.onChangeText,_this$props5.onLayout,_this$props5.onSelectionChange,_this$props5.onSubmitEditing,_this$props5.selection,_this$props5.selectTextOnFocus,_this$props5.spellCheck),otherProps=(_this$props5.accessibilityViewIsModal,_this$props5.allowFontScaling,_this$props5.caretHidden,_this$props5.clearButtonMode,_this$props5.dataDetectorTypes,_this$props5.disableFullscreenUI,_this$props5.enablesReturnKeyAutomatically,_this$props5.hitSlop,_this$props5.inlineImageLeft,_this$props5.inlineImagePadding,_this$props5.inputAccessoryViewID,_this$props5.keyboardAppearance,_this$props5.needsOffscreenAlphaCompositing,_this$props5.onAccessibilityTap,_this$props5.onContentSizeChange,_this$props5.onEndEditing,_this$props5.onMagicTap,_this$props5.onScroll,_this$props5.removeClippedSubviews,_this$props5.renderToHardwareTextureAndroid,_this$props5.returnKeyLabel,_this$props5.returnKeyType,_this$props5.scrollEnabled,_this$props5.selectionColor,_this$props5.selectionState,_this$props5.shouldRasterizeIOS,_this$props5.textBreakStrategy,_this$props5.textContentType,_this$props5.underlineColorAndroid,function(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i=0||(target[key]=source[key]);return target}(_this$props5,["autoCorrect","editable","keyboardType","multiline","numberOfLines","secureTextEntry","style","blurOnSubmit","clearTextOnFocus","onChangeText","onLayout","onSelectionChange","onSubmitEditing","selection","selectTextOnFocus","spellCheck","accessibilityViewIsModal","allowFontScaling","caretHidden","clearButtonMode","dataDetectorTypes","disableFullscreenUI","enablesReturnKeyAutomatically","hitSlop","inlineImageLeft","inlineImagePadding","inputAccessoryViewID","keyboardAppearance","needsOffscreenAlphaCompositing","onAccessibilityTap","onContentSizeChange","onEndEditing","onMagicTap","onScroll","removeClippedSubviews","renderToHardwareTextureAndroid","returnKeyLabel","returnKeyType","scrollEnabled","selectionColor","selectionState","shouldRasterizeIOS","textBreakStrategy","textContentType","underlineColorAndroid"]));switch(keyboardType){case"email-address":type="email";break;case"number-pad":case"numeric":type="number";break;case"phone-pad":type="tel";break;case"search":case"web-search":type="search";break;case"url":type="url";break;default:type="text"}secureTextEntry&&(type="password");var component=multiline?"textarea":"input";return Object.assign(otherProps,{autoCorrect:autoCorrect?"on":"off",dir:"auto",onBlur:normalizeEventHandler(this._handleBlur),onChange:normalizeEventHandler(this._handleChange),onFocus:normalizeEventHandler(this._handleFocus),onKeyDown:this._handleKeyDown,onKeyPress:this._handleKeyPress,onSelect:normalizeEventHandler(this._handleSelectionChange),readOnly:!editable,ref:this._setNode,spellCheck:null!=spellCheck?spellCheck:autoCorrect,style:[styles.initial,style]}),multiline?otherProps.rows=numberOfLines:otherProps.type=type,(0,_createElement.default)(component,otherProps)},TextInput}(_react.Component);TextInput.displayName="TextInput",TextInput.defaultProps={autoCapitalize:"sentences",autoComplete:"on",autoCorrect:!0,editable:!0,keyboardType:"default",multiline:!1,numberOfLines:1,secureTextEntry:!1,style:emptyObject},TextInput.State=_TextInputState.default,TextInput.propTypes={};var styles=_StyleSheet.default.create({initial:{MozAppearance:"textfield",WebkitAppearance:"none",backgroundColor:"transparent",borderColor:"black",borderRadius:0,borderStyle:"solid",borderWidth:0,boxSizing:"border-box",fontFamily:"System",fontSize:14,padding:0,resize:"none"}}),_default=(0,_applyLayout.default)((0,_applyNativeMethods.default)(TextInput));exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _applyNativeMethods=_interopRequireDefault(__webpack_require__(29)),_ColorPropType=_interopRequireDefault(__webpack_require__(12)),_createReactClass=_interopRequireDefault(__webpack_require__(66)),_ensureComponentIsNative=_interopRequireDefault(__webpack_require__(315)),_ensurePositiveDelayProps=_interopRequireDefault(__webpack_require__(170)),_react=_interopRequireDefault(__webpack_require__(0)),_StyleSheet=_interopRequireDefault(__webpack_require__(5)),_reactTimerMixin=_interopRequireDefault(__webpack_require__(108)),_Touchable=_interopRequireDefault(__webpack_require__(107)),_TouchableWithoutFeedback=_interopRequireDefault(__webpack_require__(171)),_View=_interopRequireDefault(__webpack_require__(7)),_ViewPropTypes=_interopRequireDefault(__webpack_require__(13)),_propTypes=__webpack_require__(1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return(_extends=Object.assign||function(target){for(var i=1;i=0||(target[key]=source[key]);return target}(_this$props,["activeOpacity","onHideUnderlay","onShowUnderlay","underlayColor","delayLongPress","delayPressIn","delayPressOut","onLongPress","onPress","onPressIn","onPressOut","pressRetentionOffset"]));return _react.default.createElement(_View.default,_extends({},other,{accessible:!1!==this.props.accessible,onKeyDown:this.touchableHandleKeyEvent,onKeyUp:this.touchableHandleKeyEvent,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,ref:this._setUnderlayRef,style:[styles.root,!this.props.disabled&&styles.actionable,this.state.underlayStyle]}),_react.default.cloneElement(_react.default.Children.only(this.props.children),{ref:this._setChildRef}),_Touchable.default.renderDebugView({color:"green",hitSlop:this.props.hitSlop}))}}),INACTIVE_CHILD_PROPS={style:_StyleSheet.default.create({x:{opacity:1}}).x},INACTIVE_UNDERLAY_PROPS={style:_StyleSheet.default.create({x:{backgroundColor:"transparent"}}).x},styles=_StyleSheet.default.create({root:{userSelect:"none"},actionable:{cursor:"pointer",touchAction:"manipulation"}}),_default=(0,_applyNativeMethods.default)(TouchableHighlight);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(51))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";var obj;exports.__esModule=!0,exports.default=void 0;var _default=((obj=__webpack_require__(172))&&obj.__esModule?obj:{default:obj}).default;exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(0)),_UnimplementedView=_interopRequireDefault(__webpack_require__(51));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _default=function(_React$Component){var subClass,superClass;function YellowBox(){return _React$Component.apply(this,arguments)||this}return superClass=_React$Component,(subClass=YellowBox).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,YellowBox.ignoreWarnings=function(){},YellowBox.prototype.render=function(){return _react.default.createElement(_UnimplementedView.default,this.props)},YellowBox}(_react.default.Component);exports.default=_default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=void 0;var obj,_createStrictShapeTypeChecker=(obj=__webpack_require__(157))&&obj.__esModule?obj:{default:obj},_propTypes=__webpack_require__(1);var _default=(0,_createStrictShapeTypeChecker.default)({x:_propTypes.number,y:_propTypes.number});exports.default=_default,module.exports=exports.default},,function(module,exports){module.exports=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}},function(module,exports){module.exports=function(obj){return obj&&obj.__esModule?obj:{default:obj}}},function(module,exports){function _extends(){return module.exports=_extends=Object.assign||function(target){for(var i=1;i0;--i)result+=chars[Math.round(Math.random()*(chars.length-1))];return result}function HSVtoRGB(h,s,v){var r,g,b,i,f,p,q,t;switch(1===arguments.length&&(s=h.s,v=h.v,h=h.h),p=v*(1-s),q=v*(1-(f=6*h-(i=Math.floor(6*h)))*s),t=v*(1-(1-f)*s),i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q}return[r,g,b]}function RGBtoHSV(r,g,b){1===arguments.length&&(g=r.g,b=r.b,r=r.r);var h,max=Math.max(r,g,b),min=Math.min(r,g,b),d=max-min,s=0===max?0:d/max,v=max/255;switch(max){case min:h=0;break;case r:h=g-b+d*(g1?hsv[1]=1:hsv[1]<=0&&(hsv[1]=0),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function addBrightnessToRGB(color,offset){var hsv=RGBtoHSV(255*color[0],255*color[1],255*color[2]);return hsv[2]+=offset,hsv[2]>1?hsv[2]=1:hsv[2]<0&&(hsv[2]=0),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function addHueToRGB(color,offset){var hsv=RGBtoHSV(255*color[0],255*color[1],255*color[2]);return hsv[0]+=offset/360,hsv[0]>1?hsv[0]-=1:hsv[0]<0&&(hsv[0]+=1),HSVtoRGB(hsv[0],hsv[1],hsv[2])}function componentToHex(c){var hex=c.toString(16);return 1==hex.length?"0"+hex:hex}roundValues(!1);var rgbToHex=function(){var i,hex,colorMap=[];for(i=0;i<256;i+=1)hex=i.toString(16),colorMap[i]=1==hex.length?"0"+hex:hex;return function(r,g,b){return r<0&&(r=0),g<0&&(g=0),b<0&&(b=0),"#"+colorMap[r]+colorMap[g]+colorMap[b]}}();function fillToRgba(hex,alpha){if(!cachedColors[hex]){var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);cachedColors[hex]=parseInt(result[1],16)+","+parseInt(result[2],16)+","+parseInt(result[3],16)}return"rgba("+cachedColors[hex]+","+alpha+")"}var fillColorToString=(colorMap=[],function(colorArr,alpha){return void 0!==alpha&&(colorArr[3]=alpha),colorMap[colorArr[0]]||(colorMap[colorArr[0]]={}),colorMap[colorArr[0]][colorArr[1]]||(colorMap[colorArr[0]][colorArr[1]]={}),colorMap[colorArr[0]][colorArr[1]][colorArr[2]]||(colorMap[colorArr[0]][colorArr[1]][colorArr[2]]={}),colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]||(colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]="rgba("+colorArr.join(",")+")"),colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]}),colorMap;function RenderedFrame(tr,o){this.tr=tr,this.o=o}function iterateDynamicProperties(num){var i,len=this.dynamicProperties;for(i=0;i=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return 0|arc4.g(4)},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool),(options.pass||callback||function(prng,seed,is_math_call,state){return state&&(state.S&©(state,arc4),prng.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng,seed):prng})(prng,shortseed,"global"in options?options.global:this==math,options.state)},mixkey(math.random(),pool)}([],BMMath);var BezierFactory=function(){var ob={getBezierEasing:function(a,b,c,d,nm){var str=nm||("bez_"+a+"_"+b+"_"+c+"_"+d).replace(/\./g,"p");if(beziers[str])return beziers[str];var bezEasing=new BezierEasing([a,b,c,d]);return beziers[str]=bezEasing,bezEasing}},beziers={};var NEWTON_ITERATIONS=4,SUBDIVISION_PRECISION=1e-7,SUBDIVISION_MAX_ITERATIONS=10,kSplineTableSize=11,kSampleStepSize=1/(kSplineTableSize-1),float32ArraySupported="function"==typeof Float32Array;function A(aA1,aA2){return 1-3*aA2+3*aA1}function B(aA1,aA2){return 3*aA2-6*aA1}function C(aA1){return 3*aA1}function calcBezier(aT,aA1,aA2){return((A(aA1,aA2)*aT+B(aA1,aA2))*aT+C(aA1))*aT}function getSlope(aT,aA1,aA2){return 3*A(aA1,aA2)*aT*aT+2*B(aA1,aA2)*aT+C(aA1)}function BezierEasing(points){this._p=points,this._mSampleValues=float32ArraySupported?new Float32Array(kSplineTableSize):new Array(kSplineTableSize),this._precomputed=!1,this.get=this.get.bind(this)}return BezierEasing.prototype={get:function(x){var mX1=this._p[0],mY1=this._p[1],mX2=this._p[2],mY2=this._p[3];return this._precomputed||this._precompute(),mX1===mY1&&mX2===mY2?x:0===x?0:1===x?1:calcBezier(this._getTForX(x),mY1,mY2)},_precompute:function(){var mX1=this._p[0],mY1=this._p[1],mX2=this._p[2],mY2=this._p[3];this._precomputed=!0,mX1===mY1&&mX2===mY2||this._calcSampleValues()},_calcSampleValues:function(){for(var mX1=this._p[0],mX2=this._p[2],i=0;i=.001?function(aX,aGuessT,mX1,mX2){for(var i=0;i0?aB=currentT:aA=currentT}while(Math.abs(currentX)>SUBDIVISION_PRECISION&&++i-1e-4&&det1<1e-4}var getBezierLength=function(){function Segment(l,p){this.l=l,this.p=p}return function(pt1,pt2,pt3,pt4){var k,i,len,ptCoord,perc,ptDistance,curveSegments=defaultCurveSegments,addedLength=0,point=[],lastPoint=[],lengthData={addedLength:0,segments:[]};for(len=pt3.length,k=0;klengthPos?-1:1,flag=!0;flag;)segments[initPos].l<=lengthPos&&segments[initPos+1].l>lengthPos?(lPerc=(lengthPos-segments[initPos].l)/(segments[initPos+1].l-segments[initPos].l),flag=!1):initPos+=dir,(initPos<0||initPos>=len-1)&&(flag=!1);return segments[initPos].p+(segments[initPos+1].p-segments[initPos].p)*lPerc}function SegmentPoints(){this.pt1=new Array(2),this.pt2=new Array(2),this.pt3=new Array(2),this.pt4=new Array(2)}return{getBezierLength:getBezierLength,getSegmentsLength:function(shapeData){var i,closed=shapeData.c,pathV=shapeData.v,pathO=shapeData.o,pathI=shapeData.i,len=shapeData._length,lengths=[],totalLength=0;for(i=0;i1?1:startPerc,bezierData),t1=getDistancePerc(endPerc=endPerc>1?1:endPerc,bezierData),len=pt1.length,u0=1-t0,u1=1-t1;for(i=0;idist2?dist1>dist3?dist1-dist2-dist3:dist3-dist2-dist1:dist3>dist2?dist3-dist2-dist1:dist2-dist1-dist3)>-1e-4&&diffDist<1e-4}}}!function(){for(var lastTime=0,vendors=["ms","moz","webkit","o"],x=0;x=0;i-=1)if("sh"==arr[i].ty){if(arr[i].ks.k.i)convertPathsToAbsoluteValues(arr[i].ks.k);else for(jLen=arr[i].ks.k.length,j=0;janimVersion[0]||!(animVersion[0]>minimum[0])&&(minimum[1]>animVersion[1]||!(animVersion[1]>minimum[1])&&(minimum[2]>animVersion[2]||!(animVersion[2]>minimum[2])&&void 0))}var minimumVersion,checkText=function(){var minimumVersion=[4,4,14];function iterateLayers(layers){var i,textLayer,documentData,len=layers.length;for(i=0;i=0;i-=1)if("sh"==arr[i].ty){if(arr[i].ks.k.i)arr[i].ks.k.c=arr[i].closed;else for(jLen=arr[i].ks.k.length,j=0;jboxWidth?(-1===lastSpaceIndex?(documentData.t=documentData.t.substr(0,i)+"\r"+documentData.t.substr(i),len+=1):(i=lastSpaceIndex,documentData.t=documentData.t.substr(0,i)+"\r"+documentData.t.substr(i+1)),lastSpaceIndex=-1,lineWidth=0):lineWidth+=cLength;len=documentData.t.length}var trackingOffset=documentData.tr/1e3*documentData.s;for(lineWidth=-trackingOffset,cLength=0,i=0;imaxLineWidth?lineWidth:maxLineWidth,lineWidth=-2*trackingOffset,val="",newLineFlag=!0,currentLine+=1):val=documentData.t.charAt(i),fontManager.chars?(charData=fontManager.getCharData(documentData.t.charAt(i),fontData.fStyle,fontManager.getFontByName(documentData.f).fFamily),cLength=newLineFlag?0:charData.w*documentData.s/100):cLength=fontManager.measureText(val,documentData.f,documentData.s),lineWidth+=cLength+trackingOffset,letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag,anIndexes:[],val:val,line:currentLine}),2==anchorGrouping){if(currentSize+=cLength,""==val||" "==val||i==len-1){for(""!=val&&" "!=val||(currentSize-=cLength);currentPos<=i;)letters[currentPos].an=currentSize,letters[currentPos].ind=index,letters[currentPos].extra=cLength,currentPos+=1;index+=1,currentSize=0}}else if(3==anchorGrouping){if(currentSize+=cLength,""==val||i==len-1){for(""==val&&(currentSize-=cLength);currentPos<=i;)letters[currentPos].an=currentSize,letters[currentPos].ind=index,letters[currentPos].extra=cLength,currentPos+=1;currentSize=0,index+=1}}else letters[index].ind=index,letters[index].extra=0,index+=1;if(documentData.l=letters,maxLineWidth=lineWidth>maxLineWidth?lineWidth:maxLineWidth,lineWidths.push(lineWidth),documentData.sz)documentData.boxWidth=documentData.sz[0],documentData.justifyOffset=0;else switch(documentData.boxWidth=maxLineWidth,documentData.j){case 1:documentData.justifyOffset=-documentData.boxWidth;break;case 2:documentData.justifyOffset=-documentData.boxWidth/2;break;default:documentData.justifyOffset=0}documentData.lineWidths=lineWidths;var animators=data.t.a;jLen=animators.length;var based,ind,indexes=[];for(j=0;j=nextKeyData.t-offsetTime){keyData.h&&(keyData=nextKeyData),iterationIndex=0;break}if(nextKeyData.t-offsetTime>frameNum){iterationIndex=i;break}i=nextKeyData.t-offsetTime||frameNum=nextKeyData.t-offsetTime?bezierData.points.length-1:0;for(kLen=bezierData.points[ind].point.length,k=0;k=addedLength&&distanceInLine=nextKeyData.t-offsetTime?perc=1:frameNum180&&(initP-=360),keyValue=initP+(endP-initP)*perc}else keyValue=1===keyData.h?keyData.s[i]:keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;1===len?newValue=keyValue:newValue[i]=keyValue}}return{value:newValue,iterationIndex:iterationIndex}}function getValueAtCurrentTime(){if(this.elem.globalData.frameId!==this.frameId){this.mdf=!1;var frameNum=this.comp.renderedFrame-this.offsetTime,initTime=this.keyframes[0].t-this.offsetTime,endTime=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(frameNum===this._caching.lastFrame||this._caching.lastFrame!==initFrame&&(this._caching.lastFrame>=endTime&&frameNum>=endTime||this._caching.lastFrame=this.p.keyframes[this.p.keyframes.length-1].t?(v1=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/this.elem.globalData.frameRate,0),v2=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.01)/this.elem.globalData.frameRate,0)):(v1=this.p.pv,v2=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/this.elem.globalData.frameRate,this.p.offsetTime)),this.v.rotate(-Math.atan2(v1[1]-v2[1],v1[0]-v2[0]));this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function setInverted(){this.inverted=!0,this.iv=new Matrix,this.k||(this.data.p.s?this.iv.translate(this.px.v,this.py.v,-this.pz.v):this.iv.translate(this.p.v[0],this.p.v[1],-this.p.v[2]),this.r?this.iv.rotate(-this.r.v):this.iv.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.s&&this.iv.scale(this.s.v[0],this.s.v[1],1),this.a&&this.iv.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]))}function autoOrient(){}return function(elem,data,arr){this.elem=elem,this.frameId=-1,this.type="transform",this.dynamicProperties=[],this.mdf=!1,this.data=data,this.getValue=processKeys,this.applyToMatrix=applyToMatrix,this.setInverted=setInverted,this.autoOrient=autoOrient,this.v=new Matrix,data.p.s?(this.px=PropertyFactory.getProp(elem,data.p.x,0,0,this.dynamicProperties),this.py=PropertyFactory.getProp(elem,data.p.y,0,0,this.dynamicProperties),data.p.z&&(this.pz=PropertyFactory.getProp(elem,data.p.z,0,0,this.dynamicProperties))):this.p=PropertyFactory.getProp(elem,data.p,1,0,this.dynamicProperties),data.r?this.r=PropertyFactory.getProp(elem,data.r,0,degToRads,this.dynamicProperties):data.rx&&(this.rx=PropertyFactory.getProp(elem,data.rx,0,degToRads,this.dynamicProperties),this.ry=PropertyFactory.getProp(elem,data.ry,0,degToRads,this.dynamicProperties),this.rz=PropertyFactory.getProp(elem,data.rz,0,degToRads,this.dynamicProperties),this.or=PropertyFactory.getProp(elem,data.or,1,degToRads,this.dynamicProperties),this.or.sh=!0),data.sk&&(this.sk=PropertyFactory.getProp(elem,data.sk,0,degToRads,this.dynamicProperties),this.sa=PropertyFactory.getProp(elem,data.sa,0,degToRads,this.dynamicProperties)),data.a&&(this.a=PropertyFactory.getProp(elem,data.a,1,0,this.dynamicProperties)),data.s&&(this.s=PropertyFactory.getProp(elem,data.s,1,.01,this.dynamicProperties)),data.o?this.o=PropertyFactory.getProp(elem,data.o,0,.01,this.dynamicProperties):this.o={mdf:!1,v:1},this.dynamicProperties.length?arr.push(this):(this.a&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r?this.v.rotate(-this.r.v):this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])),Object.defineProperty(this,"position",{get:positionGetter}),Object.defineProperty(this,"xPosition",{get:xPositionGetter}),Object.defineProperty(this,"yPosition",{get:yPositionGetter}),Object.defineProperty(this,"orientation",{get:orientationGetter}),Object.defineProperty(this,"anchorPoint",{get:anchorGetter}),Object.defineProperty(this,"rotation",{get:rotationGetter}),Object.defineProperty(this,"scale",{get:scaleGetter}),Object.defineProperty(this,"opacity",{get:opacityGetter}),Object.defineProperty(this,"skew",{get:skewGetter}),Object.defineProperty(this,"skewAxis",{get:skewAxisGetter})}}();function getProp(elem,data,type,mult,arr){var p;if(2===type)p=new TransformProperty(elem,data,arr);else if(0===data.a)p=0===type?new ValueProperty(elem,data,mult):new MultiDimensionalProperty(elem,data,mult);else if(1===data.a)p=0===type?new KeyframedValueProperty(elem,data,mult):new KeyframedMultidimensionalProperty(elem,data,mult);else if(data.k.length)if("number"==typeof data.k[0])p=new MultiDimensionalProperty(elem,data,mult);else switch(type){case 0:p=new KeyframedValueProperty(elem,data,mult);break;case 1:p=new KeyframedMultidimensionalProperty(elem,data,mult)}else p=new ValueProperty(elem,data,mult);return p.k&&arr.push(p),p}var getGradientProp=function(){function getValue(forceRender){if(this.prop.getValue(),this.cmdf=!1,this.omdf=!1,this.prop.mdf||forceRender){var i,mult,val,len=4*this.data.p;for(i=0;ie){var _s=s;s=e,e=_s}this.finalS=s,this.finalE=e}function getMult(ind){var easer=BezierFactory.getBezierEasing(this.ne.v/100,0,1-this.xe.v/100,1).get,mult=0,s=this.finalS,e=this.finalE,type=this.data.sh;if(2==type)mult=easer(mult=e===s?ind>=e?1:0:max(0,min(.5/(e-s)+(ind-s)/(e-s),1)));else if(3==type)mult=easer(mult=e===s?ind>=e?0:1:1-max(0,min(.5/(e-s)+(ind-s)/(e-s),1)));else if(4==type)e===s?mult=0:(mult=max(0,min(.5/(e-s)+(ind-s)/(e-s),1)))<.5?mult*=2:mult=1-2*(mult-.5),mult=easer(mult);else if(5==type){if(e===s)mult=0;else{var tot=e-s,x=-tot/2+(ind=min(max(0,ind+.5-s),e-s)),a=tot/2;mult=Math.sqrt(1-x*x/(a*a))}mult=easer(mult)}else 6==type?(e===s?mult=0:(ind=min(max(0,ind+.5-s),e-s),mult=(1+Math.cos(Math.PI+2*Math.PI*ind/(e-s)))/2),mult=easer(mult)):(ind>=floor(s)&&(mult=ind-s<0?1-(s-ind):max(0,min(e-ind,1))),mult=easer(mult));return mult*this.a.v}return function(elem,data,arr){this.mdf=!1,this.k=!1,this.data=data,this.dynamicProperties=[],this.getValue=updateRange,this.getMult=getMult,this.elem=elem,this.comp=elem.comp,this.finalS=0,this.finalE=0,this.s=PropertyFactory.getProp(elem,data.s||{k:0},0,0,this.dynamicProperties),this.e="e"in data?PropertyFactory.getProp(elem,data.e,0,0,this.dynamicProperties):{v:100},this.o=PropertyFactory.getProp(elem,data.o||{k:0},0,0,this.dynamicProperties),this.xe=PropertyFactory.getProp(elem,data.xe||{k:0},0,0,this.dynamicProperties),this.ne=PropertyFactory.getProp(elem,data.ne||{k:0},0,0,this.dynamicProperties),this.a=PropertyFactory.getProp(elem,data.a,0,.01,this.dynamicProperties),this.dynamicProperties.length?arr.push(this):this.getValue()}}();return{getProp:getProp,getDashProp:function(elem,data,renderer,dynamicProperties){return new DashProperty(elem,data,renderer,dynamicProperties)},getTextSelectorProp:function(elem,data,arr){return new TextSelectorProp(elem,data,arr)},getGradientProp:getGradientProp}}();function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=Array.apply(null,{length:this._maxLength}),this.o=Array.apply(null,{length:this._maxLength}),this.i=Array.apply(null,{length:this._maxLength})}ShapePath.prototype.setPathData=function(closed,len){this.c=closed,this.setLength(len);for(var i=0;i=this._maxLength&&this.doubleArrayLength(),type){case"v":arr=this.v;break;case"i":arr=this.i;break;case"o":arr=this.o}(!arr[pos]||arr[pos]&&!replace)&&(arr[pos]=point_pool.newPoint()),arr[pos][0]=x,arr[pos][1]=y},ShapePath.prototype.setTripleAt=function(vX,vY,oX,oY,iX,iY,pos,replace){this.setXYAt(vX,vY,"v",pos,replace),this.setXYAt(oX,oY,"o",pos,replace),this.setXYAt(iX,iY,"i",pos,replace)};var ShapePropertyFactory=function(){var initFrame=-999999;function interpolateShape(frameNum,iterationIndex,previousValue,isCurrentRender){var keyPropS,keyPropE,isHold;if(frameNum=this.keyframes[this.keyframes.length-1].t-this.offsetTime)keyPropS=1===this.keyframes[this.keyframes.length-2].h?this.keyframes[this.keyframes.length-1].s[0]:this.keyframes[this.keyframes.length-2].e[0],isHold=!0;else{for(var keyData,nextKeyData,j,jLen,k,kLen,perc,i=iterationIndex,len=this.keyframes.length-1,flag=!0;flag&&(keyData=this.keyframes[i],!((nextKeyData=this.keyframes[i+1]).t-this.offsetTime>frameNum));)i=nextKeyData.t-this.offsetTime)perc=1;else if(frameNumendTime&&frameNum>endTime)){var i=this.lastFramee){var _s=s;s=e,e=_s}this.sValue=s,this.eValue=e,this.oValue=o}}},TrimModifier.prototype.initModifierProperties=function(elem,data){this.sValue=0,this.eValue=0,this.oValue=0,this.getValue=this.processKeys,this.s=PropertyFactory.getProp(elem,data.s,0,.01,this.dynamicProperties),this.e=PropertyFactory.getProp(elem,data.e,0,.01,this.dynamicProperties),this.o=PropertyFactory.getProp(elem,data.o,0,0,this.dynamicProperties),this.m=data.m,this.dynamicProperties.length||this.getValue(!0)},TrimModifier.prototype.calculateShapeEdges=function(s,e,shapeLength,addedLength,totalModifierLength){var segments=[];e<=1?segments.push({s:s,e:e}):s>=1?segments.push({s:s-1,e:e-1}):(segments.push({s:s,e:1}),segments.push({s:0,e:e-1}));var i,segmentOb,shapeSegments=[],len=segments.length;for(i=0;iaddedLength+shapeLength);else shapeS=segmentOb.s*totalModifierLength<=addedLength?0:(segmentOb.s*totalModifierLength-addedLength)/shapeLength,shapeE=segmentOb.e*totalModifierLength>=addedLength+shapeLength?1:(segmentOb.e*totalModifierLength-addedLength)/shapeLength,shapeSegments.push([shapeS,shapeE])}return shapeSegments.length||shapeSegments.push([0,0]),shapeSegments},TrimModifier.prototype.processShapes=function(firstFrame){var shapePaths,i,pathsData,pathData,totalShapeLength,len=this.shapes.length,s=this.sValue,e=this.eValue,totalModifierLength=0;if(e===s)for(i=0;i=0;i-=1)if((shapeData=this.shapes[i]).shape.mdf){if((localShapeCollection=shapeData.localShapeCollection).releaseShapes(),2===this.m&&len>1){var edges=this.calculateShapeEdges(s,e,shapeData.totalShapeLength,addedLength,totalModifierLength);addedLength+=shapeData.totalShapeLength}else edges=[[shapeS,shapeE]];for(jLen=edges.length,j=0;j=1?segments.push({s:shapeData.totalShapeLength*(shapeS-1),e:shapeData.totalShapeLength*(shapeE-1)}):(segments.push({s:shapeData.totalShapeLength*shapeS,e:shapeData.totalShapeLength}),segments.push({s:0,e:shapeData.totalShapeLength*(shapeE-1)}));var newShapesData=this.addShapes(shapeData,segments[0]);if(segments[0].s!==segments[0].e){if(segments.length>1)if(shapeData.shape.v.c){var lastShape=newShapesData.pop();this.addPaths(newShapesData,localShapeCollection),newShapesData=this.addShapes(shapeData,segments[1],lastShape)}else this.addPaths(newShapesData,localShapeCollection),newShapesData=this.addShapes(shapeData,segments[1]);this.addPaths(newShapesData,localShapeCollection)}}shapeData.shape.paths=localShapeCollection}}this.dynamicProperties.length||(this.mdf=!1)},TrimModifier.prototype.addPaths=function(newPaths,localShapeCollection){var i,len=newPaths.length;for(i=0;ishapeSegment.e){shapePath.c=!1;break}shapeSegment.s<=addedLength&&shapeSegment.e>=addedLength+currentLengthData.addedLength?(this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[j],shapePaths[i].v[j],shapePath,segmentCount,newShape),newShape=!1):(segment=bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[j],shapePaths[i].o[j-1],shapePaths[i].i[j],(shapeSegment.s-addedLength)/currentLengthData.addedLength,(shapeSegment.e-addedLength)/currentLengthData.addedLength,lengths[j-1]),this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape),newShape=!1,shapePath.c=!1),addedLength+=currentLengthData.addedLength,segmentCount+=1}if(shapePaths[i].c){if(currentLengthData=lengths[j-1],addedLength<=shapeSegment.e){var segmentLength=lengths[j-1].addedLength;shapeSegment.s<=addedLength&&shapeSegment.e>=addedLength+segmentLength?(this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[0],shapePaths[i].v[0],shapePath,segmentCount,newShape),newShape=!1):(segment=bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[0],shapePaths[i].o[j-1],shapePaths[i].i[0],(shapeSegment.s-addedLength)/segmentLength,(shapeSegment.e-addedLength)/segmentLength,lengths[j-1]),this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape),newShape=!1,shapePath.c=!1)}else shapePath.c=!1;addedLength+=currentLengthData.addedLength,segmentCount+=1}if(shapePath._length&&(shapePath.setXYAt(shapePath.v[initPos][0],shapePath.v[initPos][1],"i",initPos),shapePath.setXYAt(shapePath.v[shapePath._length-1][0],shapePath.v[shapePath._length-1][1],"o",shapePath._length-1)),addedLength>shapeSegment.e)break;i0;)pos-=1,this._elements.unshift(arr[pos]),1;this.dynamicProperties.length?(this.k=!0,dynamicProperties.push(this)):this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(elements){var i,len=elements.length;for(i=0;i0?Math.floor(offset):Math.ceil(offset),pProps=(this.tr.v.props,this.pMatrix.props),rProps=this.rMatrix.props,sProps=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var iteration=0;if(offset>0){for(;iterationroundOffset;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),iteration-=1;offsetModulo&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-offsetModulo,!0),iteration-=offsetModulo)}i=1===this.data.m?0:this._currentCopies-1;var dir=1===this.data.m?1:-1;for(cont=this._currentCopies;cont;){if(0!==iteration){(0!==i&&1===dir||i!==this._currentCopies-1&&-1===dir)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]),this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]),this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);var jLen=(itemsTransform=(items=this.elemsData[i].it)[items.length-1].transform.mProps.v.props).length;for(j=0;j=currentLength+animatorOffset||!points?(perc=(currentLength+animatorOffset-segmentLength)/currentPoint.partialLength,xPathPos=prevPoint.point[0]+(currentPoint.point[0]-prevPoint.point[0])*perc,yPathPos=prevPoint.point[1]+(currentPoint.point[1]-prevPoint.point[1])*perc,matrixHelper.translate(-alignment[0]*letters[i].an/200,-alignment[1]*yOff/100),flag=!1):points&&(segmentLength+=currentPoint.partialLength,(pointInd+=1)>=points.length&&(pointInd=0,segments[segmentInd+=1]?points=segments[segmentInd].bezierData.points:mask.v.c?(pointInd=0,points=segments[segmentInd=0].bezierData.points):(segmentLength-=currentPoint.partialLength,points=null)),points&&(prevPoint=currentPoint,partialLength=(currentPoint=points[pointInd]).partialLength));offf=letters[i].an/2-letters[i].add,matrixHelper.translate(-offf,0,0)}else offf=letters[i].an/2-letters[i].add,matrixHelper.translate(-offf,0,0),matrixHelper.translate(-alignment[0]*letters[i].an/200,-alignment[1]*yOff/100,0);for(letters[i].l/2,j=0;j0&&this.element.maskedElement.setAttribute(maskRef,"url("+locationHref+"#"+layerId+")"),defs.appendChild(this.maskElement)}function BaseElement(){}function SVGBaseElement(data,parentContainer,globalData,comp,placeholder){this.globalData=globalData,this.comp=comp,this.data=data,this.matteElement=null,this.transformedElement=null,this.isTransparent=!1,this.parentContainer=parentContainer,this.layerId=placeholder?placeholder.layerId:"ly_"+randomString(10),this.placeholder=placeholder,this._sizeChanged=!1,this.init()}function IShapeElement(data,parentContainer,globalData,comp,placeholder){this.shapes=[],this.shapesData=data.shapes,this.stylesList=[],this.itemsData=[],this.prevViewData=[],this.shapeModifiers=[],this.processedElements=[],this._parent.constructor.call(this,data,parentContainer,globalData,comp,placeholder)}BaseRenderer.prototype.checkLayers=function(num){var i,data,len=this.layers.length;for(this.completeLayers=!0,i=len-1;i>=0;i--)this.elements[i]||(data=this.layers[i]).ip-data.st<=num-this.layers[i].st&&data.op-data.st>num-this.layers[i].st&&this.buildItem(i),this.completeLayers=!!this.elements[i]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(layer){switch(layer.ty){case 2:return this.createImage(layer);case 0:return this.createComp(layer);case 1:return this.createSolid(layer);case 4:return this.createShape(layer);case 5:return this.createText(layer);case 13:return this.createCamera(layer);case 99:return null}return this.createBase(layer)},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.buildAllItems=function(){var i,len=this.layers.length;for(i=0;i=0;i--)(this.completeLayers||this.elements[i])&&this.elements[i].prepareFrame(num-this.layers[i].st);for(i=len-1;i>=0;i--)(this.completeLayers||this.elements[i])&&this.elements[i].renderFrame()}},SVGRenderer.prototype.appendElementInPos=function(element,pos){var newElement=element.getBaseElement();if(newElement){for(var nextElement,i=0;i1&&(pathString+=" C"+bm_rnd(pathNodes.o[i-1][0])+","+bm_rnd(pathNodes.o[i-1][1])+" "+bm_rnd(pathNodes.i[0][0])+","+bm_rnd(pathNodes.i[0][1])+" "+bm_rnd(pathNodes.v[0][0])+","+bm_rnd(pathNodes.v[0][1])),viewData.lastPath!==pathString&&(viewData.elem&&(pathNodes.c?pathData.inv?viewData.elem.setAttribute("d",this.solidPath+pathString):viewData.elem.setAttribute("d",pathString):viewData.elem.setAttribute("d","")),viewData.lastPath=pathString)},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null},BaseElement.prototype.checkMasks=function(){if(!this.data.hasMask)return!1;for(var i=0,len=this.data.masksProperties.length;inum?!0!==this.isVisible&&(this.elemMdf=!0,this.globalData.mdf=!0,this.isVisible=!0,this.firstFrame=!0,this.data.hasMask&&(this.maskManager.firstFrame=!0)):!1!==this.isVisible&&(this.elemMdf=!0,this.globalData.mdf=!0,this.isVisible=!1);var i,len=this.dynamicProperties.length;for(i=0;i4*arr.g.p||arr.g.k.k.length>4*arr.g.p){var opFill,stop,j,jLen,mask=document.createElementNS(svgNS,"mask"),maskElement=document.createElementNS(svgNS,"path");mask.appendChild(maskElement);var opacityId="op_"+randomString(10),maskId="mk_"+randomString(10);mask.setAttribute("id",maskId),(opFill=1===arr.t?document.createElementNS(svgNS,"linearGradient"):document.createElementNS(svgNS,"radialGradient")).setAttribute("id",opacityId),opFill.setAttribute("spreadMethod","pad"),opFill.setAttribute("gradientUnits","userSpaceOnUse"),jLen=arr.g.k.k[0].s?arr.g.k.k[0].s.length:arr.g.k.k.length;var stops=[];for(j=4*arr.g.p;j=0;i-=1){if((processedPos=this.searchProcessedElement(arr[i]))?itemsData[i]=prevViewData[processedPos-1]:arr[i]._render=render,"fl"==arr[i].ty||"st"==arr[i].ty||"gf"==arr[i].ty||"gs"==arr[i].ty)processedPos?itemsData[i].style.closed=!1:itemsData[i]=this.createStyleElement(arr[i],level,dynamicProperties),arr[i]._render&&container.appendChild(itemsData[i].elem),ownStyles.push(itemsData[i].style);else if("gr"==arr[i].ty){if(processedPos)for(jLen=itemsData[i].it.length,j=0;j=0;i-=1)this.shapeModifiers[i].processShapes(this.firstFrame)}},IShapeElement.prototype.renderFrame=function(parentMatrix){if(!1!==this._parent.renderFrame.call(this,parentMatrix)){this.hidden&&(this.layerElement.style.display="block",this.hidden=!1),this.renderModifiers();var i,len=this.stylesList.length;for(i=0;i=0;i-=1)"0"!==this.stylesList[i].ld&&(this.stylesList[i].ld="0",this.stylesList[i].pElem.style.display="none",this.stylesList[i].pElem.parentNode&&(this.stylesList[i].parent=this.stylesList[i].pElem.parentNode));this.hidden=!0}},IShapeElement.prototype.renderShape=function(items,data,container){var i,ty;for(i=items.length-1;i>=0;i-=1)"tr"==(ty=items[i].ty)?((this.firstFrame||data[i].transform.op.mdf&&container)&&container.setAttribute("opacity",data[i].transform.op.v),(this.firstFrame||data[i].transform.mProps.mdf&&container)&&container.setAttribute("transform",data[i].transform.mProps.v.to2dCSS())):"sh"==ty||"el"==ty||"rc"==ty||"sr"==ty?this.renderPath(items[i],data[i]):"fl"==ty?this.renderFill(items[i],data[i]):"gf"==ty?this.renderGradient(items[i],data[i]):"gs"==ty?(this.renderGradient(items[i],data[i]),this.renderStroke(items[i],data[i])):"st"==ty?this.renderStroke(items[i],data[i]):"gr"==ty&&this.renderShape(items[i].it,data[i].it,data[i].gr)},IShapeElement.prototype.buildShapeString=function(pathNodes,length,closed,mat){var i,shapeString="";for(i=1;i0;)redraw=itemData.transformers[k].mProps.mdf||redraw,props=itemData.transformers[k].mProps.v.props,mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]),iterations--,k--;if(redraw){for(j=0;j=1?.99:itemData.h.v<=-1?-.99:itemData.h.v),x=Math.cos(ang+itemData.a.v)*dist+pt1[0],y=Math.sin(ang+itemData.a.v)*dist+pt1[1];gfill.setAttribute("fx",x),gfill.setAttribute("fy",y),opFill&&(opFill.setAttribute("fx",x),opFill.setAttribute("fy",y))}},IShapeElement.prototype.renderStroke=function(styleData,itemData){var styleElem=itemData.style,d=itemData.d;d&&d.k&&(d.mdf||this.firstFrame)&&(styleElem.pElem.setAttribute("stroke-dasharray",d.dasharray),styleElem.pElem.setAttribute("stroke-dashoffset",d.dashoffset)),itemData.c&&(itemData.c.mdf||this.firstFrame)&&styleElem.pElem.setAttribute("stroke","rgb("+bm_floor(itemData.c.v[0])+","+bm_floor(itemData.c.v[1])+","+bm_floor(itemData.c.v[2])+")"),(itemData.o.mdf||this.firstFrame)&&styleElem.pElem.setAttribute("stroke-opacity",itemData.o.v),(itemData.w.mdf||this.firstFrame)&&(styleElem.pElem.setAttribute("stroke-width",itemData.w.v),styleElem.msElem&&styleElem.msElem.setAttribute("stroke-width",itemData.w.v))},IShapeElement.prototype.destroy=function(){this._parent.destroy.call(this._parent),this.shapeData=null,this.itemsData=null,this.parentContainer=null,this.placeholder=null},ITextElement.prototype.init=function(){this._frameId=-1,this.lettersChangedFlag=!0,this.currentTextDocumentData=this.data.t.d.k[0].s,this.dynamicProperties=this.dynamicProperties||[],this.textAnimator=new TextAnimatorProperty(this.data.t,this.renderType,this),this._parent.init.call(this),this.textAnimator.searchProperties(this.dynamicProperties),this.buildNewText()},ITextElement.prototype.prepareFrame=function(num){if(this._frameId!==this.globalData.frameId){this._frameId=this.globalData.frameId;for(var textKeys=this.data.t.d.k,i=0,len=textKeys.length;inum)););this.lettersChangedFlag=!1,textDocumentData!==this.currentTextDocumentData&&(this.currentTextDocumentData=textDocumentData,this.lettersChangedFlag=!0,this.buildNewText()),this._parent.prepareFrame.call(this,num)}},ITextElement.prototype.createPathShape=function(matrixHelper,shapes){var j,pathNodes,jLen=shapes.length,shapeStr="";for(j=0;j=max?inputDelta<0?outputBlack:outputWhite:outputBlack+outputDelta*Math.pow((perc-inputBlack)/inputDelta,1/gamma),table[pos++]=colorValue,cnt+=256/255;return table.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(forceRender){if(forceRender||this.filterManager.mdf){var val,effectElements=this.filterManager.effectElements;this.feFuncRComposed&&(forceRender||effectElements[2].p.mdf||effectElements[3].p.mdf||effectElements[4].p.mdf||effectElements[5].p.mdf||effectElements[6].p.mdf)&&(val=this.getTableValue(effectElements[2].p.v,effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v),this.feFuncRComposed.setAttribute("tableValues",val),this.feFuncGComposed.setAttribute("tableValues",val),this.feFuncBComposed.setAttribute("tableValues",val)),this.feFuncR&&(forceRender||effectElements[9].p.mdf||effectElements[10].p.mdf||effectElements[11].p.mdf||effectElements[12].p.mdf||effectElements[13].p.mdf)&&(val=this.getTableValue(effectElements[9].p.v,effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v),this.feFuncR.setAttribute("tableValues",val)),this.feFuncG&&(forceRender||effectElements[16].p.mdf||effectElements[17].p.mdf||effectElements[18].p.mdf||effectElements[19].p.mdf||effectElements[20].p.mdf)&&(val=this.getTableValue(effectElements[16].p.v,effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v),this.feFuncG.setAttribute("tableValues",val)),this.feFuncB&&(forceRender||effectElements[23].p.mdf||effectElements[24].p.mdf||effectElements[25].p.mdf||effectElements[26].p.mdf||effectElements[27].p.mdf)&&(val=this.getTableValue(effectElements[23].p.v,effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v),this.feFuncB.setAttribute("tableValues",val)),this.feFuncA&&(forceRender||effectElements[30].p.mdf||effectElements[31].p.mdf||effectElements[32].p.mdf||effectElements[33].p.mdf||effectElements[34].p.mdf)&&(val=this.getTableValue(effectElements[30].p.v,effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v),this.feFuncA.setAttribute("tableValues",val))}},SVGDropShadowEffect.prototype.renderFrame=function(forceRender){if(forceRender||this.filterManager.mdf){if((forceRender||this.filterManager.effectElements[4].p.mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),forceRender||this.filterManager.effectElements[0].p.mdf){var col=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*col[0]),Math.round(255*col[1]),Math.round(255*col[2])))}if((forceRender||this.filterManager.effectElements[1].p.mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),forceRender||this.filterManager.effectElements[2].p.mdf||this.filterManager.effectElements[3].p.mdf){var distance=this.filterManager.effectElements[3].p.v,angle=(this.filterManager.effectElements[2].p.v-90)*degToRads,x=distance*Math.cos(angle),y=distance*Math.sin(angle);this.feOffset.setAttribute("dx",x),this.feOffset.setAttribute("dy",y)}}},SVGMatte3Effect.prototype.setElementAsMask=function(elem,mask){var masker=document.createElementNS(svgNS,"mask");masker.setAttribute("id",mask.layerId),masker.setAttribute("mask-type","alpha"),masker.appendChild(mask.layerElement),elem.setMatte(mask.layerId),mask.data.hd=!1,elem.globalData.defs.appendChild(masker)},SVGMatte3Effect.prototype.initialize=function(){for(var ind=this.filterManager.effectElements[0].p.v,i=0,len=this.elem.comp.elements.length;i=0;i-=1)registeredAnimations[i].animation.destroy(animation)},moduleOb}(),AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.pendingElements=0,this.playCount=0,this.prerenderFramesFlag=!0,this.animationData={},this.layers=[],this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=randomString(10),this.scaleMode="fit",this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.subframeEnabled=subframeEnabled,this.segments=[],this.pendingSegment=!1,this._idle=!0,this.projectInterface=ProjectInterface()};function CanvasRenderer(animationItem,config){this.animationItem=animationItem,this.renderConfig={clearCanvas:!config||void 0===config.clearCanvas||config.clearCanvas,context:config&&config.context||null,progressiveLoad:config&&config.progressiveLoad||!1,preserveAspectRatio:config&&config.preserveAspectRatio||"xMidYMid meet",className:config&&config.className||""},this.renderConfig.dpr=config&&config.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=config&&config.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1},this.contextData={saved:Array.apply(null,{length:15}),savedOp:Array.apply(null,{length:15}),cArrPos:0,cTr:new Matrix,cO:1};var i;for(i=0;i<15;i+=1)this.contextData.saved[i]=Array.apply(null,{length:16});this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1}function HybridRenderer(animationItem,config){this.animationItem=animationItem,this.layers=null,this.renderedFrame=-1,this.globalData={frameNum:-1},this.renderConfig={className:config&&config.className||""},this.pendingElements=[],this.elements=[],this.threeDElements=[],this.destroyed=!1,this.camera=null,this.supports3d=!0}function CVBaseElement(data,comp,globalData){this.globalData=globalData,this.data=data,this.comp=comp,this.canvasContext=globalData.canvasContext,this.init()}function CVCompElement(data,comp,globalData){this._parent.constructor.call(this,data,comp,globalData);var compGlobalData={};for(var s in globalData)globalData.hasOwnProperty(s)&&(compGlobalData[s]=globalData[s]);compGlobalData.renderer=this,compGlobalData.compHeight=this.data.h,compGlobalData.compWidth=this.data.w,this.renderConfig={clearCanvas:!0},this.contextData={saved:Array.apply(null,{length:15}),savedOp:Array.apply(null,{length:15}),cArrPos:0,cTr:new Matrix,cO:1},this.completeLayers=!1;var i;for(i=0;i<15;i+=1)this.contextData.saved[i]=Array.apply(null,{length:16});this.transformMat=new Matrix,this.parentGlobalData=this.globalData;var cv=document.createElement("canvas");compGlobalData.canvasContext=cv.getContext("2d"),this.canvasContext=compGlobalData.canvasContext,cv.width=this.data.w,cv.height=this.data.h,this.canvas=cv,this.globalData=compGlobalData,this.layers=data.layers,this.pendingElements=[],this.elements=Array.apply(null,{length:this.layers.length}),this.data.tm&&(this.tm=PropertyFactory.getProp(this,this.data.tm,0,globalData.frameRate,this.dynamicProperties)),!this.data.xt&&globalData.progressiveLoad||this.buildAllItems()}function CVImageElement(data,comp,globalData){this.assetData=globalData.getAssetData(data.refId),this._parent.constructor.call(this,data,comp,globalData),this.globalData.addPendingElement()}function CVMaskElement(data,element){this.data=data,this.element=element,this.dynamicProperties=[],this.masksProperties=this.data.masksProperties,this.viewData=Array.apply(null,{length:this.masksProperties.length});var i,len=this.masksProperties.length;for(i=0;ithis.animationData.op&&(this.animationData.op=data.op,this.totalFrames=Math.floor(data.op-this.animationData.ip),this.animationData.tf=this.totalFrames);var i,j,layers=this.animationData.layers,len=layers.length,newLayers=data.layers,jLen=newLayers.length;for(j=0;jthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){!1!==this.isLoaded&&this.renderer.renderFrame(this.currentFrame+this.firstFrame)},AnimationItem.prototype.play=function(name){name&&this.name!=name||!0===this.isPaused&&(this.isPaused=!1,this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(name){name&&this.name!=name||!1===this.isPaused&&(this.isPaused=!0,this.pendingSegment||(this._idle=!0,this.trigger("_idle")))},AnimationItem.prototype.togglePause=function(name){name&&this.name!=name||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(name){name&&this.name!=name||(this.pause(),this.currentFrame=this.currentRawFrame=0,this.playCount=0,this.gotoFrame())},AnimationItem.prototype.goToAndStop=function(value,isFrame,name){name&&this.name!=name||(isFrame?this.setCurrentRawFrameValue(value):this.setCurrentRawFrameValue(value*this.frameModifier),this.pause())},AnimationItem.prototype.goToAndPlay=function(value,isFrame,name){this.goToAndStop(value,isFrame,name),this.play()},AnimationItem.prototype.advanceTime=function(value){if(this.pendingSegment)return this.pendingSegment=!1,this.adjustSegment(this.segments.shift()),void(this.isPaused&&this.play());!0!==this.isPaused&&!1!==this.isLoaded&&this.setCurrentRawFrameValue(this.currentRawFrame+value*this.frameModifier)},AnimationItem.prototype.updateAnimation=function(perc){this.setCurrentRawFrameValue(this.totalFrames*perc)},AnimationItem.prototype.moveFrame=function(value,name){name&&this.name!=name||this.setCurrentRawFrameValue(this.currentRawFrame+value)},AnimationItem.prototype.adjustSegment=function(arr){this.playCount=0,arr[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=arr[0]-arr[1],this.firstFrame=arr[1],this.setCurrentRawFrameValue(this.totalFrames-.01)):arr[1]>arr[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=arr[1]-arr[0],this.firstFrame=arr[0],this.setCurrentRawFrameValue(0)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(init,end){var pendingFrame=-1;this.isPaused&&(this.currentRawFrame+this.firstFrameend&&(pendingFrame=end-init-.01)),this.firstFrame=init,this.totalFrames=end-init,-1!==pendingFrame&&this.goToAndStop(pendingFrame,!0)},AnimationItem.prototype.playSegments=function(arr,forceFlag){if("object"==typeof arr[0]){var i,len=arr.length;for(i=0;i=this.totalFrames){if(this.checkSegments(),!1===this.loop)return this.currentRawFrame=this.totalFrames-.01,this.gotoFrame(),this.pause(),void this.trigger("complete");if(this.trigger("loopComplete"),this.playCount+=1,!0!==this.loop&&this.playCount==this.loop||this.pendingSegment)return this.currentRawFrame=this.totalFrames-.01,this.gotoFrame(),this.pause(),void this.trigger("complete");this.currentRawFrame=this.currentRawFrame%this.totalFrames}else if(this.currentRawFrame<0)return this.checkSegments(),this.playCount-=1,this.playCount<0&&(this.playCount=0),!1===this.loop||this.pendingSegment?(this.currentRawFrame=0,this.gotoFrame(),this.pause(),void this.trigger("complete")):(this.trigger("loopComplete"),this.currentRawFrame=(this.totalFrames+this.currentRawFrame)%this.totalFrames,void this.gotoFrame());this.gotoFrame()},AnimationItem.prototype.setSpeed=function(val){this.playSpeed=val,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(val){this.playDirection=val<0?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssetsPath=function(assetData){var path="";if(this.assetsPath){var imagePath=assetData.p;-1!==imagePath.indexOf("images/")&&(imagePath=imagePath.split("/")[1]),path=this.assetsPath+imagePath}else path=this.path,path+=assetData.u?assetData.u:"",path+=assetData.p;return path},AnimationItem.prototype.getAssetData=function(id){for(var i=0,len=this.assets.length;ielementRel&&"meet"===fillType||animationRelelementRel&&"slice"===fillType)?(elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===xPos&&(animationRelelementRel&&"slice"===fillType)?(elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===yPos&&(animationRel>elementRel&&"meet"===fillType||animationRelelementRel&&"meet"===fillType||animationRel=0;i-=1)this.elements[i].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRenderer.prototype.renderFrame=function(num){if(!(this.renderedFrame==num&&!0===this.renderConfig.clearCanvas||this.destroyed||null===num)){this.renderedFrame=num,this.globalData.frameNum=num-this.animationItem.firstFrame,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=num,!0===this.renderConfig.clearCanvas?(this.reset(),this.canvasContext.save(),this.canvasContext.clearRect(this.transformCanvas.tx,this.transformCanvas.ty,this.transformCanvas.w*this.transformCanvas.sx,this.transformCanvas.h*this.transformCanvas.sy)):this.save(),this.ctxTransform(this.transformCanvas.props),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.closePath(),this.canvasContext.clip();var i,len=this.layers.length;for(this.completeLayers||this.checkLayers(num),i=0;i=0;i-=1)(this.completeLayers||this.elements[i])&&this.elements[i].renderFrame();!0!==this.renderConfig.clearCanvas?this.restore():this.canvasContext.restore()}},CanvasRenderer.prototype.buildItem=function(pos){var elements=this.elements;if(!elements[pos]&&99!=this.layers[pos].ty){var element=this.createItem(this.layers[pos],this,this.globalData);elements[pos]=element,element.initExpressions(),0===this.layers[pos].ty&&element.resize(this.globalData.transformCanvas)}},CanvasRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRenderer.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRenderer.prototype.show=function(){this.animationItem.container.style.display="block"},CanvasRenderer.prototype.searchExtraCompositions=function(assets){var i,len=assets.length;document.createElementNS(svgNS,"g");for(i=0;i=pos)return this.threeDElements[i].perspectiveElem;i+=1}},HybridRenderer.prototype.createThreeDContainer=function(pos){var perspectiveElem=document.createElement("div");styleDiv(perspectiveElem),perspectiveElem.style.width=this.globalData.compSize.w+"px",perspectiveElem.style.height=this.globalData.compSize.h+"px",perspectiveElem.style.transformOrigin=perspectiveElem.style.mozTransformOrigin=perspectiveElem.style.webkitTransformOrigin="50% 50%";var container=document.createElement("div");styleDiv(container),container.style.transform=container.style.webkitTransform="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)",perspectiveElem.appendChild(container),this.resizerElem.appendChild(perspectiveElem);var threeDContainerData={container:container,perspectiveElem:perspectiveElem,startPos:pos,endPos:pos};return this.threeDElements.push(threeDContainerData),threeDContainerData},HybridRenderer.prototype.build3dContainers=function(){var i,lastThreeDContainerData,len=this.layers.length;for(i=0;ielementRel?(sx=elementWidth/this.globalData.compSize.w,sy=elementWidth/this.globalData.compSize.w,tx=0,ty=(elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2):(sx=elementHeight/this.globalData.compSize.h,sy=elementHeight/this.globalData.compSize.h,tx=(elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2,ty=0),this.resizerElem.style.transform=this.resizerElem.style.webkitTransform="matrix3d("+sx+",0,0,0,0,"+sy+",0,0,0,0,1,0,"+tx+","+ty+",0,1)"},HybridRenderer.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRenderer.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRenderer.prototype.show=function(){this.resizerElem.style.display="block"},HybridRenderer.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var i,cWidth=this.globalData.compSize.w,cHeight=this.globalData.compSize.h,len=this.threeDElements.length;for(i=0;i=0;i-=1)(this.completeLayers||this.elements[i])&&this.elements[i].renderFrame();this.data.hasMask&&this.globalData.renderer.restore(!0),this.firstFrame&&(this.firstFrame=!1),this.parentGlobalData.renderer.save(),this.parentGlobalData.renderer.ctxTransform(this.finalTransform.mat.props),this.parentGlobalData.renderer.ctxOpacity(this.finalTransform.opacity),this.parentGlobalData.renderer.canvasContext.drawImage(this.canvas,0,0,this.data.w,this.data.h),this.parentGlobalData.renderer.restore(),this.globalData.mdf&&this.reset()}},CVCompElement.prototype.setElements=function(elems){this.elements=elems},CVCompElement.prototype.getElements=function(){return this.elements},CVCompElement.prototype.destroy=function(){var i;for(i=this.layers.length-1;i>=0;i-=1)this.elements[i].destroy();this.layers=null,this.elements=null,this._parent.destroy.call(this._parent)},CVCompElement.prototype.checkLayers=CanvasRenderer.prototype.checkLayers,CVCompElement.prototype.buildItem=CanvasRenderer.prototype.buildItem,CVCompElement.prototype.checkPendingElements=CanvasRenderer.prototype.checkPendingElements,CVCompElement.prototype.addPendingElement=CanvasRenderer.prototype.addPendingElement,CVCompElement.prototype.buildAllItems=CanvasRenderer.prototype.buildAllItems,CVCompElement.prototype.createItem=CanvasRenderer.prototype.createItem,CVCompElement.prototype.createImage=CanvasRenderer.prototype.createImage,CVCompElement.prototype.createComp=CanvasRenderer.prototype.createComp,CVCompElement.prototype.createSolid=CanvasRenderer.prototype.createSolid,CVCompElement.prototype.createShape=CanvasRenderer.prototype.createShape,CVCompElement.prototype.createText=CanvasRenderer.prototype.createText,CVCompElement.prototype.createBase=CanvasRenderer.prototype.createBase,CVCompElement.prototype.buildElementParenting=CanvasRenderer.prototype.buildElementParenting,createElement(CVBaseElement,CVImageElement),CVImageElement.prototype.createElements=function(){var imageLoaded=function(){if(this.globalData.elementLoaded(),this.assetData.w!==this.img.width||this.assetData.h!==this.img.height){var canvas=document.createElement("canvas");canvas.width=this.assetData.w,canvas.height=this.assetData.h;var widthCrop,heightCrop,ctx=canvas.getContext("2d"),imgW=this.img.width,imgH=this.img.height,imgRel=imgW/imgH,canvasRel=this.assetData.w/this.assetData.h;imgRel>canvasRel?widthCrop=(heightCrop=imgH)*canvasRel:heightCrop=(widthCrop=imgW)/canvasRel,ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h),this.img=canvas}}.bind(this),imageFailed=function(){this.failed=!0,this.globalData.elementLoaded()}.bind(this);this.img=new Image,this.img.addEventListener("load",imageLoaded,!1),this.img.addEventListener("error",imageFailed,!1);var assetPath=this.globalData.getAssetsPath(this.assetData);this.img.src=assetPath,this._parent.createElements.call(this)},CVImageElement.prototype.renderFrame=function(parentMatrix){if(!this.failed&&!1!==this._parent.renderFrame.call(this,parentMatrix)){var ctx=this.canvasContext;this.globalData.renderer.save();var finalMat=this.finalTransform.mat.props;this.globalData.renderer.ctxTransform(finalMat),this.globalData.renderer.ctxOpacity(this.finalTransform.opacity),ctx.drawImage(this.img,0,0),this.globalData.renderer.restore(this.data.hasMask),this.firstFrame&&(this.firstFrame=!1)}},CVImageElement.prototype.destroy=function(){this.img=null,this._parent.destroy.call(this._parent)},CVMaskElement.prototype.prepareFrame=function(num){var i,len=this.dynamicProperties.length;for(i=0;i=0;i-=1){if((processedPos=this.searchProcessedElement(arr[i]))?itemsData[i]=prevViewData[processedPos-1]:arr[i]._render=render,"fl"==arr[i].ty||"st"==arr[i].ty)processedPos?itemsData[i].style.closed=!1:itemsData[i]=this.createStyleElement(arr[i],dynamicProperties),ownArrays.push(itemsData[i].style);else if("gr"==arr[i].ty){if(processedPos)for(jLen=itemsData[i].it.length,j=0;j=0;i-=1)if("tr"==items[i].ty){groupTransform=data[i].transform;var mtArr=data[i].transform.mProps.v.props;if(groupTransform.matMdf=groupTransform.mProps.mdf,groupTransform.opMdf=groupTransform.op.mdf,(groupMatrix=groupTransform.mat).cloneFromProps(mtArr),parentTransform){var props=parentTransform.mat.props;groupTransform.opacity=parentTransform.opacity,groupTransform.opacity*=data[i].transform.op.v,groupTransform.matMdf=!!parentTransform.matMdf||groupTransform.matMdf,groupTransform.opMdf=!!parentTransform.opMdf||groupTransform.opMdf,groupMatrix.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15])}else groupTransform.opacity=groupTransform.op.o}else"sh"==items[i].ty||"el"==items[i].ty||"rc"==items[i].ty||"sr"==items[i].ty?this.renderPath(items[i],data[i],groupTransform):"fl"==items[i].ty?this.renderFill(items[i],data[i],groupTransform):"st"==items[i].ty?this.renderStroke(items[i],data[i],groupTransform):"gr"==items[i].ty?this.renderShape(groupTransform,items[i].it,data[i].it):items[i].ty;if(isMain){len=this.stylesList.length;var j,jLen,k,kLen,elems,nodes,type,renderer=this.globalData.renderer,ctx=this.globalData.canvasContext;for(renderer.save(),renderer.ctxTransform(this.finalTransform.mat.props),i=0;ilengthPos){lengths[i].segments;var initIndex=i,endIndex=shapePath.c&&i===len-1?0:i+1,segmentPerc=(lengthPos-accumulatedLength)/lengths[i].addedLength,pt=bez.getPointInSegment(shapePath.v[initIndex],shapePath.v[endIndex],shapePath.o[initIndex],shapePath.i[endIndex],segmentPerc,lengths[i]);break}accumulatedLength+=lengths[i].addedLength,i+=1}return pt||(pt=shapePath.c?[shapePath.v[0][0],shapePath.v[0][1]]:[shapePath.v[shapePath._length-1][0],shapePath.v[shapePath._length-1][1]]),pt},ShapePropertyConstructorFunction.prototype.setGroupProperty=setGroupProperty,ShapePropertyConstructorFunction.prototype.getValueAtTime=getStaticValueAtTime,KeyframedShapePropertyConstructorFunction.prototype.vertices=ShapePropertyConstructorFunction.prototype.vertices,KeyframedShapePropertyConstructorFunction.prototype.points=ShapePropertyConstructorFunction.prototype.points,KeyframedShapePropertyConstructorFunction.prototype.inTangents=ShapePropertyConstructorFunction.prototype.inTangents,KeyframedShapePropertyConstructorFunction.prototype.outTangents=ShapePropertyConstructorFunction.prototype.outTangents,KeyframedShapePropertyConstructorFunction.prototype.isClosed=ShapePropertyConstructorFunction.prototype.isClosed,KeyframedShapePropertyConstructorFunction.prototype.pointOnPath=ShapePropertyConstructorFunction.prototype.pointOnPath,KeyframedShapePropertyConstructorFunction.prototype.setGroupProperty=ShapePropertyConstructorFunction.prototype.setGroupProperty,KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime=function(frameNum){if(this._shapeValueAtTime||(this._lastIndexAtTime=0,this._lastTimeAtTime=-999999,this._shapeValueAtTime=shape_pool.clone(this.pv)),frameNum!==this._lastTimeAtTime){this._lastTimeAtTime=frameNum,frameNum*=this.elem.globalData.frameRate;var interpolationResult=this.interpolateShape(frameNum,this._lastIndexAtTime,this._shapeValueAtTime,!1);this._lastIndexAtTime=interpolationResult.iterationIndex}return this._shapeValueAtTime};var propertyGetShapeProp=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(elem,data,type,arr,trims){var prop=propertyGetShapeProp(elem,data,type,arr,trims),isAdded=prop.k;return void 0!==data.ix&&Object.defineProperty(prop,"propertyIndex",{get:function(){return data.ix}}),3===type?searchExpressions(elem,data.pt,prop):4===type&&searchExpressions(elem,data.ks,prop),!isAdded&&prop.x&&arr.push(prop),prop};var propertyGetTextProp=PropertyFactory.getTextSelectorProp;PropertyFactory.getTextSelectorProp=function(elem,data,arr){return 1===data.t?new TextExpressionSelectorProp(elem,data,arr):propertyGetTextProp(elem,data,arr)}}();var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null;function duplicatePropertyValue(value,mult){if(mult=mult||1,"number"==typeof value||value instanceof Number)return value*mult;if(value.i)return JSON.parse(JSON.stringify(value));var i,arr=Array.apply(null,{length:value.length}),len=value.length;for(i=0;imax){var mm=max;max=min,min=mm}return Math.min(Math.max(num,min),max)}function radiansToDegrees(val){return val/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(val){return val*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(arr1,arr2){if("number"==typeof arr1||arr1 instanceof Number)return arr2=arr2||0,Math.abs(arr1-arr2);arr2||(arr2=helperLengthArray);var i,len=Math.min(arr1.length,arr2.length),addedLength=0;for(i=0;i.5?d/(2-max-min):d/(max+min),max){case r:h=(g-b)/d+(g1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+(q-p)*(2/3-t)*6:p}var q=l<.5?l*(1+s):l+s-l*s,p=2*l-q;r=hue2rgb(p,q,h+1/3),g=hue2rgb(p,q,h),b=hue2rgb(p,q,h-1/3)}return[r,g,b,val[3]]}function linear(t,tMin,tMax,value1,value2){if(void 0===value1||void 0===value2)return linear(t,0,1,tMin,tMax);if(t<=tMin)return value1;if(t>=tMax)return value2;var perc=tMax===tMin?0:(t-tMin)/(tMax-tMin);if(!value1.length)return value1+(value2-value1)*perc;var i,len=value1.length,arr=Array.apply(null,{length:len});for(i=0;i1){for(j=0;j=firstKeyFrame)return this.pv;if(durationFlag?lastKeyFrame=firstKeyFrame+(cycleDuration=duration?Math.abs(elem.comp.globalData.frameRate*duration):Math.max(0,this.elem.data.op-firstKeyFrame)):((!duration||duration>keyframes.length-1)&&(duration=keyframes.length-1),cycleDuration=(lastKeyFrame=keyframes[duration].t)-firstKeyFrame),"pingpong"===type){if(Math.floor((firstKeyFrame-currentFrame)/cycleDuration)%2==0)return this.getValueAtTime(((firstKeyFrame-currentFrame)%cycleDuration+firstKeyFrame-offsetTime)/this.comp.globalData.frameRate,0)}else{if("offset"===type){var initV=this.getValueAtTime(firstKeyFrame/this.comp.globalData.frameRate,0),endV=this.getValueAtTime(lastKeyFrame/this.comp.globalData.frameRate,0),current=this.getValueAtTime((cycleDuration-(firstKeyFrame-currentFrame)%cycleDuration+firstKeyFrame)/this.comp.globalData.frameRate,0),repeats=Math.floor((firstKeyFrame-currentFrame)/cycleDuration)+1;if(this.pv.length){for(len=(ret=new Array(initV.length)).length,i=0;ikeyframes.length-1)&&(duration=keyframes.length-1),cycleDuration=lastKeyFrame-(firstKeyFrame=keyframes[keyframes.length-1-duration].t));var i,len,ret,offsetTime=this.offsetTime||0;if("pingpong"===type.toLowerCase()){if(Math.floor((currentFrame-firstKeyFrame)/cycleDuration)%2!=0)return this.getValueAtTime((cycleDuration-(currentFrame-firstKeyFrame)%cycleDuration+firstKeyFrame-offsetTime)/this.comp.globalData.frameRate,0)}else{if("offset"===type){var initV=this.getValueAtTime(firstKeyFrame/this.comp.globalData.frameRate,0),endV=this.getValueAtTime(lastKeyFrame/this.comp.globalData.frameRate,0),current=this.getValueAtTime(((currentFrame-firstKeyFrame)%cycleDuration+firstKeyFrame)/this.comp.globalData.frameRate,0),repeats=Math.floor((currentFrame-firstKeyFrame)/cycleDuration);if(this.pv.length){for(len=(ret=new Array(initV.length)).length,i=0;idata.k[i].t&&timedata.k[i+1].t-time?(index=i+2,keyTime=data.k[i+1].t):(index=i+1,keyTime=data.k[i].t);break}}-1===index&&(index=i+1,keyTime=data.k[i].t)}else index=0,keyTime=0;var ob={};return ob.index=index,ob.time=keyTime/elem.comp.globalData.frameRate,ob}function key(ind){var ob,i,len,arr;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+ind);for(ind-=1,ob={time:data.k[ind].t/elem.comp.globalData.frameRate},len=(arr=ind!==data.k.length-1||data.k[ind].h?data.k[ind].s:data.k[ind-1].e).length,i=0;i1&&(defaultCurveSegments=value);roundValues(!(defaultCurveSegments>=50))}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(type,plugin){"expressions"===type&&(expressionsPlugin=plugin)}function getFactory(name){switch(name){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(variable){for(var vars=queryString.split("&"),i=0;i-1},propsToAccessibilityComponent:function(props){if(void 0===props&&(props=propsToAccessibilityComponent_emptyObject),"label"===props.accessibilityRole)return"label";var role=AccessibilityUtil_propsToAriaRole(props);return role?"heading"===role?"h"+(props["aria-level"]||1):roleComponents[role]:void 0},propsToAriaRole:AccessibilityUtil_propsToAriaRole},ReactNativePropRegistry_emptyObject={},objects={},uniqueID=1,createKey=function(id){return"r-"+id},ReactNativePropRegistry=function(){function ReactNativePropRegistry(){}return ReactNativePropRegistry.register=function(object){var id=uniqueID++;var key=createKey(id);return objects[key]=object,id},ReactNativePropRegistry.getByID=function(id){if(!id)return ReactNativePropRegistry_emptyObject;var key=createKey(id),object=objects[key];return object||(console.warn("Invalid style with id `"+id+"`. Skipping ..."),ReactNativePropRegistry_emptyObject)},ReactNativePropRegistry}();__webpack_require__(2);var StyleSheet_flattenStyle=function flattenStyle(style){if(style){if(!Array.isArray(style))return function(style){return"number"==typeof style?ReactNativePropRegistry.getByID(style):style}(style);for(var result={},i=0,styleLength=style.length;i>>8)>>>0:void 0},modules_normalizeColor=function(color,opacity){if(void 0===opacity&&(opacity=1),null!=color){if("string"==typeof color&&modules_isWebColor(color))return color;var colorInt=exports_processColor(color);if(null!=colorInt)return"rgba("+(colorInt>>16&255)+","+(colorInt>>8&255)+","+(255&colorInt)+","+((colorInt>>24&255)/255*opacity).toFixed(2)+")"}},unitlessNumbers={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridColumn:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},prefixes=["ms","Moz","O","Webkit"];Object.keys(unitlessNumbers).forEach(function(prop){prefixes.forEach(function(prefix){unitlessNumbers[function(prefix,key){return prefix+key.charAt(0).toUpperCase()+key.substring(1)}(prefix,prop)]=unitlessNumbers[prop]})});var modules_unitlessNumbers=unitlessNumbers,StyleSheet_normalizeValue=function(property,value){return modules_unitlessNumbers[property]||"number"!=typeof value||(value+="px"),value},defaultOffset={height:0,width:0},StyleSheet_resolveShadowValue=function(style){var shadowColor=style.shadowColor,shadowOffset=style.shadowOffset,shadowOpacity=style.shadowOpacity,shadowRadius=style.shadowRadius,_ref=shadowOffset||defaultOffset,height=_ref.height,width=_ref.width,offsetX=StyleSheet_normalizeValue(null,width),offsetY=StyleSheet_normalizeValue(null,height),blurRadius=StyleSheet_normalizeValue(null,shadowRadius||0),color=modules_normalizeColor(shadowColor||"black",shadowOpacity);if(color)return offsetX+" "+offsetY+" "+blurRadius+" "+color},createReactDOMStyle_emptyObject={},styleShortFormProperties={borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderStyle:["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],margin:["marginTop","marginRight","marginBottom","marginLeft"],marginHorizontal:["marginRight","marginLeft"],marginVertical:["marginTop","marginBottom"],overflow:["overflowX","overflowY"],overscrollBehavior:["overscrollBehaviorX","overscrollBehaviorY"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"],paddingHorizontal:["paddingRight","paddingLeft"],paddingVertical:["paddingTop","paddingBottom"],writingDirection:["direction"]},colorProps={backgroundColor:!0,borderColor:!0,borderTopColor:!0,borderRightColor:!0,borderBottomColor:!0,borderLeftColor:!0,color:!0},borderWidthProps={borderWidth:!0,borderTopWidth:!0,borderRightWidth:!0,borderBottomWidth:!0,borderLeftWidth:!0},createReactDOMStyle_defaultOffset={height:0,width:0},createReactDOMStyle_mapTransform=function(transform){var type=Object.keys(transform)[0];return type+"("+StyleSheet_normalizeValue(type,transform[type])+")"},createReactDOMStyle_createReducer=function(style,styleProps){var hasResolvedShadow=!1,hasResolvedTextDecoration=!1,hasResolvedTextShadow=!1;return function(resolvedStyle,prop){var value=StyleSheet_normalizeValue(prop,style[prop]);if(borderWidthProps[prop]&&(value=null==value?StyleSheet_normalizeValue(null,0):value),colorProps[prop]&&(value=modules_normalizeColor(value)),null==value)return resolvedStyle;switch(prop){case"aspectRatio":case"elevation":case"overlayColor":case"resizeMode":case"tintColor":break;case"backgroundClip":"text"===value&&(resolvedStyle.backgroundClip=value,resolvedStyle.WebkitBackgroundClip=value);break;case"display":resolvedStyle.display=value,"flex"===style.display&&null==style.flex&&(null==style.flexShrink&&(resolvedStyle.flexShrink=0),null==style.flexBasis&&(resolvedStyle.flexBasis="auto"));break;case"flex":value>0?(resolvedStyle.flexGrow=value,resolvedStyle.flexShrink=1,resolvedStyle.flexBasis="0%"):0===value?(resolvedStyle.flexGrow=0,resolvedStyle.flexShrink=0,resolvedStyle.flexBasis="0%"):-1===value&&(resolvedStyle.flexGrow=0,resolvedStyle.flexShrink=1,resolvedStyle.flexBasis="auto");break;case"fontFamily":if(value.indexOf("System")>-1){var stack=value.split(/\s*,\s*/);stack[stack.indexOf("System")]='system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif',resolvedStyle.fontFamily=stack.join(", ")}else resolvedStyle.fontFamily="monospace"===value?"monospace, monospace":value;break;case"fontVariant":Array.isArray(value)&&value.length>0&&(resolvedStyle.fontVariant=value.join(" "));break;case"shadowColor":case"shadowOffset":case"shadowOpacity":case"shadowRadius":hasResolvedShadow||function(resolvedStyle,style){var boxShadow=style.boxShadow,shadow=StyleSheet_resolveShadowValue(style);resolvedStyle.boxShadow=boxShadow?boxShadow+", "+shadow:shadow}(resolvedStyle,style),hasResolvedShadow=!0;break;case"textAlignVertical":resolvedStyle.verticalAlign="center"===value?"middle":value;break;case"textDecorationColor":case"textDecorationLine":case"textDecorationStyle":hasResolvedTextDecoration||function(resolvedStyle,style){var textDecorationColor=style.textDecorationColor,textDecorationLine=style.textDecorationLine,textDecorationStyle=style.textDecorationStyle,color=modules_normalizeColor(textDecorationColor);textDecorationLine&&(resolvedStyle.textDecoration=textDecorationLine,textDecorationColor&&(resolvedStyle.textDecorationColor=color),textDecorationStyle&&(resolvedStyle.textDecorationStyle=textDecorationStyle))}(resolvedStyle,style),hasResolvedTextDecoration=!0;break;case"textShadowColor":case"textShadowOffset":case"textShadowRadius":hasResolvedTextShadow||function(resolvedStyle,style){var textShadowColor=style.textShadowColor,textShadowOffset=style.textShadowOffset,textShadowRadius=style.textShadowRadius,_ref=textShadowOffset||createReactDOMStyle_defaultOffset,height=_ref.height,width=_ref.width,offsetX=StyleSheet_normalizeValue(null,width),offsetY=StyleSheet_normalizeValue(null,height),blurRadius=StyleSheet_normalizeValue(null,textShadowRadius||0),color=modules_normalizeColor(textShadowColor);!color||0===height&&0===width||(resolvedStyle.textShadow=offsetX+" "+offsetY+" "+blurRadius+" "+color)}(resolvedStyle,style),hasResolvedTextShadow=!0;break;case"transform":case"transformMatrix":!function(resolvedStyle,style){var transform=style.transform;Array.isArray(style.transform)?transform=style.transform.map(createReactDOMStyle_mapTransform).join(" "):style.transformMatrix&&(transform="matrix3d("+style.transformMatrix.join(",")+")"),resolvedStyle.transform=transform}(resolvedStyle,style);break;default:var longFormProperties=styleShortFormProperties[prop];longFormProperties?longFormProperties.forEach(function(longForm,i){-1===styleProps.indexOf(longForm)&&(resolvedStyle[longForm]=value)}):resolvedStyle[prop]=value}return resolvedStyle}},StyleSheet_createReactDOMStyle=function(style){if(!style)return createReactDOMStyle_emptyObject;var styleProps=Object.keys(style),sortedStyleProps=styleProps.sort(),reducer=createReactDOMStyle_createReducer(style,styleProps);return sortedStyleProps.reduce(reducer,{})};var modules_flattenArray=function(array){return function flattenDown(array,result){for(var i=0;i=4;)k=1540483477*(65535&(k=255&str.charCodeAt(i)|(255&str.charCodeAt(++i))<<8|(255&str.charCodeAt(++i))<<16|(255&str.charCodeAt(++i))<<24))+((1540483477*(k>>>16)&65535)<<16),h=1540483477*(65535&h)+((1540483477*(h>>>16)&65535)<<16)^(k=1540483477*(65535&(k^=k>>>24))+((1540483477*(k>>>16)&65535)<<16)),l-=4,++i;switch(l){case 3:h^=(255&str.charCodeAt(i+2))<<16;case 2:h^=(255&str.charCodeAt(i+1))<<8;case 1:h=1540483477*(65535&(h^=255&str.charCodeAt(i)))+((1540483477*(h>>>16)&65535)<<16)}return h=1540483477*(65535&(h^=h>>>13))+((1540483477*(h>>>16)&65535)<<16),(h^=h>>>15)>>>0}(str,1).toString(36)},createIdentifier=function(obj){return"rn-"+function(obj){return vendor_hash(JSON.stringify(obj))}(obj)},createKeyframesRules_prefixes=["-webkit-",""],makeSteps=function(keyframes){return Object.keys(keyframes).map(function(stepName){return stepName+"{"+function(rule){var domStyle=StyleSheet_createReactDOMStyle(StyleSheet_i18nStyle(rule));return StyleSheet_createRuleBlock(domStyle)}(keyframes[stepName])+"}"}).join("")},StyleSheet_createKeyframesRules=function(keyframes){var identifier=createIdentifier(keyframes),rules=createKeyframesRules_prefixes.map(function(prefix){return"@"+prefix+"keyframes "+identifier+"{"+makeSteps(keyframes)+"}"});return{identifier:identifier,rules:rules}},StyleSheet_createAtomicRules=function(selector,prop,value){var rules=[];switch(prop){case"pointerEvents":var _createRuleBlock3,val=value;if("auto"===value||"box-only"===value){if(val="auto !important","box-only"===value){var _createRuleBlock,_block=StyleSheet_createRuleBlock(((_createRuleBlock={})[prop]="none",_createRuleBlock));rules.push(selector+" > *{"+_block+"}")}}else if(("none"===value||"box-none"===value)&&(val="none !important","box-none"===value)){var _createRuleBlock2,_block2=StyleSheet_createRuleBlock(((_createRuleBlock2={})[prop]="auto",_createRuleBlock2));rules.push(selector+" > *{"+_block2+"}")}var block=StyleSheet_createRuleBlock(((_createRuleBlock3={})[prop]=val,_createRuleBlock3));rules.push(selector+"{"+block+"}");break;case"placeholderTextColor":var _block3=StyleSheet_createRuleBlock({color:value,opacity:1});rules.push("@media all {"+selector+"::-webkit-input-placeholder{"+_block3+"}"+selector+"::-moz-placeholder{"+_block3+"}"+selector+":-ms-input-placeholder{"+_block3+"}"+selector+"::placeholder{"+_block3+"}}");break;case"animationName":if("string"==typeof value){var _createRuleBlock4,_block4=StyleSheet_createRuleBlock(((_createRuleBlock4={})[prop]=value,_createRuleBlock4));rules.push(selector+"{"+_block4+"}")}else{var _createRuleBlock5,animationNames=[];value.forEach(function(keyframes){if("string"==typeof keyframes)animationNames.push(keyframes);else{var _createKeyframesRules=StyleSheet_createKeyframesRules(keyframes),identifier=_createKeyframesRules.identifier;_createKeyframesRules.rules.forEach(function(rule){rules.push(rule)}),animationNames.push(identifier)}});var _block5=StyleSheet_createRuleBlock(((_createRuleBlock5={})[prop]=animationNames.join(","),_createRuleBlock5));rules.push(selector+"{"+_block5+"}")}break;default:var _createRuleBlock6,_block6=StyleSheet_createRuleBlock(((_createRuleBlock6={})[prop]=value,_createRuleBlock6));rules.push(selector+"{"+_block6+"}")}return rules},initialRules=[(rule=["html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}","body{margin:0;}","button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}","input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}"].join("\n"),"@media all{\n"+rule+"\n}")],focusVisibleAttributeName="data-rn-"+vendor_hash("focusvisible"),modality_rule=":focus:not(["+focusVisibleAttributeName+"]){outline: none;}",StyleSheet_modality=function(styleElement){if(ExecutionEnvironment.canUseDOM){var hadKeyboardEvent=!0,hadFocusVisibleRecently=!1,hadFocusVisibleRecentlyTimeout=null,inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};styleElement.sheet.insertRule(modality_rule,0),document.addEventListener("keydown",function(e){"Tab"!==e.key&&(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)||(isValidFocusTarget(document.activeElement)&&addFocusVisibleAttribute(document.activeElement),hadKeyboardEvent=!0)},!0),document.addEventListener("mousedown",onPointerDown,!0),document.addEventListener("pointerdown",onPointerDown,!0),document.addEventListener("touchstart",onPointerDown,!0),document.addEventListener("focus",function(e){var el,type,tagName,isReadOnly;isValidFocusTarget(e.target)&&(hadKeyboardEvent||(el=e.target,type=el.type,tagName=el.tagName,isReadOnly=el.readOnly,"INPUT"===tagName&&inputTypesWhitelist[type]&&!isReadOnly||"TEXTAREA"===tagName&&!isReadOnly||el.isContentEditable))&&addFocusVisibleAttribute(e.target)},!0),document.addEventListener("blur",function(e){isValidFocusTarget(e.target)&&e.target.hasAttribute(focusVisibleAttributeName)&&(hadFocusVisibleRecently=!0,window.clearTimeout(hadFocusVisibleRecentlyTimeout),hadFocusVisibleRecentlyTimeout=window.setTimeout(function(){hadFocusVisibleRecently=!1,window.clearTimeout(hadFocusVisibleRecentlyTimeout)},100),removeFocusVisibleAttribute(e.target))},!0),document.addEventListener("visibilitychange",function(e){"hidden"===document.visibilityState&&(hadFocusVisibleRecently&&(hadKeyboardEvent=!0),addInitialPointerMoveListeners())},!0),addInitialPointerMoveListeners()}function isValidFocusTarget(el){return!!(el&&el!==document&&"HTML"!==el.nodeName&&"BODY"!==el.nodeName&&"classList"in el&&"contains"in el.classList)}function addFocusVisibleAttribute(el){el.hasAttribute(focusVisibleAttributeName)||el.setAttribute(focusVisibleAttributeName,!0)}function removeFocusVisibleAttribute(el){el.removeAttribute(focusVisibleAttributeName)}function onPointerDown(e){!0===hadKeyboardEvent&&function(){for(var list=document.querySelectorAll("["+focusVisibleAttributeName+"]"),i=0;i';document.head&&(document.head.insertAdjacentHTML("afterbegin",html),domStyleElement=document.getElementById(id))}domStyleElement&&(StyleSheet_modality(domStyleElement),this._sheet=domStyleElement.sheet,this._textContent=domStyleElement.textContent)}}var Constructor,protoProps,staticProps,_proto=WebStyleSheet.prototype;return _proto.containsRule=function(rule){return this._cssRules.indexOf(rule)>-1},_proto.insertRuleOnce=function(rule,position){if(!this.containsRule(rule)&&(this._cssRules.push(rule),-1===this._textContent.indexOf(rule)&&this._sheet)){var pos=position||this._sheet.cssRules.length;try{this._sheet.insertRule(rule,pos)}catch(e){0}}},Constructor=WebStyleSheet,(protoProps=[{key:"cssText",get:function(){return this._cssRules.join("\n")}}])&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),WebStyleSheet}(),StyleSheetManager_emptyObject={},STYLE_ELEMENT_ID="react-native-stylesheet",StyleSheetManager_normalizeValue=function(value){return"object"==typeof value?JSON.stringify(value):value},StyleSheetManager_StyleSheetManager=function(){function StyleSheetManager(){var _this=this;this._cache={byClassName:{},byProp:{}},this._sheet=new WebStyleSheet_WebStyleSheet(STYLE_ELEMENT_ID),initialRules.forEach(function(rule){_this._sheet.insertRuleOnce(rule)})}var _proto=StyleSheetManager.prototype;return _proto.getClassName=function(prop,value){var val=StyleSheetManager_normalizeValue(value),cache=this._cache.byProp;return cache[prop]&&cache[prop].hasOwnProperty(val)&&cache[prop][val]},_proto.getDeclaration=function(className){return this._cache.byClassName[className]||StyleSheetManager_emptyObject},_proto.getStyleSheet=function(){var cssText=this._sheet.cssText;return{id:STYLE_ELEMENT_ID,textContent:cssText}},_proto.injectDeclaration=function(prop,value){var _this2=this,val=StyleSheetManager_normalizeValue(value),className=this.getClassName(prop,val);className||(className=function(prop,value){return"rn-"+vendor_hash(prop+StyleSheetManager_normalizeValue(value))}(prop,val),this._addToCache(className,prop,val),StyleSheet_createAtomicRules("."+className,prop,value).forEach(function(rule){_this2._sheet.insertRuleOnce(rule)}));return className},_proto._addToCache=function(className,prop,value){var cache=this._cache;cache.byProp[prop]||(cache.byProp[prop]={}),cache.byProp[prop][value]=className,cache.byClassName[className]={prop:prop,value:value}},StyleSheetManager}();function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var ReactNativeStyleResolver_emptyObject={},ReactNativeStyleResolver_ReactNativeStyleResolver=function(){var _proto=ReactNativeStyleResolver.prototype;function ReactNativeStyleResolver(){this._init()}return _proto._init=function(){this.cache={ltr:{},rtl:{},rtlNoSwap:{}},this.injectedCache={ltr:{},rtl:{},rtlNoSwap:{}},this.styleSheetManager=new StyleSheetManager_StyleSheetManager},_proto.getStyleSheet=function(){var sheet=this.styleSheetManager.getStyleSheet();return ExecutionEnvironment.canUseDOM||this._init(),sheet},_proto._injectRegisteredStyle=function(id){var _this=this,doLeftAndRightSwapInRTL=exports_I18nManager.doLeftAndRightSwapInRTL,dir=exports_I18nManager.isRTL?doLeftAndRightSwapInRTL?"rtl":"rtlNoSwap":"ltr";if(!this.injectedCache[dir][id]){var style=StyleSheet_flattenStyle(id),domStyle=StyleSheet_createReactDOMStyle(StyleSheet_i18nStyle(style));Object.keys(domStyle).forEach(function(styleProp){var value=domStyle[styleProp];null!=value&&_this.styleSheetManager.injectDeclaration(styleProp,value)}),this.injectedCache[dir][id]=!0}},_proto.resolve=function(style){if(!style)return ReactNativeStyleResolver_emptyObject;if("number"==typeof style){this._injectRegisteredStyle(style);var _key=createCacheKey(style);return this._resolveStyleIfNeeded(style,_key)}if(!Array.isArray(style))return this._resolveStyleIfNeeded(style);for(var flatArray=modules_flattenArray(style),isArrayOfNumbers=!0,cacheKey="",i=0;i=0||(target[key]=source[key]);return target}(_props,["accessibilityLabel","accessibilityLiveRegion","accessibilityStates","importantForAccessibility","nativeID","placeholderTextColor","pointerEvents","style","testID","accessible","accessibilityComponentType","accessibilityRole","accessibilityTraits"])),disabled=modules_AccessibilityUtil.isDisabled(props),role=modules_AccessibilityUtil.propsToAriaRole(props);if("no-hide-descendants"===importantForAccessibility&&(domProps["aria-hidden"]=!0),accessibilityLabel&&accessibilityLabel.constructor===String&&(domProps["aria-label"]=accessibilityLabel),accessibilityLiveRegion&&accessibilityLiveRegion.constructor===String&&(domProps["aria-live"]="none"===accessibilityLiveRegion?"off":accessibilityLiveRegion),Array.isArray(accessibilityStates))for(var i=0;i-1,styleValue=react_dom_dangerousStyleValue(styleName,styles[styleName],isCustomProperty);if("float"===styleName&&(styleName="cssFloat"),isCustomProperty||isImportant){var name=isCustomProperty?styleName:hyphenate_style_name_default()(styleName);if(isImportant){var _styleValue$split=styleValue.split("!"),value=_styleValue$split[0],priority=_styleValue$split[1];style.setProperty(name,value,priority)}else style.setProperty(name,styleValue)}else style[styleName]=styleValue}},UIManager_getRect=function(node){var _getBoundingClientRec=modules_getBoundingClientRect(node),x=_getBoundingClientRec.x,y=_getBoundingClientRec.y,top=_getBoundingClientRec.top,left=_getBoundingClientRec.left;return{x:x,y:y,width:node.offsetWidth,height:node.offsetHeight,top:top,left:left}},_measureLayout=function(node,relativeToNativeNode,callback){var relativeNode=relativeToNativeNode||node&&node.parentNode;node&&relativeNode&&setTimeout(function(){var relativeRect=modules_getBoundingClientRect(relativeNode),_getRect=UIManager_getRect(node),height=_getRect.height,left=_getRect.left,top=_getRect.top,width=_getRect.width,x=left-relativeRect.left,y=top-relativeRect.top;callback(x,y,width,height,left,top)},0)},focusableElements={A:!0,INPUT:!0,SELECT:!0,TEXTAREA:!0},exports_UIManager={blur:function(node){try{node.blur()}catch(err){}},focus:function(node){try{var name=node.nodeName;null==node.getAttribute("tabIndex")&&null==focusableElements[name]&&node.setAttribute("tabIndex","-1"),node.focus()}catch(err){}},measure:function(node,callback){_measureLayout(node,null,callback)},measureInWindow:function(node,callback){node&&setTimeout(function(){var _getRect2=UIManager_getRect(node),height=_getRect2.height,left=_getRect2.left,top=_getRect2.top,width=_getRect2.width;callback(left,top,width,height)},0)},measureLayout:function(node,relativeToNativeNode,onFail,onSuccess){_measureLayout(node,relativeToNativeNode,onSuccess)},updateView:function(node,props,component){for(var prop in props)if(Object.prototype.hasOwnProperty.call(props,prop)){var value=props[prop];switch(prop){case"style":react_dom_setValueForStyles(node,value,component._reactInternalInstance);break;case"class":case"className":node.setAttribute("class",value);break;case"text":case"value":node.value=value;break;default:node.setAttribute(prop,value)}}},configureNextLayoutAnimation:function(config,onAnimationDidEnd){onAnimationDidEnd()},setLayoutAnimationEnabledExperimental:function(){}},modules_NativeMethodsMixin={blur:function(){exports_UIManager.blur(exports_findNodeHandle(this))},focus:function(){exports_UIManager.focus(exports_findNodeHandle(this))},measure:function(callback){exports_UIManager.measure(exports_findNodeHandle(this),callback)},measureInWindow:function(callback){exports_UIManager.measureInWindow(exports_findNodeHandle(this),callback)},measureLayout:function(relativeToNativeNode,onSuccess,onFail){exports_UIManager.measureLayout(exports_findNodeHandle(this),relativeToNativeNode,onFail,onSuccess)},setNativeProps:function(nativeProps){if(nativeProps){var node=exports_findNodeHandle(this);if(node){var domProps=modules_createDOMProps(null,nativeProps,function(style){return StyleSheet_styleResolver.resolveWithNode(style,node)});exports_UIManager.updateView(node,domProps,this)}}}},modules_applyNativeMethods=function(Component){return Object.keys(modules_NativeMethodsMixin).forEach(function(method){Component.prototype[method]||(Component.prototype[method]=modules_NativeMethodsMixin[method])}),Component},prop_types=__webpack_require__(1),unstable_native_dependencies=__webpack_require__(56),unstable_native_dependencies_default=__webpack_require__.n(unstable_native_dependencies),emptyArray=[],emptyFunction=function(){},normalizeNativeEvent_normalizeTouches=function(touches){return touches?Array.prototype.slice.call(touches).map(function(touch){var rect,identifier=touch.identifier>20?touch.identifier%20:touch.identifier;return{_normalized:!0,clientX:touch.clientX,clientY:touch.clientY,force:touch.force,get locationX(){if(rect=rect||modules_getBoundingClientRect(touch.target))return touch.pageX-rect.left},get locationY(){if(rect=rect||modules_getBoundingClientRect(touch.target))return touch.pageY-rect.top},identifier:identifier,pageX:touch.pageX,pageY:touch.pageY,radiusX:touch.radiusX,radiusY:touch.radiusY,rotationAngle:touch.rotationAngle,screenX:touch.screenX,screenY:touch.screenY,target:touch.target,timestamp:Date.now()}}):emptyArray};var modules_normalizeNativeEvent=function(nativeEvent){return!nativeEvent||nativeEvent._normalized?nativeEvent:(nativeEvent.type||"").indexOf("mouse")>=0?function(nativeEvent){var rect,touches=[{_normalized:!0,clientX:nativeEvent.clientX,clientY:nativeEvent.clientY,force:nativeEvent.force,identifier:0,get locationX(){if(rect=rect||modules_getBoundingClientRect(nativeEvent.target))return nativeEvent.pageX-rect.left},get locationY(){if(rect=rect||modules_getBoundingClientRect(nativeEvent.target))return nativeEvent.pageY-rect.top},pageX:nativeEvent.pageX,pageY:nativeEvent.pageY,screenX:nativeEvent.screenX,screenY:nativeEvent.screenY,target:nativeEvent.target,timestamp:Date.now()}],preventDefault="function"==typeof nativeEvent.preventDefault?nativeEvent.preventDefault.bind(nativeEvent):emptyFunction,stopImmediatePropagation="function"==typeof nativeEvent.stopImmediatePropagation?nativeEvent.stopImmediatePropagation.bind(nativeEvent):emptyFunction,stopPropagation="function"==typeof nativeEvent.stopPropagation?nativeEvent.stopPropagation.bind(nativeEvent):emptyFunction;return{_normalized:!0,bubbles:nativeEvent.bubbles,cancelable:nativeEvent.cancelable,changedTouches:touches,defaultPrevented:nativeEvent.defaultPrevented,identifier:touches[0].identifier,get locationX(){return touches[0].locationX},get locationY(){return touches[0].locationY},pageX:nativeEvent.pageX,pageY:nativeEvent.pageY,preventDefault:preventDefault,stopImmediatePropagation:stopImmediatePropagation,stopPropagation:stopPropagation,target:nativeEvent.target,timestamp:touches[0].timestamp,touches:"mouseup"===nativeEvent.type?emptyArray:touches,type:nativeEvent.type,which:nativeEvent.which}}(nativeEvent):function(nativeEvent){var changedTouches=normalizeNativeEvent_normalizeTouches(nativeEvent.changedTouches),touches=normalizeNativeEvent_normalizeTouches(nativeEvent.touches),preventDefault="function"==typeof nativeEvent.preventDefault?nativeEvent.preventDefault.bind(nativeEvent):emptyFunction,stopImmediatePropagation="function"==typeof nativeEvent.stopImmediatePropagation?nativeEvent.stopImmediatePropagation.bind(nativeEvent):emptyFunction,stopPropagation="function"==typeof nativeEvent.stopPropagation?nativeEvent.stopPropagation.bind(nativeEvent):emptyFunction,singleChangedTouch=changedTouches[0];return{_normalized:!0,bubbles:nativeEvent.bubbles,cancelable:nativeEvent.cancelable,changedTouches:changedTouches,defaultPrevented:nativeEvent.defaultPrevented,identifier:singleChangedTouch?singleChangedTouch.identifier:void 0,get locationX(){return singleChangedTouch?singleChangedTouch.locationX:void 0},get locationY(){return singleChangedTouch?singleChangedTouch.locationY:void 0},pageX:singleChangedTouch?singleChangedTouch.pageX:nativeEvent.pageX,pageY:singleChangedTouch?singleChangedTouch.pageY:nativeEvent.pageY,preventDefault:preventDefault,stopImmediatePropagation:stopImmediatePropagation,stopPropagation:stopPropagation,target:nativeEvent.target,timestamp:Date.now(),touches:touches,type:nativeEvent.type,which:nativeEvent.which}}(nativeEvent)},react=__webpack_require__(0),react_default=__webpack_require__.n(react),ResponderEventPlugin=unstable_native_dependencies_default.a.ResponderEventPlugin,ResponderTouchHistoryStore=unstable_native_dependencies_default.a.ResponderTouchHistoryStore;if(!ResponderEventPlugin.eventTypes.responderMove.dependencies){var endDependencies=["topTouchCancel","topTouchEnd","topMouseUp"],moveDependencies=["topTouchMove","topMouseMove"],startDependencies=["topTouchStart","topMouseDown"];ResponderEventPlugin.eventTypes.responderMove.dependencies=moveDependencies,ResponderEventPlugin.eventTypes.responderEnd.dependencies=endDependencies,ResponderEventPlugin.eventTypes.responderStart.dependencies=startDependencies,ResponderEventPlugin.eventTypes.responderRelease.dependencies=endDependencies,ResponderEventPlugin.eventTypes.responderTerminationRequest.dependencies=[],ResponderEventPlugin.eventTypes.responderGrant.dependencies=[],ResponderEventPlugin.eventTypes.responderReject.dependencies=[],ResponderEventPlugin.eventTypes.responderTerminate.dependencies=[],ResponderEventPlugin.eventTypes.moveShouldSetResponder.dependencies=moveDependencies,ResponderEventPlugin.eventTypes.selectionChangeShouldSetResponder.dependencies=["topSelectionChange"],ResponderEventPlugin.eventTypes.scrollShouldSetResponder.dependencies=["topScroll"],ResponderEventPlugin.eventTypes.startShouldSetResponder.dependencies=startDependencies}var lastActiveTouchTimestamp=null,originalExtractEvents=ResponderEventPlugin.extractEvents;ResponderEventPlugin.extractEvents=function(topLevelType,targetInst,nativeEvent,nativeEventTarget){var hasActiveTouches=ResponderTouchHistoryStore.touchHistory.numberActiveTouches>0,eventType=nativeEvent.type,shouldSkipMouseAfterTouch=!1;if(eventType.indexOf("touch")>-1)lastActiveTouchTimestamp=Date.now();else if(lastActiveTouchTimestamp&&eventType.indexOf("mouse")>-1){shouldSkipMouseAfterTouch=Date.now()-lastActiveTouchTimestamp<1e3}if(("mousemove"!==eventType&&"mouseup"!==eventType||hasActiveTouches)&&1!==nativeEvent.button&&2!==nativeEvent.button&&!shouldSkipMouseAfterTouch){var normalizedEvent=modules_normalizeNativeEvent(nativeEvent);return originalExtractEvents.call(ResponderEventPlugin,topLevelType,targetInst,normalizedEvent,nativeEventTarget)}};var modules_ResponderEventPlugin=ResponderEventPlugin;Object(unstable_native_dependencies.injectEventPluginsByName)({ResponderEventPlugin:modules_ResponderEventPlugin});var eventHandlerNames={onBlur:!0,onClick:!0,onClickCapture:!0,onContextMenu:!0,onFocus:!0,onResponderRelease:!0,onTouchCancel:!0,onTouchCancelCapture:!0,onTouchEnd:!0,onTouchEndCapture:!0,onTouchMove:!0,onTouchMoveCapture:!0,onTouchStart:!0,onTouchStartCapture:!0},exports_createElement=function(component,props){var accessibilityComponent;component&&component.constructor===String&&(accessibilityComponent=modules_AccessibilityUtil.propsToAccessibilityComponent(props));var Component=accessibilityComponent||component,domProps=modules_createDOMProps(Component,props);!function(domProps){var onClick=domProps.onClick,onResponderRelease=domProps.onResponderRelease,role=domProps.role,isButtonLikeRole=modules_AccessibilityUtil.buttonLikeRoles[role],isDisabled=modules_AccessibilityUtil.isDisabled(domProps),isLinkRole="link"===role;Object.keys(domProps).forEach(function(propName){var prop=domProps[propName];"function"==typeof prop&&eventHandlerNames[propName]&&(domProps[propName]=isButtonLikeRole&&isDisabled?void 0:function(e){return e.nativeEvent=modules_normalizeNativeEvent(e.nativeEvent),prop(e)})}),isLinkRole&&onResponderRelease&&(domProps.onClick=function(e){var event;e.isDefaultPrevented()||(event=e.nativeEvent).metaKey||event.altKey||event.ctrlKey||event.shiftKey||domProps.target||e.preventDefault()}),isButtonLikeRole&&!isDisabled&&(domProps.onKeyPress=function(e){e.isDefaultPrevented()||13!==e.which&&32!==e.which||(e.preventDefault(),onClick&&onClick(e))})}(domProps);for(var _len=arguments.length,children=new Array(_len>2?_len-2:0),_key=2;_key<_len;_key++)children[_key-2]=arguments[_key];return react_default.a.createElement.apply(react_default.a,[Component,domProps].concat(children))},filterSupportedProps_supportedProps={accessibilityComponentType:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityTraits:!0,accessible:!0,children:!0,disabled:!0,importantForAccessibility:!0,nativeID:!0,onBlur:!0,onContextMenu:!0,onFocus:!0,onMoveShouldSetResponder:!0,onMoveShouldSetResponderCapture:!0,onResponderEnd:!0,onResponderGrant:!0,onResponderMove:!0,onResponderReject:!0,onResponderRelease:!0,onResponderStart:!0,onResponderTerminate:!0,onResponderTerminationRequest:!0,onScrollShouldSetResponder:!0,onScrollShouldSetResponderCapture:!0,onSelectionChangeShouldSetResponder:!0,onSelectionChangeShouldSetResponderCapture:!0,onStartShouldSetResponder:!0,onStartShouldSetResponderCapture:!0,onTouchCancel:!0,onTouchCancelCapture:!0,onTouchEnd:!0,onTouchEndCapture:!0,onTouchMove:!0,onTouchMoveCapture:!0,onTouchStart:!0,onTouchStartCapture:!0,pointerEvents:!0,style:!0,testID:!0,onScroll:!0,onWheel:!0,onKeyDown:!0,onKeyPress:!0,onKeyUp:!0,onMouseDown:!0,onMouseEnter:!0,onMouseLeave:!0,onMouseMove:!0,onMouseOver:!0,onMouseOut:!0,onMouseUp:!0,className:!0,href:!0,onClick:!0,onClickCapture:!0,rel:!0,target:!0},View_filterSupportedProps=function(props){var safeProps={};for(var prop in props)props.hasOwnProperty(prop)&&(filterSupportedProps_supportedProps[prop]||0===prop.indexOf("aria-")||0===prop.indexOf("data-"))&&(safeProps[prop]=props[prop]);return safeProps};function View_defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var View_View=function(_Component){var subClass,superClass;function View(){return _Component.apply(this,arguments)||this}return superClass=_Component,(subClass=View).prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass,View.prototype.render=function(){var hitSlop=this.props.hitSlop,supportedProps=View_filterSupportedProps(this.props);var isInAParentText=this.context.isInAParentText;if(supportedProps.style=exports_StyleSheet.compose(View_styles.initial,exports_StyleSheet.compose(isInAParentText&&View_styles.inline,this.props.style)),hitSlop){var hitSlopStyle=function(hitSlop){var hitStyle={};for(var prop in hitSlop)if(hitSlop.hasOwnProperty(prop)){var value=hitSlop[prop];hitStyle[prop]=value>0?-1*value:0}return hitStyle}(hitSlop),hitSlopChild=exports_createElement("span",{style:[View_styles.hitSlop,hitSlopStyle]});supportedProps.children=react_default.a.Children.toArray([hitSlopChild,supportedProps.children])}return exports_createElement("div",supportedProps)},View}(react.Component);View_View.displayName="View",View_View.contextTypes={isInAParentText:prop_types.bool},View_View.propTypes={};var View_styles=exports_StyleSheet.create({initial:{alignItems:"stretch",borderWidth:0,borderStyle:"solid",boxSizing:"border-box",display:"flex",flexDirection:"column",margin:0,padding:0,position:"relative",zIndex:0,minHeight:0,minWidth:0},inline:{display:"inline-flex"},hitSlop:function(target){for(var i=1;i 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n ToPrimitive: function ToPrimitive(input) {\n var val, valueOf, toStr;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (isCallable(valueOf)) {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toStr = input.toString;\n if (isCallable(toStr)) {\n val = toStr.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n },\n\n // ES5 9.9\n // http://es5.github.com/#x9.9\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n ToObject: function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return $Object(o);\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n ToUint32: function ToUint32(x) {\n return x >>> 0;\n }\n };\n\n //\n // Function\n // ========\n //\n\n // ES-5 15.3.4.5\n // http://es5.github.com/#x15.3.4.5\n\n var Empty = function Empty() {};\n\n defineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var bound;\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = apply.call(\n target,\n this,\n array_concat.call(args, array_slice.call(arguments))\n );\n if ($Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return apply.call(\n target,\n that,\n array_concat.call(args, array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n });\n\n // _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n // use it in defining shortcuts.\n var owns = call.bind(ObjectPrototype.hasOwnProperty);\n var toStr = call.bind(ObjectPrototype.toString);\n var arraySlice = call.bind(array_slice);\n var arraySliceApply = apply.bind(array_slice);\n /* globals document */\n if (typeof document === 'object' && document && document.documentElement) {\n try {\n arraySlice(document.documentElement.childNodes);\n } catch (e) {\n var origArraySlice = arraySlice;\n var origArraySliceApply = arraySliceApply;\n arraySlice = function arraySliceIE(arr) {\n var r = [];\n var i = arr.length;\n while (i-- > 0) {\n r[i] = arr[i];\n }\n return origArraySliceApply(r, origArraySlice(arguments, 1));\n };\n arraySliceApply = function arraySliceApplyIE(arr, args) {\n return origArraySliceApply(arraySlice(arr), args);\n };\n }\n }\n var strSlice = call.bind(StringPrototype.slice);\n var strSplit = call.bind(StringPrototype.split);\n var strIndexOf = call.bind(StringPrototype.indexOf);\n var pushCall = call.bind(array_push);\n var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable);\n var arraySort = call.bind(ArrayPrototype.sort);\n\n //\n // Array\n // =====\n //\n\n var isArray = $Array.isArray || function isArray(obj) {\n return toStr(obj) === '[object Array]';\n };\n\n // ES5 15.4.4.12\n // http://es5.github.com/#x15.4.4.13\n // Return len+argCount.\n // [bugfix, ielt8]\n // IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\n var hasUnshiftReturnValueBug = [].unshift(0) !== 1;\n defineProperties(ArrayPrototype, {\n unshift: function () {\n array_unshift.apply(this, arguments);\n return this.length;\n }\n }, hasUnshiftReturnValueBug);\n\n // ES5 15.4.3.2\n // http://es5.github.com/#x15.4.3.2\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\n defineProperties($Array, { isArray: isArray });\n\n // The IsCallable() check in the Array functions\n // has been replaced with a strict check on the\n // internal class of the object to trap cases where\n // the provided function was actually a regular\n // expression literal, which in V8 and\n // JavaScriptCore is a typeof \"function\". Only in\n // V8 are regular expression literals permitted as\n // reduce parameters, so it is desirable in the\n // general case for the shim to match the more\n // strict and common behavior of rejecting regular\n // expressions.\n\n // ES5 15.4.4.18\n // http://es5.github.com/#x15.4.4.18\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n\n // Check failure of by-index access of string characters (IE < 9)\n // and failure of `0 in boxedString` (Rhino)\n var boxedString = $Object('a');\n var splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\n var properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n var threwException = false;\n if (method) {\n try {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') {\n properlyBoxesNonStrict = false;\n }\n });\n\n method.call([1], function () {\n 'use strict';\n\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n } catch (e) {\n threwException = true;\n }\n }\n return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict;\n };\n\n defineProperties(ArrayPrototype, {\n forEach: function forEach(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var i = -1;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.forEach callback must be a function');\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n if (typeof T === 'undefined') {\n callbackfn(self[i], i, object);\n } else {\n callbackfn.call(T, self[i], i, object);\n }\n }\n }\n }\n }, !properlyBoxesContext(ArrayPrototype.forEach));\n\n // ES5 15.4.4.19\n // http://es5.github.com/#x15.4.4.19\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\n defineProperties(ArrayPrototype, {\n map: function map(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = $Array(length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.map callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n if (typeof T === 'undefined') {\n result[i] = callbackfn(self[i], i, object);\n } else {\n result[i] = callbackfn.call(T, self[i], i, object);\n }\n }\n }\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.map));\n\n // ES5 15.4.4.20\n // http://es5.github.com/#x15.4.4.20\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\n defineProperties(ArrayPrototype, {\n filter: function filter(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = [];\n var value;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.filter callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n pushCall(result, value);\n }\n }\n }\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.filter));\n\n // ES5 15.4.4.16\n // http://es5.github.com/#x15.4.4.16\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\n defineProperties(ArrayPrototype, {\n every: function every(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.every callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return false;\n }\n }\n return true;\n }\n }, !properlyBoxesContext(ArrayPrototype.every));\n\n // ES5 15.4.4.17\n // http://es5.github.com/#x15.4.4.17\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\n defineProperties(ArrayPrototype, {\n some: function some(callbackfn/*, thisArg */) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.some callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return true;\n }\n }\n return false;\n }\n }, !properlyBoxesContext(ArrayPrototype.some));\n\n // ES5 15.4.4.21\n // http://es5.github.com/#x15.4.4.21\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\n var reduceCoercesToObject = false;\n if (ArrayPrototype.reduce) {\n reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) {\n return list;\n }) === 'object';\n }\n defineProperties(ArrayPrototype, {\n reduce: function reduce(callbackfn/*, initialValue*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduce callback must be a function');\n }\n\n // no value to return if no initial value and an empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (++i >= length) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n }\n\n return result;\n }\n }, !reduceCoercesToObject);\n\n // ES5 15.4.4.22\n // http://es5.github.com/#x15.4.4.22\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\n var reduceRightCoercesToObject = false;\n if (ArrayPrototype.reduceRight) {\n reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) {\n return list;\n }) === 'object';\n }\n defineProperties(ArrayPrototype, {\n reduceRight: function reduceRight(callbackfn/*, initial*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduceRight callback must be a function');\n }\n\n // no value to return if no initial value, empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n\n var result;\n var i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (--i < 0) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n } while (true);\n }\n\n if (i < 0) {\n return result;\n }\n\n do {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n }\n }, !reduceRightCoercesToObject);\n\n // ES5 15.4.4.14\n // http://es5.github.com/#x15.4.4.14\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\n var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\n defineProperties(ArrayPrototype, {\n indexOf: function indexOf(searchElement/*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = ES.ToInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === searchElement) {\n return i;\n }\n }\n return -1;\n }\n }, hasFirefox2IndexOfBug);\n\n // ES5 15.4.4.15\n // http://es5.github.com/#x15.4.4.15\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\n var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\n defineProperties(ArrayPrototype, {\n lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = min(i, ES.ToInteger(arguments[1]));\n }\n // handle negative indices\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && searchElement === self[i]) {\n return i;\n }\n }\n return -1;\n }\n }, hasFirefox2LastIndexOfBug);\n\n // ES5 15.4.4.12\n // http://es5.github.com/#x15.4.4.12\n var spliceNoopReturnsEmptyArray = (function () {\n var a = [1, 2];\n var result = a.splice();\n return a.length === 2 && isArray(result) && result.length === 0;\n }());\n defineProperties(ArrayPrototype, {\n // Safari 5.0 bug where .splice() returns undefined\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n } else {\n return array_splice.apply(this, arguments);\n }\n }\n }, !spliceNoopReturnsEmptyArray);\n\n var spliceWorksWithEmptyObject = (function () {\n var obj = {};\n ArrayPrototype.splice.call(obj, 0, 0, 1);\n return obj.length === 1;\n }());\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n }\n var args = arguments;\n this.length = max(ES.ToInteger(this.length), 0);\n if (arguments.length > 0 && typeof deleteCount !== 'number') {\n args = arraySlice(arguments);\n if (args.length < 2) {\n pushCall(args, this.length - start);\n } else {\n args[1] = ES.ToInteger(deleteCount);\n }\n }\n return array_splice.apply(this, args);\n }\n }, !spliceWorksWithEmptyObject);\n var spliceWorksWithLargeSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n var arr = new $Array(1e5);\n // note: the index MUST be 8 or larger or the test will false pass\n arr[8] = 'x';\n arr.splice(1, 1);\n // note: this test must be defined *after* the indexOf shim\n // per https://github.com/es-shims/es5-shim/issues/313\n return arr.indexOf('x') === 7;\n }());\n var spliceWorksWithSmallSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Opera 12.15 breaks on this, no idea why.\n var n = 256;\n var arr = [];\n arr[n] = 'a';\n arr.splice(n + 1, 0, 'b');\n return arr[n] === 'a';\n }());\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n var O = ES.ToObject(this);\n var A = [];\n var len = ES.ToUint32(O.length);\n var relativeStart = ES.ToInteger(start);\n var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);\n var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n\n var k = 0;\n var from;\n while (k < actualDeleteCount) {\n from = $String(actualStart + k);\n if (owns(O, from)) {\n A[k] = O[from];\n }\n k += 1;\n }\n\n var items = arraySlice(arguments, 2);\n var itemCount = items.length;\n var to;\n if (itemCount < actualDeleteCount) {\n k = actualStart;\n var maxK = len - actualDeleteCount;\n while (k < maxK) {\n from = $String(k + actualDeleteCount);\n to = $String(k + itemCount);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k += 1;\n }\n k = len;\n var minK = len - actualDeleteCount + itemCount;\n while (k > minK) {\n delete O[k - 1];\n k -= 1;\n }\n } else if (itemCount > actualDeleteCount) {\n k = len - actualDeleteCount;\n while (k > actualStart) {\n from = $String(k + actualDeleteCount - 1);\n to = $String(k + itemCount - 1);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k -= 1;\n }\n }\n k = actualStart;\n for (var i = 0; i < items.length; ++i) {\n O[k] = items[i];\n k += 1;\n }\n O.length = len - actualDeleteCount + itemCount;\n\n return A;\n }\n }, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n\n var originalJoin = ArrayPrototype.join;\n var hasStringJoinBug;\n try {\n hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3';\n } catch (e) {\n hasStringJoinBug = true;\n }\n if (hasStringJoinBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep);\n }\n }, hasStringJoinBug);\n }\n\n var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';\n if (hasJoinUndefinedBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(this, sep);\n }\n }, hasJoinUndefinedBug);\n }\n\n var pushShim = function push(item) {\n var O = ES.ToObject(this);\n var n = ES.ToUint32(O.length);\n var i = 0;\n while (i < arguments.length) {\n O[n + i] = arguments[i];\n i += 1;\n }\n O.length = n + i;\n return n + i;\n };\n\n var pushIsNotGeneric = (function () {\n var obj = {};\n var result = Array.prototype.push.call(obj, undefined);\n return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);\n }());\n defineProperties(ArrayPrototype, {\n push: function push(item) {\n if (isArray(this)) {\n return array_push.apply(this, arguments);\n }\n return pushShim.apply(this, arguments);\n }\n }, pushIsNotGeneric);\n\n // This fixes a very weird bug in Opera 10.6 when pushing `undefined\n var pushUndefinedIsWeird = (function () {\n var arr = [];\n var result = arr.push(undefined);\n return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);\n }());\n defineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird);\n\n // ES5 15.2.3.14\n // http://es5.github.io/#x15.4.4.10\n // Fix boxed string bug\n defineProperties(ArrayPrototype, {\n slice: function (start, end) {\n var arr = isString(this) ? strSplit(this, '') : this;\n return arraySliceApply(arr, arguments);\n }\n }, splitString);\n\n var sortIgnoresNonFunctions = (function () {\n try {\n [1, 2].sort(null);\n } catch (e) {\n try {\n [1, 2].sort({});\n } catch (e2) {\n return false;\n }\n }\n return true;\n }());\n var sortThrowsOnRegex = (function () {\n // this is a problem in Firefox 4, in which `typeof /a/ === 'function'`\n try {\n [1, 2].sort(/a/);\n return false;\n } catch (e) {}\n return true;\n }());\n var sortIgnoresUndefined = (function () {\n // applies in IE 8, for one.\n try {\n [1, 2].sort(undefined);\n return true;\n } catch (e) {}\n return false;\n }());\n defineProperties(ArrayPrototype, {\n sort: function sort(compareFn) {\n if (typeof compareFn === 'undefined') {\n return arraySort(this);\n }\n if (!isCallable(compareFn)) {\n throw new TypeError('Array.prototype.sort callback must be a function');\n }\n return arraySort(this, compareFn);\n }\n }, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex);\n\n //\n // Object\n // ======\n //\n\n // ES5 15.2.3.14\n // http://es5.github.com/#x15.2.3.14\n\n // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\n var hasDontEnumBug = !isEnum({ 'toString': null }, 'toString'); // jscs:ignore disallowQuotedKeysInObjects\n var hasProtoEnumBug = isEnum(function () {}, 'prototype');\n var hasStringEnumBug = !owns('x', '0');\n var equalsConstructorPrototype = function (o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true,\n\n $width: true,\n $height: true,\n $top: true,\n $localStorage: true\n };\n var hasAutomationEqualityBug = (function () {\n /* globals window */\n if (typeof window === 'undefined') {\n return false;\n }\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {\n equalsConstructorPrototype(window[k]);\n }\n } catch (e) {\n return true;\n }\n }\n return false;\n }());\n var equalsConstructorPrototypeIfNotBuggy = function (object) {\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(object);\n }\n try {\n return equalsConstructorPrototype(object);\n } catch (e) {\n return false;\n }\n };\n var dontEnums = [\n 'toString',\n 'toLocaleString',\n 'valueOf',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'constructor'\n ];\n var dontEnumsLength = dontEnums.length;\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return toStr(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null\n && typeof value === 'object'\n && typeof value.length === 'number'\n && value.length >= 0\n && !isArray(value)\n && isCallable(value.callee);\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n defineProperties($Object, {\n keys: function keys(object) {\n var isFn = isCallable(object);\n var isArgs = isArguments(object);\n var isObject = object !== null && typeof object === 'object';\n var isStr = isObject && isString(object);\n\n if (!isObject && !isFn && !isArgs) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var theKeys = [];\n var skipProto = hasProtoEnumBug && isFn;\n if ((isStr && hasStringEnumBug) || isArgs) {\n for (var i = 0; i < object.length; ++i) {\n pushCall(theKeys, $String(i));\n }\n }\n\n if (!isArgs) {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && owns(object, name)) {\n pushCall(theKeys, $String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n for (var j = 0; j < dontEnumsLength; j++) {\n var dontEnum = dontEnums[j];\n if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n pushCall(theKeys, dontEnum);\n }\n }\n }\n return theKeys;\n }\n });\n\n var keysWorksWithArguments = $Object.keys && (function () {\n // Safari 5.0 bug\n return $Object.keys(arguments).length === 2;\n }(1, 2));\n var keysHasArgumentsLengthBug = $Object.keys && (function () {\n var argKeys = $Object.keys(arguments);\n return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n }(1));\n var originalKeys = $Object.keys;\n defineProperties($Object, {\n keys: function keys(object) {\n if (isArguments(object)) {\n return originalKeys(arraySlice(object));\n } else {\n return originalKeys(object);\n }\n }\n }, !keysWorksWithArguments || keysHasArgumentsLengthBug);\n\n //\n // Date\n // ====\n //\n\n var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0;\n var aNegativeTestDate = new Date(-1509842289600292);\n var aPositiveTestDate = new Date(1449662400000);\n var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT';\n var hasToDateStringFormatBug;\n var hasToStringFormatBug;\n var timeZoneOffset = aNegativeTestDate.getTimezoneOffset();\n if (timeZoneOffset < -720) {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875';\n hasToStringFormatBug = !(/^Thu Dec 10 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/).test(String(aPositiveTestDate));\n } else {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875';\n hasToStringFormatBug = !(/^Wed Dec 09 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/).test(String(aPositiveTestDate));\n }\n\n var originalGetFullYear = call.bind(Date.prototype.getFullYear);\n var originalGetMonth = call.bind(Date.prototype.getMonth);\n var originalGetDate = call.bind(Date.prototype.getDate);\n var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear);\n var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth);\n var originalGetUTCDate = call.bind(Date.prototype.getUTCDate);\n var originalGetUTCDay = call.bind(Date.prototype.getUTCDay);\n var originalGetUTCHours = call.bind(Date.prototype.getUTCHours);\n var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes);\n var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds);\n var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds);\n var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n var daysInMonth = function daysInMonth(month, year) {\n return originalGetDate(new Date(year, month, 0));\n };\n\n defineProperties(Date.prototype, {\n getFullYear: function getFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n if (year < 0 && originalGetMonth(this) > 11) {\n return year + 1;\n }\n return year;\n },\n getMonth: function getMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n if (year < 0 && month > 11) {\n return 0;\n }\n return month;\n },\n getDate: function getDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n var date = originalGetDate(this);\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n var days = daysInMonth(0, year + 1);\n return (days - date) + 1;\n }\n return date;\n },\n getUTCFullYear: function getUTCFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n if (year < 0 && originalGetUTCMonth(this) > 11) {\n return year + 1;\n }\n return year;\n },\n getUTCMonth: function getUTCMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n if (year < 0 && month > 11) {\n return 0;\n }\n return month;\n },\n getUTCDate: function getUTCDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n var date = originalGetUTCDate(this);\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n var days = daysInMonth(0, year + 1);\n return (days - date) + 1;\n }\n return date;\n }\n }, hasNegativeMonthYearBug);\n\n defineProperties(Date.prototype, {\n toUTCString: function toUTCString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = originalGetUTCDay(this);\n var date = originalGetUTCDate(this);\n var month = originalGetUTCMonth(this);\n var year = originalGetUTCFullYear(this);\n var hour = originalGetUTCHours(this);\n var minute = originalGetUTCMinutes(this);\n var second = originalGetUTCSeconds(this);\n return dayName[day] + ', '\n + (date < 10 ? '0' + date : date) + ' '\n + monthName[month] + ' '\n + year + ' '\n + (hour < 10 ? '0' + hour : hour) + ':'\n + (minute < 10 ? '0' + minute : minute) + ':'\n + (second < 10 ? '0' + second : second) + ' GMT';\n }\n }, hasNegativeMonthYearBug || hasToUTCStringFormatBug);\n\n // Opera 12 has `,`\n defineProperties(Date.prototype, {\n toDateString: function toDateString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n return dayName[day] + ' '\n + monthName[month] + ' '\n + (date < 10 ? '0' + date : date) + ' '\n + year;\n }\n }, hasNegativeMonthYearBug || hasToDateStringFormatBug);\n\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n if (hasNegativeMonthYearBug || hasToStringFormatBug) {\n Date.prototype.toString = function toString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n var hour = this.getHours();\n var minute = this.getMinutes();\n var second = this.getSeconds();\n var timezoneOffset = this.getTimezoneOffset();\n var hoursOffset = Math.floor(Math.abs(timezoneOffset) / 60);\n var minutesOffset = Math.floor(Math.abs(timezoneOffset) % 60);\n return dayName[day] + ' '\n + monthName[month] + ' '\n + (date < 10 ? '0' + date : date) + ' '\n + year + ' '\n + (hour < 10 ? '0' + hour : hour) + ':'\n + (minute < 10 ? '0' + minute : minute) + ':'\n + (second < 10 ? '0' + second : second) + ' GMT'\n + (timezoneOffset > 0 ? '-' : '+')\n + (hoursOffset < 10 ? '0' + hoursOffset : hoursOffset)\n + (minutesOffset < 10 ? '0' + minutesOffset : minutesOffset);\n };\n if (supportsDescriptors) {\n $Object.defineProperty(Date.prototype, 'toString', {\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n }\n\n // ES5 15.9.5.43\n // http://es5.github.com/#x15.9.5.43\n // This function returns a String value represent the instance in time\n // represented by this Date object. The format of the String is the Date Time\n // string format defined in 15.9.1.15. All fields are present in the String.\n // The time zone is always UTC, denoted by the suffix Z. If the time value of\n // this object is not a finite Number a RangeError exception is thrown.\n var negativeDate = -62198755200000;\n var negativeYearString = '-000001';\n var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1; // eslint-disable-line max-len\n var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n\n var getTime = call.bind(Date.prototype.getTime);\n\n defineProperties(Date.prototype, {\n toISOString: function toISOString() {\n if (!isFinite(this) || !isFinite(getTime(this))) {\n // Adope Photoshop requires the second check.\n throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n }\n\n var year = originalGetUTCFullYear(this);\n\n var month = originalGetUTCMonth(this);\n // see https://github.com/es-shims/es5-shim/issues/111\n year += Math.floor(month / 12);\n month = ((month % 12) + 12) % 12;\n\n // the date time string format is specified in 15.9.1.15.\n var result = [\n month + 1,\n originalGetUTCDate(this),\n originalGetUTCHours(this),\n originalGetUTCMinutes(this),\n originalGetUTCSeconds(this)\n ];\n year = (\n (year < 0 ? '-' : (year > 9999 ? '+' : ''))\n + strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)\n );\n\n for (var i = 0; i < result.length; ++i) {\n // pad months, days, hours, minutes, and seconds to have two digits.\n result[i] = strSlice('00' + result[i], -2);\n }\n // pad milliseconds to have three digits.\n return (\n year + '-' + arraySlice(result, 0, 2).join('-')\n + 'T' + arraySlice(result, 2).join(':') + '.'\n + strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z'\n );\n }\n }, hasNegativeDateBug || hasSafari51DateBug);\n\n // ES5 15.9.5.44\n // http://es5.github.com/#x15.9.5.44\n // This function provides a String representation of a Date object for use by\n // JSON.stringify (15.12.3).\n var dateToJSONIsSupported = (function () {\n try {\n return Date.prototype.toJSON\n && new Date(NaN).toJSON() === null\n && new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1\n && Date.prototype.toJSON.call({ // generic\n toISOString: function () { return true; }\n });\n } catch (e) {\n return false;\n }\n }());\n if (!dateToJSONIsSupported) {\n Date.prototype.toJSON = function toJSON(key) {\n // When the toJSON method is called with argument key, the following\n // steps are taken:\n\n // 1. Let O be the result of calling ToObject, giving it the this\n // value as its argument.\n // 2. Let tv be ES.ToPrimitive(O, hint Number).\n var O = $Object(this);\n var tv = ES.ToPrimitive(O);\n // 3. If tv is a Number and is not finite, return null.\n if (typeof tv === 'number' && !isFinite(tv)) {\n return null;\n }\n // 4. Let toISO be the result of calling the [[Get]] internal method of\n // O with argument \"toISOString\".\n var toISO = O.toISOString;\n // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n if (!isCallable(toISO)) {\n throw new TypeError('toISOString property is not callable');\n }\n // 6. Return the result of calling the [[Call]] internal method of\n // toISO with O as the this value and an empty argument list.\n return toISO.call(O);\n\n // NOTE 1 The argument is ignored.\n\n // NOTE 2 The toJSON function is intentionally generic; it does not\n // require that its this value be a Date object. Therefore, it can be\n // transferred to other kinds of objects for use as a method. However,\n // it does require that any such object have a toISOString method. An\n // object is free to use the argument key to filter its\n // stringification.\n };\n }\n\n // ES5 15.9.4.2\n // http://es5.github.com/#x15.9.4.2\n // based on work shared by Daniel Friesen (dantman)\n // http://gist.github.com/303249\n var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\n var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\n var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\n if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n // XXX global assignment won't work in embeddings that use\n // an alternate object for the context.\n /* global Date: true */\n var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1;\n var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime());\n // eslint-disable-next-line no-implicit-globals, no-global-assign\n Date = (function (NativeDate) {\n // Date.length === 7\n var DateShim = function Date(Y, M, D, h, m, s, ms) {\n var length = arguments.length;\n var date;\n if (this instanceof NativeDate) {\n var seconds = s;\n var millis = ms;\n if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = Math.floor(msToShift / 1e3);\n seconds += sToShift;\n millis -= sToShift * 1e3;\n }\n date = length === 1 && $String(Y) === Y // isString(Y)\n // We explicitly pass it through parse:\n ? new NativeDate(DateShim.parse(Y))\n // We have to manually make calls depending on argument\n // length here\n : length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis)\n : length >= 6 ? new NativeDate(Y, M, D, h, m, seconds)\n : length >= 5 ? new NativeDate(Y, M, D, h, m)\n : length >= 4 ? new NativeDate(Y, M, D, h)\n : length >= 3 ? new NativeDate(Y, M, D)\n : length >= 2 ? new NativeDate(Y, M)\n : length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y)\n : new NativeDate();\n } else {\n date = NativeDate.apply(this, arguments);\n }\n if (!isPrimitive(date)) {\n // Prevent mixups with unfixed Date object\n defineProperties(date, { constructor: DateShim }, true);\n }\n return date;\n };\n\n // 15.9.1.15 Date Time String Format.\n var isoDateExpression = new RegExp('^'\n + '(\\\\d{4}|[+-]\\\\d{6})' // four-digit year capture or sign + 6-digit extended year\n + '(?:-(\\\\d{2})' // optional month capture\n + '(?:-(\\\\d{2})' // optional day capture\n + '(?:' // capture hours:minutes:seconds.milliseconds\n + 'T(\\\\d{2})' // hours capture\n + ':(\\\\d{2})' // minutes capture\n + '(?:' // optional :seconds.milliseconds\n + ':(\\\\d{2})' // seconds capture\n + '(?:(\\\\.\\\\d{1,}))?' // milliseconds capture\n + ')?'\n + '(' // capture UTC offset component\n + 'Z|' // UTC capture\n + '(?:' // offset specifier +/-hours:minutes\n + '([-+])' // sign capture\n + '(\\\\d{2})' // hours offset capture\n + ':(\\\\d{2})' // minutes offset capture\n + ')'\n + ')?)?)?)?'\n + '$');\n\n var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n var dayFromMonth = function dayFromMonth(year, month) {\n var t = month > 1 ? 1 : 0;\n return (\n months[month]\n + Math.floor((year - 1969 + t) / 4)\n - Math.floor((year - 1901 + t) / 100)\n + Math.floor((year - 1601 + t) / 400)\n + (365 * (year - 1970))\n );\n };\n\n var toUTC = function toUTC(t) {\n var s = 0;\n var ms = t;\n if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = Math.floor(msToShift / 1e3);\n s += sToShift;\n ms -= sToShift * 1e3;\n }\n return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));\n };\n\n // Copy any custom methods a 3rd party library may have added\n for (var key in NativeDate) {\n if (owns(NativeDate, key)) {\n DateShim[key] = NativeDate[key];\n }\n }\n\n // Copy \"native\" methods explicitly; they may be non-enumerable\n defineProperties(DateShim, {\n now: NativeDate.now,\n UTC: NativeDate.UTC\n }, true);\n DateShim.prototype = NativeDate.prototype;\n defineProperties(DateShim.prototype, { constructor: DateShim }, true);\n\n // Upgrade Date.parse to handle simplified ISO 8601 strings\n var parseShim = function parse(string) {\n var match = isoDateExpression.exec(string);\n if (match) {\n // parse months, days, hours, minutes, seconds, and milliseconds\n // provide default values if necessary\n // parse the UTC offset component\n var year = $Number(match[1]),\n month = $Number(match[2] || 1) - 1,\n day = $Number(match[3] || 1) - 1,\n hour = $Number(match[4] || 0),\n minute = $Number(match[5] || 0),\n second = $Number(match[6] || 0),\n millisecond = Math.floor($Number(match[7] || 0) * 1000),\n // When time zone is missed, local offset should be used\n // (ES 5.1 bug)\n // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n isLocalTime = Boolean(match[4] && !match[8]),\n signOffset = match[9] === '-' ? 1 : -1,\n hourOffset = $Number(match[10] || 0),\n minuteOffset = $Number(match[11] || 0),\n result;\n var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;\n if (\n hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25)\n && minute < 60 && second < 60 && millisecond < 1000\n && month > -1 && month < 12 && hourOffset < 24\n && minuteOffset < 60 // detect invalid offsets\n && day > -1\n && day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month))\n ) {\n result = (\n ((dayFromMonth(year, month) + day) * 24)\n + hour\n + (hourOffset * signOffset)\n ) * 60;\n result = ((\n ((result + minute + (minuteOffset * signOffset)) * 60)\n + second\n ) * 1000) + millisecond;\n if (isLocalTime) {\n result = toUTC(result);\n }\n if (-8.64e15 <= result && result <= 8.64e15) {\n return result;\n }\n }\n return NaN;\n }\n return NativeDate.parse.apply(this, arguments);\n };\n defineProperties(DateShim, { parse: parseShim });\n\n return DateShim;\n }(Date));\n /* global Date: false */\n }\n\n // ES5 15.9.4.4\n // http://es5.github.com/#x15.9.4.4\n if (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n }\n\n //\n // Number\n // ======\n //\n\n // ES5.1 15.7.4.5\n // http://es5.github.com/#x15.7.4.5\n var hasToFixedBugs = NumberPrototype.toFixed && (\n (0.00008).toFixed(3) !== '0.000'\n || (0.9).toFixed(0) !== '1'\n || (1.255).toFixed(2) !== '1.25'\n || (1000000000000000128).toFixed(0) !== '1000000000000000128'\n );\n\n var toFixedHelpers = {\n base: 1e7,\n size: 6,\n data: [0, 0, 0, 0, 0, 0],\n multiply: function multiply(n, c) {\n var i = -1;\n var c2 = c;\n while (++i < toFixedHelpers.size) {\n c2 += n * toFixedHelpers.data[i];\n toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n c2 = Math.floor(c2 / toFixedHelpers.base);\n }\n },\n divide: function divide(n) {\n var i = toFixedHelpers.size;\n var c = 0;\n while (--i >= 0) {\n c += toFixedHelpers.data[i];\n toFixedHelpers.data[i] = Math.floor(c / n);\n c = (c % n) * toFixedHelpers.base;\n }\n },\n numToString: function numToString() {\n var i = toFixedHelpers.size;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n var t = $String(toFixedHelpers.data[i]);\n if (s === '') {\n s = t;\n } else {\n s += strSlice('0000000', 0, 7 - t.length) + t;\n }\n }\n }\n return s;\n },\n pow: function pow(x, n, acc) {\n return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));\n },\n log: function log(x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n }\n return n;\n }\n };\n\n var toFixedShim = function toFixed(fractionDigits) {\n var f, x, s, m, e, z, j, k;\n\n // Test for NaN and round fractionDigits down\n f = $Number(fractionDigits);\n f = isActualNaN(f) ? 0 : Math.floor(f);\n\n if (f < 0 || f > 20) {\n throw new RangeError('Number.toFixed called with invalid number of decimals');\n }\n\n x = $Number(this);\n\n if (isActualNaN(x)) {\n return 'NaN';\n }\n\n // If it is too big or small, return the string value of the number\n if (x <= -1e21 || x >= 1e21) {\n return $String(x);\n }\n\n s = '';\n\n if (x < 0) {\n s = '-';\n x = -x;\n }\n\n m = '0';\n\n if (x > 1e-21) {\n // 1e-21 < x < 1e21\n // -70 < log2(x) < 70\n e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));\n z *= 0x10000000000000; // Math.pow(2, 52);\n e = 52 - e;\n\n // -18 < e < 122\n // x = z / 2 ^ e\n if (e > 0) {\n toFixedHelpers.multiply(0, z);\n j = f;\n\n while (j >= 7) {\n toFixedHelpers.multiply(1e7, 0);\n j -= 7;\n }\n\n toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n j = e - 1;\n\n while (j >= 23) {\n toFixedHelpers.divide(1 << 23);\n j -= 23;\n }\n\n toFixedHelpers.divide(1 << j);\n toFixedHelpers.multiply(1, 1);\n toFixedHelpers.divide(2);\n m = toFixedHelpers.numToString();\n } else {\n toFixedHelpers.multiply(0, z);\n toFixedHelpers.multiply(1 << (-e), 0);\n m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n }\n }\n\n if (f > 0) {\n k = m.length;\n\n if (k <= f) {\n m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n } else {\n m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n }\n } else {\n m = s + m;\n }\n\n return m;\n };\n defineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs);\n\n var hasToPrecisionUndefinedBug = (function () {\n try {\n return 1.0.toPrecision(undefined) === '1';\n } catch (e) {\n return true;\n }\n }());\n var originalToPrecision = NumberPrototype.toPrecision;\n defineProperties(NumberPrototype, {\n toPrecision: function toPrecision(precision) {\n return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision);\n }\n }, hasToPrecisionUndefinedBug);\n\n //\n // String\n // ======\n //\n\n // ES5 15.5.4.14\n // http://es5.github.com/#x15.5.4.14\n\n // [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n // Many browsers do not split properly with regular expressions or they\n // do not perform the split correctly under obscure conditions.\n // See http://blog.stevenlevithan.com/archives/cross-browser-split\n // I've tested in many browsers and this seems to cover the deviant ones:\n // 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n // '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n // 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n // [undefined, \"t\", undefined, \"e\", ...]\n // ''.split(/.?/) should be [], not [\"\"]\n // '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\n if (\n 'ab'.split(/(?:ab)*/).length !== 2\n || '.'.split(/(.?)(.?)/).length !== 4\n || 'tesst'.split(/(s)*/)[1] === 't'\n || 'test'.split(/(?:)/, -1).length !== 4\n || ''.split(/.?/).length\n || '.'.split(/()()/).length > 1\n ) {\n (function () {\n var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n var maxSafe32BitInt = Math.pow(2, 32) - 1;\n\n StringPrototype.split = function (separator, limit) {\n var string = String(this);\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (!isRegex(separator)) {\n return strSplit(this, separator, limit);\n }\n\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '')\n + (separator.multiline ? 'm' : '')\n + (separator.unicode ? 'u' : '') // in ES6\n + (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // maxSafe32BitInt\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);\n match = separatorCopy.exec(string);\n while (match) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n pushCall(output, strSlice(string, lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n /* eslint-disable no-loop-func */\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (typeof arguments[i] === 'undefined') {\n match[i] = void 0;\n }\n }\n });\n /* eslint-enable no-loop-func */\n }\n if (match.length > 1 && match.index < string.length) {\n array_push.apply(output, arraySlice(match, 1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= splitLimit) {\n break;\n }\n }\n if (separatorCopy.lastIndex === match.index) {\n separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n match = separatorCopy.exec(string);\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) {\n pushCall(output, '');\n }\n } else {\n pushCall(output, strSlice(string, lastLastIndex));\n }\n return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output;\n };\n }());\n\n // [bugfix, chrome]\n // If separator is undefined, then the result array contains just one String,\n // which is the this value (converted to a String). If limit is not undefined,\n // then the output array is truncated so that it contains no more than limit\n // elements.\n // \"0\".split(undefined, 0) -> []\n } else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n return strSplit(this, separator, limit);\n };\n }\n\n var str_replace = StringPrototype.replace;\n var replaceReportsGroupsCorrectly = (function () {\n var groups = [];\n 'x'.replace(/x(.)?/g, function (match, group) {\n pushCall(groups, group);\n });\n return groups.length === 1 && typeof groups[0] === 'undefined';\n }());\n\n if (!replaceReportsGroupsCorrectly) {\n StringPrototype.replace = function replace(searchValue, replaceValue) {\n var isFn = isCallable(replaceValue);\n var hasCapturingGroups = isRegex(searchValue) && (/\\)[*?]/).test(searchValue.source);\n if (!isFn || !hasCapturingGroups) {\n return str_replace.call(this, searchValue, replaceValue);\n } else {\n var wrappedReplaceValue = function (match) {\n var length = arguments.length;\n var originalLastIndex = searchValue.lastIndex;\n searchValue.lastIndex = 0;\n var args = searchValue.exec(match) || [];\n searchValue.lastIndex = originalLastIndex;\n pushCall(args, arguments[length - 2], arguments[length - 1]);\n return replaceValue.apply(this, args);\n };\n return str_replace.call(this, searchValue, wrappedReplaceValue);\n }\n };\n }\n\n // ECMA-262, 3rd B.2.3\n // Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n // non-normative section suggesting uniform semantics and it should be\n // normalized across all browsers\n // [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\n var string_substr = StringPrototype.substr;\n var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\n defineProperties(StringPrototype, {\n substr: function substr(start, length) {\n var normalizedStart = start;\n if (start < 0) {\n normalizedStart = max(this.length + start, 0);\n }\n return string_substr.call(this, normalizedStart, length);\n }\n }, hasNegativeSubstrBug);\n\n // ES5 15.5.4.20\n // whitespace from: http://es5.github.io/#x15.5.4.20\n var ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003'\n + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028'\n + '\\u2029\\uFEFF';\n var zeroWidth = '\\u200b';\n var wsRegexChars = '[' + ws + ']';\n var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\n var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\n var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\n defineProperties(StringPrototype, {\n // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n trim: function trim() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n }\n }, hasTrimWhitespaceBug);\n var trim = call.bind(String.prototype.trim);\n\n var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n var S = $String(this);\n var searchStr = $String(searchString);\n var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;\n var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);\n var start = min(max(pos, 0), S.length);\n var searchLen = searchStr.length;\n var k = start + searchLen;\n while (k > 0) {\n k = max(0, k - searchLen);\n var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);\n if (index !== -1) {\n return k + index;\n }\n }\n return -1;\n }\n }, hasLastIndexBug);\n\n var originalLastIndexOf = StringPrototype.lastIndexOf;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n return originalLastIndexOf.apply(this, arguments);\n }\n }, StringPrototype.lastIndexOf.length !== 1);\n\n // ES-5 15.1.2.2\n // eslint-disable-next-line radix\n if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {\n /* global parseInt: true */\n parseInt = (function (origParseInt) {\n var hexRegex = /^[-+]?0[xX]/;\n return function parseInt(str, radix) {\n if (typeof str === 'symbol') {\n // handle Symbols in node 8.3/8.4\n // eslint-disable-next-line no-implicit-coercion, no-unused-expressions\n '' + str; // jscs:ignore disallowImplicitTypeConversion\n }\n\n var string = trim(String(str));\n var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n return origParseInt(string, defaultedRadix);\n };\n }(parseInt));\n }\n\n // https://es5.github.io/#x15.1.2.3\n if (1 / parseFloat('-0') !== -Infinity) {\n /* global parseFloat: true */\n parseFloat = (function (origParseFloat) {\n return function parseFloat(string) {\n var inputString = trim(String(string));\n var result = origParseFloat(inputString);\n return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result;\n };\n }(parseFloat));\n }\n\n if (String(new RangeError('test')) !== 'RangeError: test') {\n var errorToStringShim = function toString() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n var name = this.name;\n if (typeof name === 'undefined') {\n name = 'Error';\n } else if (typeof name !== 'string') {\n name = $String(name);\n }\n var msg = this.message;\n if (typeof msg === 'undefined') {\n msg = '';\n } else if (typeof msg !== 'string') {\n msg = $String(msg);\n }\n if (!name) {\n return msg;\n }\n if (!msg) {\n return name;\n }\n return name + ': ' + msg;\n };\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n Error.prototype.toString = errorToStringShim;\n }\n\n if (supportsDescriptors) {\n var ensureNonEnumerable = function (obj, prop) {\n if (isEnum(obj, prop)) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop);\n if (desc.configurable) {\n desc.enumerable = false;\n Object.defineProperty(obj, prop, desc);\n }\n }\n };\n ensureNonEnumerable(Error.prototype, 'message');\n if (Error.prototype.message !== '') {\n Error.prototype.message = '';\n }\n ensureNonEnumerable(Error.prototype, 'name');\n }\n\n if (String(/a/mig) !== '/a/gim') {\n var regexToString = function toString() {\n var str = '/' + this.source + '/';\n if (this.global) {\n str += 'g';\n }\n if (this.ignoreCase) {\n str += 'i';\n }\n if (this.multiline) {\n str += 'm';\n }\n return str;\n };\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n RegExp.prototype.toString = regexToString;\n }\n}));\n","/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js\n(function (root, factory) {\n 'use strict';\n\n /* global define, exports, module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n\n var call = Function.call;\n var prototypeOfObject = Object.prototype;\n var owns = call.bind(prototypeOfObject.hasOwnProperty);\n var isEnumerable = call.bind(prototypeOfObject.propertyIsEnumerable);\n var toStr = call.bind(prototypeOfObject.toString);\n\n // If JS engine supports accessors creating shortcuts.\n var defineGetter;\n var defineSetter;\n var lookupGetter;\n var lookupSetter;\n var supportsAccessors = owns(prototypeOfObject, '__defineGetter__');\n if (supportsAccessors) {\n /* eslint-disable no-underscore-dangle, no-restricted-properties */\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n /* eslint-enable no-underscore-dangle, no-restricted-properties */\n }\n\n var isPrimitive = function isPrimitive(o) {\n return o == null || (typeof o !== 'object' && typeof o !== 'function');\n };\n\n // ES5 15.2.3.2\n // http://es5.github.com/#x15.2.3.2\n if (!Object.getPrototypeOf) {\n // https://github.com/es-shims/es5-shim/issues#issue/2\n // http://ejohn.org/blog/objectgetprototypeof/\n // recommended by fschaefer on github\n //\n // sure, and webreflection says ^_^\n // ... this will nerever possibly return null\n // ... Opera Mini breaks here with infinite loops\n Object.getPrototypeOf = function getPrototypeOf(object) {\n // eslint-disable-next-line no-proto\n var proto = object.__proto__;\n if (proto || proto === null) {\n return proto;\n } else if (toStr(object.constructor) === '[object Function]') {\n return object.constructor.prototype;\n } else if (object instanceof Object) {\n return prototypeOfObject;\n } else {\n // Correctly return null for Objects created with `Object.create(null)`\n // (shammed or native) or `{ __proto__: null}`. Also returns null for\n // cross-realm objects on browsers that lack `__proto__` support (like\n // IE <11), but that's the best we can do.\n return null;\n }\n };\n }\n\n // ES5 15.2.3.3\n // http://es5.github.com/#x15.2.3.3\n\n var doesGetOwnPropertyDescriptorWork = function doesGetOwnPropertyDescriptorWork(object) {\n try {\n object.sentinel = 0;\n return Object.getOwnPropertyDescriptor(object, 'sentinel').value === 0;\n } catch (exception) {\n return false;\n }\n };\n\n // check whether getOwnPropertyDescriptor works if it's given. Otherwise, shim partially.\n if (Object.defineProperty) {\n var getOwnPropertyDescriptorWorksOnObject = doesGetOwnPropertyDescriptorWork({});\n var getOwnPropertyDescriptorWorksOnDom = typeof document === 'undefined'\n || doesGetOwnPropertyDescriptorWork(document.createElement('div'));\n if (!getOwnPropertyDescriptorWorksOnDom || !getOwnPropertyDescriptorWorksOnObject) {\n var getOwnPropertyDescriptorFallback = Object.getOwnPropertyDescriptor;\n }\n }\n\n if (!Object.getOwnPropertyDescriptor || getOwnPropertyDescriptorFallback) {\n var ERR_NON_OBJECT = 'Object.getOwnPropertyDescriptor called on a non-object: ';\n\n /* eslint-disable no-proto */\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if (isPrimitive(object)) {\n throw new TypeError(ERR_NON_OBJECT + object);\n }\n\n // make a valiant attempt to use the real getOwnPropertyDescriptor\n // for I8's DOM elements.\n if (getOwnPropertyDescriptorFallback) {\n try {\n return getOwnPropertyDescriptorFallback.call(Object, object, property);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n var descriptor;\n\n // If object does not owns property return undefined immediately.\n if (!owns(object, property)) {\n return descriptor;\n }\n\n // If object has a property then it's for sure `configurable`, and\n // probably `enumerable`. Detect enumerability though.\n descriptor = {\n enumerable: isEnumerable(object, property),\n configurable: true\n };\n\n // If JS engine supports accessor properties then property may be a\n // getter or setter.\n if (supportsAccessors) {\n // Unfortunately `__lookupGetter__` will return a getter even\n // if object has own non getter property along with a same named\n // inherited getter. To avoid misbehavior we temporary remove\n // `__proto__` so that `__lookupGetter__` will return getter only\n // if it's owned by an object.\n var prototype = object.__proto__;\n var notPrototypeOfObject = object !== prototypeOfObject;\n // avoid recursion problem, breaking in Opera Mini when\n // Object.getOwnPropertyDescriptor(Object.prototype, 'toString')\n // or any other Object.prototype accessor\n if (notPrototypeOfObject) {\n object.__proto__ = prototypeOfObject;\n }\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n\n if (notPrototypeOfObject) {\n // Once we have getter and setter we can put values back.\n object.__proto__ = prototype;\n }\n\n if (getter || setter) {\n if (getter) {\n descriptor.get = getter;\n }\n if (setter) {\n descriptor.set = setter;\n }\n // If it was accessor property we're done and return here\n // in order to avoid adding `value` to the descriptor.\n return descriptor;\n }\n }\n\n // If we got this far we know that object has an own property that is\n // not an accessor so we set it as a value and return descriptor.\n descriptor.value = object[property];\n descriptor.writable = true;\n return descriptor;\n };\n /* eslint-enable no-proto */\n }\n\n // ES5 15.2.3.4\n // http://es5.github.com/#x15.2.3.4\n if (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n }\n\n // ES5 15.2.3.5\n // http://es5.github.com/#x15.2.3.5\n if (!Object.create) {\n\n // Contributed by Brandon Benvie, October, 2012\n var createEmpty;\n var supportsProto = !({ __proto__: null } instanceof Object);\n // the following produces false positives\n // in Opera Mini => not a reliable check\n // Object.prototype.__proto__ === null\n\n // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n /* global ActiveXObject */\n var shouldUseActiveX = function shouldUseActiveX() {\n // return early if document.domain not set\n if (!document.domain) {\n return false;\n }\n\n try {\n return !!new ActiveXObject('htmlfile');\n } catch (exception) {\n return false;\n }\n };\n\n // This supports IE8 when document.domain is used\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n var getEmptyViaActiveX = function getEmptyViaActiveX() {\n var empty;\n var xDoc;\n\n xDoc = new ActiveXObject('htmlfile');\n\n var script = 'script';\n xDoc.write('<' + script + '>');\n xDoc.close();\n\n empty = xDoc.parentWindow.Object.prototype;\n xDoc = null;\n\n return empty;\n };\n\n // The original implementation using an iframe\n // before the activex approach was added\n // see https://github.com/es-shims/es5-shim/issues/150\n var getEmptyViaIFrame = function getEmptyViaIFrame() {\n var iframe = document.createElement('iframe');\n var parent = document.body || document.documentElement;\n var empty;\n\n iframe.style.display = 'none';\n parent.appendChild(iframe);\n // eslint-disable-next-line no-script-url\n iframe.src = 'javascript:';\n\n empty = iframe.contentWindow.Object.prototype;\n parent.removeChild(iframe);\n iframe = null;\n\n return empty;\n };\n\n /* global document */\n if (supportsProto || typeof document === 'undefined') {\n createEmpty = function () {\n return { __proto__: null };\n };\n } else {\n // In old IE __proto__ can't be used to manually set `null`, nor does\n // any other method exist to make an object that inherits from nothing,\n // aside from Object.prototype itself. Instead, create a new global\n // object and *steal* its Object.prototype and strip it bare. This is\n // used as the prototype to create nullary objects.\n createEmpty = function () {\n // Determine which approach to use\n // see https://github.com/es-shims/es5-shim/issues/150\n var empty = shouldUseActiveX() ? getEmptyViaActiveX() : getEmptyViaIFrame();\n\n delete empty.constructor;\n delete empty.hasOwnProperty;\n delete empty.propertyIsEnumerable;\n delete empty.isPrototypeOf;\n delete empty.toLocaleString;\n delete empty.toString;\n delete empty.valueOf;\n\n var Empty = function Empty() {};\n Empty.prototype = empty;\n // short-circuit future calls\n createEmpty = function () {\n return new Empty();\n };\n return new Empty();\n };\n }\n\n Object.create = function create(prototype, properties) {\n\n var object;\n var Type = function Type() {}; // An empty constructor.\n\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (prototype !== null && isPrimitive(prototype)) {\n // In the native implementation `parent` can be `null`\n // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)\n // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`\n // like they are in modern browsers. Using `Object.create` on DOM elements\n // is...err...probably inappropriate, but the native version allows for it.\n throw new TypeError('Object prototype may only be an Object or null'); // same msg as Chrome\n }\n Type.prototype = prototype;\n object = new Type();\n // IE has no built-in implementation of `Object.getPrototypeOf`\n // neither `__proto__`, but this manually setting `__proto__` will\n // guarantee that `Object.getPrototypeOf` will work as expected with\n // objects created using `Object.create`\n // eslint-disable-next-line no-proto\n object.__proto__ = prototype;\n }\n\n if (properties !== void 0) {\n Object.defineProperties(object, properties);\n }\n\n return object;\n };\n }\n\n // ES5 15.2.3.6\n // http://es5.github.com/#x15.2.3.6\n\n // Patch for WebKit and IE8 standard mode\n // Designed by hax \n // related issue: https://github.com/es-shims/es5-shim/issues#issue/5\n // IE8 Reference:\n // http://msdn.microsoft.com/en-us/library/dd282900.aspx\n // http://msdn.microsoft.com/en-us/library/dd229916.aspx\n // WebKit Bugs:\n // https://bugs.webkit.org/show_bug.cgi?id=36423\n\n var doesDefinePropertyWork = function doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, 'sentinel', {});\n return 'sentinel' in object;\n } catch (exception) {\n return false;\n }\n };\n\n // check whether defineProperty works if it's given. Otherwise,\n // shim partially.\n if (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document === 'undefined'\n || doesDefinePropertyWork(document.createElement('div'));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty,\n definePropertiesFallback = Object.defineProperties;\n }\n }\n\n if (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = 'Property description must be an object: ';\n var ERR_NON_OBJECT_TARGET = 'Object.defineProperty called on non-object: ';\n var ERR_ACCESSORS_NOT_SUPPORTED = 'getters & setters can not be defined on this javascript engine';\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if (isPrimitive(object)) {\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n }\n if (isPrimitive(descriptor)) {\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n }\n // make a valiant attempt to use the real defineProperty\n // for I8's DOM elements.\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n // If it's a data property.\n if ('value' in descriptor) {\n // fail silently if 'writable', 'enumerable', or 'configurable'\n // are requested but not supported\n /*\n // alternate approach:\n if ( // can't implement these features; allow false but not true\n ('writable' in descriptor && !descriptor.writable) ||\n ('enumerable' in descriptor && !descriptor.enumerable) ||\n ('configurable' in descriptor && !descriptor.configurable)\n ))\n throw new RangeError(\n 'This implementation of Object.defineProperty does not support configurable, enumerable, or writable.'\n );\n */\n\n if (supportsAccessors && (lookupGetter(object, property) || lookupSetter(object, property))) {\n // As accessors are supported only on engines implementing\n // `__proto__` we can safely override `__proto__` while defining\n // a property to make sure that we don't hit an inherited\n // accessor.\n /* eslint-disable no-proto */\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n // Deleting a property anyway since getter / setter may be\n // defined on object itself.\n delete object[property];\n object[property] = descriptor.value;\n // Setting original `__proto__` back now.\n object.__proto__ = prototype;\n /* eslint-enable no-proto */\n } else {\n object[property] = descriptor.value;\n }\n } else {\n var hasGetter = 'get' in descriptor;\n var hasSetter = 'set' in descriptor;\n if (!supportsAccessors && (hasGetter || hasSetter)) {\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n }\n // If we got that far then getters and setters can be defined !!\n if (hasGetter) {\n defineGetter(object, property, descriptor.get);\n }\n if (hasSetter) {\n defineSetter(object, property, descriptor.set);\n }\n }\n return object;\n };\n }\n\n // ES5 15.2.3.7\n // http://es5.github.com/#x15.2.3.7\n if (!Object.defineProperties || definePropertiesFallback) {\n Object.defineProperties = function defineProperties(object, properties) {\n // make a valiant attempt to use the real defineProperties\n if (definePropertiesFallback) {\n try {\n return definePropertiesFallback.call(Object, object, properties);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n Object.keys(properties).forEach(function (property) {\n if (property !== '__proto__') {\n Object.defineProperty(object, property, properties[property]);\n }\n });\n return object;\n };\n }\n\n // ES5 15.2.3.8\n // http://es5.github.com/#x15.2.3.8\n if (!Object.seal) {\n Object.seal = function seal(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.seal can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // ES5 15.2.3.9\n // http://es5.github.com/#x15.2.3.9\n if (!Object.freeze) {\n Object.freeze = function freeze(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.freeze can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // detect a Rhino bug and patch it\n try {\n Object.freeze(function () {});\n } catch (exception) {\n Object.freeze = (function (freezeObject) {\n return function freeze(object) {\n if (typeof object === 'function') {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n }(Object.freeze));\n }\n\n // ES5 15.2.3.10\n // http://es5.github.com/#x15.2.3.10\n if (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.preventExtensions can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // ES5 15.2.3.11\n // http://es5.github.com/#x15.2.3.11\n if (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isSealed can only be called on Objects.');\n }\n return false;\n };\n }\n\n // ES5 15.2.3.12\n // http://es5.github.com/#x15.2.3.12\n if (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isFrozen can only be called on Objects.');\n }\n return false;\n };\n }\n\n // ES5 15.2.3.13\n // http://es5.github.com/#x15.2.3.13\n if (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n // 1. If Type(O) is not Object throw a TypeError exception.\n if (Object(object) !== object) {\n throw new TypeError('Object.isExtensible can only be called on Objects.');\n }\n // 2. Return the Boolean value of the [[Extensible]] internal property of O.\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n }\n\n}));\n"," /*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.1\n * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define, module, exports */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n var _call = Function.call.bind(Function.call);\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n var throwsError = function (func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n var arePropertyDescriptorsSupported = function () {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n Object.defineProperty({}, 'x', { get: function () {} });\n });\n };\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n var _reduce = Function.call.bind(Array.prototype.reduce);\n var _filter = Function.call.bind(Array.prototype.filter);\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function (object, name, value, force) {\n if (!force && name in object) { return; }\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n var defineProperties = function (object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) { return typeof x === 'function'; };\n\n var Value = {\n getter: function (object, name, getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: getter\n });\n },\n proxy: function (originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() { return originalObject[key]; },\n set: function setKey(value) { originalObject[key] = value; }\n });\n },\n redefine: function (object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function (object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function (target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n };\n\n // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n Prototype.prototype = prototype;\n var object = new Prototype();\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n return object;\n };\n\n var supportsSubclassing = function (C, f) {\n if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: { value: Sub }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function () {\n /* global self, window, global */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n var _concat = Function.call.bind(Array.prototype.concat);\n // var _sort = Function.call.bind(Array.prototype.sort);\n var _strSlice = Function.call.bind(String.prototype.slice);\n var _push = Function.call.bind(Array.prototype.push);\n var _pushApply = Function.apply.bind(Array.prototype.push);\n var _shift = Function.call.bind(Array.prototype.shift);\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n var ArrayIterator; // make our implementation private\n var noop = function () {};\n\n var OrigMap = globals.Map;\n var origMapDelete = OrigMap && OrigMap.prototype['delete'];\n var origMapGet = OrigMap && OrigMap.prototype.get;\n var origMapHas = OrigMap && OrigMap.prototype.has;\n var origMapSet = OrigMap && OrigMap.prototype.set;\n\n var Symbol = globals.Symbol || {};\n var symbolSpecies = Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n if (number === 0) { return number; }\n if (numberIsNaN(number)) { return number; }\n return number < 0 ? -1 : 1;\n };\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n _toString(value) !== '[object Array]' &&\n _toString(value.callee) === '[object Function]';\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n var Type = {\n primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n string: function (x) { return _toString(x) === '[object String]'; },\n regex: function (x) { return _toString(x) === '[object RegExp]'; },\n symbol: function (x) {\n return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n };\n\n // eslint-disable-next-line no-restricted-properties\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\n // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n }\n\n // Reflect\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n var Reflect = globals.Reflect;\n\n var $String = String;\n\n /* global document */\n var domAll = (typeof document === 'undefined' || !document) ? null : document.all;\n /* jshint eqnull:true */\n var isNullOrUndefined = domAll == null ? function isNullOrUndefined(x) {\n /* jshint eqnull:true */\n return x == null;\n } : function isNullOrUndefinedAndNotDocumentAll(x) {\n /* jshint eqnull:true */\n return x == null && x !== domAll;\n };\n\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n return _apply(F, V, args);\n },\n\n RequireObjectCoercible: function (x, optMessage) {\n if (isNullOrUndefined(x)) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n return x;\n },\n\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function (x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n return typeof x === 'function' || typeof x === 'object' || x === domAll;\n },\n\n ToObject: function (o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n\n IsCallable: isCallable,\n\n IsConstructor: function (x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n\n ToInt32: function (x) {\n return ES.ToNumber(x) >> 0;\n },\n\n ToUint32: function (x) {\n return ES.ToNumber(x) >>> 0;\n },\n\n ToNumber: function (value) {\n if (_toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n return +value;\n },\n\n ToInteger: function (value) {\n var number = ES.ToNumber(value);\n if (numberIsNaN(number)) { return 0; }\n if (number === 0 || !numberIsFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n\n ToLength: function (value) {\n var len = ES.ToInteger(value);\n if (len <= 0) { return 0; } // includes converting -0 to +0\n if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n return len;\n },\n\n SameValue: function (a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) { return 1 / a === 1 / b; }\n return true;\n }\n return numberIsNaN(a) && numberIsNaN(b);\n },\n\n SameValueZero: function (a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n },\n\n IsIterable: function (o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n\n GetIterator: function (o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n var itFn = ES.GetMethod(o, $iterator$);\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n var it = ES.Call(itFn, o);\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n return it;\n },\n\n GetMethod: function (o, p) {\n var func = ES.ToObject(o)[p];\n if (isNullOrUndefined(func)) {\n return void 0;\n }\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n return func;\n },\n\n IteratorComplete: function (iterResult) {\n return !!iterResult.done;\n },\n\n IteratorClose: function (iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n if (returnMethod === void 0) {\n return;\n }\n var innerResult, innerException;\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n if (completionIsThrow) {\n return;\n }\n if (innerException) {\n throw innerException;\n }\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n\n IteratorNext: function (it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n return result;\n },\n\n IteratorStep: function (it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n\n Construct: function (C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n }\n // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n var proto = target.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n var obj = create(proto);\n // Call the constructor.\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n\n SpeciesConstructor: function (O, defaultConstructor) {\n var C = O.constructor;\n if (C === void 0) {\n return defaultConstructor;\n }\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n var S = C[symbolSpecies];\n if (isNullOrUndefined(S)) {\n return defaultConstructor;\n }\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n return S;\n },\n\n CreateHTML: function (string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '';\n },\n\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n var isRegExp = argument[Symbol.match];\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n return Type.regex(argument);\n },\n\n ToString: function ToString(string) {\n return $String(string);\n }\n };\n\n // Well-known Symbol shims\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(Symbol[name])) {\n return Symbol[name];\n }\n // eslint-disable-next-line no-restricted-properties\n var sym = Symbol['for']('Symbol.' + name);\n Object.defineProperty(Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n if (!Type.symbol(Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'search', searchShim);\n }\n if (!Type.symbol(Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(searchValue)) {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n if (!Type.symbol(Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(separator)) {\n var splitter = ES.GetMethod(separator, symbolSplit);\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n overrideNative(String.prototype, 'split', splitShim);\n }\n var symbolMatchExists = Type.symbol(Symbol.match);\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n o[Symbol.match] = function () { return 42; };\n return 'a'.match(o) !== 42;\n }());\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n replacement[key] = original[key];\n });\n }\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function () { return this; };\n var addDefaultSpecies = function (C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function (prototype, impl) {\n var implementation = impl || function iterator() { return this; };\n defineProperty(prototype, $iterator$, implementation);\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n var proto = defaultNewTarget.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n var obj = create(proto);\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n return obj;\n };\n\n // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n }\n }\n return result.join('');\n },\n\n raw: function raw(callSite) {\n var cooked = ES.ToObject(callSite, 'bad callSite');\n var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n var len = rawString.length;\n var literalsegments = ES.ToLength(len);\n if (literalsegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n while (nextIndex < literalsegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(rawString[nextKey]);\n _push(stringElements, nextSeg);\n if (nextIndex + 1 >= literalsegments) {\n break;\n }\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n _push(stringElements, nextSub);\n nextIndex += 1;\n }\n return stringElements.join('');\n }\n };\n if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n defineProperties(String, StringShims);\n\n // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n var stringRepeat = function repeat(s, times) {\n if (times < 1) { return ''; }\n if (times % 2) { return repeat(s, times - 1) + s; }\n var half = repeat(s, times / 2);\n return half + half;\n };\n var stringMaxLength = Infinity;\n\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n return stringRepeat(thisStr, numTimes);\n },\n\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n var start = _max(ES.ToInteger(position), 0);\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n var end = _min(_max(pos, 0), len);\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n // Somehow this trick makes method 100% compat with the spec.\n return _indexOf(this, searchStr, position) !== -1;\n },\n\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n var second = thisStr.charCodeAt(position + 1);\n if (second < 0xDC00 || second > 0xDFFF) { return first; }\n return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n }\n }\n };\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.includes(re);\n });\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims);\n\n // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n var ws = [\n '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n '\\u2029\\uFEFF'\n ].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\n // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n var iteratorResult = function (x) {\n return { value: x, done: arguments.length === 0 };\n };\n\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n var StringIterator = function (s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n var first = s.charCodeAt(i);\n var second, len;\n if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n }\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n var mapping, T;\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n mapping = true;\n }\n\n // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\n var length, result, i;\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n\n i = 0;\n while (true) {\n next = ES.IteratorStep(iterator);\n if (next === false) {\n break;\n }\n nextValue = next.value;\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n i += 1;\n }\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array);\n\n // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n ArrayIterator = function (array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function () {\n var i = this.i;\n var array = this.array;\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n\n/*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n\n return _concat(ownKeys, keys);\n };\n */\n\n // note: this is positioned here because it depends on ArrayIterator\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) { this.length = len; };\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }());\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n var count = _min(finalItem - from, len - to);\n var direction = 1;\n if (from < to && to < (from + count)) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n from += direction;\n to += direction;\n count -= 1;\n }\n return o;\n },\n\n fill: function fill(value) {\n var start;\n if (arguments.length > 1) {\n start = arguments[1];\n }\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n return O;\n },\n\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n return -1;\n },\n\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n };\n // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n }\n\n // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n if (Type.symbol(Symbol.unscopables)) {\n Array.prototype[Symbol.unscopables].values = true;\n }\n }\n // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n if (value === 0 && (1 / value) < 0) {\n return 0;\n }\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () { return this.values(); });\n // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n }\n\n // note: this is positioned here because it relies on Array#entries\n var arrayFromSwallowsNegativeLengths = (function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({ length: -1 }).length === 0;\n });\n }());\n var arrayFromHandlesIterables = (function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }());\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n var arrayFromHandlesUndefinedMapFunction = (function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }());\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n var toLengthsCorrectly = function (method, reversed) {\n var obj = { length: int32sAsOne };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n return true;\n });\n };\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i;\n // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n var result;\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n if (Type.primitive(result)) {\n return result;\n }\n }\n if (typeof O.toString === 'function') {\n result = O.toString();\n if (Type.primitive(result)) {\n return result;\n }\n }\n throw new TypeError('No default value');\n };\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n var NumberShim = (function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n /* jshint newcap: false */\n return OrigNumber(primValue);\n /* jshint newcap: true */\n };\n return NumberShim;\n }());\n wrapConstructor(OrigNumber, NumberShim, {});\n // this is necessary for ES3 browsers, where these properties are non-enumerable.\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* globals Number: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals Number: false */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n\n isFinite: numberIsFinite,\n\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n\n isNaN: numberIsNaN\n });\n // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\n // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n /*jshint elision: true */\n /* eslint-disable no-sparse-arrays */\n if ([, 1].find(function () { return true; }) === 1) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n if ([, 1].findIndex(function () { return true; }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n /*jshint elision: false */\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, { enumerable: false });\n }\n };\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n return args;\n };\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n var assignReducer = function (target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function (target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }());\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: (function (Object, magic) {\n var set;\n\n var checkArgs = function (O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function (O, proto) {\n checkArgs(O, proto);\n _call(set, O, proto);\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n }\n // probably Chrome or some old Mobile stock browser\n set = function (proto) {\n this[magic] = proto;\n };\n // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n setPrototypeOf.polyfill = setPrototypeOf(\n setPrototypeOf({}, null),\n Object.prototype\n ) instanceof Object;\n // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n return setPrototypeOf;\n }(Object, '__proto__'))\n };\n\n defineProperties(Object, ES5ObjectShims);\n }\n\n // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n if (Object.setPrototypeOf && Object.getPrototypeOf &&\n Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n Object.setPrototypeOf.polyfill = false;\n }());\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () { Object.keys('foo'); });\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n var objectKeysRejectsRegex = throwsError(function () { Object.keys(/a/g); });\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n return regexKeys;\n }\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyNames('foo'); });\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyDescriptor('foo', 'bar'); });\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () { Object.seal('foo'); });\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectSeal(value);\n });\n }\n }\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () { Object.isSealed('foo'); });\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsSealed(value);\n });\n }\n }\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () { Object.freeze('foo'); });\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectFreeze(value);\n });\n }\n }\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () { Object.isFrozen('foo'); });\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsFrozen(value);\n });\n }\n }\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { Object.preventExtensions('foo'); });\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectPreventExtensions(value);\n });\n }\n }\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { Object.isExtensible('foo'); });\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) { return false; }\n return originalObjectIsExtensible(value);\n });\n }\n }\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () { Object.getPrototypeOf('foo'); });\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && (function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }());\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n var result = '';\n if (this.global) {\n result += 'g';\n }\n if (this.ignoreCase) {\n result += 'i';\n }\n if (this.multiline) {\n result += 'm';\n }\n if (this.unicode) {\n result += 'u';\n }\n if (this.sticky) {\n result += 'y';\n }\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[Symbol.match] = false;\n return RegExp(regex) === regex;\n }());\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n });\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n var legacySourceGetter = function () {\n // prior to it being a getter, it's own + nonconfigurable\n return this.source;\n };\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\n var OrigRegExp = RegExp;\n var RegExpShim = (function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n return new OrigRegExp(pattern, flags);\n };\n }());\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n });\n /* globals RegExp: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals RegExp: false */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n addDefaultSpecies(RegExp);\n\n var inverseEpsilon = 1 / Number.EPSILON;\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return (n + inverseEpsilon) - inverseEpsilon;\n };\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || value < 1) { return NaN; }\n if (x === 1) { return 0; }\n if (x === Infinity) { return x; }\n return _log((x / E) + (_sqrt(x + 1) * _sqrt(x - 1) / E)) + 1;\n },\n\n asinh: function asinh(value) {\n var x = Number(value);\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n return x < 0 ? -asinh(-x) : _log(x + _sqrt((x * x) + 1));\n },\n\n atanh: function atanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n if (x === -1) { return -Infinity; }\n if (x === 1) { return Infinity; }\n if (x === 0) { return x; }\n return 0.5 * _log((1 + x) / (1 - x));\n },\n\n cbrt: function cbrt(value) {\n var x = Number(value);\n if (x === 0) { return x; }\n var negate = x < 0;\n var result;\n if (negate) { x = -x; }\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3);\n // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = ((x / (result * result)) + (2 * result)) / 3;\n }\n return negate ? -result : result;\n },\n\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n if (number === 0) {\n return 32;\n }\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n\n cosh: function cosh(value) {\n var x = Number(value);\n if (x === 0) { return 1; } // +0 or -0\n if (numberIsNaN(x)) { return NaN; }\n if (!globalIsFinite(x)) { return Infinity; }\n if (x < 0) { x = -x; }\n if (x > 21) { return _exp(x) / 2; }\n return (_exp(x) + _exp(-x)) / 2;\n },\n\n expm1: function expm1(value) {\n var x = Number(value);\n if (x === -Infinity) { return -1; }\n if (!globalIsFinite(x) || x === 0) { return x; }\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n }\n // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n var t = x;\n var sum = 0;\n var n = 1;\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n return sum;\n },\n\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n if (largest < value) {\n result *= (largest / value) * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? (value / largest) * (value / largest) : value;\n }\n }\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n\n log1p: function log1p(value) {\n var x = Number(value);\n if (x < -1 || numberIsNaN(x)) { return NaN; }\n if (x === 0 || x === Infinity) { return x; }\n if (x === -1) { return -Infinity; }\n\n return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n },\n\n sign: _sign,\n\n sinh: function sinh(value) {\n var x = Number(value);\n if (!globalIsFinite(x) || x === 0) { return x; }\n\n if (_abs(x) < 1) {\n return (Math.expm1(x) - Math.expm1(-x)) / 2;\n }\n return (_exp(x - 1) - _exp(-x - 1)) * E / 2;\n },\n\n tanh: function tanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x === 0) { return x; }\n // can exit early at +-20 as JS loses precision for true value at this integer\n if (x >= 20) { return 1; }\n if (x <= -20) { return -1; }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl) + ((((ah * bl) + (al * bh)) << 16) >>> 0) | 0;\n },\n\n fround: function fround(x) {\n var v = Number(x);\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n var sign = _sign(v);\n var abs = _abs(v);\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(\n abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON\n ) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n }\n // Veltkamp's splitting (?)\n var a = (1 + (BINARY_32_EPSILON / Number.EPSILON)) * abs;\n var result = a - (a - abs);\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n return sign * result;\n }\n };\n defineProperties(Math, MathShims);\n // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n // Chrome 40 has an imprecise Math.tanh with very small numbers\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n // Chrome 40 loses Math.acosh precision with high numbers\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n // Firefox 38 on Windows\n defineProperty(Math, 'cbrt', MathShims.cbrt, Math.abs(1 - (Math.cbrt(1e-300) / 1e-100)) / Number.EPSILON > 8);\n // node 0.11 has an imprecise Math.sinh with very small numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\n var origMathRound = Math.round;\n // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n var roundHandlesBoundaryConditions = Math.round(0.5 - (Number.EPSILON / 4)) === 0 &&\n Math.round(-0.5 + (Number.EPSILON / 3.99)) === 1;\n\n // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = (2 * inverseEpsilon) - 1;\n var roundDoesNotIncreaseIntegers = [\n smallestPositiveNumberWhereRoundBreaks,\n largestPositiveNumberWhereRoundBreaks\n ].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n\n var origImul = Math.imul;\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n }\n\n // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n var PromiseShim = (function () {\n var setTimeout = globals.setTimeout;\n // some environments don't have setTimeout - no way to shim here.\n if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n return true;\n };\n\n // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n var PromiseCapability = function (C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = this;\n var resolver = function (resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n capability.resolve = resolve;\n capability.reject = reject;\n };\n // Initialize fields to inform optimizers about the object shape.\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n };\n\n // find an appropriate setImmediate-alike\n var makeZeroTimeout;\n /*global window */\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function () {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n var setZeroTimeout = function (fn) {\n _push(timeouts, fn);\n window.postMessage(messageName, '*');\n };\n var handleMessage = function (event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n if (timeouts.length === 0) { return; }\n var fn = _shift(timeouts);\n fn();\n }\n };\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n var makePromiseAsap = function () {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n /*global process */\n /* jscs:disable disallowMultiLineTernary */\n var enqueue = ES.IsCallable(globals.setImmediate) ?\n globals.setImmediate :\n typeof process === 'object' && process.nextTick ? process.nextTick :\n makePromiseAsap() ||\n (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() :\n function (task) { setTimeout(task, 0); }); // fallback\n /* jscs:enable disallowMultiLineTernary */\n\n // Constants for Promise implementation\n var PROMISE_IDENTITY = function (x) { return x; };\n var PROMISE_THROWER = function (e) { throw e; };\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2;\n // We store fulfill/reject handlers and capabilities in a single array.\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2;\n // This is used in an optimization for chaining promises via then.\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function (handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function (handler, promiseCapability, argument) {\n var handlerResult, f;\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n f(handlerResult);\n };\n\n var fulfillPromise = function (promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.fulfillReactionHandler0,\n _promise.reactionCapability0,\n value\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_FULFILL_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n value\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function (promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.rejectReactionHandler0,\n _promise.reactionCapability0,\n reason\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_REJECT_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n reason\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function (promise) {\n var alreadyResolved = false;\n var resolve = function (resolution) {\n var then;\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n var reject = function (reason) {\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n return { resolve: resolve, reject: reject };\n };\n\n var optimizedThen = function (then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n var promiseResolveThenableJob = function (promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n var Promise = (function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n }\n // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n return promise;\n };\n return PromiseShim;\n }());\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function (index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) { return; }\n alreadyCalled = true;\n values[index] = x;\n if ((--remaining.count) === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = { count: 1 };\n var next, nextValue;\n var index = 0;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n var resolveElement = _promiseAllResolver(\n index, values, resultCapability, remaining\n );\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n if ((--remaining.count) === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n return resultCapability.promise;\n };\n\n var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n race: function race(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n reject: function reject(reason) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n return capability.promise;\n },\n\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n if (constructor === C) {\n return v;\n }\n }\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n return capability.promise;\n }\n });\n\n defineProperties(Promise$prototype, {\n 'catch': function (onRejected) {\n return this.then(null, onRejected);\n },\n\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n }\n // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n fulfillReactionHandler, resultCapability, value\n );\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n rejectReactionHandler, resultCapability, value\n );\n } else {\n throw new TypeError('unexpected Promise state');\n }\n return resultCapability.promise;\n }\n });\n // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n\n return Promise;\n }());\n\n // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, { Promise: PromiseShim });\n // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () {\n globals.Promise.reject(42).then(null, 5).then(null, noop);\n });\n var promiseRequiresObjectContext = throwsError(function () { globals.Promise.call(3, noop); });\n // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n var promiseResolveBroken = (function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n return p === p2; // This *should* be false!\n }(globals.Promise));\n\n // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n var getsThenSynchronously = supportsDescriptors && (function () {\n var count = 0;\n var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n Promise.resolve(thenable);\n return count === 1;\n }());\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all;\n // Chrome Canary 49 (probably older too) has some implementation bugs\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n !promiseRequiresObjectContext || promiseResolveBroken ||\n !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n Promise = PromiseShim;\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals Promise: false */\n overrideNative(globals, 'Promise', PromiseShim);\n }\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n }\n\n // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n var testOrder = function (a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n // some engines (eg, Chrome) only preserve insertion order for string keys\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n\n var fastkey = function fastkey(key, skipInsertionOrderCheck) {\n if (!skipInsertionOrderCheck && !preservesInsertionOrder) {\n return null;\n }\n if (isNullOrUndefined(key)) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = map.set;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextItem = next.value;\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = set.add;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextValue = next.value;\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: (function () {\n\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n next: function next() {\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n }\n // advance to next unreturned element.\n var result;\n while (i.next !== head) {\n i = i.next;\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n this.i = i;\n return iteratorResult(result);\n }\n }\n // once the iterator is done, it is done forever.\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n\n var Map$prototype;\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _map: OrigMap ? new OrigMap() : null,\n _size: 0,\n _storage: emptyObject()\n });\n\n var head = new MapEntry(null, null);\n // circular doubly-linked list.\n /* eslint no-multi-assign: 1 */\n head.next = head.prev = head;\n map._head = head;\n\n // Optionally initialize map from iterable\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n return map;\n };\n Map$prototype = MapShim.prototype;\n\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n return this._size;\n });\n\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n entry = this._storage[fkey];\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n if (this._map) {\n // fast object key path\n entry = origMapGet.call(this._map, key);\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n if (this._map) {\n // fast object key path\n return origMapHas.call(this._map, key);\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n return false;\n },\n\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value); /* eslint no-multi-assign: 1 */\n i = head.prev;\n // fall through\n }\n } else if (this._map) {\n // fast object key path\n if (origMapHas.call(this._map, key)) {\n origMapGet.call(this._map, key).value = value;\n } else {\n entry = new MapEntry(key, value);\n origMapSet.call(this._map, key, entry);\n i = head.prev;\n // fall through\n }\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n entry = entry || new MapEntry(key, value);\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n\n 'delete': function (key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n i = this._storage[fkey].prev;\n delete this._storage[fkey];\n // fall through\n } else if (this._map) {\n // fast object key path\n if (!origMapHas.call(this._map, key)) {\n return false;\n }\n i = origMapGet.call(this._map, key).prev;\n origMapDelete.call(this._map, key);\n // fall through\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = empty;\n i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n return false;\n },\n\n clear: function clear() {\n /* eslint no-multi-assign: 1 */\n requireMapSlot(this, 'clear');\n this._map = OrigMap ? new OrigMap() : null;\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n while ((i = p) !== head) {\n i.key = empty;\n i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n head.next = head.prev = head;\n },\n\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n\n return MapShim;\n }()),\n\n Set: (function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n };\n\n // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n var Set$prototype;\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n if (!set._es6set) {\n throw new TypeError('bad set');\n }\n\n // Optionally initialize Set from iterable\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n return set;\n };\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function (key) {\n var k = key;\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n return +k;\n };\n // Switch from the object backing storage to a full Map.\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = new collectionShims.Map();\n set['[[SetData]]'] = m;\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n set['[[SetData]]'] = m;\n }\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n if (this._storage) {\n return keys(this._storage).length;\n }\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n\n 'delete': function (key) {\n requireSetSlot(this, 'delete');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n return (delete this._storage[fkey]) && hasFKey;\n }\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n\n clear: function clear() {\n requireSetSlot(this, 'clear');\n if (this._storage) {\n this._storage = emptyObject();\n }\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return this['[[SetData]]'].values();\n },\n\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return this['[[SetData]]'].entries();\n },\n\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n return SetShim;\n }())\n };\n\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n if (!mapAcceptsArguments) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n globals.Map.prototype = create(OrigMap.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var testMap = new Map();\n var mapUsesSameValueZero = (function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }());\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n return this;\n });\n }\n if (!mapUsesSameValueZero) {\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n var testSet = new Set();\n var setUsesSameValueZero = (function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet));\n var setSupportsChaining = testSet.add(1) === testSet;\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n return this;\n };\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]);\n // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n m.set(42, 42);\n return m instanceof M;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing;\n var mapRequiresNew = (function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing;\n var setRequiresNew = (function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n var s = new OrigSet();\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n if (\n typeof globals.Map.prototype.clear !== 'function' ||\n new globals.Set().size !== 0 ||\n newMap.size !== 0 ||\n typeof globals.Map.prototype.keys !== 'function' ||\n typeof globals.Set.prototype.keys !== 'function' ||\n typeof globals.Map.prototype.forEach !== 'function' ||\n typeof globals.Set.prototype.forEach !== 'function' ||\n isCallableWithoutNew(globals.Map) ||\n isCallableWithoutNew(globals.Set) ||\n typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing\n ) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n }\n\n // Shim incomplete iterator implementations.\n addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n };\n\n // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n }\n\n // Will return true.\n return delete target[key];\n },\n\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.defineProperty(target, propertyKey, attributes);\n });\n },\n\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n\n return internalGet(target, key, receiver);\n },\n\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function (object, lastProto) {\n var proto = lastProto;\n while (proto) {\n if (object === proto) {\n return true;\n }\n proto = ReflectShims.getPrototypeOf(proto);\n }\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n }\n\n // If they already are the same, we're done.\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n }\n\n // Cannot alter prototype if object not extensible.\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n }\n\n // Ensure that we do not create a circular prototype chain.\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n\n return true;\n }\n });\n }\n var defineOrOverrideReflectProperty = function (key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n // \"extensible\" fails on Edge 0.12\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n return ES.Call(dateToString, this);\n };\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n }\n\n // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n var stringHTMLshims = {\n anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n };\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n var quotesCount = _concat([], output.match(/\"/g)).length;\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = (function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) { return false; } // Symbols are not supported\n var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n if (!stringify) { return false; } // JSON.stringify is not supported\n if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n var obj = { a: Symbol() };\n obj[Symbol()] = true;\n if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n return false;\n }());\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) { return true; } // Symbols are not supported\n return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n });\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (typeof value === 'symbol') { return; }\n var replacer;\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n var args = [value];\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n var wrappedReplacer = function (key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n if (typeof parsedValue !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n}));\n","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","/** @license React v16.7.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,A=n?Symbol.for(\"react.memo\"):\n60115,B=n?Symbol.for(\"react.lazy\"):60116,C=\"function\"===typeof Symbol&&Symbol.iterator;function aa(a,b,e,c,d,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[e,c,d,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction D(a){for(var b=arguments.length-1,e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cQ.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;hthis.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=z.extend({data:null}),nb=z.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=gb(),fb=eb=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function E(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var F={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){F[a]=new E(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];F[b]=new E(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){F[a]=new E(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){F[a]=new E(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){F[a]=new E(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){F[a]=new E(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){F[a]=new E(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){F[a]=new E(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){F[a]=new E(a,5,!1,a.toLowerCase(),null)});var vc=/[\\-:]([a-z])/g;function wc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(vc,\nwc);F[b]=new E(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});F.tabIndex=new E(\"tabIndex\",1,!1,\"tabindex\",null);\nfunction xc(a,b,c,d){var e=F.hasOwnProperty(b)?F[b]:null;var f=null!==e?0===e.type:d?!1:!(2Fd.length&&Fd.push(a)}}}var Ld={},Md=0,Nd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Od(a){Object.prototype.hasOwnProperty.call(a,Nd)||(a[Nd]=Md++,Ld[a[Nd]]={});return Ld[a[Nd]]}function Pd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Qd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Rd(a,b){var c=Qd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Qd(c)}}function Sd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Sd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Td(){for(var a=window,b=Pd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Pd(a.document)}return b}function Ud(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Vd=Sa&&\"documentMode\"in document&&11>=document.documentMode,Wd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Xd=null,Yd=null,Zd=null,$d=!1;\nfunction ae(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if($d||null==Xd||Xd!==Pd(c))return null;c=Xd;\"selectionStart\"in c&&Ud(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Zd&&jd(Zd,c)?null:(Zd=c,a=z.getPooled(Wd.select,Yd,a,b),a.type=\"select\",a.target=Xd,Ra(a),a)}\nvar be={eventTypes:Wd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Od(e);f=ta.onSelect;for(var g=0;g=b.length?void 0:t(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:yc(c)}}\nfunction ie(a,b){var c=yc(b.value),d=yc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function je(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ke={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction le(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function me(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?le(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ne=void 0,oe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ke.svg||\"innerHTML\"in a)a.innerHTML=b;else{ne=ne||document.createElement(\"div\");ne.innerHTML=\"\"+b+\"\";for(b=ne.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pe(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},re=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qe).forEach(function(a){re.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qe[b]=qe[a]})});function se(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qe.hasOwnProperty(a)&&qe[a]?(\"\"+b).trim():b+\"px\"}\nfunction te(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=se(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ue=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ve(a,b){b&&(ue[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?t(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?t(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:t(\"61\")),null!=b.style&&\"object\"!==typeof b.style?t(\"62\",\"\"):void 0)}\nfunction we(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction xe(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Od(a);b=ta[b];for(var d=0;dJe||(a.current=Ie[Je],Ie[Je]=null,Je--)}function J(a,b){Je++;Ie[Je]=a.current;a.current=b}var Ke={},K={current:Ke},L={current:!1},Le=Ke;\nfunction Me(a,b){var c=a.type.contextTypes;if(!c)return Ke;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function M(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ne(a){I(L,a);I(K,a)}function Oe(a){I(L,a);I(K,a)}\nfunction Pe(a,b,c){K.current!==Ke?t(\"168\"):void 0;J(K,b,a);J(L,c,a)}function Qe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:t(\"108\",mc(b)||\"Unknown\",e);return n({},c,d)}function Re(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Ke;Le=K.current;J(K,b,a);J(L,L.current,a);return!0}\nfunction Se(a,b,c){var d=a.stateNode;d?void 0:t(\"169\");c?(b=Qe(a,b,Le),d.__reactInternalMemoizedMergedChildContext=b,I(L,a),I(K,a),J(K,b,a)):I(L,a);J(L,c,a)}var Te=null,Ue=null;function Ve(a){return function(b){try{return a(b)}catch(c){}}}\nfunction We(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Te=Ve(function(a){return b.onCommitFiberRoot(c,a)});Ue=Ve(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Xe(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function N(a,b,c,d){return new Xe(a,b,c,d)}\nfunction Ye(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Ze(a){if(\"function\"===typeof a)return Ye(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gc)return 11;if(a===ic)return 14}return 2}\nfunction $e(a,b){var c=a.alternate;null===c?(c=N(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction af(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ye(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ac:return bf(c.children,e,f,b);case fc:return cf(c,e|3,f,b);case bc:return cf(c,e|2,f,b);case cc:return a=N(12,c,b,e|4),a.elementType=cc,a.type=cc,a.expirationTime=f,a;case hc:return a=N(13,c,b,e),a.elementType=hc,a.type=hc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case dc:g=10;break a;case ec:g=9;break a;case gc:g=11;break a;case ic:g=\n14;break a;case jc:g=16;d=null;break a}t(\"130\",null==a?a:typeof a,\"\")}b=N(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function bf(a,b,c,d){a=N(7,a,d,b);a.expirationTime=c;return a}function cf(a,b,c,d){a=N(8,a,d,b);b=0===(b&1)?bc:fc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function df(a,b,c){a=N(6,a,null,b);a.expirationTime=c;return a}\nfunction ef(a,b,c){b=N(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ff(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);gf(b,a)}\nfunction hf(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);gf(b,a)}function jf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}\nfunction gf(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}var kf=!1;function lf(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction mf(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function of(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=lf(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=lf(a.memoizedState),e=c.updateQueue=lf(c.memoizedState)):d=a.updateQueue=mf(e):null===e&&(e=c.updateQueue=mf(d));null===e||d===e?of(d,b):null===d.lastUpdate||null===e.lastUpdate?(of(d,b),of(e,b)):(of(d,b),e.lastUpdate=b)}\nfunction qf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=lf(a.memoizedState):rf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function rf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=mf(b));return b}\nfunction sf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:kf=!0}return d}\nfunction tf(a,b,c,d,e){kf=!1;b=rf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mu?(p=m,m=null):p=m.sibling;var v=w(e,m,h[u],k);if(null===v){null===m&&(m=p);break}a&&\nm&&null===v.alternate&&b(e,m);g=f(v,g,u);null===q?l=v:q.sibling=v;q=v;m=p}if(u===h.length)return c(e,m),l;if(null===m){for(;uu?(p=q,q=null):p=q.sibling;var A=w(e,q,v.value,k);if(null===A){q||(q=p);break}a&&q&&null===A.alternate&&b(e,q);g=f(A,g,u);null===m?l=A:m.sibling=A;m=A;q=p}if(v.done)return c(e,q),l;if(null===q){for(;!v.done;u++,v=h.next())v=r(e,v.value,k),null!==v&&(g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);return l}for(q=d(e,q);!v.done;u++,v=h.next())v=y(q,e,u,v.value,k),null!==v&&(a&&null!==v.alternate&&q.delete(null===v.key?u:\nv.key),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ac&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Zb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ac:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ac?f.props.children:f.props,h);d.ref=bg(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===ac?(d=bf(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=af(f.type,f.key,f.props,null,a.mode,h),h.ref=bg(a,d,f),h.return=a,a=h)}return g(a);case $b:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ef(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=df(f,a.mode,h),d.return=a,a=d),g(a);if(ag(f))return B(a,d,f,h);if(lc(f))return R(a,d,f,h);l&&cg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,t(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var eg=dg(!0),fg=dg(!1),gg=null,hg=null,ig=!1;\nfunction jg(a,b){var c=N(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function kg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}\nfunction lg(a){if(ig){var b=hg;if(b){var c=b;if(!kg(a,b)){b=Ge(c);if(!b||!kg(a,b)){a.effectTag|=2;ig=!1;gg=a;return}jg(gg,c)}gg=a;hg=He(b)}else a.effectTag|=2,ig=!1,gg=a}}function mg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;gg=a}function ng(a){if(a!==gg)return!1;if(!ig)return mg(a),ig=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ce(b,a.memoizedProps))for(b=hg;b;)jg(a,b),b=Ge(b);mg(a);hg=gg?Ge(a.stateNode):null;return!0}function og(){hg=gg=null;ig=!1}var pg=Xb.ReactCurrentOwner;\nfunction Q(a,b,c,d){b.child=null===a?fg(b,null,c,d):eg(b,a.child,c,d)}function qg(a,b,c,d,e){c=c.render;var f=b.ref;Df(b,e);d=c(d,f);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction rg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ye(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,sg(a,b,g,d,e,f);a=af(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return zg(a,b,c);b=tg(a,b,c);return null!==b?b.sibling:null}}return tg(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==\na&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Me(b,K.current);Df(b,c);e=d(a,e);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(M(d)){var f=!0;Re(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Qf(b,d,g,a);e.updater=Vf;b.stateNode=e;e._reactInternalFiber=b;$f(b,d,a,c);b=xg(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;\nreturn b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=Nf(e);b.type=a;e=b.tag=Ze(a);f=P(a,f);g=void 0;switch(e){case 0:g=ug(null,b,a,f,c);break;case 1:g=wg(null,b,a,f,c);break;case 11:g=qg(null,b,a,f,c);break;case 14:g=rg(null,b,a,P(a.type,f),d,c);break;default:t(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),ug(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),wg(a,b,\nd,e,c);case 3:yg(b);d=b.updateQueue;null===d?t(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;tf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)og(),b=tg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)hg=He(b.stateNode.containerInfo),gg=b,e=ig=!0;e?(b.effectTag|=2,b.child=fg(b,null,d,c)):(Q(a,b,d,c),og());b=b.child}return b;case 5:return Lf(b),null===a&&lg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ce(d,e)?g=null:null!==\nf&&Ce(d,f)&&(b.effectTag|=16),vg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&lg(b),null;case 13:return zg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=eg(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),qg(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,\nc),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Bf(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!L.current){b=tg(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=nf(c);k.tag=2;pf(g,k)}g.expirationTime<\nc&&(g.expirationTime=c);k=g.alternate;null!==k&&k.expirationTime\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof r.is?l=l.createElement(e,{is:r.is}):(l=l.createElement(e),\"select\"===e&&r.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[Ga]=m;e[Ha]=g;Cg(e,b,!1,!1);r=e;l=f;m=g;var w=h,y=we(l,m);switch(l){case \"iframe\":case \"object\":H(\"load\",\nr);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==S)return S;null!==c&&0===(c.effectTag&1024)&&(null===\nc.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=y)r=0;else if(-1===r||y component higher in the tree to provide a loading indicator or placeholder to display.\"+\nnc(k))}fh=!0;l=wf(l,k);g=h;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Vg(g,l,f);qf(g,f);break a;case 1:if(m=l,r=g.type,w=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof r.getDerivedStateFromError||null!==w&&\"function\"===typeof w.componentDidCatch&&(null===Yg||!Yg.has(w)))){g.effectTag|=2048;g.expirationTime=f;f=Xg(g,m,f);qf(g,f);break a}}g=g.return}while(null!==g)}S=kh(e);continue}}}break}while(1);dh=!1;Af=zf=yf=ah.currentDispatcher=null;if(d)T=null,a.finishedWork=null;\nelse if(null!==S)a.finishedWork=null;else{d=a.current.alternate;null===d?t(\"281\"):void 0;T=null;if(fh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=\nc,a.finishedWork=d)}}function Mg(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Yg||!Yg.has(d))){a=wf(b,a);a=Xg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}break;case 3:a=wf(b,a);a=Vg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}c=c.return}3===a.tag&&(c=wf(b,a),c=Vg(a,c,1073741823),pf(a,c),Uf(a,1073741823))}\nfunction Sf(a,b){0!==ch?a=ch:dh?a=gh?1073741823:U:b.mode&1?(a=qh?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==T&&a===U&&--a):a=1073741823;qh&&(0===rh||a=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;gf(c,a);c=a.expirationTime;0!==c&&sh(a,c)}}\nfunction Tg(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=Rf();b=Sf(b,a);a=th(a,b);null!==a&&(ff(a,b),b=a.expirationTime,0!==b&&sh(a,b))}\nfunction th(a,b){a.expirationTimeU&&jh(),ff(a,b),dh&&!gh&&T===a||sh(a,a.expirationTime),uh>vh&&(uh=0,t(\"185\")))}function wh(a,b,c,d,e){var f=ch;ch=1073741823;try{return a(b,c,d,e)}finally{ch=f}}var xh=null,W=null,yh=0,zh=void 0,X=!1,Ah=null,Y=0,rh=0,Bh=!1,Ch=null,Z=!1,Dh=!1,qh=!1,Eh=null,Fh=ba.unstable_now(),Gh=1073741822-(Fh/10|0),Hh=Gh,vh=50,uh=0,Ih=null;function Jh(){Gh=1073741822-((ba.unstable_now()-Fh)/10|0)}\nfunction Kh(a,b){if(0!==yh){if(ba.expirationTime&&(a.expirationTime=b);X||(Z?Dh&&(Ah=a,Y=1073741823,Ph(a,1073741823,!1)):1073741823===b?Qh(1073741823,!1):Kh(a,b))}\nfunction Oh(){var a=0,b=null;if(null!==W)for(var c=W,d=xh;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?t(\"244\"):void 0;if(d===d.nextScheduledRoot){xh=W=d.nextScheduledRoot=null;break}else if(d===xh)xh=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=xh;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===W)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}Ah=b;Y=a}var Rh=!1;function nh(){return Rh?!0:ba.unstable_shouldYield()?Rh=!0:!1}function Lh(){try{if(!nh()&&null!==xh){Jh();var a=xh;do{var b=a.expirationTime;0!==b&&Gh<=b&&(a.nextExpirationTimeToWorkOn=Gh);a=a.nextScheduledRoot}while(a!==xh)}Qh(0,!0)}finally{Rh=!1}}\nfunction Qh(a,b){Oh();if(b)for(Jh(),Hh=Gh;null!==Ah&&0!==Y&&a<=Y&&!(Rh&&Gh>Y);)Ph(Ah,Y,Gh>Y),Oh(),Jh(),Hh=Gh;else for(;null!==Ah&&0!==Y&&a<=Y;)Ph(Ah,Y,!1),Oh();b&&(yh=0,zh=null);0!==Y&&Kh(Ah,Y);uh=0;Ih=null;if(null!==Eh)for(a=Eh,Eh=null,b=0;b=c&&(null===Eh?Eh=[d]:Eh.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Ih?uh++:(Ih=a,uh=0);gh=dh=!0;a.current===b?t(\"177\"):void 0;c=a.pendingCommitExpirationTime;0===c?t(\"261\"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=\n0):(dd?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime,0===e?ff(a,d):de&&ff(a,d));gf(0,a);ah.current=null;1q&&(u=q,q=G,G=u),u=Rd(x,G),A=Rd(x,q),u&&A&&(1!==p.rangeCount||p.anchorNode!==u.node||p.anchorOffset!==u.offset||p.focusNode!==A.node||p.focusOffset!==A.offset)&&(C=C.createRange(),C.setStart(u.node,u.offset),p.removeAllRanges(),\nG>q?(p.addRange(C),p.extend(A.node,A.offset)):(C.setEnd(A.node,A.offset),p.addRange(C))))));C=[];for(p=x;p=p.parentNode;)1===p.nodeType&&C.push({element:p,left:p.scrollLeft,top:p.scrollTop});\"function\"===typeof x.focus&&x.focus();for(x=0;xFb?b:Fb;0===b&&(Yg=\nnull);a.expirationTime=b;a.finishedWork=null}function Wg(a){null===Ah?t(\"246\"):void 0;Ah.expirationTime=0;Bh||(Bh=!0,Ch=a)}function Th(a,b){var c=Z;Z=!0;try{return a(b)}finally{(Z=c)||X||Qh(1073741823,!1)}}function Uh(a,b){if(Z&&!Dh){Dh=!0;try{return a(b)}finally{Dh=!1}}return a(b)}function Wh(a,b,c){if(qh)return a(b,c);Z||X||0===rh||(Qh(rh,!1),rh=0);var d=qh,e=Z;Z=qh=!0;try{return a(b,c)}finally{qh=d,(Z=e)||X||Qh(1073741823,!1)}}\nfunction Xh(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kd(c)&&1===c.tag?void 0:t(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(M(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);t(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(M(h)){c=Qe(c,h,g);break a}}c=g}else c=Ke;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nTf();pf(f,e);Uf(f,d);return d}function Yh(a,b,c,d){var e=b.current,f=Rf();e=Sf(f,e);return Xh(a,b,c,e,d)}function Zh(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function $h(a,b,c){var d=3=bh&&(b=bh-1);this._expirationTime=bh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}ai.prototype.render=function(a){this._defer?void 0:t(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new bi;Xh(a,b,null,c,d._onCommit);return d};\nai.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nai.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:t(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?t(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Nh(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};ai.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function di(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Kb=Th;Lb=Wh;Mb=function(){X||0===rh||(Qh(rh,!1),rh=0)};\nfunction ei(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new ci(a,!1,b)}\nfunction fi(a,b,c,d,e){di(c)?void 0:t(\"200\");var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Zh(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=ei(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Zh(f._internalRoot);h.call(a)}}Uh(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Zh(f._internalRoot)}\nfunction gi(a,b){var c=2=b){d=a;break}a=a.next}while(a!==c);null===d?d=c:d===c&&(c=g,p());b=d.previous;b.next=d.previous=g;g.next=d;g.previous=\nb}}function v(){if(-1===k&&null!==c&&1===c.priorityLevel){m=!0;try{do u();while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?p():n=!1}}}function t(a){m=!0;var b=f;f=a;try{if(a)for(;null!==c;){var d=exports.unstable_now();if(c.expirationTime<=d){do u();while(null!==c&&c.expirationTime<=d)}else break}else if(null!==c){do u();while(null!==c&&!w())}}finally{m=!1,f=b,null!==c?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var d=exports.unstable_now(),e=!1;if(0>=P-d)if(-1!==b&&b<=d)e=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(e)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var d=h,e=k;h=a;k=exports.unstable_now();try{return b()}finally{h=d,k=e,v()}};\nexports.unstable_scheduleCallback=function(a,b){var d=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=d+b.timeout;else switch(h){case 1:b=d+-1;break;case 2:b=d+250;break;case 5:b=d+1073741823;break;case 4:b=d+1E4;break;default:b=d+5E3}a={callback:a,priorityLevel:h,expirationTime:b,next:null,previous:null};if(null===c)c=a.next=a.previous=a,p();else{d=null;var e=c;do{if(e.expirationTime>b){d=e;break}e=e.next}while(e!==c);null===d?d=c:d===c&&(c=a,p());\nb=d.previous;b.next=d.previous=a;a.next=d;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)c=null;else{a===c&&(c=b);var d=a.previous;d.next=b;b.previous=d}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=h;return function(){var d=h,e=k;h=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{h=d,k=e,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return h};\nexports.unstable_shouldYield=function(){return!f&&(null!==c&&c.expirationTimethis.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=z.extend({data:null}),nb=z.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=gb(),fb=eb=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function E(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var F={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){F[a]=new E(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];F[b]=new E(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){F[a]=new E(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){F[a]=new E(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){F[a]=new E(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){F[a]=new E(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){F[a]=new E(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){F[a]=new E(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){F[a]=new E(a,5,!1,a.toLowerCase(),null)});var vc=/[\\-:]([a-z])/g;function wc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(vc,\nwc);F[b]=new E(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});F.tabIndex=new E(\"tabIndex\",1,!1,\"tabindex\",null);\nfunction xc(a,b,c,d){var e=F.hasOwnProperty(b)?F[b]:null;var f=null!==e?0===e.type:d?!1:!(2Fd.length&&Fd.push(a)}}}var Ld={},Md=0,Nd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Od(a){Object.prototype.hasOwnProperty.call(a,Nd)||(a[Nd]=Md++,Ld[a[Nd]]={});return Ld[a[Nd]]}function Pd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Qd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Rd(a,b){var c=Qd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Qd(c)}}function Sd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Sd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Td(){for(var a=window,b=Pd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Pd(a.document)}return b}function Ud(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Vd=Sa&&\"documentMode\"in document&&11>=document.documentMode,Wd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Xd=null,Yd=null,Zd=null,$d=!1;\nfunction ae(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if($d||null==Xd||Xd!==Pd(c))return null;c=Xd;\"selectionStart\"in c&&Ud(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Zd&&jd(Zd,c)?null:(Zd=c,a=z.getPooled(Wd.select,Yd,a,b),a.type=\"select\",a.target=Xd,Ra(a),a)}\nvar be={eventTypes:Wd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Od(e);f=ta.onSelect;for(var g=0;g=b.length?void 0:t(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:yc(c)}}\nfunction ie(a,b){var c=yc(b.value),d=yc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function je(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ke={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction le(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function me(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?le(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ne=void 0,oe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ke.svg||\"innerHTML\"in a)a.innerHTML=b;else{ne=ne||document.createElement(\"div\");ne.innerHTML=\"\"+b+\"\";for(b=ne.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pe(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},re=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qe).forEach(function(a){re.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qe[b]=qe[a]})});function se(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qe.hasOwnProperty(a)&&qe[a]?(\"\"+b).trim():b+\"px\"}\nfunction te(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=se(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ue=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ve(a,b){b&&(ue[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?t(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?t(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:t(\"61\")),null!=b.style&&\"object\"!==typeof b.style?t(\"62\",\"\"):void 0)}\nfunction we(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction xe(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Od(a);b=ta[b];for(var d=0;dJe||(a.current=Ie[Je],Ie[Je]=null,Je--)}function J(a,b){Je++;Ie[Je]=a.current;a.current=b}var Ke={},K={current:Ke},L={current:!1},Le=Ke;\nfunction Me(a,b){var c=a.type.contextTypes;if(!c)return Ke;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function M(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ne(a){I(L,a);I(K,a)}function Oe(a){I(L,a);I(K,a)}\nfunction Pe(a,b,c){K.current!==Ke?t(\"168\"):void 0;J(K,b,a);J(L,c,a)}function Qe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:t(\"108\",mc(b)||\"Unknown\",e);return n({},c,d)}function Re(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Ke;Le=K.current;J(K,b,a);J(L,L.current,a);return!0}\nfunction Se(a,b,c){var d=a.stateNode;d?void 0:t(\"169\");c?(b=Qe(a,b,Le),d.__reactInternalMemoizedMergedChildContext=b,I(L,a),I(K,a),J(K,b,a)):I(L,a);J(L,c,a)}var Te=null,Ue=null;function Ve(a){return function(b){try{return a(b)}catch(c){}}}\nfunction We(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Te=Ve(function(a){return b.onCommitFiberRoot(c,a)});Ue=Ve(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Xe(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function N(a,b,c,d){return new Xe(a,b,c,d)}\nfunction Ye(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Ze(a){if(\"function\"===typeof a)return Ye(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gc)return 11;if(a===ic)return 14}return 2}\nfunction $e(a,b){var c=a.alternate;null===c?(c=N(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction af(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ye(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ac:return bf(c.children,e,f,b);case fc:return cf(c,e|3,f,b);case bc:return cf(c,e|2,f,b);case cc:return a=N(12,c,b,e|4),a.elementType=cc,a.type=cc,a.expirationTime=f,a;case hc:return a=N(13,c,b,e),a.elementType=hc,a.type=hc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case dc:g=10;break a;case ec:g=9;break a;case gc:g=11;break a;case ic:g=\n14;break a;case jc:g=16;d=null;break a}t(\"130\",null==a?a:typeof a,\"\")}b=N(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function bf(a,b,c,d){a=N(7,a,d,b);a.expirationTime=c;return a}function cf(a,b,c,d){a=N(8,a,d,b);b=0===(b&1)?bc:fc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function df(a,b,c){a=N(6,a,null,b);a.expirationTime=c;return a}\nfunction ef(a,b,c){b=N(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ff(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);gf(b,a)}\nfunction hf(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);gf(b,a)}function jf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}\nfunction gf(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}var kf=!1;function lf(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction mf(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function of(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=lf(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=lf(a.memoizedState),e=c.updateQueue=lf(c.memoizedState)):d=a.updateQueue=mf(e):null===e&&(e=c.updateQueue=mf(d));null===e||d===e?of(d,b):null===d.lastUpdate||null===e.lastUpdate?(of(d,b),of(e,b)):(of(d,b),e.lastUpdate=b)}\nfunction qf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=lf(a.memoizedState):rf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function rf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=mf(b));return b}\nfunction sf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:kf=!0}return d}\nfunction tf(a,b,c,d,e){kf=!1;b=rf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mu?(p=m,m=null):p=m.sibling;var v=w(e,m,h[u],k);if(null===v){null===m&&(m=p);break}a&&\nm&&null===v.alternate&&b(e,m);g=f(v,g,u);null===q?l=v:q.sibling=v;q=v;m=p}if(u===h.length)return c(e,m),l;if(null===m){for(;uu?(p=q,q=null):p=q.sibling;var A=w(e,q,v.value,k);if(null===A){q||(q=p);break}a&&q&&null===A.alternate&&b(e,q);g=f(A,g,u);null===m?l=A:m.sibling=A;m=A;q=p}if(v.done)return c(e,q),l;if(null===q){for(;!v.done;u++,v=h.next())v=r(e,v.value,k),null!==v&&(g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);return l}for(q=d(e,q);!v.done;u++,v=h.next())v=y(q,e,u,v.value,k),null!==v&&(a&&null!==v.alternate&&q.delete(null===v.key?u:\nv.key),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ac&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Zb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ac:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ac?f.props.children:f.props,h);d.ref=bg(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===ac?(d=bf(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=af(f.type,f.key,f.props,null,a.mode,h),h.ref=bg(a,d,f),h.return=a,a=h)}return g(a);case $b:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ef(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=df(f,a.mode,h),d.return=a,a=d),g(a);if(ag(f))return B(a,d,f,h);if(lc(f))return R(a,d,f,h);l&&cg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,t(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var eg=dg(!0),fg=dg(!1),gg=null,hg=null,ig=!1;\nfunction jg(a,b){var c=N(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function kg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}\nfunction lg(a){if(ig){var b=hg;if(b){var c=b;if(!kg(a,b)){b=Ge(c);if(!b||!kg(a,b)){a.effectTag|=2;ig=!1;gg=a;return}jg(gg,c)}gg=a;hg=He(b)}else a.effectTag|=2,ig=!1,gg=a}}function mg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;gg=a}function ng(a){if(a!==gg)return!1;if(!ig)return mg(a),ig=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ce(b,a.memoizedProps))for(b=hg;b;)jg(a,b),b=Ge(b);mg(a);hg=gg?Ge(a.stateNode):null;return!0}function og(){hg=gg=null;ig=!1}var pg=Xb.ReactCurrentOwner;\nfunction Q(a,b,c,d){b.child=null===a?fg(b,null,c,d):eg(b,a.child,c,d)}function qg(a,b,c,d,e){c=c.render;var f=b.ref;Df(b,e);d=c(d,f);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction rg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ye(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,sg(a,b,g,d,e,f);a=af(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return zg(a,b,c);b=tg(a,b,c);return null!==b?b.sibling:null}}return tg(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==\na&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Me(b,K.current);Df(b,c);e=d(a,e);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(M(d)){var f=!0;Re(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Qf(b,d,g,a);e.updater=Vf;b.stateNode=e;e._reactInternalFiber=b;$f(b,d,a,c);b=xg(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;\nreturn b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=Nf(e);b.type=a;e=b.tag=Ze(a);f=P(a,f);g=void 0;switch(e){case 0:g=ug(null,b,a,f,c);break;case 1:g=wg(null,b,a,f,c);break;case 11:g=qg(null,b,a,f,c);break;case 14:g=rg(null,b,a,P(a.type,f),d,c);break;default:t(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),ug(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),wg(a,b,\nd,e,c);case 3:yg(b);d=b.updateQueue;null===d?t(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;tf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)og(),b=tg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)hg=He(b.stateNode.containerInfo),gg=b,e=ig=!0;e?(b.effectTag|=2,b.child=fg(b,null,d,c)):(Q(a,b,d,c),og());b=b.child}return b;case 5:return Lf(b),null===a&&lg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ce(d,e)?g=null:null!==\nf&&Ce(d,f)&&(b.effectTag|=16),vg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&lg(b),null;case 13:return zg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=eg(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),qg(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,\nc),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Bf(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!L.current){b=tg(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=nf(c);k.tag=2;pf(g,k)}g.expirationTime<\nc&&(g.expirationTime=c);k=g.alternate;null!==k&&k.expirationTime\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof r.is?l=l.createElement(e,{is:r.is}):(l=l.createElement(e),\"select\"===e&&r.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[Ga]=m;e[Ha]=g;Cg(e,b,!1,!1);r=e;l=f;m=g;var w=h,y=we(l,m);switch(l){case \"iframe\":case \"object\":H(\"load\",\nr);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==S)return S;null!==c&&0===(c.effectTag&1024)&&(null===\nc.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=y)r=0;else if(-1===r||y component higher in the tree to provide a loading indicator or placeholder to display.\"+\nnc(k))}fh=!0;l=wf(l,k);g=h;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Vg(g,l,f);qf(g,f);break a;case 1:if(m=l,r=g.type,w=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof r.getDerivedStateFromError||null!==w&&\"function\"===typeof w.componentDidCatch&&(null===Yg||!Yg.has(w)))){g.effectTag|=2048;g.expirationTime=f;f=Xg(g,m,f);qf(g,f);break a}}g=g.return}while(null!==g)}S=kh(e);continue}}}break}while(1);dh=!1;Af=zf=yf=ah.currentDispatcher=null;if(d)T=null,a.finishedWork=null;\nelse if(null!==S)a.finishedWork=null;else{d=a.current.alternate;null===d?t(\"281\"):void 0;T=null;if(fh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=\nc,a.finishedWork=d)}}function Mg(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Yg||!Yg.has(d))){a=wf(b,a);a=Xg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}break;case 3:a=wf(b,a);a=Vg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}c=c.return}3===a.tag&&(c=wf(b,a),c=Vg(a,c,1073741823),pf(a,c),Uf(a,1073741823))}\nfunction Sf(a,b){0!==ch?a=ch:dh?a=gh?1073741823:U:b.mode&1?(a=qh?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==T&&a===U&&--a):a=1073741823;qh&&(0===rh||a=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;gf(c,a);c=a.expirationTime;0!==c&&sh(a,c)}}\nfunction Tg(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=Rf();b=Sf(b,a);a=th(a,b);null!==a&&(ff(a,b),b=a.expirationTime,0!==b&&sh(a,b))}\nfunction th(a,b){a.expirationTimeU&&jh(),ff(a,b),dh&&!gh&&T===a||sh(a,a.expirationTime),uh>vh&&(uh=0,t(\"185\")))}function wh(a,b,c,d,e){var f=ch;ch=1073741823;try{return a(b,c,d,e)}finally{ch=f}}var xh=null,W=null,yh=0,zh=void 0,X=!1,Ah=null,Y=0,rh=0,Bh=!1,Ch=null,Z=!1,Dh=!1,qh=!1,Eh=null,Fh=ba.unstable_now(),Gh=1073741822-(Fh/10|0),Hh=Gh,vh=50,uh=0,Ih=null;function Jh(){Gh=1073741822-((ba.unstable_now()-Fh)/10|0)}\nfunction Kh(a,b){if(0!==yh){if(ba.expirationTime&&(a.expirationTime=b);X||(Z?Dh&&(Ah=a,Y=1073741823,Ph(a,1073741823,!1)):1073741823===b?Qh(1073741823,!1):Kh(a,b))}\nfunction Oh(){var a=0,b=null;if(null!==W)for(var c=W,d=xh;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?t(\"244\"):void 0;if(d===d.nextScheduledRoot){xh=W=d.nextScheduledRoot=null;break}else if(d===xh)xh=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=xh;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===W)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}Ah=b;Y=a}var Rh=!1;function nh(){return Rh?!0:ba.unstable_shouldYield()?Rh=!0:!1}function Lh(){try{if(!nh()&&null!==xh){Jh();var a=xh;do{var b=a.expirationTime;0!==b&&Gh<=b&&(a.nextExpirationTimeToWorkOn=Gh);a=a.nextScheduledRoot}while(a!==xh)}Qh(0,!0)}finally{Rh=!1}}\nfunction Qh(a,b){Oh();if(b)for(Jh(),Hh=Gh;null!==Ah&&0!==Y&&a<=Y&&!(Rh&&Gh>Y);)Ph(Ah,Y,Gh>Y),Oh(),Jh(),Hh=Gh;else for(;null!==Ah&&0!==Y&&a<=Y;)Ph(Ah,Y,!1),Oh();b&&(yh=0,zh=null);0!==Y&&Kh(Ah,Y);uh=0;Ih=null;if(null!==Eh)for(a=Eh,Eh=null,b=0;b=c&&(null===Eh?Eh=[d]:Eh.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Ih?uh++:(Ih=a,uh=0);gh=dh=!0;a.current===b?t(\"177\"):void 0;c=a.pendingCommitExpirationTime;0===c?t(\"261\"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=\n0):(dd?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime,0===e?ff(a,d):de&&ff(a,d));gf(0,a);ah.current=null;1q&&(u=q,q=G,G=u),u=Rd(x,G),A=Rd(x,q),u&&A&&(1!==p.rangeCount||p.anchorNode!==u.node||p.anchorOffset!==u.offset||p.focusNode!==A.node||p.focusOffset!==A.offset)&&(C=C.createRange(),C.setStart(u.node,u.offset),p.removeAllRanges(),\nG>q?(p.addRange(C),p.extend(A.node,A.offset)):(C.setEnd(A.node,A.offset),p.addRange(C))))));C=[];for(p=x;p=p.parentNode;)1===p.nodeType&&C.push({element:p,left:p.scrollLeft,top:p.scrollTop});\"function\"===typeof x.focus&&x.focus();for(x=0;xFb?b:Fb;0===b&&(Yg=\nnull);a.expirationTime=b;a.finishedWork=null}function Wg(a){null===Ah?t(\"246\"):void 0;Ah.expirationTime=0;Bh||(Bh=!0,Ch=a)}function Th(a,b){var c=Z;Z=!0;try{return a(b)}finally{(Z=c)||X||Qh(1073741823,!1)}}function Uh(a,b){if(Z&&!Dh){Dh=!0;try{return a(b)}finally{Dh=!1}}return a(b)}function Wh(a,b,c){if(qh)return a(b,c);Z||X||0===rh||(Qh(rh,!1),rh=0);var d=qh,e=Z;Z=qh=!0;try{return a(b,c)}finally{qh=d,(Z=e)||X||Qh(1073741823,!1)}}\nfunction Xh(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kd(c)&&1===c.tag?void 0:t(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(M(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);t(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(M(h)){c=Qe(c,h,g);break a}}c=g}else c=Ke;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nTf();pf(f,e);Uf(f,d);return d}function Yh(a,b,c,d){var e=b.current,f=Rf();e=Sf(f,e);return Xh(a,b,c,e,d)}function Zh(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function $h(a,b,c){var d=3=bh&&(b=bh-1);this._expirationTime=bh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}ai.prototype.render=function(a){this._defer?void 0:t(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new bi;Xh(a,b,null,c,d._onCommit);return d};\nai.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nai.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:t(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?t(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Nh(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};ai.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function di(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Kb=Th;Lb=Wh;Mb=function(){X||0===rh||(Qh(rh,!1),rh=0)};\nfunction ei(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new ci(a,!1,b)}\nfunction fi(a,b,c,d,e){di(c)?void 0:t(\"200\");var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Zh(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=ei(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Zh(f._internalRoot);h.call(a)}}Uh(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Zh(f._internalRoot)}\nfunction gi(a,b){var c=2Q.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h=b){d=a;break}a=a.next}while(a!==c);null===d?d=c:d===c&&(c=g,p());b=d.previous;b.next=d.previous=g;g.next=d;g.previous=\nb}}function v(){if(-1===k&&null!==c&&1===c.priorityLevel){m=!0;try{do u();while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?p():n=!1}}}function t(a){m=!0;var b=f;f=a;try{if(a)for(;null!==c;){var d=exports.unstable_now();if(c.expirationTime<=d){do u();while(null!==c&&c.expirationTime<=d)}else break}else if(null!==c){do u();while(null!==c&&!w())}}finally{m=!1,f=b,null!==c?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var d=exports.unstable_now(),e=!1;if(0>=P-d)if(-1!==b&&b<=d)e=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(e)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var d=h,e=k;h=a;k=exports.unstable_now();try{return b()}finally{h=d,k=e,v()}};\nexports.unstable_scheduleCallback=function(a,b){var d=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=d+b.timeout;else switch(h){case 1:b=d+-1;break;case 2:b=d+250;break;case 5:b=d+1073741823;break;case 4:b=d+1E4;break;default:b=d+5E3}a={callback:a,priorityLevel:h,expirationTime:b,next:null,previous:null};if(null===c)c=a.next=a.previous=a,p();else{d=null;var e=c;do{if(e.expirationTime>b){d=e;break}e=e.next}while(e!==c);null===d?d=c:d===c&&(c=a,p());\nb=d.previous;b.next=d.previous=a;a.next=d;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)c=null;else{a===c&&(c=b);var d=a.previous;d.next=b;b.previous=d}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=h;return function(){var d=h,e=k;h=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{h=d,k=e,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return h};\nexports.unstable_shouldYield=function(){return!f&&(null!==c&&c.expirationTimethis.eventPool.length&&this.eventPool.push(a)}\nfunction E(a){a.eventPool=[];a.getPooled=ea;a.release=fa}var F=D.extend({touchHistory:function(){return null}});function G(a){return\"touchstart\"===a||\"mousedown\"===a}function H(a){return\"touchmove\"===a||\"mousemove\"===a}function I(a){return\"touchend\"===a||\"touchcancel\"===a||\"mouseup\"===a}var J=[\"touchstart\",\"mousedown\"],K=[\"touchmove\",\"mousemove\"],L=[\"touchcancel\",\"touchend\",\"mouseup\"],M=[],N={touchBank:M,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};\nfunction O(a){return a.timeStamp||a.timestamp}function P(a){a=a.identifier;null==a?m(\"138\"):void 0;return a}\nfunction ha(a){var b=P(a),c=M[b];c?(c.touchActive=!0,c.startPageX=a.pageX,c.startPageY=a.pageY,c.startTimeStamp=O(a),c.currentPageX=a.pageX,c.currentPageY=a.pageY,c.currentTimeStamp=O(a),c.previousPageX=a.pageX,c.previousPageY=a.pageY,c.previousTimeStamp=O(a)):(c={touchActive:!0,startPageX:a.pageX,startPageY:a.pageY,startTimeStamp:O(a),currentPageX:a.pageX,currentPageY:a.pageY,currentTimeStamp:O(a),previousPageX:a.pageX,previousPageY:a.pageY,previousTimeStamp:O(a)},M[b]=c);N.mostRecentTimeStamp=O(a)}\nfunction ia(a){var b=M[P(a)];b?(b.touchActive=!0,b.previousPageX=b.currentPageX,b.previousPageY=b.currentPageY,b.previousTimeStamp=b.currentTimeStamp,b.currentPageX=a.pageX,b.currentPageY=a.pageY,b.currentTimeStamp=O(a),N.mostRecentTimeStamp=O(a)):console.error(\"Cannot record touch move without a touch start.\\nTouch Move: %s\\n\",\"Touch Bank: %s\",Q(a),R())}\nfunction ja(a){var b=M[P(a)];b?(b.touchActive=!1,b.previousPageX=b.currentPageX,b.previousPageY=b.currentPageY,b.previousTimeStamp=b.currentTimeStamp,b.currentPageX=a.pageX,b.currentPageY=a.pageY,b.currentTimeStamp=O(a),N.mostRecentTimeStamp=O(a)):console.error(\"Cannot record touch end without a touch start.\\nTouch End: %s\\n\",\"Touch Bank: %s\",Q(a),R())}function Q(a){return JSON.stringify({identifier:a.identifier,pageX:a.pageX,pageY:a.pageY,timestamp:O(a)})}\nfunction R(){var a=JSON.stringify(M.slice(0,20));20Ra||(b.current=Qa[Ra],Qa[Ra]=null,Ra--)}function F(b,a){Ra++;Qa[Ra]=b.current;b.current=a}var G={},H={current:G},I={current:!1},Sa=G;function Ta(b,a){var c=b.type.contextTypes;if(!c)return G;var d=b.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===a)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=a[f];d&&(b=b.stateNode,b.__reactInternalMemoizedUnmaskedChildContext=a,b.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction K(b){b=b.childContextTypes;return null!==b&&void 0!==b}function Ua(b){E(I,b);E(H,b)}function Va(b){E(I,b);E(H,b)}function Wa(b,a,c){H.current!==G?p(\"168\"):void 0;F(H,a,b);F(I,c,b)}function Xa(b,a,c){var d=b.stateNode;b=a.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in b?void 0:p(\"108\",B(a)||\"Unknown\",e);return aa({},c,d)}\nfunction Ya(b){var a=b.stateNode;a=a&&a.__reactInternalMemoizedMergedChildContext||G;Sa=H.current;F(H,a,b);F(I,I.current,b);return!0}function Za(b,a,c){var d=b.stateNode;d?void 0:p(\"169\");c?(a=Xa(b,a,Sa),d.__reactInternalMemoizedMergedChildContext=a,E(I,b),E(H,b),F(H,a,b)):E(I,b);F(I,c,b)}var $a=null,ab=null;function bb(b){return function(a){try{return b(a)}catch(c){}}}\nfunction cb(b){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(a.isDisabled||!a.supportsFiber)return!0;try{var c=a.inject(b);$a=bb(function(b){return a.onCommitFiberRoot(c,b)});ab=bb(function(b){return a.onCommitFiberUnmount(c,b)})}catch(d){}return!0}\nfunction db(b,a,c,d){this.tag=b;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=a;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function L(b,a,c,d){return new db(b,a,c,d)}\nfunction eb(b){b=b.prototype;return!(!b||!b.isReactComponent)}function gb(b){if(\"function\"===typeof b)return eb(b)?1:0;if(void 0!==b&&null!==b){b=b.$$typeof;if(b===pa)return 11;if(b===ra)return 14}return 2}\nfunction hb(b,a){var c=b.alternate;null===c?(c=L(b.tag,a,b.key,b.mode),c.elementType=b.elementType,c.type=b.type,c.stateNode=b.stateNode,c.alternate=b,b.alternate=c):(c.pendingProps=a,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=b.childExpirationTime;c.expirationTime=b.expirationTime;c.child=b.child;c.memoizedProps=b.memoizedProps;c.memoizedState=b.memoizedState;c.updateQueue=b.updateQueue;c.firstContextDependency=b.firstContextDependency;c.sibling=b.sibling;\nc.index=b.index;c.ref=b.ref;return c}\nfunction ib(b,a,c,d,e,f){var g=2;d=b;if(\"function\"===typeof b)eb(b)&&(g=1);else if(\"string\"===typeof b)g=5;else a:switch(b){case A:return M(c.children,e,f,a);case oa:return jb(c,e|3,f,a);case ka:return jb(c,e|2,f,a);case la:return b=L(12,c,a,e|4),b.elementType=la,b.type=la,b.expirationTime=f,b;case qa:return b=L(13,c,a,e),b.elementType=qa,b.type=qa,b.expirationTime=f,b;default:if(\"object\"===typeof b&&null!==b)switch(b.$$typeof){case ma:g=10;break a;case na:g=9;break a;case pa:g=11;break a;case ra:g=\n14;break a;case sa:g=16;d=null;break a}p(\"130\",null==b?b:typeof b,\"\")}a=L(g,c,a,e);a.elementType=b;a.type=d;a.expirationTime=f;return a}function M(b,a,c,d){b=L(7,b,d,a);b.expirationTime=c;return b}function jb(b,a,c,d){b=L(8,b,d,a);a=0===(a&1)?ka:oa;b.elementType=a;b.type=a;b.expirationTime=c;return b}function kb(b,a,c){b=L(6,b,null,a);b.expirationTime=c;return b}\nfunction lb(b,a,c){a=L(4,null!==b.children?b.children:[],b.key,a);a.expirationTime=c;a.stateNode={containerInfo:b.containerInfo,pendingChildren:null,implementation:b.implementation};return a}function mb(b,a){b.didError=!1;var c=b.earliestPendingTime;0===c?b.earliestPendingTime=b.latestPendingTime=a:ca&&(b.latestPendingTime=a);nb(a,b)}\nfunction ob(b,a){b.didError=!1;b.latestPingedTime>=a&&(b.latestPingedTime=0);var c=b.earliestPendingTime,d=b.latestPendingTime;c===a?b.earliestPendingTime=d===a?b.latestPendingTime=0:d:d===a&&(b.latestPendingTime=c);c=b.earliestSuspendedTime;d=b.latestSuspendedTime;0===c?b.earliestSuspendedTime=b.latestSuspendedTime=a:ca&&(b.latestSuspendedTime=a);nb(a,b)}function pb(b,a){var c=b.earliestPendingTime;b=b.earliestSuspendedTime;c>a&&(a=c);b>a&&(a=b);return a}\nfunction nb(b,a){var c=a.earliestSuspendedTime,d=a.latestSuspendedTime,e=a.earliestPendingTime,f=a.latestPingedTime;e=0!==e?e:f;0===e&&(0===b||db&&(b=c);a.nextExpirationTimeToWorkOn=e;a.expirationTime=b}var qb=!1;function rb(b){return{baseState:b,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction sb(b){return{baseState:b.baseState,firstUpdate:b.firstUpdate,lastUpdate:b.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function tb(b){return{expirationTime:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ub(b,a){null===b.lastUpdate?b.firstUpdate=b.lastUpdate=a:(b.lastUpdate.next=a,b.lastUpdate=a)}\nfunction N(b,a){var c=b.alternate;if(null===c){var d=b.updateQueue;var e=null;null===d&&(d=b.updateQueue=rb(b.memoizedState))}else d=b.updateQueue,e=c.updateQueue,null===d?null===e?(d=b.updateQueue=rb(b.memoizedState),e=c.updateQueue=rb(c.memoizedState)):d=b.updateQueue=sb(e):null===e&&(e=c.updateQueue=sb(d));null===e||d===e?ub(d,a):null===d.lastUpdate||null===e.lastUpdate?(ub(d,a),ub(e,a)):(ub(d,a),e.lastUpdate=a)}\nfunction vb(b,a){var c=b.updateQueue;c=null===c?b.updateQueue=rb(b.memoizedState):wb(b,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=a:(c.lastCapturedUpdate.next=a,c.lastCapturedUpdate=a)}function wb(b,a){var c=b.alternate;null!==c&&a===c.updateQueue&&(a=b.updateQueue=sb(a));return a}\nfunction xb(b,a,c,d,e,f){switch(c.tag){case 1:return b=c.payload,\"function\"===typeof b?b.call(f,d,e):b;case 3:b.effectTag=b.effectTag&-2049|64;case 0:b=c.payload;e=\"function\"===typeof b?b.call(f,d,e):b;if(null===e||void 0===e)break;return aa({},d,e);case 2:qb=!0}return d}\nfunction yb(b,a,c,d,e){qb=!1;a=wb(b,a);for(var f=a.baseState,g=null,k=0,h=a.firstUpdate,l=f;null!==h;){var n=h.expirationTime;nq?(n=r,r=null):n=r.sibling;var t=u(e,r,h[q],k);if(null===t){null===r&&(r=n);break}b&&\nr&&null===t.alternate&&a(e,r);g=f(t,g,q);null===x?l=t:x.sibling=t;x=t;r=n}if(q===h.length)return c(e,r),l;if(null===r){for(;qx?(n=q,q=null):n=q.sibling;var v=u(e,q,t.value,k);if(null===v){q||(q=n);break}b&&q&&null===v.alternate&&a(e,q);g=f(v,g,x);null===r?l=v:r.sibling=v;r=v;q=n}if(t.done)return c(e,q),l;if(null===q){for(;!t.done;x++,t=h.next())t=y(e,t.value,k),null!==t&&(g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return l}for(q=d(e,q);!t.done;x++,t=h.next())t=w(q,e,x,t.value,k),null!==t&&(b&&null!==t.alternate&&q.delete(null===t.key?x:\nt.key),g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);b&&q.forEach(function(b){return a(e,b)});return l}return function(b,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===A&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ia:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===A:k.elementType===f.type){c(b,k.sibling);d=e(k,f.type===A?f.props.children:f.props,h);d.ref=jc(b,k,f);d.return=b;b=d;break a}else{c(b,k);break}else a(b,k);k=k.sibling}f.type===\nA?(d=M(f.props.children,b.mode,h,f.key),d.return=b,b=d):(h=ib(f.type,f.key,f.props,null,b.mode,h),h.ref=jc(b,d,f),h.return=b,b=h)}return g(b);case ja:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(b,d.sibling);d=e(d,f.children||[],h);d.return=b;b=d;break a}else{c(b,d);break}else a(b,d);d=d.sibling}d=lb(f,b.mode,h);d.return=b;b=d}return g(b)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,\nnull!==d&&6===d.tag?(c(b,d.sibling),d=e(d,f,h),d.return=b,b=d):(c(b,d),d=kb(f,b.mode,h),d.return=b,b=d),g(b);if(ic(f))return J(b,d,f,h);if(ua(f))return v(b,d,f,h);l&&kc(b,f);if(\"undefined\"===typeof f&&!k)switch(b.tag){case 1:case 0:h=b.type,p(\"152\",h.displayName||h.name||\"Component\")}return c(b,d)}}var mc=lc(!0),nc=lc(!1),oc=null,pc=null,qc=!1;function rc(b){switch(b.tag){case 5:return p(\"305\"),b.stateNode=void 0,!0;case 6:return p(\"305\"),b.stateNode=void 0,!0;default:return!1}}\nfunction sc(b){if(qc){var a=pc;if(a){var c=a;if(!rc(b,a)){p(\"305\");a=void 0;if(!a||!rc(b,a)){b.effectTag|=2;qc=!1;oc=b;return}a=oc;var d=L(5,null,null,0);d.elementType=\"DELETED\";d.type=\"DELETED\";d.stateNode=c;d.return=a;d.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=d,a.lastEffect=d):a.firstEffect=a.lastEffect=d}oc=b;p(\"305\");pc=void 0}else b.effectTag|=2,qc=!1,oc=b}}var tc=ha.ReactCurrentOwner;function Q(b,a,c,d){a.child=null===b?nc(a,null,c,d):mc(a,b.child,c,d)}\nfunction uc(b,a,c,d,e){c=c.render;var f=a.ref;Ib(a,e);d=c(d,f);a.effectTag|=1;Q(b,a,d,e);return a.child}\nfunction vc(b,a,c,d,e,f){if(null===b){var g=c.type;if(\"function\"===typeof g&&!eb(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return a.tag=15,a.type=g,wc(b,a,g,d,e,f);b=ib(c.type,null,d,null,a.mode,f);b.ref=a.ref;b.return=a;return a.child=b}g=b.child;if(e=c)return Dc(b,a,c);a=xc(b,a,c);return null!==a?a.sibling:null}}return xc(b,a,c)}a.expirationTime=0;switch(a.tag){case 2:d=a.elementType;null!==b&&(b.alternate=\nnull,a.alternate=null,a.effectTag|=2);b=a.pendingProps;var e=Ta(a,H.current);Ib(a,c);e=d(b,e);a.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){a.tag=1;if(K(d)){var f=!0;Ya(a)}else f=!1;a.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Zb(a,d,g,b);e.updater=dc;a.stateNode=e;e._reactInternalFiber=a;hc(a,d,b,c);a=Bc(null,a,d,!0,f,c)}else a.tag=0,Q(null,a,e,c),a=a.child;return a;case 16:e=\na.elementType;null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2);f=a.pendingProps;b=Wb(e);a.type=b;e=a.tag=gb(b);f=P(b,f);g=void 0;switch(e){case 0:g=yc(null,a,b,f,c);break;case 1:g=Ac(null,a,b,f,c);break;case 11:g=uc(null,a,b,f,c);break;case 14:g=vc(null,a,b,P(b.type,f),d,c);break;default:p(\"306\",b,\"\")}return g;case 0:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),yc(b,a,d,e,c);case 1:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),Ac(b,a,d,e,c);case 3:return Cc(a),\nd=a.updateQueue,null===d?p(\"282\"):void 0,e=a.memoizedState,e=null!==e?e.element:null,yb(a,d,a.pendingProps,null,c),d=a.memoizedState.element,d===e?a=xc(b,a,c):(Q(b,a,d,c),a=a.child),a;case 5:return Rb(a),null===b&&sc(a),d=a.type,e=a.pendingProps,f=null!==b?b.memoizedProps:null,g=e.children,Na(d,e)?g=null:null!==f&&Na(d,f)&&(a.effectTag|=16),zc(b,a),Q(b,a,g,c),a=a.child,a;case 6:return null===b&&sc(a),null;case 13:return Dc(b,a,c);case 4:return Pb(a,a.stateNode.containerInfo),d=a.pendingProps,null===\nb?a.child=mc(a,null,d,c):Q(b,a,d,c),a.child;case 11:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),uc(b,a,d,e,c);case 7:return Q(b,a,a.pendingProps,c),a.child;case 8:return Q(b,a,a.pendingProps.children,c),a.child;case 12:return Q(b,a,a.pendingProps.children,c),a.child;case 10:a:{d=a.type._context;e=a.pendingProps;g=a.memoizedProps;f=e.value;Gb(a,f);if(null!==g){var k=g.value;f=k===f&&(0!==k||1/k===1/f)||k!==k&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(k,\nf):1073741823)|0;if(0===f){if(g.children===e.children&&!I.current){a=xc(b,a,c);break a}}else for(g=a.child,null!==g&&(g.return=a);null!==g;){k=g.firstContextDependency;if(null!==k){do{if(k.context===d&&0!==(k.observedBits&f)){if(1===g.tag){var h=tb(c);h.tag=2;N(g,h)}g.expirationTimee&&(e=f),k>e&&(e=k),g=g.sibling;a.childExpirationTime=e}if(null!==R)return R;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&(c.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=b.firstEffect),c.lastEffect=\nb.lastEffect),1=w)y=0;else if(-1===y||w component higher in the tree to provide a loading indicator or placeholder to display.\"+\nPa(h))}gd=!0;l=Bb(l,h);g=k;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Yc(g,l,f);vb(g,f);break a;case 1:if(n=l,y=g.type,u=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof y.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===ad||!ad.has(u)))){g.effectTag|=2048;g.expirationTime=f;f=$c(g,n,f);vb(g,f);break a}}g=g.return}while(null!==g)}R=ld(e);continue}}}break}while(1);ed=!1;Fb=Eb=Db=dd.currentDispatcher=null;if(d)S=null,b.finishedWork=null;\nelse if(null!==R)b.finishedWork=null;else{d=b.current.alternate;null===d?p(\"281\"):void 0;S=null;if(gd){e=b.latestPendingTime;f=b.latestSuspendedTime;g=b.latestPingedTime;if(0!==e&&ea?0:a)):(b.pendingCommitExpirationTime=\nc,b.finishedWork=d)}}function Pc(b,a){for(var c=b.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===ad||!ad.has(d))){b=Bb(a,b);b=$c(c,b,1073741823);N(c,b);cc(c,1073741823);return}break;case 3:b=Bb(a,b);b=Yc(c,b,1073741823);N(c,b);cc(c,1073741823);return}c=c.return}3===b.tag&&(c=Bb(a,b),c=Yc(b,c,1073741823),N(b,c),cc(b,1073741823))}\nfunction ac(b,a){ed?b=hd?1073741823:T:a.mode&1?(b=rd?1073741822-10*(((1073741822-b+15)/10|0)+1):1073741822-25*(((1073741822-b+500)/25|0)+1),null!==S&&b===T&&--b):b=1073741823;return b}function pd(b,a,c){var d=b.pingCache;null!==d&&d.delete(a);if(null!==S&&T===c)S=null;else if(a=b.earliestSuspendedTime,d=b.latestSuspendedTime,0!==a&&c<=a&&c>=d){b.didError=!1;a=b.latestPingedTime;if(0===a||a>c)b.latestPingedTime=c;nb(c,b);c=b.expirationTime;0!==c&&sd(b,c)}}\nfunction Wc(b,a){var c=b.stateNode;null!==c&&c.delete(a);a=$b();a=ac(a,b);b=td(b,a);null!==b&&(mb(b,a),a=b.expirationTime,0!==a&&sd(b,a))}\nfunction td(b,a){b.expirationTimeT&&kd(),mb(b,a),ed&&!hd&&S===b||sd(b,b.expirationTime),ud>vd&&(ud=0,p(\"185\")))}var V=null,W=null,wd=0,xd=void 0,yd=!1,X=null,Y=0,zd=!1,Ad=null,Bd=!1,Cd=!1,rd=!1,Dd=null,Ed=ca.unstable_now(),Z=1073741822-(Ed/10|0),Gd=Z,vd=50,ud=0,Hd=null;function Id(){Z=1073741822-((ca.unstable_now()-Ed)/10|0)}\nfunction Jd(b,a){if(0!==wd){if(ab.expirationTime&&(b.expirationTime=a);yd||(Bd?Cd&&(X=b,Y=1073741823,Md(b,1073741823,!1)):1073741823===a?Nd(1073741823,!1):Jd(b,a))}\nfunction Od(){var b=0,a=null;if(null!==W)for(var c=W,d=V;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?p(\"244\"):void 0;if(d===d.nextScheduledRoot){V=W=d.nextScheduledRoot=null;break}else if(d===V)V=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=V;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>b&&(b=e,a=d);if(d===W)break;if(1073741823===b)break;\nc=d;d=d.nextScheduledRoot}}X=a;Y=b}var Pd=!1;function od(){return Pd?!0:ca.unstable_shouldYield()?Pd=!0:!1}function Kd(){try{if(!od()&&null!==V){Id();var b=V;do{var a=b.expirationTime;0!==a&&Z<=a&&(b.nextExpirationTimeToWorkOn=Z);b=b.nextScheduledRoot}while(b!==V)}Nd(0,!0)}finally{Pd=!1}}\nfunction Nd(b,a){Od();if(a)for(Id(),Gd=Z;null!==X&&0!==Y&&b<=Y&&!(Pd&&Z>Y);)Md(X,Y,Z>Y),Od(),Id(),Gd=Z;else for(;null!==X&&0!==Y&&b<=Y;)Md(X,Y,!1),Od();a&&(wd=0,xd=null);0!==Y&&Jd(X,Y);ud=0;Hd=null;if(null!==Dd)for(b=Dd,Dd=null,a=0;a=c&&(null===Dd?Dd=[d]:Dd.push(d),d._defer)){b.finishedWork=a;b.expirationTime=0;return}b.finishedWork=null;b===Hd?ud++:(Hd=b,ud=0);hd=ed=!0;b.current===a?p(\"177\"):void 0;c=b.pendingCommitExpirationTime;0===c?p(\"261\"):void 0;b.pendingCommitExpirationTime=0;d=a.expirationTime;var e=a.childExpirationTime;d=e>d?e:d;b.didError=!1;0===d?(b.earliestPendingTime=0,b.latestPendingTime=0,b.earliestSuspendedTime=0,b.latestSuspendedTime=0,b.latestPingedTime=\n0):(dd?b.earliestPendingTime=b.latestPendingTime=0:b.earliestPendingTime>d&&(b.earliestPendingTime=b.latestPendingTime)),e=b.earliestSuspendedTime,0===e?mb(b,d):de&&mb(b,d));nb(0,b);dd.current=null;1q?a:q;0===a&&(ad=null);b.expirationTime=a;b.finishedWork=null}function Zc(b){null===X?p(\"246\"):void 0;X.expirationTime=0;zd||(zd=!0,Ad=b)}\nfunction Rd(b,a,c,d){var e=a.current,f=$b();e=ac(f,e);f=a.current;a:if(c){c=c._reactInternalFiber;b:{2===va(c)&&1===c.tag?void 0:p(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(K(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);p(\"171\");g=void 0}if(1===c.tag){var k=c.type;if(K(k)){c=Xa(c,k,g);break a}}c=g}else c=G;null===a.context?a.context=c:a.pendingContext=c;a=d;d=tb(e);d.payload={element:b};a=void 0===a?null:\na;null!==a&&(d.callback=a);bc();N(f,d);cc(f,e);return e}var Sd=aa||function(b){for(var a=1;a 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\r\n return result;\r\n}\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r, g, b, i, f, p, q, t;\r\n if (arguments.length === 1) {\r\n s = h.s, v = h.v, h = h.h;\r\n }\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v, g = t, b = p; break;\r\n case 1: r = q, g = v, b = p; break;\r\n case 2: r = p, g = v, b = t; break;\r\n case 3: r = p, g = q, b = v; break;\r\n case 4: r = t, g = p, b = v; break;\r\n case 5: r = v, g = p, b = q; break;\r\n }\r\n return [ r,\r\n g,\r\n b ];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n if (arguments.length === 1) {\r\n g = r.g, b = r.b, r = r.r;\r\n }\r\n var max = Math.max(r, g, b), min = Math.min(r, g, b),\r\n d = max - min,\r\n h,\r\n s = (max === 0 ? 0 : d / max),\r\n v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n }\r\n else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n }\r\n else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color,offset) {\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[0] += offset/360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n }\r\n else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction componentToHex(c) {\r\n var hex = c.toString(16);\r\n return hex.length == 1 ? '0' + hex : hex;\r\n}\r\n\r\nvar rgbToHex = (function(){\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for(i=0;i<256;i+=1){\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length == 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function(r, g, b) {\r\n if(r<0){\r\n r = 0;\r\n }\r\n if(g<0){\r\n g = 0;\r\n }\r\n if(b<0){\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction fillToRgba(hex,alpha){\r\n if(!cachedColors[hex]){\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n cachedColors[hex] = parseInt(result[1], 16)+','+parseInt(result[2], 16)+','+parseInt(result[3], 16);\r\n }\r\n return 'rgba('+cachedColors[hex]+','+alpha+')';\r\n}\r\n\r\nvar fillColorToString = (function(){\r\n\r\n var colorMap = [];\r\n return function(colorArr,alpha){\r\n if(alpha !== undefined){\r\n colorArr[3] = alpha;\r\n }\r\n if(!colorMap[colorArr[0]]){\r\n colorMap[colorArr[0]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]]){\r\n colorMap[colorArr[0]][colorArr[1]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]][colorArr[2]]){\r\n colorMap[colorArr[0]][colorArr[1]][colorArr[2]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]){\r\n colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]] = 'rgba(' + colorArr.join(',')+')';\r\n }\r\n return colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]];\r\n };\r\n}());\r\n\r\nfunction RenderedFrame(tr,o) {\r\n this.tr = tr;\r\n this.o = o;\r\n}\r\n\r\nfunction iterateDynamicProperties(num){\r\n var i, len = this.dynamicProperties;\r\n for(i=0;i= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; }\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); }\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n (me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n })(width);\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n };\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date, global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\nvar BezierFactory = (function(){\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a,b,c,d,nm){\r\n var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\\./g, 'p');\r\n if(beziers[str]){\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a,b,c,d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === \"function\";\r\n\r\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C (aA1) { return 3.0 * aA1; }\r\n\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier (aT, aA1, aA2) {\r\n return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;\r\n }\r\n\r\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope (aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\r\n var currentX, currentT, i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing (points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2)\r\n this._calcSampleValues();\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n }\r\n };\r\n\r\n return ob;\r\n\r\n}())\r\n\r\n\nfunction matrixManagerFunction(){\r\n\r\n var mat = new Matrix();\r\n\r\n var returnMatrix2D = function(rX, scaleX, scaleY, tX, tY){\r\n return mat.reset().translate(tX,tY).rotate(rX).scale(scaleX,scaleY).toCSS();\r\n };\r\n\r\n var getMatrix = function(animData){\r\n return returnMatrix2D(animData.tr.r[2],animData.tr.s[0],animData.tr.s[1],animData.tr.p[0],animData.tr.p[1]);\r\n };\r\n\r\n return {\r\n getMatrix : getMatrix\r\n };\r\n\r\n}\r\nvar MatrixManager = matrixManagerFunction;\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if(!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\nfunction createElement(parent,child,params){\r\n if(child){\r\n child.prototype = Object.create(parent.prototype);\r\n child.prototype.constructor = child;\r\n child.prototype._parent = parent.prototype;\r\n }else{\r\n var instance = Object.create(parent.prototype,params);\r\n var getType = {};\r\n if(instance && getType.toString.call(instance.init) === '[object Function]'){\r\n instance.init();\r\n }\r\n return instance;\r\n }\r\n}\r\n\r\nfunction extendPrototype(source,destination){\r\n for (var attr in source.prototype) {\r\n if (source.prototype.hasOwnProperty(attr)) destination.prototype[attr] = source.prototype[attr];\r\n }\r\n}\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1,y1, x2,y2, x3,y3){\r\n var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);\r\n return det1 > -0.0001 && det1 < 0.0001;\r\n }\r\n\r\n function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){\r\n if(z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1,y1, x2,y2, x3,y3);\r\n }\r\n var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));\r\n var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));\r\n var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if(dist1 > dist2){\r\n if(dist1 > dist3){\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if(dist3 > dist2){\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n /*function getEasingCurve(aa,bb,cc,dd,encodedFuncName) {\r\n if(!encodedFuncName){\r\n encodedFuncName = ('bez_' + aa+'_'+bb+'_'+cc+'_'+dd).replace(/\\./g, 'p');\r\n }\r\n if(easingFunctions[encodedFuncName]){\r\n return easingFunctions[encodedFuncName];\r\n }\r\n var A0, B0, C0;\r\n var A1, B1, C1;\r\n easingFunctions[encodedFuncName] = function(tt) {\r\n var x = tt;\r\n var i = 0, z;\r\n while (++i < 20) {\r\n C0 = 3 * aa;\r\n B0 = 3 * (cc - aa) - C0;\r\n A0 = 1 - C0 - B0;\r\n z = (x * (C0 + x * (B0 + x * A0))) - tt;\r\n if (bm_abs(z) < 1e-3) break;\r\n x -= z / (C0 + x * (2 * B0 + 3 * A0 * x));\r\n }\r\n C1 = 3 * bb;\r\n B1 = 3 * (dd - bb) - C1;\r\n A1 = 1 - C1 - B1;\r\n var polyB = x * (C1 + x * (B1 + x * A1));\r\n //return c * polyB + b;\r\n return polyB;\r\n };\r\n return easingFunctions[encodedFuncName];\r\n }*/\r\n var getBezierLength = (function(){\r\n\r\n function Segment(l,p){\r\n this.l = l;\r\n this.p = p;\r\n }\r\n\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = {\r\n addedLength: 0,\r\n segments: []\r\n };\r\n len = pt3.length;\r\n for(k=0;k lengthPos ? -1 : 1;\r\n var flag = true;\r\n while(flag){\r\n if(segments[initPos].l <= lengthPos && segments[initPos+1].l > lengthPos){\r\n lPerc = (lengthPos - segments[initPos].l)/(segments[initPos+1].l-segments[initPos].l);\r\n flag = false;\r\n }else{\r\n initPos += dir;\r\n }\r\n if(initPos < 0 || initPos >= len - 1){\r\n flag = false;\r\n }\r\n }\r\n return segments[initPos].p + (segments[initPos+1].p - segments[initPos].p)*lPerc;\r\n }\r\n }\r\n\r\n function SegmentPoints(){\r\n this.pt1 = new Array(2);\r\n this.pt2 = new Array(2);\r\n this.pt3 = new Array(2);\r\n this.pt4 = new Array(2);\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\r\n var u1 = 1 - t1;\r\n var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;\r\n var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n var pts = new SegmentPoints();\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\r\n var t0 = getDistancePerc(startPerc,bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc,bezierData);\r\n var i, len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n //Math.round(num * 100) / 100\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\r\n }\r\n\r\n var checkText = (function(){\r\n var minimumVersion = [4,4,14];\r\n\r\n function updateTextLayer(textLayer){\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s:documentData,\r\n t:0\r\n }\r\n ]\r\n }\r\n }\r\n\r\n function iterateLayers(layers){\r\n var i, len = layers.length;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n arr[i].ks.k.c = arr[i].closed;\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n blitPaths(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j=0){\r\n val[i] /= blitter;\r\n i-=1;\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n function blitProperty(data){\r\n if(!data.k.length){\r\n data.k = blitValue(data.k);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n data.k = blitValue(data.k);\r\n } else {\r\n var i, len = data.k.length;\r\n for(i=0;i boxWidth){\r\n if(lastSpaceIndex === -1){\r\n //i -= 1;\r\n documentData.t = documentData.t.substr(0,i) + \"\\r\" + documentData.t.substr(i);\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n documentData.t = documentData.t.substr(0,i) + \"\\r\" + documentData.t.substr(i+1);\r\n }\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n }else {\r\n lineWidth += cLength;\r\n }\r\n }\r\n len = documentData.t.length;\r\n }\r\n var trackingOffset = documentData.tr/1000*documentData.s;\r\n lineWidth = - trackingOffset;\r\n cLength = 0;\r\n for (i = 0;i < len ;i += 1) {\r\n newLineFlag = false;\r\n if(documentData.t.charAt(i) === ' '){\r\n val = '\\u00A0';\r\n }else if(documentData.t.charCodeAt(i) === 13){\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = - 2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n }else{\r\n val = documentData.t.charAt(i);\r\n }\r\n if(fontManager.chars){\r\n charData = fontManager.getCharData(documentData.t.charAt(i), fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w*documentData.s/100;\r\n }else{\r\n //var charWidth = fontManager.measureText(val, documentData.f, documentData.s);\r\n //tCanvasHelper.font = documentData.s + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.s);\r\n }\r\n\r\n //\r\n lineWidth += cLength + trackingOffset;\r\n letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine});\r\n if(anchorGrouping == 2){\r\n currentSize += cLength;\r\n if(val == '' || val == '\\u00A0' || i == len - 1){\r\n if(val == '' || val == '\\u00A0'){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n }else if(anchorGrouping == 3){\r\n currentSize += cLength;\r\n if(val == '' || i == len - 1){\r\n if(val == ''){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n }else{\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if(documentData.sz){\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n }else{\r\n documentData.boxWidth = maxLineWidth;\r\n switch(documentData.j){\r\n case 1:\r\n documentData.justifyOffset = - documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = - documentData.boxWidth/2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.t.a;\r\n jLen = animators.length;\r\n var based, ind, indexes = [];\r\n for(j=0;j\r\n var l = document.createElement('link');\r\n l.type = \"text/css\";\r\n l.rel = \"stylesheet\";\r\n l.href = fontArr[i].fPath;\r\n defs.appendChild(l);\r\n } else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){\r\n //\r\n var sc = document.createElement('script');\r\n sc.setAttribute('src',fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n fontArr[i].helper = createHelper(defs,fontArr[i]);\r\n this.fonts.push(fontArr[i]);\r\n }\r\n checkLoadedFonts.bind(this)();\r\n }\r\n\r\n function addChars(chars){\r\n if(!chars){\r\n return;\r\n }\r\n if(!this.chars){\r\n this.chars = [];\r\n }\r\n var i, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen,perc,jLen, j, fnc;\r\n if(keyData.to){\r\n\r\n if(!keyData.bezierData){\r\n bez.buildBezierData(keyData);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if(frameNum >= nextKeyData.t-offsetTime || frameNum < keyData.t-offsetTime){\r\n var ind = frameNum >= nextKeyData.t-offsetTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for(k = 0; k < kLen; k += 1){\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n caching._lastBezierData = null;\r\n }else{\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y,keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime)));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while(flag){\r\n addedLength +=bezierData.points[j].partialLength;\r\n if(distanceInLine === 0 || perc === 0 || j == bezierData.points.length - 1){\r\n kLen = bezierData.points[j].point.length;\r\n for(k=0;k= addedLength && distanceInLine < addedLength + bezierData.points[j+1].partialLength){\r\n segmentPerc = (distanceInLine-addedLength)/(bezierData.points[j+1].partialLength);\r\n kLen = bezierData.points[j].point.length;\r\n for(k=0;k= nextKeyData.t-offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-offsetTime){\r\n perc = 0;\r\n }else{\r\n if(keyData.o.x.constructor === Array){\r\n if(!keyData.__fnct){\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = keyData.o.x[i] || keyData.o.x[0];\r\n outY = keyData.o.y[i] || keyData.o.y[0];\r\n inX = keyData.i.x[i] || keyData.i.x[0];\r\n inY = keyData.i.y[i] || keyData.i.y[0];\r\n fnc = BezierFactory.getBezierEasing(outX,outY,inX,inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX,outY,inX,inY).get;\r\n keyData.__fnct = fnc;\r\n } else{\r\n fnc = keyData.__fnct;\r\n }\r\n }\r\n perc = fnc((frameNum-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime)));\r\n }\r\n }\r\n if(this.sh && keyData.h !== 1){\r\n var initP = keyData.s[i];\r\n var endP = keyData.e[i];\r\n if(initP-endP < -180){\r\n initP += 360;\r\n } else if(initP-endP > 180){\r\n initP -= 360;\r\n }\r\n keyValue = initP+(endP-initP)*perc;\r\n } else {\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;\r\n }\r\n if(len === 1){\r\n newValue = keyValue;\r\n }else{\r\n newValue[i] = keyValue;\r\n }\r\n }\r\n }\r\n return {\r\n value: newValue,\r\n iterationIndex: iterationIndex\r\n }\r\n }\r\n\r\n function getValueAtCurrentTime(){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.mdf = false;\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t-this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;\r\n if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){\r\n var i = this._caching.lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n var renderResult = this.interpolateValue(frameNum, i, this.pv, this._caching);\r\n this._caching.lastIndex = renderResult.iterationIndex;\r\n if(this.pv.constructor === Array){\r\n i = 0;\r\n while(i= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / this.elem.globalData.frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.01) / this.elem.globalData.frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / this.elem.globalData.frameRate, this.p.offsetTime);\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if(this.data.p.s){\r\n if(this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function setInverted(){\r\n this.inverted = true;\r\n this.iv = new Matrix();\r\n if(!this.k){\r\n if(this.data.p.s){\r\n this.iv.translate(this.px.v,this.py.v,-this.pz.v);\r\n }else{\r\n this.iv.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n if(this.r){\r\n this.iv.rotate(-this.r.v);\r\n }else{\r\n this.iv.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n }\r\n if(this.s){\r\n this.iv.scale(this.s.v[0],this.s.v[1],1);\r\n }\r\n if(this.a){\r\n this.iv.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]);\r\n }\r\n }\r\n }\r\n\r\n function autoOrient(){\r\n //\r\n //var prevP = this.getValueAtTime();\r\n }\r\n\r\n return function TransformProperty(elem,data,arr){\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.type = 'transform';\r\n this.dynamicProperties = [];\r\n this.mdf = false;\r\n this.data = data;\r\n this.getValue = processKeys;\r\n this.applyToMatrix = applyToMatrix;\r\n this.setInverted = setInverted;\r\n this.autoOrient = autoOrient;\r\n this.v = new Matrix();\r\n if(data.p.s){\r\n this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this.dynamicProperties);\r\n this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this.dynamicProperties);\r\n if(data.p.z){\r\n this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this.dynamicProperties);\r\n }\r\n }else{\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this.dynamicProperties);\r\n }\r\n if(data.r) {\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this.dynamicProperties);\r\n } else if(data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this.dynamicProperties);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this.dynamicProperties);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this.dynamicProperties);\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this.dynamicProperties);\r\n //sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n }\r\n if(data.sk){\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this.dynamicProperties);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this.dynamicProperties);\r\n }\r\n if(data.a) {\r\n this.a = PropertyFactory.getProp(elem,data.a,1,0,this.dynamicProperties);\r\n }\r\n if(data.s) {\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0.01,this.dynamicProperties);\r\n }\r\n if(data.o){\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this.dynamicProperties);\r\n } else {\r\n this.o = {mdf:false,v:1};\r\n }\r\n if(this.dynamicProperties.length){\r\n arr.push(this);\r\n }else{\r\n if(this.a){\r\n this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]);\r\n }\r\n if(this.s){\r\n this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]);\r\n }\r\n if(this.sk){\r\n this.v.skewFromAxis(-this.sk.v,this.sa.v);\r\n }\r\n if(this.r){\r\n this.v.rotate(-this.r.v);\r\n }else{\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if(this.data.p.s){\r\n if(data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n Object.defineProperty(this, \"position\", { get: positionGetter});\r\n Object.defineProperty(this, \"xPosition\", { get: xPositionGetter});\r\n Object.defineProperty(this, \"yPosition\", { get: yPositionGetter});\r\n Object.defineProperty(this, \"orientation\", { get: orientationGetter});\r\n Object.defineProperty(this, \"anchorPoint\", { get: anchorGetter});\r\n Object.defineProperty(this, \"rotation\", { get: rotationGetter});\r\n Object.defineProperty(this, \"scale\", { get: scaleGetter});\r\n Object.defineProperty(this, \"opacity\", { get: opacityGetter});\r\n Object.defineProperty(this, \"skew\", { get: skewGetter});\r\n Object.defineProperty(this, \"skewAxis\", { get: skewAxisGetter});\r\n }\r\n }());\r\n\r\n function getProp(elem,data,type, mult, arr) {\r\n var p;\r\n if(type === 2){\r\n p = new TransformProperty(elem, data, arr);\r\n } else if(data.a === 0){\r\n if(type === 0) {\r\n p = new ValueProperty(elem,data,mult);\r\n } else {\r\n p = new MultiDimensionalProperty(elem,data, mult);\r\n }\r\n } else if(data.a === 1){\r\n if(type === 0) {\r\n p = new KeyframedValueProperty(elem,data,mult);\r\n } else {\r\n p = new KeyframedMultidimensionalProperty(elem,data, mult);\r\n }\r\n } else if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult);\r\n break;\r\n }\r\n }\r\n if(p.k){\r\n arr.push(p);\r\n }\r\n return p;\r\n }\r\n\r\n var getGradientProp = (function(){\r\n\r\n function getValue(forceRender){\r\n this.prop.getValue();\r\n this.cmdf = false;\r\n this.omdf = false;\r\n if(this.prop.mdf || forceRender){\r\n var i, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;ie){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n\r\n function getMult(ind){\r\n //var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var easer = BezierFactory.getBezierEasing(this.ne.v/100,0,1-this.xe.v/100,1).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if(type == 2){\r\n if(e === s){\r\n mult = ind >= e ? 1 : 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 3){\r\n if(e === s){\r\n mult = ind >= e ? 0 : 1;\r\n }else{\r\n mult = 1 - max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n\r\n mult = easer(mult);\r\n }else if(type == 4){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n if(mult<.5){\r\n mult *= 2;\r\n }else{\r\n mult = 1 - 2*(mult-0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n }else if(type == 5){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n var tot = e - s;\r\n /*ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind;*/\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n var x = -tot/2+ind;\r\n var a = tot/2;\r\n mult = Math.sqrt(1 - (x*x)/(a*a));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 6){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind)/(e-s)))))/2;\r\n /*\r\n ind = Math.min(Math.max(s,ind),e-1);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind-s)/(e-1-s)))))/2;\r\n mult = Math.max(mult,(1/(e-1-s))/(e-1-s));*/\r\n }\r\n mult = easer(mult);\r\n }else {\r\n if(ind >= floor(s)){\r\n if(ind-s < 0){\r\n mult = 1 - (s - ind);\r\n }else{\r\n mult = max(0,min(e-ind,1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult*this.a.v;\r\n }\r\n\r\n return function TextSelectorProp(elem,data, arr){\r\n this.mdf = false;\r\n this.k = false;\r\n this.data = data;\r\n this.dynamicProperties = [];\r\n this.getValue = updateRange;\r\n this.getMult = getMult;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.s = PropertyFactory.getProp(elem,data.s || {k:0},0,0,this.dynamicProperties);\r\n if('e' in data){\r\n this.e = PropertyFactory.getProp(elem,data.e,0,0,this.dynamicProperties);\r\n }else{\r\n this.e = {v:100};\r\n }\r\n this.o = PropertyFactory.getProp(elem,data.o || {k:0},0,0,this.dynamicProperties);\r\n this.xe = PropertyFactory.getProp(elem,data.xe || {k:0},0,0,this.dynamicProperties);\r\n this.ne = PropertyFactory.getProp(elem,data.ne || {k:0},0,0,this.dynamicProperties);\r\n this.a = PropertyFactory.getProp(elem,data.a,0,0.01,this.dynamicProperties);\r\n if(this.dynamicProperties.length){\r\n arr.push(this);\r\n }else{\r\n this.getValue();\r\n }\r\n }\r\n }());\r\n\r\n function getTextSelectorProp(elem, data,arr) {\r\n return new TextSelectorProp(elem, data, arr);\r\n };\r\n\r\n var ob = {\r\n getProp: getProp,\r\n getDashProp: getDashProp,\r\n getTextSelectorProp: getTextSelectorProp,\r\n getGradientProp: getGradientProp\r\n };\r\n return ob;\r\n}());\nfunction ShapePath(){\r\n\tthis.c = false;\r\n\tthis._length = 0;\r\n\tthis._maxLength = 8;\r\n\tthis.v = Array.apply(null,{length:this._maxLength});\r\n\tthis.o = Array.apply(null,{length:this._maxLength});\r\n\tthis.i = Array.apply(null,{length:this._maxLength});\r\n};\r\n\r\nShapePath.prototype.setPathData = function(closed, len) {\r\n\tthis.c = closed;\r\n\tthis.setLength(len);\r\n\tvar i = 0;\r\n\twhile(i < len){\r\n\t\tthis.v[i] = point_pool.newPoint();\r\n\t\tthis.o[i] = point_pool.newPoint();\r\n\t\tthis.i[i] = point_pool.newPoint();\r\n\t\ti += 1;\r\n\t}\r\n};\r\n\r\nShapePath.prototype.setLength = function(len) {\r\n\twhile(this._maxLength < len) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tthis._length = len;\r\n}\r\n\r\nShapePath.prototype.doubleArrayLength = function() {\r\n\tthis.v = this.v.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis.i = this.i.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis.o = this.o.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function(x, y, type, pos, replace) {\r\n\tvar arr;\r\n\tthis._length = Math.max(this._length, pos + 1);\r\n\tif(this._length >= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newPoint();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, iterationIndex, previousValue, isCurrentRender) {\r\n var keyPropS,keyPropE,isHold;\r\n if(frameNum < this.keyframes[0].t-this.offsetTime){\r\n keyPropS = this.keyframes[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n }else if(frameNum >= this.keyframes[this.keyframes.length - 1].t-this.offsetTime){\r\n if(this.keyframes[this.keyframes.length - 2].h === 1){\r\n keyPropS = this.keyframes[this.keyframes.length - 1].s[0];\r\n }else{\r\n keyPropS = this.keyframes[this.keyframes.length - 2].e[0];\r\n }\r\n isHold = true;\r\n }else{\r\n var i = iterationIndex;\r\n var len = this.keyframes.length- 1,flag = true,keyData,nextKeyData, j, jLen, k, kLen;\r\n while(flag){\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n var perc;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n var hasModified = false;\r\n var vertexValue;\r\n for(j=0;j endTime && frameNum > endTime)))){\r\n ////\r\n var i = this.lastFrame < frameNum ? this._lastIndex : 0;\r\n var renderResult = this.interpolateShape(frameNum, i, this.v, true);\r\n ////\r\n this._lastIndex = renderResult.iterationIndex;\r\n this.mdf = renderResult.hasModified;\r\n if(renderResult.hasModified) {\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n this.lastFrame = frameNum;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function getShapeValue(){\r\n return this.v;\r\n }\r\n\r\n function resetShape(){\r\n this.paths = this.localShapeCollection;\r\n if(!this.k){\r\n this.mdf = false;\r\n }\r\n }\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.__shapeObject = 1;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n }\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = getShapeValue;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.__shapeObject = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.offsetTime = elem.data.st;\r\n this._lastIndex = 0;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newShape();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n }\r\n KeyframedShapeProperty.prototype.getValue = interpolateShapeCurrentTime;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function convertEllToPath(){\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n if(this.d !== 3){\r\n this.v.v[0][0] = p0;\r\n this.v.v[0][1] = p1-s1;\r\n this.v.v[1][0] = p0 + s0;\r\n this.v.v[1][1] = p1;\r\n this.v.v[2][0] = p0;\r\n this.v.v[2][1] = p1+s1;\r\n this.v.v[3][0] = p0 - s0;\r\n this.v.v[3][1] = p1;\r\n this.v.i[0][0] = p0 - s0*cPoint;\r\n this.v.i[0][1] = p1 - s1;\r\n this.v.i[1][0] = p0 + s0;\r\n this.v.i[1][1] = p1 - s1*cPoint;\r\n this.v.i[2][0] = p0 + s0*cPoint;\r\n this.v.i[2][1] = p1 + s1;\r\n this.v.i[3][0] = p0 - s0;\r\n this.v.i[3][1] = p1 + s1*cPoint;\r\n this.v.o[0][0] = p0 + s0*cPoint;\r\n this.v.o[0][1] = p1 - s1;\r\n this.v.o[1][0] = p0 + s0;\r\n this.v.o[1][1] = p1 + s1*cPoint;\r\n this.v.o[2][0] = p0 - s0*cPoint;\r\n this.v.o[2][1] = p1 + s1;\r\n this.v.o[3][0] = p0 - s0;\r\n this.v.o[3][1] = p1 - s1*cPoint;\r\n }else{\r\n this.v.v[0][0] = p0;\r\n this.v.v[0][1] = p1-s1;\r\n this.v.v[1][0] = p0 - s0;\r\n this.v.v[1][1] = p1;\r\n this.v.v[2][0] = p0;\r\n this.v.v[2][1] = p1+s1;\r\n this.v.v[3][0] = p0 + s0;\r\n this.v.v[3][1] = p1;\r\n this.v.i[0][0] = p0 + s0*cPoint;\r\n this.v.i[0][1] = p1 - s1;\r\n this.v.i[1][0] = p0 - s0;\r\n this.v.i[1][1] = p1 - s1*cPoint;\r\n this.v.i[2][0] = p0 - s0*cPoint;\r\n this.v.i[2][1] = p1 + s1;\r\n this.v.i[3][0] = p0 + s0;\r\n this.v.i[3][1] = p1 + s1*cPoint;\r\n this.v.o[0][0] = p0 - s0*cPoint;\r\n this.v.o[0][1] = p1 - s1;\r\n this.v.o[1][0] = p0 - s0;\r\n this.v.o[1][1] = p1 + s1*cPoint;\r\n this.v.o[2][0] = p0 + s0*cPoint;\r\n this.v.o[2][1] = p1 + s1;\r\n this.v.o[3][0] = p0 + s0;\r\n this.v.o[3][1] = p1 - s1*cPoint;\r\n }\r\n }\r\n\r\n function processKeys(frameNum){\r\n var i, len = this.dynamicProperties.length;\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.mdf = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n\r\n for(i=0;ie){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.sValue = s;\r\n this.eValue = e;\r\n this.oValue = o;\r\n }\r\n}\r\nTrimModifier.prototype.initModifierProperties = function(elem,data){\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.oValue = 0;\r\n this.getValue = this.processKeys;\r\n this.s = PropertyFactory.getProp(elem,data.s,0,0.01,this.dynamicProperties);\r\n this.e = PropertyFactory.getProp(elem,data.e,0,0.01,this.dynamicProperties);\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0,this.dynamicProperties);\r\n this.m = data.m;\r\n if(!this.dynamicProperties.length){\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function(s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = []\r\n if(e <= 1){\r\n segments.push({\r\n s: s,\r\n e: e\r\n })\r\n }else if(s >= 1){\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n })\r\n }else{\r\n segments.push({\r\n s: s,\r\n e: 1\r\n })\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n })\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for(i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if(segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if(!shapeSegments.length){\r\n shapeSegments.push([0,0]);\r\n }\r\n return shapeSegments;\r\n}\r\n\r\nTrimModifier.prototype.processShapes = function(firstFrame){\r\n var shapePaths;\r\n var i, len = this.shapes.length;\r\n var j, jLen;\r\n var s = this.sValue;\r\n var e = this.eValue;\r\n var pathsData,pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if(e === s){\r\n for(i=0;i= 0; i -= 1){\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape.mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n if(this.m === 2 && len > 1) {\r\n var edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]]\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if(shapeE <= 1){\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength * shapeE\r\n })\r\n }else if(shapeS >= 1){\r\n segments.push({\r\n s:shapeData.totalShapeLength * (shapeS - 1),\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n })\r\n }else{\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength\r\n })\r\n segments.push({\r\n s:0,\r\n e:shapeData.totalShapeLength*(shapeE - 1)\r\n })\r\n }\r\n var newShapesData = this.addShapes(shapeData,segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n var lastPos;\r\n if(segments.length > 1){\r\n if(shapeData.shape.v.c){\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData,segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData,segments[1]);\r\n }\r\n } \r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n \r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if(this.mdf){\r\n for(i=0;i shapeSegment.e){\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if(shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength){\r\n this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[j],shapePaths[i].v[j],shapePath,segmentCount,newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[j],shapePaths[i].o[j-1],shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);\r\n this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if(shapePaths[i].c){\r\n currentLengthData = lengths[j-1];\r\n if(addedLength <= shapeSegment.e){\r\n var segmentLength = lengths[j-1].addedLength;\r\n if(shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength){\r\n this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[0],shapePaths[i].v[0],shapePath,segmentCount,newShape);\r\n newShape = false;\r\n }else{\r\n segment = bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[0],shapePaths[i].o[j-1],shapePaths[i].i[0], (shapeSegment.s - addedLength)/segmentLength,(shapeSegment.e - addedLength)/segmentLength, lengths[j-1]);\r\n this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if(shapePath._length){\r\n shapePath.setXYAt(shapePath.v[initPos][0],shapePath.v[initPos][1],'i',initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0],shapePath.v[shapePath._length - 1][1],'o',shapePath._length - 1);\r\n }\r\n if(addedLength > shapeSegment.e){\r\n break;\r\n }\r\n if(i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\r\n }\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n dynamicProperties.push(this);\r\n }else{\r\n this.getValue(true);\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.resetElements = function(elements){\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if(elements[i].ty === 'gr'){\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.cloneElements = function(elements){\r\n var i, len = elements.length;\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n}\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {\r\n var i, len = elements.length;\r\n for(i = 0; i < len ; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if(elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.processShapes = function(firstFrame){\r\n\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n if(!this.dynamicProperties.length && !firstFrame){\r\n this.mdf = false;\r\n }\r\n if(this.mdf){\r\n var copies = Math.ceil(this.c.v);\r\n if(this._groups.length < copies){\r\n while(this._groups.length < copies){\r\n var group = {\r\n it:this.cloneElements(this._elements),\r\n ty:'gr'\r\n }\r\n group.it.push({\"a\":{\"a\":0,\"ix\":1,\"k\":[0,0]},\"nm\":\"Transform\",\"o\":{\"a\":0,\"ix\":7,\"k\":100},\"p\":{\"a\":0,\"ix\":2,\"k\":[0,0]},\"r\":{\"a\":0,\"ix\":6,\"k\":0},\"s\":{\"a\":0,\"ix\":3,\"k\":[100,100]},\"sa\":{\"a\":0,\"ix\":5,\"k\":0},\"sk\":{\"a\":0,\"ix\":4,\"k\":0},\"ty\":\"tr\"});\r\n \r\n this.arr.splice(0,0,group);\r\n this._groups.splice(0,0,group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n }\r\n var i, cont = 0, renderFlag;\r\n for(i = 0; i <= this._groups.length - 1; i += 1){\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n cont += 1;\r\n }\r\n \r\n this._currentCopies = copies;\r\n this.elem.firstFrame = true;\r\n ////\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset%1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var k;\r\n var tMat = this.tr.v.props;\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if(offset > 0) {\r\n while(iterationroundOffset){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if(offsetModulo){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n var dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n while(cont){\r\n if(iteration !== 0){\r\n if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);\r\n this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);\r\n this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);\r\n var items = this.elemsData[i].it;\r\n var itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n var j, jLen = itemsTransform.length;\r\n for(j=0;j= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].bezierData.points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].bezierData.points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an/2 - letters[i].add;\r\n matrixHelper.translate(-offf,0,0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j= 0; i--) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if(data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st))\r\n {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers:false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function(layer){\r\n switch(layer.ty){\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 99:\r\n return null;\r\n }\r\n return this.createBase(layer);\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function(){\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n}\r\n\r\nBaseRenderer.prototype.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n for (i = len - 1; i >= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newElement = element.getBaseElement();\r\n if(!newElement){\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while(i 0){\r\n this.element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\r\n }\r\n\r\n defs.appendChild(this.maskElement);\r\n};\r\n\r\nMaskElement.prototype.getMaskProperty = function(pos){\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.prepareFrame = function(){\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i 1){\r\n pathString += \" C\"+bm_rnd(pathNodes.o[i-1][0])+','+bm_rnd(pathNodes.o[i-1][1]) + \" \"+bm_rnd(pathNodes.i[0][0])+','+bm_rnd(pathNodes.i[0][1]) + \" \"+bm_rnd(pathNodes.v[0][0])+','+bm_rnd(pathNodes.v[0][1]);\r\n }\r\n //pathNodes.__renderedString = pathString;\r\n\r\n\r\n if(viewData.lastPath !== pathString){\r\n if(viewData.elem){\r\n if(!pathNodes.c){\r\n viewData.elem.setAttribute('d','');\r\n }else if(pathData.inv){\r\n viewData.elem.setAttribute('d',this.solidPath + pathString);\r\n }else{\r\n viewData.elem.setAttribute('d',pathString);\r\n }\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\nfunction BaseElement(){\r\n};\r\nBaseElement.prototype.checkMasks = function(){\r\n if(!this.data.hasMask){\r\n return false;\r\n }\r\n var i = 0, len = this.data.masksProperties.length;\r\n while(i num)\r\n {\r\n if(this.isVisible !== true){\r\n this.elemMdf = true;\r\n this.globalData.mdf = true;\r\n this.isVisible = true;\r\n this.firstFrame = true;\r\n if(this.data.hasMask){\r\n this.maskManager.firstFrame = true;\r\n }\r\n }\r\n }else{\r\n if(this.isVisible !== false){\r\n this.elemMdf = true;\r\n this.globalData.mdf = true;\r\n this.isVisible = false;\r\n }\r\n }\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i arr.g.p*4) || arr.g.k.k.length > arr.g.p*4){\r\n var opFill;\r\n var stop, j, jLen;\r\n var mask = document.createElementNS(svgNS,\"mask\");\r\n var maskElement = document.createElementNS(svgNS, 'path');\r\n mask.appendChild(maskElement);\r\n var opacityId = 'op_'+randomString(10);\r\n var maskId = 'mk_'+randomString(10);\r\n mask.setAttribute('id',maskId);\r\n if(arr.t === 1){\r\n opFill = document.createElementNS(svgNS,'linearGradient');\r\n } else {\r\n opFill = document.createElementNS(svgNS,'radialGradient');\r\n }\r\n opFill.setAttribute('id',opacityId);\r\n opFill.setAttribute('spreadMethod','pad');\r\n opFill.setAttribute('gradientUnits','userSpaceOnUse');\r\n jLen = arr.g.k.k[0].s ? arr.g.k.k[0].s.length : arr.g.k.k.length;\r\n var stops = [];\r\n for(j=arr.g.p*4;j=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level, dynamicProperties);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].elem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this.firstFrame);\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderFrame = function(parentMatrix){\r\n //this.reloadShapes();\r\n var renderParent = this._parent.renderFrame.call(this,parentMatrix);\r\n if(renderParent===false){\r\n this.hide();\r\n return;\r\n }\r\n if(this.hidden){\r\n this.layerElement.style.display = 'block';\r\n this.hidden = false;\r\n }\r\n this.renderModifiers();\r\n var i, len = this.stylesList.length;\r\n for(i=0;i=0;i-=1){\r\n if(this.stylesList[i].ld !== '0'){\r\n this.stylesList[i].ld = '0';\r\n this.stylesList[i].pElem.style.display = 'none';\r\n if(this.stylesList[i].pElem.parentNode){\r\n this.stylesList[i].parent = this.stylesList[i].pElem.parentNode;\r\n //this.stylesList[i].pElem.parentNode.removeChild(this.stylesList[i].pElem);\r\n }\r\n }\r\n }\r\n this.hidden = true;\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderShape = function(items,data, container){\r\n var i, len = items.length - 1;\r\n var ty;\r\n for(i=len;i>=0;i-=1){\r\n ty = items[i].ty;\r\n if(ty == 'tr'){\r\n if(this.firstFrame || data[i].transform.op.mdf && container){\r\n container.setAttribute('opacity',data[i].transform.op.v);\r\n }\r\n if(this.firstFrame || data[i].transform.mProps.mdf && container){\r\n container.setAttribute('transform',data[i].transform.mProps.v.to2dCSS());\r\n }\r\n }else if(ty == 'sh' || ty == 'el' || ty == 'rc' || ty == 'sr'){\r\n this.renderPath(items[i],data[i]);\r\n }else if(ty == 'fl'){\r\n this.renderFill(items[i],data[i]);\r\n }else if(ty == 'gf'){\r\n this.renderGradient(items[i],data[i]);\r\n }else if(ty == 'gs'){\r\n this.renderGradient(items[i],data[i]);\r\n this.renderStroke(items[i],data[i]);\r\n }else if(ty == 'st'){\r\n this.renderStroke(items[i],data[i]);\r\n }else if(ty == 'gr'){\r\n this.renderShape(items[i].it,data[i].it, data[i].gr);\r\n }else if(ty == 'tm'){\r\n //\r\n }\r\n }\r\n\r\n};\r\n\r\nIShapeElement.prototype.buildShapeString = function(pathNodes, length, closed, mat) {\r\n var i, shapeString = '';\r\n for(i = 1; i < length; i += 1) {\r\n if (i === 1) {\r\n shapeString += \" M\" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n }\r\n shapeString += \" C\" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + \" \" + mat.applyToPointStringified(pathNodes.i[i][0], pathNodes.i[i][1]) + \" \" + mat.applyToPointStringified(pathNodes.v[i][0], pathNodes.v[i][1]);\r\n }\r\n if (length === 1) {\r\n shapeString += \" M\" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n }\r\n if (closed && length) {\r\n shapeString += \" C\" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + \" \" + mat.applyToPointStringified(pathNodes.i[0][0], pathNodes.i[0][1]) + \" \" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\nIShapeElement.prototype.renderPath = function(pathData,itemData){\r\n var len, i, j, jLen,pathStringTransformed,redraw,pathNodes,l, lLen = itemData.elements.length;\r\n var lvl = itemData.lvl;\r\n if(!pathData._render){\r\n return;\r\n }\r\n for(l=0;l 0) {\r\n redraw = itemData.transformers[k].mProps.mdf || redraw;\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n iterations --;\r\n k --;\r\n }\r\n if(redraw){\r\n for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99:itemData.h.v;\r\n var dist = rad*percent;\r\n var x = Math.cos(ang + itemData.a.v)*dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v)*dist + pt1[1];\r\n gfill.setAttribute('fx',x);\r\n gfill.setAttribute('fy',y);\r\n if(opFill){\r\n opFill.setAttribute('fx',x);\r\n opFill.setAttribute('fy',y);\r\n }\r\n }\r\n //gfill.setAttribute('fy','200');\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderStroke = function(styleData,itemData){\r\n var styleElem = itemData.style;\r\n //TODO fix dashes\r\n var d = itemData.d;\r\n var dasharray,dashoffset;\r\n if(d && d.k && (d.mdf || this.firstFrame)){\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dasharray);\r\n ////styleElem.pElem.style.strokeDasharray = d.dasharray;\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset);\r\n ////styleElem.pElem.style.strokeDashoffset = d.dashoffset;\r\n }\r\n if(itemData.c && (itemData.c.mdf || this.firstFrame)){\r\n styleElem.pElem.setAttribute('stroke','rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')');\r\n ////styleElem.pElem.style.stroke = 'rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')';\r\n }\r\n if(itemData.o.mdf || this.firstFrame){\r\n styleElem.pElem.setAttribute('stroke-opacity',itemData.o.v);\r\n }\r\n if(itemData.w.mdf || this.firstFrame){\r\n styleElem.pElem.setAttribute('stroke-width',itemData.w.v);\r\n if(styleElem.msElem){\r\n styleElem.msElem.setAttribute('stroke-width',itemData.w.v);\r\n }\r\n ////styleElem.pElem.style.strokeWidth = itemData.w.v;\r\n }\r\n};\r\n\r\nIShapeElement.prototype.destroy = function(){\r\n this._parent.destroy.call(this._parent);\r\n this.shapeData = null;\r\n this.itemsData = null;\r\n this.parentContainer = null;\r\n this.placeholder = null;\r\n};\r\n\nfunction ITextElement(data, animationItem,parentContainer,globalData){\r\n}\r\nITextElement.prototype.init = function(){\r\n this._frameId = -1;\r\n this.lettersChangedFlag = true;\r\n this.currentTextDocumentData = this.data.t.d.k[0].s;\r\n this.dynamicProperties = this.dynamicProperties || [];\r\n this.textAnimator = new TextAnimatorProperty(this.data.t, this.renderType, this);\r\n this._parent.init.call(this);\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n this.buildNewText();\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function(num) {\r\n if(this._frameId === this.globalData.frameId) {\r\n return;\r\n }\r\n this._frameId = this.globalData.frameId;\r\n var textKeys = this.data.t.d.k;\r\n var i = 0, len = textKeys.length;\r\n while(i < len) {\r\n textDocumentData = textKeys[i].s;\r\n i += 1;\r\n if(i === len || textKeys[i].t > num){\r\n break;\r\n }\r\n } \r\n this.lettersChangedFlag = false;\r\n if(textDocumentData !== this.currentTextDocumentData){\r\n this.currentTextDocumentData = textDocumentData;\r\n this.lettersChangedFlag = true;\r\n this.buildNewText();\r\n }\r\n this._parent.prepareFrame.call(this, num);\r\n}\r\n\r\nITextElement.prototype.createPathShape = function(matrixHelper, shapes) {\r\n var j,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= max){\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos++] = colorValue;\r\n cnt += 256/(segments-1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager.mdf){\r\n var val, cnt, perc, bezier;\r\n var effectElements = this.filterManager.effectElements;\r\n if(this.feFuncRComposed && (forceRender || effectElements[2].p.mdf || effectElements[3].p.mdf || effectElements[4].p.mdf || effectElements[5].p.mdf || effectElements[6].p.mdf)){\r\n val = this.getTableValue(effectElements[2].p.v,effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues',val);\r\n this.feFuncGComposed.setAttribute('tableValues',val);\r\n this.feFuncBComposed.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncR && (forceRender || effectElements[9].p.mdf || effectElements[10].p.mdf || effectElements[11].p.mdf || effectElements[12].p.mdf || effectElements[13].p.mdf)){\r\n val = this.getTableValue(effectElements[9].p.v,effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v);\r\n this.feFuncR.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncG && (forceRender || effectElements[16].p.mdf || effectElements[17].p.mdf || effectElements[18].p.mdf || effectElements[19].p.mdf || effectElements[20].p.mdf)){\r\n val = this.getTableValue(effectElements[16].p.v,effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v);\r\n this.feFuncG.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncB && (forceRender || effectElements[23].p.mdf || effectElements[24].p.mdf || effectElements[25].p.mdf || effectElements[26].p.mdf || effectElements[27].p.mdf)){\r\n val = this.getTableValue(effectElements[23].p.v,effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v);\r\n this.feFuncB.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncA && (forceRender || effectElements[30].p.mdf || effectElements[31].p.mdf || effectElements[32].p.mdf || effectElements[33].p.mdf || effectElements[34].p.mdf)){\r\n val = this.getTableValue(effectElements[30].p.v,effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v);\r\n this.feFuncA.setAttribute('tableValues',val);\r\n }\r\n \r\n }\r\n};\nfunction SVGDropShadowEffect(filter, filterManager){\r\n /* \r\n \r\n \r\n \r\n \r\n */\r\n /**/\r\n filter.setAttribute('x','-100%');\r\n filter.setAttribute('y','-100%');\r\n filter.setAttribute('width','400%');\r\n filter.setAttribute('height','400%');\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = document.createElementNS(svgNS,'feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = document.createElementNS(svgNS,'feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = document.createElementNS(svgNS,'feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = document.createElementNS(svgNS,'feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\r\n var feMerge = document.createElementNS(svgNS,'feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = document.createElementNS(svgNS,'feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = document.createElementNS(svgNS,'feMergeNode');\r\n feMergeNode.setAttribute('in','SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager.mdf){\r\n if(forceRender || this.filterManager.effectElements[4].p.mdf){\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if(forceRender || this.filterManager.effectElements[0].p.mdf){\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));\r\n }\r\n if(forceRender || this.filterManager.effectElements[1].p.mdf){\r\n this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);\r\n }\r\n if(forceRender || this.filterManager.effectElements[2].p.mdf || this.filterManager.effectElements[3].p.mdf){\r\n var distance = this.filterManager.effectElements[3].p.v\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads\r\n var x = distance * Math.cos(angle)\r\n var y = distance * Math.sin(angle)\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /*if(forceRender || this.filterManager.effectElements[5].p.mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n }*/\r\n }\r\n};\nfunction SVGMatte3Effect(filterElem, filterManager, elem){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = document.createElementNS(svgNS,'g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {\r\n var masker = document.createElementNS(svgNS,'mask');\r\n masker.setAttribute('id',mask.layerId);\r\n masker.setAttribute('mask-type','alpha');\r\n masker.appendChild(mask.layerElement);\r\n elem.setMatte(mask.layerId);\r\n mask.data.hd = false;\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n}\r\n\r\nSVGMatte3Effect.prototype.initialize = function() {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var i = 0, len = this.elem.comp.elements.length;\r\n while(i < len) {\r\n \tif(this.elem.comp.elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, this.elem.comp.elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n}\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n}\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef.length;\r\n var filId = randomString(10);\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i=0;i-=1){\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer){\r\n var animElements = document.getElementsByClassName('bodymovin');\r\n var i, len = animElements.length;\r\n for(i=0;i this.animationData.op){\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n this.animationData.tf = this.totalFrames;\r\n }\r\n var layers = this.animationData.layers;\r\n var i, len = layers.length;\r\n var newLayers = data.layers;\r\n var j, jLen = newLayers.length;\r\n for(j=0;j this.timeCompleted){\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if(this.isLoaded === false){\r\n return;\r\n }\r\n //console.log('this.currentFrame:',this.currentFrame + this.firstFrame);\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.isPaused = false;\r\n if(this._idle){\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === false){\r\n this.isPaused = true;\r\n if(!this.pendingSegment){\r\n this._idle = true;\r\n this.trigger('_idle');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.play();\r\n }else{\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n this.pause();\r\n this.currentFrame = this.currentRawFrame = 0;\r\n this.playCount = 0;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(isFrame){\r\n this.setCurrentRawFrameValue(value);\r\n }else{\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n this.goToAndStop(value, isFrame, name);\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if(this.pendingSegment){\r\n this.pendingSegment = false;\r\n this.adjustSegment(this.segments.shift());\r\n if(this.isPaused){\r\n this.play();\r\n }\r\n return;\r\n }\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n this.setCurrentRawFrameValue(this.currentRawFrame + value * this.frameModifier);\r\n};\r\n\r\nAnimationItem.prototype.updateAnimation = function (perc) {\r\n this.setCurrentRawFrameValue(this.totalFrames * perc);\r\n};\r\n\r\nAnimationItem.prototype.moveFrame = function (value, name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n this.setCurrentRawFrameValue(this.currentRawFrame+value);\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function(arr){\r\n this.playCount = 0;\r\n if(arr[1] < arr[0]){\r\n if(this.frameModifier > 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.01);\r\n } else if(arr[1] > arr[0]){\r\n if(this.frameModifier < 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init,end) {\r\n var pendingFrame = -1;\r\n if(this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init - 0.01;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n if(pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame,true);\r\n }\r\n}\r\n\r\nAnimationItem.prototype.playSegments = function (arr,forceFlag) {\r\n if(typeof arr[0] === 'object'){\r\n var i, len = arr.length;\r\n for(i=0;i= this.totalFrames) {\r\n this.checkSegments();\r\n if(this.loop === false){\r\n this.currentRawFrame = this.totalFrames - 0.01;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n }else{\r\n this.trigger('loopComplete');\r\n this.playCount += 1;\r\n if((this.loop !== true && this.playCount == this.loop) || this.pendingSegment){\r\n this.currentRawFrame = this.totalFrames - 0.01;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n } else {\r\n this.currentRawFrame = this.currentRawFrame % this.totalFrames;\r\n }\r\n }\r\n } else if (this.currentRawFrame < 0) {\r\n this.checkSegments();\r\n this.playCount -= 1;\r\n if(this.playCount < 0){\r\n this.playCount = 0;\r\n }\r\n if(this.loop === false || this.pendingSegment){\r\n this.currentRawFrame = 0;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n }else{\r\n this.trigger('loopComplete');\r\n this.currentRawFrame = (this.totalFrames + this.currentRawFrame) % this.totalFrames;\r\n this.gotoFrame();\r\n return;\r\n }\r\n }\r\n\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if(this.assetsPath){\r\n var imagePath = assetData.p;\r\n if(imagePath.indexOf('images/') !== -1){\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0, len = this.assets.length;\r\n while (i < len) {\r\n if(id == this.assets[i].id){\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getAssets = function () {\r\n return this.assets;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function(name){\r\n if(this._cbs && this._cbs[name]){\r\n switch(name){\r\n case 'enterFrame':\r\n this.triggerEvent(name,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name,new BMCompleteEvent(name,this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name,new BMDestroyEvent(name,this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if(name === 'enterFrame' && this.onEnterFrame){\r\n this.onEnterFrame.call(this,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n }\r\n if(name === 'loopComplete' && this.onLoopComplete){\r\n this.onLoopComplete.call(this,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n }\r\n if(name === 'complete' && this.onComplete){\r\n this.onComplete.call(this,new BMCompleteEvent(name,this.frameMult));\r\n }\r\n if(name === 'segmentStart' && this.onSegmentStart){\r\n this.onSegmentStart.call(this,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n }\r\n if(name === 'destroy' && this.onDestroy){\r\n this.onDestroy.call(this,new BMDestroyEvent(name,this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.addEventListener = _addEventListener;\r\nAnimationItem.prototype.removeEventListener = _removeEventListener;\r\nAnimationItem.prototype.triggerEvent = _triggerEvent;\r\n\nfunction CanvasRenderer(animationItem, config){\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n className: (config && config.className) || ''\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1\r\n };\r\n this.contextData = {\r\n saved : Array.apply(null,{length:15}),\r\n savedOp: Array.apply(null,{length:15}),\r\n cArrPos : 0,\r\n cTr : new Matrix(),\r\n cO : 1\r\n };\r\n var i, len = 15;\r\n for(i=0;ielementRel && fillType === 'meet' || animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr;\r\n } else if(xPos === 'xMax' && ((animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if(yPos === 'YMid' && ((animationRel>elementRel && fillType==='meet') || (animationRelelementRel && fillType==='meet') || (animationRel= 0; i-=1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function(num){\r\n if((this.renderedFrame == num && this.renderConfig.clearCanvas === true) || this.destroyed || num === null){\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem.firstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n if(this.renderConfig.clearCanvas === true){\r\n this.reset();\r\n this.canvasContext.save();\r\n //this.canvasContext.canvas.width = this.canvasContext.canvas.width;\r\n this.canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w*this.transformCanvas.sx, this.transformCanvas.h*this.transformCanvas.sy);\r\n }else{\r\n this.save();\r\n }\r\n this.ctxTransform(this.transformCanvas.props);\r\n this.canvasContext.beginPath();\r\n this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h);\r\n this.canvasContext.closePath();\r\n this.canvasContext.clip();\r\n\r\n //console.log('--------');\r\n //console.log('NEW: ',num);\r\n var i, len = this.layers.length;\r\n if(!this.completeLayers){\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n for (i = len - 1; i >= 0; i-=1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if(this.renderConfig.clearCanvas !== true){\r\n this.restore();\r\n } else {\r\n this.canvasContext.restore();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function(pos){\r\n var elements = this.elements;\r\n if(elements[pos] || this.layers[pos].ty == 99){\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this,this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function(){\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function(){\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\nCanvasRenderer.prototype.searchExtraCompositions = function(assets){\r\n var i, len = assets.length;\r\n var floatingContainer = document.createElementNS(svgNS,'g');\r\n for(i=0;i= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function(pos){\r\n var perspectiveElem = document.createElement('div');\r\n styleDiv(perspectiveElem);\r\n perspectiveElem.style.width = this.globalData.compSize.w+'px';\r\n perspectiveElem.style.height = this.globalData.compSize.h+'px';\r\n perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = \"50% 50%\";\r\n var container = document.createElement('div');\r\n styleDiv(container);\r\n container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveElem.appendChild(container);\r\n this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container:container,\r\n perspectiveElem:perspectiveElem,\r\n startPos: pos,\r\n endPos: pos\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function(){\r\n var i, len = this.layers.length;\r\n var lastThreeDContainerData;\r\n for(i=0;ielementRel){\r\n sx = elementWidth/(this.globalData.compSize.w);\r\n sy = elementWidth/(this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2);\r\n }else{\r\n sx = elementHeight/(this.globalData.compSize.h);\r\n sy = elementHeight/(this.globalData.compSize.h);\r\n tx = (elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2;\r\n ty = 0;\r\n }\r\n this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function(){\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function(){\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function(){\r\n this.buildAllItems();\r\n if(this.camera){\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i, len = this.threeDElements.length;\r\n for(i=0;i= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n if(this.data.hasMask){\r\n this.globalData.renderer.restore(true);\r\n }\r\n if(this.firstFrame){\r\n this.firstFrame = false;\r\n }\r\n this.parentGlobalData.renderer.save();\r\n this.parentGlobalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.parentGlobalData.renderer.ctxOpacity(this.finalTransform.opacity);\r\n this.parentGlobalData.renderer.canvasContext.drawImage(this.canvas,0,0,this.data.w,this.data.h);\r\n this.parentGlobalData.renderer.restore();\r\n\r\n if(this.globalData.mdf){\r\n this.reset();\r\n }\r\n};\r\n\r\nCVCompElement.prototype.setElements = function(elems){\r\n this.elements = elems;\r\n};\r\n\r\nCVCompElement.prototype.getElements = function(){\r\n return this.elements;\r\n};\r\n\r\nCVCompElement.prototype.destroy = function(){\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n this.elements[i].destroy();\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n this._parent.destroy.call(this._parent);\r\n};\r\nCVCompElement.prototype.checkLayers = CanvasRenderer.prototype.checkLayers;\r\nCVCompElement.prototype.buildItem = CanvasRenderer.prototype.buildItem;\r\nCVCompElement.prototype.checkPendingElements = CanvasRenderer.prototype.checkPendingElements;\r\nCVCompElement.prototype.addPendingElement = CanvasRenderer.prototype.addPendingElement;\r\nCVCompElement.prototype.buildAllItems = CanvasRenderer.prototype.buildAllItems;\r\nCVCompElement.prototype.createItem = CanvasRenderer.prototype.createItem;\r\nCVCompElement.prototype.createImage = CanvasRenderer.prototype.createImage;\r\nCVCompElement.prototype.createComp = CanvasRenderer.prototype.createComp;\r\nCVCompElement.prototype.createSolid = CanvasRenderer.prototype.createSolid;\r\nCVCompElement.prototype.createShape = CanvasRenderer.prototype.createShape;\r\nCVCompElement.prototype.createText = CanvasRenderer.prototype.createText;\r\nCVCompElement.prototype.createBase = CanvasRenderer.prototype.createBase;\r\nCVCompElement.prototype.buildElementParenting = CanvasRenderer.prototype.buildElementParenting;\nfunction CVImageElement(data, comp,globalData){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this._parent.constructor.call(this,data, comp,globalData);\r\n this.globalData.addPendingElement();\r\n}\r\ncreateElement(CVBaseElement, CVImageElement);\r\n\r\nCVImageElement.prototype.createElements = function(){\r\n var imageLoaded = function(){\r\n this.globalData.elementLoaded();\r\n if(this.assetData.w !== this.img.width || this.assetData.h !== this.img.height){\r\n var canvas = document.createElement('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w/this.assetData.h;\r\n var widthCrop, heightCrop;\r\n if(imgRel>canvasRel){\r\n heightCrop = imgH;\r\n widthCrop = heightCrop*canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop/canvasRel;\r\n }\r\n ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h);\r\n this.img = canvas;\r\n }\r\n }.bind(this);\r\n var imageFailed = function(){\r\n this.failed = true;\r\n this.globalData.elementLoaded();\r\n }.bind(this);\r\n\r\n this.img = new Image();\r\n this.img.addEventListener('load', imageLoaded, false);\r\n this.img.addEventListener('error', imageFailed, false);\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.img.src = assetPath;\r\n\r\n this._parent.createElements.call(this);\r\n\r\n};\r\n\r\nCVImageElement.prototype.renderFrame = function(parentMatrix){\r\n if(this.failed){\r\n return;\r\n }\r\n if(this._parent.renderFrame.call(this,parentMatrix)===false){\r\n return;\r\n }\r\n var ctx = this.canvasContext;\r\n this.globalData.renderer.save();\r\n var finalMat = this.finalTransform.mat.props;\r\n this.globalData.renderer.ctxTransform(finalMat);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.opacity);\r\n ctx.drawImage(this.img,0,0);\r\n this.globalData.renderer.restore(this.data.hasMask);\r\n if(this.firstFrame){\r\n this.firstFrame = false;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.destroy = function(){\r\n this.img = null;\r\n this._parent.destroy.call(this._parent);\r\n};\n\r\nfunction CVMaskElement(data,element){\r\n this.data = data;\r\n this.element = element;\r\n this.dynamicProperties = [];\r\n this.masksProperties = this.data.masksProperties;\r\n this.viewData = Array.apply(null,{length:this.masksProperties.length});\r\n var i, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[i],3,this.dynamicProperties,null);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.prepareFrame = function(num){\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], dynamicProperties);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n \r\n ownArrays.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n if(items[i].ty == 'tr'){\r\n groupTransform = data[i].transform;\r\n var mtArr = data[i].transform.mProps.v.props;\r\n groupTransform.matMdf = groupTransform.mProps.mdf;\r\n groupTransform.opMdf = groupTransform.op.mdf;\r\n groupMatrix = groupTransform.mat;\r\n groupMatrix.cloneFromProps(mtArr);\r\n if(parentTransform){\r\n var props = parentTransform.mat.props;\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= data[i].transform.op.v;\r\n groupTransform.matMdf = parentTransform.matMdf ? true : groupTransform.matMdf;\r\n groupTransform.opMdf = parentTransform.opMdf ? true : groupTransform.opMdf;\r\n groupMatrix.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n }else{\r\n groupTransform.opacity = groupTransform.op.o;\r\n }\r\n }else if(items[i].ty == 'sh' || items[i].ty == 'el' || items[i].ty == 'rc' || items[i].ty == 'sr'){\r\n this.renderPath(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'fl'){\r\n this.renderFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'st'){\r\n this.renderStroke(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gr'){\r\n this.renderShape(groupTransform,items[i].it,data[i].it);\r\n }else if(items[i].ty == 'tm'){\r\n //\r\n }\r\n }\r\n if(!isMain){\r\n return;\r\n }\r\n len = this.stylesList.length;\r\n var j, jLen, k, kLen,elems,nodes, renderer = this.globalData.renderer, ctx = this.globalData.canvasContext, type;\r\n renderer.save();\r\n renderer.ctxTransform(this.finalTransform.mat.props);\r\n for(i=0;i lengthPos) {\r\n segments = lengths[i].segments;\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength)/lengths[i].addedLength;\r\n var pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i])\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if(!pt){\r\n pt = shapePath.c ? [shapePath.v[0][0],shapePath.v[0][1]]:[shapePath.v[shapePath._length-1][0],shapePath.v[shapePath._length-1][1]]\r\n }\r\n return pt;\r\n }\r\n\r\n ShapePropertyConstructorFunction.prototype.setGroupProperty = setGroupProperty;\r\n ShapePropertyConstructorFunction.prototype.getValueAtTime = getStaticValueAtTime;\r\n\r\n KeyframedShapePropertyConstructorFunction.prototype.vertices = ShapePropertyConstructorFunction.prototype.vertices;\r\n KeyframedShapePropertyConstructorFunction.prototype.points = ShapePropertyConstructorFunction.prototype.points;\r\n KeyframedShapePropertyConstructorFunction.prototype.inTangents = ShapePropertyConstructorFunction.prototype.inTangents;\r\n KeyframedShapePropertyConstructorFunction.prototype.outTangents = ShapePropertyConstructorFunction.prototype.outTangents;\r\n KeyframedShapePropertyConstructorFunction.prototype.isClosed = ShapePropertyConstructorFunction.prototype.isClosed;\r\n KeyframedShapePropertyConstructorFunction.prototype.pointOnPath = ShapePropertyConstructorFunction.prototype.pointOnPath;\r\n KeyframedShapePropertyConstructorFunction.prototype.setGroupProperty = ShapePropertyConstructorFunction.prototype.setGroupProperty;\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function(elem,data,type, arr, trims){\r\n var prop = propertyGetShapeProp(elem,data,type, arr, trims);\r\n var isAdded = prop.k;\r\n if(data.ix !== undefined){\r\n Object.defineProperty(prop,'propertyIndex',{\r\n get: function(){\r\n return data.ix;\r\n }\r\n })\r\n }\r\n if(type === 3){\r\n searchExpressions(elem,data.pt,prop);\r\n } else if(type === 4){\r\n searchExpressions(elem,data.ks,prop);\r\n }\r\n if(!isAdded && prop.x){\r\n arr.push(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n var propertyGetTextProp = PropertyFactory.getTextSelectorProp;\r\n PropertyFactory.getTextSelectorProp = function(elem, data,arr){\r\n if(data.t === 1){\r\n return new TextExpressionSelectorProp(elem, data,arr);\r\n } else {\r\n return propertyGetTextProp(elem,data,arr);\r\n }\r\n }\r\n}());\nvar ExpressionManager = (function(){\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n\r\n function duplicatePropertyValue(value, mult){\r\n mult = mult || 1;\r\n\r\n if(typeof value === 'number' || value instanceof Number){\r\n return value*mult;\r\n }else if(value.i){\r\n return JSON.parse(JSON.stringify(value));\r\n }else{\r\n var arr = Array.apply(null,{length:value.length});\r\n var i, len = value.length;\r\n for(i=0;i max){\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val/degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val*degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0,0,0,0,0,0];\r\n\r\n function length(arr1,arr2){\r\n if(typeof arr1 === 'number' || arr1 instanceof Number){\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if(!arr2){\r\n arr2 = helperLengthArray;\r\n }\r\n var i,len = Math.min(arr1.length,arr2.length);\r\n var addedLength = 0;\r\n for(i=0;i 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch(max){\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l,val[3]];\r\n }\r\n function hslToRgb(val){\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r, g, b;\r\n\r\n if(s == 0){\r\n r = g = b = l; // achromatic\r\n }else{\r\n function hue2rgb(p, q, t){\r\n if(t < 0) t += 1;\r\n if(t > 1) t -= 1;\r\n if(t < 1/6) return p + (q - p) * 6 * t;\r\n if(t < 1/2) return q;\r\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\r\n return p;\r\n }\r\n\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1/3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1/3);\r\n }\r\n\r\n return [r, g , b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2){\r\n if(value1 === undefined || value2 === undefined){\r\n return linear(t,0,1,tMin,tMax);\r\n }\r\n if(t <= tMin) {\r\n return value1;\r\n }else if(t >= tMax){\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t-tMin)/(tMax-tMin);\r\n if(!value1.length){\r\n return value1 + (value2-value1)*perc;\r\n }\r\n var i, len = value1.length;\r\n var arr = Array.apply( null, { length: len } );\r\n for(i=0;i1){\r\n for(j=0;j=firstKeyFrame){\r\n return this.pv;\r\n }else{\r\n var cycleDuration, lastKeyFrame;\r\n if(!durationFlag){\r\n if(!duration || duration > keyframes.length - 1){\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if(!duration){\r\n cycleDuration = Math.max(0,this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(elem.comp.globalData.frameRate*duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i, len, ret;\r\n if(type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame)/cycleDuration);\r\n if(iterations % 2 === 0){\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame)%cycleDuration + firstKeyFrame) - offsetTime) / this.comp.globalData.frameRate, 0);\r\n }\r\n } else if(type === 'offset'){\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame)%cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame)/cycleDuration)+1;\r\n if(this.pv.length){\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for(i=0;i keyframes.length - 1){\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if(!duration){\r\n cycleDuration = Math.max(0,lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - elem.comp.globalData.frameRate*duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var offsetTime = this.offsetTime || 0;\r\n var i, len, ret;\r\n if(type.toLowerCase() === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);\r\n if(iterations % 2 !== 0){\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) - offsetTime) / this.comp.globalData.frameRate, 0);\r\n }\r\n } else if(type === 'offset'){\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);\r\n if(this.pv.length){\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for(i=0;idata.k[i].t && time data.k[i+1].t - time){\r\n index = i + 2;\r\n keyTime = data.k[i+1].t;\r\n } else {\r\n index = i + 1;\r\n keyTime = data.k[i].t;\r\n }\r\n break;\r\n }\r\n }\r\n if(index === -1){\r\n index = i + 1;\r\n keyTime = data.k[i].t;\r\n }\r\n }\r\n \r\n }\r\n var ob = {};\r\n ob.index = index;\r\n ob.time = keyTime/elem.comp.globalData.frameRate;\r\n return ob;\r\n };\r\n\r\n function key(ind){\r\n var ob, i, len;\r\n if(!data.k.length || typeof(data.k[0]) === 'number'){\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n ob = {\r\n time: data.k[ind].t/elem.comp.globalData.frameRate\r\n };\r\n var arr;\r\n if(ind === data.k.length - 1 && !data.k[ind].h){\r\n arr = data.k[ind-1].e;\r\n }else{\r\n arr = data.k[ind].s;\r\n }\r\n len = arr.length;\r\n for(i=0;i 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case \"propertyFactory\":\r\n return PropertyFactory;\r\n case \"shapePropertyFactory\":\r\n return ShapePropertyFactory;\r\n case \"matrix\":\r\n return Matrix;\r\n }\r\n }\r\n bodymovinjs.play = play;\r\n bodymovinjs.pause = pause;\r\n bodymovinjs.setLocationHref = setLocationHref;\r\n bodymovinjs.togglePause = togglePause;\r\n bodymovinjs.setSpeed = setSpeed;\r\n bodymovinjs.setDirection = setDirection;\r\n bodymovinjs.stop = stop;\r\n bodymovinjs.moveFrame = moveFrame;\r\n bodymovinjs.searchAnimations = searchAnimations;\r\n bodymovinjs.registerAnimation = registerAnimation;\r\n bodymovinjs.loadAnimation = loadAnimation;\r\n bodymovinjs.setSubframeRendering = setSubframeRendering;\r\n bodymovinjs.resize = resize;\r\n bodymovinjs.start = start;\r\n bodymovinjs.goToAndStop = goToAndStop;\r\n bodymovinjs.destroy = destroy;\r\n bodymovinjs.setQuality = setQuality;\r\n bodymovinjs.inBrowser = inBrowser;\r\n bodymovinjs.installPlugin = installPlugin;\r\n bodymovinjs.__getFactory = getFactory;\r\n bodymovinjs.version = '4.12.3';\r\n\r\n function checkReady() {\r\n if (document.readyState === \"complete\") {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n }\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n var queryString = myScript.src.replace(/^[^\\?]+\\??/, '');\r\n renderer = getQueryVariable('renderer');\r\n }\r\n var readyStateCheckInterval = setInterval(checkReady, 100);\r\n return bodymovinjs;\r\n}));"],"mappings":"AAGA;;;;;ACKA;;;;;ACAA;;;;;ACKA;;;;;ACAA;;;;;;;;;ACGA;;;;ACqIA;;;;;;;;AC5IA;;;;;;;;ACGA;;;;;;;;;ACHA;;;;;;;;ACGA;;;;;;;;ACHA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACwXA","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"vendors~main.9de0a314e42e1192fb40.bundle.js","sources":["webpack:///../node_modules/react/index.js","webpack:///../node_modules/object-assign/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/es5-shim/es5-shim.js","webpack:///./node_modules/es5-shim/es5-sham.js","webpack:///./node_modules/es6-shim/es6-shim.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///../node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///../node_modules/react/cjs/react.production.min.js","webpack:///../node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///../node_modules/react-dom/cjs/react-dom-unstable-native-dependencies.production.min.js","webpack:///../node_modules/react-art/cjs/react-art.production.min.js","webpack:///../node_modules/bodymovin/build/player/bodymovin.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js\n(function (root, factory) {\n 'use strict';\n\n /* global define, exports, module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n /**\n * Brings an environment as close to ECMAScript 5 compliance\n * as is possible with the facilities of erstwhile engines.\n *\n * Annotated ES5: http://es5.github.com/ (specific links below)\n * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf\n * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/\n */\n\n // Shortcut to an often accessed properties, in order to avoid multiple\n // dereference that costs universally. This also holds a reference to known-good\n // functions.\n var $Array = Array;\n var ArrayPrototype = $Array.prototype;\n var $Object = Object;\n var ObjectPrototype = $Object.prototype;\n var $Function = Function;\n var FunctionPrototype = $Function.prototype;\n var $String = String;\n var StringPrototype = $String.prototype;\n var $Number = Number;\n var NumberPrototype = $Number.prototype;\n var array_slice = ArrayPrototype.slice;\n var array_splice = ArrayPrototype.splice;\n var array_push = ArrayPrototype.push;\n var array_unshift = ArrayPrototype.unshift;\n var array_concat = ArrayPrototype.concat;\n var array_join = ArrayPrototype.join;\n var call = FunctionPrototype.call;\n var apply = FunctionPrototype.apply;\n var max = Math.max;\n var min = Math.min;\n\n // Having a toString local variable name breaks in Opera so use to_string.\n var to_string = ObjectPrototype.toString;\n\n /* global Symbol */\n /* eslint-disable one-var-declaration-per-line, no-redeclare, max-statements-per-line */\n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, constructorRegex = /^\\s*class /, isES6ClassFn = function isES6ClassFn(value) { try { var fnStr = fnToStr.call(value); var singleStripped = fnStr.replace(/\\/\\/.*\\n/g, ''); var multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, ''); var spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' '); return constructorRegex.test(spaceStripped); } catch (e) { return false; /* not a function */ } }, tryFunctionObject = function tryFunctionObject(value) { try { if (isES6ClassFn(value)) { return false; } fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]', isCallable = function isCallable(value) { if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } if (isES6ClassFn(value)) { return false; } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\n\n var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };\n var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };\n /* eslint-enable one-var-declaration-per-line, no-redeclare, max-statements-per-line */\n\n /* inlined from http://npmjs.com/define-properties */\n var supportsDescriptors = $Object.defineProperty && (function () {\n try {\n var obj = {};\n $Object.defineProperty(obj, 'x', { enumerable: false, value: obj });\n for (var _ in obj) { // jscs:ignore disallowUnusedVariables\n return false;\n }\n return obj.x === obj;\n } catch (e) { /* this is ES3 */\n return false;\n }\n }());\n var defineProperties = (function (has) {\n // Define configurable, writable, and non-enumerable props\n // if they don't exist.\n var defineProperty;\n if (supportsDescriptors) {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) {\n return;\n }\n $Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n } else {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) {\n return;\n }\n object[name] = method;\n };\n }\n return function defineProperties(object, map, forceAssign) {\n for (var name in map) {\n if (has.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n };\n }(ObjectPrototype.hasOwnProperty));\n\n //\n // Util\n // ======\n //\n\n /* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */\n var isPrimitive = function isPrimitive(input) {\n var type = typeof input;\n return input === null || (type !== 'object' && type !== 'function');\n };\n\n var isActualNaN = $Number.isNaN || function isActualNaN(x) {\n return x !== x;\n };\n\n var ES = {\n // ES5 9.4\n // http://es5.github.com/#x9.4\n // http://jsperf.com/to-integer\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */\n ToInteger: function ToInteger(num) {\n var n = +num;\n if (isActualNaN(n)) {\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n ToPrimitive: function ToPrimitive(input) {\n var val, valueOf, toStr;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (isCallable(valueOf)) {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toStr = input.toString;\n if (isCallable(toStr)) {\n val = toStr.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n },\n\n // ES5 9.9\n // http://es5.github.com/#x9.9\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n ToObject: function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return $Object(o);\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n ToUint32: function ToUint32(x) {\n return x >>> 0;\n }\n };\n\n //\n // Function\n // ========\n //\n\n // ES-5 15.3.4.5\n // http://es5.github.com/#x15.3.4.5\n\n var Empty = function Empty() {};\n\n defineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var bound;\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = apply.call(\n target,\n this,\n array_concat.call(args, array_slice.call(arguments))\n );\n if ($Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return apply.call(\n target,\n that,\n array_concat.call(args, array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n });\n\n // _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n // use it in defining shortcuts.\n var owns = call.bind(ObjectPrototype.hasOwnProperty);\n var toStr = call.bind(ObjectPrototype.toString);\n var arraySlice = call.bind(array_slice);\n var arraySliceApply = apply.bind(array_slice);\n /* globals document */\n if (typeof document === 'object' && document && document.documentElement) {\n try {\n arraySlice(document.documentElement.childNodes);\n } catch (e) {\n var origArraySlice = arraySlice;\n var origArraySliceApply = arraySliceApply;\n arraySlice = function arraySliceIE(arr) {\n var r = [];\n var i = arr.length;\n while (i-- > 0) {\n r[i] = arr[i];\n }\n return origArraySliceApply(r, origArraySlice(arguments, 1));\n };\n arraySliceApply = function arraySliceApplyIE(arr, args) {\n return origArraySliceApply(arraySlice(arr), args);\n };\n }\n }\n var strSlice = call.bind(StringPrototype.slice);\n var strSplit = call.bind(StringPrototype.split);\n var strIndexOf = call.bind(StringPrototype.indexOf);\n var pushCall = call.bind(array_push);\n var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable);\n var arraySort = call.bind(ArrayPrototype.sort);\n\n //\n // Array\n // =====\n //\n\n var isArray = $Array.isArray || function isArray(obj) {\n return toStr(obj) === '[object Array]';\n };\n\n // ES5 15.4.4.12\n // http://es5.github.com/#x15.4.4.13\n // Return len+argCount.\n // [bugfix, ielt8]\n // IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\n var hasUnshiftReturnValueBug = [].unshift(0) !== 1;\n defineProperties(ArrayPrototype, {\n unshift: function () {\n array_unshift.apply(this, arguments);\n return this.length;\n }\n }, hasUnshiftReturnValueBug);\n\n // ES5 15.4.3.2\n // http://es5.github.com/#x15.4.3.2\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\n defineProperties($Array, { isArray: isArray });\n\n // The IsCallable() check in the Array functions\n // has been replaced with a strict check on the\n // internal class of the object to trap cases where\n // the provided function was actually a regular\n // expression literal, which in V8 and\n // JavaScriptCore is a typeof \"function\". Only in\n // V8 are regular expression literals permitted as\n // reduce parameters, so it is desirable in the\n // general case for the shim to match the more\n // strict and common behavior of rejecting regular\n // expressions.\n\n // ES5 15.4.4.18\n // http://es5.github.com/#x15.4.4.18\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n\n // Check failure of by-index access of string characters (IE < 9)\n // and failure of `0 in boxedString` (Rhino)\n var boxedString = $Object('a');\n var splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\n var properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n var threwException = false;\n if (method) {\n try {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') {\n properlyBoxesNonStrict = false;\n }\n });\n\n method.call([1], function () {\n 'use strict';\n\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n } catch (e) {\n threwException = true;\n }\n }\n return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict;\n };\n\n defineProperties(ArrayPrototype, {\n forEach: function forEach(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var i = -1;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.forEach callback must be a function');\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n if (typeof T === 'undefined') {\n callbackfn(self[i], i, object);\n } else {\n callbackfn.call(T, self[i], i, object);\n }\n }\n }\n }\n }, !properlyBoxesContext(ArrayPrototype.forEach));\n\n // ES5 15.4.4.19\n // http://es5.github.com/#x15.4.4.19\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\n defineProperties(ArrayPrototype, {\n map: function map(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = $Array(length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.map callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n if (typeof T === 'undefined') {\n result[i] = callbackfn(self[i], i, object);\n } else {\n result[i] = callbackfn.call(T, self[i], i, object);\n }\n }\n }\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.map));\n\n // ES5 15.4.4.20\n // http://es5.github.com/#x15.4.4.20\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\n defineProperties(ArrayPrototype, {\n filter: function filter(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var result = [];\n var value;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.filter callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n pushCall(result, value);\n }\n }\n }\n return result;\n }\n }, !properlyBoxesContext(ArrayPrototype.filter));\n\n // ES5 15.4.4.16\n // http://es5.github.com/#x15.4.4.16\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\n defineProperties(ArrayPrototype, {\n every: function every(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.every callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return false;\n }\n }\n return true;\n }\n }, !properlyBoxesContext(ArrayPrototype.every));\n\n // ES5 15.4.4.17\n // http://es5.github.com/#x15.4.4.17\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\n defineProperties(ArrayPrototype, {\n some: function some(callbackfn/*, thisArg */) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.some callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return true;\n }\n }\n return false;\n }\n }, !properlyBoxesContext(ArrayPrototype.some));\n\n // ES5 15.4.4.21\n // http://es5.github.com/#x15.4.4.21\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\n var reduceCoercesToObject = false;\n if (ArrayPrototype.reduce) {\n reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) {\n return list;\n }) === 'object';\n }\n defineProperties(ArrayPrototype, {\n reduce: function reduce(callbackfn/*, initialValue*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduce callback must be a function');\n }\n\n // no value to return if no initial value and an empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (++i >= length) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n }\n\n return result;\n }\n }, !reduceCoercesToObject);\n\n // ES5 15.4.4.22\n // http://es5.github.com/#x15.4.4.22\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\n var reduceRightCoercesToObject = false;\n if (ArrayPrototype.reduceRight) {\n reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) {\n return list;\n }) === 'object';\n }\n defineProperties(ArrayPrototype, {\n reduceRight: function reduceRight(callbackfn/*, initial*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = ES.ToUint32(self.length);\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduceRight callback must be a function');\n }\n\n // no value to return if no initial value, empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n\n var result;\n var i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (--i < 0) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n } while (true);\n }\n\n if (i < 0) {\n return result;\n }\n\n do {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n }\n }, !reduceRightCoercesToObject);\n\n // ES5 15.4.4.14\n // http://es5.github.com/#x15.4.4.14\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\n var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\n defineProperties(ArrayPrototype, {\n indexOf: function indexOf(searchElement/*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = ES.ToInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === searchElement) {\n return i;\n }\n }\n return -1;\n }\n }, hasFirefox2IndexOfBug);\n\n // ES5 15.4.4.15\n // http://es5.github.com/#x15.4.4.15\n // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\n var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\n defineProperties(ArrayPrototype, {\n lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = ES.ToUint32(self.length);\n\n if (length === 0) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = min(i, ES.ToInteger(arguments[1]));\n }\n // handle negative indices\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && searchElement === self[i]) {\n return i;\n }\n }\n return -1;\n }\n }, hasFirefox2LastIndexOfBug);\n\n // ES5 15.4.4.12\n // http://es5.github.com/#x15.4.4.12\n var spliceNoopReturnsEmptyArray = (function () {\n var a = [1, 2];\n var result = a.splice();\n return a.length === 2 && isArray(result) && result.length === 0;\n }());\n defineProperties(ArrayPrototype, {\n // Safari 5.0 bug where .splice() returns undefined\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n } else {\n return array_splice.apply(this, arguments);\n }\n }\n }, !spliceNoopReturnsEmptyArray);\n\n var spliceWorksWithEmptyObject = (function () {\n var obj = {};\n ArrayPrototype.splice.call(obj, 0, 0, 1);\n return obj.length === 1;\n }());\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n }\n var args = arguments;\n this.length = max(ES.ToInteger(this.length), 0);\n if (arguments.length > 0 && typeof deleteCount !== 'number') {\n args = arraySlice(arguments);\n if (args.length < 2) {\n pushCall(args, this.length - start);\n } else {\n args[1] = ES.ToInteger(deleteCount);\n }\n }\n return array_splice.apply(this, args);\n }\n }, !spliceWorksWithEmptyObject);\n var spliceWorksWithLargeSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n var arr = new $Array(1e5);\n // note: the index MUST be 8 or larger or the test will false pass\n arr[8] = 'x';\n arr.splice(1, 1);\n // note: this test must be defined *after* the indexOf shim\n // per https://github.com/es-shims/es5-shim/issues/313\n return arr.indexOf('x') === 7;\n }());\n var spliceWorksWithSmallSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Opera 12.15 breaks on this, no idea why.\n var n = 256;\n var arr = [];\n arr[n] = 'a';\n arr.splice(n + 1, 0, 'b');\n return arr[n] === 'a';\n }());\n defineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n var O = ES.ToObject(this);\n var A = [];\n var len = ES.ToUint32(O.length);\n var relativeStart = ES.ToInteger(start);\n var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);\n var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n\n var k = 0;\n var from;\n while (k < actualDeleteCount) {\n from = $String(actualStart + k);\n if (owns(O, from)) {\n A[k] = O[from];\n }\n k += 1;\n }\n\n var items = arraySlice(arguments, 2);\n var itemCount = items.length;\n var to;\n if (itemCount < actualDeleteCount) {\n k = actualStart;\n var maxK = len - actualDeleteCount;\n while (k < maxK) {\n from = $String(k + actualDeleteCount);\n to = $String(k + itemCount);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k += 1;\n }\n k = len;\n var minK = len - actualDeleteCount + itemCount;\n while (k > minK) {\n delete O[k - 1];\n k -= 1;\n }\n } else if (itemCount > actualDeleteCount) {\n k = len - actualDeleteCount;\n while (k > actualStart) {\n from = $String(k + actualDeleteCount - 1);\n to = $String(k + itemCount - 1);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k -= 1;\n }\n }\n k = actualStart;\n for (var i = 0; i < items.length; ++i) {\n O[k] = items[i];\n k += 1;\n }\n O.length = len - actualDeleteCount + itemCount;\n\n return A;\n }\n }, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n\n var originalJoin = ArrayPrototype.join;\n var hasStringJoinBug;\n try {\n hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3';\n } catch (e) {\n hasStringJoinBug = true;\n }\n if (hasStringJoinBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep);\n }\n }, hasStringJoinBug);\n }\n\n var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';\n if (hasJoinUndefinedBug) {\n defineProperties(ArrayPrototype, {\n join: function join(separator) {\n var sep = typeof separator === 'undefined' ? ',' : separator;\n return originalJoin.call(this, sep);\n }\n }, hasJoinUndefinedBug);\n }\n\n var pushShim = function push(item) {\n var O = ES.ToObject(this);\n var n = ES.ToUint32(O.length);\n var i = 0;\n while (i < arguments.length) {\n O[n + i] = arguments[i];\n i += 1;\n }\n O.length = n + i;\n return n + i;\n };\n\n var pushIsNotGeneric = (function () {\n var obj = {};\n var result = Array.prototype.push.call(obj, undefined);\n return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);\n }());\n defineProperties(ArrayPrototype, {\n push: function push(item) {\n if (isArray(this)) {\n return array_push.apply(this, arguments);\n }\n return pushShim.apply(this, arguments);\n }\n }, pushIsNotGeneric);\n\n // This fixes a very weird bug in Opera 10.6 when pushing `undefined\n var pushUndefinedIsWeird = (function () {\n var arr = [];\n var result = arr.push(undefined);\n return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);\n }());\n defineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird);\n\n // ES5 15.2.3.14\n // http://es5.github.io/#x15.4.4.10\n // Fix boxed string bug\n defineProperties(ArrayPrototype, {\n slice: function (start, end) {\n var arr = isString(this) ? strSplit(this, '') : this;\n return arraySliceApply(arr, arguments);\n }\n }, splitString);\n\n var sortIgnoresNonFunctions = (function () {\n try {\n [1, 2].sort(null);\n } catch (e) {\n try {\n [1, 2].sort({});\n } catch (e2) {\n return false;\n }\n }\n return true;\n }());\n var sortThrowsOnRegex = (function () {\n // this is a problem in Firefox 4, in which `typeof /a/ === 'function'`\n try {\n [1, 2].sort(/a/);\n return false;\n } catch (e) {}\n return true;\n }());\n var sortIgnoresUndefined = (function () {\n // applies in IE 8, for one.\n try {\n [1, 2].sort(undefined);\n return true;\n } catch (e) {}\n return false;\n }());\n defineProperties(ArrayPrototype, {\n sort: function sort(compareFn) {\n if (typeof compareFn === 'undefined') {\n return arraySort(this);\n }\n if (!isCallable(compareFn)) {\n throw new TypeError('Array.prototype.sort callback must be a function');\n }\n return arraySort(this, compareFn);\n }\n }, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex);\n\n //\n // Object\n // ======\n //\n\n // ES5 15.2.3.14\n // http://es5.github.com/#x15.2.3.14\n\n // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\n var hasDontEnumBug = !isEnum({ 'toString': null }, 'toString'); // jscs:ignore disallowQuotedKeysInObjects\n var hasProtoEnumBug = isEnum(function () {}, 'prototype');\n var hasStringEnumBug = !owns('x', '0');\n var equalsConstructorPrototype = function (o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true,\n\n $width: true,\n $height: true,\n $top: true,\n $localStorage: true\n };\n var hasAutomationEqualityBug = (function () {\n /* globals window */\n if (typeof window === 'undefined') {\n return false;\n }\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {\n equalsConstructorPrototype(window[k]);\n }\n } catch (e) {\n return true;\n }\n }\n return false;\n }());\n var equalsConstructorPrototypeIfNotBuggy = function (object) {\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(object);\n }\n try {\n return equalsConstructorPrototype(object);\n } catch (e) {\n return false;\n }\n };\n var dontEnums = [\n 'toString',\n 'toLocaleString',\n 'valueOf',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'constructor'\n ];\n var dontEnumsLength = dontEnums.length;\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return toStr(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null\n && typeof value === 'object'\n && typeof value.length === 'number'\n && value.length >= 0\n && !isArray(value)\n && isCallable(value.callee);\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n defineProperties($Object, {\n keys: function keys(object) {\n var isFn = isCallable(object);\n var isArgs = isArguments(object);\n var isObject = object !== null && typeof object === 'object';\n var isStr = isObject && isString(object);\n\n if (!isObject && !isFn && !isArgs) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var theKeys = [];\n var skipProto = hasProtoEnumBug && isFn;\n if ((isStr && hasStringEnumBug) || isArgs) {\n for (var i = 0; i < object.length; ++i) {\n pushCall(theKeys, $String(i));\n }\n }\n\n if (!isArgs) {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && owns(object, name)) {\n pushCall(theKeys, $String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n for (var j = 0; j < dontEnumsLength; j++) {\n var dontEnum = dontEnums[j];\n if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n pushCall(theKeys, dontEnum);\n }\n }\n }\n return theKeys;\n }\n });\n\n var keysWorksWithArguments = $Object.keys && (function () {\n // Safari 5.0 bug\n return $Object.keys(arguments).length === 2;\n }(1, 2));\n var keysHasArgumentsLengthBug = $Object.keys && (function () {\n var argKeys = $Object.keys(arguments);\n return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n }(1));\n var originalKeys = $Object.keys;\n defineProperties($Object, {\n keys: function keys(object) {\n if (isArguments(object)) {\n return originalKeys(arraySlice(object));\n } else {\n return originalKeys(object);\n }\n }\n }, !keysWorksWithArguments || keysHasArgumentsLengthBug);\n\n //\n // Date\n // ====\n //\n\n var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0;\n var aNegativeTestDate = new Date(-1509842289600292);\n var aPositiveTestDate = new Date(1449662400000);\n var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT';\n var hasToDateStringFormatBug;\n var hasToStringFormatBug;\n var timeZoneOffset = aNegativeTestDate.getTimezoneOffset();\n if (timeZoneOffset < -720) {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875';\n hasToStringFormatBug = !(/^Thu Dec 10 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/).test(String(aPositiveTestDate));\n } else {\n hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875';\n hasToStringFormatBug = !(/^Wed Dec 09 2015 \\d\\d:\\d\\d:\\d\\d GMT[-+]\\d\\d\\d\\d(?: |$)/).test(String(aPositiveTestDate));\n }\n\n var originalGetFullYear = call.bind(Date.prototype.getFullYear);\n var originalGetMonth = call.bind(Date.prototype.getMonth);\n var originalGetDate = call.bind(Date.prototype.getDate);\n var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear);\n var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth);\n var originalGetUTCDate = call.bind(Date.prototype.getUTCDate);\n var originalGetUTCDay = call.bind(Date.prototype.getUTCDay);\n var originalGetUTCHours = call.bind(Date.prototype.getUTCHours);\n var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes);\n var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds);\n var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds);\n var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n var daysInMonth = function daysInMonth(month, year) {\n return originalGetDate(new Date(year, month, 0));\n };\n\n defineProperties(Date.prototype, {\n getFullYear: function getFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n if (year < 0 && originalGetMonth(this) > 11) {\n return year + 1;\n }\n return year;\n },\n getMonth: function getMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n if (year < 0 && month > 11) {\n return 0;\n }\n return month;\n },\n getDate: function getDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetFullYear(this);\n var month = originalGetMonth(this);\n var date = originalGetDate(this);\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n var days = daysInMonth(0, year + 1);\n return (days - date) + 1;\n }\n return date;\n },\n getUTCFullYear: function getUTCFullYear() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n if (year < 0 && originalGetUTCMonth(this) > 11) {\n return year + 1;\n }\n return year;\n },\n getUTCMonth: function getUTCMonth() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n if (year < 0 && month > 11) {\n return 0;\n }\n return month;\n },\n getUTCDate: function getUTCDate() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var year = originalGetUTCFullYear(this);\n var month = originalGetUTCMonth(this);\n var date = originalGetUTCDate(this);\n if (year < 0 && month > 11) {\n if (month === 12) {\n return date;\n }\n var days = daysInMonth(0, year + 1);\n return (days - date) + 1;\n }\n return date;\n }\n }, hasNegativeMonthYearBug);\n\n defineProperties(Date.prototype, {\n toUTCString: function toUTCString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = originalGetUTCDay(this);\n var date = originalGetUTCDate(this);\n var month = originalGetUTCMonth(this);\n var year = originalGetUTCFullYear(this);\n var hour = originalGetUTCHours(this);\n var minute = originalGetUTCMinutes(this);\n var second = originalGetUTCSeconds(this);\n return dayName[day] + ', '\n + (date < 10 ? '0' + date : date) + ' '\n + monthName[month] + ' '\n + year + ' '\n + (hour < 10 ? '0' + hour : hour) + ':'\n + (minute < 10 ? '0' + minute : minute) + ':'\n + (second < 10 ? '0' + second : second) + ' GMT';\n }\n }, hasNegativeMonthYearBug || hasToUTCStringFormatBug);\n\n // Opera 12 has `,`\n defineProperties(Date.prototype, {\n toDateString: function toDateString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n return dayName[day] + ' '\n + monthName[month] + ' '\n + (date < 10 ? '0' + date : date) + ' '\n + year;\n }\n }, hasNegativeMonthYearBug || hasToDateStringFormatBug);\n\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n if (hasNegativeMonthYearBug || hasToStringFormatBug) {\n Date.prototype.toString = function toString() {\n if (!this || !(this instanceof Date)) {\n throw new TypeError('this is not a Date object.');\n }\n var day = this.getDay();\n var date = this.getDate();\n var month = this.getMonth();\n var year = this.getFullYear();\n var hour = this.getHours();\n var minute = this.getMinutes();\n var second = this.getSeconds();\n var timezoneOffset = this.getTimezoneOffset();\n var hoursOffset = Math.floor(Math.abs(timezoneOffset) / 60);\n var minutesOffset = Math.floor(Math.abs(timezoneOffset) % 60);\n return dayName[day] + ' '\n + monthName[month] + ' '\n + (date < 10 ? '0' + date : date) + ' '\n + year + ' '\n + (hour < 10 ? '0' + hour : hour) + ':'\n + (minute < 10 ? '0' + minute : minute) + ':'\n + (second < 10 ? '0' + second : second) + ' GMT'\n + (timezoneOffset > 0 ? '-' : '+')\n + (hoursOffset < 10 ? '0' + hoursOffset : hoursOffset)\n + (minutesOffset < 10 ? '0' + minutesOffset : minutesOffset);\n };\n if (supportsDescriptors) {\n $Object.defineProperty(Date.prototype, 'toString', {\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n }\n\n // ES5 15.9.5.43\n // http://es5.github.com/#x15.9.5.43\n // This function returns a String value represent the instance in time\n // represented by this Date object. The format of the String is the Date Time\n // string format defined in 15.9.1.15. All fields are present in the String.\n // The time zone is always UTC, denoted by the suffix Z. If the time value of\n // this object is not a finite Number a RangeError exception is thrown.\n var negativeDate = -62198755200000;\n var negativeYearString = '-000001';\n var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1; // eslint-disable-line max-len\n var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n\n var getTime = call.bind(Date.prototype.getTime);\n\n defineProperties(Date.prototype, {\n toISOString: function toISOString() {\n if (!isFinite(this) || !isFinite(getTime(this))) {\n // Adope Photoshop requires the second check.\n throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n }\n\n var year = originalGetUTCFullYear(this);\n\n var month = originalGetUTCMonth(this);\n // see https://github.com/es-shims/es5-shim/issues/111\n year += Math.floor(month / 12);\n month = ((month % 12) + 12) % 12;\n\n // the date time string format is specified in 15.9.1.15.\n var result = [\n month + 1,\n originalGetUTCDate(this),\n originalGetUTCHours(this),\n originalGetUTCMinutes(this),\n originalGetUTCSeconds(this)\n ];\n year = (\n (year < 0 ? '-' : (year > 9999 ? '+' : ''))\n + strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)\n );\n\n for (var i = 0; i < result.length; ++i) {\n // pad months, days, hours, minutes, and seconds to have two digits.\n result[i] = strSlice('00' + result[i], -2);\n }\n // pad milliseconds to have three digits.\n return (\n year + '-' + arraySlice(result, 0, 2).join('-')\n + 'T' + arraySlice(result, 2).join(':') + '.'\n + strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z'\n );\n }\n }, hasNegativeDateBug || hasSafari51DateBug);\n\n // ES5 15.9.5.44\n // http://es5.github.com/#x15.9.5.44\n // This function provides a String representation of a Date object for use by\n // JSON.stringify (15.12.3).\n var dateToJSONIsSupported = (function () {\n try {\n return Date.prototype.toJSON\n && new Date(NaN).toJSON() === null\n && new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1\n && Date.prototype.toJSON.call({ // generic\n toISOString: function () { return true; }\n });\n } catch (e) {\n return false;\n }\n }());\n if (!dateToJSONIsSupported) {\n Date.prototype.toJSON = function toJSON(key) {\n // When the toJSON method is called with argument key, the following\n // steps are taken:\n\n // 1. Let O be the result of calling ToObject, giving it the this\n // value as its argument.\n // 2. Let tv be ES.ToPrimitive(O, hint Number).\n var O = $Object(this);\n var tv = ES.ToPrimitive(O);\n // 3. If tv is a Number and is not finite, return null.\n if (typeof tv === 'number' && !isFinite(tv)) {\n return null;\n }\n // 4. Let toISO be the result of calling the [[Get]] internal method of\n // O with argument \"toISOString\".\n var toISO = O.toISOString;\n // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n if (!isCallable(toISO)) {\n throw new TypeError('toISOString property is not callable');\n }\n // 6. Return the result of calling the [[Call]] internal method of\n // toISO with O as the this value and an empty argument list.\n return toISO.call(O);\n\n // NOTE 1 The argument is ignored.\n\n // NOTE 2 The toJSON function is intentionally generic; it does not\n // require that its this value be a Date object. Therefore, it can be\n // transferred to other kinds of objects for use as a method. However,\n // it does require that any such object have a toISOString method. An\n // object is free to use the argument key to filter its\n // stringification.\n };\n }\n\n // ES5 15.9.4.2\n // http://es5.github.com/#x15.9.4.2\n // based on work shared by Daniel Friesen (dantman)\n // http://gist.github.com/303249\n var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\n var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\n var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\n if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n // XXX global assignment won't work in embeddings that use\n // an alternate object for the context.\n /* global Date: true */\n var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1;\n var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime());\n // eslint-disable-next-line no-implicit-globals, no-global-assign\n Date = (function (NativeDate) {\n // Date.length === 7\n var DateShim = function Date(Y, M, D, h, m, s, ms) {\n var length = arguments.length;\n var date;\n if (this instanceof NativeDate) {\n var seconds = s;\n var millis = ms;\n if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = Math.floor(msToShift / 1e3);\n seconds += sToShift;\n millis -= sToShift * 1e3;\n }\n date = length === 1 && $String(Y) === Y // isString(Y)\n // We explicitly pass it through parse:\n ? new NativeDate(DateShim.parse(Y))\n // We have to manually make calls depending on argument\n // length here\n : length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis)\n : length >= 6 ? new NativeDate(Y, M, D, h, m, seconds)\n : length >= 5 ? new NativeDate(Y, M, D, h, m)\n : length >= 4 ? new NativeDate(Y, M, D, h)\n : length >= 3 ? new NativeDate(Y, M, D)\n : length >= 2 ? new NativeDate(Y, M)\n : length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y)\n : new NativeDate();\n } else {\n date = NativeDate.apply(this, arguments);\n }\n if (!isPrimitive(date)) {\n // Prevent mixups with unfixed Date object\n defineProperties(date, { constructor: DateShim }, true);\n }\n return date;\n };\n\n // 15.9.1.15 Date Time String Format.\n var isoDateExpression = new RegExp('^'\n + '(\\\\d{4}|[+-]\\\\d{6})' // four-digit year capture or sign + 6-digit extended year\n + '(?:-(\\\\d{2})' // optional month capture\n + '(?:-(\\\\d{2})' // optional day capture\n + '(?:' // capture hours:minutes:seconds.milliseconds\n + 'T(\\\\d{2})' // hours capture\n + ':(\\\\d{2})' // minutes capture\n + '(?:' // optional :seconds.milliseconds\n + ':(\\\\d{2})' // seconds capture\n + '(?:(\\\\.\\\\d{1,}))?' // milliseconds capture\n + ')?'\n + '(' // capture UTC offset component\n + 'Z|' // UTC capture\n + '(?:' // offset specifier +/-hours:minutes\n + '([-+])' // sign capture\n + '(\\\\d{2})' // hours offset capture\n + ':(\\\\d{2})' // minutes offset capture\n + ')'\n + ')?)?)?)?'\n + '$');\n\n var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n var dayFromMonth = function dayFromMonth(year, month) {\n var t = month > 1 ? 1 : 0;\n return (\n months[month]\n + Math.floor((year - 1969 + t) / 4)\n - Math.floor((year - 1901 + t) / 100)\n + Math.floor((year - 1601 + t) / 400)\n + (365 * (year - 1970))\n );\n };\n\n var toUTC = function toUTC(t) {\n var s = 0;\n var ms = t;\n if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {\n // work around a Safari 8/9 bug where it treats the seconds as signed\n var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n var sToShift = Math.floor(msToShift / 1e3);\n s += sToShift;\n ms -= sToShift * 1e3;\n }\n return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));\n };\n\n // Copy any custom methods a 3rd party library may have added\n for (var key in NativeDate) {\n if (owns(NativeDate, key)) {\n DateShim[key] = NativeDate[key];\n }\n }\n\n // Copy \"native\" methods explicitly; they may be non-enumerable\n defineProperties(DateShim, {\n now: NativeDate.now,\n UTC: NativeDate.UTC\n }, true);\n DateShim.prototype = NativeDate.prototype;\n defineProperties(DateShim.prototype, { constructor: DateShim }, true);\n\n // Upgrade Date.parse to handle simplified ISO 8601 strings\n var parseShim = function parse(string) {\n var match = isoDateExpression.exec(string);\n if (match) {\n // parse months, days, hours, minutes, seconds, and milliseconds\n // provide default values if necessary\n // parse the UTC offset component\n var year = $Number(match[1]),\n month = $Number(match[2] || 1) - 1,\n day = $Number(match[3] || 1) - 1,\n hour = $Number(match[4] || 0),\n minute = $Number(match[5] || 0),\n second = $Number(match[6] || 0),\n millisecond = Math.floor($Number(match[7] || 0) * 1000),\n // When time zone is missed, local offset should be used\n // (ES 5.1 bug)\n // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n isLocalTime = Boolean(match[4] && !match[8]),\n signOffset = match[9] === '-' ? 1 : -1,\n hourOffset = $Number(match[10] || 0),\n minuteOffset = $Number(match[11] || 0),\n result;\n var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;\n if (\n hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25)\n && minute < 60 && second < 60 && millisecond < 1000\n && month > -1 && month < 12 && hourOffset < 24\n && minuteOffset < 60 // detect invalid offsets\n && day > -1\n && day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month))\n ) {\n result = (\n ((dayFromMonth(year, month) + day) * 24)\n + hour\n + (hourOffset * signOffset)\n ) * 60;\n result = ((\n ((result + minute + (minuteOffset * signOffset)) * 60)\n + second\n ) * 1000) + millisecond;\n if (isLocalTime) {\n result = toUTC(result);\n }\n if (-8.64e15 <= result && result <= 8.64e15) {\n return result;\n }\n }\n return NaN;\n }\n return NativeDate.parse.apply(this, arguments);\n };\n defineProperties(DateShim, { parse: parseShim });\n\n return DateShim;\n }(Date));\n /* global Date: false */\n }\n\n // ES5 15.9.4.4\n // http://es5.github.com/#x15.9.4.4\n if (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n }\n\n //\n // Number\n // ======\n //\n\n // ES5.1 15.7.4.5\n // http://es5.github.com/#x15.7.4.5\n var hasToFixedBugs = NumberPrototype.toFixed && (\n (0.00008).toFixed(3) !== '0.000'\n || (0.9).toFixed(0) !== '1'\n || (1.255).toFixed(2) !== '1.25'\n || (1000000000000000128).toFixed(0) !== '1000000000000000128'\n );\n\n var toFixedHelpers = {\n base: 1e7,\n size: 6,\n data: [0, 0, 0, 0, 0, 0],\n multiply: function multiply(n, c) {\n var i = -1;\n var c2 = c;\n while (++i < toFixedHelpers.size) {\n c2 += n * toFixedHelpers.data[i];\n toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n c2 = Math.floor(c2 / toFixedHelpers.base);\n }\n },\n divide: function divide(n) {\n var i = toFixedHelpers.size;\n var c = 0;\n while (--i >= 0) {\n c += toFixedHelpers.data[i];\n toFixedHelpers.data[i] = Math.floor(c / n);\n c = (c % n) * toFixedHelpers.base;\n }\n },\n numToString: function numToString() {\n var i = toFixedHelpers.size;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n var t = $String(toFixedHelpers.data[i]);\n if (s === '') {\n s = t;\n } else {\n s += strSlice('0000000', 0, 7 - t.length) + t;\n }\n }\n }\n return s;\n },\n pow: function pow(x, n, acc) {\n return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));\n },\n log: function log(x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n }\n return n;\n }\n };\n\n var toFixedShim = function toFixed(fractionDigits) {\n var f, x, s, m, e, z, j, k;\n\n // Test for NaN and round fractionDigits down\n f = $Number(fractionDigits);\n f = isActualNaN(f) ? 0 : Math.floor(f);\n\n if (f < 0 || f > 20) {\n throw new RangeError('Number.toFixed called with invalid number of decimals');\n }\n\n x = $Number(this);\n\n if (isActualNaN(x)) {\n return 'NaN';\n }\n\n // If it is too big or small, return the string value of the number\n if (x <= -1e21 || x >= 1e21) {\n return $String(x);\n }\n\n s = '';\n\n if (x < 0) {\n s = '-';\n x = -x;\n }\n\n m = '0';\n\n if (x > 1e-21) {\n // 1e-21 < x < 1e21\n // -70 < log2(x) < 70\n e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));\n z *= 0x10000000000000; // Math.pow(2, 52);\n e = 52 - e;\n\n // -18 < e < 122\n // x = z / 2 ^ e\n if (e > 0) {\n toFixedHelpers.multiply(0, z);\n j = f;\n\n while (j >= 7) {\n toFixedHelpers.multiply(1e7, 0);\n j -= 7;\n }\n\n toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n j = e - 1;\n\n while (j >= 23) {\n toFixedHelpers.divide(1 << 23);\n j -= 23;\n }\n\n toFixedHelpers.divide(1 << j);\n toFixedHelpers.multiply(1, 1);\n toFixedHelpers.divide(2);\n m = toFixedHelpers.numToString();\n } else {\n toFixedHelpers.multiply(0, z);\n toFixedHelpers.multiply(1 << (-e), 0);\n m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n }\n }\n\n if (f > 0) {\n k = m.length;\n\n if (k <= f) {\n m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n } else {\n m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n }\n } else {\n m = s + m;\n }\n\n return m;\n };\n defineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs);\n\n var hasToPrecisionUndefinedBug = (function () {\n try {\n return 1.0.toPrecision(undefined) === '1';\n } catch (e) {\n return true;\n }\n }());\n var originalToPrecision = NumberPrototype.toPrecision;\n defineProperties(NumberPrototype, {\n toPrecision: function toPrecision(precision) {\n return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision);\n }\n }, hasToPrecisionUndefinedBug);\n\n //\n // String\n // ======\n //\n\n // ES5 15.5.4.14\n // http://es5.github.com/#x15.5.4.14\n\n // [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n // Many browsers do not split properly with regular expressions or they\n // do not perform the split correctly under obscure conditions.\n // See http://blog.stevenlevithan.com/archives/cross-browser-split\n // I've tested in many browsers and this seems to cover the deviant ones:\n // 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n // '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n // 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n // [undefined, \"t\", undefined, \"e\", ...]\n // ''.split(/.?/) should be [], not [\"\"]\n // '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\n if (\n 'ab'.split(/(?:ab)*/).length !== 2\n || '.'.split(/(.?)(.?)/).length !== 4\n || 'tesst'.split(/(s)*/)[1] === 't'\n || 'test'.split(/(?:)/, -1).length !== 4\n || ''.split(/.?/).length\n || '.'.split(/()()/).length > 1\n ) {\n (function () {\n var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n var maxSafe32BitInt = Math.pow(2, 32) - 1;\n\n StringPrototype.split = function (separator, limit) {\n var string = String(this);\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (!isRegex(separator)) {\n return strSplit(this, separator, limit);\n }\n\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '')\n + (separator.multiline ? 'm' : '')\n + (separator.unicode ? 'u' : '') // in ES6\n + (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // maxSafe32BitInt\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);\n match = separatorCopy.exec(string);\n while (match) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n pushCall(output, strSlice(string, lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n /* eslint-disable no-loop-func */\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (typeof arguments[i] === 'undefined') {\n match[i] = void 0;\n }\n }\n });\n /* eslint-enable no-loop-func */\n }\n if (match.length > 1 && match.index < string.length) {\n array_push.apply(output, arraySlice(match, 1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= splitLimit) {\n break;\n }\n }\n if (separatorCopy.lastIndex === match.index) {\n separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n match = separatorCopy.exec(string);\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) {\n pushCall(output, '');\n }\n } else {\n pushCall(output, strSlice(string, lastLastIndex));\n }\n return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output;\n };\n }());\n\n // [bugfix, chrome]\n // If separator is undefined, then the result array contains just one String,\n // which is the this value (converted to a String). If limit is not undefined,\n // then the output array is truncated so that it contains no more than limit\n // elements.\n // \"0\".split(undefined, 0) -> []\n } else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n return strSplit(this, separator, limit);\n };\n }\n\n var str_replace = StringPrototype.replace;\n var replaceReportsGroupsCorrectly = (function () {\n var groups = [];\n 'x'.replace(/x(.)?/g, function (match, group) {\n pushCall(groups, group);\n });\n return groups.length === 1 && typeof groups[0] === 'undefined';\n }());\n\n if (!replaceReportsGroupsCorrectly) {\n StringPrototype.replace = function replace(searchValue, replaceValue) {\n var isFn = isCallable(replaceValue);\n var hasCapturingGroups = isRegex(searchValue) && (/\\)[*?]/).test(searchValue.source);\n if (!isFn || !hasCapturingGroups) {\n return str_replace.call(this, searchValue, replaceValue);\n } else {\n var wrappedReplaceValue = function (match) {\n var length = arguments.length;\n var originalLastIndex = searchValue.lastIndex;\n searchValue.lastIndex = 0;\n var args = searchValue.exec(match) || [];\n searchValue.lastIndex = originalLastIndex;\n pushCall(args, arguments[length - 2], arguments[length - 1]);\n return replaceValue.apply(this, args);\n };\n return str_replace.call(this, searchValue, wrappedReplaceValue);\n }\n };\n }\n\n // ECMA-262, 3rd B.2.3\n // Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n // non-normative section suggesting uniform semantics and it should be\n // normalized across all browsers\n // [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\n var string_substr = StringPrototype.substr;\n var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\n defineProperties(StringPrototype, {\n substr: function substr(start, length) {\n var normalizedStart = start;\n if (start < 0) {\n normalizedStart = max(this.length + start, 0);\n }\n return string_substr.call(this, normalizedStart, length);\n }\n }, hasNegativeSubstrBug);\n\n // ES5 15.5.4.20\n // whitespace from: http://es5.github.io/#x15.5.4.20\n var ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003'\n + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028'\n + '\\u2029\\uFEFF';\n var zeroWidth = '\\u200b';\n var wsRegexChars = '[' + ws + ']';\n var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\n var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\n var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\n defineProperties(StringPrototype, {\n // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n trim: function trim() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n }\n }, hasTrimWhitespaceBug);\n var trim = call.bind(String.prototype.trim);\n\n var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n var S = $String(this);\n var searchStr = $String(searchString);\n var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;\n var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);\n var start = min(max(pos, 0), S.length);\n var searchLen = searchStr.length;\n var k = start + searchLen;\n while (k > 0) {\n k = max(0, k - searchLen);\n var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);\n if (index !== -1) {\n return k + index;\n }\n }\n return -1;\n }\n }, hasLastIndexBug);\n\n var originalLastIndexOf = StringPrototype.lastIndexOf;\n defineProperties(StringPrototype, {\n lastIndexOf: function lastIndexOf(searchString) {\n return originalLastIndexOf.apply(this, arguments);\n }\n }, StringPrototype.lastIndexOf.length !== 1);\n\n // ES-5 15.1.2.2\n // eslint-disable-next-line radix\n if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {\n /* global parseInt: true */\n parseInt = (function (origParseInt) {\n var hexRegex = /^[-+]?0[xX]/;\n return function parseInt(str, radix) {\n if (typeof str === 'symbol') {\n // handle Symbols in node 8.3/8.4\n // eslint-disable-next-line no-implicit-coercion, no-unused-expressions\n '' + str; // jscs:ignore disallowImplicitTypeConversion\n }\n\n var string = trim(String(str));\n var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n return origParseInt(string, defaultedRadix);\n };\n }(parseInt));\n }\n\n // https://es5.github.io/#x15.1.2.3\n if (1 / parseFloat('-0') !== -Infinity) {\n /* global parseFloat: true */\n parseFloat = (function (origParseFloat) {\n return function parseFloat(string) {\n var inputString = trim(String(string));\n var result = origParseFloat(inputString);\n return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result;\n };\n }(parseFloat));\n }\n\n if (String(new RangeError('test')) !== 'RangeError: test') {\n var errorToStringShim = function toString() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n var name = this.name;\n if (typeof name === 'undefined') {\n name = 'Error';\n } else if (typeof name !== 'string') {\n name = $String(name);\n }\n var msg = this.message;\n if (typeof msg === 'undefined') {\n msg = '';\n } else if (typeof msg !== 'string') {\n msg = $String(msg);\n }\n if (!name) {\n return msg;\n }\n if (!msg) {\n return name;\n }\n return name + ': ' + msg;\n };\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n Error.prototype.toString = errorToStringShim;\n }\n\n if (supportsDescriptors) {\n var ensureNonEnumerable = function (obj, prop) {\n if (isEnum(obj, prop)) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop);\n if (desc.configurable) {\n desc.enumerable = false;\n Object.defineProperty(obj, prop, desc);\n }\n }\n };\n ensureNonEnumerable(Error.prototype, 'message');\n if (Error.prototype.message !== '') {\n Error.prototype.message = '';\n }\n ensureNonEnumerable(Error.prototype, 'name');\n }\n\n if (String(/a/mig) !== '/a/gim') {\n var regexToString = function toString() {\n var str = '/' + this.source + '/';\n if (this.global) {\n str += 'g';\n }\n if (this.ignoreCase) {\n str += 'i';\n }\n if (this.multiline) {\n str += 'm';\n }\n return str;\n };\n // can't use defineProperties here because of toString enumeration issue in IE <= 8\n RegExp.prototype.toString = regexToString;\n }\n}));\n","/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js\n(function (root, factory) {\n 'use strict';\n\n /* global define, exports, module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n\n var call = Function.call;\n var prototypeOfObject = Object.prototype;\n var owns = call.bind(prototypeOfObject.hasOwnProperty);\n var isEnumerable = call.bind(prototypeOfObject.propertyIsEnumerable);\n var toStr = call.bind(prototypeOfObject.toString);\n\n // If JS engine supports accessors creating shortcuts.\n var defineGetter;\n var defineSetter;\n var lookupGetter;\n var lookupSetter;\n var supportsAccessors = owns(prototypeOfObject, '__defineGetter__');\n if (supportsAccessors) {\n /* eslint-disable no-underscore-dangle, no-restricted-properties */\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n /* eslint-enable no-underscore-dangle, no-restricted-properties */\n }\n\n var isPrimitive = function isPrimitive(o) {\n return o == null || (typeof o !== 'object' && typeof o !== 'function');\n };\n\n // ES5 15.2.3.2\n // http://es5.github.com/#x15.2.3.2\n if (!Object.getPrototypeOf) {\n // https://github.com/es-shims/es5-shim/issues#issue/2\n // http://ejohn.org/blog/objectgetprototypeof/\n // recommended by fschaefer on github\n //\n // sure, and webreflection says ^_^\n // ... this will nerever possibly return null\n // ... Opera Mini breaks here with infinite loops\n Object.getPrototypeOf = function getPrototypeOf(object) {\n // eslint-disable-next-line no-proto\n var proto = object.__proto__;\n if (proto || proto === null) {\n return proto;\n } else if (toStr(object.constructor) === '[object Function]') {\n return object.constructor.prototype;\n } else if (object instanceof Object) {\n return prototypeOfObject;\n } else {\n // Correctly return null for Objects created with `Object.create(null)`\n // (shammed or native) or `{ __proto__: null}`. Also returns null for\n // cross-realm objects on browsers that lack `__proto__` support (like\n // IE <11), but that's the best we can do.\n return null;\n }\n };\n }\n\n // ES5 15.2.3.3\n // http://es5.github.com/#x15.2.3.3\n\n var doesGetOwnPropertyDescriptorWork = function doesGetOwnPropertyDescriptorWork(object) {\n try {\n object.sentinel = 0;\n return Object.getOwnPropertyDescriptor(object, 'sentinel').value === 0;\n } catch (exception) {\n return false;\n }\n };\n\n // check whether getOwnPropertyDescriptor works if it's given. Otherwise, shim partially.\n if (Object.defineProperty) {\n var getOwnPropertyDescriptorWorksOnObject = doesGetOwnPropertyDescriptorWork({});\n var getOwnPropertyDescriptorWorksOnDom = typeof document === 'undefined'\n || doesGetOwnPropertyDescriptorWork(document.createElement('div'));\n if (!getOwnPropertyDescriptorWorksOnDom || !getOwnPropertyDescriptorWorksOnObject) {\n var getOwnPropertyDescriptorFallback = Object.getOwnPropertyDescriptor;\n }\n }\n\n if (!Object.getOwnPropertyDescriptor || getOwnPropertyDescriptorFallback) {\n var ERR_NON_OBJECT = 'Object.getOwnPropertyDescriptor called on a non-object: ';\n\n /* eslint-disable no-proto */\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if (isPrimitive(object)) {\n throw new TypeError(ERR_NON_OBJECT + object);\n }\n\n // make a valiant attempt to use the real getOwnPropertyDescriptor\n // for I8's DOM elements.\n if (getOwnPropertyDescriptorFallback) {\n try {\n return getOwnPropertyDescriptorFallback.call(Object, object, property);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n var descriptor;\n\n // If object does not owns property return undefined immediately.\n if (!owns(object, property)) {\n return descriptor;\n }\n\n // If object has a property then it's for sure `configurable`, and\n // probably `enumerable`. Detect enumerability though.\n descriptor = {\n enumerable: isEnumerable(object, property),\n configurable: true\n };\n\n // If JS engine supports accessor properties then property may be a\n // getter or setter.\n if (supportsAccessors) {\n // Unfortunately `__lookupGetter__` will return a getter even\n // if object has own non getter property along with a same named\n // inherited getter. To avoid misbehavior we temporary remove\n // `__proto__` so that `__lookupGetter__` will return getter only\n // if it's owned by an object.\n var prototype = object.__proto__;\n var notPrototypeOfObject = object !== prototypeOfObject;\n // avoid recursion problem, breaking in Opera Mini when\n // Object.getOwnPropertyDescriptor(Object.prototype, 'toString')\n // or any other Object.prototype accessor\n if (notPrototypeOfObject) {\n object.__proto__ = prototypeOfObject;\n }\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n\n if (notPrototypeOfObject) {\n // Once we have getter and setter we can put values back.\n object.__proto__ = prototype;\n }\n\n if (getter || setter) {\n if (getter) {\n descriptor.get = getter;\n }\n if (setter) {\n descriptor.set = setter;\n }\n // If it was accessor property we're done and return here\n // in order to avoid adding `value` to the descriptor.\n return descriptor;\n }\n }\n\n // If we got this far we know that object has an own property that is\n // not an accessor so we set it as a value and return descriptor.\n descriptor.value = object[property];\n descriptor.writable = true;\n return descriptor;\n };\n /* eslint-enable no-proto */\n }\n\n // ES5 15.2.3.4\n // http://es5.github.com/#x15.2.3.4\n if (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n }\n\n // ES5 15.2.3.5\n // http://es5.github.com/#x15.2.3.5\n if (!Object.create) {\n\n // Contributed by Brandon Benvie, October, 2012\n var createEmpty;\n var supportsProto = !({ __proto__: null } instanceof Object);\n // the following produces false positives\n // in Opera Mini => not a reliable check\n // Object.prototype.__proto__ === null\n\n // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n /* global ActiveXObject */\n var shouldUseActiveX = function shouldUseActiveX() {\n // return early if document.domain not set\n if (!document.domain) {\n return false;\n }\n\n try {\n return !!new ActiveXObject('htmlfile');\n } catch (exception) {\n return false;\n }\n };\n\n // This supports IE8 when document.domain is used\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n var getEmptyViaActiveX = function getEmptyViaActiveX() {\n var empty;\n var xDoc;\n\n xDoc = new ActiveXObject('htmlfile');\n\n var script = 'script';\n xDoc.write('<' + script + '>');\n xDoc.close();\n\n empty = xDoc.parentWindow.Object.prototype;\n xDoc = null;\n\n return empty;\n };\n\n // The original implementation using an iframe\n // before the activex approach was added\n // see https://github.com/es-shims/es5-shim/issues/150\n var getEmptyViaIFrame = function getEmptyViaIFrame() {\n var iframe = document.createElement('iframe');\n var parent = document.body || document.documentElement;\n var empty;\n\n iframe.style.display = 'none';\n parent.appendChild(iframe);\n // eslint-disable-next-line no-script-url\n iframe.src = 'javascript:';\n\n empty = iframe.contentWindow.Object.prototype;\n parent.removeChild(iframe);\n iframe = null;\n\n return empty;\n };\n\n /* global document */\n if (supportsProto || typeof document === 'undefined') {\n createEmpty = function () {\n return { __proto__: null };\n };\n } else {\n // In old IE __proto__ can't be used to manually set `null`, nor does\n // any other method exist to make an object that inherits from nothing,\n // aside from Object.prototype itself. Instead, create a new global\n // object and *steal* its Object.prototype and strip it bare. This is\n // used as the prototype to create nullary objects.\n createEmpty = function () {\n // Determine which approach to use\n // see https://github.com/es-shims/es5-shim/issues/150\n var empty = shouldUseActiveX() ? getEmptyViaActiveX() : getEmptyViaIFrame();\n\n delete empty.constructor;\n delete empty.hasOwnProperty;\n delete empty.propertyIsEnumerable;\n delete empty.isPrototypeOf;\n delete empty.toLocaleString;\n delete empty.toString;\n delete empty.valueOf;\n\n var Empty = function Empty() {};\n Empty.prototype = empty;\n // short-circuit future calls\n createEmpty = function () {\n return new Empty();\n };\n return new Empty();\n };\n }\n\n Object.create = function create(prototype, properties) {\n\n var object;\n var Type = function Type() {}; // An empty constructor.\n\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (prototype !== null && isPrimitive(prototype)) {\n // In the native implementation `parent` can be `null`\n // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)\n // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`\n // like they are in modern browsers. Using `Object.create` on DOM elements\n // is...err...probably inappropriate, but the native version allows for it.\n throw new TypeError('Object prototype may only be an Object or null'); // same msg as Chrome\n }\n Type.prototype = prototype;\n object = new Type();\n // IE has no built-in implementation of `Object.getPrototypeOf`\n // neither `__proto__`, but this manually setting `__proto__` will\n // guarantee that `Object.getPrototypeOf` will work as expected with\n // objects created using `Object.create`\n // eslint-disable-next-line no-proto\n object.__proto__ = prototype;\n }\n\n if (properties !== void 0) {\n Object.defineProperties(object, properties);\n }\n\n return object;\n };\n }\n\n // ES5 15.2.3.6\n // http://es5.github.com/#x15.2.3.6\n\n // Patch for WebKit and IE8 standard mode\n // Designed by hax \n // related issue: https://github.com/es-shims/es5-shim/issues#issue/5\n // IE8 Reference:\n // http://msdn.microsoft.com/en-us/library/dd282900.aspx\n // http://msdn.microsoft.com/en-us/library/dd229916.aspx\n // WebKit Bugs:\n // https://bugs.webkit.org/show_bug.cgi?id=36423\n\n var doesDefinePropertyWork = function doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, 'sentinel', {});\n return 'sentinel' in object;\n } catch (exception) {\n return false;\n }\n };\n\n // check whether defineProperty works if it's given. Otherwise,\n // shim partially.\n if (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document === 'undefined'\n || doesDefinePropertyWork(document.createElement('div'));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty,\n definePropertiesFallback = Object.defineProperties;\n }\n }\n\n if (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = 'Property description must be an object: ';\n var ERR_NON_OBJECT_TARGET = 'Object.defineProperty called on non-object: ';\n var ERR_ACCESSORS_NOT_SUPPORTED = 'getters & setters can not be defined on this javascript engine';\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if (isPrimitive(object)) {\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n }\n if (isPrimitive(descriptor)) {\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n }\n // make a valiant attempt to use the real defineProperty\n // for I8's DOM elements.\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n // If it's a data property.\n if ('value' in descriptor) {\n // fail silently if 'writable', 'enumerable', or 'configurable'\n // are requested but not supported\n /*\n // alternate approach:\n if ( // can't implement these features; allow false but not true\n ('writable' in descriptor && !descriptor.writable) ||\n ('enumerable' in descriptor && !descriptor.enumerable) ||\n ('configurable' in descriptor && !descriptor.configurable)\n ))\n throw new RangeError(\n 'This implementation of Object.defineProperty does not support configurable, enumerable, or writable.'\n );\n */\n\n if (supportsAccessors && (lookupGetter(object, property) || lookupSetter(object, property))) {\n // As accessors are supported only on engines implementing\n // `__proto__` we can safely override `__proto__` while defining\n // a property to make sure that we don't hit an inherited\n // accessor.\n /* eslint-disable no-proto */\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n // Deleting a property anyway since getter / setter may be\n // defined on object itself.\n delete object[property];\n object[property] = descriptor.value;\n // Setting original `__proto__` back now.\n object.__proto__ = prototype;\n /* eslint-enable no-proto */\n } else {\n object[property] = descriptor.value;\n }\n } else {\n var hasGetter = 'get' in descriptor;\n var hasSetter = 'set' in descriptor;\n if (!supportsAccessors && (hasGetter || hasSetter)) {\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n }\n // If we got that far then getters and setters can be defined !!\n if (hasGetter) {\n defineGetter(object, property, descriptor.get);\n }\n if (hasSetter) {\n defineSetter(object, property, descriptor.set);\n }\n }\n return object;\n };\n }\n\n // ES5 15.2.3.7\n // http://es5.github.com/#x15.2.3.7\n if (!Object.defineProperties || definePropertiesFallback) {\n Object.defineProperties = function defineProperties(object, properties) {\n // make a valiant attempt to use the real defineProperties\n if (definePropertiesFallback) {\n try {\n return definePropertiesFallback.call(Object, object, properties);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n Object.keys(properties).forEach(function (property) {\n if (property !== '__proto__') {\n Object.defineProperty(object, property, properties[property]);\n }\n });\n return object;\n };\n }\n\n // ES5 15.2.3.8\n // http://es5.github.com/#x15.2.3.8\n if (!Object.seal) {\n Object.seal = function seal(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.seal can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // ES5 15.2.3.9\n // http://es5.github.com/#x15.2.3.9\n if (!Object.freeze) {\n Object.freeze = function freeze(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.freeze can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // detect a Rhino bug and patch it\n try {\n Object.freeze(function () {});\n } catch (exception) {\n Object.freeze = (function (freezeObject) {\n return function freeze(object) {\n if (typeof object === 'function') {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n }(Object.freeze));\n }\n\n // ES5 15.2.3.10\n // http://es5.github.com/#x15.2.3.10\n if (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.preventExtensions can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n }\n\n // ES5 15.2.3.11\n // http://es5.github.com/#x15.2.3.11\n if (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isSealed can only be called on Objects.');\n }\n return false;\n };\n }\n\n // ES5 15.2.3.12\n // http://es5.github.com/#x15.2.3.12\n if (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isFrozen can only be called on Objects.');\n }\n return false;\n };\n }\n\n // ES5 15.2.3.13\n // http://es5.github.com/#x15.2.3.13\n if (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n // 1. If Type(O) is not Object throw a TypeError exception.\n if (Object(object) !== object) {\n throw new TypeError('Object.isExtensible can only be called on Objects.');\n }\n // 2. Return the Boolean value of the [[Extensible]] internal property of O.\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n }\n\n}));\n"," /*!\n * https://github.com/paulmillr/es6-shim\n * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)\n * and contributors, MIT License\n * es6-shim: v0.35.1\n * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE\n * Details and documentation:\n * https://github.com/paulmillr/es6-shim/\n */\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n /*global define, module, exports */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n 'use strict';\n\n var _apply = Function.call.bind(Function.apply);\n var _call = Function.call.bind(Function.call);\n var isArray = Array.isArray;\n var keys = Object.keys;\n\n var not = function notThunker(func) {\n return function notThunk() {\n return !_apply(func, this, arguments);\n };\n };\n var throwsError = function (func) {\n try {\n func();\n return false;\n } catch (e) {\n return true;\n }\n };\n var valueOrFalseIfThrows = function valueOrFalseIfThrows(func) {\n try {\n return func();\n } catch (e) {\n return false;\n }\n };\n\n var isCallableWithoutNew = not(throwsError);\n var arePropertyDescriptorsSupported = function () {\n // if Object.defineProperty exists but throws, it's IE 8\n return !throwsError(function () {\n Object.defineProperty({}, 'x', { get: function () {} });\n });\n };\n var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();\n var functionsHaveNames = (function foo() {}).name === 'foo'; // eslint-disable-line no-extra-parens\n\n var _forEach = Function.call.bind(Array.prototype.forEach);\n var _reduce = Function.call.bind(Array.prototype.reduce);\n var _filter = Function.call.bind(Array.prototype.filter);\n var _some = Function.call.bind(Array.prototype.some);\n\n var defineProperty = function (object, name, value, force) {\n if (!force && name in object) { return; }\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n // Define configurable, writable and non-enumerable props\n // if they don’t exist.\n var defineProperties = function (object, map, forceOverride) {\n _forEach(keys(map), function (name) {\n var method = map[name];\n defineProperty(object, name, method, !!forceOverride);\n });\n };\n\n var _toString = Function.call.bind(Object.prototype.toString);\n var isCallable = typeof /abc/ === 'function' ? function IsCallableSlow(x) {\n // Some old browsers (IE, FF) say that typeof /abc/ === 'function'\n return typeof x === 'function' && _toString(x) === '[object Function]';\n } : function IsCallableFast(x) { return typeof x === 'function'; };\n\n var Value = {\n getter: function (object, name, getter) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n get: getter\n });\n },\n proxy: function (originalObject, key, targetObject) {\n if (!supportsDescriptors) {\n throw new TypeError('getters require true ES5 support');\n }\n var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);\n Object.defineProperty(targetObject, key, {\n configurable: originalDescriptor.configurable,\n enumerable: originalDescriptor.enumerable,\n get: function getKey() { return originalObject[key]; },\n set: function setKey(value) { originalObject[key] = value; }\n });\n },\n redefine: function (object, property, newValue) {\n if (supportsDescriptors) {\n var descriptor = Object.getOwnPropertyDescriptor(object, property);\n descriptor.value = newValue;\n Object.defineProperty(object, property, descriptor);\n } else {\n object[property] = newValue;\n }\n },\n defineByDescriptor: function (object, property, descriptor) {\n if (supportsDescriptors) {\n Object.defineProperty(object, property, descriptor);\n } else if ('value' in descriptor) {\n object[property] = descriptor.value;\n }\n },\n preserveToString: function (target, source) {\n if (source && isCallable(source.toString)) {\n defineProperty(target, 'toString', source.toString.bind(source), true);\n }\n }\n };\n\n // Simple shim for Object.create on ES3 browsers\n // (unlike real shim, no attempt to support `prototype === null`)\n var create = Object.create || function (prototype, properties) {\n var Prototype = function Prototype() {};\n Prototype.prototype = prototype;\n var object = new Prototype();\n if (typeof properties !== 'undefined') {\n keys(properties).forEach(function (key) {\n Value.defineByDescriptor(object, key, properties[key]);\n });\n }\n return object;\n };\n\n var supportsSubclassing = function (C, f) {\n if (!Object.setPrototypeOf) { return false; /* skip test on IE < 11 */ }\n return valueOrFalseIfThrows(function () {\n var Sub = function Subclass(arg) {\n var o = new C(arg);\n Object.setPrototypeOf(o, Subclass.prototype);\n return o;\n };\n Object.setPrototypeOf(Sub, C);\n Sub.prototype = create(C.prototype, {\n constructor: { value: Sub }\n });\n return f(Sub);\n });\n };\n\n var getGlobal = function () {\n /* global self, window, global */\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n };\n\n var globals = getGlobal();\n var globalIsFinite = globals.isFinite;\n var _indexOf = Function.call.bind(String.prototype.indexOf);\n var _arrayIndexOfApply = Function.apply.bind(Array.prototype.indexOf);\n var _concat = Function.call.bind(Array.prototype.concat);\n // var _sort = Function.call.bind(Array.prototype.sort);\n var _strSlice = Function.call.bind(String.prototype.slice);\n var _push = Function.call.bind(Array.prototype.push);\n var _pushApply = Function.apply.bind(Array.prototype.push);\n var _shift = Function.call.bind(Array.prototype.shift);\n var _max = Math.max;\n var _min = Math.min;\n var _floor = Math.floor;\n var _abs = Math.abs;\n var _exp = Math.exp;\n var _log = Math.log;\n var _sqrt = Math.sqrt;\n var _hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n var ArrayIterator; // make our implementation private\n var noop = function () {};\n\n var OrigMap = globals.Map;\n var origMapDelete = OrigMap && OrigMap.prototype['delete'];\n var origMapGet = OrigMap && OrigMap.prototype.get;\n var origMapHas = OrigMap && OrigMap.prototype.has;\n var origMapSet = OrigMap && OrigMap.prototype.set;\n\n var Symbol = globals.Symbol || {};\n var symbolSpecies = Symbol.species || '@@species';\n\n var numberIsNaN = Number.isNaN || function isNaN(value) {\n // NaN !== NaN, but they are identical.\n // NaNs are the only non-reflexive value, i.e., if x !== x,\n // then x is NaN.\n // isNaN is broken: it converts its argument to number, so\n // isNaN('foo') => true\n return value !== value;\n };\n var numberIsFinite = Number.isFinite || function isFinite(value) {\n return typeof value === 'number' && globalIsFinite(value);\n };\n var _sign = isCallable(Math.sign) ? Math.sign : function sign(value) {\n var number = Number(value);\n if (number === 0) { return number; }\n if (numberIsNaN(number)) { return number; }\n return number < 0 ? -1 : 1;\n };\n\n // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n // can be replaced with require('is-arguments') if we ever use a build process instead\n var isStandardArguments = function isArguments(value) {\n return _toString(value) === '[object Arguments]';\n };\n var isLegacyArguments = function isArguments(value) {\n return value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n _toString(value) !== '[object Array]' &&\n _toString(value.callee) === '[object Function]';\n };\n var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\n var Type = {\n primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },\n string: function (x) { return _toString(x) === '[object String]'; },\n regex: function (x) { return _toString(x) === '[object RegExp]'; },\n symbol: function (x) {\n return typeof globals.Symbol === 'function' && typeof x === 'symbol';\n }\n };\n\n var overrideNative = function overrideNative(object, property, replacement) {\n var original = object[property];\n defineProperty(object, property, replacement, true);\n Value.preserveToString(object[property], original);\n };\n\n // eslint-disable-next-line no-restricted-properties\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' && Type.symbol(Symbol());\n\n // This is a private name in the es6 spec, equal to '[Symbol.iterator]'\n // we're going to use an arbitrary _-prefixed name to make our shims\n // work properly with each other, even though we don't have full Iterator\n // support. That is, `Array.from(map.keys())` will work, but we don't\n // pretend to export a \"real\" Iterator interface.\n var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';\n // Firefox ships a partial implementation using the name @@iterator.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14\n // So use that name if we detect it.\n if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {\n $iterator$ = '@@iterator';\n }\n\n // Reflect\n if (!globals.Reflect) {\n defineProperty(globals, 'Reflect', {}, true);\n }\n var Reflect = globals.Reflect;\n\n var $String = String;\n\n /* global document */\n var domAll = (typeof document === 'undefined' || !document) ? null : document.all;\n /* jshint eqnull:true */\n var isNullOrUndefined = domAll == null ? function isNullOrUndefined(x) {\n /* jshint eqnull:true */\n return x == null;\n } : function isNullOrUndefinedAndNotDocumentAll(x) {\n /* jshint eqnull:true */\n return x == null && x !== domAll;\n };\n\n var ES = {\n // http://www.ecma-international.org/ecma-262/6.0/#sec-call\n Call: function Call(F, V) {\n var args = arguments.length > 2 ? arguments[2] : [];\n if (!ES.IsCallable(F)) {\n throw new TypeError(F + ' is not a function');\n }\n return _apply(F, V, args);\n },\n\n RequireObjectCoercible: function (x, optMessage) {\n if (isNullOrUndefined(x)) {\n throw new TypeError(optMessage || 'Cannot call method on ' + x);\n }\n return x;\n },\n\n // This might miss the \"(non-standard exotic and does not implement\n // [[Call]])\" case from\n // http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator-runtime-semantics-evaluation\n // but we can't find any evidence these objects exist in practice.\n // If we find some in the future, you could test `Object(x) === x`,\n // which is reliable according to\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n // but is not well optimized by runtimes and creates an object\n // whenever it returns false, and thus is very slow.\n TypeIsObject: function (x) {\n if (x === void 0 || x === null || x === true || x === false) {\n return false;\n }\n return typeof x === 'function' || typeof x === 'object' || x === domAll;\n },\n\n ToObject: function (o, optMessage) {\n return Object(ES.RequireObjectCoercible(o, optMessage));\n },\n\n IsCallable: isCallable,\n\n IsConstructor: function (x) {\n // We can't tell callables from constructors in ES5\n return ES.IsCallable(x);\n },\n\n ToInt32: function (x) {\n return ES.ToNumber(x) >> 0;\n },\n\n ToUint32: function (x) {\n return ES.ToNumber(x) >>> 0;\n },\n\n ToNumber: function (value) {\n if (_toString(value) === '[object Symbol]') {\n throw new TypeError('Cannot convert a Symbol value to a number');\n }\n return +value;\n },\n\n ToInteger: function (value) {\n var number = ES.ToNumber(value);\n if (numberIsNaN(number)) { return 0; }\n if (number === 0 || !numberIsFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * _floor(_abs(number));\n },\n\n ToLength: function (value) {\n var len = ES.ToInteger(value);\n if (len <= 0) { return 0; } // includes converting -0 to +0\n if (len > Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER; }\n return len;\n },\n\n SameValue: function (a, b) {\n if (a === b) {\n // 0 === -0, but they are not identical.\n if (a === 0) { return 1 / a === 1 / b; }\n return true;\n }\n return numberIsNaN(a) && numberIsNaN(b);\n },\n\n SameValueZero: function (a, b) {\n // same as SameValue except for SameValueZero(+0, -0) == true\n return (a === b) || (numberIsNaN(a) && numberIsNaN(b));\n },\n\n IsIterable: function (o) {\n return ES.TypeIsObject(o) && (typeof o[$iterator$] !== 'undefined' || isArguments(o));\n },\n\n GetIterator: function (o) {\n if (isArguments(o)) {\n // special case support for `arguments`\n return new ArrayIterator(o, 'value');\n }\n var itFn = ES.GetMethod(o, $iterator$);\n if (!ES.IsCallable(itFn)) {\n // Better diagnostics if itFn is null or undefined\n throw new TypeError('value is not an iterable');\n }\n var it = ES.Call(itFn, o);\n if (!ES.TypeIsObject(it)) {\n throw new TypeError('bad iterator');\n }\n return it;\n },\n\n GetMethod: function (o, p) {\n var func = ES.ToObject(o)[p];\n if (isNullOrUndefined(func)) {\n return void 0;\n }\n if (!ES.IsCallable(func)) {\n throw new TypeError('Method not callable: ' + p);\n }\n return func;\n },\n\n IteratorComplete: function (iterResult) {\n return !!iterResult.done;\n },\n\n IteratorClose: function (iterator, completionIsThrow) {\n var returnMethod = ES.GetMethod(iterator, 'return');\n if (returnMethod === void 0) {\n return;\n }\n var innerResult, innerException;\n try {\n innerResult = ES.Call(returnMethod, iterator);\n } catch (e) {\n innerException = e;\n }\n if (completionIsThrow) {\n return;\n }\n if (innerException) {\n throw innerException;\n }\n if (!ES.TypeIsObject(innerResult)) {\n throw new TypeError(\"Iterator's return method returned a non-object.\");\n }\n },\n\n IteratorNext: function (it) {\n var result = arguments.length > 1 ? it.next(arguments[1]) : it.next();\n if (!ES.TypeIsObject(result)) {\n throw new TypeError('bad iterator');\n }\n return result;\n },\n\n IteratorStep: function (it) {\n var result = ES.IteratorNext(it);\n var done = ES.IteratorComplete(result);\n return done ? false : result;\n },\n\n Construct: function (C, args, newTarget, isES6internal) {\n var target = typeof newTarget === 'undefined' ? C : newTarget;\n\n if (!isES6internal && Reflect.construct) {\n // Try to use Reflect.construct if available\n return Reflect.construct(C, args, target);\n }\n // OK, we have to fake it. This will only work if the\n // C.[[ConstructorKind]] == \"base\" -- but that's the only\n // kind we can make in ES5 code anyway.\n\n // OrdinaryCreateFromConstructor(target, \"%ObjectPrototype%\")\n var proto = target.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = Object.prototype;\n }\n var obj = create(proto);\n // Call the constructor.\n var result = ES.Call(C, obj, args);\n return ES.TypeIsObject(result) ? result : obj;\n },\n\n SpeciesConstructor: function (O, defaultConstructor) {\n var C = O.constructor;\n if (C === void 0) {\n return defaultConstructor;\n }\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad constructor');\n }\n var S = C[symbolSpecies];\n if (isNullOrUndefined(S)) {\n return defaultConstructor;\n }\n if (!ES.IsConstructor(S)) {\n throw new TypeError('Bad @@species');\n }\n return S;\n },\n\n CreateHTML: function (string, tag, attribute, value) {\n var S = ES.ToString(string);\n var p1 = '<' + tag;\n if (attribute !== '') {\n var V = ES.ToString(value);\n var escapedV = V.replace(/\"/g, '"');\n p1 += ' ' + attribute + '=\"' + escapedV + '\"';\n }\n var p2 = p1 + '>';\n var p3 = p2 + S;\n return p3 + '';\n },\n\n IsRegExp: function IsRegExp(argument) {\n if (!ES.TypeIsObject(argument)) {\n return false;\n }\n var isRegExp = argument[Symbol.match];\n if (typeof isRegExp !== 'undefined') {\n return !!isRegExp;\n }\n return Type.regex(argument);\n },\n\n ToString: function ToString(string) {\n return $String(string);\n }\n };\n\n // Well-known Symbol shims\n if (supportsDescriptors && hasSymbols) {\n var defineWellKnownSymbol = function defineWellKnownSymbol(name) {\n if (Type.symbol(Symbol[name])) {\n return Symbol[name];\n }\n // eslint-disable-next-line no-restricted-properties\n var sym = Symbol['for']('Symbol.' + name);\n Object.defineProperty(Symbol, name, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: sym\n });\n return sym;\n };\n if (!Type.symbol(Symbol.search)) {\n var symbolSearch = defineWellKnownSymbol('search');\n var originalSearch = String.prototype.search;\n defineProperty(RegExp.prototype, symbolSearch, function search(string) {\n return ES.Call(originalSearch, string, [this]);\n });\n var searchShim = function search(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var searcher = ES.GetMethod(regexp, symbolSearch);\n if (typeof searcher !== 'undefined') {\n return ES.Call(searcher, regexp, [O]);\n }\n }\n return ES.Call(originalSearch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'search', searchShim);\n }\n if (!Type.symbol(Symbol.replace)) {\n var symbolReplace = defineWellKnownSymbol('replace');\n var originalReplace = String.prototype.replace;\n defineProperty(RegExp.prototype, symbolReplace, function replace(string, replaceValue) {\n return ES.Call(originalReplace, string, [this, replaceValue]);\n });\n var replaceShim = function replace(searchValue, replaceValue) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(searchValue)) {\n var replacer = ES.GetMethod(searchValue, symbolReplace);\n if (typeof replacer !== 'undefined') {\n return ES.Call(replacer, searchValue, [O, replaceValue]);\n }\n }\n return ES.Call(originalReplace, O, [ES.ToString(searchValue), replaceValue]);\n };\n overrideNative(String.prototype, 'replace', replaceShim);\n }\n if (!Type.symbol(Symbol.split)) {\n var symbolSplit = defineWellKnownSymbol('split');\n var originalSplit = String.prototype.split;\n defineProperty(RegExp.prototype, symbolSplit, function split(string, limit) {\n return ES.Call(originalSplit, string, [this, limit]);\n });\n var splitShim = function split(separator, limit) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(separator)) {\n var splitter = ES.GetMethod(separator, symbolSplit);\n if (typeof splitter !== 'undefined') {\n return ES.Call(splitter, separator, [O, limit]);\n }\n }\n return ES.Call(originalSplit, O, [ES.ToString(separator), limit]);\n };\n overrideNative(String.prototype, 'split', splitShim);\n }\n var symbolMatchExists = Type.symbol(Symbol.match);\n var stringMatchIgnoresSymbolMatch = symbolMatchExists && (function () {\n // Firefox 41, through Nightly 45 has Symbol.match, but String#match ignores it.\n // Firefox 40 and below have Symbol.match but String#match works fine.\n var o = {};\n o[Symbol.match] = function () { return 42; };\n return 'a'.match(o) !== 42;\n }());\n if (!symbolMatchExists || stringMatchIgnoresSymbolMatch) {\n var symbolMatch = defineWellKnownSymbol('match');\n\n var originalMatch = String.prototype.match;\n defineProperty(RegExp.prototype, symbolMatch, function match(string) {\n return ES.Call(originalMatch, string, [this]);\n });\n\n var matchShim = function match(regexp) {\n var O = ES.RequireObjectCoercible(this);\n if (!isNullOrUndefined(regexp)) {\n var matcher = ES.GetMethod(regexp, symbolMatch);\n if (typeof matcher !== 'undefined') {\n return ES.Call(matcher, regexp, [O]);\n }\n }\n return ES.Call(originalMatch, O, [ES.ToString(regexp)]);\n };\n overrideNative(String.prototype, 'match', matchShim);\n }\n }\n\n var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {\n Value.preserveToString(replacement, original);\n if (Object.setPrototypeOf) {\n // sets up proper prototype chain where possible\n Object.setPrototypeOf(original, replacement);\n }\n if (supportsDescriptors) {\n _forEach(Object.getOwnPropertyNames(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n Value.proxy(original, key, replacement);\n });\n } else {\n _forEach(Object.keys(original), function (key) {\n if (key in noop || keysToSkip[key]) { return; }\n replacement[key] = original[key];\n });\n }\n replacement.prototype = original.prototype;\n Value.redefine(original.prototype, 'constructor', replacement);\n };\n\n var defaultSpeciesGetter = function () { return this; };\n var addDefaultSpecies = function (C) {\n if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {\n Value.getter(C, symbolSpecies, defaultSpeciesGetter);\n }\n };\n\n var addIterator = function (prototype, impl) {\n var implementation = impl || function iterator() { return this; };\n defineProperty(prototype, $iterator$, implementation);\n if (!prototype[$iterator$] && Type.symbol($iterator$)) {\n // implementations are buggy when $iterator$ is a Symbol\n prototype[$iterator$] = implementation;\n }\n };\n\n var createDataProperty = function createDataProperty(object, name, value) {\n if (supportsDescriptors) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {\n createDataProperty(object, name, value);\n if (!ES.SameValue(object[name], value)) {\n throw new TypeError('property is nonconfigurable');\n }\n };\n\n var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {\n // This is an es5 approximation to es6 construct semantics. in es6,\n // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)\n // just sets the internal variable NewTarget (in es6 syntax `new.target`)\n // to Foo and then returns Foo().\n\n // Many ES6 object then have constructors of the form:\n // 1. If NewTarget is undefined, throw a TypeError exception\n // 2. Let xxx by OrdinaryCreateFromConstructor(NewTarget, yyy, zzz)\n\n // So we're going to emulate those first two steps.\n if (!ES.TypeIsObject(o)) {\n throw new TypeError('Constructor requires `new`: ' + defaultNewTarget.name);\n }\n var proto = defaultNewTarget.prototype;\n if (!ES.TypeIsObject(proto)) {\n proto = defaultProto;\n }\n var obj = create(proto);\n for (var name in slots) {\n if (_hasOwnProperty(slots, name)) {\n var value = slots[name];\n defineProperty(obj, name, value, true);\n }\n }\n return obj;\n };\n\n // Firefox 31 reports this function's length as 0\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1062484\n if (String.fromCodePoint && String.fromCodePoint.length !== 1) {\n var originalFromCodePoint = String.fromCodePoint;\n overrideNative(String, 'fromCodePoint', function fromCodePoint(codePoints) {\n return ES.Call(originalFromCodePoint, this, arguments);\n });\n }\n\n var StringShims = {\n fromCodePoint: function fromCodePoint(codePoints) {\n var result = [];\n var next;\n for (var i = 0, length = arguments.length; i < length; i++) {\n next = Number(arguments[i]);\n if (!ES.SameValue(next, ES.ToInteger(next)) || next < 0 || next > 0x10FFFF) {\n throw new RangeError('Invalid code point ' + next);\n }\n\n if (next < 0x10000) {\n _push(result, String.fromCharCode(next));\n } else {\n next -= 0x10000;\n _push(result, String.fromCharCode((next >> 10) + 0xD800));\n _push(result, String.fromCharCode((next % 0x400) + 0xDC00));\n }\n }\n return result.join('');\n },\n\n raw: function raw(callSite) {\n var cooked = ES.ToObject(callSite, 'bad callSite');\n var rawString = ES.ToObject(cooked.raw, 'bad raw value');\n var len = rawString.length;\n var literalsegments = ES.ToLength(len);\n if (literalsegments <= 0) {\n return '';\n }\n\n var stringElements = [];\n var nextIndex = 0;\n var nextKey, next, nextSeg, nextSub;\n while (nextIndex < literalsegments) {\n nextKey = ES.ToString(nextIndex);\n nextSeg = ES.ToString(rawString[nextKey]);\n _push(stringElements, nextSeg);\n if (nextIndex + 1 >= literalsegments) {\n break;\n }\n next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';\n nextSub = ES.ToString(next);\n _push(stringElements, nextSub);\n nextIndex += 1;\n }\n return stringElements.join('');\n }\n };\n if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {\n // IE 11 TP has a broken String.raw implementation\n overrideNative(String, 'raw', StringShims.raw);\n }\n defineProperties(String, StringShims);\n\n // Fast repeat, uses the `Exponentiation by squaring` algorithm.\n // Perf: http://jsperf.com/string-repeat2/2\n var stringRepeat = function repeat(s, times) {\n if (times < 1) { return ''; }\n if (times % 2) { return repeat(s, times - 1) + s; }\n var half = repeat(s, times / 2);\n return half + half;\n };\n var stringMaxLength = Infinity;\n\n var StringPrototypeShims = {\n repeat: function repeat(times) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var numTimes = ES.ToInteger(times);\n if (numTimes < 0 || numTimes >= stringMaxLength) {\n throw new RangeError('repeat count must be less than infinity and not overflow maximum string size');\n }\n return stringRepeat(thisStr, numTimes);\n },\n\n startsWith: function startsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"startsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n var start = _max(ES.ToInteger(position), 0);\n return _strSlice(S, start, start + searchStr.length) === searchStr;\n },\n\n endsWith: function endsWith(searchString) {\n var S = ES.ToString(ES.RequireObjectCoercible(this));\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('Cannot call method \"endsWith\" with a regex');\n }\n var searchStr = ES.ToString(searchString);\n var len = S.length;\n var endPosition;\n if (arguments.length > 1) {\n endPosition = arguments[1];\n }\n var pos = typeof endPosition === 'undefined' ? len : ES.ToInteger(endPosition);\n var end = _min(_max(pos, 0), len);\n return _strSlice(S, end - searchStr.length, end) === searchStr;\n },\n\n includes: function includes(searchString) {\n if (ES.IsRegExp(searchString)) {\n throw new TypeError('\"includes\" does not accept a RegExp');\n }\n var searchStr = ES.ToString(searchString);\n var position;\n if (arguments.length > 1) {\n position = arguments[1];\n }\n // Somehow this trick makes method 100% compat with the spec.\n return _indexOf(this, searchStr, position) !== -1;\n },\n\n codePointAt: function codePointAt(pos) {\n var thisStr = ES.ToString(ES.RequireObjectCoercible(this));\n var position = ES.ToInteger(pos);\n var length = thisStr.length;\n if (position >= 0 && position < length) {\n var first = thisStr.charCodeAt(position);\n var isEnd = position + 1 === length;\n if (first < 0xD800 || first > 0xDBFF || isEnd) { return first; }\n var second = thisStr.charCodeAt(position + 1);\n if (second < 0xDC00 || second > 0xDFFF) { return first; }\n return ((first - 0xD800) * 1024) + (second - 0xDC00) + 0x10000;\n }\n }\n };\n if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n\n if (String.prototype.startsWith && String.prototype.endsWith) {\n var startsWithRejectsRegex = throwsError(function () {\n /* throws if spec-compliant */\n '/a/'.startsWith(/a/);\n });\n var startsWithHandlesInfinity = valueOrFalseIfThrows(function () {\n return 'abc'.startsWith('a', Infinity) === false;\n });\n if (!startsWithRejectsRegex || !startsWithHandlesInfinity) {\n // Firefox (< 37?) and IE 11 TP have a noncompliant startsWith implementation\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n }\n if (hasSymbols) {\n var startsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.startsWith(re);\n });\n if (!startsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'startsWith', StringPrototypeShims.startsWith);\n }\n var endsWithSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.endsWith(re);\n });\n if (!endsWithSupportsSymbolMatch) {\n overrideNative(String.prototype, 'endsWith', StringPrototypeShims.endsWith);\n }\n var includesSupportsSymbolMatch = valueOrFalseIfThrows(function () {\n var re = /a/;\n re[Symbol.match] = false;\n return '/a/'.includes(re);\n });\n if (!includesSupportsSymbolMatch) {\n overrideNative(String.prototype, 'includes', StringPrototypeShims.includes);\n }\n }\n\n defineProperties(String.prototype, StringPrototypeShims);\n\n // whitespace from: http://es5.github.io/#x15.5.4.20\n // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\n var ws = [\n '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n '\\u2029\\uFEFF'\n ].join('');\n var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\n var trimShim = function trim() {\n return ES.ToString(ES.RequireObjectCoercible(this)).replace(trimRegexp, '');\n };\n var nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\n var nonWSregex = new RegExp('[' + nonWS + ']', 'g');\n var isBadHexRegex = /^[-+]0x[0-9a-f]+$/i;\n var hasStringTrimBug = nonWS.trim().length !== nonWS.length;\n defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);\n\n // Given an argument x, it will return an IteratorResult object,\n // with value set to x and done to false.\n // Given no arguments, it will return an iterator completion object.\n var iteratorResult = function (x) {\n return { value: x, done: arguments.length === 0 };\n };\n\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype-@@iterator\n var StringIterator = function (s) {\n ES.RequireObjectCoercible(s);\n this._s = ES.ToString(s);\n this._i = 0;\n };\n StringIterator.prototype.next = function () {\n var s = this._s;\n var i = this._i;\n if (typeof s === 'undefined' || i >= s.length) {\n this._s = void 0;\n return iteratorResult();\n }\n var first = s.charCodeAt(i);\n var second, len;\n if (first < 0xD800 || first > 0xDBFF || (i + 1) === s.length) {\n len = 1;\n } else {\n second = s.charCodeAt(i + 1);\n len = (second < 0xDC00 || second > 0xDFFF) ? 1 : 2;\n }\n this._i = i + len;\n return iteratorResult(s.substr(i, len));\n };\n addIterator(StringIterator.prototype);\n addIterator(String.prototype, function () {\n return new StringIterator(this);\n });\n\n var ArrayShims = {\n from: function from(items) {\n var C = this;\n var mapFn;\n if (arguments.length > 1) {\n mapFn = arguments[1];\n }\n var mapping, T;\n if (typeof mapFn === 'undefined') {\n mapping = false;\n } else {\n if (!ES.IsCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n mapping = true;\n }\n\n // Note that that Arrays will use ArrayIterator:\n // https://bugs.ecmascript.org/show_bug.cgi?id=2416\n var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';\n\n var length, result, i;\n if (usingIterator) {\n result = ES.IsConstructor(C) ? Object(new C()) : [];\n var iterator = ES.GetIterator(items);\n var next, nextValue;\n\n i = 0;\n while (true) {\n next = ES.IteratorStep(iterator);\n if (next === false) {\n break;\n }\n nextValue = next.value;\n try {\n if (mapping) {\n nextValue = typeof T === 'undefined' ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);\n }\n result[i] = nextValue;\n } catch (e) {\n ES.IteratorClose(iterator, true);\n throw e;\n }\n i += 1;\n }\n length = i;\n } else {\n var arrayLike = ES.ToObject(items);\n length = ES.ToLength(arrayLike.length);\n result = ES.IsConstructor(C) ? Object(new C(length)) : new Array(length);\n var value;\n for (i = 0; i < length; ++i) {\n value = arrayLike[i];\n if (mapping) {\n value = typeof T === 'undefined' ? mapFn(value, i) : _call(mapFn, T, value, i);\n }\n createDataPropertyOrThrow(result, i, value);\n }\n }\n\n result.length = length;\n return result;\n },\n\n of: function of() {\n var len = arguments.length;\n var C = this;\n var A = isArray(C) || !ES.IsCallable(C) ? new Array(len) : ES.Construct(C, [len]);\n for (var k = 0; k < len; ++k) {\n createDataPropertyOrThrow(A, k, arguments[k]);\n }\n A.length = len;\n return A;\n }\n };\n defineProperties(Array, ArrayShims);\n addDefaultSpecies(Array);\n\n // Our ArrayIterator is private; see\n // https://github.com/paulmillr/es6-shim/issues/252\n ArrayIterator = function (array, kind) {\n this.i = 0;\n this.array = array;\n this.kind = kind;\n };\n\n defineProperties(ArrayIterator.prototype, {\n next: function () {\n var i = this.i;\n var array = this.array;\n if (!(this instanceof ArrayIterator)) {\n throw new TypeError('Not an ArrayIterator');\n }\n if (typeof array !== 'undefined') {\n var len = ES.ToLength(array.length);\n for (; i < len; i++) {\n var kind = this.kind;\n var retval;\n if (kind === 'key') {\n retval = i;\n } else if (kind === 'value') {\n retval = array[i];\n } else if (kind === 'entry') {\n retval = [i, array[i]];\n }\n this.i = i + 1;\n return iteratorResult(retval);\n }\n }\n this.array = void 0;\n return iteratorResult();\n }\n });\n addIterator(ArrayIterator.prototype);\n\n/*\n var orderKeys = function orderKeys(a, b) {\n var aNumeric = String(ES.ToInteger(a)) === a;\n var bNumeric = String(ES.ToInteger(b)) === b;\n if (aNumeric && bNumeric) {\n return b - a;\n } else if (aNumeric && !bNumeric) {\n return -1;\n } else if (!aNumeric && bNumeric) {\n return 1;\n } else {\n return a.localeCompare(b);\n }\n };\n\n var getAllKeys = function getAllKeys(object) {\n var ownKeys = [];\n var keys = [];\n\n for (var key in object) {\n _push(_hasOwnProperty(object, key) ? ownKeys : keys, key);\n }\n _sort(ownKeys, orderKeys);\n _sort(keys, orderKeys);\n\n return _concat(ownKeys, keys);\n };\n */\n\n // note: this is positioned here because it depends on ArrayIterator\n var arrayOfSupportsSubclassing = Array.of === ArrayShims.of || (function () {\n // Detects a bug in Webkit nightly r181886\n var Foo = function Foo(len) { this.length = len; };\n Foo.prototype = [];\n var fooArr = Array.of.apply(Foo, [1, 2]);\n return fooArr instanceof Foo && fooArr.length === 2;\n }());\n if (!arrayOfSupportsSubclassing) {\n overrideNative(Array, 'of', ArrayShims.of);\n }\n\n var ArrayPrototypeShims = {\n copyWithin: function copyWithin(target, start) {\n var o = ES.ToObject(this);\n var len = ES.ToLength(o.length);\n var relativeTarget = ES.ToInteger(target);\n var relativeStart = ES.ToInteger(start);\n var to = relativeTarget < 0 ? _max(len + relativeTarget, 0) : _min(relativeTarget, len);\n var from = relativeStart < 0 ? _max(len + relativeStart, 0) : _min(relativeStart, len);\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var relativeEnd = typeof end === 'undefined' ? len : ES.ToInteger(end);\n var finalItem = relativeEnd < 0 ? _max(len + relativeEnd, 0) : _min(relativeEnd, len);\n var count = _min(finalItem - from, len - to);\n var direction = 1;\n if (from < to && to < (from + count)) {\n direction = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count > 0) {\n if (from in o) {\n o[to] = o[from];\n } else {\n delete o[to];\n }\n from += direction;\n to += direction;\n count -= 1;\n }\n return o;\n },\n\n fill: function fill(value) {\n var start;\n if (arguments.length > 1) {\n start = arguments[1];\n }\n var end;\n if (arguments.length > 2) {\n end = arguments[2];\n }\n var O = ES.ToObject(this);\n var len = ES.ToLength(O.length);\n start = ES.ToInteger(typeof start === 'undefined' ? 0 : start);\n end = ES.ToInteger(typeof end === 'undefined' ? len : end);\n\n var relativeStart = start < 0 ? _max(len + start, 0) : _min(start, len);\n var relativeEnd = end < 0 ? len + end : end;\n\n for (var i = relativeStart; i < len && i < relativeEnd; ++i) {\n O[i] = value;\n }\n return O;\n },\n\n find: function find(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#find: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0, value; i < length; i++) {\n value = list[i];\n if (thisArg) {\n if (_call(predicate, thisArg, value, i, list)) {\n return value;\n }\n } else if (predicate(value, i, list)) {\n return value;\n }\n }\n },\n\n findIndex: function findIndex(predicate) {\n var list = ES.ToObject(this);\n var length = ES.ToLength(list.length);\n if (!ES.IsCallable(predicate)) {\n throw new TypeError('Array#findIndex: predicate must be a function');\n }\n var thisArg = arguments.length > 1 ? arguments[1] : null;\n for (var i = 0; i < length; i++) {\n if (thisArg) {\n if (_call(predicate, thisArg, list[i], i, list)) {\n return i;\n }\n } else if (predicate(list[i], i, list)) {\n return i;\n }\n }\n return -1;\n },\n\n keys: function keys() {\n return new ArrayIterator(this, 'key');\n },\n\n values: function values() {\n return new ArrayIterator(this, 'value');\n },\n\n entries: function entries() {\n return new ArrayIterator(this, 'entry');\n }\n };\n // Safari 7.1 defines Array#keys and Array#entries natively,\n // but the resulting ArrayIterator objects don't have a \"next\" method.\n if (Array.prototype.keys && !ES.IsCallable([1].keys().next)) {\n delete Array.prototype.keys;\n }\n if (Array.prototype.entries && !ES.IsCallable([1].entries().next)) {\n delete Array.prototype.entries;\n }\n\n // Chrome 38 defines Array#keys and Array#entries, and Array#@@iterator, but not Array#values\n if (Array.prototype.keys && Array.prototype.entries && !Array.prototype.values && Array.prototype[$iterator$]) {\n defineProperties(Array.prototype, {\n values: Array.prototype[$iterator$]\n });\n if (Type.symbol(Symbol.unscopables)) {\n Array.prototype[Symbol.unscopables].values = true;\n }\n }\n // Chrome 40 defines Array#values with the incorrect name, although Array#{keys,entries} have the correct name\n if (functionsHaveNames && Array.prototype.values && Array.prototype.values.name !== 'values') {\n var originalArrayPrototypeValues = Array.prototype.values;\n overrideNative(Array.prototype, 'values', function values() { return ES.Call(originalArrayPrototypeValues, this, arguments); });\n defineProperty(Array.prototype, $iterator$, Array.prototype.values, true);\n }\n defineProperties(Array.prototype, ArrayPrototypeShims);\n\n if (1 / [true].indexOf(true, -0) < 0) {\n // indexOf when given a position arg of -0 should return +0.\n // https://github.com/tc39/ecma262/pull/316\n defineProperty(Array.prototype, 'indexOf', function indexOf(searchElement) {\n var value = _arrayIndexOfApply(this, arguments);\n if (value === 0 && (1 / value) < 0) {\n return 0;\n }\n return value;\n }, true);\n }\n\n addIterator(Array.prototype, function () { return this.values(); });\n // Chrome defines keys/values/entries on Array, but doesn't give us\n // any way to identify its iterator. So add our own shimmed field.\n if (Object.getPrototypeOf) {\n addIterator(Object.getPrototypeOf([].values()));\n }\n\n // note: this is positioned here because it relies on Array#entries\n var arrayFromSwallowsNegativeLengths = (function () {\n // Detects a Firefox bug in v32\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1063993\n return valueOrFalseIfThrows(function () {\n return Array.from({ length: -1 }).length === 0;\n });\n }());\n var arrayFromHandlesIterables = (function () {\n // Detects a bug in Webkit nightly r181886\n var arr = Array.from([0].entries());\n return arr.length === 1 && isArray(arr[0]) && arr[0][0] === 0 && arr[0][1] === 0;\n }());\n if (!arrayFromSwallowsNegativeLengths || !arrayFromHandlesIterables) {\n overrideNative(Array, 'from', ArrayShims.from);\n }\n var arrayFromHandlesUndefinedMapFunction = (function () {\n // Microsoft Edge v0.11 throws if the mapFn argument is *provided* but undefined,\n // but the spec doesn't care if it's provided or not - undefined doesn't throw.\n return valueOrFalseIfThrows(function () {\n return Array.from([0], void 0);\n });\n }());\n if (!arrayFromHandlesUndefinedMapFunction) {\n var origArrayFrom = Array.from;\n overrideNative(Array, 'from', function from(items) {\n if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {\n return ES.Call(origArrayFrom, this, arguments);\n } else {\n return _call(origArrayFrom, this, items);\n }\n });\n }\n\n var int32sAsOne = -(Math.pow(2, 32) - 1);\n var toLengthsCorrectly = function (method, reversed) {\n var obj = { length: int32sAsOne };\n obj[reversed ? (obj.length >>> 0) - 1 : 0] = true;\n return valueOrFalseIfThrows(function () {\n _call(method, obj, function () {\n // note: in nonconforming browsers, this will be called\n // -1 >>> 0 times, which is 4294967295, so the throw matters.\n throw new RangeError('should not reach here');\n }, []);\n return true;\n });\n };\n if (!toLengthsCorrectly(Array.prototype.forEach)) {\n var originalForEach = Array.prototype.forEach;\n overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {\n return ES.Call(originalForEach, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.map)) {\n var originalMap = Array.prototype.map;\n overrideNative(Array.prototype, 'map', function map(callbackFn) {\n return ES.Call(originalMap, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.filter)) {\n var originalFilter = Array.prototype.filter;\n overrideNative(Array.prototype, 'filter', function filter(callbackFn) {\n return ES.Call(originalFilter, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.some)) {\n var originalSome = Array.prototype.some;\n overrideNative(Array.prototype, 'some', function some(callbackFn) {\n return ES.Call(originalSome, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.every)) {\n var originalEvery = Array.prototype.every;\n overrideNative(Array.prototype, 'every', function every(callbackFn) {\n return ES.Call(originalEvery, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduce)) {\n var originalReduce = Array.prototype.reduce;\n overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {\n return ES.Call(originalReduce, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {\n var originalReduceRight = Array.prototype.reduceRight;\n overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {\n return ES.Call(originalReduceRight, this.length >= 0 ? this : [], arguments);\n }, true);\n }\n\n var lacksOctalSupport = Number('0o10') !== 8;\n var lacksBinarySupport = Number('0b10') !== 2;\n var trimsNonWhitespace = _some(nonWS, function (c) {\n return Number(c + 0 + c) === 0;\n });\n if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {\n var OrigNumber = Number;\n var binaryRegex = /^0b[01]+$/i;\n var octalRegex = /^0o[0-7]+$/i;\n // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is an own property of regexes. wtf.\n var isBinary = binaryRegex.test.bind(binaryRegex);\n var isOctal = octalRegex.test.bind(octalRegex);\n var toPrimitive = function (O) { // need to replace this with `es-to-primitive/es6`\n var result;\n if (typeof O.valueOf === 'function') {\n result = O.valueOf();\n if (Type.primitive(result)) {\n return result;\n }\n }\n if (typeof O.toString === 'function') {\n result = O.toString();\n if (Type.primitive(result)) {\n return result;\n }\n }\n throw new TypeError('No default value');\n };\n var hasNonWS = nonWSregex.test.bind(nonWSregex);\n var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);\n var NumberShim = (function () {\n // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.\n var NumberShim = function Number(value) {\n var primValue;\n if (arguments.length > 0) {\n primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');\n } else {\n primValue = 0;\n }\n if (typeof primValue === 'string') {\n primValue = ES.Call(trimShim, primValue);\n if (isBinary(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 2);\n } else if (isOctal(primValue)) {\n primValue = parseInt(_strSlice(primValue, 2), 8);\n } else if (hasNonWS(primValue) || isBadHex(primValue)) {\n primValue = NaN;\n }\n }\n var receiver = this;\n var valueOfSucceeds = valueOrFalseIfThrows(function () {\n OrigNumber.prototype.valueOf.call(receiver);\n return true;\n });\n if (receiver instanceof NumberShim && !valueOfSucceeds) {\n return new OrigNumber(primValue);\n }\n /* jshint newcap: false */\n return OrigNumber(primValue);\n /* jshint newcap: true */\n };\n return NumberShim;\n }());\n wrapConstructor(OrigNumber, NumberShim, {});\n // this is necessary for ES3 browsers, where these properties are non-enumerable.\n defineProperties(NumberShim, {\n NaN: OrigNumber.NaN,\n MAX_VALUE: OrigNumber.MAX_VALUE,\n MIN_VALUE: OrigNumber.MIN_VALUE,\n NEGATIVE_INFINITY: OrigNumber.NEGATIVE_INFINITY,\n POSITIVE_INFINITY: OrigNumber.POSITIVE_INFINITY\n });\n /* globals Number: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n Number = NumberShim;\n Value.redefine(globals, 'Number', NumberShim);\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals Number: false */\n }\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n defineProperties(Number, {\n MAX_SAFE_INTEGER: maxSafeInteger,\n MIN_SAFE_INTEGER: -maxSafeInteger,\n EPSILON: 2.220446049250313e-16,\n\n parseInt: globals.parseInt,\n parseFloat: globals.parseFloat,\n\n isFinite: numberIsFinite,\n\n isInteger: function isInteger(value) {\n return numberIsFinite(value) && ES.ToInteger(value) === value;\n },\n\n isSafeInteger: function isSafeInteger(value) {\n return Number.isInteger(value) && _abs(value) <= Number.MAX_SAFE_INTEGER;\n },\n\n isNaN: numberIsNaN\n });\n // Firefox 37 has a conforming Number.parseInt, but it's not === to the global parseInt (fixed in v40)\n defineProperty(Number, 'parseInt', globals.parseInt, Number.parseInt !== globals.parseInt);\n\n // Work around bugs in Array#find and Array#findIndex -- early\n // implementations skipped holes in sparse arrays. (Note that the\n // implementations of find/findIndex indirectly use shimmed\n // methods of Number, so this test has to happen down here.)\n /*jshint elision: true */\n /* eslint-disable no-sparse-arrays */\n if ([, 1].find(function () { return true; }) === 1) {\n overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);\n }\n if ([, 1].findIndex(function () { return true; }) !== 0) {\n overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);\n }\n /* eslint-enable no-sparse-arrays */\n /*jshint elision: false */\n\n var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);\n var ensureEnumerable = function ensureEnumerable(obj, prop) {\n if (supportsDescriptors && isEnumerableOn(obj, prop)) {\n Object.defineProperty(obj, prop, { enumerable: false });\n }\n };\n var sliceArgs = function sliceArgs() {\n // per https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n // and https://gist.github.com/WebReflection/4327762cb87a8c634a29\n var initial = Number(this);\n var len = arguments.length;\n var desiredArgCount = len - initial;\n var args = new Array(desiredArgCount < 0 ? 0 : desiredArgCount);\n for (var i = initial; i < len; ++i) {\n args[i - initial] = arguments[i];\n }\n return args;\n };\n var assignTo = function assignTo(source) {\n return function assignToSource(target, key) {\n target[key] = source[key];\n return target;\n };\n };\n var assignReducer = function (target, source) {\n var sourceKeys = keys(Object(source));\n var symbols;\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));\n }\n return _reduce(_concat(sourceKeys, symbols || []), assignTo(source), target);\n };\n\n var ObjectShims = {\n // 19.1.3.1\n assign: function (target, source) {\n var to = ES.ToObject(target, 'Cannot convert undefined or null to object');\n return _reduce(ES.Call(sliceArgs, 1, arguments), assignReducer, to);\n },\n\n // Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865\n is: function is(a, b) {\n return ES.SameValue(a, b);\n }\n };\n var assignHasPendingExceptions = Object.assign && Object.preventExtensions && (function () {\n // Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n // which is 72% slower than our shim, and Firefox 40's native implementation.\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, 'xy');\n } catch (e) {\n return thrower[1] === 'y';\n }\n }());\n if (assignHasPendingExceptions) {\n overrideNative(Object, 'assign', ObjectShims.assign);\n }\n defineProperties(Object, ObjectShims);\n\n if (supportsDescriptors) {\n var ES5ObjectShims = {\n // 19.1.3.9\n // shim from https://gist.github.com/WebReflection/5593554\n setPrototypeOf: (function (Object, magic) {\n var set;\n\n var checkArgs = function (O, proto) {\n if (!ES.TypeIsObject(O)) {\n throw new TypeError('cannot set prototype on a non-object');\n }\n if (!(proto === null || ES.TypeIsObject(proto))) {\n throw new TypeError('can only set prototype to an object or null' + proto);\n }\n };\n\n var setPrototypeOf = function (O, proto) {\n checkArgs(O, proto);\n _call(set, O, proto);\n return O;\n };\n\n try {\n // this works already in Firefox and Safari\n set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n _call(set, {}, null);\n } catch (e) {\n if (Object.prototype !== {}[magic]) {\n // IE < 11 cannot be shimmed\n return;\n }\n // probably Chrome or some old Mobile stock browser\n set = function (proto) {\n this[magic] = proto;\n };\n // please note that this will **not** work\n // in those browsers that do not inherit\n // __proto__ by mistake from Object.prototype\n // in these cases we should probably throw an error\n // or at least be informed about the issue\n setPrototypeOf.polyfill = setPrototypeOf(\n setPrototypeOf({}, null),\n Object.prototype\n ) instanceof Object;\n // setPrototypeOf.polyfill === true means it works as meant\n // setPrototypeOf.polyfill === false means it's not 100% reliable\n // setPrototypeOf.polyfill === undefined\n // or\n // setPrototypeOf.polyfill == null means it's not a polyfill\n // which means it works as expected\n // we can even delete Object.prototype.__proto__;\n }\n return setPrototypeOf;\n }(Object, '__proto__'))\n };\n\n defineProperties(Object, ES5ObjectShims);\n }\n\n // Workaround bug in Opera 12 where setPrototypeOf(x, null) doesn't work,\n // but Object.create(null) does.\n if (Object.setPrototypeOf && Object.getPrototypeOf &&\n Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&\n Object.getPrototypeOf(Object.create(null)) === null) {\n (function () {\n var FAKENULL = Object.create(null);\n var gpo = Object.getPrototypeOf;\n var spo = Object.setPrototypeOf;\n Object.getPrototypeOf = function (o) {\n var result = gpo(o);\n return result === FAKENULL ? null : result;\n };\n Object.setPrototypeOf = function (o, p) {\n var proto = p === null ? FAKENULL : p;\n return spo(o, proto);\n };\n Object.setPrototypeOf.polyfill = false;\n }());\n }\n\n var objectKeysAcceptsPrimitives = !throwsError(function () { Object.keys('foo'); });\n if (!objectKeysAcceptsPrimitives) {\n var originalObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n return originalObjectKeys(ES.ToObject(value));\n });\n keys = Object.keys;\n }\n var objectKeysRejectsRegex = throwsError(function () { Object.keys(/a/g); });\n if (objectKeysRejectsRegex) {\n var regexRejectingObjectKeys = Object.keys;\n overrideNative(Object, 'keys', function keys(value) {\n if (Type.regex(value)) {\n var regexKeys = [];\n for (var k in value) {\n if (_hasOwnProperty(value, k)) {\n _push(regexKeys, k);\n }\n }\n return regexKeys;\n }\n return regexRejectingObjectKeys(value);\n });\n keys = Object.keys;\n }\n\n if (Object.getOwnPropertyNames) {\n var objectGOPNAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyNames('foo'); });\n if (!objectGOPNAcceptsPrimitives) {\n var cachedWindowNames = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];\n var originalObjectGetOwnPropertyNames = Object.getOwnPropertyNames;\n overrideNative(Object, 'getOwnPropertyNames', function getOwnPropertyNames(value) {\n var val = ES.ToObject(value);\n if (_toString(val) === '[object Window]') {\n try {\n return originalObjectGetOwnPropertyNames(val);\n } catch (e) {\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n return _concat([], cachedWindowNames);\n }\n }\n return originalObjectGetOwnPropertyNames(val);\n });\n }\n }\n if (Object.getOwnPropertyDescriptor) {\n var objectGOPDAcceptsPrimitives = !throwsError(function () { Object.getOwnPropertyDescriptor('foo', 'bar'); });\n if (!objectGOPDAcceptsPrimitives) {\n var originalObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n overrideNative(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(value, property) {\n return originalObjectGetOwnPropertyDescriptor(ES.ToObject(value), property);\n });\n }\n }\n if (Object.seal) {\n var objectSealAcceptsPrimitives = !throwsError(function () { Object.seal('foo'); });\n if (!objectSealAcceptsPrimitives) {\n var originalObjectSeal = Object.seal;\n overrideNative(Object, 'seal', function seal(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectSeal(value);\n });\n }\n }\n if (Object.isSealed) {\n var objectIsSealedAcceptsPrimitives = !throwsError(function () { Object.isSealed('foo'); });\n if (!objectIsSealedAcceptsPrimitives) {\n var originalObjectIsSealed = Object.isSealed;\n overrideNative(Object, 'isSealed', function isSealed(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsSealed(value);\n });\n }\n }\n if (Object.freeze) {\n var objectFreezeAcceptsPrimitives = !throwsError(function () { Object.freeze('foo'); });\n if (!objectFreezeAcceptsPrimitives) {\n var originalObjectFreeze = Object.freeze;\n overrideNative(Object, 'freeze', function freeze(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectFreeze(value);\n });\n }\n }\n if (Object.isFrozen) {\n var objectIsFrozenAcceptsPrimitives = !throwsError(function () { Object.isFrozen('foo'); });\n if (!objectIsFrozenAcceptsPrimitives) {\n var originalObjectIsFrozen = Object.isFrozen;\n overrideNative(Object, 'isFrozen', function isFrozen(value) {\n if (!ES.TypeIsObject(value)) { return true; }\n return originalObjectIsFrozen(value);\n });\n }\n }\n if (Object.preventExtensions) {\n var objectPreventExtensionsAcceptsPrimitives = !throwsError(function () { Object.preventExtensions('foo'); });\n if (!objectPreventExtensionsAcceptsPrimitives) {\n var originalObjectPreventExtensions = Object.preventExtensions;\n overrideNative(Object, 'preventExtensions', function preventExtensions(value) {\n if (!ES.TypeIsObject(value)) { return value; }\n return originalObjectPreventExtensions(value);\n });\n }\n }\n if (Object.isExtensible) {\n var objectIsExtensibleAcceptsPrimitives = !throwsError(function () { Object.isExtensible('foo'); });\n if (!objectIsExtensibleAcceptsPrimitives) {\n var originalObjectIsExtensible = Object.isExtensible;\n overrideNative(Object, 'isExtensible', function isExtensible(value) {\n if (!ES.TypeIsObject(value)) { return false; }\n return originalObjectIsExtensible(value);\n });\n }\n }\n if (Object.getPrototypeOf) {\n var objectGetProtoAcceptsPrimitives = !throwsError(function () { Object.getPrototypeOf('foo'); });\n if (!objectGetProtoAcceptsPrimitives) {\n var originalGetProto = Object.getPrototypeOf;\n overrideNative(Object, 'getPrototypeOf', function getPrototypeOf(value) {\n return originalGetProto(ES.ToObject(value));\n });\n }\n }\n\n var hasFlags = supportsDescriptors && (function () {\n var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');\n return desc && ES.IsCallable(desc.get);\n }());\n if (supportsDescriptors && !hasFlags) {\n var regExpFlagsGetter = function flags() {\n if (!ES.TypeIsObject(this)) {\n throw new TypeError('Method called on incompatible type: must be an object.');\n }\n var result = '';\n if (this.global) {\n result += 'g';\n }\n if (this.ignoreCase) {\n result += 'i';\n }\n if (this.multiline) {\n result += 'm';\n }\n if (this.unicode) {\n result += 'u';\n }\n if (this.sticky) {\n result += 'y';\n }\n return result;\n };\n\n Value.getter(RegExp.prototype, 'flags', regExpFlagsGetter);\n }\n\n var regExpSupportsFlagsWithRegex = supportsDescriptors && valueOrFalseIfThrows(function () {\n return String(new RegExp(/a/g, 'i')) === '/a/i';\n });\n var regExpNeedsToSupportSymbolMatch = hasSymbols && supportsDescriptors && (function () {\n // Edge 0.12 supports flags fully, but does not support Symbol.match\n var regex = /./;\n regex[Symbol.match] = false;\n return RegExp(regex) === regex;\n }());\n\n var regexToStringIsGeneric = valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';\n });\n var regexToStringSupportsGenericFlags = regexToStringIsGeneric && valueOrFalseIfThrows(function () {\n return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';\n });\n if (!regexToStringIsGeneric || !regexToStringSupportsGenericFlags) {\n var origRegExpToString = RegExp.prototype.toString;\n defineProperty(RegExp.prototype, 'toString', function toString() {\n var R = ES.RequireObjectCoercible(this);\n if (Type.regex(R)) {\n return _call(origRegExpToString, R);\n }\n var pattern = $String(R.source);\n var flags = $String(R.flags);\n return '/' + pattern + '/' + flags;\n }, true);\n Value.preserveToString(RegExp.prototype.toString, origRegExpToString);\n }\n\n if (supportsDescriptors && (!regExpSupportsFlagsWithRegex || regExpNeedsToSupportSymbolMatch)) {\n var flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;\n var sourceDesc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};\n var legacySourceGetter = function () {\n // prior to it being a getter, it's own + nonconfigurable\n return this.source;\n };\n var sourceGetter = ES.IsCallable(sourceDesc.get) ? sourceDesc.get : legacySourceGetter;\n\n var OrigRegExp = RegExp;\n var RegExpShim = (function () {\n return function RegExp(pattern, flags) {\n var patternIsRegExp = ES.IsRegExp(pattern);\n var calledWithNew = this instanceof RegExp;\n if (!calledWithNew && patternIsRegExp && typeof flags === 'undefined' && pattern.constructor === RegExp) {\n return pattern;\n }\n\n var P = pattern;\n var F = flags;\n if (Type.regex(pattern)) {\n P = ES.Call(sourceGetter, pattern);\n F = typeof flags === 'undefined' ? ES.Call(flagsGetter, pattern) : flags;\n return new RegExp(P, F);\n } else if (patternIsRegExp) {\n P = pattern.source;\n F = typeof flags === 'undefined' ? pattern.flags : flags;\n }\n return new OrigRegExp(pattern, flags);\n };\n }());\n wrapConstructor(OrigRegExp, RegExpShim, {\n $input: true // Chrome < v39 & Opera < 26 have a nonstandard \"$input\" property\n });\n /* globals RegExp: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n RegExp = RegExpShim;\n Value.redefine(globals, 'RegExp', RegExpShim);\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals RegExp: false */\n }\n\n if (supportsDescriptors) {\n var regexGlobals = {\n input: '$_',\n lastMatch: '$&',\n lastParen: '$+',\n leftContext: '$`',\n rightContext: '$\\''\n };\n _forEach(keys(regexGlobals), function (prop) {\n if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {\n Value.getter(RegExp, regexGlobals[prop], function get() {\n return RegExp[prop];\n });\n }\n });\n }\n addDefaultSpecies(RegExp);\n\n var inverseEpsilon = 1 / Number.EPSILON;\n var roundTiesToEven = function roundTiesToEven(n) {\n // Even though this reduces down to `return n`, it takes advantage of built-in rounding.\n return (n + inverseEpsilon) - inverseEpsilon;\n };\n var BINARY_32_EPSILON = Math.pow(2, -23);\n var BINARY_32_MAX_VALUE = Math.pow(2, 127) * (2 - BINARY_32_EPSILON);\n var BINARY_32_MIN_VALUE = Math.pow(2, -126);\n var E = Math.E;\n var LOG2E = Math.LOG2E;\n var LOG10E = Math.LOG10E;\n var numberCLZ = Number.prototype.clz;\n delete Number.prototype.clz; // Safari 8 has Number#clz\n\n var MathShims = {\n acosh: function acosh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || value < 1) { return NaN; }\n if (x === 1) { return 0; }\n if (x === Infinity) { return x; }\n return _log((x / E) + (_sqrt(x + 1) * _sqrt(x - 1) / E)) + 1;\n },\n\n asinh: function asinh(value) {\n var x = Number(value);\n if (x === 0 || !globalIsFinite(x)) {\n return x;\n }\n return x < 0 ? -asinh(-x) : _log(x + _sqrt((x * x) + 1));\n },\n\n atanh: function atanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x < -1 || x > 1) {\n return NaN;\n }\n if (x === -1) { return -Infinity; }\n if (x === 1) { return Infinity; }\n if (x === 0) { return x; }\n return 0.5 * _log((1 + x) / (1 - x));\n },\n\n cbrt: function cbrt(value) {\n var x = Number(value);\n if (x === 0) { return x; }\n var negate = x < 0;\n var result;\n if (negate) { x = -x; }\n if (x === Infinity) {\n result = Infinity;\n } else {\n result = _exp(_log(x) / 3);\n // from http://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = ((x / (result * result)) + (2 * result)) / 3;\n }\n return negate ? -result : result;\n },\n\n clz32: function clz32(value) {\n // See https://bugs.ecmascript.org/show_bug.cgi?id=2465\n var x = Number(value);\n var number = ES.ToUint32(x);\n if (number === 0) {\n return 32;\n }\n return numberCLZ ? ES.Call(numberCLZ, number) : 31 - _floor(_log(number + 0.5) * LOG2E);\n },\n\n cosh: function cosh(value) {\n var x = Number(value);\n if (x === 0) { return 1; } // +0 or -0\n if (numberIsNaN(x)) { return NaN; }\n if (!globalIsFinite(x)) { return Infinity; }\n if (x < 0) { x = -x; }\n if (x > 21) { return _exp(x) / 2; }\n return (_exp(x) + _exp(-x)) / 2;\n },\n\n expm1: function expm1(value) {\n var x = Number(value);\n if (x === -Infinity) { return -1; }\n if (!globalIsFinite(x) || x === 0) { return x; }\n if (_abs(x) > 0.5) {\n return _exp(x) - 1;\n }\n // A more precise approximation using Taylor series expansion\n // from https://github.com/paulmillr/es6-shim/issues/314#issuecomment-70293986\n var t = x;\n var sum = 0;\n var n = 1;\n while (sum + t !== sum) {\n sum += t;\n n += 1;\n t *= x / n;\n }\n return sum;\n },\n\n hypot: function hypot(x, y) {\n var result = 0;\n var largest = 0;\n for (var i = 0; i < arguments.length; ++i) {\n var value = _abs(Number(arguments[i]));\n if (largest < value) {\n result *= (largest / value) * (largest / value);\n result += 1;\n largest = value;\n } else {\n result += value > 0 ? (value / largest) * (value / largest) : value;\n }\n }\n return largest === Infinity ? Infinity : largest * _sqrt(result);\n },\n\n log2: function log2(value) {\n return _log(value) * LOG2E;\n },\n\n log10: function log10(value) {\n return _log(value) * LOG10E;\n },\n\n log1p: function log1p(value) {\n var x = Number(value);\n if (x < -1 || numberIsNaN(x)) { return NaN; }\n if (x === 0 || x === Infinity) { return x; }\n if (x === -1) { return -Infinity; }\n\n return (1 + x) - 1 === 0 ? x : x * (_log(1 + x) / ((1 + x) - 1));\n },\n\n sign: _sign,\n\n sinh: function sinh(value) {\n var x = Number(value);\n if (!globalIsFinite(x) || x === 0) { return x; }\n\n if (_abs(x) < 1) {\n return (Math.expm1(x) - Math.expm1(-x)) / 2;\n }\n return (_exp(x - 1) - _exp(-x - 1)) * E / 2;\n },\n\n tanh: function tanh(value) {\n var x = Number(value);\n if (numberIsNaN(x) || x === 0) { return x; }\n // can exit early at +-20 as JS loses precision for true value at this integer\n if (x >= 20) { return 1; }\n if (x <= -20) { return -1; }\n\n return (Math.expm1(x) - Math.expm1(-x)) / (_exp(x) + _exp(-x));\n },\n\n trunc: function trunc(value) {\n var x = Number(value);\n return x < 0 ? -_floor(-x) : _floor(x);\n },\n\n imul: function imul(x, y) {\n // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n var a = ES.ToUint32(x);\n var b = ES.ToUint32(y);\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl) + ((((ah * bl) + (al * bh)) << 16) >>> 0) | 0;\n },\n\n fround: function fround(x) {\n var v = Number(x);\n if (v === 0 || v === Infinity || v === -Infinity || numberIsNaN(v)) {\n return v;\n }\n var sign = _sign(v);\n var abs = _abs(v);\n if (abs < BINARY_32_MIN_VALUE) {\n return sign * roundTiesToEven(\n abs / BINARY_32_MIN_VALUE / BINARY_32_EPSILON\n ) * BINARY_32_MIN_VALUE * BINARY_32_EPSILON;\n }\n // Veltkamp's splitting (?)\n var a = (1 + (BINARY_32_EPSILON / Number.EPSILON)) * abs;\n var result = a - (a - abs);\n if (result > BINARY_32_MAX_VALUE || numberIsNaN(result)) {\n return sign * Infinity;\n }\n return sign * result;\n }\n };\n defineProperties(Math, MathShims);\n // IE 11 TP has an imprecise log1p: reports Math.log1p(-1e-17) as 0\n defineProperty(Math, 'log1p', MathShims.log1p, Math.log1p(-1e-17) !== -1e-17);\n // IE 11 TP has an imprecise asinh: reports Math.asinh(-1e7) as not exactly equal to -Math.asinh(1e7)\n defineProperty(Math, 'asinh', MathShims.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));\n // Chrome 40 has an imprecise Math.tanh with very small numbers\n defineProperty(Math, 'tanh', MathShims.tanh, Math.tanh(-2e-17) !== -2e-17);\n // Chrome 40 loses Math.acosh precision with high numbers\n defineProperty(Math, 'acosh', MathShims.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);\n // Firefox 38 on Windows\n defineProperty(Math, 'cbrt', MathShims.cbrt, Math.abs(1 - (Math.cbrt(1e-300) / 1e-100)) / Number.EPSILON > 8);\n // node 0.11 has an imprecise Math.sinh with very small numbers\n defineProperty(Math, 'sinh', MathShims.sinh, Math.sinh(-2e-17) !== -2e-17);\n // FF 35 on Linux reports 22025.465794806725 for Math.expm1(10)\n var expm1OfTen = Math.expm1(10);\n defineProperty(Math, 'expm1', MathShims.expm1, expm1OfTen > 22025.465794806719 || expm1OfTen < 22025.4657948067165168);\n\n var origMathRound = Math.round;\n // breaks in e.g. Safari 8, Internet Explorer 11, Opera 12\n var roundHandlesBoundaryConditions = Math.round(0.5 - (Number.EPSILON / 4)) === 0 &&\n Math.round(-0.5 + (Number.EPSILON / 3.99)) === 1;\n\n // When engines use Math.floor(x + 0.5) internally, Math.round can be buggy for large integers.\n // This behavior should be governed by \"round to nearest, ties to even mode\"\n // see http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-number-type\n // These are the boundary cases where it breaks.\n var smallestPositiveNumberWhereRoundBreaks = inverseEpsilon + 1;\n var largestPositiveNumberWhereRoundBreaks = (2 * inverseEpsilon) - 1;\n var roundDoesNotIncreaseIntegers = [\n smallestPositiveNumberWhereRoundBreaks,\n largestPositiveNumberWhereRoundBreaks\n ].every(function (num) {\n return Math.round(num) === num;\n });\n defineProperty(Math, 'round', function round(x) {\n var floor = _floor(x);\n var ceil = floor === -1 ? -0 : floor + 1;\n return x - floor < 0.5 ? floor : ceil;\n }, !roundHandlesBoundaryConditions || !roundDoesNotIncreaseIntegers);\n Value.preserveToString(Math.round, origMathRound);\n\n var origImul = Math.imul;\n if (Math.imul(0xffffffff, 5) !== -5) {\n // Safari 6.1, at least, reports \"0\" for this value\n Math.imul = MathShims.imul;\n Value.preserveToString(Math.imul, origImul);\n }\n if (Math.imul.length !== 2) {\n // Safari 8.0.4 has a length of 1\n // fixed in https://bugs.webkit.org/show_bug.cgi?id=143658\n overrideNative(Math, 'imul', function imul(x, y) {\n return ES.Call(origImul, Math, arguments);\n });\n }\n\n // Promises\n // Simplest possible implementation; use a 3rd-party library if you\n // want the best possible speed and/or long stack traces.\n var PromiseShim = (function () {\n var setTimeout = globals.setTimeout;\n // some environments don't have setTimeout - no way to shim here.\n if (typeof setTimeout !== 'function' && typeof setTimeout !== 'object') { return; }\n\n ES.IsPromise = function (promise) {\n if (!ES.TypeIsObject(promise)) {\n return false;\n }\n if (typeof promise._promise === 'undefined') {\n return false; // uninitialized, or missing our hidden field.\n }\n return true;\n };\n\n // \"PromiseCapability\" in the spec is what most promise implementations\n // call a \"deferred\".\n var PromiseCapability = function (C) {\n if (!ES.IsConstructor(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = this;\n var resolver = function (resolve, reject) {\n if (capability.resolve !== void 0 || capability.reject !== void 0) {\n throw new TypeError('Bad Promise implementation!');\n }\n capability.resolve = resolve;\n capability.reject = reject;\n };\n // Initialize fields to inform optimizers about the object shape.\n capability.resolve = void 0;\n capability.reject = void 0;\n capability.promise = new C(resolver);\n if (!(ES.IsCallable(capability.resolve) && ES.IsCallable(capability.reject))) {\n throw new TypeError('Bad promise constructor');\n }\n };\n\n // find an appropriate setImmediate-alike\n var makeZeroTimeout;\n /*global window */\n if (typeof window !== 'undefined' && ES.IsCallable(window.postMessage)) {\n makeZeroTimeout = function () {\n // from http://dbaron.org/log/20100309-faster-timeouts\n var timeouts = [];\n var messageName = 'zero-timeout-message';\n var setZeroTimeout = function (fn) {\n _push(timeouts, fn);\n window.postMessage(messageName, '*');\n };\n var handleMessage = function (event) {\n if (event.source === window && event.data === messageName) {\n event.stopPropagation();\n if (timeouts.length === 0) { return; }\n var fn = _shift(timeouts);\n fn();\n }\n };\n window.addEventListener('message', handleMessage, true);\n return setZeroTimeout;\n };\n }\n var makePromiseAsap = function () {\n // An efficient task-scheduler based on a pre-existing Promise\n // implementation, which we can use even if we override the\n // global Promise below (in order to workaround bugs)\n // https://github.com/Raynos/observ-hash/issues/2#issuecomment-35857671\n var P = globals.Promise;\n var pr = P && P.resolve && P.resolve();\n return pr && function (task) {\n return pr.then(task);\n };\n };\n /*global process */\n /* jscs:disable disallowMultiLineTernary */\n var enqueue = ES.IsCallable(globals.setImmediate) ?\n globals.setImmediate :\n typeof process === 'object' && process.nextTick ? process.nextTick :\n makePromiseAsap() ||\n (ES.IsCallable(makeZeroTimeout) ? makeZeroTimeout() :\n function (task) { setTimeout(task, 0); }); // fallback\n /* jscs:enable disallowMultiLineTernary */\n\n // Constants for Promise implementation\n var PROMISE_IDENTITY = function (x) { return x; };\n var PROMISE_THROWER = function (e) { throw e; };\n var PROMISE_PENDING = 0;\n var PROMISE_FULFILLED = 1;\n var PROMISE_REJECTED = 2;\n // We store fulfill/reject handlers and capabilities in a single array.\n var PROMISE_FULFILL_OFFSET = 0;\n var PROMISE_REJECT_OFFSET = 1;\n var PROMISE_CAPABILITY_OFFSET = 2;\n // This is used in an optimization for chaining promises via then.\n var PROMISE_FAKE_CAPABILITY = {};\n\n var enqueuePromiseReactionJob = function (handler, capability, argument) {\n enqueue(function () {\n promiseReactionJob(handler, capability, argument);\n });\n };\n\n var promiseReactionJob = function (handler, promiseCapability, argument) {\n var handlerResult, f;\n if (promiseCapability === PROMISE_FAKE_CAPABILITY) {\n // Fast case, when we don't actually need to chain through to a\n // (real) promiseCapability.\n return handler(argument);\n }\n try {\n handlerResult = handler(argument);\n f = promiseCapability.resolve;\n } catch (e) {\n handlerResult = e;\n f = promiseCapability.reject;\n }\n f(handlerResult);\n };\n\n var fulfillPromise = function (promise, value) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.fulfillReactionHandler0,\n _promise.reactionCapability0,\n value\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_FULFILL_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n value\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = value;\n _promise.state = PROMISE_FULFILLED;\n _promise.reactionLength = 0;\n };\n\n var rejectPromise = function (promise, reason) {\n var _promise = promise._promise;\n var length = _promise.reactionLength;\n if (length > 0) {\n enqueuePromiseReactionJob(\n _promise.rejectReactionHandler0,\n _promise.reactionCapability0,\n reason\n );\n _promise.fulfillReactionHandler0 = void 0;\n _promise.rejectReactions0 = void 0;\n _promise.reactionCapability0 = void 0;\n if (length > 1) {\n for (var i = 1, idx = 0; i < length; i++, idx += 3) {\n enqueuePromiseReactionJob(\n _promise[idx + PROMISE_REJECT_OFFSET],\n _promise[idx + PROMISE_CAPABILITY_OFFSET],\n reason\n );\n promise[idx + PROMISE_FULFILL_OFFSET] = void 0;\n promise[idx + PROMISE_REJECT_OFFSET] = void 0;\n promise[idx + PROMISE_CAPABILITY_OFFSET] = void 0;\n }\n }\n }\n _promise.result = reason;\n _promise.state = PROMISE_REJECTED;\n _promise.reactionLength = 0;\n };\n\n var createResolvingFunctions = function (promise) {\n var alreadyResolved = false;\n var resolve = function (resolution) {\n var then;\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n if (resolution === promise) {\n return rejectPromise(promise, new TypeError('Self resolution'));\n }\n if (!ES.TypeIsObject(resolution)) {\n return fulfillPromise(promise, resolution);\n }\n try {\n then = resolution.then;\n } catch (e) {\n return rejectPromise(promise, e);\n }\n if (!ES.IsCallable(then)) {\n return fulfillPromise(promise, resolution);\n }\n enqueue(function () {\n promiseResolveThenableJob(promise, resolution, then);\n });\n };\n var reject = function (reason) {\n if (alreadyResolved) { return; }\n alreadyResolved = true;\n return rejectPromise(promise, reason);\n };\n return { resolve: resolve, reject: reject };\n };\n\n var optimizedThen = function (then, thenable, resolve, reject) {\n // Optimization: since we discard the result, we can pass our\n // own then implementation a special hint to let it know it\n // doesn't have to create it. (The PROMISE_FAKE_CAPABILITY\n // object is local to this implementation and unforgeable outside.)\n if (then === Promise$prototype$then) {\n _call(then, thenable, resolve, reject, PROMISE_FAKE_CAPABILITY);\n } else {\n _call(then, thenable, resolve, reject);\n }\n };\n var promiseResolveThenableJob = function (promise, thenable, then) {\n var resolvingFunctions = createResolvingFunctions(promise);\n var resolve = resolvingFunctions.resolve;\n var reject = resolvingFunctions.reject;\n try {\n optimizedThen(then, thenable, resolve, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n var Promise$prototype, Promise$prototype$then;\n var Promise = (function () {\n var PromiseShim = function Promise(resolver) {\n if (!(this instanceof PromiseShim)) {\n throw new TypeError('Constructor Promise requires \"new\"');\n }\n if (this && this._promise) {\n throw new TypeError('Bad construction');\n }\n // see https://bugs.ecmascript.org/show_bug.cgi?id=2482\n if (!ES.IsCallable(resolver)) {\n throw new TypeError('not a valid resolver');\n }\n var promise = emulateES6construct(this, PromiseShim, Promise$prototype, {\n _promise: {\n result: void 0,\n state: PROMISE_PENDING,\n // The first member of the \"reactions\" array is inlined here,\n // since most promises only have one reaction.\n // We've also exploded the 'reaction' object to inline the\n // \"handler\" and \"capability\" fields, since both fulfill and\n // reject reactions share the same capability.\n reactionLength: 0,\n fulfillReactionHandler0: void 0,\n rejectReactionHandler0: void 0,\n reactionCapability0: void 0\n }\n });\n var resolvingFunctions = createResolvingFunctions(promise);\n var reject = resolvingFunctions.reject;\n try {\n resolver(resolvingFunctions.resolve, reject);\n } catch (e) {\n reject(e);\n }\n return promise;\n };\n return PromiseShim;\n }());\n Promise$prototype = Promise.prototype;\n\n var _promiseAllResolver = function (index, values, capability, remaining) {\n var alreadyCalled = false;\n return function (x) {\n if (alreadyCalled) { return; }\n alreadyCalled = true;\n values[index] = x;\n if ((--remaining.count) === 0) {\n var resolve = capability.resolve;\n resolve(values); // call w/ this===undefined\n }\n };\n };\n\n var performPromiseAll = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var values = [];\n var remaining = { count: 1 };\n var next, nextValue;\n var index = 0;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n values[index] = void 0;\n var nextPromise = C.resolve(nextValue);\n var resolveElement = _promiseAllResolver(\n index, values, resultCapability, remaining\n );\n remaining.count += 1;\n optimizedThen(nextPromise.then, nextPromise, resolveElement, resultCapability.reject);\n index += 1;\n }\n if ((--remaining.count) === 0) {\n var resolve = resultCapability.resolve;\n resolve(values); // call w/ this===undefined\n }\n return resultCapability.promise;\n };\n\n var performPromiseRace = function (iteratorRecord, C, resultCapability) {\n var it = iteratorRecord.iterator;\n var next, nextValue, nextPromise;\n while (true) {\n try {\n next = ES.IteratorStep(it);\n if (next === false) {\n // NOTE: If iterable has no items, resulting promise will never\n // resolve; see:\n // https://github.com/domenic/promises-unwrapping/issues/75\n // https://bugs.ecmascript.org/show_bug.cgi?id=2515\n iteratorRecord.done = true;\n break;\n }\n nextValue = next.value;\n } catch (e) {\n iteratorRecord.done = true;\n throw e;\n }\n nextPromise = C.resolve(nextValue);\n optimizedThen(nextPromise.then, nextPromise, resultCapability.resolve, resultCapability.reject);\n }\n return resultCapability.promise;\n };\n\n defineProperties(Promise, {\n all: function all(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseAll(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n race: function race(iterable) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Promise is not object');\n }\n var capability = new PromiseCapability(C);\n var iterator, iteratorRecord;\n try {\n iterator = ES.GetIterator(iterable);\n iteratorRecord = { iterator: iterator, done: false };\n return performPromiseRace(iteratorRecord, C, capability);\n } catch (e) {\n var exception = e;\n if (iteratorRecord && !iteratorRecord.done) {\n try {\n ES.IteratorClose(iterator, true);\n } catch (ee) {\n exception = ee;\n }\n }\n var reject = capability.reject;\n reject(exception);\n return capability.promise;\n }\n },\n\n reject: function reject(reason) {\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n var capability = new PromiseCapability(C);\n var rejectFunc = capability.reject;\n rejectFunc(reason); // call with this===undefined\n return capability.promise;\n },\n\n resolve: function resolve(v) {\n // See https://esdiscuss.org/topic/fixing-promise-resolve for spec\n var C = this;\n if (!ES.TypeIsObject(C)) {\n throw new TypeError('Bad promise constructor');\n }\n if (ES.IsPromise(v)) {\n var constructor = v.constructor;\n if (constructor === C) {\n return v;\n }\n }\n var capability = new PromiseCapability(C);\n var resolveFunc = capability.resolve;\n resolveFunc(v); // call with this===undefined\n return capability.promise;\n }\n });\n\n defineProperties(Promise$prototype, {\n 'catch': function (onRejected) {\n return this.then(null, onRejected);\n },\n\n then: function then(onFulfilled, onRejected) {\n var promise = this;\n if (!ES.IsPromise(promise)) { throw new TypeError('not a promise'); }\n var C = ES.SpeciesConstructor(promise, Promise);\n var resultCapability;\n var returnValueIsIgnored = arguments.length > 2 && arguments[2] === PROMISE_FAKE_CAPABILITY;\n if (returnValueIsIgnored && C === Promise) {\n resultCapability = PROMISE_FAKE_CAPABILITY;\n } else {\n resultCapability = new PromiseCapability(C);\n }\n // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)\n // Note that we've split the 'reaction' object into its two\n // components, \"capabilities\" and \"handler\"\n // \"capabilities\" is always equal to `resultCapability`\n var fulfillReactionHandler = ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY;\n var rejectReactionHandler = ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER;\n var _promise = promise._promise;\n var value;\n if (_promise.state === PROMISE_PENDING) {\n if (_promise.reactionLength === 0) {\n _promise.fulfillReactionHandler0 = fulfillReactionHandler;\n _promise.rejectReactionHandler0 = rejectReactionHandler;\n _promise.reactionCapability0 = resultCapability;\n } else {\n var idx = 3 * (_promise.reactionLength - 1);\n _promise[idx + PROMISE_FULFILL_OFFSET] = fulfillReactionHandler;\n _promise[idx + PROMISE_REJECT_OFFSET] = rejectReactionHandler;\n _promise[idx + PROMISE_CAPABILITY_OFFSET] = resultCapability;\n }\n _promise.reactionLength += 1;\n } else if (_promise.state === PROMISE_FULFILLED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n fulfillReactionHandler, resultCapability, value\n );\n } else if (_promise.state === PROMISE_REJECTED) {\n value = _promise.result;\n enqueuePromiseReactionJob(\n rejectReactionHandler, resultCapability, value\n );\n } else {\n throw new TypeError('unexpected Promise state');\n }\n return resultCapability.promise;\n }\n });\n // This helps the optimizer by ensuring that methods which take\n // capabilities aren't polymorphic.\n PROMISE_FAKE_CAPABILITY = new PromiseCapability(Promise);\n Promise$prototype$then = Promise$prototype.then;\n\n return Promise;\n }());\n\n // Chrome's native Promise has extra methods that it shouldn't have. Let's remove them.\n if (globals.Promise) {\n delete globals.Promise.accept;\n delete globals.Promise.defer;\n delete globals.Promise.prototype.chain;\n }\n\n if (typeof PromiseShim === 'function') {\n // export the Promise constructor.\n defineProperties(globals, { Promise: PromiseShim });\n // In Chrome 33 (and thereabouts) Promise is defined, but the\n // implementation is buggy in a number of ways. Let's check subclassing\n // support to see if we have a buggy implementation.\n var promiseSupportsSubclassing = supportsSubclassing(globals.Promise, function (S) {\n return S.resolve(42).then(function () {}) instanceof S;\n });\n var promiseIgnoresNonFunctionThenCallbacks = !throwsError(function () {\n globals.Promise.reject(42).then(null, 5).then(null, noop);\n });\n var promiseRequiresObjectContext = throwsError(function () { globals.Promise.call(3, noop); });\n // Promise.resolve() was errata'ed late in the ES6 process.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1170742\n // https://code.google.com/p/v8/issues/detail?id=4161\n // It serves as a proxy for a number of other bugs in early Promise\n // implementations.\n var promiseResolveBroken = (function (Promise) {\n var p = Promise.resolve(5);\n p.constructor = {};\n var p2 = Promise.resolve(p);\n try {\n p2.then(null, noop).then(null, noop); // avoid \"uncaught rejection\" warnings in console\n } catch (e) {\n return true; // v8 native Promises break here https://code.google.com/p/chromium/issues/detail?id=575314\n }\n return p === p2; // This *should* be false!\n }(globals.Promise));\n\n // Chrome 46 (probably older too) does not retrieve a thenable's .then synchronously\n var getsThenSynchronously = supportsDescriptors && (function () {\n var count = 0;\n var thenable = Object.defineProperty({}, 'then', { get: function () { count += 1; } });\n Promise.resolve(thenable);\n return count === 1;\n }());\n\n var BadResolverPromise = function BadResolverPromise(executor) {\n var p = new Promise(executor);\n executor(3, function () {});\n this.then = p.then;\n this.constructor = BadResolverPromise;\n };\n BadResolverPromise.prototype = Promise.prototype;\n BadResolverPromise.all = Promise.all;\n // Chrome Canary 49 (probably older too) has some implementation bugs\n var hasBadResolverPromise = valueOrFalseIfThrows(function () {\n return !!BadResolverPromise.all([1, 2]);\n });\n\n if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||\n !promiseRequiresObjectContext || promiseResolveBroken ||\n !getsThenSynchronously || hasBadResolverPromise) {\n /* globals Promise: true */\n /* eslint-disable no-undef, no-global-assign */\n /* jshint -W020 */\n Promise = PromiseShim;\n /* jshint +W020 */\n /* eslint-enable no-undef, no-global-assign */\n /* globals Promise: false */\n overrideNative(globals, 'Promise', PromiseShim);\n }\n if (Promise.all.length !== 1) {\n var origAll = Promise.all;\n overrideNative(Promise, 'all', function all(iterable) {\n return ES.Call(origAll, this, arguments);\n });\n }\n if (Promise.race.length !== 1) {\n var origRace = Promise.race;\n overrideNative(Promise, 'race', function race(iterable) {\n return ES.Call(origRace, this, arguments);\n });\n }\n if (Promise.resolve.length !== 1) {\n var origResolve = Promise.resolve;\n overrideNative(Promise, 'resolve', function resolve(x) {\n return ES.Call(origResolve, this, arguments);\n });\n }\n if (Promise.reject.length !== 1) {\n var origReject = Promise.reject;\n overrideNative(Promise, 'reject', function reject(r) {\n return ES.Call(origReject, this, arguments);\n });\n }\n ensureEnumerable(Promise, 'all');\n ensureEnumerable(Promise, 'race');\n ensureEnumerable(Promise, 'resolve');\n ensureEnumerable(Promise, 'reject');\n addDefaultSpecies(Promise);\n }\n\n // Map and Set require a true ES5 environment\n // Their fast path also requires that the environment preserve\n // property insertion order, which is not guaranteed by the spec.\n var testOrder = function (a) {\n var b = keys(_reduce(a, function (o, k) {\n o[k] = true;\n return o;\n }, {}));\n return a.join(':') === b.join(':');\n };\n var preservesInsertionOrder = testOrder(['z', 'a', 'bb']);\n // some engines (eg, Chrome) only preserve insertion order for string keys\n var preservesNumericInsertionOrder = testOrder(['z', 1, 'a', '3', 2]);\n\n if (supportsDescriptors) {\n\n var fastkey = function fastkey(key, skipInsertionOrderCheck) {\n if (!skipInsertionOrderCheck && !preservesInsertionOrder) {\n return null;\n }\n if (isNullOrUndefined(key)) {\n return '^' + ES.ToString(key);\n } else if (typeof key === 'string') {\n return '$' + key;\n } else if (typeof key === 'number') {\n // note that -0 will get coerced to \"0\" when used as a property key\n if (!preservesNumericInsertionOrder) {\n return 'n' + key;\n }\n return key;\n } else if (typeof key === 'boolean') {\n return 'b' + key;\n }\n return null;\n };\n\n var emptyObject = function emptyObject() {\n // accomodate some older not-quite-ES5 browsers\n return Object.create ? Object.create(null) : {};\n };\n\n var addIterableToMap = function addIterableToMap(MapConstructor, map, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (entry) {\n if (!ES.TypeIsObject(entry)) {\n throw new TypeError('Iterator value ' + entry + ' is not an entry object');\n }\n map.set(entry[0], entry[1]);\n });\n } else if (iterable instanceof MapConstructor) {\n _call(MapConstructor.prototype.forEach, iterable, function (value, key) {\n map.set(key, value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = map.set;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad map'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextItem = next.value;\n try {\n if (!ES.TypeIsObject(nextItem)) {\n throw new TypeError('Iterator value ' + nextItem + ' is not an entry object');\n }\n _call(adder, map, nextItem[0], nextItem[1]);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n var addIterableToSet = function addIterableToSet(SetConstructor, set, iterable) {\n if (isArray(iterable) || Type.string(iterable)) {\n _forEach(iterable, function (value) {\n set.add(value);\n });\n } else if (iterable instanceof SetConstructor) {\n _call(SetConstructor.prototype.forEach, iterable, function (value) {\n set.add(value);\n });\n } else {\n var iter, adder;\n if (!isNullOrUndefined(iterable)) {\n adder = set.add;\n if (!ES.IsCallable(adder)) { throw new TypeError('bad set'); }\n iter = ES.GetIterator(iterable);\n }\n if (typeof iter !== 'undefined') {\n while (true) {\n var next = ES.IteratorStep(iter);\n if (next === false) { break; }\n var nextValue = next.value;\n try {\n _call(adder, set, nextValue);\n } catch (e) {\n ES.IteratorClose(iter, true);\n throw e;\n }\n }\n }\n }\n };\n\n var collectionShims = {\n Map: (function () {\n\n var empty = {};\n\n var MapEntry = function MapEntry(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n };\n\n MapEntry.prototype.isRemoved = function isRemoved() {\n return this.key === empty;\n };\n\n var isMap = function isMap(map) {\n return !!map._es6map;\n };\n\n var requireMapSlot = function requireMapSlot(map, method) {\n if (!ES.TypeIsObject(map) || !isMap(map)) {\n throw new TypeError('Method Map.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(map));\n }\n };\n\n var MapIterator = function MapIterator(map, kind) {\n requireMapSlot(map, '[[MapIterator]]');\n this.head = map._head;\n this.i = this.head;\n this.kind = kind;\n };\n\n MapIterator.prototype = {\n next: function next() {\n var i = this.i;\n var kind = this.kind;\n var head = this.head;\n if (typeof this.i === 'undefined') {\n return iteratorResult();\n }\n while (i.isRemoved() && i !== head) {\n // back up off of removed entries\n i = i.prev;\n }\n // advance to next unreturned element.\n var result;\n while (i.next !== head) {\n i = i.next;\n if (!i.isRemoved()) {\n if (kind === 'key') {\n result = i.key;\n } else if (kind === 'value') {\n result = i.value;\n } else {\n result = [i.key, i.value];\n }\n this.i = i;\n return iteratorResult(result);\n }\n }\n // once the iterator is done, it is done forever.\n this.i = void 0;\n return iteratorResult();\n }\n };\n addIterator(MapIterator.prototype);\n\n var Map$prototype;\n var MapShim = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n if (this && this._es6map) {\n throw new TypeError('Bad construction');\n }\n var map = emulateES6construct(this, Map, Map$prototype, {\n _es6map: true,\n _head: null,\n _map: OrigMap ? new OrigMap() : null,\n _size: 0,\n _storage: emptyObject()\n });\n\n var head = new MapEntry(null, null);\n // circular doubly-linked list.\n /* eslint no-multi-assign: 1 */\n head.next = head.prev = head;\n map._head = head;\n\n // Optionally initialize map from iterable\n if (arguments.length > 0) {\n addIterableToMap(Map, map, arguments[0]);\n }\n return map;\n };\n Map$prototype = MapShim.prototype;\n\n Value.getter(Map$prototype, 'size', function () {\n if (typeof this._size === 'undefined') {\n throw new TypeError('size method called on incompatible Map');\n }\n return this._size;\n });\n\n defineProperties(Map$prototype, {\n get: function get(key) {\n requireMapSlot(this, 'get');\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n entry = this._storage[fkey];\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n if (this._map) {\n // fast object key path\n entry = origMapGet.call(this._map, key);\n if (entry) {\n return entry.value;\n } else {\n return;\n }\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return i.value;\n }\n }\n },\n\n has: function has(key) {\n requireMapSlot(this, 'has');\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n return typeof this._storage[fkey] !== 'undefined';\n }\n if (this._map) {\n // fast object key path\n return origMapHas.call(this._map, key);\n }\n var head = this._head;\n var i = head;\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n return true;\n }\n }\n return false;\n },\n\n set: function set(key, value) {\n requireMapSlot(this, 'set');\n var head = this._head;\n var i = head;\n var entry;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] !== 'undefined') {\n this._storage[fkey].value = value;\n return this;\n } else {\n entry = this._storage[fkey] = new MapEntry(key, value); /* eslint no-multi-assign: 1 */\n i = head.prev;\n // fall through\n }\n } else if (this._map) {\n // fast object key path\n if (origMapHas.call(this._map, key)) {\n origMapGet.call(this._map, key).value = value;\n } else {\n entry = new MapEntry(key, value);\n origMapSet.call(this._map, key, entry);\n i = head.prev;\n // fall through\n }\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.value = value;\n return this;\n }\n }\n entry = entry || new MapEntry(key, value);\n if (ES.SameValue(-0, key)) {\n entry.key = +0; // coerce -0 to +0 in entry\n }\n entry.next = this._head;\n entry.prev = this._head.prev;\n entry.prev.next = entry;\n entry.next.prev = entry;\n this._size += 1;\n return this;\n },\n\n 'delete': function (key) {\n requireMapSlot(this, 'delete');\n var head = this._head;\n var i = head;\n var fkey = fastkey(key, true);\n if (fkey !== null) {\n // fast O(1) path\n if (typeof this._storage[fkey] === 'undefined') {\n return false;\n }\n i = this._storage[fkey].prev;\n delete this._storage[fkey];\n // fall through\n } else if (this._map) {\n // fast object key path\n if (!origMapHas.call(this._map, key)) {\n return false;\n }\n i = origMapGet.call(this._map, key).prev;\n origMapDelete.call(this._map, key);\n // fall through\n }\n while ((i = i.next) !== head) {\n if (ES.SameValueZero(i.key, key)) {\n i.key = empty;\n i.value = empty;\n i.prev.next = i.next;\n i.next.prev = i.prev;\n this._size -= 1;\n return true;\n }\n }\n return false;\n },\n\n clear: function clear() {\n /* eslint no-multi-assign: 1 */\n requireMapSlot(this, 'clear');\n this._map = OrigMap ? new OrigMap() : null;\n this._size = 0;\n this._storage = emptyObject();\n var head = this._head;\n var i = head;\n var p = i.next;\n while ((i = p) !== head) {\n i.key = empty;\n i.value = empty;\n p = i.next;\n i.next = i.prev = head;\n }\n head.next = head.prev = head;\n },\n\n keys: function keys() {\n requireMapSlot(this, 'keys');\n return new MapIterator(this, 'key');\n },\n\n values: function values() {\n requireMapSlot(this, 'values');\n return new MapIterator(this, 'value');\n },\n\n entries: function entries() {\n requireMapSlot(this, 'entries');\n return new MapIterator(this, 'key+value');\n },\n\n forEach: function forEach(callback) {\n requireMapSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var it = this.entries();\n for (var entry = it.next(); !entry.done; entry = it.next()) {\n if (context) {\n _call(callback, context, entry.value[1], entry.value[0], this);\n } else {\n callback(entry.value[1], entry.value[0], this);\n }\n }\n }\n });\n addIterator(Map$prototype, Map$prototype.entries);\n\n return MapShim;\n }()),\n\n Set: (function () {\n var isSet = function isSet(set) {\n return set._es6set && typeof set._storage !== 'undefined';\n };\n var requireSetSlot = function requireSetSlot(set, method) {\n if (!ES.TypeIsObject(set) || !isSet(set)) {\n // https://github.com/paulmillr/es6-shim/issues/176\n throw new TypeError('Set.prototype.' + method + ' called on incompatible receiver ' + ES.ToString(set));\n }\n };\n\n // Creating a Map is expensive. To speed up the common case of\n // Sets containing only string or numeric keys, we use an object\n // as backing storage and lazily create a full Map only when\n // required.\n var Set$prototype;\n var SetShim = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n if (this && this._es6set) {\n throw new TypeError('Bad construction');\n }\n var set = emulateES6construct(this, Set, Set$prototype, {\n _es6set: true,\n '[[SetData]]': null,\n _storage: emptyObject()\n });\n if (!set._es6set) {\n throw new TypeError('bad set');\n }\n\n // Optionally initialize Set from iterable\n if (arguments.length > 0) {\n addIterableToSet(Set, set, arguments[0]);\n }\n return set;\n };\n Set$prototype = SetShim.prototype;\n\n var decodeKey = function (key) {\n var k = key;\n if (k === '^null') {\n return null;\n } else if (k === '^undefined') {\n return void 0;\n } else {\n var first = k.charAt(0);\n if (first === '$') {\n return _strSlice(k, 1);\n } else if (first === 'n') {\n return +_strSlice(k, 1);\n } else if (first === 'b') {\n return k === 'btrue';\n }\n }\n return +k;\n };\n // Switch from the object backing storage to a full Map.\n var ensureMap = function ensureMap(set) {\n if (!set['[[SetData]]']) {\n var m = new collectionShims.Map();\n set['[[SetData]]'] = m;\n _forEach(keys(set._storage), function (key) {\n var k = decodeKey(key);\n m.set(k, k);\n });\n set['[[SetData]]'] = m;\n }\n set._storage = null; // free old backing storage\n };\n\n Value.getter(SetShim.prototype, 'size', function () {\n requireSetSlot(this, 'size');\n if (this._storage) {\n return keys(this._storage).length;\n }\n ensureMap(this);\n return this['[[SetData]]'].size;\n });\n\n defineProperties(SetShim.prototype, {\n has: function has(key) {\n requireSetSlot(this, 'has');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n return !!this._storage[fkey];\n }\n ensureMap(this);\n return this['[[SetData]]'].has(key);\n },\n\n add: function add(key) {\n requireSetSlot(this, 'add');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n this._storage[fkey] = true;\n return this;\n }\n ensureMap(this);\n this['[[SetData]]'].set(key, key);\n return this;\n },\n\n 'delete': function (key) {\n requireSetSlot(this, 'delete');\n var fkey;\n if (this._storage && (fkey = fastkey(key)) !== null) {\n var hasFKey = _hasOwnProperty(this._storage, fkey);\n return (delete this._storage[fkey]) && hasFKey;\n }\n ensureMap(this);\n return this['[[SetData]]']['delete'](key);\n },\n\n clear: function clear() {\n requireSetSlot(this, 'clear');\n if (this._storage) {\n this._storage = emptyObject();\n }\n if (this['[[SetData]]']) {\n this['[[SetData]]'].clear();\n }\n },\n\n values: function values() {\n requireSetSlot(this, 'values');\n ensureMap(this);\n return this['[[SetData]]'].values();\n },\n\n entries: function entries() {\n requireSetSlot(this, 'entries');\n ensureMap(this);\n return this['[[SetData]]'].entries();\n },\n\n forEach: function forEach(callback) {\n requireSetSlot(this, 'forEach');\n var context = arguments.length > 1 ? arguments[1] : null;\n var entireSet = this;\n ensureMap(entireSet);\n this['[[SetData]]'].forEach(function (value, key) {\n if (context) {\n _call(callback, context, key, key, entireSet);\n } else {\n callback(key, key, entireSet);\n }\n });\n }\n });\n defineProperty(SetShim.prototype, 'keys', SetShim.prototype.values, true);\n addIterator(SetShim.prototype, SetShim.prototype.values);\n\n return SetShim;\n }())\n };\n\n if (globals.Map || globals.Set) {\n // Safari 8, for example, doesn't accept an iterable.\n var mapAcceptsArguments = valueOrFalseIfThrows(function () { return new Map([[1, 2]]).get(1) === 2; });\n if (!mapAcceptsArguments) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, globals.Map.prototype);\n return m;\n };\n globals.Map.prototype = create(OrigMap.prototype);\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var testMap = new Map();\n var mapUsesSameValueZero = (function () {\n // Chrome 38-42, node 0.11/0.12, iojs 1/2 also have a bug when the Map has a size > 4\n var m = new Map([[1, 0], [2, 0], [3, 0], [4, 0]]);\n m.set(-0, m);\n return m.get(0) === m && m.get(-0) === m && m.has(0) && m.has(-0);\n }());\n var mapSupportsChaining = testMap.set(1, 2) === testMap;\n if (!mapUsesSameValueZero || !mapSupportsChaining) {\n overrideNative(Map.prototype, 'set', function set(k, v) {\n _call(origMapSet, this, k === 0 ? 0 : k, v);\n return this;\n });\n }\n if (!mapUsesSameValueZero) {\n defineProperties(Map.prototype, {\n get: function get(k) {\n return _call(origMapGet, this, k === 0 ? 0 : k);\n },\n has: function has(k) {\n return _call(origMapHas, this, k === 0 ? 0 : k);\n }\n }, true);\n Value.preserveToString(Map.prototype.get, origMapGet);\n Value.preserveToString(Map.prototype.has, origMapHas);\n }\n var testSet = new Set();\n var setUsesSameValueZero = (function (s) {\n s['delete'](0);\n s.add(-0);\n return !s.has(0);\n }(testSet));\n var setSupportsChaining = testSet.add(1) === testSet;\n if (!setUsesSameValueZero || !setSupportsChaining) {\n var origSetAdd = Set.prototype.add;\n Set.prototype.add = function add(v) {\n _call(origSetAdd, this, v === 0 ? 0 : v);\n return this;\n };\n Value.preserveToString(Set.prototype.add, origSetAdd);\n }\n if (!setUsesSameValueZero) {\n var origSetHas = Set.prototype.has;\n Set.prototype.has = function has(v) {\n return _call(origSetHas, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype.has, origSetHas);\n var origSetDel = Set.prototype['delete'];\n Set.prototype['delete'] = function SetDelete(v) {\n return _call(origSetDel, this, v === 0 ? 0 : v);\n };\n Value.preserveToString(Set.prototype['delete'], origSetDel);\n }\n var mapSupportsSubclassing = supportsSubclassing(globals.Map, function (M) {\n var m = new M([]);\n // Firefox 32 is ok with the instantiating the subclass but will\n // throw when the map is used.\n m.set(42, 42);\n return m instanceof M;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var mapFailsToSupportSubclassing = Object.setPrototypeOf && !mapSupportsSubclassing;\n var mapRequiresNew = (function () {\n try {\n return !(globals.Map() instanceof globals.Map);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Map.length !== 0 || mapFailsToSupportSubclassing || !mapRequiresNew) {\n globals.Map = function Map() {\n if (!(this instanceof Map)) {\n throw new TypeError('Constructor Map requires \"new\"');\n }\n var m = new OrigMap();\n if (arguments.length > 0) {\n addIterableToMap(Map, m, arguments[0]);\n }\n delete m.constructor;\n Object.setPrototypeOf(m, Map.prototype);\n return m;\n };\n globals.Map.prototype = OrigMap.prototype;\n defineProperty(globals.Map.prototype, 'constructor', globals.Map, true);\n Value.preserveToString(globals.Map, OrigMap);\n }\n var setSupportsSubclassing = supportsSubclassing(globals.Set, function (S) {\n var s = new S([]);\n s.add(42, 42);\n return s instanceof S;\n });\n // without Object.setPrototypeOf, subclassing is not possible\n var setFailsToSupportSubclassing = Object.setPrototypeOf && !setSupportsSubclassing;\n var setRequiresNew = (function () {\n try {\n return !(globals.Set() instanceof globals.Set);\n } catch (e) {\n return e instanceof TypeError;\n }\n }());\n if (globals.Set.length !== 0 || setFailsToSupportSubclassing || !setRequiresNew) {\n var OrigSet = globals.Set;\n globals.Set = function Set() {\n if (!(this instanceof Set)) {\n throw new TypeError('Constructor Set requires \"new\"');\n }\n var s = new OrigSet();\n if (arguments.length > 0) {\n addIterableToSet(Set, s, arguments[0]);\n }\n delete s.constructor;\n Object.setPrototypeOf(s, Set.prototype);\n return s;\n };\n globals.Set.prototype = OrigSet.prototype;\n defineProperty(globals.Set.prototype, 'constructor', globals.Set, true);\n Value.preserveToString(globals.Set, OrigSet);\n }\n var newMap = new globals.Map();\n var mapIterationThrowsStopIterator = !valueOrFalseIfThrows(function () {\n return newMap.keys().next().done;\n });\n /*\n - In Firefox < 23, Map#size is a function.\n - In all current Firefox, Set#entries/keys/values & Map#clear do not exist\n - https://bugzilla.mozilla.org/show_bug.cgi?id=869996\n - In Firefox 24, Map and Set do not implement forEach\n - In Firefox 25 at least, Map and Set are callable without \"new\"\n */\n if (\n typeof globals.Map.prototype.clear !== 'function' ||\n new globals.Set().size !== 0 ||\n newMap.size !== 0 ||\n typeof globals.Map.prototype.keys !== 'function' ||\n typeof globals.Set.prototype.keys !== 'function' ||\n typeof globals.Map.prototype.forEach !== 'function' ||\n typeof globals.Set.prototype.forEach !== 'function' ||\n isCallableWithoutNew(globals.Map) ||\n isCallableWithoutNew(globals.Set) ||\n typeof newMap.keys().next !== 'function' || // Safari 8\n mapIterationThrowsStopIterator || // Firefox 25\n !mapSupportsSubclassing\n ) {\n defineProperties(globals, {\n Map: collectionShims.Map,\n Set: collectionShims.Set\n }, true);\n }\n\n if (globals.Set.prototype.keys !== globals.Set.prototype.values) {\n // Fixed in WebKit with https://bugs.webkit.org/show_bug.cgi?id=144190\n defineProperty(globals.Set.prototype, 'keys', globals.Set.prototype.values, true);\n }\n\n // Shim incomplete iterator implementations.\n addIterator(Object.getPrototypeOf((new globals.Map()).keys()));\n addIterator(Object.getPrototypeOf((new globals.Set()).keys()));\n\n if (functionsHaveNames && globals.Set.prototype.has.name !== 'has') {\n // Microsoft Edge v0.11.10074.0 is missing a name on Set#has\n var anonymousSetHas = globals.Set.prototype.has;\n overrideNative(globals.Set.prototype, 'has', function has(key) {\n return _call(anonymousSetHas, this, key);\n });\n }\n }\n defineProperties(globals, collectionShims);\n addDefaultSpecies(globals.Map);\n addDefaultSpecies(globals.Set);\n }\n\n var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {\n if (!ES.TypeIsObject(target)) {\n throw new TypeError('target must be an object');\n }\n };\n\n // Some Reflect methods are basically the same as\n // those on the Object global, except that a TypeError is thrown if\n // target isn't an object. As well as returning a boolean indicating\n // the success of the operation.\n var ReflectShims = {\n // Apply method in a functional form.\n apply: function apply() {\n return ES.Call(ES.Call, null, arguments);\n },\n\n // New operator in a functional form.\n construct: function construct(constructor, args) {\n if (!ES.IsConstructor(constructor)) {\n throw new TypeError('First argument must be a constructor.');\n }\n var newTarget = arguments.length > 2 ? arguments[2] : constructor;\n if (!ES.IsConstructor(newTarget)) {\n throw new TypeError('new.target must be a constructor.');\n }\n return ES.Construct(constructor, args, newTarget, 'internal');\n },\n\n // When deleting a non-existent or configurable property,\n // true is returned.\n // When attempting to delete a non-configurable property,\n // it will return false.\n deleteProperty: function deleteProperty(target, key) {\n throwUnlessTargetIsObject(target);\n if (supportsDescriptors) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (desc && !desc.configurable) {\n return false;\n }\n }\n\n // Will return true.\n return delete target[key];\n },\n\n has: function has(target, key) {\n throwUnlessTargetIsObject(target);\n return key in target;\n }\n };\n\n if (Object.getOwnPropertyNames) {\n Object.assign(ReflectShims, {\n // Basically the result of calling the internal [[OwnPropertyKeys]].\n // Concatenating propertyNames and propertySymbols should do the trick.\n // This should continue to work together with a Symbol shim\n // which overrides Object.getOwnPropertyNames and implements\n // Object.getOwnPropertySymbols.\n ownKeys: function ownKeys(target) {\n throwUnlessTargetIsObject(target);\n var keys = Object.getOwnPropertyNames(target);\n\n if (ES.IsCallable(Object.getOwnPropertySymbols)) {\n _pushApply(keys, Object.getOwnPropertySymbols(target));\n }\n\n return keys;\n }\n });\n }\n\n var callAndCatchException = function ConvertExceptionToBoolean(func) {\n return !throwsError(func);\n };\n\n if (Object.preventExtensions) {\n Object.assign(ReflectShims, {\n isExtensible: function isExtensible(target) {\n throwUnlessTargetIsObject(target);\n return Object.isExtensible(target);\n },\n preventExtensions: function preventExtensions(target) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.preventExtensions(target);\n });\n }\n });\n }\n\n if (supportsDescriptors) {\n var internalGet = function get(target, key, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent === null) {\n return void 0;\n }\n\n return internalGet(parent, key, receiver);\n }\n\n if ('value' in desc) {\n return desc.value;\n }\n\n if (desc.get) {\n return ES.Call(desc.get, receiver);\n }\n\n return void 0;\n };\n\n var internalSet = function set(target, key, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(target, key);\n\n if (!desc) {\n var parent = Object.getPrototypeOf(target);\n\n if (parent !== null) {\n return internalSet(parent, key, value, receiver);\n }\n\n desc = {\n value: void 0,\n writable: true,\n enumerable: true,\n configurable: true\n };\n }\n\n if ('value' in desc) {\n if (!desc.writable) {\n return false;\n }\n\n if (!ES.TypeIsObject(receiver)) {\n return false;\n }\n\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, key);\n\n if (existingDesc) {\n return Reflect.defineProperty(receiver, key, {\n value: value\n });\n } else {\n return Reflect.defineProperty(receiver, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (desc.set) {\n _call(desc.set, receiver, value);\n return true;\n }\n\n return false;\n };\n\n Object.assign(ReflectShims, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n throwUnlessTargetIsObject(target);\n return callAndCatchException(function () {\n Object.defineProperty(target, propertyKey, attributes);\n });\n },\n\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n throwUnlessTargetIsObject(target);\n return Object.getOwnPropertyDescriptor(target, propertyKey);\n },\n\n // Syntax in a functional form.\n get: function get(target, key) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 2 ? arguments[2] : target;\n\n return internalGet(target, key, receiver);\n },\n\n set: function set(target, key, value) {\n throwUnlessTargetIsObject(target);\n var receiver = arguments.length > 3 ? arguments[3] : target;\n\n return internalSet(target, key, value, receiver);\n }\n });\n }\n\n if (Object.getPrototypeOf) {\n var objectDotGetPrototypeOf = Object.getPrototypeOf;\n ReflectShims.getPrototypeOf = function getPrototypeOf(target) {\n throwUnlessTargetIsObject(target);\n return objectDotGetPrototypeOf(target);\n };\n }\n\n if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {\n var willCreateCircularPrototype = function (object, lastProto) {\n var proto = lastProto;\n while (proto) {\n if (object === proto) {\n return true;\n }\n proto = ReflectShims.getPrototypeOf(proto);\n }\n return false;\n };\n\n Object.assign(ReflectShims, {\n // Sets the prototype of the given object.\n // Returns true on success, otherwise false.\n setPrototypeOf: function setPrototypeOf(object, proto) {\n throwUnlessTargetIsObject(object);\n if (proto !== null && !ES.TypeIsObject(proto)) {\n throw new TypeError('proto must be an object or null');\n }\n\n // If they already are the same, we're done.\n if (proto === Reflect.getPrototypeOf(object)) {\n return true;\n }\n\n // Cannot alter prototype if object not extensible.\n if (Reflect.isExtensible && !Reflect.isExtensible(object)) {\n return false;\n }\n\n // Ensure that we do not create a circular prototype chain.\n if (willCreateCircularPrototype(object, proto)) {\n return false;\n }\n\n Object.setPrototypeOf(object, proto);\n\n return true;\n }\n });\n }\n var defineOrOverrideReflectProperty = function (key, shim) {\n if (!ES.IsCallable(globals.Reflect[key])) {\n defineProperty(globals.Reflect, key, shim);\n } else {\n var acceptsPrimitives = valueOrFalseIfThrows(function () {\n globals.Reflect[key](1);\n globals.Reflect[key](NaN);\n globals.Reflect[key](true);\n return true;\n });\n if (acceptsPrimitives) {\n overrideNative(globals.Reflect, key, shim);\n }\n }\n };\n Object.keys(ReflectShims).forEach(function (key) {\n defineOrOverrideReflectProperty(key, ReflectShims[key]);\n });\n var originalReflectGetProto = globals.Reflect.getPrototypeOf;\n if (functionsHaveNames && originalReflectGetProto && originalReflectGetProto.name !== 'getPrototypeOf') {\n overrideNative(globals.Reflect, 'getPrototypeOf', function getPrototypeOf(target) {\n return _call(originalReflectGetProto, globals.Reflect, target);\n });\n }\n if (globals.Reflect.setPrototypeOf) {\n if (valueOrFalseIfThrows(function () {\n globals.Reflect.setPrototypeOf(1, {});\n return true;\n })) {\n overrideNative(globals.Reflect, 'setPrototypeOf', ReflectShims.setPrototypeOf);\n }\n }\n if (globals.Reflect.defineProperty) {\n if (!valueOrFalseIfThrows(function () {\n var basic = !globals.Reflect.defineProperty(1, 'test', { value: 1 });\n // \"extensible\" fails on Edge 0.12\n var extensible = typeof Object.preventExtensions !== 'function' || !globals.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});\n return basic && extensible;\n })) {\n overrideNative(globals.Reflect, 'defineProperty', ReflectShims.defineProperty);\n }\n }\n if (globals.Reflect.construct) {\n if (!valueOrFalseIfThrows(function () {\n var F = function F() {};\n return globals.Reflect.construct(function () {}, [], F) instanceof F;\n })) {\n overrideNative(globals.Reflect, 'construct', ReflectShims.construct);\n }\n }\n\n if (String(new Date(NaN)) !== 'Invalid Date') {\n var dateToString = Date.prototype.toString;\n var shimmedDateToString = function toString() {\n var valueOf = +this;\n if (valueOf !== valueOf) {\n return 'Invalid Date';\n }\n return ES.Call(dateToString, this);\n };\n overrideNative(Date.prototype, 'toString', shimmedDateToString);\n }\n\n // Annex B HTML methods\n // http://www.ecma-international.org/ecma-262/6.0/#sec-additional-properties-of-the-string.prototype-object\n var stringHTMLshims = {\n anchor: function anchor(name) { return ES.CreateHTML(this, 'a', 'name', name); },\n big: function big() { return ES.CreateHTML(this, 'big', '', ''); },\n blink: function blink() { return ES.CreateHTML(this, 'blink', '', ''); },\n bold: function bold() { return ES.CreateHTML(this, 'b', '', ''); },\n fixed: function fixed() { return ES.CreateHTML(this, 'tt', '', ''); },\n fontcolor: function fontcolor(color) { return ES.CreateHTML(this, 'font', 'color', color); },\n fontsize: function fontsize(size) { return ES.CreateHTML(this, 'font', 'size', size); },\n italics: function italics() { return ES.CreateHTML(this, 'i', '', ''); },\n link: function link(url) { return ES.CreateHTML(this, 'a', 'href', url); },\n small: function small() { return ES.CreateHTML(this, 'small', '', ''); },\n strike: function strike() { return ES.CreateHTML(this, 'strike', '', ''); },\n sub: function sub() { return ES.CreateHTML(this, 'sub', '', ''); },\n sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }\n };\n _forEach(Object.keys(stringHTMLshims), function (key) {\n var method = String.prototype[key];\n var shouldOverwrite = false;\n if (ES.IsCallable(method)) {\n var output = _call(method, '', ' \" ');\n var quotesCount = _concat([], output.match(/\"/g)).length;\n shouldOverwrite = output !== output.toLowerCase() || quotesCount > 2;\n } else {\n shouldOverwrite = true;\n }\n if (shouldOverwrite) {\n overrideNative(String.prototype, key, stringHTMLshims[key]);\n }\n });\n\n var JSONstringifiesSymbols = (function () {\n // Microsoft Edge v0.12 stringifies Symbols incorrectly\n if (!hasSymbols) { return false; } // Symbols are not supported\n var stringify = typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;\n if (!stringify) { return false; } // JSON.stringify is not supported\n if (typeof stringify(Symbol()) !== 'undefined') { return true; } // Symbols should become `undefined`\n if (stringify([Symbol()]) !== '[null]') { return true; } // Symbols in arrays should become `null`\n var obj = { a: Symbol() };\n obj[Symbol()] = true;\n if (stringify(obj) !== '{}') { return true; } // Symbol-valued keys *and* Symbol-valued properties should be omitted\n return false;\n }());\n var JSONstringifyAcceptsObjectSymbol = valueOrFalseIfThrows(function () {\n // Chrome 45 throws on stringifying object symbols\n if (!hasSymbols) { return true; } // Symbols are not supported\n return JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify([Object(Symbol())]) === '[{}]';\n });\n if (JSONstringifiesSymbols || !JSONstringifyAcceptsObjectSymbol) {\n var origStringify = JSON.stringify;\n overrideNative(JSON, 'stringify', function stringify(value) {\n if (typeof value === 'symbol') { return; }\n var replacer;\n if (arguments.length > 1) {\n replacer = arguments[1];\n }\n var args = [value];\n if (!isArray(replacer)) {\n var replaceFn = ES.IsCallable(replacer) ? replacer : null;\n var wrappedReplacer = function (key, val) {\n var parsedValue = replaceFn ? _call(replaceFn, this, key, val) : val;\n if (typeof parsedValue !== 'symbol') {\n if (Type.symbol(parsedValue)) {\n return assignTo({})(parsedValue);\n } else {\n return parsedValue;\n }\n }\n };\n args.push(wrappedReplacer);\n } else {\n // create wrapped replacer that handles an array replacer?\n args.push(replacer);\n }\n if (arguments.length > 2) {\n args.push(arguments[2]);\n }\n return origStringify.apply(this, args);\n });\n }\n\n return globals;\n}));\n","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","/** @license React v16.7.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,A=n?Symbol.for(\"react.memo\"):\n60115,B=n?Symbol.for(\"react.lazy\"):60116,C=\"function\"===typeof Symbol&&Symbol.iterator;function aa(a,b,e,c,d,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[e,c,d,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction D(a){for(var b=arguments.length-1,e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;cQ.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;hthis.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=z.extend({data:null}),nb=z.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=gb(),fb=eb=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function E(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var F={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){F[a]=new E(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];F[b]=new E(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){F[a]=new E(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){F[a]=new E(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){F[a]=new E(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){F[a]=new E(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){F[a]=new E(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){F[a]=new E(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){F[a]=new E(a,5,!1,a.toLowerCase(),null)});var vc=/[\\-:]([a-z])/g;function wc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(vc,\nwc);F[b]=new E(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});F.tabIndex=new E(\"tabIndex\",1,!1,\"tabindex\",null);\nfunction xc(a,b,c,d){var e=F.hasOwnProperty(b)?F[b]:null;var f=null!==e?0===e.type:d?!1:!(2Fd.length&&Fd.push(a)}}}var Ld={},Md=0,Nd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Od(a){Object.prototype.hasOwnProperty.call(a,Nd)||(a[Nd]=Md++,Ld[a[Nd]]={});return Ld[a[Nd]]}function Pd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Qd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Rd(a,b){var c=Qd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Qd(c)}}function Sd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Sd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Td(){for(var a=window,b=Pd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Pd(a.document)}return b}function Ud(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Vd=Sa&&\"documentMode\"in document&&11>=document.documentMode,Wd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Xd=null,Yd=null,Zd=null,$d=!1;\nfunction ae(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if($d||null==Xd||Xd!==Pd(c))return null;c=Xd;\"selectionStart\"in c&&Ud(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Zd&&jd(Zd,c)?null:(Zd=c,a=z.getPooled(Wd.select,Yd,a,b),a.type=\"select\",a.target=Xd,Ra(a),a)}\nvar be={eventTypes:Wd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Od(e);f=ta.onSelect;for(var g=0;g=b.length?void 0:t(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:yc(c)}}\nfunction ie(a,b){var c=yc(b.value),d=yc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function je(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ke={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction le(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function me(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?le(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ne=void 0,oe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ke.svg||\"innerHTML\"in a)a.innerHTML=b;else{ne=ne||document.createElement(\"div\");ne.innerHTML=\"\"+b+\"\";for(b=ne.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pe(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},re=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qe).forEach(function(a){re.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qe[b]=qe[a]})});function se(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qe.hasOwnProperty(a)&&qe[a]?(\"\"+b).trim():b+\"px\"}\nfunction te(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=se(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ue=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ve(a,b){b&&(ue[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?t(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?t(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:t(\"61\")),null!=b.style&&\"object\"!==typeof b.style?t(\"62\",\"\"):void 0)}\nfunction we(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction xe(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Od(a);b=ta[b];for(var d=0;dJe||(a.current=Ie[Je],Ie[Je]=null,Je--)}function J(a,b){Je++;Ie[Je]=a.current;a.current=b}var Ke={},K={current:Ke},L={current:!1},Le=Ke;\nfunction Me(a,b){var c=a.type.contextTypes;if(!c)return Ke;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function M(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ne(a){I(L,a);I(K,a)}function Oe(a){I(L,a);I(K,a)}\nfunction Pe(a,b,c){K.current!==Ke?t(\"168\"):void 0;J(K,b,a);J(L,c,a)}function Qe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:t(\"108\",mc(b)||\"Unknown\",e);return n({},c,d)}function Re(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Ke;Le=K.current;J(K,b,a);J(L,L.current,a);return!0}\nfunction Se(a,b,c){var d=a.stateNode;d?void 0:t(\"169\");c?(b=Qe(a,b,Le),d.__reactInternalMemoizedMergedChildContext=b,I(L,a),I(K,a),J(K,b,a)):I(L,a);J(L,c,a)}var Te=null,Ue=null;function Ve(a){return function(b){try{return a(b)}catch(c){}}}\nfunction We(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Te=Ve(function(a){return b.onCommitFiberRoot(c,a)});Ue=Ve(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Xe(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function N(a,b,c,d){return new Xe(a,b,c,d)}\nfunction Ye(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Ze(a){if(\"function\"===typeof a)return Ye(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gc)return 11;if(a===ic)return 14}return 2}\nfunction $e(a,b){var c=a.alternate;null===c?(c=N(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction af(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ye(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ac:return bf(c.children,e,f,b);case fc:return cf(c,e|3,f,b);case bc:return cf(c,e|2,f,b);case cc:return a=N(12,c,b,e|4),a.elementType=cc,a.type=cc,a.expirationTime=f,a;case hc:return a=N(13,c,b,e),a.elementType=hc,a.type=hc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case dc:g=10;break a;case ec:g=9;break a;case gc:g=11;break a;case ic:g=\n14;break a;case jc:g=16;d=null;break a}t(\"130\",null==a?a:typeof a,\"\")}b=N(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function bf(a,b,c,d){a=N(7,a,d,b);a.expirationTime=c;return a}function cf(a,b,c,d){a=N(8,a,d,b);b=0===(b&1)?bc:fc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function df(a,b,c){a=N(6,a,null,b);a.expirationTime=c;return a}\nfunction ef(a,b,c){b=N(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ff(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);gf(b,a)}\nfunction hf(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);gf(b,a)}function jf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}\nfunction gf(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}var kf=!1;function lf(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction mf(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function of(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=lf(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=lf(a.memoizedState),e=c.updateQueue=lf(c.memoizedState)):d=a.updateQueue=mf(e):null===e&&(e=c.updateQueue=mf(d));null===e||d===e?of(d,b):null===d.lastUpdate||null===e.lastUpdate?(of(d,b),of(e,b)):(of(d,b),e.lastUpdate=b)}\nfunction qf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=lf(a.memoizedState):rf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function rf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=mf(b));return b}\nfunction sf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:kf=!0}return d}\nfunction tf(a,b,c,d,e){kf=!1;b=rf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mu?(p=m,m=null):p=m.sibling;var v=w(e,m,h[u],k);if(null===v){null===m&&(m=p);break}a&&\nm&&null===v.alternate&&b(e,m);g=f(v,g,u);null===q?l=v:q.sibling=v;q=v;m=p}if(u===h.length)return c(e,m),l;if(null===m){for(;uu?(p=q,q=null):p=q.sibling;var A=w(e,q,v.value,k);if(null===A){q||(q=p);break}a&&q&&null===A.alternate&&b(e,q);g=f(A,g,u);null===m?l=A:m.sibling=A;m=A;q=p}if(v.done)return c(e,q),l;if(null===q){for(;!v.done;u++,v=h.next())v=r(e,v.value,k),null!==v&&(g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);return l}for(q=d(e,q);!v.done;u++,v=h.next())v=y(q,e,u,v.value,k),null!==v&&(a&&null!==v.alternate&&q.delete(null===v.key?u:\nv.key),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ac&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Zb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ac:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ac?f.props.children:f.props,h);d.ref=bg(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===ac?(d=bf(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=af(f.type,f.key,f.props,null,a.mode,h),h.ref=bg(a,d,f),h.return=a,a=h)}return g(a);case $b:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ef(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=df(f,a.mode,h),d.return=a,a=d),g(a);if(ag(f))return B(a,d,f,h);if(lc(f))return R(a,d,f,h);l&&cg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,t(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var eg=dg(!0),fg=dg(!1),gg=null,hg=null,ig=!1;\nfunction jg(a,b){var c=N(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function kg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}\nfunction lg(a){if(ig){var b=hg;if(b){var c=b;if(!kg(a,b)){b=Ge(c);if(!b||!kg(a,b)){a.effectTag|=2;ig=!1;gg=a;return}jg(gg,c)}gg=a;hg=He(b)}else a.effectTag|=2,ig=!1,gg=a}}function mg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;gg=a}function ng(a){if(a!==gg)return!1;if(!ig)return mg(a),ig=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ce(b,a.memoizedProps))for(b=hg;b;)jg(a,b),b=Ge(b);mg(a);hg=gg?Ge(a.stateNode):null;return!0}function og(){hg=gg=null;ig=!1}var pg=Xb.ReactCurrentOwner;\nfunction Q(a,b,c,d){b.child=null===a?fg(b,null,c,d):eg(b,a.child,c,d)}function qg(a,b,c,d,e){c=c.render;var f=b.ref;Df(b,e);d=c(d,f);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction rg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ye(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,sg(a,b,g,d,e,f);a=af(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return zg(a,b,c);b=tg(a,b,c);return null!==b?b.sibling:null}}return tg(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==\na&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Me(b,K.current);Df(b,c);e=d(a,e);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(M(d)){var f=!0;Re(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Qf(b,d,g,a);e.updater=Vf;b.stateNode=e;e._reactInternalFiber=b;$f(b,d,a,c);b=xg(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;\nreturn b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=Nf(e);b.type=a;e=b.tag=Ze(a);f=P(a,f);g=void 0;switch(e){case 0:g=ug(null,b,a,f,c);break;case 1:g=wg(null,b,a,f,c);break;case 11:g=qg(null,b,a,f,c);break;case 14:g=rg(null,b,a,P(a.type,f),d,c);break;default:t(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),ug(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),wg(a,b,\nd,e,c);case 3:yg(b);d=b.updateQueue;null===d?t(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;tf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)og(),b=tg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)hg=He(b.stateNode.containerInfo),gg=b,e=ig=!0;e?(b.effectTag|=2,b.child=fg(b,null,d,c)):(Q(a,b,d,c),og());b=b.child}return b;case 5:return Lf(b),null===a&&lg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ce(d,e)?g=null:null!==\nf&&Ce(d,f)&&(b.effectTag|=16),vg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&lg(b),null;case 13:return zg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=eg(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),qg(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,\nc),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Bf(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!L.current){b=tg(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=nf(c);k.tag=2;pf(g,k)}g.expirationTime<\nc&&(g.expirationTime=c);k=g.alternate;null!==k&&k.expirationTime\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof r.is?l=l.createElement(e,{is:r.is}):(l=l.createElement(e),\"select\"===e&&r.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[Ga]=m;e[Ha]=g;Cg(e,b,!1,!1);r=e;l=f;m=g;var w=h,y=we(l,m);switch(l){case \"iframe\":case \"object\":H(\"load\",\nr);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==S)return S;null!==c&&0===(c.effectTag&1024)&&(null===\nc.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=y)r=0;else if(-1===r||y component higher in the tree to provide a loading indicator or placeholder to display.\"+\nnc(k))}fh=!0;l=wf(l,k);g=h;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Vg(g,l,f);qf(g,f);break a;case 1:if(m=l,r=g.type,w=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof r.getDerivedStateFromError||null!==w&&\"function\"===typeof w.componentDidCatch&&(null===Yg||!Yg.has(w)))){g.effectTag|=2048;g.expirationTime=f;f=Xg(g,m,f);qf(g,f);break a}}g=g.return}while(null!==g)}S=kh(e);continue}}}break}while(1);dh=!1;Af=zf=yf=ah.currentDispatcher=null;if(d)T=null,a.finishedWork=null;\nelse if(null!==S)a.finishedWork=null;else{d=a.current.alternate;null===d?t(\"281\"):void 0;T=null;if(fh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=\nc,a.finishedWork=d)}}function Mg(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Yg||!Yg.has(d))){a=wf(b,a);a=Xg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}break;case 3:a=wf(b,a);a=Vg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}c=c.return}3===a.tag&&(c=wf(b,a),c=Vg(a,c,1073741823),pf(a,c),Uf(a,1073741823))}\nfunction Sf(a,b){0!==ch?a=ch:dh?a=gh?1073741823:U:b.mode&1?(a=qh?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==T&&a===U&&--a):a=1073741823;qh&&(0===rh||a=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;gf(c,a);c=a.expirationTime;0!==c&&sh(a,c)}}\nfunction Tg(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=Rf();b=Sf(b,a);a=th(a,b);null!==a&&(ff(a,b),b=a.expirationTime,0!==b&&sh(a,b))}\nfunction th(a,b){a.expirationTimeU&&jh(),ff(a,b),dh&&!gh&&T===a||sh(a,a.expirationTime),uh>vh&&(uh=0,t(\"185\")))}function wh(a,b,c,d,e){var f=ch;ch=1073741823;try{return a(b,c,d,e)}finally{ch=f}}var xh=null,W=null,yh=0,zh=void 0,X=!1,Ah=null,Y=0,rh=0,Bh=!1,Ch=null,Z=!1,Dh=!1,qh=!1,Eh=null,Fh=ba.unstable_now(),Gh=1073741822-(Fh/10|0),Hh=Gh,vh=50,uh=0,Ih=null;function Jh(){Gh=1073741822-((ba.unstable_now()-Fh)/10|0)}\nfunction Kh(a,b){if(0!==yh){if(ba.expirationTime&&(a.expirationTime=b);X||(Z?Dh&&(Ah=a,Y=1073741823,Ph(a,1073741823,!1)):1073741823===b?Qh(1073741823,!1):Kh(a,b))}\nfunction Oh(){var a=0,b=null;if(null!==W)for(var c=W,d=xh;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?t(\"244\"):void 0;if(d===d.nextScheduledRoot){xh=W=d.nextScheduledRoot=null;break}else if(d===xh)xh=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=xh;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===W)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}Ah=b;Y=a}var Rh=!1;function nh(){return Rh?!0:ba.unstable_shouldYield()?Rh=!0:!1}function Lh(){try{if(!nh()&&null!==xh){Jh();var a=xh;do{var b=a.expirationTime;0!==b&&Gh<=b&&(a.nextExpirationTimeToWorkOn=Gh);a=a.nextScheduledRoot}while(a!==xh)}Qh(0,!0)}finally{Rh=!1}}\nfunction Qh(a,b){Oh();if(b)for(Jh(),Hh=Gh;null!==Ah&&0!==Y&&a<=Y&&!(Rh&&Gh>Y);)Ph(Ah,Y,Gh>Y),Oh(),Jh(),Hh=Gh;else for(;null!==Ah&&0!==Y&&a<=Y;)Ph(Ah,Y,!1),Oh();b&&(yh=0,zh=null);0!==Y&&Kh(Ah,Y);uh=0;Ih=null;if(null!==Eh)for(a=Eh,Eh=null,b=0;b=c&&(null===Eh?Eh=[d]:Eh.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Ih?uh++:(Ih=a,uh=0);gh=dh=!0;a.current===b?t(\"177\"):void 0;c=a.pendingCommitExpirationTime;0===c?t(\"261\"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=\n0):(dd?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime,0===e?ff(a,d):de&&ff(a,d));gf(0,a);ah.current=null;1q&&(u=q,q=G,G=u),u=Rd(x,G),A=Rd(x,q),u&&A&&(1!==p.rangeCount||p.anchorNode!==u.node||p.anchorOffset!==u.offset||p.focusNode!==A.node||p.focusOffset!==A.offset)&&(C=C.createRange(),C.setStart(u.node,u.offset),p.removeAllRanges(),\nG>q?(p.addRange(C),p.extend(A.node,A.offset)):(C.setEnd(A.node,A.offset),p.addRange(C))))));C=[];for(p=x;p=p.parentNode;)1===p.nodeType&&C.push({element:p,left:p.scrollLeft,top:p.scrollTop});\"function\"===typeof x.focus&&x.focus();for(x=0;xFb?b:Fb;0===b&&(Yg=\nnull);a.expirationTime=b;a.finishedWork=null}function Wg(a){null===Ah?t(\"246\"):void 0;Ah.expirationTime=0;Bh||(Bh=!0,Ch=a)}function Th(a,b){var c=Z;Z=!0;try{return a(b)}finally{(Z=c)||X||Qh(1073741823,!1)}}function Uh(a,b){if(Z&&!Dh){Dh=!0;try{return a(b)}finally{Dh=!1}}return a(b)}function Wh(a,b,c){if(qh)return a(b,c);Z||X||0===rh||(Qh(rh,!1),rh=0);var d=qh,e=Z;Z=qh=!0;try{return a(b,c)}finally{qh=d,(Z=e)||X||Qh(1073741823,!1)}}\nfunction Xh(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kd(c)&&1===c.tag?void 0:t(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(M(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);t(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(M(h)){c=Qe(c,h,g);break a}}c=g}else c=Ke;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nTf();pf(f,e);Uf(f,d);return d}function Yh(a,b,c,d){var e=b.current,f=Rf();e=Sf(f,e);return Xh(a,b,c,e,d)}function Zh(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function $h(a,b,c){var d=3=bh&&(b=bh-1);this._expirationTime=bh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}ai.prototype.render=function(a){this._defer?void 0:t(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new bi;Xh(a,b,null,c,d._onCommit);return d};\nai.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nai.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:t(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?t(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Nh(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};ai.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function di(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Kb=Th;Lb=Wh;Mb=function(){X||0===rh||(Qh(rh,!1),rh=0)};\nfunction ei(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new ci(a,!1,b)}\nfunction fi(a,b,c,d,e){di(c)?void 0:t(\"200\");var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Zh(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=ei(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Zh(f._internalRoot);h.call(a)}}Uh(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Zh(f._internalRoot)}\nfunction gi(a,b){var c=2=b){d=a;break}a=a.next}while(a!==c);null===d?d=c:d===c&&(c=g,p());b=d.previous;b.next=d.previous=g;g.next=d;g.previous=\nb}}function v(){if(-1===k&&null!==c&&1===c.priorityLevel){m=!0;try{do u();while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?p():n=!1}}}function t(a){m=!0;var b=f;f=a;try{if(a)for(;null!==c;){var d=exports.unstable_now();if(c.expirationTime<=d){do u();while(null!==c&&c.expirationTime<=d)}else break}else if(null!==c){do u();while(null!==c&&!w())}}finally{m=!1,f=b,null!==c?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var d=exports.unstable_now(),e=!1;if(0>=P-d)if(-1!==b&&b<=d)e=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(e)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var d=h,e=k;h=a;k=exports.unstable_now();try{return b()}finally{h=d,k=e,v()}};\nexports.unstable_scheduleCallback=function(a,b){var d=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=d+b.timeout;else switch(h){case 1:b=d+-1;break;case 2:b=d+250;break;case 5:b=d+1073741823;break;case 4:b=d+1E4;break;default:b=d+5E3}a={callback:a,priorityLevel:h,expirationTime:b,next:null,previous:null};if(null===c)c=a.next=a.previous=a,p();else{d=null;var e=c;do{if(e.expirationTime>b){d=e;break}e=e.next}while(e!==c);null===d?d=c:d===c&&(c=a,p());\nb=d.previous;b.next=d.previous=a;a.next=d;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)c=null;else{a===c&&(c=b);var d=a.previous;d.next=b;b.previous=d}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=h;return function(){var d=h,e=k;h=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{h=d,k=e,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return h};\nexports.unstable_shouldYield=function(){return!f&&(null!==c&&c.expirationTimethis.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=z.extend({data:null}),nb=z.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=gb(),fb=eb=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function E(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var F={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){F[a]=new E(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];F[b]=new E(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){F[a]=new E(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){F[a]=new E(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){F[a]=new E(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){F[a]=new E(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){F[a]=new E(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){F[a]=new E(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){F[a]=new E(a,5,!1,a.toLowerCase(),null)});var vc=/[\\-:]([a-z])/g;function wc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(vc,\nwc);F[b]=new E(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(vc,wc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});F.tabIndex=new E(\"tabIndex\",1,!1,\"tabindex\",null);\nfunction xc(a,b,c,d){var e=F.hasOwnProperty(b)?F[b]:null;var f=null!==e?0===e.type:d?!1:!(2Fd.length&&Fd.push(a)}}}var Ld={},Md=0,Nd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Od(a){Object.prototype.hasOwnProperty.call(a,Nd)||(a[Nd]=Md++,Ld[a[Nd]]={});return Ld[a[Nd]]}function Pd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Qd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Rd(a,b){var c=Qd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Qd(c)}}function Sd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Sd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Td(){for(var a=window,b=Pd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Pd(a.document)}return b}function Ud(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Vd=Sa&&\"documentMode\"in document&&11>=document.documentMode,Wd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Xd=null,Yd=null,Zd=null,$d=!1;\nfunction ae(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if($d||null==Xd||Xd!==Pd(c))return null;c=Xd;\"selectionStart\"in c&&Ud(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Zd&&jd(Zd,c)?null:(Zd=c,a=z.getPooled(Wd.select,Yd,a,b),a.type=\"select\",a.target=Xd,Ra(a),a)}\nvar be={eventTypes:Wd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Od(e);f=ta.onSelect;for(var g=0;g=b.length?void 0:t(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:yc(c)}}\nfunction ie(a,b){var c=yc(b.value),d=yc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function je(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ke={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction le(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function me(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?le(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ne=void 0,oe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ke.svg||\"innerHTML\"in a)a.innerHTML=b;else{ne=ne||document.createElement(\"div\");ne.innerHTML=\"\"+b+\"\";for(b=ne.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pe(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},re=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qe).forEach(function(a){re.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qe[b]=qe[a]})});function se(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qe.hasOwnProperty(a)&&qe[a]?(\"\"+b).trim():b+\"px\"}\nfunction te(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=se(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ue=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ve(a,b){b&&(ue[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?t(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?t(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:t(\"61\")),null!=b.style&&\"object\"!==typeof b.style?t(\"62\",\"\"):void 0)}\nfunction we(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction xe(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Od(a);b=ta[b];for(var d=0;dJe||(a.current=Ie[Je],Ie[Je]=null,Je--)}function J(a,b){Je++;Ie[Je]=a.current;a.current=b}var Ke={},K={current:Ke},L={current:!1},Le=Ke;\nfunction Me(a,b){var c=a.type.contextTypes;if(!c)return Ke;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function M(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ne(a){I(L,a);I(K,a)}function Oe(a){I(L,a);I(K,a)}\nfunction Pe(a,b,c){K.current!==Ke?t(\"168\"):void 0;J(K,b,a);J(L,c,a)}function Qe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:t(\"108\",mc(b)||\"Unknown\",e);return n({},c,d)}function Re(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Ke;Le=K.current;J(K,b,a);J(L,L.current,a);return!0}\nfunction Se(a,b,c){var d=a.stateNode;d?void 0:t(\"169\");c?(b=Qe(a,b,Le),d.__reactInternalMemoizedMergedChildContext=b,I(L,a),I(K,a),J(K,b,a)):I(L,a);J(L,c,a)}var Te=null,Ue=null;function Ve(a){return function(b){try{return a(b)}catch(c){}}}\nfunction We(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Te=Ve(function(a){return b.onCommitFiberRoot(c,a)});Ue=Ve(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Xe(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function N(a,b,c,d){return new Xe(a,b,c,d)}\nfunction Ye(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Ze(a){if(\"function\"===typeof a)return Ye(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gc)return 11;if(a===ic)return 14}return 2}\nfunction $e(a,b){var c=a.alternate;null===c?(c=N(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction af(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ye(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ac:return bf(c.children,e,f,b);case fc:return cf(c,e|3,f,b);case bc:return cf(c,e|2,f,b);case cc:return a=N(12,c,b,e|4),a.elementType=cc,a.type=cc,a.expirationTime=f,a;case hc:return a=N(13,c,b,e),a.elementType=hc,a.type=hc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case dc:g=10;break a;case ec:g=9;break a;case gc:g=11;break a;case ic:g=\n14;break a;case jc:g=16;d=null;break a}t(\"130\",null==a?a:typeof a,\"\")}b=N(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function bf(a,b,c,d){a=N(7,a,d,b);a.expirationTime=c;return a}function cf(a,b,c,d){a=N(8,a,d,b);b=0===(b&1)?bc:fc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function df(a,b,c){a=N(6,a,null,b);a.expirationTime=c;return a}\nfunction ef(a,b,c){b=N(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ff(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);gf(b,a)}\nfunction hf(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);gf(b,a)}function jf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}\nfunction gf(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}var kf=!1;function lf(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction mf(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function of(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=lf(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=lf(a.memoizedState),e=c.updateQueue=lf(c.memoizedState)):d=a.updateQueue=mf(e):null===e&&(e=c.updateQueue=mf(d));null===e||d===e?of(d,b):null===d.lastUpdate||null===e.lastUpdate?(of(d,b),of(e,b)):(of(d,b),e.lastUpdate=b)}\nfunction qf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=lf(a.memoizedState):rf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function rf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=mf(b));return b}\nfunction sf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:kf=!0}return d}\nfunction tf(a,b,c,d,e){kf=!1;b=rf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mu?(p=m,m=null):p=m.sibling;var v=w(e,m,h[u],k);if(null===v){null===m&&(m=p);break}a&&\nm&&null===v.alternate&&b(e,m);g=f(v,g,u);null===q?l=v:q.sibling=v;q=v;m=p}if(u===h.length)return c(e,m),l;if(null===m){for(;uu?(p=q,q=null):p=q.sibling;var A=w(e,q,v.value,k);if(null===A){q||(q=p);break}a&&q&&null===A.alternate&&b(e,q);g=f(A,g,u);null===m?l=A:m.sibling=A;m=A;q=p}if(v.done)return c(e,q),l;if(null===q){for(;!v.done;u++,v=h.next())v=r(e,v.value,k),null!==v&&(g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);return l}for(q=d(e,q);!v.done;u++,v=h.next())v=y(q,e,u,v.value,k),null!==v&&(a&&null!==v.alternate&&q.delete(null===v.key?u:\nv.key),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ac&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Zb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ac:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ac?f.props.children:f.props,h);d.ref=bg(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===ac?(d=bf(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=af(f.type,f.key,f.props,null,a.mode,h),h.ref=bg(a,d,f),h.return=a,a=h)}return g(a);case $b:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ef(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=df(f,a.mode,h),d.return=a,a=d),g(a);if(ag(f))return B(a,d,f,h);if(lc(f))return R(a,d,f,h);l&&cg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,t(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var eg=dg(!0),fg=dg(!1),gg=null,hg=null,ig=!1;\nfunction jg(a,b){var c=N(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function kg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}\nfunction lg(a){if(ig){var b=hg;if(b){var c=b;if(!kg(a,b)){b=Ge(c);if(!b||!kg(a,b)){a.effectTag|=2;ig=!1;gg=a;return}jg(gg,c)}gg=a;hg=He(b)}else a.effectTag|=2,ig=!1,gg=a}}function mg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;gg=a}function ng(a){if(a!==gg)return!1;if(!ig)return mg(a),ig=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ce(b,a.memoizedProps))for(b=hg;b;)jg(a,b),b=Ge(b);mg(a);hg=gg?Ge(a.stateNode):null;return!0}function og(){hg=gg=null;ig=!1}var pg=Xb.ReactCurrentOwner;\nfunction Q(a,b,c,d){b.child=null===a?fg(b,null,c,d):eg(b,a.child,c,d)}function qg(a,b,c,d,e){c=c.render;var f=b.ref;Df(b,e);d=c(d,f);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction rg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ye(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,sg(a,b,g,d,e,f);a=af(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return zg(a,b,c);b=tg(a,b,c);return null!==b?b.sibling:null}}return tg(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==\na&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Me(b,K.current);Df(b,c);e=d(a,e);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(M(d)){var f=!0;Re(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Qf(b,d,g,a);e.updater=Vf;b.stateNode=e;e._reactInternalFiber=b;$f(b,d,a,c);b=xg(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;\nreturn b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=Nf(e);b.type=a;e=b.tag=Ze(a);f=P(a,f);g=void 0;switch(e){case 0:g=ug(null,b,a,f,c);break;case 1:g=wg(null,b,a,f,c);break;case 11:g=qg(null,b,a,f,c);break;case 14:g=rg(null,b,a,P(a.type,f),d,c);break;default:t(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),ug(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),wg(a,b,\nd,e,c);case 3:yg(b);d=b.updateQueue;null===d?t(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;tf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)og(),b=tg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)hg=He(b.stateNode.containerInfo),gg=b,e=ig=!0;e?(b.effectTag|=2,b.child=fg(b,null,d,c)):(Q(a,b,d,c),og());b=b.child}return b;case 5:return Lf(b),null===a&&lg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ce(d,e)?g=null:null!==\nf&&Ce(d,f)&&(b.effectTag|=16),vg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&lg(b),null;case 13:return zg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=eg(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:P(d,e),qg(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,\nc),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Bf(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!L.current){b=tg(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=nf(c);k.tag=2;pf(g,k)}g.expirationTime<\nc&&(g.expirationTime=c);k=g.alternate;null!==k&&k.expirationTime\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof r.is?l=l.createElement(e,{is:r.is}):(l=l.createElement(e),\"select\"===e&&r.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[Ga]=m;e[Ha]=g;Cg(e,b,!1,!1);r=e;l=f;m=g;var w=h,y=we(l,m);switch(l){case \"iframe\":case \"object\":H(\"load\",\nr);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==S)return S;null!==c&&0===(c.effectTag&1024)&&(null===\nc.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=y)r=0;else if(-1===r||y component higher in the tree to provide a loading indicator or placeholder to display.\"+\nnc(k))}fh=!0;l=wf(l,k);g=h;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Vg(g,l,f);qf(g,f);break a;case 1:if(m=l,r=g.type,w=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof r.getDerivedStateFromError||null!==w&&\"function\"===typeof w.componentDidCatch&&(null===Yg||!Yg.has(w)))){g.effectTag|=2048;g.expirationTime=f;f=Xg(g,m,f);qf(g,f);break a}}g=g.return}while(null!==g)}S=kh(e);continue}}}break}while(1);dh=!1;Af=zf=yf=ah.currentDispatcher=null;if(d)T=null,a.finishedWork=null;\nelse if(null!==S)a.finishedWork=null;else{d=a.current.alternate;null===d?t(\"281\"):void 0;T=null;if(fh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=\nc,a.finishedWork=d)}}function Mg(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Yg||!Yg.has(d))){a=wf(b,a);a=Xg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}break;case 3:a=wf(b,a);a=Vg(c,a,1073741823);pf(c,a);Uf(c,1073741823);return}c=c.return}3===a.tag&&(c=wf(b,a),c=Vg(a,c,1073741823),pf(a,c),Uf(a,1073741823))}\nfunction Sf(a,b){0!==ch?a=ch:dh?a=gh?1073741823:U:b.mode&1?(a=qh?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==T&&a===U&&--a):a=1073741823;qh&&(0===rh||a=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;gf(c,a);c=a.expirationTime;0!==c&&sh(a,c)}}\nfunction Tg(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=Rf();b=Sf(b,a);a=th(a,b);null!==a&&(ff(a,b),b=a.expirationTime,0!==b&&sh(a,b))}\nfunction th(a,b){a.expirationTimeU&&jh(),ff(a,b),dh&&!gh&&T===a||sh(a,a.expirationTime),uh>vh&&(uh=0,t(\"185\")))}function wh(a,b,c,d,e){var f=ch;ch=1073741823;try{return a(b,c,d,e)}finally{ch=f}}var xh=null,W=null,yh=0,zh=void 0,X=!1,Ah=null,Y=0,rh=0,Bh=!1,Ch=null,Z=!1,Dh=!1,qh=!1,Eh=null,Fh=ba.unstable_now(),Gh=1073741822-(Fh/10|0),Hh=Gh,vh=50,uh=0,Ih=null;function Jh(){Gh=1073741822-((ba.unstable_now()-Fh)/10|0)}\nfunction Kh(a,b){if(0!==yh){if(ba.expirationTime&&(a.expirationTime=b);X||(Z?Dh&&(Ah=a,Y=1073741823,Ph(a,1073741823,!1)):1073741823===b?Qh(1073741823,!1):Kh(a,b))}\nfunction Oh(){var a=0,b=null;if(null!==W)for(var c=W,d=xh;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?t(\"244\"):void 0;if(d===d.nextScheduledRoot){xh=W=d.nextScheduledRoot=null;break}else if(d===xh)xh=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=xh;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===W)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}Ah=b;Y=a}var Rh=!1;function nh(){return Rh?!0:ba.unstable_shouldYield()?Rh=!0:!1}function Lh(){try{if(!nh()&&null!==xh){Jh();var a=xh;do{var b=a.expirationTime;0!==b&&Gh<=b&&(a.nextExpirationTimeToWorkOn=Gh);a=a.nextScheduledRoot}while(a!==xh)}Qh(0,!0)}finally{Rh=!1}}\nfunction Qh(a,b){Oh();if(b)for(Jh(),Hh=Gh;null!==Ah&&0!==Y&&a<=Y&&!(Rh&&Gh>Y);)Ph(Ah,Y,Gh>Y),Oh(),Jh(),Hh=Gh;else for(;null!==Ah&&0!==Y&&a<=Y;)Ph(Ah,Y,!1),Oh();b&&(yh=0,zh=null);0!==Y&&Kh(Ah,Y);uh=0;Ih=null;if(null!==Eh)for(a=Eh,Eh=null,b=0;b=c&&(null===Eh?Eh=[d]:Eh.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Ih?uh++:(Ih=a,uh=0);gh=dh=!0;a.current===b?t(\"177\"):void 0;c=a.pendingCommitExpirationTime;0===c?t(\"261\"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=\n0):(dd?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime,0===e?ff(a,d):de&&ff(a,d));gf(0,a);ah.current=null;1q&&(u=q,q=G,G=u),u=Rd(x,G),A=Rd(x,q),u&&A&&(1!==p.rangeCount||p.anchorNode!==u.node||p.anchorOffset!==u.offset||p.focusNode!==A.node||p.focusOffset!==A.offset)&&(C=C.createRange(),C.setStart(u.node,u.offset),p.removeAllRanges(),\nG>q?(p.addRange(C),p.extend(A.node,A.offset)):(C.setEnd(A.node,A.offset),p.addRange(C))))));C=[];for(p=x;p=p.parentNode;)1===p.nodeType&&C.push({element:p,left:p.scrollLeft,top:p.scrollTop});\"function\"===typeof x.focus&&x.focus();for(x=0;xFb?b:Fb;0===b&&(Yg=\nnull);a.expirationTime=b;a.finishedWork=null}function Wg(a){null===Ah?t(\"246\"):void 0;Ah.expirationTime=0;Bh||(Bh=!0,Ch=a)}function Th(a,b){var c=Z;Z=!0;try{return a(b)}finally{(Z=c)||X||Qh(1073741823,!1)}}function Uh(a,b){if(Z&&!Dh){Dh=!0;try{return a(b)}finally{Dh=!1}}return a(b)}function Wh(a,b,c){if(qh)return a(b,c);Z||X||0===rh||(Qh(rh,!1),rh=0);var d=qh,e=Z;Z=qh=!0;try{return a(b,c)}finally{qh=d,(Z=e)||X||Qh(1073741823,!1)}}\nfunction Xh(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kd(c)&&1===c.tag?void 0:t(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(M(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);t(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(M(h)){c=Qe(c,h,g);break a}}c=g}else c=Ke;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nTf();pf(f,e);Uf(f,d);return d}function Yh(a,b,c,d){var e=b.current,f=Rf();e=Sf(f,e);return Xh(a,b,c,e,d)}function Zh(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function $h(a,b,c){var d=3=bh&&(b=bh-1);this._expirationTime=bh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}ai.prototype.render=function(a){this._defer?void 0:t(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new bi;Xh(a,b,null,c,d._onCommit);return d};\nai.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nai.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:t(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?t(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Nh(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};ai.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function di(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Kb=Th;Lb=Wh;Mb=function(){X||0===rh||(Qh(rh,!1),rh=0)};\nfunction ei(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new ci(a,!1,b)}\nfunction fi(a,b,c,d,e){di(c)?void 0:t(\"200\");var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Zh(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=ei(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Zh(f._internalRoot);h.call(a)}}Uh(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Zh(f._internalRoot)}\nfunction gi(a,b){var c=2Q.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h=b){d=a;break}a=a.next}while(a!==c);null===d?d=c:d===c&&(c=g,p());b=d.previous;b.next=d.previous=g;g.next=d;g.previous=\nb}}function v(){if(-1===k&&null!==c&&1===c.priorityLevel){m=!0;try{do u();while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?p():n=!1}}}function t(a){m=!0;var b=f;f=a;try{if(a)for(;null!==c;){var d=exports.unstable_now();if(c.expirationTime<=d){do u();while(null!==c&&c.expirationTime<=d)}else break}else if(null!==c){do u();while(null!==c&&!w())}}finally{m=!1,f=b,null!==c?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var d=exports.unstable_now(),e=!1;if(0>=P-d)if(-1!==b&&b<=d)e=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(e)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var d=h,e=k;h=a;k=exports.unstable_now();try{return b()}finally{h=d,k=e,v()}};\nexports.unstable_scheduleCallback=function(a,b){var d=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=d+b.timeout;else switch(h){case 1:b=d+-1;break;case 2:b=d+250;break;case 5:b=d+1073741823;break;case 4:b=d+1E4;break;default:b=d+5E3}a={callback:a,priorityLevel:h,expirationTime:b,next:null,previous:null};if(null===c)c=a.next=a.previous=a,p();else{d=null;var e=c;do{if(e.expirationTime>b){d=e;break}e=e.next}while(e!==c);null===d?d=c:d===c&&(c=a,p());\nb=d.previous;b.next=d.previous=a;a.next=d;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)c=null;else{a===c&&(c=b);var d=a.previous;d.next=b;b.previous=d}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=h;return function(){var d=h,e=k;h=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{h=d,k=e,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return h};\nexports.unstable_shouldYield=function(){return!f&&(null!==c&&c.expirationTimethis.eventPool.length&&this.eventPool.push(a)}\nfunction E(a){a.eventPool=[];a.getPooled=ea;a.release=fa}var F=D.extend({touchHistory:function(){return null}});function G(a){return\"touchstart\"===a||\"mousedown\"===a}function H(a){return\"touchmove\"===a||\"mousemove\"===a}function I(a){return\"touchend\"===a||\"touchcancel\"===a||\"mouseup\"===a}var J=[\"touchstart\",\"mousedown\"],K=[\"touchmove\",\"mousemove\"],L=[\"touchcancel\",\"touchend\",\"mouseup\"],M=[],N={touchBank:M,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};\nfunction O(a){return a.timeStamp||a.timestamp}function P(a){a=a.identifier;null==a?m(\"138\"):void 0;return a}\nfunction ha(a){var b=P(a),c=M[b];c?(c.touchActive=!0,c.startPageX=a.pageX,c.startPageY=a.pageY,c.startTimeStamp=O(a),c.currentPageX=a.pageX,c.currentPageY=a.pageY,c.currentTimeStamp=O(a),c.previousPageX=a.pageX,c.previousPageY=a.pageY,c.previousTimeStamp=O(a)):(c={touchActive:!0,startPageX:a.pageX,startPageY:a.pageY,startTimeStamp:O(a),currentPageX:a.pageX,currentPageY:a.pageY,currentTimeStamp:O(a),previousPageX:a.pageX,previousPageY:a.pageY,previousTimeStamp:O(a)},M[b]=c);N.mostRecentTimeStamp=O(a)}\nfunction ia(a){var b=M[P(a)];b?(b.touchActive=!0,b.previousPageX=b.currentPageX,b.previousPageY=b.currentPageY,b.previousTimeStamp=b.currentTimeStamp,b.currentPageX=a.pageX,b.currentPageY=a.pageY,b.currentTimeStamp=O(a),N.mostRecentTimeStamp=O(a)):console.error(\"Cannot record touch move without a touch start.\\nTouch Move: %s\\n\",\"Touch Bank: %s\",Q(a),R())}\nfunction ja(a){var b=M[P(a)];b?(b.touchActive=!1,b.previousPageX=b.currentPageX,b.previousPageY=b.currentPageY,b.previousTimeStamp=b.currentTimeStamp,b.currentPageX=a.pageX,b.currentPageY=a.pageY,b.currentTimeStamp=O(a),N.mostRecentTimeStamp=O(a)):console.error(\"Cannot record touch end without a touch start.\\nTouch End: %s\\n\",\"Touch Bank: %s\",Q(a),R())}function Q(a){return JSON.stringify({identifier:a.identifier,pageX:a.pageX,pageY:a.pageY,timestamp:O(a)})}\nfunction R(){var a=JSON.stringify(M.slice(0,20));20Ra||(b.current=Qa[Ra],Qa[Ra]=null,Ra--)}function F(b,a){Ra++;Qa[Ra]=b.current;b.current=a}var G={},H={current:G},I={current:!1},Sa=G;function Ta(b,a){var c=b.type.contextTypes;if(!c)return G;var d=b.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===a)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=a[f];d&&(b=b.stateNode,b.__reactInternalMemoizedUnmaskedChildContext=a,b.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction K(b){b=b.childContextTypes;return null!==b&&void 0!==b}function Ua(b){E(I,b);E(H,b)}function Va(b){E(I,b);E(H,b)}function Wa(b,a,c){H.current!==G?p(\"168\"):void 0;F(H,a,b);F(I,c,b)}function Xa(b,a,c){var d=b.stateNode;b=a.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in b?void 0:p(\"108\",B(a)||\"Unknown\",e);return aa({},c,d)}\nfunction Ya(b){var a=b.stateNode;a=a&&a.__reactInternalMemoizedMergedChildContext||G;Sa=H.current;F(H,a,b);F(I,I.current,b);return!0}function Za(b,a,c){var d=b.stateNode;d?void 0:p(\"169\");c?(a=Xa(b,a,Sa),d.__reactInternalMemoizedMergedChildContext=a,E(I,b),E(H,b),F(H,a,b)):E(I,b);F(I,c,b)}var $a=null,ab=null;function bb(b){return function(a){try{return b(a)}catch(c){}}}\nfunction cb(b){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(a.isDisabled||!a.supportsFiber)return!0;try{var c=a.inject(b);$a=bb(function(b){return a.onCommitFiberRoot(c,b)});ab=bb(function(b){return a.onCommitFiberUnmount(c,b)})}catch(d){}return!0}\nfunction db(b,a,c,d){this.tag=b;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=a;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function L(b,a,c,d){return new db(b,a,c,d)}\nfunction eb(b){b=b.prototype;return!(!b||!b.isReactComponent)}function gb(b){if(\"function\"===typeof b)return eb(b)?1:0;if(void 0!==b&&null!==b){b=b.$$typeof;if(b===pa)return 11;if(b===ra)return 14}return 2}\nfunction hb(b,a){var c=b.alternate;null===c?(c=L(b.tag,a,b.key,b.mode),c.elementType=b.elementType,c.type=b.type,c.stateNode=b.stateNode,c.alternate=b,b.alternate=c):(c.pendingProps=a,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=b.childExpirationTime;c.expirationTime=b.expirationTime;c.child=b.child;c.memoizedProps=b.memoizedProps;c.memoizedState=b.memoizedState;c.updateQueue=b.updateQueue;c.firstContextDependency=b.firstContextDependency;c.sibling=b.sibling;\nc.index=b.index;c.ref=b.ref;return c}\nfunction ib(b,a,c,d,e,f){var g=2;d=b;if(\"function\"===typeof b)eb(b)&&(g=1);else if(\"string\"===typeof b)g=5;else a:switch(b){case A:return M(c.children,e,f,a);case oa:return jb(c,e|3,f,a);case ka:return jb(c,e|2,f,a);case la:return b=L(12,c,a,e|4),b.elementType=la,b.type=la,b.expirationTime=f,b;case qa:return b=L(13,c,a,e),b.elementType=qa,b.type=qa,b.expirationTime=f,b;default:if(\"object\"===typeof b&&null!==b)switch(b.$$typeof){case ma:g=10;break a;case na:g=9;break a;case pa:g=11;break a;case ra:g=\n14;break a;case sa:g=16;d=null;break a}p(\"130\",null==b?b:typeof b,\"\")}a=L(g,c,a,e);a.elementType=b;a.type=d;a.expirationTime=f;return a}function M(b,a,c,d){b=L(7,b,d,a);b.expirationTime=c;return b}function jb(b,a,c,d){b=L(8,b,d,a);a=0===(a&1)?ka:oa;b.elementType=a;b.type=a;b.expirationTime=c;return b}function kb(b,a,c){b=L(6,b,null,a);b.expirationTime=c;return b}\nfunction lb(b,a,c){a=L(4,null!==b.children?b.children:[],b.key,a);a.expirationTime=c;a.stateNode={containerInfo:b.containerInfo,pendingChildren:null,implementation:b.implementation};return a}function mb(b,a){b.didError=!1;var c=b.earliestPendingTime;0===c?b.earliestPendingTime=b.latestPendingTime=a:ca&&(b.latestPendingTime=a);nb(a,b)}\nfunction ob(b,a){b.didError=!1;b.latestPingedTime>=a&&(b.latestPingedTime=0);var c=b.earliestPendingTime,d=b.latestPendingTime;c===a?b.earliestPendingTime=d===a?b.latestPendingTime=0:d:d===a&&(b.latestPendingTime=c);c=b.earliestSuspendedTime;d=b.latestSuspendedTime;0===c?b.earliestSuspendedTime=b.latestSuspendedTime=a:ca&&(b.latestSuspendedTime=a);nb(a,b)}function pb(b,a){var c=b.earliestPendingTime;b=b.earliestSuspendedTime;c>a&&(a=c);b>a&&(a=b);return a}\nfunction nb(b,a){var c=a.earliestSuspendedTime,d=a.latestSuspendedTime,e=a.earliestPendingTime,f=a.latestPingedTime;e=0!==e?e:f;0===e&&(0===b||db&&(b=c);a.nextExpirationTimeToWorkOn=e;a.expirationTime=b}var qb=!1;function rb(b){return{baseState:b,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction sb(b){return{baseState:b.baseState,firstUpdate:b.firstUpdate,lastUpdate:b.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function tb(b){return{expirationTime:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ub(b,a){null===b.lastUpdate?b.firstUpdate=b.lastUpdate=a:(b.lastUpdate.next=a,b.lastUpdate=a)}\nfunction N(b,a){var c=b.alternate;if(null===c){var d=b.updateQueue;var e=null;null===d&&(d=b.updateQueue=rb(b.memoizedState))}else d=b.updateQueue,e=c.updateQueue,null===d?null===e?(d=b.updateQueue=rb(b.memoizedState),e=c.updateQueue=rb(c.memoizedState)):d=b.updateQueue=sb(e):null===e&&(e=c.updateQueue=sb(d));null===e||d===e?ub(d,a):null===d.lastUpdate||null===e.lastUpdate?(ub(d,a),ub(e,a)):(ub(d,a),e.lastUpdate=a)}\nfunction vb(b,a){var c=b.updateQueue;c=null===c?b.updateQueue=rb(b.memoizedState):wb(b,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=a:(c.lastCapturedUpdate.next=a,c.lastCapturedUpdate=a)}function wb(b,a){var c=b.alternate;null!==c&&a===c.updateQueue&&(a=b.updateQueue=sb(a));return a}\nfunction xb(b,a,c,d,e,f){switch(c.tag){case 1:return b=c.payload,\"function\"===typeof b?b.call(f,d,e):b;case 3:b.effectTag=b.effectTag&-2049|64;case 0:b=c.payload;e=\"function\"===typeof b?b.call(f,d,e):b;if(null===e||void 0===e)break;return aa({},d,e);case 2:qb=!0}return d}\nfunction yb(b,a,c,d,e){qb=!1;a=wb(b,a);for(var f=a.baseState,g=null,k=0,h=a.firstUpdate,l=f;null!==h;){var n=h.expirationTime;nq?(n=r,r=null):n=r.sibling;var t=u(e,r,h[q],k);if(null===t){null===r&&(r=n);break}b&&\nr&&null===t.alternate&&a(e,r);g=f(t,g,q);null===x?l=t:x.sibling=t;x=t;r=n}if(q===h.length)return c(e,r),l;if(null===r){for(;qx?(n=q,q=null):n=q.sibling;var v=u(e,q,t.value,k);if(null===v){q||(q=n);break}b&&q&&null===v.alternate&&a(e,q);g=f(v,g,x);null===r?l=v:r.sibling=v;r=v;q=n}if(t.done)return c(e,q),l;if(null===q){for(;!t.done;x++,t=h.next())t=y(e,t.value,k),null!==t&&(g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);return l}for(q=d(e,q);!t.done;x++,t=h.next())t=w(q,e,x,t.value,k),null!==t&&(b&&null!==t.alternate&&q.delete(null===t.key?x:\nt.key),g=f(t,g,x),null===r?l=t:r.sibling=t,r=t);b&&q.forEach(function(b){return a(e,b)});return l}return function(b,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===A&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ia:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===A:k.elementType===f.type){c(b,k.sibling);d=e(k,f.type===A?f.props.children:f.props,h);d.ref=jc(b,k,f);d.return=b;b=d;break a}else{c(b,k);break}else a(b,k);k=k.sibling}f.type===\nA?(d=M(f.props.children,b.mode,h,f.key),d.return=b,b=d):(h=ib(f.type,f.key,f.props,null,b.mode,h),h.ref=jc(b,d,f),h.return=b,b=h)}return g(b);case ja:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(b,d.sibling);d=e(d,f.children||[],h);d.return=b;b=d;break a}else{c(b,d);break}else a(b,d);d=d.sibling}d=lb(f,b.mode,h);d.return=b;b=d}return g(b)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,\nnull!==d&&6===d.tag?(c(b,d.sibling),d=e(d,f,h),d.return=b,b=d):(c(b,d),d=kb(f,b.mode,h),d.return=b,b=d),g(b);if(ic(f))return J(b,d,f,h);if(ua(f))return v(b,d,f,h);l&&kc(b,f);if(\"undefined\"===typeof f&&!k)switch(b.tag){case 1:case 0:h=b.type,p(\"152\",h.displayName||h.name||\"Component\")}return c(b,d)}}var mc=lc(!0),nc=lc(!1),oc=null,pc=null,qc=!1;function rc(b){switch(b.tag){case 5:return p(\"305\"),b.stateNode=void 0,!0;case 6:return p(\"305\"),b.stateNode=void 0,!0;default:return!1}}\nfunction sc(b){if(qc){var a=pc;if(a){var c=a;if(!rc(b,a)){p(\"305\");a=void 0;if(!a||!rc(b,a)){b.effectTag|=2;qc=!1;oc=b;return}a=oc;var d=L(5,null,null,0);d.elementType=\"DELETED\";d.type=\"DELETED\";d.stateNode=c;d.return=a;d.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=d,a.lastEffect=d):a.firstEffect=a.lastEffect=d}oc=b;p(\"305\");pc=void 0}else b.effectTag|=2,qc=!1,oc=b}}var tc=ha.ReactCurrentOwner;function Q(b,a,c,d){a.child=null===b?nc(a,null,c,d):mc(a,b.child,c,d)}\nfunction uc(b,a,c,d,e){c=c.render;var f=a.ref;Ib(a,e);d=c(d,f);a.effectTag|=1;Q(b,a,d,e);return a.child}\nfunction vc(b,a,c,d,e,f){if(null===b){var g=c.type;if(\"function\"===typeof g&&!eb(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return a.tag=15,a.type=g,wc(b,a,g,d,e,f);b=ib(c.type,null,d,null,a.mode,f);b.ref=a.ref;b.return=a;return a.child=b}g=b.child;if(e=c)return Dc(b,a,c);a=xc(b,a,c);return null!==a?a.sibling:null}}return xc(b,a,c)}a.expirationTime=0;switch(a.tag){case 2:d=a.elementType;null!==b&&(b.alternate=\nnull,a.alternate=null,a.effectTag|=2);b=a.pendingProps;var e=Ta(a,H.current);Ib(a,c);e=d(b,e);a.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){a.tag=1;if(K(d)){var f=!0;Ya(a)}else f=!1;a.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Zb(a,d,g,b);e.updater=dc;a.stateNode=e;e._reactInternalFiber=a;hc(a,d,b,c);a=Bc(null,a,d,!0,f,c)}else a.tag=0,Q(null,a,e,c),a=a.child;return a;case 16:e=\na.elementType;null!==b&&(b.alternate=null,a.alternate=null,a.effectTag|=2);f=a.pendingProps;b=Wb(e);a.type=b;e=a.tag=gb(b);f=P(b,f);g=void 0;switch(e){case 0:g=yc(null,a,b,f,c);break;case 1:g=Ac(null,a,b,f,c);break;case 11:g=uc(null,a,b,f,c);break;case 14:g=vc(null,a,b,P(b.type,f),d,c);break;default:p(\"306\",b,\"\")}return g;case 0:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),yc(b,a,d,e,c);case 1:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),Ac(b,a,d,e,c);case 3:return Cc(a),\nd=a.updateQueue,null===d?p(\"282\"):void 0,e=a.memoizedState,e=null!==e?e.element:null,yb(a,d,a.pendingProps,null,c),d=a.memoizedState.element,d===e?a=xc(b,a,c):(Q(b,a,d,c),a=a.child),a;case 5:return Rb(a),null===b&&sc(a),d=a.type,e=a.pendingProps,f=null!==b?b.memoizedProps:null,g=e.children,Na(d,e)?g=null:null!==f&&Na(d,f)&&(a.effectTag|=16),zc(b,a),Q(b,a,g,c),a=a.child,a;case 6:return null===b&&sc(a),null;case 13:return Dc(b,a,c);case 4:return Pb(a,a.stateNode.containerInfo),d=a.pendingProps,null===\nb?a.child=mc(a,null,d,c):Q(b,a,d,c),a.child;case 11:return d=a.type,e=a.pendingProps,e=a.elementType===d?e:P(d,e),uc(b,a,d,e,c);case 7:return Q(b,a,a.pendingProps,c),a.child;case 8:return Q(b,a,a.pendingProps.children,c),a.child;case 12:return Q(b,a,a.pendingProps.children,c),a.child;case 10:a:{d=a.type._context;e=a.pendingProps;g=a.memoizedProps;f=e.value;Gb(a,f);if(null!==g){var k=g.value;f=k===f&&(0!==k||1/k===1/f)||k!==k&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(k,\nf):1073741823)|0;if(0===f){if(g.children===e.children&&!I.current){a=xc(b,a,c);break a}}else for(g=a.child,null!==g&&(g.return=a);null!==g;){k=g.firstContextDependency;if(null!==k){do{if(k.context===d&&0!==(k.observedBits&f)){if(1===g.tag){var h=tb(c);h.tag=2;N(g,h)}g.expirationTimee&&(e=f),k>e&&(e=k),g=g.sibling;a.childExpirationTime=e}if(null!==R)return R;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&(c.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=b.firstEffect),c.lastEffect=\nb.lastEffect),1=w)y=0;else if(-1===y||w component higher in the tree to provide a loading indicator or placeholder to display.\"+\nPa(h))}gd=!0;l=Bb(l,h);g=k;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Yc(g,l,f);vb(g,f);break a;case 1:if(n=l,y=g.type,u=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof y.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===ad||!ad.has(u)))){g.effectTag|=2048;g.expirationTime=f;f=$c(g,n,f);vb(g,f);break a}}g=g.return}while(null!==g)}R=ld(e);continue}}}break}while(1);ed=!1;Fb=Eb=Db=dd.currentDispatcher=null;if(d)S=null,b.finishedWork=null;\nelse if(null!==R)b.finishedWork=null;else{d=b.current.alternate;null===d?p(\"281\"):void 0;S=null;if(gd){e=b.latestPendingTime;f=b.latestSuspendedTime;g=b.latestPingedTime;if(0!==e&&ea?0:a)):(b.pendingCommitExpirationTime=\nc,b.finishedWork=d)}}function Pc(b,a){for(var c=b.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===ad||!ad.has(d))){b=Bb(a,b);b=$c(c,b,1073741823);N(c,b);cc(c,1073741823);return}break;case 3:b=Bb(a,b);b=Yc(c,b,1073741823);N(c,b);cc(c,1073741823);return}c=c.return}3===b.tag&&(c=Bb(a,b),c=Yc(b,c,1073741823),N(b,c),cc(b,1073741823))}\nfunction ac(b,a){ed?b=hd?1073741823:T:a.mode&1?(b=rd?1073741822-10*(((1073741822-b+15)/10|0)+1):1073741822-25*(((1073741822-b+500)/25|0)+1),null!==S&&b===T&&--b):b=1073741823;return b}function pd(b,a,c){var d=b.pingCache;null!==d&&d.delete(a);if(null!==S&&T===c)S=null;else if(a=b.earliestSuspendedTime,d=b.latestSuspendedTime,0!==a&&c<=a&&c>=d){b.didError=!1;a=b.latestPingedTime;if(0===a||a>c)b.latestPingedTime=c;nb(c,b);c=b.expirationTime;0!==c&&sd(b,c)}}\nfunction Wc(b,a){var c=b.stateNode;null!==c&&c.delete(a);a=$b();a=ac(a,b);b=td(b,a);null!==b&&(mb(b,a),a=b.expirationTime,0!==a&&sd(b,a))}\nfunction td(b,a){b.expirationTimeT&&kd(),mb(b,a),ed&&!hd&&S===b||sd(b,b.expirationTime),ud>vd&&(ud=0,p(\"185\")))}var V=null,W=null,wd=0,xd=void 0,yd=!1,X=null,Y=0,zd=!1,Ad=null,Bd=!1,Cd=!1,rd=!1,Dd=null,Ed=ca.unstable_now(),Z=1073741822-(Ed/10|0),Gd=Z,vd=50,ud=0,Hd=null;function Id(){Z=1073741822-((ca.unstable_now()-Ed)/10|0)}\nfunction Jd(b,a){if(0!==wd){if(ab.expirationTime&&(b.expirationTime=a);yd||(Bd?Cd&&(X=b,Y=1073741823,Md(b,1073741823,!1)):1073741823===a?Nd(1073741823,!1):Jd(b,a))}\nfunction Od(){var b=0,a=null;if(null!==W)for(var c=W,d=V;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===W?p(\"244\"):void 0;if(d===d.nextScheduledRoot){V=W=d.nextScheduledRoot=null;break}else if(d===V)V=e=d.nextScheduledRoot,W.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===W){W=c;W.nextScheduledRoot=V;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>b&&(b=e,a=d);if(d===W)break;if(1073741823===b)break;\nc=d;d=d.nextScheduledRoot}}X=a;Y=b}var Pd=!1;function od(){return Pd?!0:ca.unstable_shouldYield()?Pd=!0:!1}function Kd(){try{if(!od()&&null!==V){Id();var b=V;do{var a=b.expirationTime;0!==a&&Z<=a&&(b.nextExpirationTimeToWorkOn=Z);b=b.nextScheduledRoot}while(b!==V)}Nd(0,!0)}finally{Pd=!1}}\nfunction Nd(b,a){Od();if(a)for(Id(),Gd=Z;null!==X&&0!==Y&&b<=Y&&!(Pd&&Z>Y);)Md(X,Y,Z>Y),Od(),Id(),Gd=Z;else for(;null!==X&&0!==Y&&b<=Y;)Md(X,Y,!1),Od();a&&(wd=0,xd=null);0!==Y&&Jd(X,Y);ud=0;Hd=null;if(null!==Dd)for(b=Dd,Dd=null,a=0;a=c&&(null===Dd?Dd=[d]:Dd.push(d),d._defer)){b.finishedWork=a;b.expirationTime=0;return}b.finishedWork=null;b===Hd?ud++:(Hd=b,ud=0);hd=ed=!0;b.current===a?p(\"177\"):void 0;c=b.pendingCommitExpirationTime;0===c?p(\"261\"):void 0;b.pendingCommitExpirationTime=0;d=a.expirationTime;var e=a.childExpirationTime;d=e>d?e:d;b.didError=!1;0===d?(b.earliestPendingTime=0,b.latestPendingTime=0,b.earliestSuspendedTime=0,b.latestSuspendedTime=0,b.latestPingedTime=\n0):(dd?b.earliestPendingTime=b.latestPendingTime=0:b.earliestPendingTime>d&&(b.earliestPendingTime=b.latestPendingTime)),e=b.earliestSuspendedTime,0===e?mb(b,d):de&&mb(b,d));nb(0,b);dd.current=null;1q?a:q;0===a&&(ad=null);b.expirationTime=a;b.finishedWork=null}function Zc(b){null===X?p(\"246\"):void 0;X.expirationTime=0;zd||(zd=!0,Ad=b)}\nfunction Rd(b,a,c,d){var e=a.current,f=$b();e=ac(f,e);f=a.current;a:if(c){c=c._reactInternalFiber;b:{2===va(c)&&1===c.tag?void 0:p(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(K(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);p(\"171\");g=void 0}if(1===c.tag){var k=c.type;if(K(k)){c=Xa(c,k,g);break a}}c=g}else c=G;null===a.context?a.context=c:a.pendingContext=c;a=d;d=tb(e);d.payload={element:b};a=void 0===a?null:\na;null!==a&&(d.callback=a);bc();N(f,d);cc(f,e);return e}var Sd=aa||function(b){for(var a=1;a 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\r\n return result;\r\n}\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r, g, b, i, f, p, q, t;\r\n if (arguments.length === 1) {\r\n s = h.s, v = h.v, h = h.h;\r\n }\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v, g = t, b = p; break;\r\n case 1: r = q, g = v, b = p; break;\r\n case 2: r = p, g = v, b = t; break;\r\n case 3: r = p, g = q, b = v; break;\r\n case 4: r = t, g = p, b = v; break;\r\n case 5: r = v, g = p, b = q; break;\r\n }\r\n return [ r,\r\n g,\r\n b ];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n if (arguments.length === 1) {\r\n g = r.g, b = r.b, r = r.r;\r\n }\r\n var max = Math.max(r, g, b), min = Math.min(r, g, b),\r\n d = max - min,\r\n h,\r\n s = (max === 0 ? 0 : d / max),\r\n v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n }\r\n else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n }\r\n else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color,offset) {\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[0] += offset/360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n }\r\n else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction componentToHex(c) {\r\n var hex = c.toString(16);\r\n return hex.length == 1 ? '0' + hex : hex;\r\n}\r\n\r\nvar rgbToHex = (function(){\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for(i=0;i<256;i+=1){\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length == 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function(r, g, b) {\r\n if(r<0){\r\n r = 0;\r\n }\r\n if(g<0){\r\n g = 0;\r\n }\r\n if(b<0){\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction fillToRgba(hex,alpha){\r\n if(!cachedColors[hex]){\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n cachedColors[hex] = parseInt(result[1], 16)+','+parseInt(result[2], 16)+','+parseInt(result[3], 16);\r\n }\r\n return 'rgba('+cachedColors[hex]+','+alpha+')';\r\n}\r\n\r\nvar fillColorToString = (function(){\r\n\r\n var colorMap = [];\r\n return function(colorArr,alpha){\r\n if(alpha !== undefined){\r\n colorArr[3] = alpha;\r\n }\r\n if(!colorMap[colorArr[0]]){\r\n colorMap[colorArr[0]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]]){\r\n colorMap[colorArr[0]][colorArr[1]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]][colorArr[2]]){\r\n colorMap[colorArr[0]][colorArr[1]][colorArr[2]] = {};\r\n }\r\n if(!colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]]){\r\n colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]] = 'rgba(' + colorArr.join(',')+')';\r\n }\r\n return colorMap[colorArr[0]][colorArr[1]][colorArr[2]][colorArr[3]];\r\n };\r\n}());\r\n\r\nfunction RenderedFrame(tr,o) {\r\n this.tr = tr;\r\n this.o = o;\r\n}\r\n\r\nfunction iterateDynamicProperties(num){\r\n var i, len = this.dynamicProperties;\r\n for(i=0;i= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; }\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); }\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n (me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n })(width);\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n };\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date, global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\nvar BezierFactory = (function(){\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a,b,c,d,nm){\r\n var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\\./g, 'p');\r\n if(beziers[str]){\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a,b,c,d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === \"function\";\r\n\r\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C (aA1) { return 3.0 * aA1; }\r\n\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier (aT, aA1, aA2) {\r\n return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;\r\n }\r\n\r\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope (aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\r\n var currentX, currentT, i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing (points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2)\r\n this._calcSampleValues();\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n }\r\n };\r\n\r\n return ob;\r\n\r\n}())\r\n\r\n\nfunction matrixManagerFunction(){\r\n\r\n var mat = new Matrix();\r\n\r\n var returnMatrix2D = function(rX, scaleX, scaleY, tX, tY){\r\n return mat.reset().translate(tX,tY).rotate(rX).scale(scaleX,scaleY).toCSS();\r\n };\r\n\r\n var getMatrix = function(animData){\r\n return returnMatrix2D(animData.tr.r[2],animData.tr.s[0],animData.tr.s[1],animData.tr.p[0],animData.tr.p[1]);\r\n };\r\n\r\n return {\r\n getMatrix : getMatrix\r\n };\r\n\r\n}\r\nvar MatrixManager = matrixManagerFunction;\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if(!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\nfunction createElement(parent,child,params){\r\n if(child){\r\n child.prototype = Object.create(parent.prototype);\r\n child.prototype.constructor = child;\r\n child.prototype._parent = parent.prototype;\r\n }else{\r\n var instance = Object.create(parent.prototype,params);\r\n var getType = {};\r\n if(instance && getType.toString.call(instance.init) === '[object Function]'){\r\n instance.init();\r\n }\r\n return instance;\r\n }\r\n}\r\n\r\nfunction extendPrototype(source,destination){\r\n for (var attr in source.prototype) {\r\n if (source.prototype.hasOwnProperty(attr)) destination.prototype[attr] = source.prototype[attr];\r\n }\r\n}\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1,y1, x2,y2, x3,y3){\r\n var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);\r\n return det1 > -0.0001 && det1 < 0.0001;\r\n }\r\n\r\n function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){\r\n if(z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1,y1, x2,y2, x3,y3);\r\n }\r\n var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));\r\n var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));\r\n var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if(dist1 > dist2){\r\n if(dist1 > dist3){\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if(dist3 > dist2){\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n /*function getEasingCurve(aa,bb,cc,dd,encodedFuncName) {\r\n if(!encodedFuncName){\r\n encodedFuncName = ('bez_' + aa+'_'+bb+'_'+cc+'_'+dd).replace(/\\./g, 'p');\r\n }\r\n if(easingFunctions[encodedFuncName]){\r\n return easingFunctions[encodedFuncName];\r\n }\r\n var A0, B0, C0;\r\n var A1, B1, C1;\r\n easingFunctions[encodedFuncName] = function(tt) {\r\n var x = tt;\r\n var i = 0, z;\r\n while (++i < 20) {\r\n C0 = 3 * aa;\r\n B0 = 3 * (cc - aa) - C0;\r\n A0 = 1 - C0 - B0;\r\n z = (x * (C0 + x * (B0 + x * A0))) - tt;\r\n if (bm_abs(z) < 1e-3) break;\r\n x -= z / (C0 + x * (2 * B0 + 3 * A0 * x));\r\n }\r\n C1 = 3 * bb;\r\n B1 = 3 * (dd - bb) - C1;\r\n A1 = 1 - C1 - B1;\r\n var polyB = x * (C1 + x * (B1 + x * A1));\r\n //return c * polyB + b;\r\n return polyB;\r\n };\r\n return easingFunctions[encodedFuncName];\r\n }*/\r\n var getBezierLength = (function(){\r\n\r\n function Segment(l,p){\r\n this.l = l;\r\n this.p = p;\r\n }\r\n\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = {\r\n addedLength: 0,\r\n segments: []\r\n };\r\n len = pt3.length;\r\n for(k=0;k lengthPos ? -1 : 1;\r\n var flag = true;\r\n while(flag){\r\n if(segments[initPos].l <= lengthPos && segments[initPos+1].l > lengthPos){\r\n lPerc = (lengthPos - segments[initPos].l)/(segments[initPos+1].l-segments[initPos].l);\r\n flag = false;\r\n }else{\r\n initPos += dir;\r\n }\r\n if(initPos < 0 || initPos >= len - 1){\r\n flag = false;\r\n }\r\n }\r\n return segments[initPos].p + (segments[initPos+1].p - segments[initPos].p)*lPerc;\r\n }\r\n }\r\n\r\n function SegmentPoints(){\r\n this.pt1 = new Array(2);\r\n this.pt2 = new Array(2);\r\n this.pt3 = new Array(2);\r\n this.pt4 = new Array(2);\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\r\n var u1 = 1 - t1;\r\n var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;\r\n var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n var pts = new SegmentPoints();\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\r\n var t0 = getDistancePerc(startPerc,bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc,bezierData);\r\n var i, len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n //Math.round(num * 100) / 100\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\r\n }\r\n\r\n var checkText = (function(){\r\n var minimumVersion = [4,4,14];\r\n\r\n function updateTextLayer(textLayer){\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s:documentData,\r\n t:0\r\n }\r\n ]\r\n }\r\n }\r\n\r\n function iterateLayers(layers){\r\n var i, len = layers.length;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n arr[i].ks.k.c = arr[i].closed;\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n blitPaths(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j=0){\r\n val[i] /= blitter;\r\n i-=1;\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n function blitProperty(data){\r\n if(!data.k.length){\r\n data.k = blitValue(data.k);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n data.k = blitValue(data.k);\r\n } else {\r\n var i, len = data.k.length;\r\n for(i=0;i boxWidth){\r\n if(lastSpaceIndex === -1){\r\n //i -= 1;\r\n documentData.t = documentData.t.substr(0,i) + \"\\r\" + documentData.t.substr(i);\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n documentData.t = documentData.t.substr(0,i) + \"\\r\" + documentData.t.substr(i+1);\r\n }\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n }else {\r\n lineWidth += cLength;\r\n }\r\n }\r\n len = documentData.t.length;\r\n }\r\n var trackingOffset = documentData.tr/1000*documentData.s;\r\n lineWidth = - trackingOffset;\r\n cLength = 0;\r\n for (i = 0;i < len ;i += 1) {\r\n newLineFlag = false;\r\n if(documentData.t.charAt(i) === ' '){\r\n val = '\\u00A0';\r\n }else if(documentData.t.charCodeAt(i) === 13){\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = - 2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n }else{\r\n val = documentData.t.charAt(i);\r\n }\r\n if(fontManager.chars){\r\n charData = fontManager.getCharData(documentData.t.charAt(i), fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w*documentData.s/100;\r\n }else{\r\n //var charWidth = fontManager.measureText(val, documentData.f, documentData.s);\r\n //tCanvasHelper.font = documentData.s + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.s);\r\n }\r\n\r\n //\r\n lineWidth += cLength + trackingOffset;\r\n letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine});\r\n if(anchorGrouping == 2){\r\n currentSize += cLength;\r\n if(val == '' || val == '\\u00A0' || i == len - 1){\r\n if(val == '' || val == '\\u00A0'){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n }else if(anchorGrouping == 3){\r\n currentSize += cLength;\r\n if(val == '' || i == len - 1){\r\n if(val == ''){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n }else{\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if(documentData.sz){\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n }else{\r\n documentData.boxWidth = maxLineWidth;\r\n switch(documentData.j){\r\n case 1:\r\n documentData.justifyOffset = - documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = - documentData.boxWidth/2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.t.a;\r\n jLen = animators.length;\r\n var based, ind, indexes = [];\r\n for(j=0;j\r\n var l = document.createElement('link');\r\n l.type = \"text/css\";\r\n l.rel = \"stylesheet\";\r\n l.href = fontArr[i].fPath;\r\n defs.appendChild(l);\r\n } else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){\r\n //\r\n var sc = document.createElement('script');\r\n sc.setAttribute('src',fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n fontArr[i].helper = createHelper(defs,fontArr[i]);\r\n this.fonts.push(fontArr[i]);\r\n }\r\n checkLoadedFonts.bind(this)();\r\n }\r\n\r\n function addChars(chars){\r\n if(!chars){\r\n return;\r\n }\r\n if(!this.chars){\r\n this.chars = [];\r\n }\r\n var i, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen,perc,jLen, j, fnc;\r\n if(keyData.to){\r\n\r\n if(!keyData.bezierData){\r\n bez.buildBezierData(keyData);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if(frameNum >= nextKeyData.t-offsetTime || frameNum < keyData.t-offsetTime){\r\n var ind = frameNum >= nextKeyData.t-offsetTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for(k = 0; k < kLen; k += 1){\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n caching._lastBezierData = null;\r\n }else{\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y,keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime)));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while(flag){\r\n addedLength +=bezierData.points[j].partialLength;\r\n if(distanceInLine === 0 || perc === 0 || j == bezierData.points.length - 1){\r\n kLen = bezierData.points[j].point.length;\r\n for(k=0;k= addedLength && distanceInLine < addedLength + bezierData.points[j+1].partialLength){\r\n segmentPerc = (distanceInLine-addedLength)/(bezierData.points[j+1].partialLength);\r\n kLen = bezierData.points[j].point.length;\r\n for(k=0;k= nextKeyData.t-offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-offsetTime){\r\n perc = 0;\r\n }else{\r\n if(keyData.o.x.constructor === Array){\r\n if(!keyData.__fnct){\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = keyData.o.x[i] || keyData.o.x[0];\r\n outY = keyData.o.y[i] || keyData.o.y[0];\r\n inX = keyData.i.x[i] || keyData.i.x[0];\r\n inY = keyData.i.y[i] || keyData.i.y[0];\r\n fnc = BezierFactory.getBezierEasing(outX,outY,inX,inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX,outY,inX,inY).get;\r\n keyData.__fnct = fnc;\r\n } else{\r\n fnc = keyData.__fnct;\r\n }\r\n }\r\n perc = fnc((frameNum-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime)));\r\n }\r\n }\r\n if(this.sh && keyData.h !== 1){\r\n var initP = keyData.s[i];\r\n var endP = keyData.e[i];\r\n if(initP-endP < -180){\r\n initP += 360;\r\n } else if(initP-endP > 180){\r\n initP -= 360;\r\n }\r\n keyValue = initP+(endP-initP)*perc;\r\n } else {\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;\r\n }\r\n if(len === 1){\r\n newValue = keyValue;\r\n }else{\r\n newValue[i] = keyValue;\r\n }\r\n }\r\n }\r\n return {\r\n value: newValue,\r\n iterationIndex: iterationIndex\r\n }\r\n }\r\n\r\n function getValueAtCurrentTime(){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.mdf = false;\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t-this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;\r\n if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){\r\n var i = this._caching.lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n var renderResult = this.interpolateValue(frameNum, i, this.pv, this._caching);\r\n this._caching.lastIndex = renderResult.iterationIndex;\r\n if(this.pv.constructor === Array){\r\n i = 0;\r\n while(i= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / this.elem.globalData.frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.01) / this.elem.globalData.frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / this.elem.globalData.frameRate, this.p.offsetTime);\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if(this.data.p.s){\r\n if(this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function setInverted(){\r\n this.inverted = true;\r\n this.iv = new Matrix();\r\n if(!this.k){\r\n if(this.data.p.s){\r\n this.iv.translate(this.px.v,this.py.v,-this.pz.v);\r\n }else{\r\n this.iv.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n if(this.r){\r\n this.iv.rotate(-this.r.v);\r\n }else{\r\n this.iv.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n }\r\n if(this.s){\r\n this.iv.scale(this.s.v[0],this.s.v[1],1);\r\n }\r\n if(this.a){\r\n this.iv.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]);\r\n }\r\n }\r\n }\r\n\r\n function autoOrient(){\r\n //\r\n //var prevP = this.getValueAtTime();\r\n }\r\n\r\n return function TransformProperty(elem,data,arr){\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.type = 'transform';\r\n this.dynamicProperties = [];\r\n this.mdf = false;\r\n this.data = data;\r\n this.getValue = processKeys;\r\n this.applyToMatrix = applyToMatrix;\r\n this.setInverted = setInverted;\r\n this.autoOrient = autoOrient;\r\n this.v = new Matrix();\r\n if(data.p.s){\r\n this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this.dynamicProperties);\r\n this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this.dynamicProperties);\r\n if(data.p.z){\r\n this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this.dynamicProperties);\r\n }\r\n }else{\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this.dynamicProperties);\r\n }\r\n if(data.r) {\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this.dynamicProperties);\r\n } else if(data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this.dynamicProperties);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this.dynamicProperties);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this.dynamicProperties);\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this.dynamicProperties);\r\n //sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n }\r\n if(data.sk){\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this.dynamicProperties);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this.dynamicProperties);\r\n }\r\n if(data.a) {\r\n this.a = PropertyFactory.getProp(elem,data.a,1,0,this.dynamicProperties);\r\n }\r\n if(data.s) {\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0.01,this.dynamicProperties);\r\n }\r\n if(data.o){\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this.dynamicProperties);\r\n } else {\r\n this.o = {mdf:false,v:1};\r\n }\r\n if(this.dynamicProperties.length){\r\n arr.push(this);\r\n }else{\r\n if(this.a){\r\n this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]);\r\n }\r\n if(this.s){\r\n this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]);\r\n }\r\n if(this.sk){\r\n this.v.skewFromAxis(-this.sk.v,this.sa.v);\r\n }\r\n if(this.r){\r\n this.v.rotate(-this.r.v);\r\n }else{\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if(this.data.p.s){\r\n if(data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n Object.defineProperty(this, \"position\", { get: positionGetter});\r\n Object.defineProperty(this, \"xPosition\", { get: xPositionGetter});\r\n Object.defineProperty(this, \"yPosition\", { get: yPositionGetter});\r\n Object.defineProperty(this, \"orientation\", { get: orientationGetter});\r\n Object.defineProperty(this, \"anchorPoint\", { get: anchorGetter});\r\n Object.defineProperty(this, \"rotation\", { get: rotationGetter});\r\n Object.defineProperty(this, \"scale\", { get: scaleGetter});\r\n Object.defineProperty(this, \"opacity\", { get: opacityGetter});\r\n Object.defineProperty(this, \"skew\", { get: skewGetter});\r\n Object.defineProperty(this, \"skewAxis\", { get: skewAxisGetter});\r\n }\r\n }());\r\n\r\n function getProp(elem,data,type, mult, arr) {\r\n var p;\r\n if(type === 2){\r\n p = new TransformProperty(elem, data, arr);\r\n } else if(data.a === 0){\r\n if(type === 0) {\r\n p = new ValueProperty(elem,data,mult);\r\n } else {\r\n p = new MultiDimensionalProperty(elem,data, mult);\r\n }\r\n } else if(data.a === 1){\r\n if(type === 0) {\r\n p = new KeyframedValueProperty(elem,data,mult);\r\n } else {\r\n p = new KeyframedMultidimensionalProperty(elem,data, mult);\r\n }\r\n } else if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult);\r\n break;\r\n }\r\n }\r\n if(p.k){\r\n arr.push(p);\r\n }\r\n return p;\r\n }\r\n\r\n var getGradientProp = (function(){\r\n\r\n function getValue(forceRender){\r\n this.prop.getValue();\r\n this.cmdf = false;\r\n this.omdf = false;\r\n if(this.prop.mdf || forceRender){\r\n var i, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;ie){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n\r\n function getMult(ind){\r\n //var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var easer = BezierFactory.getBezierEasing(this.ne.v/100,0,1-this.xe.v/100,1).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if(type == 2){\r\n if(e === s){\r\n mult = ind >= e ? 1 : 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 3){\r\n if(e === s){\r\n mult = ind >= e ? 0 : 1;\r\n }else{\r\n mult = 1 - max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n\r\n mult = easer(mult);\r\n }else if(type == 4){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n if(mult<.5){\r\n mult *= 2;\r\n }else{\r\n mult = 1 - 2*(mult-0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n }else if(type == 5){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n var tot = e - s;\r\n /*ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind;*/\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n var x = -tot/2+ind;\r\n var a = tot/2;\r\n mult = Math.sqrt(1 - (x*x)/(a*a));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 6){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind)/(e-s)))))/2;\r\n /*\r\n ind = Math.min(Math.max(s,ind),e-1);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind-s)/(e-1-s)))))/2;\r\n mult = Math.max(mult,(1/(e-1-s))/(e-1-s));*/\r\n }\r\n mult = easer(mult);\r\n }else {\r\n if(ind >= floor(s)){\r\n if(ind-s < 0){\r\n mult = 1 - (s - ind);\r\n }else{\r\n mult = max(0,min(e-ind,1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult*this.a.v;\r\n }\r\n\r\n return function TextSelectorProp(elem,data, arr){\r\n this.mdf = false;\r\n this.k = false;\r\n this.data = data;\r\n this.dynamicProperties = [];\r\n this.getValue = updateRange;\r\n this.getMult = getMult;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.s = PropertyFactory.getProp(elem,data.s || {k:0},0,0,this.dynamicProperties);\r\n if('e' in data){\r\n this.e = PropertyFactory.getProp(elem,data.e,0,0,this.dynamicProperties);\r\n }else{\r\n this.e = {v:100};\r\n }\r\n this.o = PropertyFactory.getProp(elem,data.o || {k:0},0,0,this.dynamicProperties);\r\n this.xe = PropertyFactory.getProp(elem,data.xe || {k:0},0,0,this.dynamicProperties);\r\n this.ne = PropertyFactory.getProp(elem,data.ne || {k:0},0,0,this.dynamicProperties);\r\n this.a = PropertyFactory.getProp(elem,data.a,0,0.01,this.dynamicProperties);\r\n if(this.dynamicProperties.length){\r\n arr.push(this);\r\n }else{\r\n this.getValue();\r\n }\r\n }\r\n }());\r\n\r\n function getTextSelectorProp(elem, data,arr) {\r\n return new TextSelectorProp(elem, data, arr);\r\n };\r\n\r\n var ob = {\r\n getProp: getProp,\r\n getDashProp: getDashProp,\r\n getTextSelectorProp: getTextSelectorProp,\r\n getGradientProp: getGradientProp\r\n };\r\n return ob;\r\n}());\nfunction ShapePath(){\r\n\tthis.c = false;\r\n\tthis._length = 0;\r\n\tthis._maxLength = 8;\r\n\tthis.v = Array.apply(null,{length:this._maxLength});\r\n\tthis.o = Array.apply(null,{length:this._maxLength});\r\n\tthis.i = Array.apply(null,{length:this._maxLength});\r\n};\r\n\r\nShapePath.prototype.setPathData = function(closed, len) {\r\n\tthis.c = closed;\r\n\tthis.setLength(len);\r\n\tvar i = 0;\r\n\twhile(i < len){\r\n\t\tthis.v[i] = point_pool.newPoint();\r\n\t\tthis.o[i] = point_pool.newPoint();\r\n\t\tthis.i[i] = point_pool.newPoint();\r\n\t\ti += 1;\r\n\t}\r\n};\r\n\r\nShapePath.prototype.setLength = function(len) {\r\n\twhile(this._maxLength < len) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tthis._length = len;\r\n}\r\n\r\nShapePath.prototype.doubleArrayLength = function() {\r\n\tthis.v = this.v.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis.i = this.i.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis.o = this.o.concat(Array.apply(null,{length:this._maxLength}))\r\n\tthis._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function(x, y, type, pos, replace) {\r\n\tvar arr;\r\n\tthis._length = Math.max(this._length, pos + 1);\r\n\tif(this._length >= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newPoint();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, iterationIndex, previousValue, isCurrentRender) {\r\n var keyPropS,keyPropE,isHold;\r\n if(frameNum < this.keyframes[0].t-this.offsetTime){\r\n keyPropS = this.keyframes[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n }else if(frameNum >= this.keyframes[this.keyframes.length - 1].t-this.offsetTime){\r\n if(this.keyframes[this.keyframes.length - 2].h === 1){\r\n keyPropS = this.keyframes[this.keyframes.length - 1].s[0];\r\n }else{\r\n keyPropS = this.keyframes[this.keyframes.length - 2].e[0];\r\n }\r\n isHold = true;\r\n }else{\r\n var i = iterationIndex;\r\n var len = this.keyframes.length- 1,flag = true,keyData,nextKeyData, j, jLen, k, kLen;\r\n while(flag){\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n var perc;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n var hasModified = false;\r\n var vertexValue;\r\n for(j=0;j endTime && frameNum > endTime)))){\r\n ////\r\n var i = this.lastFrame < frameNum ? this._lastIndex : 0;\r\n var renderResult = this.interpolateShape(frameNum, i, this.v, true);\r\n ////\r\n this._lastIndex = renderResult.iterationIndex;\r\n this.mdf = renderResult.hasModified;\r\n if(renderResult.hasModified) {\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n this.lastFrame = frameNum;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function getShapeValue(){\r\n return this.v;\r\n }\r\n\r\n function resetShape(){\r\n this.paths = this.localShapeCollection;\r\n if(!this.k){\r\n this.mdf = false;\r\n }\r\n }\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.__shapeObject = 1;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n }\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = getShapeValue;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.__shapeObject = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.offsetTime = elem.data.st;\r\n this._lastIndex = 0;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newShape();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n }\r\n KeyframedShapeProperty.prototype.getValue = interpolateShapeCurrentTime;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function convertEllToPath(){\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n if(this.d !== 3){\r\n this.v.v[0][0] = p0;\r\n this.v.v[0][1] = p1-s1;\r\n this.v.v[1][0] = p0 + s0;\r\n this.v.v[1][1] = p1;\r\n this.v.v[2][0] = p0;\r\n this.v.v[2][1] = p1+s1;\r\n this.v.v[3][0] = p0 - s0;\r\n this.v.v[3][1] = p1;\r\n this.v.i[0][0] = p0 - s0*cPoint;\r\n this.v.i[0][1] = p1 - s1;\r\n this.v.i[1][0] = p0 + s0;\r\n this.v.i[1][1] = p1 - s1*cPoint;\r\n this.v.i[2][0] = p0 + s0*cPoint;\r\n this.v.i[2][1] = p1 + s1;\r\n this.v.i[3][0] = p0 - s0;\r\n this.v.i[3][1] = p1 + s1*cPoint;\r\n this.v.o[0][0] = p0 + s0*cPoint;\r\n this.v.o[0][1] = p1 - s1;\r\n this.v.o[1][0] = p0 + s0;\r\n this.v.o[1][1] = p1 + s1*cPoint;\r\n this.v.o[2][0] = p0 - s0*cPoint;\r\n this.v.o[2][1] = p1 + s1;\r\n this.v.o[3][0] = p0 - s0;\r\n this.v.o[3][1] = p1 - s1*cPoint;\r\n }else{\r\n this.v.v[0][0] = p0;\r\n this.v.v[0][1] = p1-s1;\r\n this.v.v[1][0] = p0 - s0;\r\n this.v.v[1][1] = p1;\r\n this.v.v[2][0] = p0;\r\n this.v.v[2][1] = p1+s1;\r\n this.v.v[3][0] = p0 + s0;\r\n this.v.v[3][1] = p1;\r\n this.v.i[0][0] = p0 + s0*cPoint;\r\n this.v.i[0][1] = p1 - s1;\r\n this.v.i[1][0] = p0 - s0;\r\n this.v.i[1][1] = p1 - s1*cPoint;\r\n this.v.i[2][0] = p0 - s0*cPoint;\r\n this.v.i[2][1] = p1 + s1;\r\n this.v.i[3][0] = p0 + s0;\r\n this.v.i[3][1] = p1 + s1*cPoint;\r\n this.v.o[0][0] = p0 - s0*cPoint;\r\n this.v.o[0][1] = p1 - s1;\r\n this.v.o[1][0] = p0 - s0;\r\n this.v.o[1][1] = p1 + s1*cPoint;\r\n this.v.o[2][0] = p0 + s0*cPoint;\r\n this.v.o[2][1] = p1 + s1;\r\n this.v.o[3][0] = p0 + s0;\r\n this.v.o[3][1] = p1 - s1*cPoint;\r\n }\r\n }\r\n\r\n function processKeys(frameNum){\r\n var i, len = this.dynamicProperties.length;\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.mdf = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n\r\n for(i=0;ie){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.sValue = s;\r\n this.eValue = e;\r\n this.oValue = o;\r\n }\r\n}\r\nTrimModifier.prototype.initModifierProperties = function(elem,data){\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.oValue = 0;\r\n this.getValue = this.processKeys;\r\n this.s = PropertyFactory.getProp(elem,data.s,0,0.01,this.dynamicProperties);\r\n this.e = PropertyFactory.getProp(elem,data.e,0,0.01,this.dynamicProperties);\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0,this.dynamicProperties);\r\n this.m = data.m;\r\n if(!this.dynamicProperties.length){\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function(s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = []\r\n if(e <= 1){\r\n segments.push({\r\n s: s,\r\n e: e\r\n })\r\n }else if(s >= 1){\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n })\r\n }else{\r\n segments.push({\r\n s: s,\r\n e: 1\r\n })\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n })\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for(i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if(segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if(!shapeSegments.length){\r\n shapeSegments.push([0,0]);\r\n }\r\n return shapeSegments;\r\n}\r\n\r\nTrimModifier.prototype.processShapes = function(firstFrame){\r\n var shapePaths;\r\n var i, len = this.shapes.length;\r\n var j, jLen;\r\n var s = this.sValue;\r\n var e = this.eValue;\r\n var pathsData,pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if(e === s){\r\n for(i=0;i= 0; i -= 1){\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape.mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n if(this.m === 2 && len > 1) {\r\n var edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]]\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if(shapeE <= 1){\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength * shapeE\r\n })\r\n }else if(shapeS >= 1){\r\n segments.push({\r\n s:shapeData.totalShapeLength * (shapeS - 1),\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n })\r\n }else{\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength\r\n })\r\n segments.push({\r\n s:0,\r\n e:shapeData.totalShapeLength*(shapeE - 1)\r\n })\r\n }\r\n var newShapesData = this.addShapes(shapeData,segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n var lastPos;\r\n if(segments.length > 1){\r\n if(shapeData.shape.v.c){\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData,segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData,segments[1]);\r\n }\r\n } \r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n \r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if(this.mdf){\r\n for(i=0;i shapeSegment.e){\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if(shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength){\r\n this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[j],shapePaths[i].v[j],shapePath,segmentCount,newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[j],shapePaths[i].o[j-1],shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);\r\n this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if(shapePaths[i].c){\r\n currentLengthData = lengths[j-1];\r\n if(addedLength <= shapeSegment.e){\r\n var segmentLength = lengths[j-1].addedLength;\r\n if(shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength){\r\n this.addSegment(shapePaths[i].v[j-1],shapePaths[i].o[j-1],shapePaths[i].i[0],shapePaths[i].v[0],shapePath,segmentCount,newShape);\r\n newShape = false;\r\n }else{\r\n segment = bez.getNewSegment(shapePaths[i].v[j-1],shapePaths[i].v[0],shapePaths[i].o[j-1],shapePaths[i].i[0], (shapeSegment.s - addedLength)/segmentLength,(shapeSegment.e - addedLength)/segmentLength, lengths[j-1]);\r\n this.addSegment(segment.pt1,segment.pt3,segment.pt4,segment.pt2,shapePath,segmentCount,newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if(shapePath._length){\r\n shapePath.setXYAt(shapePath.v[initPos][0],shapePath.v[initPos][1],'i',initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0],shapePath.v[shapePath._length - 1][1],'o',shapePath._length - 1);\r\n }\r\n if(addedLength > shapeSegment.e){\r\n break;\r\n }\r\n if(i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\r\n }\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n dynamicProperties.push(this);\r\n }else{\r\n this.getValue(true);\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.resetElements = function(elements){\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if(elements[i].ty === 'gr'){\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.cloneElements = function(elements){\r\n var i, len = elements.length;\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n}\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {\r\n var i, len = elements.length;\r\n for(i = 0; i < len ; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if(elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n}\r\n\r\nRepeaterModifier.prototype.processShapes = function(firstFrame){\r\n\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n if(!this.dynamicProperties.length && !firstFrame){\r\n this.mdf = false;\r\n }\r\n if(this.mdf){\r\n var copies = Math.ceil(this.c.v);\r\n if(this._groups.length < copies){\r\n while(this._groups.length < copies){\r\n var group = {\r\n it:this.cloneElements(this._elements),\r\n ty:'gr'\r\n }\r\n group.it.push({\"a\":{\"a\":0,\"ix\":1,\"k\":[0,0]},\"nm\":\"Transform\",\"o\":{\"a\":0,\"ix\":7,\"k\":100},\"p\":{\"a\":0,\"ix\":2,\"k\":[0,0]},\"r\":{\"a\":0,\"ix\":6,\"k\":0},\"s\":{\"a\":0,\"ix\":3,\"k\":[100,100]},\"sa\":{\"a\":0,\"ix\":5,\"k\":0},\"sk\":{\"a\":0,\"ix\":4,\"k\":0},\"ty\":\"tr\"});\r\n \r\n this.arr.splice(0,0,group);\r\n this._groups.splice(0,0,group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n }\r\n var i, cont = 0, renderFlag;\r\n for(i = 0; i <= this._groups.length - 1; i += 1){\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n cont += 1;\r\n }\r\n \r\n this._currentCopies = copies;\r\n this.elem.firstFrame = true;\r\n ////\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset%1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var k;\r\n var tMat = this.tr.v.props;\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if(offset > 0) {\r\n while(iterationroundOffset){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if(offsetModulo){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n var dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n while(cont){\r\n if(iteration !== 0){\r\n if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);\r\n this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);\r\n this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);\r\n var items = this.elemsData[i].it;\r\n var itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n var j, jLen = itemsTransform.length;\r\n for(j=0;j= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].bezierData.points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].bezierData.points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an/2 - letters[i].add;\r\n matrixHelper.translate(-offf,0,0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j= 0; i--) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if(data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st))\r\n {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers:false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function(layer){\r\n switch(layer.ty){\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 99:\r\n return null;\r\n }\r\n return this.createBase(layer);\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function(){\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n}\r\n\r\nBaseRenderer.prototype.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n for (i = len - 1; i >= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newElement = element.getBaseElement();\r\n if(!newElement){\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while(i 0){\r\n this.element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\r\n }\r\n\r\n defs.appendChild(this.maskElement);\r\n};\r\n\r\nMaskElement.prototype.getMaskProperty = function(pos){\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.prepareFrame = function(){\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i 1){\r\n pathString += \" C\"+bm_rnd(pathNodes.o[i-1][0])+','+bm_rnd(pathNodes.o[i-1][1]) + \" \"+bm_rnd(pathNodes.i[0][0])+','+bm_rnd(pathNodes.i[0][1]) + \" \"+bm_rnd(pathNodes.v[0][0])+','+bm_rnd(pathNodes.v[0][1]);\r\n }\r\n //pathNodes.__renderedString = pathString;\r\n\r\n\r\n if(viewData.lastPath !== pathString){\r\n if(viewData.elem){\r\n if(!pathNodes.c){\r\n viewData.elem.setAttribute('d','');\r\n }else if(pathData.inv){\r\n viewData.elem.setAttribute('d',this.solidPath + pathString);\r\n }else{\r\n viewData.elem.setAttribute('d',pathString);\r\n }\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\nfunction BaseElement(){\r\n};\r\nBaseElement.prototype.checkMasks = function(){\r\n if(!this.data.hasMask){\r\n return false;\r\n }\r\n var i = 0, len = this.data.masksProperties.length;\r\n while(i num)\r\n {\r\n if(this.isVisible !== true){\r\n this.elemMdf = true;\r\n this.globalData.mdf = true;\r\n this.isVisible = true;\r\n this.firstFrame = true;\r\n if(this.data.hasMask){\r\n this.maskManager.firstFrame = true;\r\n }\r\n }\r\n }else{\r\n if(this.isVisible !== false){\r\n this.elemMdf = true;\r\n this.globalData.mdf = true;\r\n this.isVisible = false;\r\n }\r\n }\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i arr.g.p*4) || arr.g.k.k.length > arr.g.p*4){\r\n var opFill;\r\n var stop, j, jLen;\r\n var mask = document.createElementNS(svgNS,\"mask\");\r\n var maskElement = document.createElementNS(svgNS, 'path');\r\n mask.appendChild(maskElement);\r\n var opacityId = 'op_'+randomString(10);\r\n var maskId = 'mk_'+randomString(10);\r\n mask.setAttribute('id',maskId);\r\n if(arr.t === 1){\r\n opFill = document.createElementNS(svgNS,'linearGradient');\r\n } else {\r\n opFill = document.createElementNS(svgNS,'radialGradient');\r\n }\r\n opFill.setAttribute('id',opacityId);\r\n opFill.setAttribute('spreadMethod','pad');\r\n opFill.setAttribute('gradientUnits','userSpaceOnUse');\r\n jLen = arr.g.k.k[0].s ? arr.g.k.k[0].s.length : arr.g.k.k.length;\r\n var stops = [];\r\n for(j=arr.g.p*4;j=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level, dynamicProperties);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].elem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this.firstFrame);\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderFrame = function(parentMatrix){\r\n //this.reloadShapes();\r\n var renderParent = this._parent.renderFrame.call(this,parentMatrix);\r\n if(renderParent===false){\r\n this.hide();\r\n return;\r\n }\r\n if(this.hidden){\r\n this.layerElement.style.display = 'block';\r\n this.hidden = false;\r\n }\r\n this.renderModifiers();\r\n var i, len = this.stylesList.length;\r\n for(i=0;i=0;i-=1){\r\n if(this.stylesList[i].ld !== '0'){\r\n this.stylesList[i].ld = '0';\r\n this.stylesList[i].pElem.style.display = 'none';\r\n if(this.stylesList[i].pElem.parentNode){\r\n this.stylesList[i].parent = this.stylesList[i].pElem.parentNode;\r\n //this.stylesList[i].pElem.parentNode.removeChild(this.stylesList[i].pElem);\r\n }\r\n }\r\n }\r\n this.hidden = true;\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderShape = function(items,data, container){\r\n var i, len = items.length - 1;\r\n var ty;\r\n for(i=len;i>=0;i-=1){\r\n ty = items[i].ty;\r\n if(ty == 'tr'){\r\n if(this.firstFrame || data[i].transform.op.mdf && container){\r\n container.setAttribute('opacity',data[i].transform.op.v);\r\n }\r\n if(this.firstFrame || data[i].transform.mProps.mdf && container){\r\n container.setAttribute('transform',data[i].transform.mProps.v.to2dCSS());\r\n }\r\n }else if(ty == 'sh' || ty == 'el' || ty == 'rc' || ty == 'sr'){\r\n this.renderPath(items[i],data[i]);\r\n }else if(ty == 'fl'){\r\n this.renderFill(items[i],data[i]);\r\n }else if(ty == 'gf'){\r\n this.renderGradient(items[i],data[i]);\r\n }else if(ty == 'gs'){\r\n this.renderGradient(items[i],data[i]);\r\n this.renderStroke(items[i],data[i]);\r\n }else if(ty == 'st'){\r\n this.renderStroke(items[i],data[i]);\r\n }else if(ty == 'gr'){\r\n this.renderShape(items[i].it,data[i].it, data[i].gr);\r\n }else if(ty == 'tm'){\r\n //\r\n }\r\n }\r\n\r\n};\r\n\r\nIShapeElement.prototype.buildShapeString = function(pathNodes, length, closed, mat) {\r\n var i, shapeString = '';\r\n for(i = 1; i < length; i += 1) {\r\n if (i === 1) {\r\n shapeString += \" M\" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n }\r\n shapeString += \" C\" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + \" \" + mat.applyToPointStringified(pathNodes.i[i][0], pathNodes.i[i][1]) + \" \" + mat.applyToPointStringified(pathNodes.v[i][0], pathNodes.v[i][1]);\r\n }\r\n if (length === 1) {\r\n shapeString += \" M\" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n }\r\n if (closed && length) {\r\n shapeString += \" C\" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + \" \" + mat.applyToPointStringified(pathNodes.i[0][0], pathNodes.i[0][1]) + \" \" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\nIShapeElement.prototype.renderPath = function(pathData,itemData){\r\n var len, i, j, jLen,pathStringTransformed,redraw,pathNodes,l, lLen = itemData.elements.length;\r\n var lvl = itemData.lvl;\r\n if(!pathData._render){\r\n return;\r\n }\r\n for(l=0;l 0) {\r\n redraw = itemData.transformers[k].mProps.mdf || redraw;\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n iterations --;\r\n k --;\r\n }\r\n if(redraw){\r\n for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99:itemData.h.v;\r\n var dist = rad*percent;\r\n var x = Math.cos(ang + itemData.a.v)*dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v)*dist + pt1[1];\r\n gfill.setAttribute('fx',x);\r\n gfill.setAttribute('fy',y);\r\n if(opFill){\r\n opFill.setAttribute('fx',x);\r\n opFill.setAttribute('fy',y);\r\n }\r\n }\r\n //gfill.setAttribute('fy','200');\r\n }\r\n};\r\n\r\nIShapeElement.prototype.renderStroke = function(styleData,itemData){\r\n var styleElem = itemData.style;\r\n //TODO fix dashes\r\n var d = itemData.d;\r\n var dasharray,dashoffset;\r\n if(d && d.k && (d.mdf || this.firstFrame)){\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dasharray);\r\n ////styleElem.pElem.style.strokeDasharray = d.dasharray;\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset);\r\n ////styleElem.pElem.style.strokeDashoffset = d.dashoffset;\r\n }\r\n if(itemData.c && (itemData.c.mdf || this.firstFrame)){\r\n styleElem.pElem.setAttribute('stroke','rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')');\r\n ////styleElem.pElem.style.stroke = 'rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')';\r\n }\r\n if(itemData.o.mdf || this.firstFrame){\r\n styleElem.pElem.setAttribute('stroke-opacity',itemData.o.v);\r\n }\r\n if(itemData.w.mdf || this.firstFrame){\r\n styleElem.pElem.setAttribute('stroke-width',itemData.w.v);\r\n if(styleElem.msElem){\r\n styleElem.msElem.setAttribute('stroke-width',itemData.w.v);\r\n }\r\n ////styleElem.pElem.style.strokeWidth = itemData.w.v;\r\n }\r\n};\r\n\r\nIShapeElement.prototype.destroy = function(){\r\n this._parent.destroy.call(this._parent);\r\n this.shapeData = null;\r\n this.itemsData = null;\r\n this.parentContainer = null;\r\n this.placeholder = null;\r\n};\r\n\nfunction ITextElement(data, animationItem,parentContainer,globalData){\r\n}\r\nITextElement.prototype.init = function(){\r\n this._frameId = -1;\r\n this.lettersChangedFlag = true;\r\n this.currentTextDocumentData = this.data.t.d.k[0].s;\r\n this.dynamicProperties = this.dynamicProperties || [];\r\n this.textAnimator = new TextAnimatorProperty(this.data.t, this.renderType, this);\r\n this._parent.init.call(this);\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n this.buildNewText();\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function(num) {\r\n if(this._frameId === this.globalData.frameId) {\r\n return;\r\n }\r\n this._frameId = this.globalData.frameId;\r\n var textKeys = this.data.t.d.k;\r\n var i = 0, len = textKeys.length;\r\n while(i < len) {\r\n textDocumentData = textKeys[i].s;\r\n i += 1;\r\n if(i === len || textKeys[i].t > num){\r\n break;\r\n }\r\n } \r\n this.lettersChangedFlag = false;\r\n if(textDocumentData !== this.currentTextDocumentData){\r\n this.currentTextDocumentData = textDocumentData;\r\n this.lettersChangedFlag = true;\r\n this.buildNewText();\r\n }\r\n this._parent.prepareFrame.call(this, num);\r\n}\r\n\r\nITextElement.prototype.createPathShape = function(matrixHelper, shapes) {\r\n var j,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= max){\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos++] = colorValue;\r\n cnt += 256/(segments-1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager.mdf){\r\n var val, cnt, perc, bezier;\r\n var effectElements = this.filterManager.effectElements;\r\n if(this.feFuncRComposed && (forceRender || effectElements[2].p.mdf || effectElements[3].p.mdf || effectElements[4].p.mdf || effectElements[5].p.mdf || effectElements[6].p.mdf)){\r\n val = this.getTableValue(effectElements[2].p.v,effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues',val);\r\n this.feFuncGComposed.setAttribute('tableValues',val);\r\n this.feFuncBComposed.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncR && (forceRender || effectElements[9].p.mdf || effectElements[10].p.mdf || effectElements[11].p.mdf || effectElements[12].p.mdf || effectElements[13].p.mdf)){\r\n val = this.getTableValue(effectElements[9].p.v,effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v);\r\n this.feFuncR.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncG && (forceRender || effectElements[16].p.mdf || effectElements[17].p.mdf || effectElements[18].p.mdf || effectElements[19].p.mdf || effectElements[20].p.mdf)){\r\n val = this.getTableValue(effectElements[16].p.v,effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v);\r\n this.feFuncG.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncB && (forceRender || effectElements[23].p.mdf || effectElements[24].p.mdf || effectElements[25].p.mdf || effectElements[26].p.mdf || effectElements[27].p.mdf)){\r\n val = this.getTableValue(effectElements[23].p.v,effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v);\r\n this.feFuncB.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncA && (forceRender || effectElements[30].p.mdf || effectElements[31].p.mdf || effectElements[32].p.mdf || effectElements[33].p.mdf || effectElements[34].p.mdf)){\r\n val = this.getTableValue(effectElements[30].p.v,effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v);\r\n this.feFuncA.setAttribute('tableValues',val);\r\n }\r\n \r\n }\r\n};\nfunction SVGDropShadowEffect(filter, filterManager){\r\n /* \r\n \r\n \r\n \r\n \r\n */\r\n /**/\r\n filter.setAttribute('x','-100%');\r\n filter.setAttribute('y','-100%');\r\n filter.setAttribute('width','400%');\r\n filter.setAttribute('height','400%');\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = document.createElementNS(svgNS,'feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = document.createElementNS(svgNS,'feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = document.createElementNS(svgNS,'feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = document.createElementNS(svgNS,'feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\r\n var feMerge = document.createElementNS(svgNS,'feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = document.createElementNS(svgNS,'feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = document.createElementNS(svgNS,'feMergeNode');\r\n feMergeNode.setAttribute('in','SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager.mdf){\r\n if(forceRender || this.filterManager.effectElements[4].p.mdf){\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if(forceRender || this.filterManager.effectElements[0].p.mdf){\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));\r\n }\r\n if(forceRender || this.filterManager.effectElements[1].p.mdf){\r\n this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);\r\n }\r\n if(forceRender || this.filterManager.effectElements[2].p.mdf || this.filterManager.effectElements[3].p.mdf){\r\n var distance = this.filterManager.effectElements[3].p.v\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads\r\n var x = distance * Math.cos(angle)\r\n var y = distance * Math.sin(angle)\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /*if(forceRender || this.filterManager.effectElements[5].p.mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n }*/\r\n }\r\n};\nfunction SVGMatte3Effect(filterElem, filterManager, elem){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = document.createElementNS(svgNS,'g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {\r\n var masker = document.createElementNS(svgNS,'mask');\r\n masker.setAttribute('id',mask.layerId);\r\n masker.setAttribute('mask-type','alpha');\r\n masker.appendChild(mask.layerElement);\r\n elem.setMatte(mask.layerId);\r\n mask.data.hd = false;\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n}\r\n\r\nSVGMatte3Effect.prototype.initialize = function() {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var i = 0, len = this.elem.comp.elements.length;\r\n while(i < len) {\r\n \tif(this.elem.comp.elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, this.elem.comp.elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n}\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n}\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef.length;\r\n var filId = randomString(10);\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i=0;i-=1){\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer){\r\n var animElements = document.getElementsByClassName('bodymovin');\r\n var i, len = animElements.length;\r\n for(i=0;i this.animationData.op){\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n this.animationData.tf = this.totalFrames;\r\n }\r\n var layers = this.animationData.layers;\r\n var i, len = layers.length;\r\n var newLayers = data.layers;\r\n var j, jLen = newLayers.length;\r\n for(j=0;j this.timeCompleted){\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if(this.isLoaded === false){\r\n return;\r\n }\r\n //console.log('this.currentFrame:',this.currentFrame + this.firstFrame);\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.isPaused = false;\r\n if(this._idle){\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === false){\r\n this.isPaused = true;\r\n if(!this.pendingSegment){\r\n this._idle = true;\r\n this.trigger('_idle');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.play();\r\n }else{\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n this.pause();\r\n this.currentFrame = this.currentRawFrame = 0;\r\n this.playCount = 0;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(isFrame){\r\n this.setCurrentRawFrameValue(value);\r\n }else{\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n this.goToAndStop(value, isFrame, name);\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if(this.pendingSegment){\r\n this.pendingSegment = false;\r\n this.adjustSegment(this.segments.shift());\r\n if(this.isPaused){\r\n this.play();\r\n }\r\n return;\r\n }\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n this.setCurrentRawFrameValue(this.currentRawFrame + value * this.frameModifier);\r\n};\r\n\r\nAnimationItem.prototype.updateAnimation = function (perc) {\r\n this.setCurrentRawFrameValue(this.totalFrames * perc);\r\n};\r\n\r\nAnimationItem.prototype.moveFrame = function (value, name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n this.setCurrentRawFrameValue(this.currentRawFrame+value);\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function(arr){\r\n this.playCount = 0;\r\n if(arr[1] < arr[0]){\r\n if(this.frameModifier > 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.01);\r\n } else if(arr[1] > arr[0]){\r\n if(this.frameModifier < 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init,end) {\r\n var pendingFrame = -1;\r\n if(this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init - 0.01;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n if(pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame,true);\r\n }\r\n}\r\n\r\nAnimationItem.prototype.playSegments = function (arr,forceFlag) {\r\n if(typeof arr[0] === 'object'){\r\n var i, len = arr.length;\r\n for(i=0;i= this.totalFrames) {\r\n this.checkSegments();\r\n if(this.loop === false){\r\n this.currentRawFrame = this.totalFrames - 0.01;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n }else{\r\n this.trigger('loopComplete');\r\n this.playCount += 1;\r\n if((this.loop !== true && this.playCount == this.loop) || this.pendingSegment){\r\n this.currentRawFrame = this.totalFrames - 0.01;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n } else {\r\n this.currentRawFrame = this.currentRawFrame % this.totalFrames;\r\n }\r\n }\r\n } else if (this.currentRawFrame < 0) {\r\n this.checkSegments();\r\n this.playCount -= 1;\r\n if(this.playCount < 0){\r\n this.playCount = 0;\r\n }\r\n if(this.loop === false || this.pendingSegment){\r\n this.currentRawFrame = 0;\r\n this.gotoFrame();\r\n this.pause();\r\n this.trigger('complete');\r\n return;\r\n }else{\r\n this.trigger('loopComplete');\r\n this.currentRawFrame = (this.totalFrames + this.currentRawFrame) % this.totalFrames;\r\n this.gotoFrame();\r\n return;\r\n }\r\n }\r\n\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if(this.assetsPath){\r\n var imagePath = assetData.p;\r\n if(imagePath.indexOf('images/') !== -1){\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0, len = this.assets.length;\r\n while (i < len) {\r\n if(id == this.assets[i].id){\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getAssets = function () {\r\n return this.assets;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function(name){\r\n if(this._cbs && this._cbs[name]){\r\n switch(name){\r\n case 'enterFrame':\r\n this.triggerEvent(name,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name,new BMCompleteEvent(name,this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name,new BMDestroyEvent(name,this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if(name === 'enterFrame' && this.onEnterFrame){\r\n this.onEnterFrame.call(this,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n }\r\n if(name === 'loopComplete' && this.onLoopComplete){\r\n this.onLoopComplete.call(this,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n }\r\n if(name === 'complete' && this.onComplete){\r\n this.onComplete.call(this,new BMCompleteEvent(name,this.frameMult));\r\n }\r\n if(name === 'segmentStart' && this.onSegmentStart){\r\n this.onSegmentStart.call(this,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n }\r\n if(name === 'destroy' && this.onDestroy){\r\n this.onDestroy.call(this,new BMDestroyEvent(name,this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.addEventListener = _addEventListener;\r\nAnimationItem.prototype.removeEventListener = _removeEventListener;\r\nAnimationItem.prototype.triggerEvent = _triggerEvent;\r\n\nfunction CanvasRenderer(animationItem, config){\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n className: (config && config.className) || ''\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1\r\n };\r\n this.contextData = {\r\n saved : Array.apply(null,{length:15}),\r\n savedOp: Array.apply(null,{length:15}),\r\n cArrPos : 0,\r\n cTr : new Matrix(),\r\n cO : 1\r\n };\r\n var i, len = 15;\r\n for(i=0;ielementRel && fillType === 'meet' || animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr;\r\n } else if(xPos === 'xMax' && ((animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if(yPos === 'YMid' && ((animationRel>elementRel && fillType==='meet') || (animationRelelementRel && fillType==='meet') || (animationRel= 0; i-=1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function(num){\r\n if((this.renderedFrame == num && this.renderConfig.clearCanvas === true) || this.destroyed || num === null){\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem.firstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n if(this.renderConfig.clearCanvas === true){\r\n this.reset();\r\n this.canvasContext.save();\r\n //this.canvasContext.canvas.width = this.canvasContext.canvas.width;\r\n this.canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w*this.transformCanvas.sx, this.transformCanvas.h*this.transformCanvas.sy);\r\n }else{\r\n this.save();\r\n }\r\n this.ctxTransform(this.transformCanvas.props);\r\n this.canvasContext.beginPath();\r\n this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h);\r\n this.canvasContext.closePath();\r\n this.canvasContext.clip();\r\n\r\n //console.log('--------');\r\n //console.log('NEW: ',num);\r\n var i, len = this.layers.length;\r\n if(!this.completeLayers){\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n for (i = len - 1; i >= 0; i-=1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if(this.renderConfig.clearCanvas !== true){\r\n this.restore();\r\n } else {\r\n this.canvasContext.restore();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function(pos){\r\n var elements = this.elements;\r\n if(elements[pos] || this.layers[pos].ty == 99){\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this,this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function(){\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function(){\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\nCanvasRenderer.prototype.searchExtraCompositions = function(assets){\r\n var i, len = assets.length;\r\n var floatingContainer = document.createElementNS(svgNS,'g');\r\n for(i=0;i= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function(pos){\r\n var perspectiveElem = document.createElement('div');\r\n styleDiv(perspectiveElem);\r\n perspectiveElem.style.width = this.globalData.compSize.w+'px';\r\n perspectiveElem.style.height = this.globalData.compSize.h+'px';\r\n perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = \"50% 50%\";\r\n var container = document.createElement('div');\r\n styleDiv(container);\r\n container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveElem.appendChild(container);\r\n this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container:container,\r\n perspectiveElem:perspectiveElem,\r\n startPos: pos,\r\n endPos: pos\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function(){\r\n var i, len = this.layers.length;\r\n var lastThreeDContainerData;\r\n for(i=0;ielementRel){\r\n sx = elementWidth/(this.globalData.compSize.w);\r\n sy = elementWidth/(this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2);\r\n }else{\r\n sx = elementHeight/(this.globalData.compSize.h);\r\n sy = elementHeight/(this.globalData.compSize.h);\r\n tx = (elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2;\r\n ty = 0;\r\n }\r\n this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function(){\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function(){\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function(){\r\n this.buildAllItems();\r\n if(this.camera){\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i, len = this.threeDElements.length;\r\n for(i=0;i= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n if(this.data.hasMask){\r\n this.globalData.renderer.restore(true);\r\n }\r\n if(this.firstFrame){\r\n this.firstFrame = false;\r\n }\r\n this.parentGlobalData.renderer.save();\r\n this.parentGlobalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.parentGlobalData.renderer.ctxOpacity(this.finalTransform.opacity);\r\n this.parentGlobalData.renderer.canvasContext.drawImage(this.canvas,0,0,this.data.w,this.data.h);\r\n this.parentGlobalData.renderer.restore();\r\n\r\n if(this.globalData.mdf){\r\n this.reset();\r\n }\r\n};\r\n\r\nCVCompElement.prototype.setElements = function(elems){\r\n this.elements = elems;\r\n};\r\n\r\nCVCompElement.prototype.getElements = function(){\r\n return this.elements;\r\n};\r\n\r\nCVCompElement.prototype.destroy = function(){\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n this.elements[i].destroy();\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n this._parent.destroy.call(this._parent);\r\n};\r\nCVCompElement.prototype.checkLayers = CanvasRenderer.prototype.checkLayers;\r\nCVCompElement.prototype.buildItem = CanvasRenderer.prototype.buildItem;\r\nCVCompElement.prototype.checkPendingElements = CanvasRenderer.prototype.checkPendingElements;\r\nCVCompElement.prototype.addPendingElement = CanvasRenderer.prototype.addPendingElement;\r\nCVCompElement.prototype.buildAllItems = CanvasRenderer.prototype.buildAllItems;\r\nCVCompElement.prototype.createItem = CanvasRenderer.prototype.createItem;\r\nCVCompElement.prototype.createImage = CanvasRenderer.prototype.createImage;\r\nCVCompElement.prototype.createComp = CanvasRenderer.prototype.createComp;\r\nCVCompElement.prototype.createSolid = CanvasRenderer.prototype.createSolid;\r\nCVCompElement.prototype.createShape = CanvasRenderer.prototype.createShape;\r\nCVCompElement.prototype.createText = CanvasRenderer.prototype.createText;\r\nCVCompElement.prototype.createBase = CanvasRenderer.prototype.createBase;\r\nCVCompElement.prototype.buildElementParenting = CanvasRenderer.prototype.buildElementParenting;\nfunction CVImageElement(data, comp,globalData){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this._parent.constructor.call(this,data, comp,globalData);\r\n this.globalData.addPendingElement();\r\n}\r\ncreateElement(CVBaseElement, CVImageElement);\r\n\r\nCVImageElement.prototype.createElements = function(){\r\n var imageLoaded = function(){\r\n this.globalData.elementLoaded();\r\n if(this.assetData.w !== this.img.width || this.assetData.h !== this.img.height){\r\n var canvas = document.createElement('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w/this.assetData.h;\r\n var widthCrop, heightCrop;\r\n if(imgRel>canvasRel){\r\n heightCrop = imgH;\r\n widthCrop = heightCrop*canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop/canvasRel;\r\n }\r\n ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h);\r\n this.img = canvas;\r\n }\r\n }.bind(this);\r\n var imageFailed = function(){\r\n this.failed = true;\r\n this.globalData.elementLoaded();\r\n }.bind(this);\r\n\r\n this.img = new Image();\r\n this.img.addEventListener('load', imageLoaded, false);\r\n this.img.addEventListener('error', imageFailed, false);\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.img.src = assetPath;\r\n\r\n this._parent.createElements.call(this);\r\n\r\n};\r\n\r\nCVImageElement.prototype.renderFrame = function(parentMatrix){\r\n if(this.failed){\r\n return;\r\n }\r\n if(this._parent.renderFrame.call(this,parentMatrix)===false){\r\n return;\r\n }\r\n var ctx = this.canvasContext;\r\n this.globalData.renderer.save();\r\n var finalMat = this.finalTransform.mat.props;\r\n this.globalData.renderer.ctxTransform(finalMat);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.opacity);\r\n ctx.drawImage(this.img,0,0);\r\n this.globalData.renderer.restore(this.data.hasMask);\r\n if(this.firstFrame){\r\n this.firstFrame = false;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.destroy = function(){\r\n this.img = null;\r\n this._parent.destroy.call(this._parent);\r\n};\n\r\nfunction CVMaskElement(data,element){\r\n this.data = data;\r\n this.element = element;\r\n this.dynamicProperties = [];\r\n this.masksProperties = this.data.masksProperties;\r\n this.viewData = Array.apply(null,{length:this.masksProperties.length});\r\n var i, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[i],3,this.dynamicProperties,null);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.prepareFrame = function(num){\r\n var i, len = this.dynamicProperties.length;\r\n for(i=0;i=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], dynamicProperties);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n \r\n ownArrays.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n if(items[i].ty == 'tr'){\r\n groupTransform = data[i].transform;\r\n var mtArr = data[i].transform.mProps.v.props;\r\n groupTransform.matMdf = groupTransform.mProps.mdf;\r\n groupTransform.opMdf = groupTransform.op.mdf;\r\n groupMatrix = groupTransform.mat;\r\n groupMatrix.cloneFromProps(mtArr);\r\n if(parentTransform){\r\n var props = parentTransform.mat.props;\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= data[i].transform.op.v;\r\n groupTransform.matMdf = parentTransform.matMdf ? true : groupTransform.matMdf;\r\n groupTransform.opMdf = parentTransform.opMdf ? true : groupTransform.opMdf;\r\n groupMatrix.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n }else{\r\n groupTransform.opacity = groupTransform.op.o;\r\n }\r\n }else if(items[i].ty == 'sh' || items[i].ty == 'el' || items[i].ty == 'rc' || items[i].ty == 'sr'){\r\n this.renderPath(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'fl'){\r\n this.renderFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'st'){\r\n this.renderStroke(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gr'){\r\n this.renderShape(groupTransform,items[i].it,data[i].it);\r\n }else if(items[i].ty == 'tm'){\r\n //\r\n }\r\n }\r\n if(!isMain){\r\n return;\r\n }\r\n len = this.stylesList.length;\r\n var j, jLen, k, kLen,elems,nodes, renderer = this.globalData.renderer, ctx = this.globalData.canvasContext, type;\r\n renderer.save();\r\n renderer.ctxTransform(this.finalTransform.mat.props);\r\n for(i=0;i lengthPos) {\r\n segments = lengths[i].segments;\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength)/lengths[i].addedLength;\r\n var pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i])\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if(!pt){\r\n pt = shapePath.c ? [shapePath.v[0][0],shapePath.v[0][1]]:[shapePath.v[shapePath._length-1][0],shapePath.v[shapePath._length-1][1]]\r\n }\r\n return pt;\r\n }\r\n\r\n ShapePropertyConstructorFunction.prototype.setGroupProperty = setGroupProperty;\r\n ShapePropertyConstructorFunction.prototype.getValueAtTime = getStaticValueAtTime;\r\n\r\n KeyframedShapePropertyConstructorFunction.prototype.vertices = ShapePropertyConstructorFunction.prototype.vertices;\r\n KeyframedShapePropertyConstructorFunction.prototype.points = ShapePropertyConstructorFunction.prototype.points;\r\n KeyframedShapePropertyConstructorFunction.prototype.inTangents = ShapePropertyConstructorFunction.prototype.inTangents;\r\n KeyframedShapePropertyConstructorFunction.prototype.outTangents = ShapePropertyConstructorFunction.prototype.outTangents;\r\n KeyframedShapePropertyConstructorFunction.prototype.isClosed = ShapePropertyConstructorFunction.prototype.isClosed;\r\n KeyframedShapePropertyConstructorFunction.prototype.pointOnPath = ShapePropertyConstructorFunction.prototype.pointOnPath;\r\n KeyframedShapePropertyConstructorFunction.prototype.setGroupProperty = ShapePropertyConstructorFunction.prototype.setGroupProperty;\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function(elem,data,type, arr, trims){\r\n var prop = propertyGetShapeProp(elem,data,type, arr, trims);\r\n var isAdded = prop.k;\r\n if(data.ix !== undefined){\r\n Object.defineProperty(prop,'propertyIndex',{\r\n get: function(){\r\n return data.ix;\r\n }\r\n })\r\n }\r\n if(type === 3){\r\n searchExpressions(elem,data.pt,prop);\r\n } else if(type === 4){\r\n searchExpressions(elem,data.ks,prop);\r\n }\r\n if(!isAdded && prop.x){\r\n arr.push(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n var propertyGetTextProp = PropertyFactory.getTextSelectorProp;\r\n PropertyFactory.getTextSelectorProp = function(elem, data,arr){\r\n if(data.t === 1){\r\n return new TextExpressionSelectorProp(elem, data,arr);\r\n } else {\r\n return propertyGetTextProp(elem,data,arr);\r\n }\r\n }\r\n}());\nvar ExpressionManager = (function(){\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n\r\n function duplicatePropertyValue(value, mult){\r\n mult = mult || 1;\r\n\r\n if(typeof value === 'number' || value instanceof Number){\r\n return value*mult;\r\n }else if(value.i){\r\n return JSON.parse(JSON.stringify(value));\r\n }else{\r\n var arr = Array.apply(null,{length:value.length});\r\n var i, len = value.length;\r\n for(i=0;i max){\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val/degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val*degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0,0,0,0,0,0];\r\n\r\n function length(arr1,arr2){\r\n if(typeof arr1 === 'number' || arr1 instanceof Number){\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if(!arr2){\r\n arr2 = helperLengthArray;\r\n }\r\n var i,len = Math.min(arr1.length,arr2.length);\r\n var addedLength = 0;\r\n for(i=0;i 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch(max){\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l,val[3]];\r\n }\r\n function hslToRgb(val){\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r, g, b;\r\n\r\n if(s == 0){\r\n r = g = b = l; // achromatic\r\n }else{\r\n function hue2rgb(p, q, t){\r\n if(t < 0) t += 1;\r\n if(t > 1) t -= 1;\r\n if(t < 1/6) return p + (q - p) * 6 * t;\r\n if(t < 1/2) return q;\r\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\r\n return p;\r\n }\r\n\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1/3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1/3);\r\n }\r\n\r\n return [r, g , b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2){\r\n if(value1 === undefined || value2 === undefined){\r\n return linear(t,0,1,tMin,tMax);\r\n }\r\n if(t <= tMin) {\r\n return value1;\r\n }else if(t >= tMax){\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t-tMin)/(tMax-tMin);\r\n if(!value1.length){\r\n return value1 + (value2-value1)*perc;\r\n }\r\n var i, len = value1.length;\r\n var arr = Array.apply( null, { length: len } );\r\n for(i=0;i1){\r\n for(j=0;j=firstKeyFrame){\r\n return this.pv;\r\n }else{\r\n var cycleDuration, lastKeyFrame;\r\n if(!durationFlag){\r\n if(!duration || duration > keyframes.length - 1){\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if(!duration){\r\n cycleDuration = Math.max(0,this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(elem.comp.globalData.frameRate*duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i, len, ret;\r\n if(type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame)/cycleDuration);\r\n if(iterations % 2 === 0){\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame)%cycleDuration + firstKeyFrame) - offsetTime) / this.comp.globalData.frameRate, 0);\r\n }\r\n } else if(type === 'offset'){\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame)%cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame)/cycleDuration)+1;\r\n if(this.pv.length){\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for(i=0;i keyframes.length - 1){\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if(!duration){\r\n cycleDuration = Math.max(0,lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - elem.comp.globalData.frameRate*duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var offsetTime = this.offsetTime || 0;\r\n var i, len, ret;\r\n if(type.toLowerCase() === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);\r\n if(iterations % 2 !== 0){\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) - offsetTime) / this.comp.globalData.frameRate, 0);\r\n }\r\n } else if(type === 'offset'){\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);\r\n if(this.pv.length){\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for(i=0;idata.k[i].t && time data.k[i+1].t - time){\r\n index = i + 2;\r\n keyTime = data.k[i+1].t;\r\n } else {\r\n index = i + 1;\r\n keyTime = data.k[i].t;\r\n }\r\n break;\r\n }\r\n }\r\n if(index === -1){\r\n index = i + 1;\r\n keyTime = data.k[i].t;\r\n }\r\n }\r\n \r\n }\r\n var ob = {};\r\n ob.index = index;\r\n ob.time = keyTime/elem.comp.globalData.frameRate;\r\n return ob;\r\n };\r\n\r\n function key(ind){\r\n var ob, i, len;\r\n if(!data.k.length || typeof(data.k[0]) === 'number'){\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n ob = {\r\n time: data.k[ind].t/elem.comp.globalData.frameRate\r\n };\r\n var arr;\r\n if(ind === data.k.length - 1 && !data.k[ind].h){\r\n arr = data.k[ind-1].e;\r\n }else{\r\n arr = data.k[ind].s;\r\n }\r\n len = arr.length;\r\n for(i=0;i 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case \"propertyFactory\":\r\n return PropertyFactory;\r\n case \"shapePropertyFactory\":\r\n return ShapePropertyFactory;\r\n case \"matrix\":\r\n return Matrix;\r\n }\r\n }\r\n bodymovinjs.play = play;\r\n bodymovinjs.pause = pause;\r\n bodymovinjs.setLocationHref = setLocationHref;\r\n bodymovinjs.togglePause = togglePause;\r\n bodymovinjs.setSpeed = setSpeed;\r\n bodymovinjs.setDirection = setDirection;\r\n bodymovinjs.stop = stop;\r\n bodymovinjs.moveFrame = moveFrame;\r\n bodymovinjs.searchAnimations = searchAnimations;\r\n bodymovinjs.registerAnimation = registerAnimation;\r\n bodymovinjs.loadAnimation = loadAnimation;\r\n bodymovinjs.setSubframeRendering = setSubframeRendering;\r\n bodymovinjs.resize = resize;\r\n bodymovinjs.start = start;\r\n bodymovinjs.goToAndStop = goToAndStop;\r\n bodymovinjs.destroy = destroy;\r\n bodymovinjs.setQuality = setQuality;\r\n bodymovinjs.inBrowser = inBrowser;\r\n bodymovinjs.installPlugin = installPlugin;\r\n bodymovinjs.__getFactory = getFactory;\r\n bodymovinjs.version = '4.12.3';\r\n\r\n function checkReady() {\r\n if (document.readyState === \"complete\") {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n }\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n var queryString = myScript.src.replace(/^[^\\?]+\\??/, '');\r\n renderer = getQueryVariable('renderer');\r\n }\r\n var readyStateCheckInterval = setInterval(checkReady, 100);\r\n return bodymovinjs;\r\n}));"],"mappings":"AAGA;;;;;ACKA;;;;;ACAA;;;;;ACKA;;;;;ACAA;;;;;;;;;ACGA;;;;ACqIA;;;;;;;;AC5IA;;;;;;;;ACGA;;;;;;;;;ACHA;;;;;;;;ACGA;;;;;;;;ACHA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACwXA","sourceRoot":""} \ No newline at end of file