jekyll-octopod 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/assets/_config.yml +0 -9
  3. data/assets/_config.yml.sample +3 -9
  4. data/assets/_layouts/default.html +1 -4
  5. data/assets/_layouts/player_index.html +1 -10
  6. data/bin/octopod +2 -1
  7. data/lib/jekyll-octopod.rb +1 -0
  8. data/lib/jekyll/octopod_filters.rb +0 -106
  9. data/lib/jekyll/podigee_player_tag.rb +43 -0
  10. data/lib/jekyll/static_file.rb +4 -11
  11. data/lib/octopod/version.rb +1 -1
  12. metadata +3 -53
  13. data/assets/podlove-web-player/bin/flashmediaelement.swf +0 -0
  14. data/assets/podlove-web-player/bin/silverlightmediaelement.xap +0 -0
  15. data/assets/podlove-web-player/css/pwp-blue-orange.css +0 -3526
  16. data/assets/podlove-web-player/css/pwp-blue-orange.min.css +0 -1
  17. data/assets/podlove-web-player/css/pwp-creamy.css +0 -3526
  18. data/assets/podlove-web-player/css/pwp-creamy.min.css +0 -1
  19. data/assets/podlove-web-player/css/pwp-dark-blaze.css +0 -3526
  20. data/assets/podlove-web-player/css/pwp-dark-blaze.min.css +0 -1
  21. data/assets/podlove-web-player/css/pwp-dark-gray.css +0 -3526
  22. data/assets/podlove-web-player/css/pwp-dark-gray.min.css +0 -1
  23. data/assets/podlove-web-player/css/pwp-dark-green.css +0 -3526
  24. data/assets/podlove-web-player/css/pwp-dark-green.min.css +0 -1
  25. data/assets/podlove-web-player/css/pwp-dark.css +0 -3526
  26. data/assets/podlove-web-player/css/pwp-dark.min.css +0 -1
  27. data/assets/podlove-web-player/css/pwp-jungle-green.css +0 -3526
  28. data/assets/podlove-web-player/css/pwp-jungle-green.min.css +0 -1
  29. data/assets/podlove-web-player/css/pwp-light-gray.css +0 -3526
  30. data/assets/podlove-web-player/css/pwp-light-gray.min.css +0 -1
  31. data/assets/podlove-web-player/css/pwp-light.css +0 -3526
  32. data/assets/podlove-web-player/css/pwp-light.min.css +0 -1
  33. data/assets/podlove-web-player/css/pwp-midnightblue.css +0 -3526
  34. data/assets/podlove-web-player/css/pwp-midnightblue.min.css +0 -1
  35. data/assets/podlove-web-player/css/pwp-silver-blaze.css +0 -3526
  36. data/assets/podlove-web-player/css/pwp-silver-blaze.min.css +0 -1
  37. data/assets/podlove-web-player/css/pwp-silver.css +0 -3526
  38. data/assets/podlove-web-player/css/pwp-silver.min.css +0 -1
  39. data/assets/podlove-web-player/css/vendor/progress-polyfill.css +0 -47
  40. data/assets/podlove-web-player/css/vendor/style.css +0 -72
  41. data/assets/podlove-web-player/font/podlove.eot +0 -0
  42. data/assets/podlove-web-player/font/podlove.svg +0 -103
  43. data/assets/podlove-web-player/font/podlove.ttf +0 -0
  44. data/assets/podlove-web-player/font/podlove.woff +0 -0
  45. data/assets/podlove-web-player/img/arrow-down-black.png +0 -0
  46. data/assets/podlove-web-player/img/arrow-down-white.png +0 -0
  47. data/assets/podlove-web-player/img/download-overlay.png +0 -0
  48. data/assets/podlove-web-player/img/icon-podlove-subscribe-600.png +0 -0
  49. data/assets/podlove-web-player/js/podlove-web-moderator.js +0 -1829
  50. data/assets/podlove-web-player/js/podlove-web-moderator.min.js +0 -1
  51. data/assets/podlove-web-player/js/podlove-web-player.js +0 -6058
  52. data/assets/podlove-web-player/js/podlove-web-player.min.js +0 -3
  53. data/assets/podlove-web-player/js/vendor/html5shiv-printshiv.js +0 -524
  54. data/assets/podlove-web-player/js/vendor/html5shiv-printshiv.min.js +0 -4
  55. data/assets/podlove-web-player/js/vendor/html5shiv.js +0 -326
  56. data/assets/podlove-web-player/js/vendor/html5shiv.min.js +0 -4
  57. data/assets/podlove-web-player/js/vendor/jquery.js +0 -10351
  58. data/assets/podlove-web-player/js/vendor/jquery.min.js +0 -6
  59. data/assets/podlove-web-player/js/vendor/jquery.min.map +0 -1
  60. data/assets/podlove-web-player/js/vendor/progress-polyfill.js +0 -224
  61. data/assets/podlove-web-player/js/vendor/progress-polyfill.min.js +0 -5
  62. data/assets/podlove-web-player/js/vendor/tests.js +0 -83
  63. data/assets/podlove-web-player/js/vendor/user-interaction.js +0 -44
@@ -1 +0,0 @@
1
- @font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(http://fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUfaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype')}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(http://fonts.gstatic.com/s/roboto/v15/zN7GBFwfMP4uA6AR0HCoLQ.ttf) format('truetype')}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(http://fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype')}@font-face{font-family:'Droid Sans Mono';font-style:normal;font-weight:400;src:local('Droid Sans Mono'),local('DroidSansMono'),url(http://fonts.gstatic.com/s/droidsansmono/v7/ns-m2xQYezAtqh7ai59hJYW_AySPyikQrZReizgrnuw.ttf) format('truetype')}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.break-all,.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6,p{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;word-break:break-all;word-break:break-word}p{margin:0 0 9px;font-weight:400}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Roboto,"Helvetica Neue",Helvetica,sans-serif;line-height:1.3;color:inherit}h1,h1 a,h2,h2 a{font-weight:500}h3,h3 a,h4,h4 a,h5,h5 a,h6{font-weight:400}h1,h2,h3{margin-top:18px}h4,h5,h6{margin-top:9px;margin-bottom:9px}.h1,h1{font-size:29px}.h2,h2{font-size:26px}.h3,h3{font-size:17px}.h4,h4{font-size:15px}.h5,h5{font-size:13px}.h6,h6{font-size:12px}ol,ul{margin-top:0;margin-bottom:9px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}a{font-weight:500}em{font-weight:500;font-size:13px}button{font-weight:500}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{font-family:Roboto,"Helvetica Neue",Helvetica,sans-serif;font-size:13px;line-height:1.42857;color:#2c3e50;background-color:#FBFCFC;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}@media screen and (min-width:1200px){.time,button,input,legend,select,span{font-size:1.15vw}}a{color:#2c3e50;text-decoration:none;background:0 0}a:focus,a:hover{color:#476481;text-decoration:none;outline:0}p{font-size:13px}@media screen and (min-width:1200px){p{font-size:1.15vw}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}select{border-radius:0!important;background-image:none}.button{color:#2c3e50;font-family:podlove!important;background:0 0!important;text-decoration:none;speak:none;zoom:1;padding-right:.9em}.button:active,.button:hover{zoom:1}.button:active{text-shadow:0 0 1px #2c3e50}.button-toggle{display:inline;z-index:78}.icon-facebook,.icon-link,.icon-twitter{font-weight:400}.icon-twitter{font-size:2.1em}.button-submit{color:#fff;background:#2c3e50;text-decoration:none;speak:none;border:1px solid #2c3e50;border-radius:4px;font-size:26px;font-weight:400;padding:11px;-webkit-transition:ease;transition:ease;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:all;transition-property:all}.button-submit:hover{background-color:#476481;border:1px solid #476481;color:#fff;cursor:pointer}.button-submit:active{background-color:#2c3e50;border:1px solid #2c3e50}.play{color:#556472;font-family:podlove;font-size:64px;max-width:64px;line-height:64px;margin:auto 10px}@media screen and (min-width:480px){.play{margin:18px}}@media screen and (min-width:992px){.play{font-size:80px;max-width:80px;line-height:80px;margin:30px}}.play:hover{text-shadow:0 0 3px #2c3e50;color:#2c3e50}.play:active{text-shadow:0 0 8px #2c3e50;color:#2c3e50}.play.playing{color:#2c3e50}button{-moz-appearance:none;-webkit-appearance:none;border:none}.badge{font-family:"Droid Sans Mono",Monaco,Menlo,Consolas,"Courier New",monospace;height:25px;min-width:25px;font-weight:400;line-height:25px;text-align:center;color:#2c3e50;background-color:#dce0e2;white-space:nowrap;display:inline-block;border-radius:50%}@media screen and (min-width:992px){.badge{height:33px;min-width:33px;line-height:33px}}@media screen and (min-width:1200px){.badge{font-size:1.15vw}}.container{width:100%;clear:both;display:block;position:relative;padding:0;border:0 solid transparent}.container a{color:#2c3e50}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2 / 1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.container{width:100%}}progress,progress[role]{appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;background-size:auto;width:400px;height:16px}progress[role]:after{background-image:none}progress[role] strong{display:none}progress,progress[role][aria-valuenow]{background:#dce0e2!important}progress::-webkit-progress-bar{background:#dce0e2}progress{color:#2c3e50}progress::-moz-progress-bar{background:#2c3e50}progress::-webkit-progress-value{background:#2c3e50}progress[aria-valuenow]:before{background:#2c3e50}.progressbar{color:#2c3e50;background-color:#FBFCFC;width:100%;height:60px;font-weight:300}@media screen and (max-width:480px){.progressbar{height:80px}}.progressbar .progress-info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;width:100%;height:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progressbar .progress-info div{display:inline-block}.progressbar .progress-info .chapter{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;height:100%}@media all and (max-width:360px){.progressbar .progress-info .chapter{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}}.progressbar .progress-info .badge{display:block;float:left;margin-top:8px;color:#2c3e50;background-color:#dce0e2}@media all and (min-width:992px){.progressbar .progress-info .badge{margin-top:5px}}.progressbar .progress-info .chapter-title{display:block;padding:11px 20px 0 15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.progressbar .time{font-family:"Droid Sans Mono",Monaco,Menlo,Consolas,"Courier New",monospace;font-weight:400;padding-top:12px;height:100%;vertical-align:middle}@media all and (max-width:768px){.progressbar .time{font-size:11px;padding-top:12px}}.progressbar .time:first-of-type{-webkit-box-flex:0;-webkit-flex:0 104px;-ms-flex:0 104px;flex:0 104px;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;padding-left:20px;text-align:left;color:#2c3e50}@media all and (max-width:480px){.progressbar .time:first-of-type{-webkit-box-flex:0;-webkit-flex:0 76px;-ms-flex:0 76px;flex:0 76px;padding-left:10px!important}}@media all and (min-width:992px){.progressbar .time:first-of-type{-webkit-box-flex:0;-webkit-flex:0 150px;-ms-flex:0 150px;flex:0 150px}}.progressbar .time:last-of-type{-webkit-box-flex:0;-webkit-flex:0 95px;-ms-flex:0 95px;flex:0 95px;-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3;padding-right:20px;text-align:right;color:#2c3e50}@media all and (max-width:480px){.progressbar .time:last-of-type{padding-right:10px!important}}@media all and (max-width:768px){.progressbar .time:last-of-type{-webkit-box-flex:0;-webkit-flex:0 91px;-ms-flex:0 91px;flex:0 91px}}@media all and (min-width:992px){.progressbar .time:last-of-type{-webkit-box-flex:0;-webkit-flex:0 150px;-ms-flex:0 150px;flex:0 150px}}.progress{margin:0 auto;position:relative}.progress .current{width:100%;height:10px;background-repeat:repeat-x;margin:0 auto;position:absolute;top:0;left:0}@media screen and (max-width:480px){.progress .current{height:20px}}.progress:hover .inner-handle{-webkit-transition:width .3s,left .3s,-webkit-transform .2s,ease;transition:width .3s,left .3s,transform .2s,ease;width:10px;left:-2px}.buffer{top:13px;left:0;position:absolute;width:100%;height:2px;background-repeat:repeat-x;margin:0 auto}@media screen and (max-width:480px){.buffer{top:26px;height:4px}}.handle{display:block;position:absolute;top:0;margin-left:-5px;background:0 0;height:10px;width:10px;z-index:100}@media screen and (max-width:480px){.handle{height:20px}}.handle .inner-handle{background:#2c3e50;height:10px;width:4px;position:absolute;top:0;left:3px;z-index:101;-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition:width .3s,left .3s,-webkit-transform .1s,ease;transition:width .3s,left .3s,transform .1s,ease}.handle .inner-handle:hover{-webkit-transform:scale(1,1.5);-ms-transform:scale(1,1.5);transform:scale(1,1.5)}@media screen and (max-width:480px){.handle .inner-handle{height:20px}.handle .inner-handle:hover{-webkit-transform:scaleY(1.3);-ms-transform:scaleY(1.3);transform:scaleY(1.3)}}.marker{z-index:99;position:absolute;top:0;display:block;height:10px;width:2px;margin-left:-1px;background:#FBFCFC}@media screen and (max-width:480px){.marker{height:20px}}.titlebar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;width:100%;background:#dce0e2;min-height:100px;height:auto;color:#2c3e50}.titlebar:after,.titlebar:before{content:" ";display:table}.titlebar:after{clear:both}.titlebar a{color:#556472}.titlebar h1,.titlebar h2,.titlebar h3{line-height:1.1}.titlebar header{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3;min-width:1px;margin:auto 0;width:1px;padding:0 20px 0 0}.titlebar header h1{font-size:1.5em}.titlebar header .subtitle,.titlebar header h3{font-size:1em}.titlebar header a{color:#556472}.titlebar header a:active,.titlebar header a:hover{color:#2c3e50}.coverart{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;min-width:100px;height:100px}.coverart img{height:100px}.showtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.episodetitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:10px 0}.episodetitle>a{line-height:20px!important;color:#2c3e50!important}.episodetitle>a:hover{color:#2c3e50}.subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;text-shadow:none!important;background:0 0!important;font-size:15px;opacity:.6}.subtitle .summary .summarydiv{margin:0 5px}.play{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;min-width:1px}@media all and (max-width:479px){.titlebar .coverart{-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;width:100%;height:auto}.titlebar .coverart img{height:auto;width:100%}.titlebar header{margin:1.25em 0;padding:0 10px 0 0}}@media all and (min-width:480px){.titlebar .coverart{padding:7px}.titlebar .coverart img{width:86px;height:86px}}@media all and (min-width:768px){.titlebar header h1{font-size:29px}}@media screen and (min-width:992px){.titlebar header .subtitle,.titlebar header h3{font-size:17px}}@media all and (min-width:992px){.titlebar .coverart{min-width:140px;height:140px}.titlebar .coverart img{height:126px;width:126px}.titlebar header{-webkit-box-flex:2;-webkit-flex:2 0;-ms-flex:2 0;flex:2 0;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin:auto}}.podlovewebplayer_video .titlebar header{margin:auto 10px}@media screen and (min-width:992px){.podlovewebplayer_video .titlebar header{margin:auto 20px}}.controlbar-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;background-color:#FBFCFC}.bar,.controlbar,.togglebar{-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;background:#dce0e2;padding:2px 10px 4px;font-size:28px;display:inline-block}@media screen and (min-width:480px){.bar,.controlbar,.togglebar{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;width:auto;margin:0;font-size:22px;height:40px;padding:3px 20px;border:none;-webkit-transition:font-size .2s,ease;transition:font-size .2s,ease}}.bar ul,.controlbar ul,.togglebar ul{display:inline-block}.bar ul li,.controlbar ul li,.togglebar ul li{width:31%}.bar ul li:last-of-type,.controlbar ul li:last-of-type,.togglebar ul li:last-of-type{width:6%}@media screen and (min-width:480px){.bar li,.controlbar li,.togglebar li{width:auto;-webkit-transition:width .2s,ease;transition:width .2s,ease}}.bar li,.controlbar li,.togglebar li{display:inline-block;position:relative;top:0;left:0}.bar li a,.controlbar li a,.togglebar li a{color:#556472}.bar li a:active,.bar li a:hover,.controlbar li a:active,.controlbar li a:hover,.togglebar li a:active,.togglebar li a:hover{color:#2c3e50}.bar li:last-child a,.controlbar li:last-child a,.togglebar li:last-child a{padding-right:0}.controlbar{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;border-bottom:1px solid transparent;margin-bottom:1px}@media screen and (min-width:480px){.controlbar{border-bottom:none;margin-bottom:0;height:auto}}.controlbar .timecontrolbar{display:table;width:100%;position:initial;margin:0;padding-right:10px}@media screen and (min-width:480px){.controlbar .timecontrolbar{height:auto;float:right;margin:0;padding-right:0}.controlbar .timecontrolbar li{display:table-cell;width:32px!important}.controlbar .timecontrolbar li:last-of-type{width:6%}.controlbar .timecontrolbar a{padding-left:0}}@media screen and (min-width:480px) and (min-width:480px){.controlbar .timecontrolbar a{padding-left:.9em;padding-right:0}}@media screen and (min-width:480px){.controlbar .timecontrolbar{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;height:100%;width:auto;margin:0}.controlbar .timecontrolbar li{width:auto}}.togglebar{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;height:auto;float:none}@media screen and (min-width:480px){.togglebar{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;height:auto;min-height:40px}.togglebar ul{margin-bottom:0}}.togglebar .tablist{display:table;margin-bottom:0}.togglebar .tablist li{display:table-cell;width:32px!important}.togglebar .tablist a{padding-right:.9em}.togglebar li.active a{text-shadow:0 0 1px #6a7784;filter:alpha(opacity=100);color:#2c3e50;zoom:1}.togglebar li.active:before{content:'';display:block;width:0;height:0;position:absolute;top:36px;left:3.6px;border-left:10.4px solid transparent;border-right:10.4px solid transparent;border-bottom:10.4px solid #FBFCFC}@media screen and (min-width:480px){.togglebar li.active:before{top:29px;left:3px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FBFCFC}}.tabs{color:#2c3e50;background-color:#FBFCFC;position:relative}.tabs a{color:#2c3e50}.tabs a:focus,.tabs a:hover{color:#476481}.tabs a:active{color:#507192}.tabs a.button-toggle{color:#556472}.tabs>section{padding:0;line-height:1.5;overflow-y:scroll}.tabs p{margin:0 20px}.tabs .tab{display:none}.tabs .tab>aside,.tabs .tab>div,.tabs .tab>header{padding:1px}.tabs .tab.active{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;height:auto;max-height:500px;width:100%;border-top:0;border-right:1px solid #dce0e2;border-bottom:1px solid #dce0e2;border-left:1px solid #dce0e2}.tabs .tab.active header{border-right:1px solid #dce0e2;border-left:1px solid #dce0e2}.tabs dd,.tabs dt{display:inline-block;margin:0 20px 15px}.tabs dt{clear:both;margin-right:20px;width:36%;max-width:160px}.tabs dd{width:30%;max-width:70px}.tabs header{position:absolute;top:0;left:0;z-index:1;background-color:#FBFCFC;padding:25px 0 0!important;width:100%;height:70px}@media screen and (max-width:480px){.tabs header{padding:10px 0 0!important;height:50px}}.tabs .tab-headline{font-weight:300;font-size:19px}@media screen and (min-width:768px){.tabs .tab-headline{font-size:29px}}.tabs h2{font-size:19px;margin:0 20px}@media screen and (min-width:768px){.tabs h2{font-size:26px}}.tabs h2 i{padding-right:10px}.tabs h3,.tabs h4{margin:20px}.tabs .main{width:100%;-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin-top:70px;margin-bottom:20px}@media screen and (max-width:480px){.tabs .main{margin-top:50px}}.tabs .aside{margin-bottom:20px}@media all and (max-width:480px){.tab header{margin:0}.tab h2,.tab h3,.tab h4,.tab p{margin:10px}}.scrolled{-webkit-box-shadow:0 6px 7px -4px #000;box-shadow:0 6px 7px -4px #000}.pwp-adn:before{color:#4a484d;font-size:45px}.pwp-contrast-adn{display:inline-block;background:#4a484d;border-radius:6px}@media screen and (min-width:550px){.pwp-contrast-adn{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-adn{width:72px;padding:10px}}.pwp-contrast-adn .pwp-adn:before{color:#fff}@media screen and (min-width:550px){.pwp-contrast-adn .pwp-adn:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-adn .pwp-adn:before{font-size:52px}}.pwp-bandcamp:before{color:#4e9bac;font-size:45px}.pwp-contrast-bandcamp{display:inline-block;width:53px;background:#4e9bac;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-bandcamp{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-bandcamp{width:72px;padding:10px}}.pwp-contrast-bandcamp .pwp-bandcamp:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-bandcamp .pwp-bandcamp:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-bandcamp .pwp-bandcamp:before{font-size:52px}}.pwp-blogger:before{color:#ff7600;font-size:45px}.pwp-contrast-blogger{display:inline-block;width:53px;background:#ff7600;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-blogger{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-blogger{width:72px;padding:10px}}.pwp-contrast-blogger .pwp-blogger:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-blogger .pwp-blogger:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-blogger .pwp-blogger:before{font-size:52px}}.pwp-delicious:before{color:#248cff;font-size:45px}.pwp-contrast-delicious{display:inline-block;width:53px;background:#248cff;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-delicious{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-delicious{width:72px;padding:10px}}.pwp-contrast-delicious .pwp-delicious:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-delicious .pwp-delicious:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-delicious .pwp-delicious:before{font-size:52px}}.pwp-deviantart:before{color:#d0dd20;font-size:45px}.pwp-contrast-deviantart{display:inline-block;width:53px;background:#d0dd20;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-deviantart{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-deviantart{width:72px;padding:10px}}.pwp-contrast-deviantart .pwp-deviantart:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-deviantart .pwp-deviantart:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-deviantart .pwp-deviantart:before{font-size:52px}}.pwp-dribble:before{color:#f26798;font-size:45px}.pwp-contrast-dribble{display:inline-block;width:53px;background:#f26798;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-dribble{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-dribble{width:72px;padding:10px}}.pwp-contrast-dribble .pwp-dribble:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-dribble .pwp-dribble:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-dribble .pwp-dribble:before{font-size:52px}}.pwp-facebook:before{color:#3b5998;font-size:45px}.pwp-contrast-facebook{display:inline-block;width:53px;background:#3b5998;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-facebook{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-facebook{width:72px;padding:10px}}.pwp-contrast-facebook .pwp-facebook:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-facebook .pwp-facebook:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-facebook .pwp-facebook:before{font-size:52px}}.pwp-ficly:before{color:#b51c2c;font-size:45px}.pwp-contrast-ficly{display:inline-block;width:53px;background:#b51c2c;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-ficly{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-ficly{width:72px;padding:10px}}.pwp-contrast-ficly .pwp-ficly:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-ficly .pwp-ficly:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-ficly .pwp-ficly:before{font-size:52px}}.pwp-flattr:before{color:#83ae3a;font-size:45px}.pwp-contrast-flattr{display:inline-block;width:53px;background:#83ae3a;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-flattr{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-flattr{width:72px;padding:10px}}.pwp-contrast-flattr .pwp-flattr:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-flattr .pwp-flattr:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-flattr .pwp-flattr:before{font-size:52px}}.pwp-flickr:before{color:#0063db;font-size:45px}.pwp-contrast-flickr{display:inline-block;width:53px;background:#0063db;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-flickr{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-flickr{width:72px;padding:10px}}.pwp-contrast-flickr .pwp-flickr:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-flickr .pwp-flickr:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-flickr .pwp-flickr:before{font-size:52px}}.pwp-github:before{color:#4183c4;font-size:45px}.pwp-contrast-github{display:inline-block;width:53px;background:#4183c4;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-github{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-github{width:72px;padding:10px}}.pwp-contrast-github .pwp-github:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-github .pwp-github:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-github .pwp-github:before{font-size:52px}}.pwp-google-plus:before{color:#dd4b39;font-size:45px}.pwp-contrast-google-plus{display:inline-block;width:53px;background:#dd4b39;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-google-plus{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-google-plus{width:72px;padding:10px}}.pwp-contrast-google-plus .pwp-google-plus:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-google-plus .pwp-google-plus:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-google-plus .pwp-google-plus:before{font-size:52px}}.pwp-instagram:before{color:#517fa4;font-size:45px}.pwp-contrast-instagram{display:inline-block;width:53px;background:#517fa4;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-instagram{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-instagram{width:72px;padding:10px}}.pwp-contrast-instagram .pwp-instagram:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-instagram .pwp-instagram:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-instagram .pwp-instagram:before{font-size:52px}}.pwp-itunes:before{color:#ff4152;font-size:45px}.pwp-contrast-itunes{display:inline-block;width:53px;background:#ff4152;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-itunes{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-itunes{width:72px;padding:10px}}.pwp-contrast-itunes .pwp-itunes:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-itunes .pwp-itunes:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-itunes .pwp-itunes:before{font-size:52px}}.pwp-kickstarter:before{color:#76cc1e;font-size:45px}.pwp-contrast-kickstarter{display:inline-block;width:53px;background:#76cc1e;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-kickstarter{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-kickstarter{width:72px;padding:10px}}.pwp-contrast-kickstarter .pwp-kickstarter:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-kickstarter .pwp-kickstarter:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-kickstarter .pwp-kickstarter:before{font-size:52px}}.pwp-lanyrd:before{color:#152e51;font-size:45px}.pwp-contrast-lanyrd{display:inline-block;width:53px;background:#152e51;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-lanyrd{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-lanyrd{width:72px;padding:10px}}.pwp-contrast-lanyrd .pwp-lanyrd:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-lanyrd .pwp-lanyrd:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-lanyrd .pwp-lanyrd:before{font-size:52px}}.pwp-lastfm:before{color:#d51007;font-size:45px}.pwp-contrast-lastfm{display:inline-block;width:53px;background:#d51007;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-lastfm{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-lastfm{width:72px;padding:10px}}.pwp-contrast-lastfm .pwp-lastfm:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-lastfm .pwp-lastfm:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-lastfm .pwp-lastfm:before{font-size:52px}}.pwp-linkedin:before{color:#007bb6;font-size:45px}.pwp-contrast-linkedin{display:inline-block;width:53px;background:#007bb6;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-linkedin{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-linkedin{width:72px;padding:10px}}.pwp-contrast-linkedin .pwp-linkedin:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-linkedin .pwp-linkedin:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-linkedin .pwp-linkedin:before{font-size:52px}}.pwp-message:before{color:#999;font-size:45px}.pwp-contrast-message{display:inline-block;width:53px;background:#999;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-message{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-message{width:72px;padding:10px}}.pwp-contrast-message .pwp-message:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-message .pwp-message:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-message .pwp-message:before{font-size:52px}}.pwp-paypal:before{color:#223473;font-size:45px}.pwp-contrast-paypal{display:inline-block;width:53px;background:#223473;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-paypal{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-paypal{width:72px;padding:10px}}.pwp-contrast-paypal .pwp-paypal:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-paypal .pwp-paypal:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-paypal .pwp-paypal:before{font-size:52px}}.pwp-photodrop:before{color:#cdb6e3;font-size:45px}.pwp-contrast-photodrop{display:inline-block;width:53px;background:#cdb6e3;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-photodrop{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-photodrop{width:72px;padding:10px}}.pwp-contrast-photodrop .pwp-photodrop:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-photodrop .pwp-photodrop:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-photodrop .pwp-photodrop:before{font-size:52px}}.pwp-pinterest:before{color:#cb2027;font-size:45px}.pwp-contrast-pinterest{display:inline-block;width:53px;background:#cb2027;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-pinterest{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-pinterest{width:72px;padding:10px}}.pwp-contrast-pinterest .pwp-pinterest:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-pinterest .pwp-pinterest:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-pinterest .pwp-pinterest:before{font-size:52px}}.pwp-rdio:before{color:#0088da;font-size:45px}.pwp-contrast-rdio{display:inline-block;width:53px;background:#0088da;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-rdio{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-rdio{width:72px;padding:10px}}.pwp-contrast-rdio .pwp-rdio:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-rdio .pwp-rdio:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-rdio .pwp-rdio:before{font-size:52px}}.pwp-rss:before{color:#ff7b0a;font-size:45px}.pwp-contrast-rss{display:inline-block;width:53px;background:#ff7b0a;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-rss{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-rss{width:72px;padding:10px}}.pwp-contrast-rss .pwp-rss:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-rss .pwp-rss:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-rss .pwp-rss:before{font-size:52px}}.pwp-soundcloud:before{color:#f60;font-size:45px}.pwp-contrast-soundcloud{display:inline-block;width:53px;background:#f60;border-radius:6px}@media screen and (min-width:550px){.pwp-contrast-soundcloud{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-soundcloud{width:72px;padding:10px}}.pwp-contrast-soundcloud .pwp-soundcloud:before{color:#fff}@media screen and (min-width:550px){.pwp-contrast-soundcloud .pwp-soundcloud:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-soundcloud .pwp-soundcloud:before{font-size:52px}}.pwp-skype:before{color:#00b8ed;font-size:45px}.pwp-contrast-skype{display:inline-block;width:53px;background:#00b8ed;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-skype{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-skype{width:72px;padding:10px}}.pwp-contrast-skype .pwp-skype:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-skype .pwp-skype:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-skype .pwp-skype:before{font-size:52px}}.pwp-stackoverflow:before{color:#000;font-size:45px}.pwp-contrast-stackoverflow{display:inline-block;width:53px;background:#000;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-stackoverflow{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-stackoverflow{width:72px;padding:10px}}.pwp-contrast-stackoverflow .pwp-stackoverflow:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-stackoverflow .pwp-stackoverflow:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-stackoverflow .pwp-stackoverflow:before{font-size:52px}}.pwp-steam:before{color:#000;font-size:45px}.pwp-contrast-steam{display:inline-block;width:53px;background:#000;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-steam{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-steam{width:72px;padding:10px}}.pwp-contrast-steam .pwp-steam:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-steam .pwp-steam:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-steam .pwp-steam:before{font-size:52px}}.pwp-tumblr:before{color:#395976;font-size:45px}.pwp-contrast-tumblr{display:inline-block;width:53px;background:#395976;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-tumblr{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-tumblr{width:72px;padding:10px}}.pwp-contrast-tumblr .pwp-tumblr:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-tumblr .pwp-tumblr:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-tumblr .pwp-tumblr:before{font-size:52px}}.pwp-twitter:before{color:#00aced;font-size:45px}.pwp-contrast-twitter{display:inline-block;width:53px;background:#00aced;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-twitter{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-twitter{width:72px;padding:10px}}.pwp-contrast-twitter .pwp-twitter:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-twitter .pwp-twitter:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-twitter .pwp-twitter:before{font-size:52px}}.pwp-vimeo:before{color:#aad450;font-size:45px}.pwp-contrast-vimeo{display:inline-block;width:53px;background:#aad450;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-vimeo{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-vimeo{width:72px;padding:10px}}.pwp-contrast-vimeo .pwp-vimeo:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-vimeo .pwp-vimeo:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-vimeo .pwp-vimeo:before{font-size:52px}}.pwp-wordpress:before{color:#006a94;font-size:45px}.pwp-contrast-wordpress{display:inline-block;width:53px;background:#006a94;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-wordpress{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-wordpress{width:72px;padding:10px}}.pwp-contrast-wordpress .pwp-wordpress:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-wordpress .pwp-wordpress:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-wordpress .pwp-wordpress:before{font-size:52px}}.pwp-xing:before{color:#006461;font-size:45px}.pwp-contrast-xing{display:inline-block;width:53px;background:#006461;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-xing{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-xing{width:72px;padding:10px}}.pwp-contrast-xing .pwp-xing:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-xing .pwp-xing:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-xing .pwp-xing:before{font-size:52px}}.pwp-youtube:before{color:#b00;font-size:45px}.pwp-contrast-youtube{display:inline-block;width:53px;background:#b00;border-radius:6px;padding:4px}@media screen and (min-width:550px){.pwp-contrast-youtube{width:62px;padding:7px}}@media screen and (min-width:992px){.pwp-contrast-youtube{width:72px;padding:10px}}.pwp-contrast-youtube .pwp-youtube:before{color:#fff;font-size:45px}@media screen and (min-width:550px){.pwp-contrast-youtube .pwp-youtube:before{font-size:48px}}@media screen and (min-width:992px){.pwp-contrast-youtube .pwp-youtube:before{font-size:52px}}.pwp-contrast-soundcloud{height:53px;padding:7px 0}@media screen and (min-width:550px){.pwp-contrast-soundcloud{height:62px;padding:10px 0}}@media screen and (min-width:992px){.pwp-contrast-soundcloud{height:72px;padding:13px 0}}.pwp-contrast-soundcloud .pwp-soundcloud:before{font-size:35px}@media screen and (min-width:550px){.pwp-contrast-soundcloud .pwp-soundcloud:before{font-size:40px}}@media screen and (min-width:992px){.pwp-contrast-soundcloud .pwp-soundcloud:before{font-size:45px}}.pwp-contrast-adn{height:53px;width:53px;padding:2px 0 0 6px}@media screen and (min-width:550px){.pwp-contrast-adn{height:62px;width:62px;padding:4px 0 0 9px}}@media screen and (min-width:992px){.pwp-contrast-adn{height:72px;width:72px;padding:5px 0 0 9px}}.pwp-contrast-adn .pwp-adn:before{font-size:48px}@media screen and (min-width:550px){.pwp-contrast-adn .pwp-adn:before{font-size:52px}}@media screen and (min-width:992px){.pwp-contrast-adn .pwp-adn:before{font-size:60px}}.video-pane{position:relative;display:block;background:#000;min-height:200px;height:auto}.video-pane video{width:100%;z-index:9}.video-pane .video-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background:0 0;text-align:center}.video-pane .play{position:relative;color:#2c3e50;display:block;top:50%;max-width:100px;line-height:100px;height:100px;margin:-52px auto 0;font-size:100px;z-index:11}.video-pane .play.playing{display:none}.chapters{height:auto;-webkit-transition:all .5s;transition:all .5s}.chapters .podlovewebplayer_chapters{width:100%;border-collapse:collapse}.chapters .podlovewebplayer_chapters caption,.chapters .podlovewebplayer_chapters thead{display:none}.chapters .podlovewebplayer_chapters tr{cursor:pointer;height:46px}.chapters .podlovewebplayer_chapters tr .chapter-number{padding-left:10px;text-align:right;width:20px}@media screen and (min-width:480px){.chapters .podlovewebplayer_chapters tr .chapter-number{padding-left:18px;width:48px}}@media screen and (min-width:992px){.chapters .podlovewebplayer_chapters tr .chapter-number{padding-left:20px;width:50px}}.chapters .podlovewebplayer_chapters tr:hover{background:#c0c5cb}.chapters .podlovewebplayer_chapters tr:hover .badge{color:#fff;background-color:#2c3e50}.chapters .podlovewebplayer_chapters tr:hover .chapter-duration span{color:#2c3e50;font-weight:500}.chapters .podlovewebplayer_chapters tr.active,.chapters .podlovewebplayer_chapters tr.active:hover .chapters .podlovewebplayer_chapters tr.active:focus{background:#afb6bd}.chapters .podlovewebplayer_chapters tr.active .badge,.chapters .podlovewebplayer_chapters tr.active:hover .chapters .podlovewebplayer_chapters tr.active:focus .badge{background-color:#2c3e50;color:#fff}.chapters .podlovewebplayer_chapters tr.active .chapter-duration span,.chapters .podlovewebplayer_chapters tr.active:hover .chapters .podlovewebplayer_chapters tr.active:focus .chapter-duration span{color:#2c3e50;font-weight:500}.chapters .podlovewebplayer_chapters tr.chapter:active{background:#afb6bd}.chapters .podlovewebplayer_chapters tr td{padding:0 5px;vertical-align:middle;cursor:pointer!important}.chapters .podlovewebplayer_chapters tr td a{color:#2c3e50;text-decoration:none}.chapters .podlovewebplayer_chapters tr .chapter-name span{font-weight:500}.chapters .podlovewebplayer_chapters tr .title{padding-top:7px}.chapters .podlovewebplayer_chapters tr .chapter-duration{font-family:"Droid Sans Mono",Monaco,Menlo,Consolas,"Courier New",monospace;font-size:11px;white-space:nowrap;text-align:right;color:#2c3e50;padding-right:10px}@media all and (min-width:480px){.chapters .podlovewebplayer_chapters tr .chapter-duration{padding-right:18px}}@media all and (min-width:768px){.chapters .podlovewebplayer_chapters tr .chapter-duration{font-size:13px}}.chapter-name a{padding-left:.02em;width:1em;margin-right:.2em;text-align:center;font-variant:normal!important;text-transform:none!important}.downloads footer>form{padding:10px 0}@media screen and (min-width:480px){.downloads footer>form{padding:25px 0}}.poster-wrapper{position:relative;margin:0 auto;width:256px;min-width:256px}@media screen and (max-width:360px){.poster-wrapper{width:100%;min-width:156px;height:auto}}.download{margin:0 auto 20px}@media screen and (max-width:480px){.download{margin:0 auto}}.download .poster-image{width:100%;min-height:256px;display:block;margin:0 auto;-webkit-box-shadow:0 11px 15px -6px #000;box-shadow:0 11px 15px -6px #000}@media screen and (max-width:360px){.download .poster-image{width:100%;max-width:256px;height:auto;min-height:0}}.download .default-poster{background:#2c3e50}.download.button-submit{display:block;margin:0 auto 20px;font-size:15px;max-width:500px;width:95vw}@media screen and (max-width:360px){.download.button-submit{height:40px}}@media screen and (min-width:480px){.download.button-submit{padding:15px;width:auto}}@media screen and (min-width:768px){.download.button-submit{font-size:20px}}.download.label{margin-left:5px;font-family:Roboto,"Helvetica Neue",Helvetica,sans-serif;font-weight:500}@media screen and (min-width:1200px){.download.label{font-size:1.5vw}}.download>h2{margin:20px auto 0;text-align:center}.download p{margin:10px auto;text-align:center}.download p:first-of-type{margin-bottom:0}.download p:last-of-type{margin-top:0}select::-ms-expand{display:none}@media screen and (min-width:0\0){select{background:0 0;padding:5px}}.select{background-color:#2c3e50!important;border:1px solid #2c3e50;margin:0 auto 25px;height:40px;padding:6px 38px 6px 12px;font-size:11px;line-height:1.4;color:#fff!important;text-align:center!important;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;background:url(../img/arrow-down-white.png) 95% no-repeat;text-overflow:ellipsis;white-space:nowrap;width:95vw}@media screen and (min-width:480px){.select{margin:0 auto 10px;font-size:13px;width:auto}}@media screen and (min-width:992px){.select{margin:0 auto 20px}}@media screen and (min-width:1200px){.select{font-size:1.15vw}}.select option{background-color:#2c3e50!important;color:#FBFCFC!important}.info .main{-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.info aside{-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}@media all and (min-width:480px){.info .aside{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;margin-top:25px}}@media all and (min-width:550px){.info .main{-webkit-box-flex:2;-webkit-flex:2 0;-ms-flex:2 0;flex:2 0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.info aside{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin-top:70px!important}.info footer{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}}.info .poster-image{margin:10px 20px 16px}@media all and (max-width:480px){.info .poster-image{margin:10px}}.info .poster-image img{width:100%;max-width:400px}.info footer{padding:0!important}.info footer p{padding:25px 0}.button-submit{height:auto;margin:5px 20px;max-width:400px}.showtitle-label{display:inline-block;font-size:16px}.submit-label{vertical-align:super;line-height:1px}.tabs .share .main{margin:70px 0 25px}@media all and (max-width:480px){.tabs .share .main{margin:70px 0 10px}}.tabs .share .share-button-wrapper{width:100%}.tabs .share .share-button-wrapper caption{display:none}.tabs .share .share-button-wrapper .share-select-option{width:100%;cursor:pointer;height:46px}.tabs .share .share-button-wrapper .share-select-option td{padding:0 5px;vertical-align:middle}.tabs .share .share-button-wrapper .share-description{text-align:right;width:15vw}.tabs .share .share-button-wrapper .share-label{width:80vw}.tabs .share .share-button-wrapper .share-label>label{text-align:left;font-weight:500}.tabs .share .share-button-wrapper .share-radio{text-align:center;padding-right:20px;width:5vw}@media all and (max-width:480px){.tabs .share .share-button-wrapper td.share-radio{padding:6px 10px!important}}@media all and (max-width:768px){.tabs .share .share-button-wrapper .share-description{display:none}.tabs .share .share-button-wrapper .share-label{width:100vw}.tabs .share .share-button-wrapper .share-label>label{text-align:left;font-weight:500}.tabs .share .share-button-wrapper td.share-radio{padding:6px 20px}}.tabs .share form{margin-bottom:20px}.tabs .share form>h3{margin:0 20px 10px}@media all and (max-width:480px){.tabs .share form>h3{margin:0 10px 10px}}@media screen and (max-width:480px){.tabs .share .share-button-wrapper{width:100%}.tabs .share .button-container{display:block}}.tabs .share ul{margin:0 0 10px}@media screen and (min-width:992px){.tabs .share ul{margin:0 0 32px}}.tabs .share span{padding:6px 10px}.social-network-buttons{text-align:center;padding:0 10px}@media screen and (min-width:480px){.social-network-buttons{padding:0 20px}}.social-network-buttons>li{display:inline-block;width:58px;margin:0 10px 0 0}.social-network-buttons>li.last-of-type,.social-network-buttons>li:last-of-type{margin-right:0}@media screen and (min-width:550px){.social-network-buttons>li{width:67px;margin:0 10px 0 0}}@media screen and (min-width:992px){.social-network-buttons>li{width:72px;margin:0 20px 0 0}}@media screen and (min-width:1200px){.social-network-buttons>li{margin:0 40px 0 0}}.social-network-buttons>li span{display:block;text-align:center}.share-select-option{width:50%;background-image:none;padding:0;background-color:#FBFCFC;cursor:pointer}@media screen and (min-width:480px){.share-select-option{width:220px}.share-select-option:first-of-type{margin-right:25px}}.share-select-option:hover{background-color:#476481}.share-select-option:active{background-color:#507192}.share-select-option.selected,.share-select-option:focus{background-color:#2c3e50}.share-select-option.selected,.share-select-option:active,.share-select-option:focus,.share-select-option:hover{color:#fff}.social-links{border-bottom:16px solid #fff;padding:25px 20px 15px}@media screen and (min-width:992px){.social-links{padding:25px 20px}}.social-links h3{margin:0 0 10px}@media screen and (min-width:992px){.social-links h3{margin:0 0 15px}}.social-links ul{margin-bottom:0!important}.social-links li{display:inline-block;margin:10px}.social-links li img{display:block;width:100%;max-width:100px}.social-links li span{display:block;padding-top:6px}.social-links li a{display:inline-block}.tabs footer{-webkit-box-flex:1;-webkit-flex:1 100%;-ms-flex:1 100%;flex:1 100%;-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3;text-align:center;color:#2c3e50;background-color:#dce0e2;border:1px solid #dce0e2!important;padding:20px}@media screen and (min-width:992px){.tabs footer{padding:25px 20px}}.tabs footer h3{margin:0 0 10px;text-align:left}@media screen and (min-width:992px){.tabs footer h3{margin:0 0 15px}}.tabs footer label{display:block}.tabs footer input{border-radius:5px;font-family:"Droid Sans Mono",Monaco,Menlo,Consolas,"Courier New",monospace;border:1px solid #ccc;width:100%;padding:8px;text-align:center;color:#555;height:30px;cursor:text}@media screen and (min-width:992px){.tabs footer input{height:40px}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left,.tabs dd,.tabs dt{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hidden{display:none!important;visibility:hidden!important}@font-face{font-family:podlove;src:url(../font/podlove.eot)}@font-face{font-family:podlove;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.icon{font-family:podlove;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pwp-twitter:before{content:"\f099"}.pwp-facebook:before{content:"\f09a"}.pwp-github:before{content:"\f09b"}.pwp-google-plus:before{content:"\f0d5"}.pwp-adn:before{content:"\f170"}.pwp-slack:before{content:"\f198"}.pwp-behance:before{content:"\f1b4"}.pwp-soundcloud:before{content:"\f1be"}.pwp-vine:before{content:"\f1ca"}.pwp-git:before{content:"\f1d3"}.pwp-arrow-down:before{content:"\e600"}.pwp-arrow-left:before{content:"\e601"}.pwp-arrow-right:before{content:"\e602"}.pwp-arrow-select:before{content:"\e603"}.pwp-arrow-up:before{content:"\e604"}.pwp-chapters:before{content:"\e608"}.pwp-circled-checkmark:before{content:"\e609"}.pwp-circled-close:before{content:"\e60a"}.pwp-circled-info:before{content:"\e60b"}.pwp-circled-minus:before{content:"\e60c"}.pwp-circled-more:before{content:"\e60d"}.pwp-circled-plus:before{content:"\e60e"}.pwp-circled-question:before{content:"\e60f"}.pwp-clock:before{content:"\e610"}.pwp-contributors:before{content:"\e611"}.pwp-controls-back-15:before{content:"\e612"}.pwp-controls-back-30:before{content:"\e613"}.pwp-controls-back:before{content:"\e614"}.pwp-controls-fast-forward:before{content:"\e615"}.pwp-controls-forward-15:before{content:"\e616"}.pwp-controls-forward-30:before{content:"\e617"}.pwp-controls-forward:before{content:"\e618"}.pwp-controls-next-chapter:before{content:"\e619"}.pwp-controls-pause:before{content:"\e61a"}.pwp-controls-play:before{content:"\e61b"}.pwp-controls-previous-chapter:before{content:"\e61c"}.pwp-controls-rewind:before{content:"\e61d"}.pwp-controls-speaker-next:before{content:"\e61e"}.pwp-controls-speaker-previous:before{content:"\e61f"}.pwp-controls-speed-minus:before{content:"\e620"}.pwp-controls-speed-plus:before{content:"\e621"}.pwp-controls-stop:before{content:"\e622"}.pwp-delete:before{content:"\e623"}.pwp-download:before{content:"\e624"}.pwp-fullscreen-off:before{content:"\e625"}.pwp-fullscreen-on:before{content:"\e626"}.pwp-info:before{content:"\e627"}.pwp-location:before{content:"\e628"}.pwp-loupe:before{content:"\e629"}.pwp-menu:before{content:"\e62a"}.pwp-message:before{content:"\e62b"}.pwp-pictures:before{content:"\e62c"}.pwp-podlove-logo:before{content:"\e62d"}.pwp-podlove-subscribe:before{content:"\e62e"}.pwp-rss:before{content:"\e62f"}.pwp-share:before{content:"\e630"}.pwp-shownotes:before{content:"\e631"}.pwp-transcript:before{content:"\e632"}.pwp-upload:before{content:"\e633"}.pwp-volume-mute:before{content:"\e634"}.pwp-volume-on:before{content:"\e635"}.pwp-code:before{content:"\e646"}.pwp-google-drive:before{content:"\e647"}.pwp-instagram:before{content:"\e648"}.pwp-youtube:before{content:"\e649"}.pwp-vimeo:before{content:"\e64b"}.pwp-flickr:before{content:"\e64c"}.pwp-dribbble:before{content:"\e64d"}.pwp-deviantart:before{content:"\e64e"}.pwp-steam:before{content:"\e64f"}.pwp-wordpress:before{content:"\e650"}.pwp-blogger:before{content:"\e651"}.pwp-tumblr:before{content:"\e652"}.pwp-skype:before{content:"\e653"}.pwp-reddit:before{content:"\e654"}.pwp-linkedin:before{content:"\e655"}.pwp-stackoverflow:before{content:"\e656"}.pwp-pinterest:before{content:"\e657"}.pwp-xing:before{content:"\e658"}.pwp-flattr:before{content:"\e659"}.pwp-paypal:before{content:"\e65a"}.pwp-cc:before{content:"\e63e"}.pwp-cc-by:before{content:"\e63f"}.pwp-cc-nc:before{content:"\e640"}.pwp-cc-nc-eu:before{content:"\e641"}.pwp-cc-nc-jp:before{content:"\e642"}.pwp-cc-sa:before{content:"\e643"}.pwp-cc-nd:before{content:"\e644"}.pwp-cc-pd:before{content:"\e645"}.pwp-instagram2:before{content:"\e64a"}.pwp-bigcontrol-cannotplay:before{content:"\e605"}.play.playing:before,.pwp-bigcontrol-pause:before{content:"\e606"}.play:before,.pwp-bigcontrol-play:before{content:"\e607"}
@@ -1,47 +0,0 @@
1
- progress[role] {
2
- display: inline-block;
3
- position: relative;
4
- width: 10em;
5
- height: 1em;
6
- vertical-align: -.2em;
7
- background-image: url('data:image/gif;base64,R0lGODlhIAAQAIAAAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBwABACwAAAAAIAAQAAACLISPF8vtkWJ8lMlrasVXb554FBiKDomYJ5qpFgu4LysvcFzfNQTvet4D0hgFACH5BAkHAAEALAAAAAAgABAAAAIshH+hyx0Io3F0yTsrxVdvHnkOGIoMCZknmqgWC7gvKytwXN/1A+963gPSKAUAIfkECQcAAQAsAAAAACAAEAAAAi2EHanLcQ9hmyraR+ndee7bNZ8VMmNULqeUJivWOi8Sz3RrA7E77/LrswV7oQIAIfkECQcAAQAsAAAAACAAEAAAAixEjqkB7Q/bmijaR+ndee7bLZ8VKmNUJieUVqvTHi8cz1Jtx0yOz7pt6L10BQAh+QQJBwABACwAAAAAIAAQAAACLIyPB8vtkGJ8lMlrasVXb554FBiKDomYJ5qpFhu4LysvcFzfNQTvet4D0hgFACH5BAkHAAEALAAAAAAgABAAAAIsjH+gyw0Io3F0yTsrxVdvHnkOGIoMCZknmqgWG7gvKytwXN/1A+963gPSKAUAIfkECQcAAQAsAAAAACAAEAAAAi2MDanLcA9hmyraR+ndee7bNZ8VMmNULqeUJivWOi8Sz3RrB7E77/LrswV7oQIAIfkEAQcAAQAsAAAAACAAEAAAAiwMjqkQ7Q/bmijaR+ndee7bLZ8VKmNUJieUVqvTHi8cz1Jtx0yOz7pt6L10BQA7');
8
-
9
- -moz-box-sizing: border-box;
10
- box-sizing: border-box;
11
- }
12
-
13
- progress[role],
14
- progress[aria-valuenow]:before {
15
- background-color: #5af;
16
- }
17
-
18
- progress[role],
19
- progress[role]:after {
20
- background-repeat:repeat-x;
21
- background-position: 0 0;
22
- -moz-background-size: auto 100%;
23
- -webkit-background-size: auto 100%;
24
- background-size: auto 100%;
25
- }
26
-
27
- /* Determinate only overrides */
28
- progress[aria-valuenow] {
29
- background: #eee;
30
- }
31
-
32
- progress[aria-valuenow]:before {
33
- content: "";
34
- display: block;
35
- height: 100%;
36
- }
37
-
38
- /* Overlay */
39
- progress[role]:after {
40
- content: "";
41
- position: absolute;
42
- top: 0;
43
- right: 0;
44
- bottom: 0;
45
- left: 0;
46
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQBAMAAAAlsQiEAAAABGdBTUEAALGPC/xhBQAAAC1QTFRF////////gYGA+/v7////3NzcQUFCkZGQWFlZAAAAAAAA////WFhY////r6+w5vktvgAAAA90Uk5TZB4sW3ZODgMEJgBVHDY+cmAeZAAAACZJREFUeNpjmMBQwHCBAQQMGAIYHjAoMBxgSGBoYFjAIMCwgcEBAGgwBpG64ZoMAAAAAElFTkSuQmCC');
47
- }
@@ -1,72 +0,0 @@
1
- @import url(http://fonts.googleapis.com/css?family=Sniglet:800&v2);
2
-
3
- body {
4
- max-width: 800px;
5
- margin: 10px auto;
6
- font:16px/1.4 sans-serif;
7
- }
8
-
9
- a {
10
- color: inherit;
11
- text-decoration: none;
12
- }
13
-
14
- h1, h2, h3 {
15
- font-family: 'Sniglet', sans-serif;
16
- }
17
-
18
- h1 {
19
- font-size: 340%;
20
- margin-bottom: 0;
21
- }
22
-
23
- h2 {
24
- font-size: 240%;
25
- color: deeppink;
26
- margin: 1em 0 0;
27
- }
28
-
29
- h1+h2 {
30
- margin-top: 0;
31
- color: gray;
32
- }
33
-
34
- hgroup {
35
- text-align: center;
36
- }
37
-
38
- h3 {
39
- font-size: 150%;
40
- color: gray;
41
- }
42
-
43
- ul {
44
- margin: 0;
45
- padding-left:0;
46
- }
47
-
48
- h2+p, h3+p {
49
- margin-top: 0;
50
- }
51
-
52
- /* Unit tests styling */
53
- .unit-tests {
54
- padding: 0;
55
- margin: 0;
56
- }
57
-
58
- .unit-tests > li {
59
- margin: 5px 0;
60
- padding: 5px 10px;
61
- list-style: none;
62
- color: white;
63
- text-shadow: 1px 1px 2px rgba(0,0,0,.4);
64
- }
65
-
66
- .unit-tests > li.pass {
67
- background: green;
68
- }
69
-
70
- .unit-tests > li.fail {
71
- background: red;
72
- }
@@ -1,103 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>Generated by IcoMoon</metadata>
5
- <defs>
6
- <font id="podlove" horiz-adv-x="1024">
7
- <font-face units-per-em="1024" ascent="921.6" descent="-102.4" />
8
- <missing-glyph horiz-adv-x="1024" />
9
- <glyph unicode="&#x20;" d="" horiz-adv-x="409.6" />
10
- <glyph unicode="&#xe600;" d="M872.448 450.688l-304.256-296.064c-0.704-0.768-0.96-1.664-1.664-2.368-15.040-14.72-34.752-21.888-54.528-21.76-19.776-0.128-39.488 7.040-54.592 21.76-0.704 0.704-0.96 1.6-1.6 2.368l-304.32 296.064c-29.888 29.056-29.888 76.288 0 105.344 29.952 29.12 78.4 29.12 108.288 0l252.224-245.376 252.16 245.376c29.952 29.12 78.4 29.12 108.224 0 30.016-29.056 30.016-76.288 0.064-105.344z" />
11
- <glyph unicode="&#xe601;" d="M577.152 23.552l-296.064 304.256c-0.768 0.704-1.728 0.96-2.432 1.664-14.656 15.040-21.824 34.752-21.696 54.528-0.128 19.776 7.040 39.488 21.76 54.592 0.64 0.64 1.6 0.896 2.368 1.6l296.064 304.32c29.056 29.888 76.288 29.888 105.344 0 29.12-29.952 29.12-78.4 0-108.288l-245.44-252.224 245.376-252.16c29.12-29.952 29.12-78.4 0-108.224-28.992-30.016-76.224-30.016-105.28-0.064z" />
12
- <glyph unicode="&#xe602;" d="M446.912 744.448l296.064-304.256c0.768-0.704 1.664-0.96 2.368-1.664 14.656-14.976 21.888-34.752 21.76-54.528 0.128-19.776-7.040-39.488-21.76-54.592-0.704-0.704-1.6-0.96-2.368-1.6l-296.064-304.32c-29.056-29.888-76.288-29.888-105.344 0-29.12 29.952-29.12 78.4 0 108.288l245.44 252.224-245.376 252.16c-29.12 29.952-29.12 78.4 0 108.224 28.992 30.016 76.224 30.016 105.28 0.064z" />
13
- <glyph unicode="&#xe603;" d="M302.848 468.352l208.704 208.704 210.56-210.56c25.28-25.216 66.112-25.216 91.392 0 25.216 25.28 25.216 66.112 0 91.392l-255.616 255.616c-25.28 25.216-66.112 25.216-91.392 0-0.512-0.512-0.64-1.216-1.152-1.728 0-0.064-0.128-0.064-0.192-0.128l-252.8-252.8c-25.024-25.024-25.024-65.472 0-90.496s65.536-24.96 90.496 0zM723.136 298.816l-208.704-208.704-210.56 210.56c-25.28 25.216-66.112 25.216-91.392 0-25.216-25.28-25.216-66.112 0-91.392l255.616-255.616c25.28-25.216 66.112-25.216 91.392 0 0.512 0.512 0.64 1.216 1.152 1.728 0.064 0.064 0.192 0.064 0.256 0.128l252.736 252.736c25.024 25.024 25.024 65.472 0 90.496s-65.536 25.088-90.496 0.064z" />
14
- <glyph unicode="&#xe604;" d="M153.024 320.448l304.256 296.064c0.64 0.768 0.896 1.664 1.664 2.368 14.976 14.656 34.752 21.888 54.528 21.76 19.776 0.128 39.488-7.040 54.592-21.76 0.64-0.704 0.896-1.6 1.536-2.368l304.32-296.064c29.888-29.056 29.888-76.288 0-105.344-29.952-29.12-78.4-29.12-108.288 0l-252.16 245.376-252.16-245.376c-29.952-29.12-78.4-29.12-108.224 0-30.016 28.992-30.016 76.288-0.064 105.344z" />
15
- <glyph unicode="&#xe605;" d="M512 928c-282.752 0-512-229.248-512-512s229.248-512 512-512 512 229.248 512 512-229.248 512-512 512zM511.936-32.064c-247.424 0-448 200.576-448 448 0 247.488 200.576 448.064 448 448.064 247.488 0 448.064-200.576 448.064-448.064 0-247.424-200.576-448-448.064-448zM932.352 205.184c13.248-7.744 17.472-25.024 9.6-38.656v0c-7.936-13.568-25.088-18.368-38.336-10.688l-812.352 473.344c-13.248 7.744-17.472 25.024-9.6 38.656v0c7.936 13.504 25.088 18.304 38.336 10.624l812.352-473.28zM352.384 202.624c0-18.112 17.536-34.048 36.032-21.504 46.656 28.16 130.88 79.040 208.576 125.952l-244.608 142.144v-246.592zM738.432 430.592c-75.456 44.416-264.128 155.648-346.496 204.224-15.040 7.872-39.552 12.608-39.552-14.208v-45.824l350.656-203.648c13.696 8.256 26.112 15.808 36.224 21.888 20.032 10.624 13.12 29.248-0.832 37.568z" />
16
- <glyph unicode="&#xe606;" d="M413.952 640.384h34.24c17.664 0 31.936-14.4 31.936-32.128v-400.704c0-17.664-14.272-32.064-31.936-32.064h-34.24c-17.664 0-32 14.4-32 32.064v400.704c0.064 17.728 14.336 32.128 32 32.128zM572.8 640.384h34.24c17.664 0 31.936-14.4 31.936-32.128v-400.704c0-17.664-14.272-32.064-31.936-32.064h-34.24c-17.664 0-32 14.4-32 32.064v400.704c0.064 17.728 14.336 32.128 32 32.128zM512 928c-282.752 0-512-229.248-512-512s229.248-512 512-512 512 229.248 512 512-229.248 512-512 512zM511.936-32.064c-247.424 0-448 200.576-448 448 0 247.488 200.576 448.064 448 448.064 247.488 0 448.064-200.576 448.064-448.064 0-247.424-200.576-448-448.064-448z" />
17
- <glyph unicode="&#xe607;" d="M352.384 620.608c0-90.56 0-321.472 0-417.984 0-18.112 17.536-34.048 36.032-21.504 80.768 48.768 274.944 166.080 350.848 211.904 19.968 10.624 13.12 29.248-0.896 37.568-75.392 44.416-264.064 155.648-346.432 204.224-15.040 7.872-39.552 12.608-39.552-14.208zM512 928c-282.752 0-512-229.248-512-512s229.248-512 512-512 512 229.248 512 512-229.248 512-512 512zM511.936-32.064c-247.424 0-448 200.576-448 448 0 247.488 200.576 448.064 448 448.064 247.488 0 448.064-200.576 448.064-448.064 0-247.424-200.576-448-448.064-448z" />
18
- <glyph unicode="&#xe608;" d="M193.024 671.040c0-12.032-6.848-22.080-16.64-27.584v-0.512l-2.816-1.344c-0.064 0-0.128-0.064-0.192-0.064l-127.232-61.824c-0.896-0.512-1.792-1.024-2.816-1.408l-0.704-0.384-0.192 0.192c-3.328-1.152-6.72-2.112-10.432-2.112-17.664 0-32 14.336-32 32v126.976c0 17.664 14.336 32 32 32 4.672 0 9.024-1.152 12.992-2.88l0.128 0.064 127.552-63.488c0.704-0.256 1.408-0.64 2.112-1.024l1.536-0.768v-0.256c9.792-5.504 16.704-15.552 16.704-27.584zM176.32 442.624v0.256l-1.536 0.768c-0.704 0.384-1.408 0.768-2.112 1.024l-127.552 63.488-0.128-0.064c-3.968 1.792-8.32 2.88-12.992 2.88-17.664 0-32-14.336-32-32v-126.976c0-17.664 14.336-32 32-32 3.712 0 7.104 0.96 10.432 2.112l0.192-0.192 0.704 0.384c1.024 0.384 1.92 0.896 2.816 1.408l127.232 61.888c0.064 0 0.128 0.064 0.192 0.064l2.752 1.344v0.512c9.792 5.504 16.64 15.552 16.64 27.584s-6.848 22.016-16.64 27.52zM176.32 186.624v0.256l-1.536 0.768c-0.704 0.384-1.408 0.832-2.176 1.088l-127.552 63.36c-3.968 1.728-8.32 2.88-12.992 2.88-17.664 0-32-14.336-32-32v-126.976c-0.064-17.664 14.272-32 31.936-32 3.712 0 7.104 0.96 10.432 2.112l0.192-0.192 0.704 0.384c1.024 0.384 1.856 0.896 2.816 1.344l127.232 61.888c0.064 0 0.128 0.064 0.192 0.064l2.752 1.344v0.512c9.792 5.504 16.64 15.552 16.64 27.584s-6.848 22.080-16.64 27.584zM256 672.064c0 52.992 42.944 96 96 96h576c53.056 0 96-43.008 96-96s-42.944-96-96-96h-576c-53.056 0-96 43.008-96 96zM320 672.064c0-17.664 14.336-32 32-32h576c17.664 0 32 14.336 32 32s-14.336 32-32 32h-576c-17.664 0-32-14.336-32-32zM1024 416c0-52.992-42.944-96-96-96h-576c-53.056 0-96 43.008-96 96s42.944 96 96 96h576c53.056 0 96-43.008 96-96zM960 416c0 17.664-14.336 32-32 32h-576c-17.664 0-32-14.336-32-32s14.336-32 32-32h576c17.664 0 32 14.336 32 32zM1024 160c0-52.992-42.944-96-96-96h-576c-53.056 0-96 43.008-96 96s42.944 96 96 96h576c53.056 0 96-43.008 96-96zM960 160c0 17.664-14.336 32-32 32h-576c-17.664 0-32-14.336-32-32s14.336-32 32-32h576c17.664 0 32 14.336 32 32z" />
19
- <glyph unicode="&#xe609;" d="M873.984 21.952c-199.936-199.936-524.096-199.936-724.032 0s-199.936 524.16 0 724.096 524.096 199.936 724.032 0 199.936-524.16 0-724.096zM715.392 583.36l-271.168-271.168-135.744 135.744c-25.024 25.088-65.472 25.088-90.56 0-25.024-25.024-25.024-65.472 0-90.496l135.808-135.744c0 0-38.912 38.848 26.176-26.176 42.048-42.048 90.56-38.080 123.072-5.568 24 24 31.808 31.744 31.808 31.744l271.232 271.168c25.024 25.024 25.024 65.472 0 90.496-25.088 25.088-65.6 25.088-90.624 0z" />
20
- <glyph unicode="&#xe60a;" d="M874.048 21.952c-199.936-199.936-524.096-199.936-724.032 0s-199.936 524.16 0 724.096 524.096 199.936 724.032 0 199.936-524.16 0-724.096zM647.744 610.24l-135.744-135.744-135.744 135.744c-25.024 25.088-65.472 25.088-90.56 0-25.024-25.024-25.024-65.472 0-90.496l135.808-135.744-135.808-135.744c-25.024-25.024-25.024-65.472 0-90.496 25.024-25.088 65.472-25.088 90.56 0l135.744 135.744 135.744-135.744c25.024-25.088 65.472-25.088 90.56 0 25.024 25.024 25.024 65.472 0 90.496l-135.808 135.744 135.808 135.744c25.024 25.024 25.024 65.472 0 90.496-25.024 25.088-65.536 25.088-90.56 0z" />
21
- <glyph unicode="&#xe60b;" d="M512-127.744c-282.88 0-512.128 229.12-512.128 511.744s229.248 511.744 512.128 511.744 512.128-229.12 512.128-511.744-229.248-511.744-512.128-511.744zM514.432 736.64c-41.92 0-75.904-33.92-75.904-75.84 0-41.792 33.92-75.84 75.904-75.84 41.856 0 75.84 33.984 75.84 75.84s-33.984 75.84-75.84 75.84zM590.272 433.408c0 41.792-33.92 75.84-75.84 75.84s-75.904-33.984-75.904-75.84v-328.448c0-41.856 33.92-75.776 75.904-75.776 41.856 0 75.84 33.856 75.84 75.776v328.448z" />
22
- <glyph unicode="&#xe60c;" d="M512-128c-282.752 0-512 229.248-512 512s229.248 512 512 512 512-229.248 512-512-229.248-512-512-512zM768 448h-512c-35.392 0-64-28.608-64-64s28.608-64 64-64h512c35.392 0 64 28.608 64 64s-28.608 64-64 64z" />
23
- <glyph unicode="&#xe60d;" d="M512.896 896c-282.752 0-512-229.248-512-512s229.248-512 512-512 512 229.248 512 512-229.248 512-512 512zM320.896 320c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.672-64-64-64zM512.896 320c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.672-64-64-64zM704.896 320c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.672-64-64-64z" />
24
- <glyph unicode="&#xe60e;" d="M509.376-128c-282.752 0-512 229.248-512 512s229.248 512 512 512 512-229.248 512-512-229.248-512-512-512zM765.376 448h-192v192c0 35.392-28.608 64-64 64s-64-28.608-64-64v-192h-192c-35.392 0-64-28.608-64-64s28.608-64 64-64h192v-192c0-35.392 28.608-64 64-64s64 28.608 64 64v192h192c35.392 0 64 28.608 64 64s-28.608 64-64 64z" />
25
- <glyph unicode="&#xe60f;" d="M512 894.912c-282.688 0-511.872-228.992-511.872-511.424 0-282.496 229.184-511.488 511.872-511.488s511.872 228.992 511.872 511.488c0 282.432-229.184 511.424-511.872 511.424zM514.432 21.504c-41.856 0-75.84 33.92-75.84 75.776s33.984 75.776 75.84 75.776c41.856 0 75.84-33.856 75.84-75.776 0-41.856-33.984-75.776-75.84-75.776zM717.312 426.176c-23.808-34.496-53.632-63.424-89.408-86.784-19.52-14.976-32.32-30.144-38.4-45.312-6.080-15.232-18.496-62.72-77.504-62.72s-67.968 55.296-61.888 74.624c2.88 9.216 6.4 17.152 10.56 23.808 12.928 20.8 38.784 46.016 77.504 75.84 22.72 18.496 40.832 38.528 54.464 59.968 13.568 21.376 20.352 45.376 20.352 71.936 0 29.44-7.744 52.48-23.232 69.056-15.552 16.64-37.696 24.96-66.496 24.96-23.68 0-43.776-7.040-60.224-21.12-32.064-28.416-27.072-71.424-95.040-71.424-67.008 0-66.944 54.016-52.544 89.6 10.112 25.6 25.408 47.68 45.952 63.872 41.408 32.64 95.424 48.96 161.92 48.96 71.616 0 127.872-18.176 168.64-54.528 40.768-36.224 61.184-85.632 61.184-147.968-0.064-40.576-11.968-78.208-35.84-112.768z" />
26
- <glyph unicode="&#xe610;" d="M480 896c-265.152 0-480-214.848-480-480s214.848-480 480-480 480 214.848 480 480-214.848 480-480 480zM480 0c-229.76 0-416 186.24-416 416s186.24 416 416 416 416-186.24 416-416-186.24-416-416-416zM638.4 257.536c-12.48-12.48-32.768-12.48-45.248 0l-135.808 135.808c-0.896 0.896-1.28 1.984-1.984 3.008-1.792 2.304-3.712 4.608-4.864 7.36-1.6 3.904-2.496 8.128-2.496 12.224 0 0.064 0 0.064 0 0.064v320c0 17.664 14.336 32 32 32s32-14.336 32-32v-306.816l126.4-126.4c12.48-12.48 12.48-32.704 0-45.248z" />
27
- <glyph unicode="&#xe611;" d="M444.992 381.952h-47.424c30.656 33.984 49.92 78.592 49.92 128 0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192 0-50.048 19.584-95.168 50.944-129.344-64.192-6.912-114.432-60.672-114.432-126.656v-221.632h0.192c0-0.384-0.192-0.64-0.192-1.024 0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.384-0.192 0.64-0.192 1.024h0.192v221.632c0 35.392 28.608 64 64 64h316.992c17.664 0 32 14.336 32 32s-14.336 32-32 32zM256 381.952c-70.656 0-128 57.344-128 128s57.344 128 128 128 128-57.344 128-128-57.344-128-128-128zM1024 255.936c0 66.368-50.752 120.32-115.392 126.72 31.232 34.112 50.88 79.232 50.88 129.28 0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192 0-50.048 19.584-95.168 50.944-129.344-64.192-6.912-114.432-60.672-114.432-126.656v-223.616h0.192c0-0.384-0.192-0.64-0.192-1.024 0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.384-0.192 0.64-0.192 1.024h0.192v223.616c0 35.392 28.608 64 64 64h256c35.392 0 64-28.608 64-64v-223.616h0.192c0-0.384-0.192-0.64-0.192-1.024 0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.384-0.192 0.64-0.192 1.024h0.192v223.616zM768 383.936c-70.656 0-128 57.344-128 128s57.344 128 128 128 128-57.344 128-128-57.344-128-128-128z" />
28
- <glyph unicode="&#xe612;" d="M192 160v-256c0-17.664-14.336-32-32-32s-32 14.336-32 32v224h-32c-17.664 0-32 14.336-32 32 0 17.6 14.336 32 32 32h64c17.664 0 32-14.4 32-32zM416 128c17.664 0 32 14.336 32 32 0 17.6-14.336 32-32 32h-128c-17.664 0-32-14.4-32-32v-128c0-17.664 14.336-32 32-32h96v-64h-96c-17.664 0-32-14.4-32-32 0-17.664 14.336-32 32-32h128c17.664 0 32 14.336 32 32v128c0 17.6-14.336 32-32 32h-96v64h96zM372.48 438.336c-11.776 11.776-30.784 11.776-42.56 0l-106.368-106.432-106.88 106.88c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l128-128c0.064-0.128 0.064-0.192 0.128-0.192 11.776-11.776 30.784-11.776 42.56 0l127.68 127.744c11.712 11.712 11.712 30.784 0 42.56zM608 896c-229.696 0-415.936-186.112-416-415.808 0-0.064 0-0.128 0-0.192 0-17.664 14.272-32 32-32s32 14.336 32 32v0c0.064 194.368 157.632 351.872 352 351.872 194.432 0 352-157.568 352-352 0-194.24-157.312-351.744-351.552-352-0.192 0-0.32 0.128-0.448 0.128-17.728 0-32-14.336-32-32s14.272-32 32-32v0c229.76 0 416 186.24 416 416s-186.24 416-416 416zM608 768c-17.664 0-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.336 126.4v241.856c0 17.664-14.336 32-32 32z" />
29
- <glyph unicode="&#xe613;" d="M192 160v-256c0-17.728-14.336-32-32-32h-128c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h96v64h-32c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h32v64h-96c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h128c17.664 0 32-14.4 32-32zM448 160v-256c0-17.728-14.336-32-32-32h-128c-17.664 0-32 14.272-32 32v256c0 17.6 14.336 32 32 32h128c17.664 0 32-14.4 32-32zM384 128h-64v-192h64v192zM371.072 435.456c-11.776 11.776-30.784 11.776-42.56 0l-106.368-106.432-106.88 106.88c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l128-128c0.064-0.128 0.064-0.128 0.064-0.256 11.776-11.776 30.784-11.776 42.56 0l127.68 127.808c11.84 11.776 11.84 30.848 0.064 42.56zM608 896c-229.632 0-415.872-186.112-416-415.808 0-0.064 0-0.128 0-0.192 0-17.664 14.336-32 32-32s32 14.336 32 32v0c0.064 194.368 157.632 351.872 352 351.872 194.432 0 352-157.568 352-352 0-194.24-157.312-351.744-351.552-352-0.128 0-0.256 0.128-0.448 0.128-17.664 0-32-14.336-32-32s14.336-32 32-32v0c229.76 0 416 186.24 416 416s-186.24 416-416 416zM608 768c-17.664 0-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.336 126.4v241.856c0 17.664-14.336 32-32 32z" />
30
- <glyph unicode="&#xe614;" d="M955.072 416c0-229.76-186.24-416-416-416-17.728 0-32 14.336-32 32s14.272 32 32 32c0.128 0 0.256-0.128 0.512-0.128 194.112 0.256 351.488 157.76 351.488 352 0 194.432-157.632 352-352 352s-351.872-157.568-352-351.872c-0.064-17.664-14.4-32-32-32-17.728 0-32 14.336-32 32 0 0.064 0 0.128 0 0.192 0.128 229.696 186.304 415.808 416 415.808 229.76 0 416-186.24 416-416zM540.032 704c-17.664 0-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.336 126.4v241.856c0 17.664-14.272 32-32 32zM264.64 370.304l-106.88-106.88-106.368 106.368c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.744c11.776-11.776 30.784-11.776 42.56 0 0 0.064 0 0.128 0.128 0.192l128 128c11.776 11.776 11.776 30.784 0 42.56s-30.784 11.776-42.56 0.064zM-903.616 370.304c-11.776 11.776-30.784 11.776-42.56 0l-106.88-106.88-106.368 106.432c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.744c11.776-11.776 30.784-11.776 42.56 0 0 0.064 0 0.128 0.064 0.192l128 128c11.84 11.712 11.84 30.784 0.064 42.56zM-1440 63.552c-0.192 0-0.32-0.128-0.512-0.128-194.176 0.256-351.488 157.76-351.488 352 0 194.432 157.568 352 352 352 194.368 0 351.936-157.504 352-351.872v0c0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.064 0 0.128 0 0.192-0.064 229.696-186.304 415.872-416 415.872-229.76 0-416-186.24-416-416s186.24-416 416-416v0c17.664 0 32 14.336 32 32s-14.272 31.936-32 31.936zM-1409.792 430.144v241.856c0 17.664-14.336 32-32 32s-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.336 126.4z" />
31
- <glyph unicode="&#xe615;" d="M1006.016 406.016c-109.12 63.296-388.736 225.472-505.024 292.992-26.624 17.344-51.84-4.736-51.84-29.76 0-48.512 0-121.472 0-200.768-130.304 75.52-309.888 179.776-397.248 230.528-26.752 17.344-52.032-4.736-52.032-29.76 0-133.44 0-452.992 0-578.368 0-36.992 35.392-30.528 57.024-19.52 89.024 50.496 264.512 149.888 392.256 222.272 0-81.472 0-155.776 0-202.752 0-36.992 35.392-30.528 56.896-19.52 118.656 67.264 390.144 221.056 498.624 282.496 20.224 11.52 30.080 37.376 1.344 52.16z" />
32
- <glyph unicode="&#xe616;" d="M704 160v-256c0-17.664-14.336-32-32-32s-32 14.336-32 32v224h-32c-17.664 0-32 14.336-32 32 0 17.6 14.336 32 32 32h64c17.664 0 32-14.4 32-32zM928 64h-96v64h96c17.664 0 32 14.336 32 32 0 17.6-14.336 32-32 32h-128c-17.664 0-32-14.4-32-32v-128c0-17.664 14.336-32 32-32h96v-64h-96c-17.664 0-32-14.4-32-32 0-17.664 14.336-32 32-32h128c17.664 0 32 14.336 32 32v128c0 17.6-14.336 32-32 32zM695.36 434.496c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.808c11.776-11.776 30.784-11.776 42.56 0 0 0.128 0 0.128 0.064 0.256l128 128c11.776 11.776 11.776 30.784 0 42.56s-30.784 11.776-42.56 0l-106.88-106.88-106.304 106.432zM416 128c-0.192 0-0.32-0.128-0.512-0.128-194.176 0.256-351.488 157.76-351.488 352 0 194.432 157.568 352 352 352 194.368 0 351.936-157.504 352-351.872v0c0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.064 0 0.128 0 0.192-0.064 229.696-186.304 415.808-416 415.808-229.76 0-416-186.24-416-416s186.24-416 416-416v0c17.728 0 32 14.336 32 32s-14.272 32-32 32zM574.4 367.744l-126.4 126.4v241.856c0 17.664-14.336 32-32 32s-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.544 32.768 0.064 45.248z" />
33
- <glyph unicode="&#xe617;" d="M768 160v-256c0-17.728-14.336-32-32-32h-128c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h96v64h-32c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h32v64h-96c-17.664 0-32 14.272-32 32 0 17.6 14.336 32 32 32h128c17.664 0 32-14.4 32-32zM1024 160v-256c0-17.728-14.336-32-32-32h-128c-17.664 0-32 14.272-32 32v256c0 17.6 14.336 32 32 32h128c17.664 0 32-14.4 32-32zM960 128h-64v-192h64v192zM949.184 435.968c-11.776 11.776-30.784 11.776-42.56 0l-106.88-106.88-106.368 106.432c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.744c11.776-11.776 30.784-11.776 42.56 0 0 0.064 0 0.128 0.064 0.192l128 128c11.84 11.776 11.84 30.784 0.064 42.56zM416 128c-0.192 0-0.32-0.128-0.512-0.128-194.176 0.256-351.488 157.76-351.488 352 0 194.432 157.568 352 352 352 194.368 0 351.936-157.504 352-351.872v0c0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.064 0 0.128 0 0.192-0.128 229.696-186.368 415.808-416 415.808-229.76 0-416-186.24-416-416s186.24-416 416-416v0c17.664 0 32 14.336 32 32s-14.336 32-32 32zM574.4 367.744l-126.4 126.4v241.856c0 17.664-14.336 32-32 32s-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.544 32.768 0.064 45.248z" />
34
- <glyph unicode="&#xe618;" d="M2875.072 416c0-229.76-186.24-416-416-416-17.728 0-32 14.336-32 32s14.272 32 32 32c0.128 0 0.256-0.128 0.512-0.128 194.112 0.256 351.488 157.76 351.488 352 0 194.432-157.632 352-352 352s-351.872-157.504-352-351.872c-0.064-17.664-14.4-32-32-32-17.728 0-32 14.336-32 32 0 0.064 0 0.128 0 0.192 0.128 229.696 186.304 415.808 416 415.808 229.76 0 416-186.24 416-416zM2460.032 704c-17.664 0-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l132.992-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.4 126.4v241.856c0.064 17.664-14.208 32-31.936 32zM2184.64 370.304l-106.88-106.88-106.368 106.432c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.744c11.776-11.776 30.784-11.776 42.56 0 0 0.064 0 0.128 0.128 0.192l128 128c11.776 11.776 11.776 30.784 0 42.56-11.776 11.712-30.784 11.712-42.56 0zM1016.384 370.304c-11.776 11.776-30.784 11.776-42.56 0l-106.88-106.88-106.368 106.432c-11.776 11.776-30.784 11.776-42.56 0s-11.776-30.784 0-42.56l127.68-127.744c11.776-11.776 30.784-11.776 42.56 0 0 0.064 0 0.128 0.064 0.192l128 128c11.84 11.712 11.84 30.784 0.064 42.56zM480 63.552c-0.192 0-0.32-0.128-0.512-0.128-194.176 0.256-351.488 157.76-351.488 352 0 194.432 157.568 352 352 352 194.368 0 351.936-157.504 352-351.872v0c0-17.664 14.336-32 32-32s32 14.336 32 32c0 0.064 0 0.128 0 0.192-0.064 229.696-186.304 415.872-416 415.872-229.76 0-416-186.24-416-416s186.24-416 416-416v0c17.664 0 32 14.336 32 32s-14.272 31.936-32 31.936zM510.208 430.144v241.856c0 17.664-14.336 32-32 32s-32-14.336-32-32v-256c0-10.048 4.864-18.624 12.096-24.448l133.056-133.056c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.248l-126.4 126.4z" />
35
- <glyph unicode="&#xe619;" d="M197.376 759.36c155.392-94.016 401.28-256.512 547.264-344.768 18.112-9.6 24.128-22.784 23.232-35.648v325.056c0 35.392 28.608 64 64 64s64-28.608 64-64v-640c0-35.392-28.608-64-64-64s-64 28.608-64 64v311.68c-2.24-13.184-11.776-25.664-25.024-33.536-145.024-85.632-380.224-236.032-538.88-329.536-28.864-15.296-76.096-24.32-76.096 27.2 0 174.656 0 492.224 0 678.144 0 34.816 33.728 65.536 69.504 41.408z" />
36
- <glyph unicode="&#xe61a;" d="M317.248 768h64c35.328 0 64-28.608 64-64v-640c0-35.392-28.672-64-64-64h-64c-35.328 0-64 28.608-64 64v640c0 35.392 28.608 64 64 64zM637.248 768h64c35.392 0 64-28.608 64-64v-640c0-35.392-28.608-64-64-64h-64c-35.392 0-64 28.608-64 64v640c0 35.392 28.608 64 64 64z" />
37
- <glyph unicode="&#xe61b;" d="M181.568 37.248c0 175.040 0 493.248 0 679.552 0 35.008 34.496 65.792 71.104 41.536 159.232-94.208 414.208-256.704 563.776-345.152 39.488-20.608 26.048-56.64-1.728-72.768-148.672-85.824-392.704-236.608-555.2-330.496-29.504-15.232-77.952-24.32-77.952 27.328z" />
38
- <glyph unicode="&#xe61c;" d="M826.496 9.088c-155.52 94.016-401.28 256.064-547.264 344.32-18.24 9.6-24.256 22.784-23.36 35.648v-325.056c0-35.392-28.608-64-64-64s-64 28.608-64 64v640c0 35.392 28.608 64 64 64s64-28.608 64-64v-311.68c2.24 13.184 11.904 25.664 25.024 33.536 145.152 85.632 380.352 236.032 538.88 329.536 28.864 15.296 76.096 24.32 76.096-27.2 0-174.656 0-491.84 0-677.632 0-34.88-33.6-65.6-69.376-41.472z" />
39
- <glyph unicode="&#xe61d;" d="M17.856 361.984c109.12-63.296 388.736-225.472 504.896-292.992 26.752-17.344 51.968 4.736 51.968 29.76 0 48.512 0 121.472 0 200.768 130.112-75.52 309.888-179.776 397.248-230.528 26.624-17.344 51.904 4.736 51.904 29.76 0 133.44 0 452.992 0 578.368 0 36.992-35.392 30.528-56.896 19.52-89.152-50.496-264.512-149.888-392.256-222.272 0 81.472 0 155.776 0 202.752 0 36.992-35.392 30.528-57.024 19.52-118.464-67.264-390.080-221.056-498.56-282.496-20.288-11.52-30.016-37.376-1.28-52.16z" />
40
- <glyph unicode="&#xe61e;" d="M152 677.632c0 9.152 3.968 17.28 10.048 23.104 162.496 161.984 425.344 161.92 587.776-0.32 0-0.064 0.128-0.064 0.128-0.064 12.544-12.48 12.544-32.768 0-45.248-12.48-12.48-32.704-12.48-45.184 0h-0.064c-137.472 137.28-360.256 137.216-497.728-0.192v0l-0.256 0.192c-5.76-5.824-13.76-9.472-22.72-9.472-17.664 0-32 14.336-32 32zM653.76 542.72c0-16.64 13.504-30.144 30.144-30.144l180.608-0.064c16.576 0 30.144 13.504 30.144 30.144-0.128 0.064-0.128 0.064-0.128 0.192v181.12c0 16.64-13.44 30.080-30.080 30.144-16.64 0-30.144-13.504-30.144-30.144v-151.168h-150.528c-16.576 0-30.016-13.44-30.016-30.080zM476.992 94.976c0-17.664-14.336-32-32-32h-316.992c-35.392 0-64-28.608-64-64v-94.016h-0.192c0-0.32 0.192-0.576 0.192-0.96 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v94.016c0 65.984 50.24 119.744 114.432 126.656-31.36 34.176-50.944 79.296-50.944 129.344 0 105.984 85.952 192 192 192 105.984 0 192-86.016 192-192 0-49.408-19.328-94.016-49.92-128h47.424c17.664-0.064 32-14.336 32-32.064zM384 254.976c0 70.656-57.344 128-128 128s-128-57.344-128-128 57.344-128 128-128 128 57.344 128 128zM1024-94.976h-0.192c0-0.384 0.192-0.64 0.192-1.024 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v96c0 35.392-28.608 64-64 64h-256c-35.392 0-64-28.608-64-64v-96h-0.192c0-0.384 0.192-0.64 0.192-1.024 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v96c0 65.984 50.24 119.744 114.432 126.656-31.36 34.176-50.944 79.296-50.944 129.344 0 105.984 85.952 192 192 192 105.984 0 192-86.016 192-192 0-49.984-19.648-95.104-50.88-129.28 64.64-6.464 115.392-60.352 115.392-126.72v-96zM896 257.024c0 70.656-57.344 128-128 128s-128-57.344-128-128 57.344-128 128-128 128 57.28 128 128z" />
41
- <glyph unicode="&#xe61f;" d="M152 677.632c0 9.152 3.968 17.28 10.048 23.104 162.496 161.984 425.344 161.92 587.776-0.32 0-0.064 0.128-0.064 0.128-0.064 12.544-12.48 12.544-32.768 0-45.248-12.48-12.48-32.704-12.48-45.184 0h-0.064c-137.472 137.28-360.256 137.216-497.728-0.192v0l-0.256 0.192c-5.76-5.824-13.76-9.472-22.72-9.472-17.664 0-32 14.336-32 32zM653.76 542.72c0-16.64 13.504-30.144 30.144-30.144l180.608-0.064c16.576 0 30.144 13.504 30.144 30.144-0.128 0.064-0.128 0.064-0.128 0.192v181.12c0 16.64-13.44 30.080-30.080 30.144-16.64 0-30.144-13.504-30.144-30.144v-151.168h-150.528c-16.576 0-30.016-13.44-30.016-30.080zM476.992 94.976c0-17.664-14.336-32-32-32h-316.992c-35.392 0-64-28.608-64-64v-94.016h-0.192c0-0.32 0.192-0.576 0.192-0.96 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v94.016c0 65.984 50.24 119.744 114.432 126.656-31.36 34.176-50.944 79.296-50.944 129.344 0 105.984 85.952 192 192 192 105.984 0 192-86.016 192-192 0-49.408-19.328-94.016-49.92-128h47.424c17.664-0.064 32-14.336 32-32.064zM384 254.976c0 70.656-57.344 128-128 128s-128-57.344-128-128 57.344-128 128-128 128 57.344 128 128zM1024-94.976h-0.192c0-0.384 0.192-0.64 0.192-1.024 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v96c0 35.392-28.608 64-64 64h-256c-35.392 0-64-28.608-64-64v-96h-0.192c0-0.384 0.192-0.64 0.192-1.024 0-17.664-14.336-32-32-32s-32 14.336-32 32c0 0.384 0.192 0.64 0.192 1.024h-0.192v96c0 65.984 50.24 119.744 114.432 126.656-31.36 34.176-50.944 79.296-50.944 129.344 0 105.984 85.952 192 192 192 105.984 0 192-86.016 192-192 0-49.984-19.648-95.104-50.88-129.28 64.64-6.464 115.392-60.352 115.392-126.72v-96zM896 257.024c0 70.656-57.344 128-128 128s-128-57.344-128-128 57.344-128 128-128 128 57.28 128 128z" />
42
- <glyph unicode="&#xe620;" d="M307.136 372.16c11.776-11.776 11.776-30.784 0-42.56l-127.616-127.808c-11.776-11.776-30.848-11.776-42.624 0 0 0.128 0 0.128-0.064 0.256l-128.064 128c-11.776 11.776-11.776 30.784 0 42.56s30.784 11.776 42.624 0l106.88-106.88 106.368 106.432c11.712 11.776 30.72 11.776 42.496 0zM769.728 416.192c0 17.472-14.208 31.68-31.68 31.68h-386.752c-17.472 0-31.68-14.208-31.68-31.68s14.208-31.68 31.68-31.68h386.752c17.536 0 31.68 14.208 31.68 31.68zM543.744 831.616c-229.76 0-415.936-186.176-416-415.872 0-0.064-0.064-0.128-0.064-0.192 0-17.664 14.336-32 32-32s31.936 14.336 32 32h0.064c0.064 194.368 157.632 351.872 352 351.872s352-157.568 352-352c0-194.24-157.376-351.744-351.552-352-0.192 0-0.32 0.128-0.512 0.128-17.664 0-32-14.336-32-32s14.336-32 32-32h0.064c229.76 0 416 186.24 416 416s-186.24 416.064-416 416.064z" />
43
- <glyph unicode="&#xe621;" d="M1014.848 330.048l-128.064-128c-0.064-0.128-0.064-0.128-0.064-0.256-11.776-11.776-30.848-11.776-42.624 0l-127.616 127.808c-11.776 11.776-11.776 30.784 0 42.56s30.72 11.776 42.496 0l106.368-106.432 106.88 106.88c11.84 11.776 30.848 11.776 42.624 0s11.776-30.784 0-42.56zM672.32 447.872h-161.664v161.856c0 17.472-14.272 31.68-31.68 31.68s-31.744-14.208-31.744-31.68v-161.856h-161.664c-17.472 0-31.68-14.208-31.68-31.68s14.208-31.68 31.68-31.68h161.664v-161.536c0-17.472 14.272-31.744 31.68-31.744s31.68 14.272 31.68 31.744v161.536h161.664c17.536 0 31.744 14.208 31.744 31.68s-14.208 31.68-31.68 31.68zM479.936 63.552c-0.192 0-0.32-0.128-0.512-0.128-194.176 0.256-351.552 157.76-351.552 352 0 194.432 157.632 352 352 352s351.936-157.504 352-351.872h0.064c0.064-17.664 14.336-32 32-32s32 14.336 32 32c0 0.064-0.064 0.128-0.064 0.192-0.064 229.696-186.24 415.872-416 415.872s-416-186.24-416-416c0-229.76 186.24-416 416-416h0.064c17.664 0 32 14.336 32 32s-14.336 31.936-32 31.936z" />
44
- <glyph unicode="&#xe622;" d="M831.040 119.040c0-29.248-23.68-52.992-52.992-52.992h-532.224c-29.312 0-52.992 23.744-52.992 52.992v529.28c0 29.248 23.68 52.992 52.992 52.992h532.224c29.312 0 52.992-23.744 52.992-52.992v-529.28z" />
45
- <glyph unicode="&#xe623;" d="M796.992 640h-32c0 70.656-57.344 128-128 128h-320c-70.656 0-128-57.344-128-128h-32c-17.664 0-32-14.336-32-32s14.336-32 32-32h32v-512c0-70.656 57.344-128 128-128h320c70.656 0 128 57.344 128 128v512h32c17.664 0 32 14.336 32 32s-14.336 32-32 32zM316.992 704h320c35.392 0 64-28.608 64-64h-448c0 35.392 28.608 64 64 64zM700.992 64c0-35.392-28.608-64-64-64h-320c-35.392 0-64 28.608-64 64v512h448v-512zM316.992 160v256c0 17.664 14.336 32 32 32s32-14.336 32-32v-256c0-17.664-14.336-32-32-32s-32 14.336-32 32zM572.992 160v256c0 17.664 14.336 32 32 32s32-14.336 32-32v-256c0-17.664-14.336-32-32-32s-32 14.336-32 32zM444.992 160v256c0 17.664 14.336 32 32 32s32-14.336 32-32v-256c0-17.664-14.336-32-32-32s-32 14.336-32 32z" />
46
- <glyph unicode="&#xe624;" d="M272 429.248c11.776 11.776 30.784 11.776 42.624 0l164.544-164.544 166.336 166.4c11.776 11.776 30.72 11.776 42.496 0s11.776-30.848 0-42.624l-187.584-187.648c-11.776-11.776-30.848-11.776-42.624 0 0 0 0 0.128-0.064 0.128l-185.728 185.728c-11.776 11.776-11.776 30.72 0 42.56zM959.616 353.92c-1.024 16.768-14.592 30.080-31.616 30.080s-30.592-13.312-31.616-30.080h-0.384v-225.92c0-70.656-57.344-128-128-128h-576c-70.656 0-128 57.344-128 128v225.92h-0.384c-1.024 16.768-14.592 30.080-31.616 30.080s-30.592-13.312-31.616-30.080h-0.384v-225.92c0-106.048 85.952-192 192-192h576c106.048 0 192 85.952 192 192v225.92h-0.384zM512 800c0 17.664-14.336 32-32 32v0c-17.664 0-32-14.336-32-32v-384c0-17.664 14.336-32 32-32v0c17.664 0 32 14.336 32 32v384z" />
47
- <glyph unicode="&#xe625;" d="M444.928 738.112v-256c0-17.6-14.336-32-32-32h-256c-17.664 0-32 14.4-32 32 0 17.664 14.336 32 32 32h178.752l-327.168 327.232c-12.544 12.48-12.544 32.768-0.064 45.248 12.544 12.48 32.768 12.48 45.312 0l327.168-327.232v178.752c0 17.728 14.336 32 32 32s32-14.208 32-32zM610.944 450.112c0.064 0 0.064 0 0 0h256.064c17.664 0 32 14.272 32 32 0 17.6-14.336 32-32 32h-178.816l327.232 327.104c12.48 12.608 12.48 32.768 0 45.376-12.48 12.48-32.768 12.48-45.248-0.128l-327.168-327.040v178.688c0 17.6-14.4 32-32.064 32-17.6 0-32-14.4-32-32v-256c0-17.728 14.4-32 32-32zM1015.552-73.344l-327.104 327.232h178.624c17.728 0.064 32 14.4 32.064 32.064-0.064 17.6-14.336 32-32 32l-256-0.064c-17.728 0.064-32-14.336-32-32v-255.936c0-17.728 14.336-32 32-32s32 14.272 32 32v178.752l327.168-327.232c12.48-12.48 32.768-12.48 45.248 0s12.48 32.768 0 45.184zM412.928 317.824c-0.064 0-0.064 0 0 0h-256.064c-17.664 0-32-14.336-32-32s14.336-32 32-32h178.816l-327.232-327.168c-12.48-12.544-12.48-32.768 0-45.312 12.48-12.48 32.768-12.48 45.248 0.064l327.168 327.104v-178.688c0-17.664 14.4-32 32.064-32 17.6 0 32 14.336 32 32v256c0 17.664-14.336 32-32 32z" />
48
- <glyph unicode="&#xe626;" d="M-0.96 608v256c0 17.6 14.336 32 32 32h256c17.664 0 32-14.4 32-32 0-17.664-14.336-32-32-32h-178.752l327.168-327.232c12.608-12.544 12.608-32.768 0.128-45.248-12.544-12.48-32.768-12.48-45.312 0l-327.232 327.232v-178.752c0-17.728-14.336-32-32-32s-32 14.272-32 32zM992.96 896c-0.064 0-0.064 0 0 0h-256.064c-17.664 0-32-14.336-32-32s14.336-32 32-32h178.816l-327.296-327.168c-12.48-12.544-12.48-32.768 0-45.312 12.544-12.544 32.768-12.544 45.248 0.064l327.168 327.104v-178.688c0-17.664 14.4-32 32.064-32 17.6 0 32 14.336 32 32v256c0.064 17.664-14.336 32-31.936 32zM992.96 192c-17.664 0-32-14.272-32-32v-178.752l-327.232 327.232c-12.544 12.48-32.768 12.48-45.312 0-12.48-12.48-12.48-32.704 0.064-45.248l327.232-327.232h-178.752c-17.664 0-32-14.336-32-32 0-17.6 14.336-32 32-32h256c17.664 0 32 14.4 32 32v256c0 17.728-14.336 32-32 32zM390.336 308.416l-327.168-327.104v178.688c0 17.664-14.4 32-32.064 32-17.6 0-32-14.336-32-32v-256c0-17.664 14.4-32 32-32 0.064 0 0.064 0 0.064 0h256c17.664 0 32 14.336 32 32s-14.336 32-32.064 32h-178.816l327.232 327.168c12.48 12.544 12.48 32.768 0 45.312s-32.704 12.544-45.184-0.064z" />
49
- <glyph unicode="&#xe627;" d="M832 832h-640c-70.656 0-128-57.344-128-128v-640c0-70.656 57.344-128 128-128h640c70.656 0 128 57.344 128 128v640c0 70.656-57.344 128-128 128zM896 64c0-35.392-28.672-64-64-64h-640c-35.328 0-64 28.608-64 64v640c0 35.392 28.672 64 64 64h640c35.328 0 64-28.608 64-64v-640zM576 576c0-35.392-28.672-64-64-64s-64 28.608-64 64 28.672 64 64 64 64-28.608 64-64zM576 384v-192c0-35.392-28.672-64-64-64s-64 28.608-64 64v192c0 35.392 28.672 64 64 64s64-28.608 64-64z" />
50
- <glyph unicode="&#xe628;" d="M832 576c0 176.768-143.232 320-320 320s-320-143.232-320-320c0-45.568 9.792-88.768 27.008-128h-0.32l293.312-576 293.312 576h-0.32c17.216 39.232 27.008 82.432 27.008 128zM736.896 454.912l-224.896-425.216-225.28 424.704h1.344c-19.84 36.288-32.064 77.376-32.064 121.6 0 141.376 114.624 256 256 256s256-114.624 256-256c0-44.032-12.096-84.864-31.744-121.088h0.64zM510.976 768c-106.048 0-192-85.952-192-192s85.952-192 192-192 192 85.952 192 192-85.888 192-192 192zM512 448c-70.656 0-128 57.344-128 128s57.344 128 128 128 128-57.344 128-128-57.344-128-128-128z" />
51
- <glyph unicode="&#xe629;" d="M996.608 38.848l-259.968 260.032c-29.44 29.504-72.96 34.944-108.544 18.048l-59.648 59.712c44.032 54.784 71.552 123.52 71.552 199.36 0 176.768-143.296 320-320 320s-320-143.232-320-320 143.296-320 320-320c77.76 0 148.096 28.864 203.584 75.008l59.328-59.328c-16.832-35.648-11.392-79.104 18.048-108.544l259.968-259.968c37.44-37.504 98.304-37.504 135.744 0 37.44 37.44 37.44 98.176-0.064 135.68zM69.184 576c0 141.376 114.624 256 256 256s256-114.624 256-256c0-141.312-114.624-255.936-256-255.936s-256 114.624-256 255.936zM951.36-51.648c-12.48-12.48-32.768-12.48-45.248 0l-259.968 259.968c-12.48 12.48-12.48 32.768 0 45.248s32.768 12.48 45.248 0l259.968-259.968c12.48-12.48 12.48-32.704 0-45.248z" />
52
- <glyph unicode="&#xe62a;" d="M128 640c0 35.392 28.608 64 64 64h640c35.392 0 64-28.608 64-64s-28.608-64-64-64h-640c-35.392 0-64 28.608-64 64zM832 448h-640c-35.392 0-64-28.608-64-64s28.608-64 64-64h640c35.392 0 64 28.608 64 64s-28.608 64-64 64zM832 192h-640c-35.392 0-64-28.608-64-64s28.608-64 64-64h640c35.392 0 64 28.608 64 64s-28.608 64-64 64z" />
53
- <glyph unicode="&#xe62b;" d="M1022.080 648.96c-4.608 30.784-30.016 54.784-62.080 54.784h-896c-31.68 0-56.768-23.424-61.888-53.632l510.72-377.216 509.248 376.064zM513.152 192.448l-0.32 0.384-0.256-0.384-512.576 378.56v-443.776c0-35.328 28.608-64 64-64h896c35.392 0 64 28.672 64 64v442.432l-510.848-377.216z" />
54
- <glyph unicode="&#xe62c;" d="M960 672v-704c0-17.664-14.336-32-32-32h-704c-17.664 0-32 14.336-32 32s14.336 32 32 32h672v672c0 17.664 14.336 32 32 32s32-14.336 32-32zM768 64h-640c-35.392 0-64 28.608-64 64v640c0 35.392 28.608 64 64 64h640c35.392 0 64-28.608 64-64v-640c0-35.392-28.608-64-64-64zM128 128h640v640h-640v-640z" />
55
- <glyph unicode="&#xe62d;" d="M767.36-128h-512c-35.328 0-64 28.608-64 64v896c0 35.328 28.672 64 64 64h512c35.392 0 64-28.672 64-64v-896c0-35.392-28.672-64-64-64zM512 0c106.048 0 192 85.952 192 192s-85.952 192-192 192c-106.048 0-192-85.952-192-192s85.952-192 192-192zM767.36 832h-512v-384h512v384zM512 262.080c-38.656 0-70.016-31.424-70.016-70.080s31.36-70.080 70.016-70.080c38.656 0 70.080 31.36 70.080 70.080s-31.424 70.080-70.080 70.080zM673.472 674.88c-0.704 109.056-122.112 126.272-162.176 36.288-41.984 93.76-161.344 71.872-162.112-36.928-0.448-62.912 162.304-174.336 162.304-174.336s162.496 112.448 161.984 174.976z" />
56
- <glyph unicode="&#xe62e;" d="M704 181.248v19.904c0 17.344-3.328 33.728-8.064 49.664 82.048 57.856 136.064 153.088 136.064 261.184 0 176.704-143.232 320-320 320-176.704 0-320-143.296-320-320 0-108.096 53.952-203.328 136.064-261.184-4.736-15.936-8.064-32.32-8.064-49.664v-19.904c-114.304 66.56-192 188.992-192 330.752 0 212.032 171.968 384 384 384s384-171.968 384-384c0-141.76-77.696-264.192-192-330.752zM256 512c0 141.376 114.624 256 256 256s256-114.624 256-256c0-83.136-40.256-156.224-101.632-203.008-13.12 16.96-28.736 32-47.040 43.776 51.136 34.496 84.672 92.928 84.672 159.232 0 106.048-85.952 192-192 192s-192-85.952-192-192c0-66.304 33.6-124.736 84.672-159.232-18.304-11.776-33.984-26.816-47.040-43.776-61.376 46.784-101.632 119.872-101.632 203.008zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128zM512 320c70.656 0 128-57.344 128-128v-192c0-70.656-57.344-128-128-128s-128 57.344-128 128v192c0 70.656 57.344 128 128 128z" />
57
- <glyph unicode="&#xe62f;" d="M1024-128h-192c0 459.52-372.48 832-832 832v192c565.568 0 1024-458.496 1024-1024zM704-128h-192c0 282.752-229.248 512-512 512v192c388.8 0 704-315.2 704-704zM0 32c0 88.384 71.616 160 160 160s160-71.616 160-160-71.616-160-160-160-160 71.616-160 160z" />
58
- <glyph unicode="&#xe630;" d="M831.644 544.19v-576.108c0-17.667-14.339-32.006-32.006-32.006h-640.056c-17.667 0-32.006 14.339-32.006 32.006v576.108c0 17.667 14.339 32.006 32.006 32.006h127.96c17.667 0 32.006-14.339 32.006-32.006s-14.339-32.006-32.006-32.006h-95.954v-512.096h576.044v512.096h-96.018c-17.667 0-32.006 14.339-32.006 32.006s14.339 32.006 32.006 32.006h128.024c17.731 0 32.006-14.339 32.006-32.006zM314.235 657.171l166.367 166.431 164.575-164.575c11.842-11.778 30.854-11.778 42.632 0 11.778 11.842 11.778 30.79 0 42.568l-185.763 185.699c-0.064 0-0.064 0.128-0.064 0.128-11.778 11.778-30.854 11.778-42.632 0l-187.619-187.619c-11.778-11.778-11.778-30.854 0-42.632s30.79-11.778 42.504 0zM447.764 672.214v-512.096c0-17.667 14.339-32.006 32.006-32.006s32.006 14.339 32.006 32.006v512.096c0 17.667-14.339 32.006-32.006 32.006s-32.006-14.339-32.006-32.006z" />
59
- <glyph unicode="&#xe631;" d="M938.624 618.88v-640.576h-92.352v640.576h-78.272v-640.576h-92.416v398.144c-87.36 5.696-156.48 80.704-156.48 172.48s69.12 166.656 156.416 172.416v0.576h348.48v-103.040h-85.376zM263.104 106.304v-105.92h92.416v-66.24h-248.896v66.24h92.48v105.024c-112.256 14.336-199.104 112.704-199.104 231.936v75.392h49.728v-80.64c0-101.888 79.616-184.512 177.792-184.512s177.792 82.624 177.792 184.512v80.64h49.728v-75.392c0.064-116.736-83.136-213.44-191.936-231.040zM227.584 206.592c-66.816 0-120.96 56.064-120.96 125.184v309.184c0 69.12 54.144 125.184 120.96 125.184 66.752 0 120.896-56.064 120.896-125.184v-309.184c-0.064-69.12-54.144-125.184-120.896-125.184z" />
60
- <glyph unicode="&#xe632;" d="M831.552 576c-1.088-16.704-14.656-30.016-31.552-30.016s-30.528 13.312-31.552 30.016h-2.112c-16.064 143.808-136.576 256-284.608 256-158.976 0-287.808-128.96-287.808-288 0-139.84 99.904-255.040 231.936-281.088 76.48-18.944 82.176-76.224 85.888-138.56 2.752-46.080 2.24-92.352 2.24-92.352 0-52.992 43.008-96 96-96s96 43.008 96 96v32c0 17.664 14.336 32 32 32s32-14.336 32-32v0-32c0-88.384-71.616-160-160-160-77.376 0-141.952 54.976-156.736 128h-3.52l0.256 128c0 70.208-26.496 65.6-62.976 75.328-148.288 41.792-257.024 177.856-257.024 339.52 0 195.008 158.016 353.152 352.896 353.152 183.68 0 334.528-140.544 351.168-320h-2.496zM641.984 288c0 52.992 43.008 96 96 96s96-43.008 96-96-43.008-96-96-96-96 43.008-96 96z" />
61
- <glyph unicode="&#xe633;" d="M688 594.752c-11.776-11.776-30.784-11.776-42.624 0l-164.544 164.544-166.336-166.4c-11.776-11.776-30.72-11.776-42.496 0s-11.776 30.848 0 42.624l187.584 187.648c11.776 11.776 30.848 11.776 42.624 0 0 0 0-0.128 0.064-0.128l185.728-185.728c11.776-11.776 11.776-30.72 0-42.56zM959.616 353.92c-1.024 16.768-14.592 30.080-31.616 30.080s-30.592-13.312-31.616-30.080h-0.384v-225.92c0-70.656-57.344-128-128-128h-576c-70.656 0-128 57.344-128 128v225.92h-0.384c-1.024 16.768-14.592 30.080-31.616 30.080s-30.592-13.312-31.616-30.080h-0.384v-225.92c0-106.048 85.952-192 192-192h576c106.048 0 192 85.952 192 192v225.92h-0.384zM448 224c0-17.664 14.336-32 32-32v0c17.664 0 32 14.336 32 32v384c0 17.664-14.336 32-32 32v0c-17.664 0-32-14.336-32-32v-384z" />
62
- <glyph unicode="&#xe634;" d="M574.72 870.656c-0.384 1.92-0.384 3.904-1.152 5.76-3.2 7.808-9.408 14.016-17.28 17.28-3.264 1.344-6.72 1.792-10.24 2.048-0.512-0.064-0.96 0.256-1.536 0.256v0c-8.256 0.064-16.448-3.008-22.656-9.28l-248.32-247.296h-241.856c-17.536 0-31.68-14.144-31.68-31.68s14.144-31.744 31.68-31.744h256.576c10.944 0 20.16 5.888 25.856 14.4l198.848 198.080v-807.872l-198.848 198.080c-5.696 8.512-14.848 14.4-25.856 14.4h-256.576c-17.536-0.064-31.68-14.272-31.68-31.808 0-17.472 14.208-31.68 31.744-31.68h241.792l247.424-246.4c5.696-6.72 13.952-11.2 23.552-11.2 17.408 0 31.488 14.144 31.488 31.488v961.024c0 2.176-0.832 4.032-1.28 6.144zM697.792 203.008c-12.608-12.544-32.768-12.48-45.312 0v0c-12.544 12.416-12.544 32.704 0 45.248l316.8 316.736c12.48 12.48 32.768 12.48 45.248 0v0c12.544-12.48 12.544-32.768 0-45.248l-316.736-316.736zM652.544 519.744c-12.48 12.608-12.416 32.832 0 45.248v0c12.544 12.608 32.768 12.608 45.312 0l316.8-316.736c12.48-12.48 12.48-32.768 0-45.248v0c-12.544-12.48-32.768-12.48-45.312 0l-316.8 316.736z" />
63
- <glyph unicode="&#xe635;" d="M1023.68 382.528c0 0.192 0 0.32 0 0.512h-0.064c-0.512 170.432-103.68 316.288-251.904 385.408 0 0-9.728 1.536-14.72 1.536-19.904 0-35.968-16.128-35.968-35.968 0-13.568 7.808-24.96 18.88-31.040 0 0 205.248-88.768 205.696-320.448-0.512-231.68-205.696-320.448-205.696-320.448-11.072-6.144-18.88-17.472-18.88-31.040 0-19.904 16.128-35.968 35.968-35.968 4.992 0 14.72 1.536 14.72 1.536 148.224 69.12 251.392 214.976 251.904 385.408h0.064c0 0.192 0 0.32 0 0.512zM845.44 382.016v0c0.064 0.192 0 0.32 0 0.512s0 0.32 0 0.512v0c-0.512 101.184-61.696 187.968-149.632 229.248 0 0-10.112 3.776-15.808 3.776-19.904 0-35.968-16.128-35.968-35.968 0-14.272 8.448-26.304 20.48-32.128 0 0 104.576-41.728 105.024-165.376-0.448-123.648-105.024-165.376-105.024-165.376-12.032-5.824-20.48-17.856-20.48-32.128 0-19.904 16.128-35.968 35.968-35.968 5.696 0 15.808 3.776 15.808 3.776 87.936 41.152 149.12 127.936 149.632 229.12zM574.72 870.656c-0.384 1.92-0.384 3.904-1.152 5.76-3.2 7.808-9.408 14.016-17.28 17.28-3.264 1.344-6.72 1.792-10.24 2.048-0.512-0.064-0.96 0.256-1.536 0.256v0c-8.256 0.064-16.448-3.008-22.656-9.28l-248.32-247.296h-241.856c-17.536 0-31.68-14.144-31.68-31.68s14.144-31.744 31.68-31.744h256.576c10.944 0 20.16 5.888 25.856 14.4l198.848 198.080v-807.872l-198.848 198.080c-5.696 8.512-14.848 14.4-25.856 14.4h-256.576c-17.536-0.064-31.68-14.272-31.68-31.808 0-17.472 14.208-31.68 31.744-31.68h241.792l247.424-246.4c5.696-6.72 13.952-11.2 23.552-11.2 17.408 0 31.488 14.144 31.488 31.488v961.024c0 2.176-0.832 4.032-1.28 6.144z" />
64
- <glyph unicode="&#xe63e;" d="M505.446 875.469c-271.462-3.635-488.55-226.611-484.915-498.022s226.611-488.55 498.074-484.915c271.411 3.584 488.55 226.611 484.915 498.074-3.635 271.411-226.714 488.499-498.074 484.864zM517.171-3.994c-214.323-2.918-390.349 168.499-393.216 382.822s168.55 390.349 382.874 393.216c214.272 2.867 390.298-168.55 393.165-382.822s-168.499-390.298-382.822-393.216zM391.731 300.698c-20.736 0-36.454 7.578-47.104 22.733-10.701 15.155-15.974 35.328-15.974 60.57 0 55.501 21.043 83.251 63.078 83.251 8.397 0 17.51-2.816 27.341-8.397 9.779-5.632 18.074-15.462 24.832-29.44l63.027 32.819c-25.19 45.414-67.021 68.147-125.338 68.147-39.834 0-72.704-13.158-98.816-39.526-26.061-26.368-39.117-62.003-39.117-106.854 0-45.978 12.902-81.92 38.707-107.725 25.754-25.805 59.75-38.707 101.786-38.707 26.317 0 50.432 6.605 72.294 19.814s39.014 31.283 51.354 54.323l-58.061 29.44c-11.213-26.931-30.566-40.448-58.010-40.448zM663.398 300.698c-20.787 0-36.506 7.578-47.104 22.733-10.701 15.104-15.974 35.328-15.974 60.57 0 55.501 20.992 83.251 63.078 83.251 9.011 0 18.381-2.816 28.211-8.397 9.779-5.632 18.125-15.462 24.781-29.44l62.208 32.819c-24.678 45.414-66.099 68.147-124.518 68.147-39.782 0-72.704-13.158-98.765-39.526-26.112-26.368-39.117-61.952-39.117-106.803 0-45.978 12.749-81.92 38.246-107.725 25.549-25.805 59.648-38.707 102.246-38.707 25.805 0 49.613 6.605 71.475 19.814 21.811 13.21 39.219 31.283 52.122 54.323l-58.88 29.44c-11.213-26.982-30.515-40.499-58.010-40.499z" />
65
- <glyph unicode="&#xe63f;" d="M512 563.968c45.67 0 68.506 22.784 68.506 68.403 0 46.234-22.835 69.325-68.506 69.325s-68.454-23.091-68.454-69.325c0-45.619 22.784-68.403 68.454-68.403zM612.966 537.549h-201.882c-8.806 0-16.23-3.072-22.426-9.216s-9.216-13.619-9.216-22.374v-201.011h56.166v-238.746h152.678v238.746h56.218v201.062c0 8.755-3.226 16.179-9.626 22.374-6.451 6.093-13.722 9.165-21.914 9.165zM512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM512-17.408c-221.696 0-401.408 179.712-401.408 401.408s179.712 401.408 401.408 401.408 401.408-179.712 401.408-401.408-179.712-401.408-401.408-401.408z" />
66
- <glyph unicode="&#xe640;" d="M512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM132.864 515.789l249.344-111.667 78.080-34.202 57.958-26.368 47.411-20.224c8.806-7.578 13.21-17.51 13.21-29.798 0-17.613-6.042-30.157-18.022-37.734s-26.522-11.418-43.469-11.418c-41.011 0-77.568 14.899-109.773 44.749l-67.533-68.454c45.056-38.605 94.822-58.266 149.197-58.778v-75.52h57.037v75.52c33.894 2.918 63.334 14.131 88.218 33.792 24.832 19.61 40.55 44.851 46.95 75.878l182.221-81.152c-68.301-123.853-200.192-207.821-351.693-207.821-221.696 0-401.408 179.712-401.408 401.408 0 46.182 7.885 90.522 22.272 131.789zM650.803 391.014l-79.002 35.123-105.37 47.36c-2.918 4.096-4.352 8.192-4.352 12.288 0 14.029 5.99 24.013 18.022 29.85 11.93 5.837 25.549 8.806 40.806 8.806 28.672 0 56.73-9.677 84.275-28.979l64.102 65.843c-36.915 28.109-77.875 43.315-122.88 45.67v75.418h-57.088v-75.469c-30.464-1.741-57.088-10.445-79.923-25.856-22.784-15.565-38.298-36.147-46.49-61.901l-187.136 83.968c71.629 109.67 195.43 182.272 336.23 182.272 221.696 0 401.408-179.712 401.408-401.408 0-35.994-4.813-70.861-13.722-103.987l-248.883 111.002z" />
67
- <glyph unicode="&#xe641;" d="M512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM132.25 514.048l128.819-56.986h-9.421v-58.419h46.080c0-8.243-0.819-16.435-0.819-24.678v-13.978h-45.261v-58.419h53.504c7.424-43.674 23.859-79.002 46.029-107.008 46.080-60.877 120.166-93.798 200.806-93.798 52.634 0 100.352 15.667 128.358 31.283l-19.763 91.29c-17.306-9.062-55.962-21.35-93.798-21.35-41.165 0-79.821 12.288-106.138 41.933-12.339 13.926-21.402 32.922-27.085 57.6h178.842l251.187-111.206c-68.352-123.802-200.141-207.718-351.59-207.718-221.696 0-401.408 179.712-401.408 401.408 0 45.568 7.731 89.242 21.658 130.048zM632.678 398.643h7.373v58.419h-139.366l-56.525 25.037c4.864 10.957 10.598 20.736 17.357 28.416 25.498 31.283 61.696 44.493 101.171 44.493 36.198 0 69.888-10.701 91.29-19.814l23.040 93.85c-29.645 13.158-73.267 24.627-123.392 24.627-77.363 0-143.155-31.232-190.054-83.917-10.445-12.032-19.456-25.549-27.648-39.782l-161.28 71.373c71.475 110.694 195.789 184.064 337.357 184.064 221.696 0 401.408-179.712 401.408-401.408 0-35.84-4.762-70.554-13.568-103.578l-267.162 118.221z" />
68
- <glyph unicode="&#xe642;" d="M512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM128.512 502.784l250.214-111.411h-55.398v-76.544h115.098l11.264-23.296v-37.12h-126.362v-76.493h126.362v-111.104h122.317v111.104h127.232v70.707l157.542-70.144c-70.042-117.299-198.246-195.891-344.781-195.891-221.696 0-401.408 179.712-401.408 401.408 0 41.37 6.246 81.254 17.92 118.784zM572.058 254.464v37.12l5.734 11.162 108.442-48.23h-114.176zM699.238 356.198v35.226h-76.493l124.826 229.888h-130.458l-85.914-190.259-45.67 20.275-78.49 169.984h-130.458l54.17-101.018-161.894 72.038c70.451 115.763 197.734 193.075 343.142 193.075 221.696 0 401.408-179.712 401.408-401.408 0-40.192-5.99-78.95-16.947-115.558l-197.222 87.757z" />
69
- <glyph unicode="&#xe643;" d="M509.44 642.918c-56.218 0-103.885-16.486-143.104-49.562s-63.488-79.77-72.858-139.981h-38.554l97.382-97.434 97.434 97.434h-35.994c8.192 57.907 45.056 86.835 110.592 86.835 36.25 0 64.102-13.568 83.354-40.806 19.354-27.187 28.979-66.867 28.979-118.886 0-49.766-10.547-89.549-31.59-119.347-21.094-29.85-48.896-44.8-83.354-44.8-69.12 0-105.114 29.85-107.981 89.549h-123.75c8.192-61.44 32.461-108.851 72.858-142.182 40.346-33.331 88.371-50.022 143.923-50.022 75.571 0 136.96 24.986 184.371 75.008 47.411 50.074 71.117 112.794 71.117 188.314 0 77.824-22.835 141.619-68.454 191.283-45.722 49.715-107.162 74.598-184.371 74.598zM512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM512-17.408c-221.696 0-401.408 179.712-401.408 401.408s179.712 401.408 401.408 401.408 401.408-179.712 401.408-401.408-179.712-401.408-401.408-401.408z" />
70
- <glyph unicode="&#xe644;" d="M333.414 415.59h357.274v84.275h-357.274v-84.275zM333.414 257.587h357.274v84.275h-357.274v-84.275zM512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM512-17.408c-221.696 0-401.408 179.712-401.408 401.408s179.712 401.408 401.408 401.408 401.408-179.712 401.408-401.408-179.712-401.408-401.408-401.408z" />
71
- <glyph unicode="&#xe645;" d="M512 875.52c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM132.25 514.048l158.157-69.939c-3.994-20.326-6.144-41.523-6.144-63.283 0-196.25 146.432-251.494 238.592-251.494 54.374 0 101.325 17.51 138.138 43.264 7.014 5.018 13.363 10.035 19.2 15.206l-71.629 87.040c-2.099-2.406-4.301-4.659-6.554-6.707-27.904-26.47-58.522-26.47-65.331-26.47-74.291 0-105.728 77.619-106.701 140.646l433.715-191.949c-68.352-123.853-200.192-207.77-351.642-207.77-221.696 0-401.408 179.712-401.408 401.408-0.051 45.568 7.68 89.242 21.606 130.048zM451.174 478.925c16.077 29.082 42.701 52.019 80.845 52.019 22.17 0 39.68-7.373 53.504-16.589 5.734-4.147 10.701-8.294 14.899-12.442l80.026 82.33c-53.76 46.234-114.842 54.477-154.829 54.477-93.901 0-161.946-42.035-201.165-103.68l-149.811 66.355c71.475 110.643 195.789 184.013 337.357 184.013 221.696 0 401.408-179.712 401.408-401.408 0-35.84-4.762-70.554-13.568-103.526l-448.666 198.451z" />
72
- <glyph unicode="&#xe646;" d="M128 384l256 256h-128l-256-256 256-256h128zM768 640h-128l256-256-256-256h128l256 256zM544 768l-160-768h96l160 768z" />
73
- <glyph unicode="&#xe647;" d="M459.33 236.168l-170.654-295.668h564.654l170.67 295.668zM975.612 320l-292.934 507.5h-341.348l292.956-507.5zM292.836 743.486l-292.836-507.318 170.676-295.668 292.832 507.324z" />
74
- <glyph unicode="&#xe648;" d="M854 896h-684c-93.5 0-170-76.5-170-170v-684c0-93.5 76.5-170 170-170h684c93.5 0 170 76.5 170 170v684c0 93.5-76.5 170-170 170zM327.8 448h368.4c6.988-20.058 10.8-41.59 10.8-64 0-107.524-87.476-195-195-195s-195 87.476-195 195c0 22.41 3.812 43.942 10.8 64zM896 447.95v-383.95c0-35.2-28.8-64-64-64h-640c-35.2 0-64 28.8-64 64v384h100.108c-4.642-20.602-7.108-42.016-7.108-64 0-160.458 130.542-291 291-291s291 130.542 291 291c0 21.984-2.464 43.398-7.108 64l100.108-0.050zM896 672c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h64c17.6 0 32-14.4 32-32v-64z" />
75
- <glyph unicode="&#xe649;" d="M832 768h-640c-105.6 0-192-86.4-192-192v-384c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v384c0 105.6-86.4 192-192 192zM384 128v512l320-256-320-256z" />
76
- <glyph unicode="&#xe64a;" d="M778.24 384c0-147.046-119.245-266.24-266.24-266.24-147.046 0-266.24 119.194-266.24 266.24 0 17.51 1.741 34.611 5.018 51.2h-179.098v-353.894c0-75.981 61.542-137.626 137.626-137.626h605.389c75.981 0 137.626 61.594 137.626 137.626v353.894h-179.046c3.226-16.589 4.966-33.69 4.966-51.2zM814.694 824.32h-605.389c-76.032 0-137.626-61.645-137.626-137.626v-149.094h222.925c48.179 68.096 127.59 112.64 217.395 112.64s169.216-44.544 217.395-112.64h222.925v149.094c0 75.981-61.645 137.626-137.626 137.626zM882.022 654.336c0-13.568-11.059-24.576-24.576-24.576h-73.677c-13.517 0-24.576 11.059-24.576 24.576v73.728c0 13.568 11.11 24.576 24.576 24.576h73.677c13.568 0 24.576-11.059 24.576-24.576v-73.728zM675.84 384c0 90.522-73.37 163.84-163.84 163.84s-163.84-73.318-163.84-163.84 73.37-163.84 163.84-163.84 163.84 73.318 163.84 163.84z" />
77
- <glyph unicode="&#xe64b;" d="M0 587.63l41.594-54.544c0 0 85.77 67.608 114.36 33.802 28.588-33.802 137.736-441.956 174.17-517.246 31.8-66.030 119.518-153.32 215.714-90.982 96.136 62.34 415.84 335.286 473.066 657.616 57.18 322.226-384.72 254.726-431.53-26.010 116.99 70.236 179.436-28.538 119.57-140.372-59.758-111.724-114.36-184.592-142.952-184.592-28.538 0-50.49 74.768-83.188 205.446-33.798 135.102-33.592 378.46-174.116 350.87-132.518-26.012-306.688-233.988-306.688-233.988z" />
78
- <glyph unicode="&#xe64c;" d="M800 480c-70.58 0-128-57.42-128-128s57.42-128 128-128c70.58 0 128 57.42 128 128s-57.42 128-128 128zM800 576v0c123.71 0 224-100.288 224-224 0-123.71-100.29-224-224-224s-224 100.29-224 224c0 123.712 100.29 224 224 224zM0 352c0 123.712 100.288 224 224 224s224-100.288 224-224c0-123.712-100.288-224-224-224s-224 100.288-224 224z" />
79
- <glyph unicode="&#xe64d;" d="M765.666 669.654c-6.882-9.804-64.486-87.23-200.556-138.228-62.704 115.206-132.206 209.85-142.782 224.012 28.776 6.936 58.798 10.64 89.674 10.64 97.23 0 186.088-36.47 253.664-96.424zM538.752 380.076c-197.352-63.796-302.372-237.678-311.042-252.522-61.116 67.842-98.374 157.576-98.374 255.858 0 3.916 0.078 7.81 0.196 11.696 16.744-0.342 202.18-2.732 393.278 54.458 10.952-21.44 21.416-43.202 31.024-64.94-5.064-1.426-10.092-2.94-15.082-4.55zM512 896c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512.002-64c-247.030 0-448.002 200.97-448.002 448 0 247.028 200.972 448 448.002 448 247.032 0 447.998-200.972 447.998-448 0-247.030-200.966-448-447.998-448zM619.918 419.098c-7.946 18.66-16.482 37.198-25.388 55.428 141.484 57.762 205.61 139.964 213.676 150.878 53.292-65.116 85.566-148.052 86.412-238.372-12.618 2.668-139.13 28.328-266.458 12.316-2.682 6.552-5.426 13.134-8.242 19.75zM491.188 508.412c-178.996-47.532-336.65-46.848-353.766-46.622 24.814 118.742 104.836 217.432 211.892 267.926 10.088-13.834 78.472-108.594 141.874-221.304zM577.32 320.5c0.84 0.292 1.68 0.564 2.522 0.852 53.724-139.606 75.942-256.612 81.636-290.186-45.946-19.568-96.466-30.41-149.476-30.41-88.464 0-170.002 30.184-234.882 80.78 6.886 14.078 84.364 163.754 300.2 238.964zM651.464 339.036c119.916 19.192 225.266-12.232 238.36-16.36-17.060-106.474-78.172-198.428-164.020-256.472-3.922 23.276-24.288 135.294-74.34 272.832z" />
80
- <glyph unicode="&#xe64e;" d="M561.856 489c-39.042 2.282-84.082-0.048-136.25-8.95l120.334-216.888 478.060 131.266c-5.154 12.26-12.686 24.226-22.662 35.798-49.474 57.278-156.74 108.374-273.604 131.418l0.002 0.026c-114.644 26.874-238.802 25.744-365.96 6.548-4.584-0.688-9.144-1.422-13.68-2.184l-42.272 78.292c-41.142-5.492-79.808-14.050-115.606-25.474l40.26-84.198c-65.76-25.476-119.722-61.76-158.658-105.432-64.212-73.064-89.59-164.908-58.746-254.352 6.204-18.042 14.588-35.16 24.936-51.196l478.068 131.298-132.75 245.848c4.558 0.88 9.196 1.768 13.928 2.624 214.682 38.298 332.102-20.864 396.416-83.83l-163.558-39.648-68.258 109.034zM174.722 269.61c-14.758 67.352-3.012 142.526 90.404 192.594l73.138-152.948-163.542-39.646z" />
81
- <glyph unicode="&#xe64f;" d="M704 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM958.392 766.392c-87.478 87.476-229.306 87.476-316.786 0-35.578-35.578-56.684-80.146-63.322-126.392v0l-204.694-310.228c-27.506-1.41-54.776-8.416-79.966-21.016l-157.892 123.424c-36.55 28.574-89.342 22.102-117.912-14.448-28.572-36.55-22.102-89.342 14.448-117.912l155.934-121.892c-16.96-66.782 0.672-140.538 52.93-192.794 78.906-78.904 206.832-78.904 285.736 0 48.466 48.466 67.15 115.428 56.076 178.166l249.054 222.986c46.248 6.638 90.816 27.744 126.394 63.322 87.478 87.476 87.478 229.306 0 316.784zM384-6.698c-74.39 0-134.698 60.304-134.698 134.698 0 0.712 0.042 1.414 0.054 2.124l66.912-52.304c15.36-12.006 33.582-17.824 51.674-17.824 24.962 0 49.672 11.080 66.238 32.272 28.572 36.55 22.102 89.342-14.448 117.912l-63.5 49.636c8.962 1.878 18.248 2.88 27.768 2.88 74.392 0 134.698-60.304 134.698-134.698s-60.306-134.696-134.698-134.696zM800 448c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
82
- <glyph unicode="&#xe650;" d="M128 384.008c0-148.026 88.322-275.968 216.43-336.578l-183.178 488.784c-21.308-46.508-33.252-97.982-33.252-152.206zM771.228 402.872c0 46.234-17.054 78.236-31.654 103.142-19.458 30.82-37.72 56.894-37.72 87.716 0 34.374 26.766 66.376 64.486 66.376 1.704 0 3.32-0.204 4.976-0.302-68.316 60.97-159.34 98.196-259.308 98.196-134.16 0-252.186-67.046-320.844-168.568 9.010-0.282 17.506-0.454 24.712-0.454 40.154 0 102.34 4.752 102.34 4.752 20.69 1.182 23.132-28.434 2.458-30.822 0 0-20.81-2.368-43.952-3.55l139.834-405.106 84.044 245.456-59.822 159.65c-20.688 1.184-40.278 3.55-40.278 3.55-20.702 1.192-18.272 32.002 2.438 30.822 0 0 63.4-4.752 101.134-4.752 40.146 0 102.35 4.752 102.35 4.752 20.702 1.182 23.14-28.434 2.446-30.822 0 0-20.834-2.372-43.948-3.55l138.78-402.018 38.312 124.632c16.58 51.75 29.216 88.9 29.216 120.9zM518.742 351.296l-115.226-326.058c34.416-9.858 70.794-15.238 108.488-15.238 44.716 0 87.604 7.518 127.518 21.2-1.018 1.602-1.974 3.304-2.75 5.154l-118.030 314.942zM848.962 563.428c1.652-11.91 2.588-24.686 2.588-38.458 0-37.93-7.292-80.596-29.202-133.95l-117.286-330.272c114.162 64.828 190.938 185.288 190.938 323.258 0 65.030-17.060 126.16-47.038 179.422zM512 896c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512-64c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448z" />
83
- <glyph unicode="&#xe651;" d="M957.796 512h-57.406c-35.166 0-65.988 29.742-68.39 64v0c0.004 182.668-147.258 320-331.19 320h-167.824c-183.812 0-332.856-148-332.986-330.666v-362.798c0-182.654 149.174-330.536 332.984-330.536h358.42c183.948 0 332.596 147.882 332.596 330.536v234.382c0 36.502-29.44 75.082-66.204 75.082zM320 640h192c35.2 0 64-28.8 64-64s-28.8-64-64-64h-192c-35.2 0-64 28.8-64 64s28.8 64 64 64zM704 128h-384c-35.2 0-64 28.8-64 64s28.8 64 64 64h384c35.2 0 64-28.8 64-64s-28.8-64-64-64z" />
84
- <glyph unicode="&#xe652;" d="M576.032 448l-0.002-234.184c0-59.418-0.77-93.656 5.53-110.5 6.25-16.754 21.918-34.146 38.99-44.202 22.684-13.588 48.542-20.376 77.708-20.376 51.854 0 82.478 6.848 133.742 40.54v-153.944c-43.7-20.552-81.866-32.594-117.324-40.922-35.5-8.242-73.86-12.406-115.064-12.406-46.828 0-74.456 5.886-110.41 17.656-35.958 11.868-66.66 28.806-92.020 50.54-25.45 21.922-43.022 45.208-52.848 69.832-9.826 24.636-14.716 60.414-14.716 107.244v359.1h-137.426v145.006c40.208 13.042 85.164 31.788 113.78 56.152 28.754 24.45 51.766 53.706 69.106 87.944 17.392 34.146 29.348 77.712 35.872 130.516h165.084l-0.002-255.996h255.968v-192h-255.968z" />
85
- <glyph unicode="&#xe653;" d="M975.31 318.062c2.812 20.8 4.43 41.946 4.43 63.472 0 258.31-210.542 467.744-470.206 467.744-25.808 0-51.11-2.12-75.732-6.16-44.144 28.768-96.684 45.534-153.224 45.534-155.046 0-280.578-125.616-280.578-280.612 0-56.396 16.598-108.788 45.18-152.778-3.85-24.034-5.818-48.646-5.818-73.718 0-258.352 210.434-467.764 470.17-467.764 29.314 0 57.854 2.854 85.592 7.866 43.1-26.738 93.868-42.296 148.292-42.296 155.004-0.002 280.584 125.646 280.584 280.626-0.006 58.586-17.92 113.056-48.69 158.086zM553.48 36.808c-149.41-7.784-219.328 25.274-283.378 85.382-71.53 67.134-42.796 143.708 15.48 147.602 58.244 3.888 93.214-66.026 124.3-85.472 31.048-19.376 149.188-63.52 211.588 7.816 67.952 77.656-45.188 117.84-128.118 130.004-118.406 17.532-267.9 81.584-256.27 207.814 11.632 126.148 107.164 190.828 207.7 199.952 128.154 11.634 211.582-19.414 277.57-75.72 76.3-65.058 35.016-137.788-13.598-143.64-48.424-5.818-102.808 107.008-209.582 108.704-110.054 1.728-184.434-114.522-48.572-147.568 135.932-33.010 281.5-46.572 333.922-170.834 52.458-124.274-81.508-256.25-231.042-264.040z" />
86
- <glyph unicode="&#xe654;" d="M256 256c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 256c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM643.112 119.222c16.482 12.986 40.376 10.154 53.364-6.332s10.152-40.378-6.334-53.366c-45.896-36.158-115.822-59.524-178.142-59.524-62.322 0-132.248 23.366-178.144 59.522-16.486 12.99-19.32 36.882-6.332 53.368 12.99 16.482 36.882 19.318 53.366 6.332 26.422-20.818 78.722-43.222 131.11-43.222s104.688 22.404 131.112 43.222zM1024 384c0 70.692-57.308 128-128 128-48.116 0-89.992-26.57-111.852-65.82-65.792 35.994-145.952 59.246-233.28 64.608l76.382 171.526 146.194-42.2c13.152-37.342 48.718-64.114 90.556-64.114 53.020 0 96 42.98 96 96s-42.98 96-96 96c-36.56 0-68.342-20.442-84.554-50.514l-162.906 47.024c-18.224 5.258-37.538-3.722-45.252-21.052l-103.77-233.026c-85.138-5.996-163.262-29.022-227.636-64.236-21.864 39.25-63.766 65.804-111.882 65.804-70.692 0-128-57.308-128-128 0-52.312 31.402-97.254 76.372-117.102-8.070-24.028-12.372-49.104-12.372-74.898 0-176.73 200.576-320 448-320 247.422 0 448 143.27 448 320 0 25.792-4.3 50.862-12.368 74.886 44.97 19.85 76.368 64.802 76.368 117.114zM864 708c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36zM64 384c0 35.29 28.71 64 64 64 25.508 0 47.572-15.004 57.846-36.646-33.448-25.366-61.166-54.626-81.666-86.738-23.524 9.47-40.18 32.512-40.18 59.384zM512-52c-205.45 0-372 109.242-372 244s166.55 244 372 244c205.45 0 372-109.242 372-244s-166.55-244-372-244zM919.82 324.616c-20.5 32.112-48.218 61.372-81.666 86.738 10.276 21.642 32.338 36.646 57.846 36.646 35.29 0 64-28.71 64-64 0-26.872-16.656-49.914-40.18-59.384z" />
87
- <glyph unicode="&#xe655;" d="M852 896h-680c-94.6 0-172-77.4-172-172v-680c0-94.6 77.4-172 172-172h680c94.6 0 172 77.4 172 172v680c0 94.6-77.4 172-172 172zM384 64h-128v448h128v-448zM320 576c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM832 64h-128v256c0 35.346-28.654 64-64 64s-64-28.654-64-64v-256h-128v448h128v-79.472c26.398 36.264 66.752 79.472 112 79.472 79.53 0 144-71.634 144-160v-288z" />
88
- <glyph unicode="&#xe656;" d="M1024 256v-384h-1024v384h128v-256h768v256zM192 192h640v-128h-640zM207.152 330.534l27.698 124.964 624.832-138.496-27.698-124.964zM279.658 587.442l54.092 116.006 580.032-270.464-54.092-116.006zM991.722 534.524l-77.922-101.55-507.746 389.608 56.336 73.418h58.244z" />
89
- <glyph unicode="&#xe657;" d="M512 896c-282.77 0-512-229.23-512-512s229.226-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM561.644 211.882c-46.52 3.614-66.042 26.656-102.504 48.808-20.060-105.176-44.564-206.016-117.14-258.686-22.404 158.968 32.894 278.364 58.57 405.114-43.784 73.706 5.27 222.034 97.62 185.474 113.626-44.948-98.4-274.008 43.932-302.616 148.62-29.868 209.288 257.858 117.142 351.424-133.158 135.106-387.598 3.080-356.31-190.356 7.614-47.292 56.472-61.638 19.524-126.902-85.22 18.892-110.65 86.102-107.376 175.712 5.268 146.674 131.784 249.364 258.686 263.566 160.484 17.964 311.106-58.908 331.906-209.876 23.412-170.39-72.448-354.93-244.050-341.662z" />
90
- <glyph unicode="&#xe658;" d="M853.342 896h-682.656c-93.874 0-170.686-76.81-170.686-170.69v-682.622c0-93.938 76.812-170.688 170.686-170.688h682.656c93.876 0 170.658 76.75 170.658 170.69v682.62c0 93.88-76.782 170.69-170.658 170.69zM311.778 229.212h-111.264c-6.702 0-11.708 3.008-14.542 7.584-2.934 4.758-3.084 10.928 0 17.068l118.22 208.626c0.126 0.228 0.126 0.38 0 0.632l-75.23 130.232c-3.112 6.196-3.566 12.314-0.632 17.068 2.834 4.602 8.47 6.954 15.172 6.954h111.264c17.070 0 25.44-10.998 30.978-20.862 0 0 76.040-132.66 76.498-133.392-4.504-7.94-120.118-212.42-120.118-212.42-5.688-10.262-13.704-21.49-30.346-21.49zM837.912 745.462l-246.352-435.58c-0.15-0.23-0.15-0.51 0-0.734l156.862-286.59c3.112-6.168 3.186-12.442 0.226-17.194-2.83-4.576-8.066-7.104-14.766-7.104h-111.14c-17.044 0-25.566 11.326-31.080 21.192 0 0-157.696 289.292-158.1 290.046 7.888 13.96 247.594 439.046 247.594 439.046 5.968 10.724 13.174 21.192 29.788 21.192h112.406c6.702 0 11.962-2.53 14.792-7.106 2.932-4.752 2.856-11.022-0.23-17.168z" />
91
- <glyph unicode="&#xe659;" d="M367.562 896c-243.358 0-367.562-140.162-367.562-401.856v0-549.034l238.39 238.628v278.896c0 108.416 28.73 177.406 125.118 192.894v0c33.672 6.584 103.75 4.278 148.306 4.278v0-165.596c0-1.51 0.208-4.206 0.594-5.586v0c1.87-6.704 7.93-11.616 15.116-11.63v0c4.062-0.008 7.868 2.104 11.79 5.97v0l413.122 412.974-584.874 0.062zM785.61 584.254v-278.89c0-108.414-28.736-177.414-125.116-192.894v0c-33.672-6.582-103.756-4.278-148.312-4.278v0 165.594c0 1.5-0.206 4.204-0.594 5.582v0c-1.864 6.712-7.922 11.622-15.112 11.63v0c-4.064 0.008-7.866-2.112-11.79-5.966v0l-413.124-412.966 584.874-0.066c243.354 0 367.564 140.168 367.564 401.852v0 549.028l-238.39-238.626z" />
92
- <glyph unicode="&#xe65a;" d="M880.634 765.226c25.698-12.576 48.094-30.486 64.502-52.482 34.536-46.3 44.236-109.372 28.836-187.466-15.56-79.026-50.416-145.734-101.166-194.044-9.282-9.702-19.222-18.746-29.804-27.080-54.356-42.802-122.998-65.428-198.508-65.428h-240.060l-64.564-302.726h-132.424l10.086 46.3h46.128l64.564 302.726h188.27c180.25 0 330.938 111.078 371.258 299.936 45.722 213.834-107.598 311.038-239.41 311.038h-449.278l-199.064-913.7h152.032l-24.032-110.3h263.66l64.564 302.726h188.27c180.25 0 330.938 111.078 371.258 299.936 33.716 157.68-40.804 251.932-135.118 290.564zM422.344 709.918h129.132c64.592 0 107.602-55.538 88.786-124.956-16.136-69.44-83.386-124.976-150.64-124.976h-123.758l56.48 249.932z" />
93
- <glyph unicode="&#xf099;" d="M25.143 101.143q20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56.857q-4.571 21.714-4.571 42.286 0 76.571 54 130.571t130.571 54q80 0 134.857-58.286 62.286 12 117.143 44.571-21.143-65.714-81.143-101.714 53.143 5.714 106.286 28.571-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857z" horiz-adv-x="951" />
94
- <glyph unicode="&#xf09a;" d="M54.286 378.857v169.143h145.714v124.571q0 106.286 59.429 164.857t158.286 58.571q84 0 130.286-6.857v-150.857h-89.714q-49.143 0-66.286-20.571t-17.143-61.714v-108h167.429l-22.286-169.143h-145.143v-433.714h-174.857v433.714h-145.714z" horiz-adv-x="585" />
95
- <glyph unicode="&#xf09b;" d="M0 384q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85.714t30-60 46-38.286 53.714-22.286 58.571-10.286q-22.857-20.571-28-58.857-12-5.714-25.714-8.571t-32.571-2.857-37.429 12.286-31.714 35.714q-10.857 18.286-27.714 29.714t-28.286 13.714l-11.429 1.714q-12 0-16.571-2.571t-2.857-6.571 5.143-8 7.429-6.857l4-2.857q12.571-5.714 24.857-21.714t18-29.143l5.714-13.143q7.429-21.714 25.143-35.143t38.286-17.143 39.714-4 31.714 2l13.143 2.286q0-21.714 0.286-50.857t0.286-30.857q0-10.286-7.429-17.143t-22.857-4q-132.571 44-216.286 158.571t-83.714 258z" />
96
- <glyph unicode="&#xf0d5;" d="M18.286 122.286q0 46.286 25.429 85.714t67.714 65.714q74.857 46.857 230.857 57.143-18.286 24-27.143 42.286t-8.857 41.714q0 20.571 12 48.571-26.286-2.286-38.857-2.286-84.571 0-142.571 55.143t-58 139.714q0 46.857 20.571 90.857t56.571 74.857q44 37.714 104.286 56t124.286 18.286h238.857l-78.857-50.286h-74.857q42.286-36 64-76t21.714-91.429q0-41.143-14-74t-33.714-53.143-39.714-37.143-34-35.143-14-37.714q0-20.571 18.286-40.286t44.286-38.857 51.714-42 44-59.429 18.286-81.143q0-51.429-27.429-98.857-41.143-69.714-120.571-102.571t-170.286-32.857q-75.429 0-140.857 23.714t-98 78.571q-21.143 34.286-21.143 74.857zM124.571 148.571q0-40 20-70.571t52.286-47.429 68-25.143 72.857-8.286q33.143 0 63.714 7.429t56.571 22.286 41.714 41.714 15.714 62.286q0 14.286-4 28t-8.286 24-15.429 23.714-16.857 20-22 19.714-20.857 16.571-23.714 17.143-20.857 14.857q-9.143 1.143-27.429 1.143-30.286 0-60-4t-61.429-14.286-55.429-26.286-39.143-42.571-15.429-60.286zM185.143 716.571q0-26.286 5.714-55.714t18-58.857 29.714-52.857 42.857-38.286 55.143-14.857q21.714 0 44.571 9.429t37.714 24.857q30.286 32.571 30.286 90.857 0 33.143-9.714 71.429t-27.714 74-48.286 59.143-66.857 23.429q-24 0-47.143-11.143t-37.429-30q-26.857-33.714-26.857-91.429zM619.429 436v61.714h121.143v124h60v-124h121.714v-61.714h-121.714v-125.143h-60v125.143h-121.143z" horiz-adv-x="951" />
97
- <glyph unicode="&#xf170;" d="M0 384q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286-58.857-220.286-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286zM176.571 237.714h53.714l59.429 91.429h298.286l59.429-91.429h53.714l-262.286 394.857zM324 365.714l114.857 174.857 114.857-174.857h-229.714z" />
98
- <glyph unicode="&#xf198;" d="M0 473.143q0 26.857 15.714 48.571t40.857 30.286l89.714 30.286-30.286 90.857q-4.571 13.714-4.571 26.857 0 34.286 24 58.571t58.286 24.286q26.857 0 48.571-15.429t30.286-41.143l30.857-91.429 177.143 60-30.857 91.429q-4.571 13.714-4.571 26.857 0 33.714 24.286 58.286t58 24.571q26.857 0 48.857-15.714t30.571-40.857l30.286-92 92.571 31.429q12 3.429 24.571 3.429 34.286 0 58.571-22.571t24.286-56.286q0-25.714-17.143-46.571t-42.286-29.429l-89.714-30.857 60-180.571 93.714 32q13.714 4.571 26.286 4.571 35.429 0 59.143-23.143t23.714-58q0-55.429-53.143-74.286l-98.286-33.714 32-95.429q4-12 4-26.857 0-33.714-24-58.286t-57.714-24.571q-26.857 0-48.857 15.429t-30.571 41.143l-31.429 94.286-177.143-60.571 31.429-93.714q4.571-13.714 4.571-26.857 0-33.714-24-58.286t-58.286-24.571q-26.857 0-48.571 15.429t-30.286 41.143l-31.429 93.143-87.429-30.286q-16.571-5.143-28.571-5.143-34.857 0-58 22.857t-23.143 57.714q0 26.857 15.714 48.571t40.857 30.286l89.143 30.286-60 178.857-89.143-30.857q-14.857-4.571-27.429-4.571-34.286 0-57.714 23.143t-23.429 57.429zM354.286 481.714l60-178.857 177.143 60-60 180z" horiz-adv-x="951" />
99
- <glyph unicode="&#xf1b4;" d="M0 30.857v720h339.429q49.714 0 88.571-8t72.286-27.143 51.429-55.143 18-88q0-103.429-98.286-150.286 65.143-18.286 98.286-65.714t33.143-116.571q0-42.857-14-78t-37.714-59.143-56.286-40.571-69.143-24-76.571-7.429h-349.143zM158.286 153.143h169.143q117.143 0 117.143 95.429 0 102.857-113.714 102.857h-172.571v-198.286zM158.286 460h160.571q44.571 0 70.571 20.857t26 64.857q0 82.286-108.571 82.286h-148.571v-168zM649.714 290.857q0 118.857 74.571 197.429t192.286 78.571q78.857 0 137.429-38.857t87.429-102.286 28.857-141.714q0-9.714-1.143-26.857h-376q0-63.429 32.857-98t95.143-34.571q36 0 69.714 18.286t43.429 49.714h126.286q-57.143-175.429-244-175.429-122.286 0-194.571 75.429t-72.286 198.286zM764 631.429h292v70.857h-292v-70.857zM793.143 347.429h233.143q-10.286 111.429-114.286 111.429-51.429 0-83.429-30t-35.429-81.429z" horiz-adv-x="1170" />
100
- <glyph unicode="&#xf1be;" d="M0 249.714l9.714 73.143q1.143 5.143 5.143 5.143t5.143-5.143l11.429-73.143-11.429-72q-1.143-5.143-5.143-5.143t-5.143 5.143zM45.143 249.714l13.143 118.286q0 5.143 5.143 5.143 4.571 0 5.714-5.143l14.857-118.286-14.857-116q-1.143-5.143-5.714-5.143-5.143 0-5.143 5.714zM96.571 249.714l12 140q1.143 6.857 6.857 6.857 6.286 0 6.286-6.857l14.286-140-14.286-135.429q0-6.286-6.286-6.286-5.714 0-6.857 6.286zM148 249.714l12 144q0 7.429 7.429 7.429 6.857 0 8-7.429l13.143-144-13.143-139.429q-1.143-7.429-8-7.429-7.429 0-7.429 7.429zM200 249.714l11.429 133.714q0 3.429 2.571 6t6 2.571q8 0 9.143-8.571l12-133.714-12-140.571q-1.143-9.143-9.143-9.143-3.429 0-6 2.571t-2.571 6.571zM252.571 249.714l10.286 217.143q1.143 10.286 10.286 10.286 4 0 6.857-3.143t2.857-7.143l12-217.143-12-140.571q0-4-2.857-7.143t-6.857-3.143q-9.143 0-10.286 10.286zM305.143 248.571l9.143 267.429q1.143 10.857 11.429 10.857 4.571 0 7.714-3.143t3.143-7.714l10.857-267.429-10.857-139.429q0-4.571-3.143-7.714t-7.714-3.143q-10.286 0-11.429 10.857zM358.857 249.714l9.143 289.143q0 5.143 3.714 8.857t8.286 3.714q5.143 0 8.571-3.714t4-8.857l10.286-289.143-10.286-138.286q-1.143-12-12.571-12-10.857 0-12 12zM413.143 249.714l8-137.714q0.571-5.714 4.286-9.429t8.857-3.714q12.571 0 13.714 13.143l9.143 137.714-9.143 298.857q-0.571 5.714-4.286 9.714t-9.429 4q-5.143 0-9.143-4t-4-9.714zM466.857 249.714l8 291.429q0 6.286 4.286 10.286t10 4 10-4 4.286-10.286l8.571-291.429-8.571-136.571q0-5.714-4.286-10t-10-4.286-9.714 4-4.571 10.286zM521.714 249.143l6.857 281.143q0.571 6.857 5.143 11.429t10.857 4.571 10.571-4.571 4.857-11.429l8-281.143-8-134.857q0-6.286-4.571-10.857t-10.857-4.571-10.857 4.571-5.143 10.857zM577.143 249.714q0-0.571 6.286-134.857v-0.571q0-5.714 3.429-9.714 5.143-6.286 13.143-6.286 6.286 0 11.429 5.143 5.143 4 5.143 11.429l0.571 13.714 6.286 120.571-6.857 334.857q0 9.143-7.429 13.714-4.571 2.857-9.143 2.857t-9.143-2.857q-7.429-4.571-7.429-13.714l-0.571-3.429zM630.286 249.143l6.857 363.429v1.714q1.143 8.571 6.857 13.714 5.143 4 11.429 4 4.571 0 8.571-2.857 8-4.571 9.143-14.857l8-365.143-8-132q0-7.429-5.143-12.571t-12.571-5.143-12.571 5.143-5.714 12.571l-3.429 65.143zM688 117.714v513.714q0 13.143 16 18.857 48.571 19.429 103.429 19.429 111.429 0 193.143-75.143t91.429-184.857q30.286 12.571 62.857 12.571 66.857 0 114.286-47.429t47.429-114.857q0-66.857-47.429-114t-114.286-47.143h-449.143q-7.429 1.143-12.571 6.286t-5.143 12.571z" horiz-adv-x="1317" />
101
- <glyph unicode="&#xf1ca;" d="M22.286 753.143h161.714q14.857-124.571 40-227.714t59.714-181.143 69.429-134.571 80-111.429q96.571 96.571 164 232-81.143 41.143-127.429 125.714t-46.286 190.286q0 109.714 59.429 179.714t162.286 70q101.714 0 156-60.286t54.286-170q0-90.857-33.143-163.429-4-0.571-11.143-1.714t-26.286-1.143-36 3.429-35.429 14.571-28.857 29.429q17.714 58.857 17.714 105.143 0 49.714-16.571 75.429t-45.143 25.714q-30.286 0-48.571-28.286t-18.286-80.286q0-106.286 60-167.714t152.571-61.429q35.429 0 69.143 8v-113.143q-57.714-13.143-113.143-13.143-37.143-77.714-94.571-154.857t-103.714-123.143-73.143-60.857q-45.714-25.714-92.571 1.714-16 9.714-34.571 24.857t-48.571 47.714-58.571 73.429-61.429 105.143-60.286 139.429-52.286 179.714-40.286 222.857z" />
102
- <glyph unicode="&#xf1d3;" d="M38.857 22.286q0 94.286 104 128.571v2.286q-38.286 23.429-38.286 72 0 62.286 36 78.286v2.286q-41.143 13.714-68.286 62t-27.143 94.571q0 79.429 54.286 132.286t134.286 52.857q54.857 0 101.714-26.857 56 0 124.571 26.857v-115.429q-20.571-6.857-45.143-12.571 9.143-24.571 9.143-48 0-72.571-41.714-123.714t-112.571-64.286q-22.857-4.571-34-15.429t-11.143-33.143q0-17.714 12.857-29.429t33.143-18.286 44.857-12.571 49.143-14.571 44.857-21.429 33.143-36.571 12.857-56.286q0-173.714-207.429-173.714-39.429 0-74.286 7.143t-66.286 23.429-50 46.857-18.571 72.857zM155.429 28.571q0-57.714 98.286-57.714 86.286 0 86.286 60 0 57.143-94.286 57.143-90.286 0-90.286-59.429zM167.429 461.143q0-77.143 70.857-77.143 68 0 68 78.286 0 34.857-17.143 58.286t-50.857 23.429q-70.857 0-70.857-82.857zM500 812q0 33.714 22.571 58.857t56.286 25.143q33.143 0 55.143-25.429t22-58.571-22.286-58-54.857-24.857q-33.143 0-56 24.857t-22.857 58zM514.857 144q2.286 25.714 2.286 76.571v348q0 53.714-2.286 73.143h126.857q-2.286-18.857-2.286-70.857v-350.286q0-50.857 2.286-76.571h-126.857zM695.429 533.143v108.571h54.857v43.429q0 30.857-3.429 50.857h129.714q-3.429-23.429-3.429-94.286h97.714v-108.571q-8.571 0-24.857 1.143t-24.286 1.143h-48.571v-208.571q0-74.857 49.714-74.857 34.857 0 62.286 18.857v-112q-40.571-22.286-99.429-22.286-35.429 0-61.143 11.429t-40 28.571-22.571 44.571-10.571 52.571-2.286 58.857v200.571h1.143v2.286q-4 0-10.857 0.571t-10.286 0.571q-12 0-33.714-3.429z" />
103
- </font></defs></svg>
@@ -1,1829 +0,0 @@
1
- (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
3
- /*!
4
- * The buffer module from node.js, for the browser.
5
- *
6
- * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
7
- * @license MIT
8
- */
9
-
10
- var base64 = require('base64-js')
11
- var ieee754 = require('ieee754')
12
-
13
- exports.Buffer = Buffer
14
- exports.SlowBuffer = Buffer
15
- exports.INSPECT_MAX_BYTES = 50
16
- Buffer.poolSize = 8192
17
-
18
- /**
19
- * If `Buffer._useTypedArrays`:
20
- * === true Use Uint8Array implementation (fastest)
21
- * === false Use Object implementation (compatible down to IE6)
22
- */
23
- Buffer._useTypedArrays = (function () {
24
- // Detect if browser supports Typed Arrays. Supported browsers are IE 10+, Firefox 4+,
25
- // Chrome 7+, Safari 5.1+, Opera 11.6+, iOS 4.2+. If the browser does not support adding
26
- // properties to `Uint8Array` instances, then that's the same as no `Uint8Array` support
27
- // because we need to be able to add all the node Buffer API methods. This is an issue
28
- // in Firefox 4-29. Now fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=695438
29
- try {
30
- var buf = new ArrayBuffer(0)
31
- var arr = new Uint8Array(buf)
32
- arr.foo = function () { return 42 }
33
- return 42 === arr.foo() &&
34
- typeof arr.subarray === 'function' // Chrome 9-10 lack `subarray`
35
- } catch (e) {
36
- return false
37
- }
38
- })()
39
-
40
- /**
41
- * Class: Buffer
42
- * =============
43
- *
44
- * The Buffer constructor returns instances of `Uint8Array` that are augmented
45
- * with function properties for all the node `Buffer` API functions. We use
46
- * `Uint8Array` so that square bracket notation works as expected -- it returns
47
- * a single octet.
48
- *
49
- * By augmenting the instances, we can avoid modifying the `Uint8Array`
50
- * prototype.
51
- */
52
- function Buffer (subject, encoding, noZero) {
53
- if (!(this instanceof Buffer))
54
- return new Buffer(subject, encoding, noZero)
55
-
56
- var type = typeof subject
57
-
58
- // Workaround: node's base64 implementation allows for non-padded strings
59
- // while base64-js does not.
60
- if (encoding === 'base64' && type === 'string') {
61
- subject = stringtrim(subject)
62
- while (subject.length % 4 !== 0) {
63
- subject = subject + '='
64
- }
65
- }
66
-
67
- // Find the length
68
- var length
69
- if (type === 'number')
70
- length = coerce(subject)
71
- else if (type === 'string')
72
- length = Buffer.byteLength(subject, encoding)
73
- else if (type === 'object')
74
- length = coerce(subject.length) // assume that object is array-like
75
- else
76
- throw new Error('First argument needs to be a number, array or string.')
77
-
78
- var buf
79
- if (Buffer._useTypedArrays) {
80
- // Preferred: Return an augmented `Uint8Array` instance for best performance
81
- buf = Buffer._augment(new Uint8Array(length))
82
- } else {
83
- // Fallback: Return THIS instance of Buffer (created by `new`)
84
- buf = this
85
- buf.length = length
86
- buf._isBuffer = true
87
- }
88
-
89
- var i
90
- if (Buffer._useTypedArrays && typeof subject.byteLength === 'number') {
91
- // Speed optimization -- use set if we're copying from a typed array
92
- buf._set(subject)
93
- } else if (isArrayish(subject)) {
94
- // Treat array-ish objects as a byte array
95
- for (i = 0; i < length; i++) {
96
- if (Buffer.isBuffer(subject))
97
- buf[i] = subject.readUInt8(i)
98
- else
99
- buf[i] = subject[i]
100
- }
101
- } else if (type === 'string') {
102
- buf.write(subject, 0, encoding)
103
- } else if (type === 'number' && !Buffer._useTypedArrays && !noZero) {
104
- for (i = 0; i < length; i++) {
105
- buf[i] = 0
106
- }
107
- }
108
-
109
- return buf
110
- }
111
-
112
- // STATIC METHODS
113
- // ==============
114
-
115
- Buffer.isEncoding = function (encoding) {
116
- switch (String(encoding).toLowerCase()) {
117
- case 'hex':
118
- case 'utf8':
119
- case 'utf-8':
120
- case 'ascii':
121
- case 'binary':
122
- case 'base64':
123
- case 'raw':
124
- case 'ucs2':
125
- case 'ucs-2':
126
- case 'utf16le':
127
- case 'utf-16le':
128
- return true
129
- default:
130
- return false
131
- }
132
- }
133
-
134
- Buffer.isBuffer = function (b) {
135
- return !!(b !== null && b !== undefined && b._isBuffer)
136
- }
137
-
138
- Buffer.byteLength = function (str, encoding) {
139
- var ret
140
- str = str + ''
141
- switch (encoding || 'utf8') {
142
- case 'hex':
143
- ret = str.length / 2
144
- break
145
- case 'utf8':
146
- case 'utf-8':
147
- ret = utf8ToBytes(str).length
148
- break
149
- case 'ascii':
150
- case 'binary':
151
- case 'raw':
152
- ret = str.length
153
- break
154
- case 'base64':
155
- ret = base64ToBytes(str).length
156
- break
157
- case 'ucs2':
158
- case 'ucs-2':
159
- case 'utf16le':
160
- case 'utf-16le':
161
- ret = str.length * 2
162
- break
163
- default:
164
- throw new Error('Unknown encoding')
165
- }
166
- return ret
167
- }
168
-
169
- Buffer.concat = function (list, totalLength) {
170
- assert(isArray(list), 'Usage: Buffer.concat(list, [totalLength])\n' +
171
- 'list should be an Array.')
172
-
173
- if (list.length === 0) {
174
- return new Buffer(0)
175
- } else if (list.length === 1) {
176
- return list[0]
177
- }
178
-
179
- var i
180
- if (typeof totalLength !== 'number') {
181
- totalLength = 0
182
- for (i = 0; i < list.length; i++) {
183
- totalLength += list[i].length
184
- }
185
- }
186
-
187
- var buf = new Buffer(totalLength)
188
- var pos = 0
189
- for (i = 0; i < list.length; i++) {
190
- var item = list[i]
191
- item.copy(buf, pos)
192
- pos += item.length
193
- }
194
- return buf
195
- }
196
-
197
- // BUFFER INSTANCE METHODS
198
- // =======================
199
-
200
- function _hexWrite (buf, string, offset, length) {
201
- offset = Number(offset) || 0
202
- var remaining = buf.length - offset
203
- if (!length) {
204
- length = remaining
205
- } else {
206
- length = Number(length)
207
- if (length > remaining) {
208
- length = remaining
209
- }
210
- }
211
-
212
- // must be an even number of digits
213
- var strLen = string.length
214
- assert(strLen % 2 === 0, 'Invalid hex string')
215
-
216
- if (length > strLen / 2) {
217
- length = strLen / 2
218
- }
219
- for (var i = 0; i < length; i++) {
220
- var byte = parseInt(string.substr(i * 2, 2), 16)
221
- assert(!isNaN(byte), 'Invalid hex string')
222
- buf[offset + i] = byte
223
- }
224
- Buffer._charsWritten = i * 2
225
- return i
226
- }
227
-
228
- function _utf8Write (buf, string, offset, length) {
229
- var charsWritten = Buffer._charsWritten =
230
- blitBuffer(utf8ToBytes(string), buf, offset, length)
231
- return charsWritten
232
- }
233
-
234
- function _asciiWrite (buf, string, offset, length) {
235
- var charsWritten = Buffer._charsWritten =
236
- blitBuffer(asciiToBytes(string), buf, offset, length)
237
- return charsWritten
238
- }
239
-
240
- function _binaryWrite (buf, string, offset, length) {
241
- return _asciiWrite(buf, string, offset, length)
242
- }
243
-
244
- function _base64Write (buf, string, offset, length) {
245
- var charsWritten = Buffer._charsWritten =
246
- blitBuffer(base64ToBytes(string), buf, offset, length)
247
- return charsWritten
248
- }
249
-
250
- function _utf16leWrite (buf, string, offset, length) {
251
- var charsWritten = Buffer._charsWritten =
252
- blitBuffer(utf16leToBytes(string), buf, offset, length)
253
- return charsWritten
254
- }
255
-
256
- Buffer.prototype.write = function (string, offset, length, encoding) {
257
- // Support both (string, offset, length, encoding)
258
- // and the legacy (string, encoding, offset, length)
259
- if (isFinite(offset)) {
260
- if (!isFinite(length)) {
261
- encoding = length
262
- length = undefined
263
- }
264
- } else { // legacy
265
- var swap = encoding
266
- encoding = offset
267
- offset = length
268
- length = swap
269
- }
270
-
271
- offset = Number(offset) || 0
272
- var remaining = this.length - offset
273
- if (!length) {
274
- length = remaining
275
- } else {
276
- length = Number(length)
277
- if (length > remaining) {
278
- length = remaining
279
- }
280
- }
281
- encoding = String(encoding || 'utf8').toLowerCase()
282
-
283
- var ret
284
- switch (encoding) {
285
- case 'hex':
286
- ret = _hexWrite(this, string, offset, length)
287
- break
288
- case 'utf8':
289
- case 'utf-8':
290
- ret = _utf8Write(this, string, offset, length)
291
- break
292
- case 'ascii':
293
- ret = _asciiWrite(this, string, offset, length)
294
- break
295
- case 'binary':
296
- ret = _binaryWrite(this, string, offset, length)
297
- break
298
- case 'base64':
299
- ret = _base64Write(this, string, offset, length)
300
- break
301
- case 'ucs2':
302
- case 'ucs-2':
303
- case 'utf16le':
304
- case 'utf-16le':
305
- ret = _utf16leWrite(this, string, offset, length)
306
- break
307
- default:
308
- throw new Error('Unknown encoding')
309
- }
310
- return ret
311
- }
312
-
313
- Buffer.prototype.toString = function (encoding, start, end) {
314
- var self = this
315
-
316
- encoding = String(encoding || 'utf8').toLowerCase()
317
- start = Number(start) || 0
318
- end = (end !== undefined)
319
- ? Number(end)
320
- : end = self.length
321
-
322
- // Fastpath empty strings
323
- if (end === start)
324
- return ''
325
-
326
- var ret
327
- switch (encoding) {
328
- case 'hex':
329
- ret = _hexSlice(self, start, end)
330
- break
331
- case 'utf8':
332
- case 'utf-8':
333
- ret = _utf8Slice(self, start, end)
334
- break
335
- case 'ascii':
336
- ret = _asciiSlice(self, start, end)
337
- break
338
- case 'binary':
339
- ret = _binarySlice(self, start, end)
340
- break
341
- case 'base64':
342
- ret = _base64Slice(self, start, end)
343
- break
344
- case 'ucs2':
345
- case 'ucs-2':
346
- case 'utf16le':
347
- case 'utf-16le':
348
- ret = _utf16leSlice(self, start, end)
349
- break
350
- default:
351
- throw new Error('Unknown encoding')
352
- }
353
- return ret
354
- }
355
-
356
- Buffer.prototype.toJSON = function () {
357
- return {
358
- type: 'Buffer',
359
- data: Array.prototype.slice.call(this._arr || this, 0)
360
- }
361
- }
362
-
363
- // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
364
- Buffer.prototype.copy = function (target, target_start, start, end) {
365
- var source = this
366
-
367
- if (!start) start = 0
368
- if (!end && end !== 0) end = this.length
369
- if (!target_start) target_start = 0
370
-
371
- // Copy 0 bytes; we're done
372
- if (end === start) return
373
- if (target.length === 0 || source.length === 0) return
374
-
375
- // Fatal error conditions
376
- assert(end >= start, 'sourceEnd < sourceStart')
377
- assert(target_start >= 0 && target_start < target.length,
378
- 'targetStart out of bounds')
379
- assert(start >= 0 && start < source.length, 'sourceStart out of bounds')
380
- assert(end >= 0 && end <= source.length, 'sourceEnd out of bounds')
381
-
382
- // Are we oob?
383
- if (end > this.length)
384
- end = this.length
385
- if (target.length - target_start < end - start)
386
- end = target.length - target_start + start
387
-
388
- var len = end - start
389
-
390
- if (len < 100 || !Buffer._useTypedArrays) {
391
- for (var i = 0; i < len; i++)
392
- target[i + target_start] = this[i + start]
393
- } else {
394
- target._set(this.subarray(start, start + len), target_start)
395
- }
396
- }
397
-
398
- function _base64Slice (buf, start, end) {
399
- if (start === 0 && end === buf.length) {
400
- return base64.fromByteArray(buf)
401
- } else {
402
- return base64.fromByteArray(buf.slice(start, end))
403
- }
404
- }
405
-
406
- function _utf8Slice (buf, start, end) {
407
- var res = ''
408
- var tmp = ''
409
- end = Math.min(buf.length, end)
410
-
411
- for (var i = start; i < end; i++) {
412
- if (buf[i] <= 0x7F) {
413
- res += decodeUtf8Char(tmp) + String.fromCharCode(buf[i])
414
- tmp = ''
415
- } else {
416
- tmp += '%' + buf[i].toString(16)
417
- }
418
- }
419
-
420
- return res + decodeUtf8Char(tmp)
421
- }
422
-
423
- function _asciiSlice (buf, start, end) {
424
- var ret = ''
425
- end = Math.min(buf.length, end)
426
-
427
- for (var i = start; i < end; i++)
428
- ret += String.fromCharCode(buf[i])
429
- return ret
430
- }
431
-
432
- function _binarySlice (buf, start, end) {
433
- return _asciiSlice(buf, start, end)
434
- }
435
-
436
- function _hexSlice (buf, start, end) {
437
- var len = buf.length
438
-
439
- if (!start || start < 0) start = 0
440
- if (!end || end < 0 || end > len) end = len
441
-
442
- var out = ''
443
- for (var i = start; i < end; i++) {
444
- out += toHex(buf[i])
445
- }
446
- return out
447
- }
448
-
449
- function _utf16leSlice (buf, start, end) {
450
- var bytes = buf.slice(start, end)
451
- var res = ''
452
- for (var i = 0; i < bytes.length; i += 2) {
453
- res += String.fromCharCode(bytes[i] + bytes[i+1] * 256)
454
- }
455
- return res
456
- }
457
-
458
- Buffer.prototype.slice = function (start, end) {
459
- var len = this.length
460
- start = clamp(start, len, 0)
461
- end = clamp(end, len, len)
462
-
463
- if (Buffer._useTypedArrays) {
464
- return Buffer._augment(this.subarray(start, end))
465
- } else {
466
- var sliceLen = end - start
467
- var newBuf = new Buffer(sliceLen, undefined, true)
468
- for (var i = 0; i < sliceLen; i++) {
469
- newBuf[i] = this[i + start]
470
- }
471
- return newBuf
472
- }
473
- }
474
-
475
- // `get` will be removed in Node 0.13+
476
- Buffer.prototype.get = function (offset) {
477
- console.log('.get() is deprecated. Access using array indexes instead.')
478
- return this.readUInt8(offset)
479
- }
480
-
481
- // `set` will be removed in Node 0.13+
482
- Buffer.prototype.set = function (v, offset) {
483
- console.log('.set() is deprecated. Access using array indexes instead.')
484
- return this.writeUInt8(v, offset)
485
- }
486
-
487
- Buffer.prototype.readUInt8 = function (offset, noAssert) {
488
- if (!noAssert) {
489
- assert(offset !== undefined && offset !== null, 'missing offset')
490
- assert(offset < this.length, 'Trying to read beyond buffer length')
491
- }
492
-
493
- if (offset >= this.length)
494
- return
495
-
496
- return this[offset]
497
- }
498
-
499
- function _readUInt16 (buf, offset, littleEndian, noAssert) {
500
- if (!noAssert) {
501
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
502
- assert(offset !== undefined && offset !== null, 'missing offset')
503
- assert(offset + 1 < buf.length, 'Trying to read beyond buffer length')
504
- }
505
-
506
- var len = buf.length
507
- if (offset >= len)
508
- return
509
-
510
- var val
511
- if (littleEndian) {
512
- val = buf[offset]
513
- if (offset + 1 < len)
514
- val |= buf[offset + 1] << 8
515
- } else {
516
- val = buf[offset] << 8
517
- if (offset + 1 < len)
518
- val |= buf[offset + 1]
519
- }
520
- return val
521
- }
522
-
523
- Buffer.prototype.readUInt16LE = function (offset, noAssert) {
524
- return _readUInt16(this, offset, true, noAssert)
525
- }
526
-
527
- Buffer.prototype.readUInt16BE = function (offset, noAssert) {
528
- return _readUInt16(this, offset, false, noAssert)
529
- }
530
-
531
- function _readUInt32 (buf, offset, littleEndian, noAssert) {
532
- if (!noAssert) {
533
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
534
- assert(offset !== undefined && offset !== null, 'missing offset')
535
- assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
536
- }
537
-
538
- var len = buf.length
539
- if (offset >= len)
540
- return
541
-
542
- var val
543
- if (littleEndian) {
544
- if (offset + 2 < len)
545
- val = buf[offset + 2] << 16
546
- if (offset + 1 < len)
547
- val |= buf[offset + 1] << 8
548
- val |= buf[offset]
549
- if (offset + 3 < len)
550
- val = val + (buf[offset + 3] << 24 >>> 0)
551
- } else {
552
- if (offset + 1 < len)
553
- val = buf[offset + 1] << 16
554
- if (offset + 2 < len)
555
- val |= buf[offset + 2] << 8
556
- if (offset + 3 < len)
557
- val |= buf[offset + 3]
558
- val = val + (buf[offset] << 24 >>> 0)
559
- }
560
- return val
561
- }
562
-
563
- Buffer.prototype.readUInt32LE = function (offset, noAssert) {
564
- return _readUInt32(this, offset, true, noAssert)
565
- }
566
-
567
- Buffer.prototype.readUInt32BE = function (offset, noAssert) {
568
- return _readUInt32(this, offset, false, noAssert)
569
- }
570
-
571
- Buffer.prototype.readInt8 = function (offset, noAssert) {
572
- if (!noAssert) {
573
- assert(offset !== undefined && offset !== null,
574
- 'missing offset')
575
- assert(offset < this.length, 'Trying to read beyond buffer length')
576
- }
577
-
578
- if (offset >= this.length)
579
- return
580
-
581
- var neg = this[offset] & 0x80
582
- if (neg)
583
- return (0xff - this[offset] + 1) * -1
584
- else
585
- return this[offset]
586
- }
587
-
588
- function _readInt16 (buf, offset, littleEndian, noAssert) {
589
- if (!noAssert) {
590
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
591
- assert(offset !== undefined && offset !== null, 'missing offset')
592
- assert(offset + 1 < buf.length, 'Trying to read beyond buffer length')
593
- }
594
-
595
- var len = buf.length
596
- if (offset >= len)
597
- return
598
-
599
- var val = _readUInt16(buf, offset, littleEndian, true)
600
- var neg = val & 0x8000
601
- if (neg)
602
- return (0xffff - val + 1) * -1
603
- else
604
- return val
605
- }
606
-
607
- Buffer.prototype.readInt16LE = function (offset, noAssert) {
608
- return _readInt16(this, offset, true, noAssert)
609
- }
610
-
611
- Buffer.prototype.readInt16BE = function (offset, noAssert) {
612
- return _readInt16(this, offset, false, noAssert)
613
- }
614
-
615
- function _readInt32 (buf, offset, littleEndian, noAssert) {
616
- if (!noAssert) {
617
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
618
- assert(offset !== undefined && offset !== null, 'missing offset')
619
- assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
620
- }
621
-
622
- var len = buf.length
623
- if (offset >= len)
624
- return
625
-
626
- var val = _readUInt32(buf, offset, littleEndian, true)
627
- var neg = val & 0x80000000
628
- if (neg)
629
- return (0xffffffff - val + 1) * -1
630
- else
631
- return val
632
- }
633
-
634
- Buffer.prototype.readInt32LE = function (offset, noAssert) {
635
- return _readInt32(this, offset, true, noAssert)
636
- }
637
-
638
- Buffer.prototype.readInt32BE = function (offset, noAssert) {
639
- return _readInt32(this, offset, false, noAssert)
640
- }
641
-
642
- function _readFloat (buf, offset, littleEndian, noAssert) {
643
- if (!noAssert) {
644
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
645
- assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
646
- }
647
-
648
- return ieee754.read(buf, offset, littleEndian, 23, 4)
649
- }
650
-
651
- Buffer.prototype.readFloatLE = function (offset, noAssert) {
652
- return _readFloat(this, offset, true, noAssert)
653
- }
654
-
655
- Buffer.prototype.readFloatBE = function (offset, noAssert) {
656
- return _readFloat(this, offset, false, noAssert)
657
- }
658
-
659
- function _readDouble (buf, offset, littleEndian, noAssert) {
660
- if (!noAssert) {
661
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
662
- assert(offset + 7 < buf.length, 'Trying to read beyond buffer length')
663
- }
664
-
665
- return ieee754.read(buf, offset, littleEndian, 52, 8)
666
- }
667
-
668
- Buffer.prototype.readDoubleLE = function (offset, noAssert) {
669
- return _readDouble(this, offset, true, noAssert)
670
- }
671
-
672
- Buffer.prototype.readDoubleBE = function (offset, noAssert) {
673
- return _readDouble(this, offset, false, noAssert)
674
- }
675
-
676
- Buffer.prototype.writeUInt8 = function (value, offset, noAssert) {
677
- if (!noAssert) {
678
- assert(value !== undefined && value !== null, 'missing value')
679
- assert(offset !== undefined && offset !== null, 'missing offset')
680
- assert(offset < this.length, 'trying to write beyond buffer length')
681
- verifuint(value, 0xff)
682
- }
683
-
684
- if (offset >= this.length) return
685
-
686
- this[offset] = value
687
- }
688
-
689
- function _writeUInt16 (buf, value, offset, littleEndian, noAssert) {
690
- if (!noAssert) {
691
- assert(value !== undefined && value !== null, 'missing value')
692
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
693
- assert(offset !== undefined && offset !== null, 'missing offset')
694
- assert(offset + 1 < buf.length, 'trying to write beyond buffer length')
695
- verifuint(value, 0xffff)
696
- }
697
-
698
- var len = buf.length
699
- if (offset >= len)
700
- return
701
-
702
- for (var i = 0, j = Math.min(len - offset, 2); i < j; i++) {
703
- buf[offset + i] =
704
- (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
705
- (littleEndian ? i : 1 - i) * 8
706
- }
707
- }
708
-
709
- Buffer.prototype.writeUInt16LE = function (value, offset, noAssert) {
710
- _writeUInt16(this, value, offset, true, noAssert)
711
- }
712
-
713
- Buffer.prototype.writeUInt16BE = function (value, offset, noAssert) {
714
- _writeUInt16(this, value, offset, false, noAssert)
715
- }
716
-
717
- function _writeUInt32 (buf, value, offset, littleEndian, noAssert) {
718
- if (!noAssert) {
719
- assert(value !== undefined && value !== null, 'missing value')
720
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
721
- assert(offset !== undefined && offset !== null, 'missing offset')
722
- assert(offset + 3 < buf.length, 'trying to write beyond buffer length')
723
- verifuint(value, 0xffffffff)
724
- }
725
-
726
- var len = buf.length
727
- if (offset >= len)
728
- return
729
-
730
- for (var i = 0, j = Math.min(len - offset, 4); i < j; i++) {
731
- buf[offset + i] =
732
- (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
733
- }
734
- }
735
-
736
- Buffer.prototype.writeUInt32LE = function (value, offset, noAssert) {
737
- _writeUInt32(this, value, offset, true, noAssert)
738
- }
739
-
740
- Buffer.prototype.writeUInt32BE = function (value, offset, noAssert) {
741
- _writeUInt32(this, value, offset, false, noAssert)
742
- }
743
-
744
- Buffer.prototype.writeInt8 = function (value, offset, noAssert) {
745
- if (!noAssert) {
746
- assert(value !== undefined && value !== null, 'missing value')
747
- assert(offset !== undefined && offset !== null, 'missing offset')
748
- assert(offset < this.length, 'Trying to write beyond buffer length')
749
- verifsint(value, 0x7f, -0x80)
750
- }
751
-
752
- if (offset >= this.length)
753
- return
754
-
755
- if (value >= 0)
756
- this.writeUInt8(value, offset, noAssert)
757
- else
758
- this.writeUInt8(0xff + value + 1, offset, noAssert)
759
- }
760
-
761
- function _writeInt16 (buf, value, offset, littleEndian, noAssert) {
762
- if (!noAssert) {
763
- assert(value !== undefined && value !== null, 'missing value')
764
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
765
- assert(offset !== undefined && offset !== null, 'missing offset')
766
- assert(offset + 1 < buf.length, 'Trying to write beyond buffer length')
767
- verifsint(value, 0x7fff, -0x8000)
768
- }
769
-
770
- var len = buf.length
771
- if (offset >= len)
772
- return
773
-
774
- if (value >= 0)
775
- _writeUInt16(buf, value, offset, littleEndian, noAssert)
776
- else
777
- _writeUInt16(buf, 0xffff + value + 1, offset, littleEndian, noAssert)
778
- }
779
-
780
- Buffer.prototype.writeInt16LE = function (value, offset, noAssert) {
781
- _writeInt16(this, value, offset, true, noAssert)
782
- }
783
-
784
- Buffer.prototype.writeInt16BE = function (value, offset, noAssert) {
785
- _writeInt16(this, value, offset, false, noAssert)
786
- }
787
-
788
- function _writeInt32 (buf, value, offset, littleEndian, noAssert) {
789
- if (!noAssert) {
790
- assert(value !== undefined && value !== null, 'missing value')
791
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
792
- assert(offset !== undefined && offset !== null, 'missing offset')
793
- assert(offset + 3 < buf.length, 'Trying to write beyond buffer length')
794
- verifsint(value, 0x7fffffff, -0x80000000)
795
- }
796
-
797
- var len = buf.length
798
- if (offset >= len)
799
- return
800
-
801
- if (value >= 0)
802
- _writeUInt32(buf, value, offset, littleEndian, noAssert)
803
- else
804
- _writeUInt32(buf, 0xffffffff + value + 1, offset, littleEndian, noAssert)
805
- }
806
-
807
- Buffer.prototype.writeInt32LE = function (value, offset, noAssert) {
808
- _writeInt32(this, value, offset, true, noAssert)
809
- }
810
-
811
- Buffer.prototype.writeInt32BE = function (value, offset, noAssert) {
812
- _writeInt32(this, value, offset, false, noAssert)
813
- }
814
-
815
- function _writeFloat (buf, value, offset, littleEndian, noAssert) {
816
- if (!noAssert) {
817
- assert(value !== undefined && value !== null, 'missing value')
818
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
819
- assert(offset !== undefined && offset !== null, 'missing offset')
820
- assert(offset + 3 < buf.length, 'Trying to write beyond buffer length')
821
- verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38)
822
- }
823
-
824
- var len = buf.length
825
- if (offset >= len)
826
- return
827
-
828
- ieee754.write(buf, value, offset, littleEndian, 23, 4)
829
- }
830
-
831
- Buffer.prototype.writeFloatLE = function (value, offset, noAssert) {
832
- _writeFloat(this, value, offset, true, noAssert)
833
- }
834
-
835
- Buffer.prototype.writeFloatBE = function (value, offset, noAssert) {
836
- _writeFloat(this, value, offset, false, noAssert)
837
- }
838
-
839
- function _writeDouble (buf, value, offset, littleEndian, noAssert) {
840
- if (!noAssert) {
841
- assert(value !== undefined && value !== null, 'missing value')
842
- assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
843
- assert(offset !== undefined && offset !== null, 'missing offset')
844
- assert(offset + 7 < buf.length,
845
- 'Trying to write beyond buffer length')
846
- verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308)
847
- }
848
-
849
- var len = buf.length
850
- if (offset >= len)
851
- return
852
-
853
- ieee754.write(buf, value, offset, littleEndian, 52, 8)
854
- }
855
-
856
- Buffer.prototype.writeDoubleLE = function (value, offset, noAssert) {
857
- _writeDouble(this, value, offset, true, noAssert)
858
- }
859
-
860
- Buffer.prototype.writeDoubleBE = function (value, offset, noAssert) {
861
- _writeDouble(this, value, offset, false, noAssert)
862
- }
863
-
864
- // fill(value, start=0, end=buffer.length)
865
- Buffer.prototype.fill = function (value, start, end) {
866
- if (!value) value = 0
867
- if (!start) start = 0
868
- if (!end) end = this.length
869
-
870
- if (typeof value === 'string') {
871
- value = value.charCodeAt(0)
872
- }
873
-
874
- assert(typeof value === 'number' && !isNaN(value), 'value is not a number')
875
- assert(end >= start, 'end < start')
876
-
877
- // Fill 0 bytes; we're done
878
- if (end === start) return
879
- if (this.length === 0) return
880
-
881
- assert(start >= 0 && start < this.length, 'start out of bounds')
882
- assert(end >= 0 && end <= this.length, 'end out of bounds')
883
-
884
- for (var i = start; i < end; i++) {
885
- this[i] = value
886
- }
887
- }
888
-
889
- Buffer.prototype.inspect = function () {
890
- var out = []
891
- var len = this.length
892
- for (var i = 0; i < len; i++) {
893
- out[i] = toHex(this[i])
894
- if (i === exports.INSPECT_MAX_BYTES) {
895
- out[i + 1] = '...'
896
- break
897
- }
898
- }
899
- return '<Buffer ' + out.join(' ') + '>'
900
- }
901
-
902
- /**
903
- * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
904
- * Added in Node 0.12. Only available in browsers that support ArrayBuffer.
905
- */
906
- Buffer.prototype.toArrayBuffer = function () {
907
- if (typeof Uint8Array !== 'undefined') {
908
- if (Buffer._useTypedArrays) {
909
- return (new Buffer(this)).buffer
910
- } else {
911
- var buf = new Uint8Array(this.length)
912
- for (var i = 0, len = buf.length; i < len; i += 1)
913
- buf[i] = this[i]
914
- return buf.buffer
915
- }
916
- } else {
917
- throw new Error('Buffer.toArrayBuffer not supported in this browser')
918
- }
919
- }
920
-
921
- // HELPER FUNCTIONS
922
- // ================
923
-
924
- function stringtrim (str) {
925
- if (str.trim) return str.trim()
926
- return str.replace(/^\s+|\s+$/g, '')
927
- }
928
-
929
- var BP = Buffer.prototype
930
-
931
- /**
932
- * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
933
- */
934
- Buffer._augment = function (arr) {
935
- arr._isBuffer = true
936
-
937
- // save reference to original Uint8Array get/set methods before overwriting
938
- arr._get = arr.get
939
- arr._set = arr.set
940
-
941
- // deprecated, will be removed in node 0.13+
942
- arr.get = BP.get
943
- arr.set = BP.set
944
-
945
- arr.write = BP.write
946
- arr.toString = BP.toString
947
- arr.toLocaleString = BP.toString
948
- arr.toJSON = BP.toJSON
949
- arr.copy = BP.copy
950
- arr.slice = BP.slice
951
- arr.readUInt8 = BP.readUInt8
952
- arr.readUInt16LE = BP.readUInt16LE
953
- arr.readUInt16BE = BP.readUInt16BE
954
- arr.readUInt32LE = BP.readUInt32LE
955
- arr.readUInt32BE = BP.readUInt32BE
956
- arr.readInt8 = BP.readInt8
957
- arr.readInt16LE = BP.readInt16LE
958
- arr.readInt16BE = BP.readInt16BE
959
- arr.readInt32LE = BP.readInt32LE
960
- arr.readInt32BE = BP.readInt32BE
961
- arr.readFloatLE = BP.readFloatLE
962
- arr.readFloatBE = BP.readFloatBE
963
- arr.readDoubleLE = BP.readDoubleLE
964
- arr.readDoubleBE = BP.readDoubleBE
965
- arr.writeUInt8 = BP.writeUInt8
966
- arr.writeUInt16LE = BP.writeUInt16LE
967
- arr.writeUInt16BE = BP.writeUInt16BE
968
- arr.writeUInt32LE = BP.writeUInt32LE
969
- arr.writeUInt32BE = BP.writeUInt32BE
970
- arr.writeInt8 = BP.writeInt8
971
- arr.writeInt16LE = BP.writeInt16LE
972
- arr.writeInt16BE = BP.writeInt16BE
973
- arr.writeInt32LE = BP.writeInt32LE
974
- arr.writeInt32BE = BP.writeInt32BE
975
- arr.writeFloatLE = BP.writeFloatLE
976
- arr.writeFloatBE = BP.writeFloatBE
977
- arr.writeDoubleLE = BP.writeDoubleLE
978
- arr.writeDoubleBE = BP.writeDoubleBE
979
- arr.fill = BP.fill
980
- arr.inspect = BP.inspect
981
- arr.toArrayBuffer = BP.toArrayBuffer
982
-
983
- return arr
984
- }
985
-
986
- // slice(start, end)
987
- function clamp (index, len, defaultValue) {
988
- if (typeof index !== 'number') return defaultValue
989
- index = ~~index; // Coerce to integer.
990
- if (index >= len) return len
991
- if (index >= 0) return index
992
- index += len
993
- if (index >= 0) return index
994
- return 0
995
- }
996
-
997
- function coerce (length) {
998
- // Coerce length to a number (possibly NaN), round up
999
- // in case it's fractional (e.g. 123.456) then do a
1000
- // double negate to coerce a NaN to 0. Easy, right?
1001
- length = ~~Math.ceil(+length)
1002
- return length < 0 ? 0 : length
1003
- }
1004
-
1005
- function isArray (subject) {
1006
- return (Array.isArray || function (subject) {
1007
- return Object.prototype.toString.call(subject) === '[object Array]'
1008
- })(subject)
1009
- }
1010
-
1011
- function isArrayish (subject) {
1012
- return isArray(subject) || Buffer.isBuffer(subject) ||
1013
- subject && typeof subject === 'object' &&
1014
- typeof subject.length === 'number'
1015
- }
1016
-
1017
- function toHex (n) {
1018
- if (n < 16) return '0' + n.toString(16)
1019
- return n.toString(16)
1020
- }
1021
-
1022
- function utf8ToBytes (str) {
1023
- var byteArray = []
1024
- for (var i = 0; i < str.length; i++) {
1025
- var b = str.charCodeAt(i)
1026
- if (b <= 0x7F)
1027
- byteArray.push(str.charCodeAt(i))
1028
- else {
1029
- var start = i
1030
- if (b >= 0xD800 && b <= 0xDFFF) i++
1031
- var h = encodeURIComponent(str.slice(start, i+1)).substr(1).split('%')
1032
- for (var j = 0; j < h.length; j++)
1033
- byteArray.push(parseInt(h[j], 16))
1034
- }
1035
- }
1036
- return byteArray
1037
- }
1038
-
1039
- function asciiToBytes (str) {
1040
- var byteArray = []
1041
- for (var i = 0; i < str.length; i++) {
1042
- // Node's code seems to be doing this and not & 0x7F..
1043
- byteArray.push(str.charCodeAt(i) & 0xFF)
1044
- }
1045
- return byteArray
1046
- }
1047
-
1048
- function utf16leToBytes (str) {
1049
- var c, hi, lo
1050
- var byteArray = []
1051
- for (var i = 0; i < str.length; i++) {
1052
- c = str.charCodeAt(i)
1053
- hi = c >> 8
1054
- lo = c % 256
1055
- byteArray.push(lo)
1056
- byteArray.push(hi)
1057
- }
1058
-
1059
- return byteArray
1060
- }
1061
-
1062
- function base64ToBytes (str) {
1063
- return base64.toByteArray(str)
1064
- }
1065
-
1066
- function blitBuffer (src, dst, offset, length) {
1067
- var pos
1068
- for (var i = 0; i < length; i++) {
1069
- if ((i + offset >= dst.length) || (i >= src.length))
1070
- break
1071
- dst[i + offset] = src[i]
1072
- }
1073
- return i
1074
- }
1075
-
1076
- function decodeUtf8Char (str) {
1077
- try {
1078
- return decodeURIComponent(str)
1079
- } catch (err) {
1080
- return String.fromCharCode(0xFFFD) // UTF 8 invalid char
1081
- }
1082
- }
1083
-
1084
- /*
1085
- * We have to make sure that the value is a valid integer. This means that it
1086
- * is non-negative. It has no fractional component and that it does not
1087
- * exceed the maximum allowed value.
1088
- */
1089
- function verifuint (value, max) {
1090
- assert(typeof value === 'number', 'cannot write a non-number as a number')
1091
- assert(value >= 0, 'specified a negative value for writing an unsigned value')
1092
- assert(value <= max, 'value is larger than maximum value for type')
1093
- assert(Math.floor(value) === value, 'value has a fractional component')
1094
- }
1095
-
1096
- function verifsint (value, max, min) {
1097
- assert(typeof value === 'number', 'cannot write a non-number as a number')
1098
- assert(value <= max, 'value larger than maximum allowed value')
1099
- assert(value >= min, 'value smaller than minimum allowed value')
1100
- assert(Math.floor(value) === value, 'value has a fractional component')
1101
- }
1102
-
1103
- function verifIEEE754 (value, max, min) {
1104
- assert(typeof value === 'number', 'cannot write a non-number as a number')
1105
- assert(value <= max, 'value larger than maximum allowed value')
1106
- assert(value >= min, 'value smaller than minimum allowed value')
1107
- }
1108
-
1109
- function assert (test, message) {
1110
- if (!test) throw new Error(message || 'Failed assertion')
1111
- }
1112
-
1113
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer/index.js","/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer")
1114
- },{"base64-js":2,"buffer":1,"ieee754":3,"oMfpAn":4}],2:[function(require,module,exports){
1115
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1116
- var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
1117
-
1118
- ;(function (exports) {
1119
- 'use strict';
1120
-
1121
- var Arr = (typeof Uint8Array !== 'undefined')
1122
- ? Uint8Array
1123
- : Array
1124
-
1125
- var PLUS = '+'.charCodeAt(0)
1126
- var SLASH = '/'.charCodeAt(0)
1127
- var NUMBER = '0'.charCodeAt(0)
1128
- var LOWER = 'a'.charCodeAt(0)
1129
- var UPPER = 'A'.charCodeAt(0)
1130
- var PLUS_URL_SAFE = '-'.charCodeAt(0)
1131
- var SLASH_URL_SAFE = '_'.charCodeAt(0)
1132
-
1133
- function decode (elt) {
1134
- var code = elt.charCodeAt(0)
1135
- if (code === PLUS ||
1136
- code === PLUS_URL_SAFE)
1137
- return 62 // '+'
1138
- if (code === SLASH ||
1139
- code === SLASH_URL_SAFE)
1140
- return 63 // '/'
1141
- if (code < NUMBER)
1142
- return -1 //no match
1143
- if (code < NUMBER + 10)
1144
- return code - NUMBER + 26 + 26
1145
- if (code < UPPER + 26)
1146
- return code - UPPER
1147
- if (code < LOWER + 26)
1148
- return code - LOWER + 26
1149
- }
1150
-
1151
- function b64ToByteArray (b64) {
1152
- var i, j, l, tmp, placeHolders, arr
1153
-
1154
- if (b64.length % 4 > 0) {
1155
- throw new Error('Invalid string. Length must be a multiple of 4')
1156
- }
1157
-
1158
- // the number of equal signs (place holders)
1159
- // if there are two placeholders, than the two characters before it
1160
- // represent one byte
1161
- // if there is only one, then the three characters before it represent 2 bytes
1162
- // this is just a cheap hack to not do indexOf twice
1163
- var len = b64.length
1164
- placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0
1165
-
1166
- // base64 is 4/3 + up to two characters of the original data
1167
- arr = new Arr(b64.length * 3 / 4 - placeHolders)
1168
-
1169
- // if there are placeholders, only get up to the last complete 4 chars
1170
- l = placeHolders > 0 ? b64.length - 4 : b64.length
1171
-
1172
- var L = 0
1173
-
1174
- function push (v) {
1175
- arr[L++] = v
1176
- }
1177
-
1178
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
1179
- tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))
1180
- push((tmp & 0xFF0000) >> 16)
1181
- push((tmp & 0xFF00) >> 8)
1182
- push(tmp & 0xFF)
1183
- }
1184
-
1185
- if (placeHolders === 2) {
1186
- tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)
1187
- push(tmp & 0xFF)
1188
- } else if (placeHolders === 1) {
1189
- tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)
1190
- push((tmp >> 8) & 0xFF)
1191
- push(tmp & 0xFF)
1192
- }
1193
-
1194
- return arr
1195
- }
1196
-
1197
- function uint8ToBase64 (uint8) {
1198
- var i,
1199
- extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
1200
- output = "",
1201
- temp, length
1202
-
1203
- function encode (num) {
1204
- return lookup.charAt(num)
1205
- }
1206
-
1207
- function tripletToBase64 (num) {
1208
- return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)
1209
- }
1210
-
1211
- // go through the array every three bytes, we'll deal with trailing stuff later
1212
- for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
1213
- temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
1214
- output += tripletToBase64(temp)
1215
- }
1216
-
1217
- // pad the end with zeros, but make sure to not forget the extra bytes
1218
- switch (extraBytes) {
1219
- case 1:
1220
- temp = uint8[uint8.length - 1]
1221
- output += encode(temp >> 2)
1222
- output += encode((temp << 4) & 0x3F)
1223
- output += '=='
1224
- break
1225
- case 2:
1226
- temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])
1227
- output += encode(temp >> 10)
1228
- output += encode((temp >> 4) & 0x3F)
1229
- output += encode((temp << 2) & 0x3F)
1230
- output += '='
1231
- break
1232
- }
1233
-
1234
- return output
1235
- }
1236
-
1237
- exports.toByteArray = b64ToByteArray
1238
- exports.fromByteArray = uint8ToBase64
1239
- }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
1240
-
1241
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer/node_modules/base64-js/lib/b64.js","/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer/node_modules/base64-js/lib")
1242
- },{"buffer":1,"oMfpAn":4}],3:[function(require,module,exports){
1243
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1244
- exports.read = function (buffer, offset, isLE, mLen, nBytes) {
1245
- var e, m
1246
- var eLen = nBytes * 8 - mLen - 1
1247
- var eMax = (1 << eLen) - 1
1248
- var eBias = eMax >> 1
1249
- var nBits = -7
1250
- var i = isLE ? (nBytes - 1) : 0
1251
- var d = isLE ? -1 : 1
1252
- var s = buffer[offset + i]
1253
-
1254
- i += d
1255
-
1256
- e = s & ((1 << (-nBits)) - 1)
1257
- s >>= (-nBits)
1258
- nBits += eLen
1259
- for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
1260
-
1261
- m = e & ((1 << (-nBits)) - 1)
1262
- e >>= (-nBits)
1263
- nBits += mLen
1264
- for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
1265
-
1266
- if (e === 0) {
1267
- e = 1 - eBias
1268
- } else if (e === eMax) {
1269
- return m ? NaN : ((s ? -1 : 1) * Infinity)
1270
- } else {
1271
- m = m + Math.pow(2, mLen)
1272
- e = e - eBias
1273
- }
1274
- return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
1275
- }
1276
-
1277
- exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
1278
- var e, m, c
1279
- var eLen = nBytes * 8 - mLen - 1
1280
- var eMax = (1 << eLen) - 1
1281
- var eBias = eMax >> 1
1282
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
1283
- var i = isLE ? 0 : (nBytes - 1)
1284
- var d = isLE ? 1 : -1
1285
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
1286
-
1287
- value = Math.abs(value)
1288
-
1289
- if (isNaN(value) || value === Infinity) {
1290
- m = isNaN(value) ? 1 : 0
1291
- e = eMax
1292
- } else {
1293
- e = Math.floor(Math.log(value) / Math.LN2)
1294
- if (value * (c = Math.pow(2, -e)) < 1) {
1295
- e--
1296
- c *= 2
1297
- }
1298
- if (e + eBias >= 1) {
1299
- value += rt / c
1300
- } else {
1301
- value += rt * Math.pow(2, 1 - eBias)
1302
- }
1303
- if (value * c >= 2) {
1304
- e++
1305
- c /= 2
1306
- }
1307
-
1308
- if (e + eBias >= eMax) {
1309
- m = 0
1310
- e = eMax
1311
- } else if (e + eBias >= 1) {
1312
- m = (value * c - 1) * Math.pow(2, mLen)
1313
- e = e + eBias
1314
- } else {
1315
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
1316
- e = 0
1317
- }
1318
- }
1319
-
1320
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
1321
-
1322
- e = (e << mLen) | m
1323
- eLen += mLen
1324
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
1325
-
1326
- buffer[offset + i - d] |= s * 128
1327
- }
1328
-
1329
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer/node_modules/ieee754/index.js","/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/buffer/node_modules/ieee754")
1330
- },{"buffer":1,"oMfpAn":4}],4:[function(require,module,exports){
1331
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1332
- // shim for using process in browser
1333
-
1334
- var process = module.exports = {};
1335
-
1336
- process.nextTick = (function () {
1337
- var canSetImmediate = typeof window !== 'undefined'
1338
- && window.setImmediate;
1339
- var canPost = typeof window !== 'undefined'
1340
- && window.postMessage && window.addEventListener
1341
- ;
1342
-
1343
- if (canSetImmediate) {
1344
- return function (f) { return window.setImmediate(f) };
1345
- }
1346
-
1347
- if (canPost) {
1348
- var queue = [];
1349
- window.addEventListener('message', function (ev) {
1350
- var source = ev.source;
1351
- if ((source === window || source === null) && ev.data === 'process-tick') {
1352
- ev.stopPropagation();
1353
- if (queue.length > 0) {
1354
- var fn = queue.shift();
1355
- fn();
1356
- }
1357
- }
1358
- }, true);
1359
-
1360
- return function nextTick(fn) {
1361
- queue.push(fn);
1362
- window.postMessage('process-tick', '*');
1363
- };
1364
- }
1365
-
1366
- return function nextTick(fn) {
1367
- setTimeout(fn, 0);
1368
- };
1369
- })();
1370
-
1371
- process.title = 'browser';
1372
- process.browser = true;
1373
- process.env = {};
1374
- process.argv = [];
1375
-
1376
- function noop() {}
1377
-
1378
- process.on = noop;
1379
- process.addListener = noop;
1380
- process.once = noop;
1381
- process.off = noop;
1382
- process.removeListener = noop;
1383
- process.removeAllListeners = noop;
1384
- process.emit = noop;
1385
-
1386
- process.binding = function (name) {
1387
- throw new Error('process.binding is not supported');
1388
- }
1389
-
1390
- // TODO(shtylman)
1391
- process.cwd = function () { return '/' };
1392
- process.chdir = function (dir) {
1393
- throw new Error('process.chdir is not supported');
1394
- };
1395
-
1396
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/process/browser.js","/../../node_modules/gulp-browserify/node_modules/browserify/node_modules/process")
1397
- },{"buffer":1,"oMfpAn":4}],5:[function(require,module,exports){
1398
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1399
- 'use strict';
1400
-
1401
- var url = require('./url'),
1402
- cap = require('./util').cap;
1403
-
1404
- var $ = jQuery,
1405
- IFRAME_HEIGHT_DEFAULT = 300,
1406
- IFRAME_HEIGHT_MIN = 100,
1407
- IFRAME_HEIGHT_MAX = 3000,
1408
- players = {},
1409
- firstPlayer = true,
1410
- metadataList = 'pwp_metadata',
1411
- // autoplay = url.getFragment('autoplay'),
1412
- timerange = url.checkCurrent(); // timecode
1413
-
1414
- var options; // global options
1415
-
1416
- function checkBoundaries(value, min, max) {
1417
- return (value < min || value > max);
1418
- }
1419
-
1420
- /**
1421
- * Sanitize player height
1422
- * @param {Number} height Iframe height
1423
- * @returns {Number} sanitized height
1424
- */
1425
- function getPlayerHeight(height) {
1426
- if (!height || isNaN(height)) {
1427
- console.warn('Set frame height to default');
1428
- return IFRAME_HEIGHT_DEFAULT;
1429
- }
1430
- if (!checkBoundaries(height, IFRAME_HEIGHT_MIN, IFRAME_HEIGHT_MAX)) {
1431
- console.warn('Frame height', height, 'out of bounds.');
1432
- }
1433
- return cap(height, IFRAME_HEIGHT_MIN, IFRAME_HEIGHT_MAX);
1434
- }
1435
-
1436
- /**
1437
- * Sanitize player width
1438
- * @returns {string} defaults to '100%'
1439
- */
1440
- function getPlayerWidth() {
1441
- return '100%';
1442
- }
1443
-
1444
- /**
1445
- * strip hash from location
1446
- * @param {string} location
1447
- * @returns {string}
1448
- */
1449
- function getIdFromLocation(location) {
1450
- var href = location.href,
1451
- hashPosition = href.indexOf('#'),
1452
- to = href.length;
1453
-
1454
- if (hashPosition >= 0) {
1455
- to = hashPosition;
1456
- }
1457
-
1458
- return href.substring(0, to);
1459
- }
1460
-
1461
- function getStaticEmbedPageSource(id) {
1462
- if (!options.staticEmbedPage) { throw new Error('"staticEmbedPage" parameter missing.'); }
1463
- return options.staticEmbedPage + '?' + id;
1464
- }
1465
-
1466
- function getIframeReplacement() {
1467
- /*jshint validthis:true */
1468
- var $frame, frame, data;
1469
- var $element = $(this);
1470
- var source = $element.data('podlove-web-player-source');
1471
-
1472
- if (!source) {
1473
- var elementId = $element.get(0).id;
1474
- if (!elementId) { throw new Error('Element without source set needs an ID'); }
1475
- source = getStaticEmbedPageSource(elementId);
1476
- data = window[metadataList][elementId];
1477
- if (!data) { throw new Error('No data found for "' + elementId + '"'); }
1478
- }
1479
-
1480
- if (firstPlayer && timerange[0]) {
1481
- firstPlayer = false;
1482
- source += '#t=' + url.getFragment('t');
1483
- }
1484
-
1485
- $frame = $('<iframe>', {
1486
- src: source,
1487
- height: getPlayerHeight($element.data('podlove-web-player-height')),
1488
- width: getPlayerWidth($element.data('podlove-web-player-width')),
1489
- className: 'podlove-webplayer-frame',
1490
- css: {
1491
- border: 'none',
1492
- overflow: 'hidden'
1493
- }
1494
- });
1495
-
1496
- frame = $frame.get(0);
1497
-
1498
- // register player frame
1499
- players[frame.src] = {
1500
- data: data,
1501
- frame: $frame,
1502
- state: -1
1503
- };
1504
- console.info('registered player with src=', frame.src);
1505
-
1506
- return $frame;
1507
- }
1508
-
1509
- /**
1510
- * Pause all registered players except the one with the given ID
1511
- * @param {String} currentPlayerId
1512
- */
1513
- function pausePlayersExceptOne(currentPlayerId) {
1514
- var playerData, playerId, message = {action: 'pause'};
1515
- for (playerId in players) {
1516
- if (playerId === currentPlayerId || !players.hasOwnProperty(playerId)) {
1517
- continue;
1518
- }
1519
- playerData = players[playerId];
1520
- if (playerData.state === 0) {
1521
- continue;
1522
- } // nothing to do, it is already paused
1523
-
1524
- playerData.frame.get(0).contentWindow.postMessage(message, playerId);
1525
- }
1526
- }
1527
-
1528
- /**
1529
- * decide what to do with a received message
1530
- * @param {jQuery.Event} event
1531
- */
1532
- function handleMessage(event) {
1533
- // discard hash - it changes along with the time media is played
1534
- var originalEvent = event.originalEvent,
1535
- data = originalEvent.data,
1536
- action = data.action,
1537
- argumentObject = data.arg,
1538
- id = getIdFromLocation(originalEvent.source.location),
1539
- player = players[id];
1540
-
1541
- console.debug('received message', action, argumentObject);
1542
-
1543
- if (!player) {
1544
- console.log('no player found with src=', id);
1545
- return;
1546
- }
1547
-
1548
- if (action === null || argumentObject === null) {
1549
- console.warn('no action or data was given');
1550
- return;
1551
- }
1552
-
1553
- console.debug('received', action, 'from', id, 'with', argumentObject);
1554
-
1555
- if (action === 'waiting') {
1556
- player.frame.get(0).contentWindow.postMessage({playerOptions: player.data}, '*');
1557
- }
1558
-
1559
- if (action === 'ready' || action === 'pause') {
1560
- player.state = 0;
1561
- }
1562
-
1563
- if (action === 'play') {
1564
- player.state = 1;
1565
- pausePlayersExceptOne(id);
1566
- }
1567
-
1568
- if (action === 'resize') {
1569
- player.frame.height(getPlayerHeight(argumentObject));
1570
- }
1571
- }
1572
-
1573
- // receive messages from embedded players
1574
- $(window).on('message', handleMessage);
1575
-
1576
- /**
1577
- * Replace selection of nodes with embedded podlove webplayers and register them internally
1578
- * @param {object} opts
1579
- * @returns {jQuery} jQuery extended HTMLIFrameElement
1580
- */
1581
- $.fn.podlovewebplayer = function (opts) {
1582
- options = opts || {};
1583
- return this.replaceWith(getIframeReplacement);
1584
- };
1585
-
1586
- window.pwp = {
1587
- players: players
1588
- };
1589
-
1590
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_504f6cc7.js","/")
1591
- },{"./url":7,"./util":8,"buffer":1,"oMfpAn":4}],6:[function(require,module,exports){
1592
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1593
- 'use strict';
1594
-
1595
- var zeroFill = require('./util').zeroFill;
1596
-
1597
- /**
1598
- * Timecode as described in http://podlove.org/deep-link/
1599
- * and http://www.w3.org/TR/media-frags/#fragment-dimensions
1600
- */
1601
- var timeCodeMatcher = /(?:(\d+):)?(\d{1,2}):(\d\d)(\.\d{1,3})?/;
1602
-
1603
- /**
1604
- * convert an array of string to timecode
1605
- * @param {string} tc
1606
- * @returns {number|boolean}
1607
- */
1608
- function extractTime(tc) {
1609
- if (!tc) {
1610
- return false;
1611
- }
1612
- var parts = timeCodeMatcher.exec(tc);
1613
- if (!parts) {
1614
- console.warn('Could not extract time from', tc);
1615
- return false;
1616
- }
1617
- var time = 0;
1618
- // hours
1619
- time += parts[1] ? parseInt(parts[1], 10) * 60 * 60 : 0;
1620
- // minutes
1621
- time += parseInt(parts[2], 10) * 60;
1622
- // seconds
1623
- time += parseInt(parts[3], 10);
1624
- // milliseconds
1625
- time += parts[4] ? parseFloat(parts[4]) : 0;
1626
- // no negative time
1627
- time = Math.max(time, 0);
1628
- return time;
1629
- }
1630
-
1631
- /**
1632
- * convert a timestamp to a timecode in ${insert RFC here} format
1633
- * @param {Number} time
1634
- * @param {Boolean} leadingZeros
1635
- * @param {Boolean} [forceHours] force output of hours, defaults to false
1636
- * @param {Boolean} [showMillis] output milliseconds separated with a dot from the seconds - defaults to false
1637
- * @return {string}
1638
- */
1639
- function ts2tc(time, leadingZeros, forceHours, showMillis) {
1640
- var hours, minutes, seconds, milliseconds;
1641
- var timecode = '';
1642
-
1643
- if (time === 0) {
1644
- return (forceHours ? '00:00:00' : '00:00');
1645
- }
1646
-
1647
- // prevent negative values from player
1648
- if (!time || time <= 0) {
1649
- return (forceHours ? '--:--:--' : '--:--');
1650
- }
1651
-
1652
- hours = Math.floor(time / 60 / 60);
1653
- minutes = Math.floor(time / 60) % 60;
1654
- seconds = Math.floor(time % 60) % 60;
1655
- milliseconds = Math.floor(time % 1 * 1000);
1656
-
1657
- if (showMillis && milliseconds) {
1658
- timecode = '.' + zeroFill(milliseconds, 3);
1659
- }
1660
-
1661
- timecode = ':' + zeroFill(seconds, 2) + timecode;
1662
-
1663
- if (hours === 0 && !forceHours && !leadingZeros ) {
1664
- return minutes.toString() + timecode;
1665
- }
1666
-
1667
- timecode = zeroFill(minutes, 2) + timecode;
1668
-
1669
- if (hours === 0 && !forceHours) {
1670
- // required (minutes : seconds)
1671
- return timecode;
1672
- }
1673
-
1674
- if (leadingZeros) {
1675
- return zeroFill(hours, 2) + ':' + timecode;
1676
- }
1677
-
1678
- return hours + ':' + timecode;
1679
- }
1680
-
1681
- module.exports = {
1682
-
1683
- /**
1684
- * convenience method for converting timestamps to
1685
- * @param {Number} timestamp
1686
- * @returns {String} timecode
1687
- */
1688
- fromTimeStamp: function (timestamp) {
1689
- return ts2tc(timestamp, true, true);
1690
- },
1691
-
1692
- /**
1693
- * accepts array with start and end time in seconds
1694
- * returns timecode in deep-linking format
1695
- * @param {Array} times
1696
- * @param {Boolean} leadingZeros
1697
- * @param {Boolean} [forceHours]
1698
- * @return {string}
1699
- */
1700
- generate: function (times, leadingZeros, forceHours) {
1701
- if (times[1] > 0 && times[1] < 9999999 && times[0] < times[1]) {
1702
- return ts2tc(times[0], leadingZeros, forceHours) + ',' + ts2tc(times[1], leadingZeros, forceHours);
1703
- }
1704
- return ts2tc(times[0], leadingZeros, forceHours);
1705
- },
1706
-
1707
- /**
1708
- * parses time code into seconds
1709
- * @param {String} timecode
1710
- * @return {Array}
1711
- */
1712
- parse: function (timecode) {
1713
- if (!timecode) {
1714
- return [false, false];
1715
- }
1716
-
1717
- var timeparts = timecode.split('-');
1718
-
1719
- if (!timeparts.length) {
1720
- console.warn('no timeparts:', timecode);
1721
- return [false, false];
1722
- }
1723
-
1724
- var startTime = extractTime(timeparts.shift());
1725
- var endTime = extractTime(timeparts.shift());
1726
-
1727
- return (endTime > startTime) ? [startTime, endTime] : [startTime, false];
1728
- },
1729
-
1730
- getStartTimeCode: function getStartTimecode(start) {
1731
- return this.parse(start)[0];
1732
- }
1733
- };
1734
-
1735
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/timecode.js","/")
1736
- },{"./util":8,"buffer":1,"oMfpAn":4}],7:[function(require,module,exports){
1737
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1738
- 'use strict';
1739
-
1740
- var tc = require('./timecode');
1741
-
1742
- /*
1743
- "t=1" [("t", "1")] simple case
1744
- "t=1&t=2" [("t", "1"), ("t", "2")] repeated name
1745
- "a=b=c" [("a", "b=c")] "=" in value
1746
- "a&b=c" [("a", ""), ("b", "c")] missing value
1747
- "%74=%6ept%3A%310" [("t", "npt:10")] unnecssary percent-encoding
1748
- "id=%xy&t=1" [("t", "1")] invalid percent-encoding
1749
- "id=%E4r&t=1" [("t", "1")] invalid UTF-8
1750
- */
1751
-
1752
- /**
1753
- * get the value of a specific URL hash fragment
1754
- * @param {string} key name of the fragment
1755
- * @returns {string|boolean} value of the fragment or false when not found in URL
1756
- */
1757
- function getFragment(key) {
1758
- var query = window.location.hash.substring(1),
1759
- pairs = query.split('&');
1760
-
1761
- if (query.indexOf(key) === -1) {
1762
- return false;
1763
- }
1764
-
1765
- for (var i = 0, l = pairs.length; i < l; i++) {
1766
- var pair = pairs[i].split('=');
1767
- if (pair[0] !== key) {
1768
- continue;
1769
- }
1770
- if (pair.length === 1) {
1771
- return true;
1772
- }
1773
- return decodeURIComponent(pair[1]);
1774
- }
1775
- return false;
1776
- }
1777
-
1778
- /**
1779
- * URL handling helpers
1780
- */
1781
- module.exports = {
1782
- getFragment: getFragment,
1783
- checkCurrent: function () {
1784
- var t = getFragment('t');
1785
- return tc.parse(t);
1786
- }
1787
- };
1788
-
1789
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/url.js","/")
1790
- },{"./timecode":6,"buffer":1,"oMfpAn":4}],8:[function(require,module,exports){
1791
- (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__filename,__dirname){
1792
- 'use strict';
1793
-
1794
- /**
1795
- * return new value in bounds of min and max
1796
- * @param {number} val any number
1797
- * @param {number} min lower boundary for val
1798
- * @param {number} max upper boundary for val
1799
- * @returns {number} resulting value
1800
- */
1801
- function cap(val, min, max) {
1802
- // cap x values
1803
- val = Math.max(val, min);
1804
- val = Math.min(val, max);
1805
- return val;
1806
- }
1807
-
1808
- /**
1809
- * return number as string lefthand filled with zeros
1810
- * @param {number} number (integer) value to be padded
1811
- * @param {number} width length of the string that is returned
1812
- * @returns {string} padded number
1813
- */
1814
- function zeroFill (number, width) {
1815
- var s = number.toString();
1816
- while (s.length < width) {
1817
- s = '0' + s;
1818
- }
1819
- return s;
1820
- }
1821
-
1822
- module.exports = {
1823
- cap: cap,
1824
- zeroFill: zeroFill
1825
- };
1826
-
1827
- }).call(this,require("oMfpAn"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/util.js","/")
1828
- },{"buffer":1,"oMfpAn":4}]},{},[5])
1829
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9saW5lMC9Qcm9qZWN0cy9Qb2Rsb3ZlL3BvZGxvdmUtd2ViLXBsYXllci9ub2RlX21vZHVsZXMvZ3VscC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvbGluZTAvUHJvamVjdHMvUG9kbG92ZS9wb2Rsb3ZlLXdlYi1wbGF5ZXIvbm9kZV9tb2R1bGVzL2d1bHAtYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwiL1VzZXJzL2xpbmUwL1Byb2plY3RzL1BvZGxvdmUvcG9kbG92ZS13ZWItcGxheWVyL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2xpYi9iNjQuanMiLCIvVXNlcnMvbGluZTAvUHJvamVjdHMvUG9kbG92ZS9wb2Rsb3ZlLXdlYi1wbGF5ZXIvbm9kZV9tb2R1bGVzL2d1bHAtYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9pZWVlNzU0L2luZGV4LmpzIiwiL1VzZXJzL2xpbmUwL1Byb2plY3RzL1BvZGxvdmUvcG9kbG92ZS13ZWItcGxheWVyL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIi9Vc2Vycy9saW5lMC9Qcm9qZWN0cy9Qb2Rsb3ZlL3BvZGxvdmUtd2ViLXBsYXllci9zcmMvanMvZmFrZV81MDRmNmNjNy5qcyIsIi9Vc2Vycy9saW5lMC9Qcm9qZWN0cy9Qb2Rsb3ZlL3BvZGxvdmUtd2ViLXBsYXllci9zcmMvanMvdGltZWNvZGUuanMiLCIvVXNlcnMvbGluZTAvUHJvamVjdHMvUG9kbG92ZS9wb2Rsb3ZlLXdlYi1wbGF5ZXIvc3JjL2pzL3VybC5qcyIsIi9Vc2Vycy9saW5lMC9Qcm9qZWN0cy9Qb2Rsb3ZlL3BvZGxvdmUtd2ViLXBsYXllci9zcmMvanMvdXRpbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdmxDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3Rocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIil9dmFyIGY9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGYuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sZixmLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIihmdW5jdGlvbiAocHJvY2VzcyxnbG9iYWwsQnVmZmVyLF9fYXJndW1lbnQwLF9fYXJndW1lbnQxLF9fYXJndW1lbnQyLF9fYXJndW1lbnQzLF9fZmlsZW5hbWUsX19kaXJuYW1lKXtcbi8qIVxuICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJ2Jhc2U2NC1qcycpXG52YXIgaWVlZTc1NCA9IHJlcXVpcmUoJ2llZWU3NTQnKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gQnVmZmVyXG5leHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTID0gNTBcbkJ1ZmZlci5wb29sU2l6ZSA9IDgxOTJcblxuLyoqXG4gKiBJZiBgQnVmZmVyLl91c2VUeXBlZEFycmF5c2A6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChjb21wYXRpYmxlIGRvd24gdG8gSUU2KVxuICovXG5CdWZmZXIuX3VzZVR5cGVkQXJyYXlzID0gKGZ1bmN0aW9uICgpIHtcbiAgLy8gRGV0ZWN0IGlmIGJyb3dzZXIgc3VwcG9ydHMgVHlwZWQgQXJyYXlzLiBTdXBwb3J0ZWQgYnJvd3NlcnMgYXJlIElFIDEwKywgRmlyZWZveCA0KyxcbiAgLy8gQ2hyb21lIDcrLCBTYWZhcmkgNS4xKywgT3BlcmEgMTEuNissIGlPUyA0LjIrLiBJZiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGFkZGluZ1xuICAvLyBwcm9wZXJ0aWVzIHRvIGBVaW50OEFycmF5YCBpbnN0YW5jZXMsIHRoZW4gdGhhdCdzIHRoZSBzYW1lIGFzIG5vIGBVaW50OEFycmF5YCBzdXBwb3J0XG4gIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBiZSBhYmxlIHRvIGFkZCBhbGwgdGhlIG5vZGUgQnVmZmVyIEFQSSBtZXRob2RzLiBUaGlzIGlzIGFuIGlzc3VlXG4gIC8vIGluIEZpcmVmb3ggNC0yOS4gTm93IGZpeGVkOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzhcbiAgdHJ5IHtcbiAgICB2YXIgYnVmID0gbmV3IEFycmF5QnVmZmVyKDApXG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KGJ1ZilcbiAgICBhcnIuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfVxuICAgIHJldHVybiA0MiA9PT0gYXJyLmZvbygpICYmXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgLy8gQ2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufSkoKVxuXG4vKipcbiAqIENsYXNzOiBCdWZmZXJcbiAqID09PT09PT09PT09PT1cbiAqXG4gKiBUaGUgQnVmZmVyIGNvbnN0cnVjdG9yIHJldHVybnMgaW5zdGFuY2VzIG9mIGBVaW50OEFycmF5YCB0aGF0IGFyZSBhdWdtZW50ZWRcbiAqIHdpdGggZnVuY3Rpb24gcHJvcGVydGllcyBmb3IgYWxsIHRoZSBub2RlIGBCdWZmZXJgIEFQSSBmdW5jdGlvbnMuIFdlIHVzZVxuICogYFVpbnQ4QXJyYXlgIHNvIHRoYXQgc3F1YXJlIGJyYWNrZXQgbm90YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgLS0gaXQgcmV0dXJuc1xuICogYSBzaW5nbGUgb2N0ZXQuXG4gKlxuICogQnkgYXVnbWVudGluZyB0aGUgaW5zdGFuY2VzLCB3ZSBjYW4gYXZvaWQgbW9kaWZ5aW5nIHRoZSBgVWludDhBcnJheWBcbiAqIHByb3RvdHlwZS5cbiAqL1xuZnVuY3Rpb24gQnVmZmVyIChzdWJqZWN0LCBlbmNvZGluZywgbm9aZXJvKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKVxuICAgIHJldHVybiBuZXcgQnVmZmVyKHN1YmplY3QsIGVuY29kaW5nLCBub1plcm8pXG5cbiAgdmFyIHR5cGUgPSB0eXBlb2Ygc3ViamVjdFxuXG4gIC8vIFdvcmthcm91bmQ6IG5vZGUncyBiYXNlNjQgaW1wbGVtZW50YXRpb24gYWxsb3dzIGZvciBub24tcGFkZGVkIHN0cmluZ3NcbiAgLy8gd2hpbGUgYmFzZTY0LWpzIGRvZXMgbm90LlxuICBpZiAoZW5jb2RpbmcgPT09ICdiYXNlNjQnICYmIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgc3ViamVjdCA9IHN0cmluZ3RyaW0oc3ViamVjdClcbiAgICB3aGlsZSAoc3ViamVjdC5sZW5ndGggJSA0ICE9PSAwKSB7XG4gICAgICBzdWJqZWN0ID0gc3ViamVjdCArICc9J1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbmQgdGhlIGxlbmd0aFxuICB2YXIgbGVuZ3RoXG4gIGlmICh0eXBlID09PSAnbnVtYmVyJylcbiAgICBsZW5ndGggPSBjb2VyY2Uoc3ViamVjdClcbiAgZWxzZSBpZiAodHlwZSA9PT0gJ3N0cmluZycpXG4gICAgbGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgoc3ViamVjdCwgZW5jb2RpbmcpXG4gIGVsc2UgaWYgKHR5cGUgPT09ICdvYmplY3QnKVxuICAgIGxlbmd0aCA9IGNvZXJjZShzdWJqZWN0Lmxlbmd0aCkgLy8gYXNzdW1lIHRoYXQgb2JqZWN0IGlzIGFycmF5LWxpa2VcbiAgZWxzZVxuICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgYXJndW1lbnQgbmVlZHMgdG8gYmUgYSBudW1iZXIsIGFycmF5IG9yIHN0cmluZy4nKVxuXG4gIHZhciBidWZcbiAgaWYgKEJ1ZmZlci5fdXNlVHlwZWRBcnJheXMpIHtcbiAgICAvLyBQcmVmZXJyZWQ6IFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgYnVmID0gQnVmZmVyLl9hdWdtZW50KG5ldyBVaW50OEFycmF5KGxlbmd0aCkpXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBUSElTIGluc3RhbmNlIG9mIEJ1ZmZlciAoY3JlYXRlZCBieSBgbmV3YClcbiAgICBidWYgPSB0aGlzXG4gICAgYnVmLmxlbmd0aCA9IGxlbmd0aFxuICAgIGJ1Zi5faXNCdWZmZXIgPSB0cnVlXG4gIH1cblxuICB2YXIgaVxuICBpZiAoQnVmZmVyLl91c2VUeXBlZEFycmF5cyAmJiB0eXBlb2Ygc3ViamVjdC5ieXRlTGVuZ3RoID09PSAnbnVtYmVyJykge1xuICAgIC8vIFNwZWVkIG9wdGltaXphdGlvbiAtLSB1c2Ugc2V0IGlmIHdlJ3JlIGNvcHlpbmcgZnJvbSBhIHR5cGVkIGFycmF5XG4gICAgYnVmLl9zZXQoc3ViamVjdClcbiAgfSBlbHNlIGlmIChpc0FycmF5aXNoKHN1YmplY3QpKSB7XG4gICAgLy8gVHJlYXQgYXJyYXktaXNoIG9iamVjdHMgYXMgYSBieXRlIGFycmF5XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHN1YmplY3QpKVxuICAgICAgICBidWZbaV0gPSBzdWJqZWN0LnJlYWRVSW50OChpKVxuICAgICAgZWxzZVxuICAgICAgICBidWZbaV0gPSBzdWJqZWN0W2ldXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgYnVmLndyaXRlKHN1YmplY3QsIDAsIGVuY29kaW5nKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmICFCdWZmZXIuX3VzZVR5cGVkQXJyYXlzICYmICFub1plcm8pIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ1ZltpXSA9IDBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnVmXG59XG5cbi8vIFNUQVRJQyBNRVRIT0RTXG4vLyA9PT09PT09PT09PT09PVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgY2FzZSAncmF3JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmlzQnVmZmVyID0gZnVuY3Rpb24gKGIpIHtcbiAgcmV0dXJuICEhKGIgIT09IG51bGwgJiYgYiAhPT0gdW5kZWZpbmVkICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGZ1bmN0aW9uIChzdHIsIGVuY29kaW5nKSB7XG4gIHZhciByZXRcbiAgc3RyID0gc3RyICsgJydcbiAgc3dpdGNoIChlbmNvZGluZyB8fCAndXRmOCcpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgICAgcmV0ID0gc3RyLmxlbmd0aCAvIDJcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgICAgcmV0ID0gdXRmOFRvQnl0ZXMoc3RyKS5sZW5ndGhcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAncmF3JzpcbiAgICAgIHJldCA9IHN0ci5sZW5ndGhcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgIHJldCA9IGJhc2U2NFRvQnl0ZXMoc3RyKS5sZW5ndGhcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldCA9IHN0ci5sZW5ndGggKiAyXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZW5jb2RpbmcnKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIChsaXN0LCB0b3RhbExlbmd0aCkge1xuICBhc3NlcnQoaXNBcnJheShsaXN0KSwgJ1VzYWdlOiBCdWZmZXIuY29uY2F0KGxpc3QsIFt0b3RhbExlbmd0aF0pXFxuJyArXG4gICAgICAnbGlzdCBzaG91bGQgYmUgYW4gQXJyYXkuJylcblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcigwKVxuICB9IGVsc2UgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGxpc3RbMF1cbiAgfVxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdG90YWxMZW5ndGggIT09ICdudW1iZXInKSB7XG4gICAgdG90YWxMZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRvdGFsTGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIodG90YWxMZW5ndGgpXG4gIHZhciBwb3MgPSAwXG4gIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgaXRlbS5jb3B5KGJ1ZiwgcG9zKVxuICAgIHBvcyArPSBpdGVtLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZcbn1cblxuLy8gQlVGRkVSIElOU1RBTkNFIE1FVEhPRFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIF9oZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGFzc2VydChzdHJMZW4gJSAyID09PSAwLCAnSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGJ5dGUgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgYXNzZXJ0KCFpc05hTihieXRlKSwgJ0ludmFsaWQgaGV4IHN0cmluZycpXG4gICAgYnVmW29mZnNldCArIGldID0gYnl0ZVxuICB9XG4gIEJ1ZmZlci5fY2hhcnNXcml0dGVuID0gaSAqIDJcbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gX3V0ZjhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHZhciBjaGFyc1dyaXR0ZW4gPSBCdWZmZXIuX2NoYXJzV3JpdHRlbiA9XG4gICAgYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxuICByZXR1cm4gY2hhcnNXcml0dGVuXG59XG5cbmZ1bmN0aW9uIF9hc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgdmFyIGNoYXJzV3JpdHRlbiA9IEJ1ZmZlci5fY2hhcnNXcml0dGVuID1cbiAgICBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxuICByZXR1cm4gY2hhcnNXcml0dGVuXG59XG5cbmZ1bmN0aW9uIF9iaW5hcnlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBfYXNjaWlXcml0ZShidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIF9iYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHZhciBjaGFyc1dyaXR0ZW4gPSBCdWZmZXIuX2NoYXJzV3JpdHRlbiA9XG4gICAgYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG4gIHJldHVybiBjaGFyc1dyaXR0ZW5cbn1cblxuZnVuY3Rpb24gX3V0ZjE2bGVXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHZhciBjaGFyc1dyaXR0ZW4gPSBCdWZmZXIuX2NoYXJzV3JpdHRlbiA9XG4gICAgYmxpdEJ1ZmZlcih1dGYxNmxlVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxuICByZXR1cm4gY2hhcnNXcml0dGVuXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHtcbiAgLy8gU3VwcG9ydCBib3RoIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZylcbiAgLy8gYW5kIHRoZSBsZWdhY3kgKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldCwgbGVuZ3RoKVxuICBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIGlmICghaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgZW5jb2RpbmcgPSBsZW5ndGhcbiAgICAgIGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgfSBlbHNlIHsgIC8vIGxlZ2FjeVxuICAgIHZhciBzd2FwID0gZW5jb2RpbmdcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIG9mZnNldCA9IGxlbmd0aFxuICAgIGxlbmd0aCA9IHN3YXBcbiAgfVxuXG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cbiAgZW5jb2RpbmcgPSBTdHJpbmcoZW5jb2RpbmcgfHwgJ3V0ZjgnKS50b0xvd2VyQ2FzZSgpXG5cbiAgdmFyIHJldFxuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIHJldCA9IF9oZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgICByZXQgPSBfdXRmOFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIHJldCA9IF9hc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICByZXQgPSBfYmluYXJ5V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgIHJldCA9IF9iYXNlNjRXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0ID0gX3V0ZjE2bGVXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGVuY29kaW5nJylcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzXG5cbiAgZW5jb2RpbmcgPSBTdHJpbmcoZW5jb2RpbmcgfHwgJ3V0ZjgnKS50b0xvd2VyQ2FzZSgpXG4gIHN0YXJ0ID0gTnVtYmVyKHN0YXJ0KSB8fCAwXG4gIGVuZCA9IChlbmQgIT09IHVuZGVmaW5lZClcbiAgICA/IE51bWJlcihlbmQpXG4gICAgOiBlbmQgPSBzZWxmLmxlbmd0aFxuXG4gIC8vIEZhc3RwYXRoIGVtcHR5IHN0cmluZ3NcbiAgaWYgKGVuZCA9PT0gc3RhcnQpXG4gICAgcmV0dXJuICcnXG5cbiAgdmFyIHJldFxuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIHJldCA9IF9oZXhTbGljZShzZWxmLCBzdGFydCwgZW5kKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgICByZXQgPSBfdXRmOFNsaWNlKHNlbGYsIHN0YXJ0LCBlbmQpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIHJldCA9IF9hc2NpaVNsaWNlKHNlbGYsIHN0YXJ0LCBlbmQpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICByZXQgPSBfYmluYXJ5U2xpY2Uoc2VsZiwgc3RhcnQsIGVuZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgIHJldCA9IF9iYXNlNjRTbGljZShzZWxmLCBzdGFydCwgZW5kKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0ID0gX3V0ZjE2bGVTbGljZShzZWxmLCBzdGFydCwgZW5kKVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGVuY29kaW5nJylcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uICh0YXJnZXQsIHRhcmdldF9zdGFydCwgc3RhcnQsIGVuZCkge1xuICB2YXIgc291cmNlID0gdGhpc1xuXG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICghdGFyZ2V0X3N0YXJ0KSB0YXJnZXRfc3RhcnQgPSAwXG5cbiAgLy8gQ29weSAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm5cbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgc291cmNlLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBhc3NlcnQoZW5kID49IHN0YXJ0LCAnc291cmNlRW5kIDwgc291cmNlU3RhcnQnKVxuICBhc3NlcnQodGFyZ2V0X3N0YXJ0ID49IDAgJiYgdGFyZ2V0X3N0YXJ0IDwgdGFyZ2V0Lmxlbmd0aCxcbiAgICAgICd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgYXNzZXJ0KHN0YXJ0ID49IDAgJiYgc3RhcnQgPCBzb3VyY2UubGVuZ3RoLCAnc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGFzc2VydChlbmQgPj0gMCAmJiBlbmQgPD0gc291cmNlLmxlbmd0aCwgJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpXG4gICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRfc3RhcnQgPCBlbmQgLSBzdGFydClcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0X3N0YXJ0ICsgc3RhcnRcblxuICB2YXIgbGVuID0gZW5kIC0gc3RhcnRcblxuICBpZiAobGVuIDwgMTAwIHx8ICFCdWZmZXIuX3VzZVR5cGVkQXJyYXlzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0X3N0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICB9IGVsc2Uge1xuICAgIHRhcmdldC5fc2V0KHRoaXMuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ICsgbGVuKSwgdGFyZ2V0X3N0YXJ0KVxuICB9XG59XG5cbmZ1bmN0aW9uIF9iYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gX3V0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXMgPSAnJ1xuICB2YXIgdG1wID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgaWYgKGJ1ZltpXSA8PSAweDdGKSB7XG4gICAgICByZXMgKz0gZGVjb2RlVXRmOENoYXIodG1wKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICAgICAgdG1wID0gJydcbiAgICB9IGVsc2Uge1xuICAgICAgdG1wICs9ICclJyArIGJ1ZltpXS50b1N0cmluZygxNilcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzICsgZGVjb2RlVXRmOENoYXIodG1wKVxufVxuXG5mdW5jdGlvbiBfYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspXG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIF9iaW5hcnlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHJldHVybiBfYXNjaWlTbGljZShidWYsIHN0YXJ0LCBlbmQpXG59XG5cbmZ1bmN0aW9uIF9oZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIF91dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2krMV0gKiAyNTYpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIHN0YXJ0ID0gY2xhbXAoc3RhcnQsIGxlbiwgMClcbiAgZW5kID0gY2xhbXAoZW5kLCBsZW4sIGxlbilcblxuICBpZiAoQnVmZmVyLl91c2VUeXBlZEFycmF5cykge1xuICAgIHJldHVybiBCdWZmZXIuX2F1Z21lbnQodGhpcy5zdWJhcnJheShzdGFydCwgZW5kKSlcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2xpY2VMZW4gPSBlbmQgLSBzdGFydFxuICAgIHZhciBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQsIHRydWUpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgaSsrKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gICAgcmV0dXJuIG5ld0J1ZlxuICB9XG59XG5cbi8vIGBnZXRgIHdpbGwgYmUgcmVtb3ZlZCBpbiBOb2RlIDAuMTMrXG5CdWZmZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5nZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLnJlYWRVSW50OChvZmZzZXQpXG59XG5cbi8vIGBzZXRgIHdpbGwgYmUgcmVtb3ZlZCBpbiBOb2RlIDAuMTMrXG5CdWZmZXIucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uICh2LCBvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5zZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLndyaXRlVUludDgodiwgb2Zmc2V0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgPCB0aGlzLmxlbmd0aCwgJ1RyeWluZyB0byByZWFkIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgfVxuXG4gIGlmIChvZmZzZXQgPj0gdGhpcy5sZW5ndGgpXG4gICAgcmV0dXJuXG5cbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XVxufVxuXG5mdW5jdGlvbiBfcmVhZFVJbnQxNiAoYnVmLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGFzc2VydCh0eXBlb2YgbGl0dGxlRW5kaWFuID09PSAnYm9vbGVhbicsICdtaXNzaW5nIG9yIGludmFsaWQgZW5kaWFuJylcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgKyAxIDwgYnVmLmxlbmd0aCwgJ1RyeWluZyB0byByZWFkIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgfVxuXG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG4gIGlmIChvZmZzZXQgPj0gbGVuKVxuICAgIHJldHVyblxuXG4gIHZhciB2YWxcbiAgaWYgKGxpdHRsZUVuZGlhbikge1xuICAgIHZhbCA9IGJ1ZltvZmZzZXRdXG4gICAgaWYgKG9mZnNldCArIDEgPCBsZW4pXG4gICAgICB2YWwgfD0gYnVmW29mZnNldCArIDFdIDw8IDhcbiAgfSBlbHNlIHtcbiAgICB2YWwgPSBidWZbb2Zmc2V0XSA8PCA4XG4gICAgaWYgKG9mZnNldCArIDEgPCBsZW4pXG4gICAgICB2YWwgfD0gYnVmW29mZnNldCArIDFdXG4gIH1cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZFVJbnQxNih0aGlzLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZFVJbnQxNih0aGlzLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gX3JlYWRVSW50MzIgKGJ1Ziwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQodHlwZW9mIGxpdHRsZUVuZGlhbiA9PT0gJ2Jvb2xlYW4nLCAnbWlzc2luZyBvciBpbnZhbGlkIGVuZGlhbicpXG4gICAgYXNzZXJ0KG9mZnNldCAhPT0gdW5kZWZpbmVkICYmIG9mZnNldCAhPT0gbnVsbCwgJ21pc3Npbmcgb2Zmc2V0JylcbiAgICBhc3NlcnQob2Zmc2V0ICsgMyA8IGJ1Zi5sZW5ndGgsICdUcnlpbmcgdG8gcmVhZCBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gIH1cblxuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuICBpZiAob2Zmc2V0ID49IGxlbilcbiAgICByZXR1cm5cblxuICB2YXIgdmFsXG4gIGlmIChsaXR0bGVFbmRpYW4pIHtcbiAgICBpZiAob2Zmc2V0ICsgMiA8IGxlbilcbiAgICAgIHZhbCA9IGJ1ZltvZmZzZXQgKyAyXSA8PCAxNlxuICAgIGlmIChvZmZzZXQgKyAxIDwgbGVuKVxuICAgICAgdmFsIHw9IGJ1ZltvZmZzZXQgKyAxXSA8PCA4XG4gICAgdmFsIHw9IGJ1ZltvZmZzZXRdXG4gICAgaWYgKG9mZnNldCArIDMgPCBsZW4pXG4gICAgICB2YWwgPSB2YWwgKyAoYnVmW29mZnNldCArIDNdIDw8IDI0ID4+PiAwKVxuICB9IGVsc2Uge1xuICAgIGlmIChvZmZzZXQgKyAxIDwgbGVuKVxuICAgICAgdmFsID0gYnVmW29mZnNldCArIDFdIDw8IDE2XG4gICAgaWYgKG9mZnNldCArIDIgPCBsZW4pXG4gICAgICB2YWwgfD0gYnVmW29mZnNldCArIDJdIDw8IDhcbiAgICBpZiAob2Zmc2V0ICsgMyA8IGxlbilcbiAgICAgIHZhbCB8PSBidWZbb2Zmc2V0ICsgM11cbiAgICB2YWwgPSB2YWwgKyAoYnVmW29mZnNldF0gPDwgMjQgPj4+IDApXG4gIH1cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZFVJbnQzMih0aGlzLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZFVJbnQzMih0aGlzLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLFxuICAgICAgICAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgPCB0aGlzLmxlbmd0aCwgJ1RyeWluZyB0byByZWFkIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgfVxuXG4gIGlmIChvZmZzZXQgPj0gdGhpcy5sZW5ndGgpXG4gICAgcmV0dXJuXG5cbiAgdmFyIG5lZyA9IHRoaXNbb2Zmc2V0XSAmIDB4ODBcbiAgaWYgKG5lZylcbiAgICByZXR1cm4gKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xXG4gIGVsc2VcbiAgICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbmZ1bmN0aW9uIF9yZWFkSW50MTYgKGJ1Ziwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQodHlwZW9mIGxpdHRsZUVuZGlhbiA9PT0gJ2Jvb2xlYW4nLCAnbWlzc2luZyBvciBpbnZhbGlkIGVuZGlhbicpXG4gICAgYXNzZXJ0KG9mZnNldCAhPT0gdW5kZWZpbmVkICYmIG9mZnNldCAhPT0gbnVsbCwgJ21pc3Npbmcgb2Zmc2V0JylcbiAgICBhc3NlcnQob2Zmc2V0ICsgMSA8IGJ1Zi5sZW5ndGgsICdUcnlpbmcgdG8gcmVhZCBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gIH1cblxuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuICBpZiAob2Zmc2V0ID49IGxlbilcbiAgICByZXR1cm5cblxuICB2YXIgdmFsID0gX3JlYWRVSW50MTYoYnVmLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgdHJ1ZSlcbiAgdmFyIG5lZyA9IHZhbCAmIDB4ODAwMFxuICBpZiAobmVnKVxuICAgIHJldHVybiAoMHhmZmZmIC0gdmFsICsgMSkgKiAtMVxuICBlbHNlXG4gICAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIF9yZWFkSW50MTYodGhpcywgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZEludDE2KHRoaXMsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiBfcmVhZEludDMyIChidWYsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBsaXR0bGVFbmRpYW4gPT09ICdib29sZWFuJywgJ21pc3Npbmcgb3IgaW52YWxpZCBlbmRpYW4nKVxuICAgIGFzc2VydChvZmZzZXQgIT09IHVuZGVmaW5lZCAmJiBvZmZzZXQgIT09IG51bGwsICdtaXNzaW5nIG9mZnNldCcpXG4gICAgYXNzZXJ0KG9mZnNldCArIDMgPCBidWYubGVuZ3RoLCAnVHJ5aW5nIHRvIHJlYWQgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxuICB9XG5cbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcbiAgaWYgKG9mZnNldCA+PSBsZW4pXG4gICAgcmV0dXJuXG5cbiAgdmFyIHZhbCA9IF9yZWFkVUludDMyKGJ1Ziwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIHRydWUpXG4gIHZhciBuZWcgPSB2YWwgJiAweDgwMDAwMDAwXG4gIGlmIChuZWcpXG4gICAgcmV0dXJuICgweGZmZmZmZmZmIC0gdmFsICsgMSkgKiAtMVxuICBlbHNlXG4gICAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIF9yZWFkSW50MzIodGhpcywgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiBfcmVhZEludDMyKHRoaXMsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiBfcmVhZEZsb2F0IChidWYsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBsaXR0bGVFbmRpYW4gPT09ICdib29sZWFuJywgJ21pc3Npbmcgb3IgaW52YWxpZCBlbmRpYW4nKVxuICAgIGFzc2VydChvZmZzZXQgKyAzIDwgYnVmLmxlbmd0aCwgJ1RyeWluZyB0byByZWFkIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgfVxuXG4gIHJldHVybiBpZWVlNzU0LnJlYWQoYnVmLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiAob2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gX3JlYWRGbG9hdCh0aGlzLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIF9yZWFkRmxvYXQodGhpcywgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIF9yZWFkRG91YmxlIChidWYsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBsaXR0bGVFbmRpYW4gPT09ICdib29sZWFuJywgJ21pc3Npbmcgb3IgaW52YWxpZCBlbmRpYW4nKVxuICAgIGFzc2VydChvZmZzZXQgKyA3IDwgYnVmLmxlbmd0aCwgJ1RyeWluZyB0byByZWFkIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgfVxuXG4gIHJldHVybiBpZWVlNzU0LnJlYWQoYnVmLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIF9yZWFkRG91YmxlKHRoaXMsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIF9yZWFkRG91YmxlKHRoaXMsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGFzc2VydCh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsLCAnbWlzc2luZyB2YWx1ZScpXG4gICAgYXNzZXJ0KG9mZnNldCAhPT0gdW5kZWZpbmVkICYmIG9mZnNldCAhPT0gbnVsbCwgJ21pc3Npbmcgb2Zmc2V0JylcbiAgICBhc3NlcnQob2Zmc2V0IDwgdGhpcy5sZW5ndGgsICd0cnlpbmcgdG8gd3JpdGUgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxuICAgIHZlcmlmdWludCh2YWx1ZSwgMHhmZilcbiAgfVxuXG4gIGlmIChvZmZzZXQgPj0gdGhpcy5sZW5ndGgpIHJldHVyblxuXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG59XG5cbmZ1bmN0aW9uIF93cml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCwgJ21pc3NpbmcgdmFsdWUnKVxuICAgIGFzc2VydCh0eXBlb2YgbGl0dGxlRW5kaWFuID09PSAnYm9vbGVhbicsICdtaXNzaW5nIG9yIGludmFsaWQgZW5kaWFuJylcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgKyAxIDwgYnVmLmxlbmd0aCwgJ3RyeWluZyB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gICAgdmVyaWZ1aW50KHZhbHVlLCAweGZmZmYpXG4gIH1cblxuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuICBpZiAob2Zmc2V0ID49IGxlbilcbiAgICByZXR1cm5cblxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGxlbiAtIG9mZnNldCwgMik7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPVxuICAgICAgICAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIF93cml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIF93cml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIF93cml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCwgJ21pc3NpbmcgdmFsdWUnKVxuICAgIGFzc2VydCh0eXBlb2YgbGl0dGxlRW5kaWFuID09PSAnYm9vbGVhbicsICdtaXNzaW5nIG9yIGludmFsaWQgZW5kaWFuJylcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgKyAzIDwgYnVmLmxlbmd0aCwgJ3RyeWluZyB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gICAgdmVyaWZ1aW50KHZhbHVlLCAweGZmZmZmZmZmKVxuICB9XG5cbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcbiAgaWYgKG9mZnNldCA+PSBsZW4pXG4gICAgcmV0dXJuXG5cbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihsZW4gLSBvZmZzZXQsIDQpOyBpIDwgajsgaSsrKSB7XG4gICAgYnVmW29mZnNldCArIGldID1cbiAgICAgICAgKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICBfd3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICBfd3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50OCA9IGZ1bmN0aW9uICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwsICdtaXNzaW5nIHZhbHVlJylcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgPCB0aGlzLmxlbmd0aCwgJ1RyeWluZyB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gICAgdmVyaWZzaW50KHZhbHVlLCAweDdmLCAtMHg4MClcbiAgfVxuXG4gIGlmIChvZmZzZXQgPj0gdGhpcy5sZW5ndGgpXG4gICAgcmV0dXJuXG5cbiAgaWYgKHZhbHVlID49IDApXG4gICAgdGhpcy53cml0ZVVJbnQ4KHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KVxuICBlbHNlXG4gICAgdGhpcy53cml0ZVVJbnQ4KDB4ZmYgKyB2YWx1ZSArIDEsIG9mZnNldCwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIF93cml0ZUludDE2IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGFzc2VydCh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsLCAnbWlzc2luZyB2YWx1ZScpXG4gICAgYXNzZXJ0KHR5cGVvZiBsaXR0bGVFbmRpYW4gPT09ICdib29sZWFuJywgJ21pc3Npbmcgb3IgaW52YWxpZCBlbmRpYW4nKVxuICAgIGFzc2VydChvZmZzZXQgIT09IHVuZGVmaW5lZCAmJiBvZmZzZXQgIT09IG51bGwsICdtaXNzaW5nIG9mZnNldCcpXG4gICAgYXNzZXJ0KG9mZnNldCArIDEgPCBidWYubGVuZ3RoLCAnVHJ5aW5nIHRvIHdyaXRlIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbiAgICB2ZXJpZnNpbnQodmFsdWUsIDB4N2ZmZiwgLTB4ODAwMClcbiAgfVxuXG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG4gIGlmIChvZmZzZXQgPj0gbGVuKVxuICAgIHJldHVyblxuXG4gIGlmICh2YWx1ZSA+PSAwKVxuICAgIF93cml0ZVVJbnQxNihidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpXG4gIGVsc2VcbiAgICBfd3JpdGVVSW50MTYoYnVmLCAweGZmZmYgKyB2YWx1ZSArIDEsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgX3dyaXRlSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIF93cml0ZUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gX3dyaXRlSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwsICdtaXNzaW5nIHZhbHVlJylcbiAgICBhc3NlcnQodHlwZW9mIGxpdHRsZUVuZGlhbiA9PT0gJ2Jvb2xlYW4nLCAnbWlzc2luZyBvciBpbnZhbGlkIGVuZGlhbicpXG4gICAgYXNzZXJ0KG9mZnNldCAhPT0gdW5kZWZpbmVkICYmIG9mZnNldCAhPT0gbnVsbCwgJ21pc3Npbmcgb2Zmc2V0JylcbiAgICBhc3NlcnQob2Zmc2V0ICsgMyA8IGJ1Zi5sZW5ndGgsICdUcnlpbmcgdG8gd3JpdGUgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxuICAgIHZlcmlmc2ludCh2YWx1ZSwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIH1cblxuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuICBpZiAob2Zmc2V0ID49IGxlbilcbiAgICByZXR1cm5cblxuICBpZiAodmFsdWUgPj0gMClcbiAgICBfd3JpdGVVSW50MzIoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KVxuICBlbHNlXG4gICAgX3dyaXRlVUludDMyKGJ1ZiwgMHhmZmZmZmZmZiArIHZhbHVlICsgMSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRSA9IGZ1bmN0aW9uICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICBfd3JpdGVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgX3dyaXRlSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiBfd3JpdGVGbG9hdCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBhc3NlcnQodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCwgJ21pc3NpbmcgdmFsdWUnKVxuICAgIGFzc2VydCh0eXBlb2YgbGl0dGxlRW5kaWFuID09PSAnYm9vbGVhbicsICdtaXNzaW5nIG9yIGludmFsaWQgZW5kaWFuJylcbiAgICBhc3NlcnQob2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgb2Zmc2V0ICE9PSBudWxsLCAnbWlzc2luZyBvZmZzZXQnKVxuICAgIGFzc2VydChvZmZzZXQgKyAzIDwgYnVmLmxlbmd0aCwgJ1RyeWluZyB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG4gICAgdmVyaWZJRUVFNzU0KHZhbHVlLCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuXG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG4gIGlmIChvZmZzZXQgPj0gbGVuKVxuICAgIHJldHVyblxuXG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICBfd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgX3dyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiBfd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgYXNzZXJ0KHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwsICdtaXNzaW5nIHZhbHVlJylcbiAgICBhc3NlcnQodHlwZW9mIGxpdHRsZUVuZGlhbiA9PT0gJ2Jvb2xlYW4nLCAnbWlzc2luZyBvciBpbnZhbGlkIGVuZGlhbicpXG4gICAgYXNzZXJ0KG9mZnNldCAhPT0gdW5kZWZpbmVkICYmIG9mZnNldCAhPT0gbnVsbCwgJ21pc3Npbmcgb2Zmc2V0JylcbiAgICBhc3NlcnQob2Zmc2V0ICsgNyA8IGJ1Zi5sZW5ndGgsXG4gICAgICAgICdUcnlpbmcgdG8gd3JpdGUgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxuICAgIHZlcmlmSUVFRTc1NCh2YWx1ZSwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuXG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG4gIGlmIChvZmZzZXQgPj0gbGVuKVxuICAgIHJldHVyblxuXG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEUgPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgX3dyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgX3dyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gZmlsbCh2YWx1ZSwgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCF2YWx1ZSkgdmFsdWUgPSAwXG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCkgZW5kID0gdGhpcy5sZW5ndGhcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHZhbHVlID0gdmFsdWUuY2hhckNvZGVBdCgwKVxuICB9XG5cbiAgYXNzZXJ0KHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSwgJ3ZhbHVlIGlzIG5vdCBhIG51bWJlcicpXG4gIGFzc2VydChlbmQgPj0gc3RhcnQsICdlbmQgPCBzdGFydCcpXG5cbiAgLy8gRmlsbCAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBhc3NlcnQoc3RhcnQgPj0gMCAmJiBzdGFydCA8IHRoaXMubGVuZ3RoLCAnc3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGFzc2VydChlbmQgPj0gMCAmJiBlbmQgPD0gdGhpcy5sZW5ndGgsICdlbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB0aGlzW2ldID0gdmFsdWVcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBvdXQgPSBbXVxuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG91dFtpXSA9IHRvSGV4KHRoaXNbaV0pXG4gICAgaWYgKGkgPT09IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMpIHtcbiAgICAgIG91dFtpICsgMV0gPSAnLi4uJ1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICc8QnVmZmVyICcgKyBvdXQuam9pbignICcpICsgJz4nXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQXJyYXlCdWZmZXJgIHdpdGggdGhlICpjb3BpZWQqIG1lbW9yeSBvZiB0aGUgYnVmZmVyIGluc3RhbmNlLlxuICogQWRkZWQgaW4gTm9kZSAwLjEyLiBPbmx5IGF2YWlsYWJsZSBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgQXJyYXlCdWZmZXIuXG4gKi9cbkJ1ZmZlci5wcm90b3R5cGUudG9BcnJheUJ1ZmZlciA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChCdWZmZXIuX3VzZVR5cGVkQXJyYXlzKSB7XG4gICAgICByZXR1cm4gKG5ldyBCdWZmZXIodGhpcykpLmJ1ZmZlclxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5sZW5ndGgpXG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYnVmLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKVxuICAgICAgICBidWZbaV0gPSB0aGlzW2ldXG4gICAgICByZXR1cm4gYnVmLmJ1ZmZlclxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0J1ZmZlci50b0FycmF5QnVmZmVyIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJylcbiAgfVxufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbnZhciBCUCA9IEJ1ZmZlci5wcm90b3R5cGVcblxuLyoqXG4gKiBBdWdtZW50IGEgVWludDhBcnJheSAqaW5zdGFuY2UqIChub3QgdGhlIFVpbnQ4QXJyYXkgY2xhc3MhKSB3aXRoIEJ1ZmZlciBtZXRob2RzXG4gKi9cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIChhcnIpIHtcbiAgYXJyLl9pc0J1ZmZlciA9IHRydWVcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byBvcmlnaW5hbCBVaW50OEFycmF5IGdldC9zZXQgbWV0aG9kcyBiZWZvcmUgb3ZlcndyaXRpbmdcbiAgYXJyLl9nZXQgPSBhcnIuZ2V0XG4gIGFyci5fc2V0ID0gYXJyLnNldFxuXG4gIC8vIGRlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBpbiBub2RlIDAuMTMrXG4gIGFyci5nZXQgPSBCUC5nZXRcbiAgYXJyLnNldCA9IEJQLnNldFxuXG4gIGFyci53cml0ZSA9IEJQLndyaXRlXG4gIGFyci50b1N0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0xvY2FsZVN0cmluZyA9IEJQLnRvU3RyaW5nXG4gIGFyci50b0pTT04gPSBCUC50b0pTT05cbiAgYXJyLmNvcHkgPSBCUC5jb3B5XG4gIGFyci5zbGljZSA9IEJQLnNsaWNlXG4gIGFyci5yZWFkVUludDggPSBCUC5yZWFkVUludDhcbiAgYXJyLnJlYWRVSW50MTZMRSA9IEJQLnJlYWRVSW50MTZMRVxuICBhcnIucmVhZFVJbnQxNkJFID0gQlAucmVhZFVJbnQxNkJFXG4gIGFyci5yZWFkVUludDMyTEUgPSBCUC5yZWFkVUludDMyTEVcbiAgYXJyLnJlYWRVSW50MzJCRSA9IEJQLnJlYWRVSW50MzJCRVxuICBhcnIucmVhZEludDggPSBCUC5yZWFkSW50OFxuICBhcnIucmVhZEludDE2TEUgPSBCUC5yZWFkSW50MTZMRVxuICBhcnIucmVhZEludDE2QkUgPSBCUC5yZWFkSW50MTZCRVxuICBhcnIucmVhZEludDMyTEUgPSBCUC5yZWFkSW50MzJMRVxuICBhcnIucmVhZEludDMyQkUgPSBCUC5yZWFkSW50MzJCRVxuICBhcnIucmVhZEZsb2F0TEUgPSBCUC5yZWFkRmxvYXRMRVxuICBhcnIucmVhZEZsb2F0QkUgPSBCUC5yZWFkRmxvYXRCRVxuICBhcnIucmVhZERvdWJsZUxFID0gQlAucmVhZERvdWJsZUxFXG4gIGFyci5yZWFkRG91YmxlQkUgPSBCUC5yZWFkRG91YmxlQkVcbiAgYXJyLndyaXRlVUludDggPSBCUC53cml0ZVVJbnQ4XG4gIGFyci53cml0ZVVJbnQxNkxFID0gQlAud3JpdGVVSW50MTZMRVxuICBhcnIud3JpdGVVSW50MTZCRSA9IEJQLndyaXRlVUludDE2QkVcbiAgYXJyLndyaXRlVUludDMyTEUgPSBCUC53cml0ZVVJbnQzMkxFXG4gIGFyci53cml0ZVVJbnQzMkJFID0gQlAud3JpdGVVSW50MzJCRVxuICBhcnIud3JpdGVJbnQ4ID0gQlAud3JpdGVJbnQ4XG4gIGFyci53cml0ZUludDE2TEUgPSBCUC53cml0ZUludDE2TEVcbiAgYXJyLndyaXRlSW50MTZCRSA9IEJQLndyaXRlSW50MTZCRVxuICBhcnIud3JpdGVJbnQzMkxFID0gQlAud3JpdGVJbnQzMkxFXG4gIGFyci53cml0ZUludDMyQkUgPSBCUC53cml0ZUludDMyQkVcbiAgYXJyLndyaXRlRmxvYXRMRSA9IEJQLndyaXRlRmxvYXRMRVxuICBhcnIud3JpdGVGbG9hdEJFID0gQlAud3JpdGVGbG9hdEJFXG4gIGFyci53cml0ZURvdWJsZUxFID0gQlAud3JpdGVEb3VibGVMRVxuICBhcnIud3JpdGVEb3VibGVCRSA9IEJQLndyaXRlRG91YmxlQkVcbiAgYXJyLmZpbGwgPSBCUC5maWxsXG4gIGFyci5pbnNwZWN0ID0gQlAuaW5zcGVjdFxuICBhcnIudG9BcnJheUJ1ZmZlciA9IEJQLnRvQXJyYXlCdWZmZXJcblxuICByZXR1cm4gYXJyXG59XG5cbi8vIHNsaWNlKHN0YXJ0LCBlbmQpXG5mdW5jdGlvbiBjbGFtcCAoaW5kZXgsIGxlbiwgZGVmYXVsdFZhbHVlKSB7XG4gIGlmICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInKSByZXR1cm4gZGVmYXVsdFZhbHVlXG4gIGluZGV4ID0gfn5pbmRleDsgIC8vIENvZXJjZSB0byBpbnRlZ2VyLlxuICBpZiAoaW5kZXggPj0gbGVuKSByZXR1cm4gbGVuXG4gIGlmIChpbmRleCA+PSAwKSByZXR1cm4gaW5kZXhcbiAgaW5kZXggKz0gbGVuXG4gIGlmIChpbmRleCA+PSAwKSByZXR1cm4gaW5kZXhcbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gY29lcmNlIChsZW5ndGgpIHtcbiAgLy8gQ29lcmNlIGxlbmd0aCB0byBhIG51bWJlciAocG9zc2libHkgTmFOKSwgcm91bmQgdXBcbiAgLy8gaW4gY2FzZSBpdCdzIGZyYWN0aW9uYWwgKGUuZy4gMTIzLjQ1NikgdGhlbiBkbyBhXG4gIC8vIGRvdWJsZSBuZWdhdGUgdG8gY29lcmNlIGEgTmFOIHRvIDAuIEVhc3ksIHJpZ2h0P1xuICBsZW5ndGggPSB+fk1hdGguY2VpbCgrbGVuZ3RoKVxuICByZXR1cm4gbGVuZ3RoIDwgMCA/IDAgOiBsZW5ndGhcbn1cblxuZnVuY3Rpb24gaXNBcnJheSAoc3ViamVjdCkge1xuICByZXR1cm4gKEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKHN1YmplY3QpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN1YmplY3QpID09PSAnW29iamVjdCBBcnJheV0nXG4gIH0pKHN1YmplY3QpXG59XG5cbmZ1bmN0aW9uIGlzQXJyYXlpc2ggKHN1YmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXkoc3ViamVjdCkgfHwgQnVmZmVyLmlzQnVmZmVyKHN1YmplY3QpIHx8XG4gICAgICBzdWJqZWN0ICYmIHR5cGVvZiBzdWJqZWN0ID09PSAnb2JqZWN0JyAmJlxuICAgICAgdHlwZW9mIHN1YmplY3QubGVuZ3RoID09PSAnbnVtYmVyJ1xufVxuXG5mdW5jdGlvbiB0b0hleCAobikge1xuICBpZiAobiA8IDE2KSByZXR1cm4gJzAnICsgbi50b1N0cmluZygxNilcbiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHIpIHtcbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGIgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGlmIChiIDw9IDB4N0YpXG4gICAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSlcbiAgICBlbHNlIHtcbiAgICAgIHZhciBzdGFydCA9IGlcbiAgICAgIGlmIChiID49IDB4RDgwMCAmJiBiIDw9IDB4REZGRikgaSsrXG4gICAgICB2YXIgaCA9IGVuY29kZVVSSUNvbXBvbmVudChzdHIuc2xpY2Uoc3RhcnQsIGkrMSkpLnN1YnN0cigxKS5zcGxpdCgnJScpXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGgubGVuZ3RoOyBqKyspXG4gICAgICAgIGJ5dGVBcnJheS5wdXNoKHBhcnNlSW50KGhbal0sIDE2KSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyKSB7XG4gIHZhciBjLCBoaSwgbG9cbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoc3RyKVxufVxuXG5mdW5jdGlvbiBibGl0QnVmZmVyIChzcmMsIGRzdCwgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgdmFyIHBvc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKVxuICAgICAgYnJlYWtcbiAgICBkc3RbaSArIG9mZnNldF0gPSBzcmNbaV1cbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiBkZWNvZGVVdGY4Q2hhciAoc3RyKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzdHIpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RkZGRCkgLy8gVVRGIDggaW52YWxpZCBjaGFyXG4gIH1cbn1cblxuLypcbiAqIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHZhbHVlIGlzIGEgdmFsaWQgaW50ZWdlci4gVGhpcyBtZWFucyB0aGF0IGl0XG4gKiBpcyBub24tbmVnYXRpdmUuIEl0IGhhcyBubyBmcmFjdGlvbmFsIGNvbXBvbmVudCBhbmQgdGhhdCBpdCBkb2VzIG5vdFxuICogZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHZlcmlmdWludCAodmFsdWUsIG1heCkge1xuICBhc3NlcnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJywgJ2Nhbm5vdCB3cml0ZSBhIG5vbi1udW1iZXIgYXMgYSBudW1iZXInKVxuICBhc3NlcnQodmFsdWUgPj0gMCwgJ3NwZWNpZmllZCBhIG5lZ2F0aXZlIHZhbHVlIGZvciB3cml0aW5nIGFuIHVuc2lnbmVkIHZhbHVlJylcbiAgYXNzZXJ0KHZhbHVlIDw9IG1heCwgJ3ZhbHVlIGlzIGxhcmdlciB0aGFuIG1heGltdW0gdmFsdWUgZm9yIHR5cGUnKVxuICBhc3NlcnQoTWF0aC5mbG9vcih2YWx1ZSkgPT09IHZhbHVlLCAndmFsdWUgaGFzIGEgZnJhY3Rpb25hbCBjb21wb25lbnQnKVxufVxuXG5mdW5jdGlvbiB2ZXJpZnNpbnQgKHZhbHVlLCBtYXgsIG1pbikge1xuICBhc3NlcnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJywgJ2Nhbm5vdCB3cml0ZSBhIG5vbi1udW1iZXIgYXMgYSBudW1iZXInKVxuICBhc3NlcnQodmFsdWUgPD0gbWF4LCAndmFsdWUgbGFyZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIHZhbHVlJylcbiAgYXNzZXJ0KHZhbHVlID49IG1pbiwgJ3ZhbHVlIHNtYWxsZXIgdGhhbiBtaW5pbXVtIGFsbG93ZWQgdmFsdWUnKVxuICBhc3NlcnQoTWF0aC5mbG9vcih2YWx1ZSkgPT09IHZhbHVlLCAndmFsdWUgaGFzIGEgZnJhY3Rpb25hbCBjb21wb25lbnQnKVxufVxuXG5mdW5jdGlvbiB2ZXJpZklFRUU3NTQgKHZhbHVlLCBtYXgsIG1pbikge1xuICBhc3NlcnQodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJywgJ2Nhbm5vdCB3cml0ZSBhIG5vbi1udW1iZXIgYXMgYSBudW1iZXInKVxuICBhc3NlcnQodmFsdWUgPD0gbWF4LCAndmFsdWUgbGFyZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIHZhbHVlJylcbiAgYXNzZXJ0KHZhbHVlID49IG1pbiwgJ3ZhbHVlIHNtYWxsZXIgdGhhbiBtaW5pbXVtIGFsbG93ZWQgdmFsdWUnKVxufVxuXG5mdW5jdGlvbiBhc3NlcnQgKHRlc3QsIG1lc3NhZ2UpIHtcbiAgaWYgKCF0ZXN0KSB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSB8fCAnRmFpbGVkIGFzc2VydGlvbicpXG59XG5cbn0pLmNhbGwodGhpcyxyZXF1aXJlKFwib01mcEFuXCIpLHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSxyZXF1aXJlKFwiYnVmZmVyXCIpLkJ1ZmZlcixhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSxhcmd1bWVudHNbNl0sXCIvLi4vLi4vbm9kZV9tb2R1bGVzL2d1bHAtYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzXCIsXCIvLi4vLi4vbm9kZV9tb2R1bGVzL2d1bHAtYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyXCIpIiwiKGZ1bmN0aW9uIChwcm9jZXNzLGdsb2JhbCxCdWZmZXIsX19hcmd1bWVudDAsX19hcmd1bWVudDEsX19hcmd1bWVudDIsX19hcmd1bWVudDMsX19maWxlbmFtZSxfX2Rpcm5hbWUpe1xudmFyIGxvb2t1cCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcblxuOyhmdW5jdGlvbiAoZXhwb3J0cykge1xuXHQndXNlIHN0cmljdCc7XG5cbiAgdmFyIEFyciA9ICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgPyBVaW50OEFycmF5XG4gICAgOiBBcnJheVxuXG5cdHZhciBQTFVTICAgPSAnKycuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0ggID0gJy8nLmNoYXJDb2RlQXQoMClcblx0dmFyIE5VTUJFUiA9ICcwJy5jaGFyQ29kZUF0KDApXG5cdHZhciBMT1dFUiAgPSAnYScuY2hhckNvZGVBdCgwKVxuXHR2YXIgVVBQRVIgID0gJ0EnLmNoYXJDb2RlQXQoMClcblx0dmFyIFBMVVNfVVJMX1NBRkUgPSAnLScuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0hfVVJMX1NBRkUgPSAnXycuY2hhckNvZGVBdCgwKVxuXG5cdGZ1bmN0aW9uIGRlY29kZSAoZWx0KSB7XG5cdFx0dmFyIGNvZGUgPSBlbHQuY2hhckNvZGVBdCgwKVxuXHRcdGlmIChjb2RlID09PSBQTFVTIHx8XG5cdFx0ICAgIGNvZGUgPT09IFBMVVNfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjIgLy8gJysnXG5cdFx0aWYgKGNvZGUgPT09IFNMQVNIIHx8XG5cdFx0ICAgIGNvZGUgPT09IFNMQVNIX1VSTF9TQUZFKVxuXHRcdFx0cmV0dXJuIDYzIC8vICcvJ1xuXHRcdGlmIChjb2RlIDwgTlVNQkVSKVxuXHRcdFx0cmV0dXJuIC0xIC8vbm8gbWF0Y2hcblx0XHRpZiAoY29kZSA8IE5VTUJFUiArIDEwKVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBOVU1CRVIgKyAyNiArIDI2XG5cdFx0aWYgKGNvZGUgPCBVUFBFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBVUFBFUlxuXHRcdGlmIChjb2RlIDwgTE9XRVIgKyAyNilcblx0XHRcdHJldHVybiBjb2RlIC0gTE9XRVIgKyAyNlxuXHR9XG5cblx0ZnVuY3Rpb24gYjY0VG9CeXRlQXJyYXkgKGI2NCkge1xuXHRcdHZhciBpLCBqLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyXG5cblx0XHRpZiAoYjY0Lmxlbmd0aCAlIDQgPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuXHRcdH1cblxuXHRcdC8vIHRoZSBudW1iZXIgb2YgZXF1YWwgc2lnbnMgKHBsYWNlIGhvbGRlcnMpXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIHR3byBwbGFjZWhvbGRlcnMsIHRoYW4gdGhlIHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBpdFxuXHRcdC8vIHJlcHJlc2VudCBvbmUgYnl0ZVxuXHRcdC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lLCB0aGVuIHRoZSB0aHJlZSBjaGFyYWN0ZXJzIGJlZm9yZSBpdCByZXByZXNlbnQgMiBieXRlc1xuXHRcdC8vIHRoaXMgaXMganVzdCBhIGNoZWFwIGhhY2sgdG8gbm90IGRvIGluZGV4T2YgdHdpY2Vcblx0XHR2YXIgbGVuID0gYjY0Lmxlbmd0aFxuXHRcdHBsYWNlSG9sZGVycyA9ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAyKSA/IDIgOiAnPScgPT09IGI2NC5jaGFyQXQobGVuIC0gMSkgPyAxIDogMFxuXG5cdFx0Ly8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5cdFx0YXJyID0gbmV3IEFycihiNjQubGVuZ3RoICogMyAvIDQgLSBwbGFjZUhvbGRlcnMpXG5cblx0XHQvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG5cdFx0bCA9IHBsYWNlSG9sZGVycyA+IDAgPyBiNjQubGVuZ3RoIC0gNCA6IGI2NC5sZW5ndGhcblxuXHRcdHZhciBMID0gMFxuXG5cdFx0ZnVuY3Rpb24gcHVzaCAodikge1xuXHRcdFx0YXJyW0wrK10gPSB2XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgaiA9IDA7IGkgPCBsOyBpICs9IDQsIGogKz0gMykge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxOCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCAxMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDIpKSA8PCA2KSB8IGRlY29kZShiNjQuY2hhckF0KGkgKyAzKSlcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMDAwKSA+PiAxNilcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMCkgPj4gOClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9XG5cblx0XHRpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPj4gNClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxMCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCA0KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpID4+IDIpXG5cdFx0XHRwdXNoKCh0bXAgPj4gOCkgJiAweEZGKVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdHJldHVybiBhcnJcblx0fVxuXG5cdGZ1bmN0aW9uIHVpbnQ4VG9CYXNlNjQgKHVpbnQ4KSB7XG5cdFx0dmFyIGksXG5cdFx0XHRleHRyYUJ5dGVzID0gdWludDgubGVuZ3RoICUgMywgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXNcblx0XHRcdG91dHB1dCA9IFwiXCIsXG5cdFx0XHR0ZW1wLCBsZW5ndGhcblxuXHRcdGZ1bmN0aW9uIGVuY29kZSAobnVtKSB7XG5cdFx0XHRyZXR1cm4gbG9va3VwLmNoYXJBdChudW0pXG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcblx0XHRcdHJldHVybiBlbmNvZGUobnVtID4+IDE4ICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDEyICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDYgJiAweDNGKSArIGVuY29kZShudW0gJiAweDNGKVxuXHRcdH1cblxuXHRcdC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcblx0XHRmb3IgKGkgPSAwLCBsZW5ndGggPSB1aW50OC5sZW5ndGggLSBleHRyYUJ5dGVzOyBpIDwgbGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdHRlbXAgPSAodWludDhbaV0gPDwgMTYpICsgKHVpbnQ4W2kgKyAxXSA8PCA4KSArICh1aW50OFtpICsgMl0pXG5cdFx0XHRvdXRwdXQgKz0gdHJpcGxldFRvQmFzZTY0KHRlbXApXG5cdFx0fVxuXG5cdFx0Ly8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuXHRcdHN3aXRjaCAoZXh0cmFCeXRlcykge1xuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHR0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV1cblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSh0ZW1wID4+IDIpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz09J1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0XHR0ZW1wID0gKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDJdIDw8IDgpICsgKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDFdKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMTApXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPj4gNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wIDw8IDIpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9ICc9J1xuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRcdHJldHVybiBvdXRwdXRcblx0fVxuXG5cdGV4cG9ydHMudG9CeXRlQXJyYXkgPSBiNjRUb0J5dGVBcnJheVxuXHRleHBvcnRzLmZyb21CeXRlQXJyYXkgPSB1aW50OFRvQmFzZTY0XG59KHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJyA/ICh0aGlzLmJhc2U2NGpzID0ge30pIDogZXhwb3J0cykpXG5cbn0pLmNhbGwodGhpcyxyZXF1aXJlKFwib01mcEFuXCIpLHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSxyZXF1aXJlKFwiYnVmZmVyXCIpLkJ1ZmZlcixhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSxhcmd1bWVudHNbNl0sXCIvLi4vLi4vbm9kZV9tb2R1bGVzL2d1bHAtYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvbGliL2I2NC5qc1wiLFwiLy4uLy4uL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2xpYlwiKSIsIihmdW5jdGlvbiAocHJvY2VzcyxnbG9iYWwsQnVmZmVyLF9fYXJndW1lbnQwLF9fYXJndW1lbnQxLF9fYXJndW1lbnQyLF9fYXJndW1lbnQzLF9fZmlsZW5hbWUsX19kaXJuYW1lKXtcbmV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtXG4gIHZhciBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxXG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxXG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMVxuICB2YXIgbkJpdHMgPSAtN1xuICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwXG4gIHZhciBkID0gaXNMRSA/IC0xIDogMVxuICB2YXIgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IGUgKiAyNTYgKyBidWZmZXJbb2Zmc2V0ICsgaV0sIGkgKz0gZCwgbkJpdHMgLT0gOCkge31cblxuICBtID0gZSAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBlID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBtTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IG0gPSBtICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgaWYgKGUgPT09IDApIHtcbiAgICBlID0gMSAtIGVCaWFzXG4gIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkge1xuICAgIHJldHVybiBtID8gTmFOIDogKChzID8gLTEgOiAxKSAqIEluZmluaXR5KVxuICB9IGVsc2Uge1xuICAgIG0gPSBtICsgTWF0aC5wb3coMiwgbUxlbilcbiAgICBlID0gZSAtIGVCaWFzXG4gIH1cbiAgcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBNYXRoLnBvdygyLCBlIC0gbUxlbilcbn1cblxuZXhwb3J0cy53cml0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIHZhbHVlLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbSwgY1xuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIHJ0ID0gKG1MZW4gPT09IDIzID8gTWF0aC5wb3coMiwgLTI0KSAtIE1hdGgucG93KDIsIC03NykgOiAwKVxuICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpXG4gIHZhciBkID0gaXNMRSA/IDEgOiAtMVxuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCAodmFsdWUgPT09IDAgJiYgMSAvIHZhbHVlIDwgMCkgPyAxIDogMFxuXG4gIHZhbHVlID0gTWF0aC5hYnModmFsdWUpXG5cbiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHtcbiAgICBtID0gaXNOYU4odmFsdWUpID8gMSA6IDBcbiAgICBlID0gZU1heFxuICB9IGVsc2Uge1xuICAgIGUgPSBNYXRoLmZsb29yKE1hdGgubG9nKHZhbHVlKSAvIE1hdGguTE4yKVxuICAgIGlmICh2YWx1ZSAqIChjID0gTWF0aC5wb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLVxuICAgICAgYyAqPSAyXG4gICAgfVxuICAgIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgdmFsdWUgKz0gcnQgLyBjXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKVxuICAgIH1cbiAgICBpZiAodmFsdWUgKiBjID49IDIpIHtcbiAgICAgIGUrK1xuICAgICAgYyAvPSAyXG4gICAgfVxuXG4gICAgaWYgKGUgKyBlQmlhcyA+PSBlTWF4KSB7XG4gICAgICBtID0gMFxuICAgICAgZSA9IGVNYXhcbiAgICB9IGVsc2UgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtID0gKHZhbHVlICogYyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSBlICsgZUJpYXNcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IHZhbHVlICogTWF0aC5wb3coMiwgZUJpYXMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gMFxuICAgIH1cbiAgfVxuXG4gIGZvciAoOyBtTGVuID49IDg7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IG0gJiAweGZmLCBpICs9IGQsIG0gLz0gMjU2LCBtTGVuIC09IDgpIHt9XG5cbiAgZSA9IChlIDw8IG1MZW4pIHwgbVxuICBlTGVuICs9IG1MZW5cbiAgZm9yICg7IGVMZW4gPiAwOyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBlICYgMHhmZiwgaSArPSBkLCBlIC89IDI1NiwgZUxlbiAtPSA4KSB7fVxuXG4gIGJ1ZmZlcltvZmZzZXQgKyBpIC0gZF0gfD0gcyAqIDEyOFxufVxuXG59KS5jYWxsKHRoaXMscmVxdWlyZShcIm9NZnBBblwiKSx0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30scmVxdWlyZShcImJ1ZmZlclwiKS5CdWZmZXIsYXJndW1lbnRzWzNdLGFyZ3VtZW50c1s0XSxhcmd1bWVudHNbNV0sYXJndW1lbnRzWzZdLFwiLy4uLy4uL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qc1wiLFwiLy4uLy4uL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NFwiKSIsIihmdW5jdGlvbiAocHJvY2VzcyxnbG9iYWwsQnVmZmVyLF9fYXJndW1lbnQwLF9fYXJndW1lbnQxLF9fYXJndW1lbnQyLF9fYXJndW1lbnQzLF9fZmlsZW5hbWUsX19kaXJuYW1lKXtcbi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbnByb2Nlc3MubmV4dFRpY2sgPSAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBjYW5TZXRJbW1lZGlhdGUgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICYmIHdpbmRvdy5zZXRJbW1lZGlhdGU7XG4gICAgdmFyIGNhblBvc3QgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICYmIHdpbmRvdy5wb3N0TWVzc2FnZSAmJiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lclxuICAgIDtcblxuICAgIGlmIChjYW5TZXRJbW1lZGlhdGUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChmKSB7IHJldHVybiB3aW5kb3cuc2V0SW1tZWRpYXRlKGYpIH07XG4gICAgfVxuXG4gICAgaWYgKGNhblBvc3QpIHtcbiAgICAgICAgdmFyIHF1ZXVlID0gW107XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2KSB7XG4gICAgICAgICAgICB2YXIgc291cmNlID0gZXYuc291cmNlO1xuICAgICAgICAgICAgaWYgKChzb3VyY2UgPT09IHdpbmRvdyB8fCBzb3VyY2UgPT09IG51bGwpICYmIGV2LmRhdGEgPT09ICdwcm9jZXNzLXRpY2snKSB7XG4gICAgICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZuID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRydWUpO1xuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBuZXh0VGljayhmbikge1xuICAgICAgICAgICAgcXVldWUucHVzaChmbik7XG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoJ3Byb2Nlc3MtdGljaycsICcqJyk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIG5leHRUaWNrKGZuKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZm4sIDApO1xuICAgIH07XG59KSgpO1xuXG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn1cblxuLy8gVE9ETyhzaHR5bG1hbilcbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG59KS5jYWxsKHRoaXMscmVxdWlyZShcIm9NZnBBblwiKSx0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30scmVxdWlyZShcImJ1ZmZlclwiKS5CdWZmZXIsYXJndW1lbnRzWzNdLGFyZ3VtZW50c1s0XSxhcmd1bWVudHNbNV0sYXJndW1lbnRzWzZdLFwiLy4uLy4uL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qc1wiLFwiLy4uLy4uL25vZGVfbW9kdWxlcy9ndWxwLWJyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3NcIikiLCIoZnVuY3Rpb24gKHByb2Nlc3MsZ2xvYmFsLEJ1ZmZlcixfX2FyZ3VtZW50MCxfX2FyZ3VtZW50MSxfX2FyZ3VtZW50MixfX2FyZ3VtZW50MyxfX2ZpbGVuYW1lLF9fZGlybmFtZSl7XG4ndXNlIHN0cmljdCc7XG5cbnZhciB1cmwgPSByZXF1aXJlKCcuL3VybCcpLFxuICBjYXAgPSByZXF1aXJlKCcuL3V0aWwnKS5jYXA7XG5cbnZhciAkID0galF1ZXJ5LFxuICAgIElGUkFNRV9IRUlHSFRfREVGQVVMVCA9IDMwMCxcbiAgICBJRlJBTUVfSEVJR0hUX01JTiA9IDEwMCxcbiAgICBJRlJBTUVfSEVJR0hUX01BWCA9IDMwMDAsXG4gICAgcGxheWVycyA9IHt9LFxuICAgIGZpcnN0UGxheWVyID0gdHJ1ZSxcbiAgICBtZXRhZGF0YUxpc3QgPSAncHdwX21ldGFkYXRhJyxcbi8vICAgIGF1dG9wbGF5ID0gdXJsLmdldEZyYWdtZW50KCdhdXRvcGxheScpLFxuICAgIHRpbWVyYW5nZSA9IHVybC5jaGVja0N1cnJlbnQoKTsgLy8gdGltZWNvZGVcblxudmFyIG9wdGlvbnM7IC8vIGdsb2JhbCBvcHRpb25zXG5cbmZ1bmN0aW9uIGNoZWNrQm91bmRhcmllcyh2YWx1ZSwgbWluLCBtYXgpIHtcbiAgcmV0dXJuICh2YWx1ZSA8IG1pbiB8fCB2YWx1ZSA+IG1heCk7XG59XG5cbi8qKlxuICogU2FuaXRpemUgcGxheWVyIGhlaWdodFxuICogQHBhcmFtIHtOdW1iZXJ9IGhlaWdodCBJZnJhbWUgaGVpZ2h0XG4gKiBAcmV0dXJucyB7TnVtYmVyfSBzYW5pdGl6ZWQgaGVpZ2h0XG4gKi9cbmZ1bmN0aW9uIGdldFBsYXllckhlaWdodChoZWlnaHQpIHtcbiAgaWYgKCFoZWlnaHQgfHwgaXNOYU4oaGVpZ2h0KSkge1xuICAgIGNvbnNvbGUud2FybignU2V0IGZyYW1lIGhlaWdodCB0byBkZWZhdWx0Jyk7XG4gICAgcmV0dXJuIElGUkFNRV9IRUlHSFRfREVGQVVMVDtcbiAgfVxuICBpZiAoIWNoZWNrQm91bmRhcmllcyhoZWlnaHQsIElGUkFNRV9IRUlHSFRfTUlOLCBJRlJBTUVfSEVJR0hUX01BWCkpIHtcbiAgICBjb25zb2xlLndhcm4oJ0ZyYW1lIGhlaWdodCcsIGhlaWdodCwgJ291dCBvZiBib3VuZHMuJyk7XG4gIH1cbiAgcmV0dXJuIGNhcChoZWlnaHQsIElGUkFNRV9IRUlHSFRfTUlOLCBJRlJBTUVfSEVJR0hUX01BWCk7XG59XG5cbi8qKlxuICogU2FuaXRpemUgcGxheWVyIHdpZHRoXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBkZWZhdWx0cyB0byAnMTAwJSdcbiAqL1xuZnVuY3Rpb24gZ2V0UGxheWVyV2lkdGgoKSB7XG4gIHJldHVybiAnMTAwJSc7XG59XG5cbi8qKlxuICogc3RyaXAgaGFzaCBmcm9tIGxvY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldElkRnJvbUxvY2F0aW9uKGxvY2F0aW9uKSB7XG4gIHZhciBocmVmID0gbG9jYXRpb24uaHJlZixcbiAgICBoYXNoUG9zaXRpb24gPSBocmVmLmluZGV4T2YoJyMnKSxcbiAgICB0byA9IGhyZWYubGVuZ3RoO1xuXG4gIGlmIChoYXNoUG9zaXRpb24gPj0gMCkge1xuICAgIHRvID0gaGFzaFBvc2l0aW9uO1xuICB9XG5cbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKDAsIHRvKTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGljRW1iZWRQYWdlU291cmNlKGlkKSB7XG4gIGlmICghb3B0aW9ucy5zdGF0aWNFbWJlZFBhZ2UpIHsgdGhyb3cgbmV3IEVycm9yKCdcInN0YXRpY0VtYmVkUGFnZVwiIHBhcmFtZXRlciBtaXNzaW5nLicpOyB9XG4gIHJldHVybiBvcHRpb25zLnN0YXRpY0VtYmVkUGFnZSArICc/JyArIGlkO1xufVxuXG5mdW5jdGlvbiBnZXRJZnJhbWVSZXBsYWNlbWVudCgpIHtcbiAgLypqc2hpbnQgdmFsaWR0aGlzOnRydWUgKi9cbiAgdmFyICRmcmFtZSwgZnJhbWUsIGRhdGE7XG4gIHZhciAkZWxlbWVudCA9ICQodGhpcyk7XG4gIHZhciBzb3VyY2UgPSAkZWxlbWVudC5kYXRhKCdwb2Rsb3ZlLXdlYi1wbGF5ZXItc291cmNlJyk7XG5cbiAgaWYgKCFzb3VyY2UpIHtcbiAgICB2YXIgZWxlbWVudElkID0gJGVsZW1lbnQuZ2V0KDApLmlkO1xuICAgIGlmICghZWxlbWVudElkKSB7IHRocm93IG5ldyBFcnJvcignRWxlbWVudCB3aXRob3V0IHNvdXJjZSBzZXQgbmVlZHMgYW4gSUQnKTsgfVxuICAgIHNvdXJjZSA9IGdldFN0YXRpY0VtYmVkUGFnZVNvdXJjZShlbGVtZW50SWQpO1xuICAgIGRhdGEgPSB3aW5kb3dbbWV0YWRhdGFMaXN0XVtlbGVtZW50SWRdO1xuICAgIGlmICghZGF0YSkgeyB0aHJvdyBuZXcgRXJyb3IoJ05vIGRhdGEgZm91bmQgZm9yIFwiJyArIGVsZW1lbnRJZCArICdcIicpOyB9XG4gIH1cblxuICBpZiAoZmlyc3RQbGF5ZXIgJiYgdGltZXJhbmdlWzBdKSB7XG4gICAgZmlyc3RQbGF5ZXIgPSBmYWxzZTtcbiAgICBzb3VyY2UgKz0gJyN0PScgKyB1cmwuZ2V0RnJhZ21lbnQoJ3QnKTtcbiAgfVxuXG4gICRmcmFtZSA9ICQoJzxpZnJhbWU+Jywge1xuICAgIHNyYzogc291cmNlLFxuICAgIGhlaWdodDogZ2V0UGxheWVySGVpZ2h0KCRlbGVtZW50LmRhdGEoJ3BvZGxvdmUtd2ViLXBsYXllci1oZWlnaHQnKSksXG4gICAgd2lkdGg6IGdldFBsYXllcldpZHRoKCRlbGVtZW50LmRhdGEoJ3BvZGxvdmUtd2ViLXBsYXllci13aWR0aCcpKSxcbiAgICBjbGFzc05hbWU6ICdwb2Rsb3ZlLXdlYnBsYXllci1mcmFtZScsXG4gICAgY3NzOiB7XG4gICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgIG92ZXJmbG93OiAnaGlkZGVuJ1xuICAgIH1cbiAgfSk7XG5cbiAgZnJhbWUgPSAkZnJhbWUuZ2V0KDApO1xuXG4gIC8vIHJlZ2lzdGVyIHBsYXllciBmcmFtZVxuICBwbGF5ZXJzW2ZyYW1lLnNyY10gPSB7XG4gICAgZGF0YTogZGF0YSxcbiAgICBmcmFtZTogJGZyYW1lLFxuICAgIHN0YXRlOiAtMVxuICB9O1xuICBjb25zb2xlLmluZm8oJ3JlZ2lzdGVyZWQgcGxheWVyIHdpdGggc3JjPScsIGZyYW1lLnNyYyk7XG5cbiAgcmV0dXJuICRmcmFtZTtcbn1cblxuLyoqXG4gKiBQYXVzZSBhbGwgcmVnaXN0ZXJlZCBwbGF5ZXJzIGV4Y2VwdCB0aGUgb25lIHdpdGggdGhlIGdpdmVuIElEXG4gKiBAcGFyYW0ge1N0cmluZ30gY3VycmVudFBsYXllcklkXG4gKi9cbmZ1bmN0aW9uIHBhdXNlUGxheWVyc0V4Y2VwdE9uZShjdXJyZW50UGxheWVySWQpIHtcbiAgdmFyIHBsYXllckRhdGEsIHBsYXllcklkLCBtZXNzYWdlID0ge2FjdGlvbjogJ3BhdXNlJ307XG4gIGZvciAocGxheWVySWQgaW4gcGxheWVycykge1xuICAgIGlmIChwbGF5ZXJJZCA9PT0gY3VycmVudFBsYXllcklkIHx8ICFwbGF5ZXJzLmhhc093blByb3BlcnR5KHBsYXllcklkKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHBsYXllckRhdGEgPSBwbGF5ZXJzW3BsYXllcklkXTtcbiAgICBpZiAocGxheWVyRGF0YS5zdGF0ZSA9PT0gMCkge1xuICAgICAgY29udGludWU7XG4gICAgfSAvLyBub3RoaW5nIHRvIGRvLCBpdCBpcyBhbHJlYWR5IHBhdXNlZFxuXG4gICAgcGxheWVyRGF0YS5mcmFtZS5nZXQoMCkuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShtZXNzYWdlLCBwbGF5ZXJJZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIGEgcmVjZWl2ZWQgbWVzc2FnZVxuICogQHBhcmFtIHtqUXVlcnkuRXZlbnR9IGV2ZW50XG4gKi9cbmZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHtcbiAgLy8gZGlzY2FyZCBoYXNoIC0gaXQgY2hhbmdlcyBhbG9uZyB3aXRoIHRoZSB0aW1lIG1lZGlhIGlzIHBsYXllZFxuICB2YXIgb3JpZ2luYWxFdmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQsXG4gICAgZGF0YSA9IG9yaWdpbmFsRXZlbnQuZGF0YSxcbiAgICBhY3Rpb24gPSBkYXRhLmFjdGlvbixcbiAgICBhcmd1bWVudE9iamVjdCA9IGRhdGEuYXJnLFxuICAgIGlkID0gZ2V0SWRGcm9tTG9jYXRpb24ob3JpZ2luYWxFdmVudC5zb3VyY2UubG9jYXRpb24pLFxuICAgIHBsYXllciA9IHBsYXllcnNbaWRdO1xuXG4gIGNvbnNvbGUuZGVidWcoJ3JlY2VpdmVkIG1lc3NhZ2UnLCBhY3Rpb24sIGFyZ3VtZW50T2JqZWN0KTtcblxuICBpZiAoIXBsYXllcikge1xuICAgIGNvbnNvbGUubG9nKCdubyBwbGF5ZXIgZm91bmQgd2l0aCBzcmM9JywgaWQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChhY3Rpb24gPT09IG51bGwgfHwgYXJndW1lbnRPYmplY3QgPT09IG51bGwpIHtcbiAgICBjb25zb2xlLndhcm4oJ25vIGFjdGlvbiBvciBkYXRhIHdhcyBnaXZlbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnNvbGUuZGVidWcoJ3JlY2VpdmVkJywgYWN0aW9uLCAnZnJvbScsIGlkLCAnd2l0aCcsIGFyZ3VtZW50T2JqZWN0KTtcblxuICBpZiAoYWN0aW9uID09PSAnd2FpdGluZycpIHtcbiAgICBwbGF5ZXIuZnJhbWUuZ2V0KDApLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe3BsYXllck9wdGlvbnM6IHBsYXllci5kYXRhfSwgJyonKTtcbiAgfVxuXG4gIGlmIChhY3Rpb24gPT09ICdyZWFkeScgfHwgYWN0aW9uID09PSAncGF1c2UnKSB7XG4gICAgcGxheWVyLnN0YXRlID0gMDtcbiAgfVxuXG4gIGlmIChhY3Rpb24gPT09ICdwbGF5Jykge1xuICAgIHBsYXllci5zdGF0ZSA9IDE7XG4gICAgcGF1c2VQbGF5ZXJzRXhjZXB0T25lKGlkKTtcbiAgfVxuXG4gIGlmIChhY3Rpb24gPT09ICdyZXNpemUnKSB7XG4gICAgcGxheWVyLmZyYW1lLmhlaWdodChnZXRQbGF5ZXJIZWlnaHQoYXJndW1lbnRPYmplY3QpKTtcbiAgfVxufVxuXG4vLyByZWNlaXZlIG1lc3NhZ2VzIGZyb20gZW1iZWRkZWQgcGxheWVyc1xuJCh3aW5kb3cpLm9uKCdtZXNzYWdlJywgaGFuZGxlTWVzc2FnZSk7XG5cbi8qKlxuICogUmVwbGFjZSBzZWxlY3Rpb24gb2Ygbm9kZXMgd2l0aCBlbWJlZGRlZCBwb2Rsb3ZlIHdlYnBsYXllcnMgYW5kIHJlZ2lzdGVyIHRoZW0gaW50ZXJuYWxseVxuICogQHBhcmFtIHtvYmplY3R9IG9wdHNcbiAqIEByZXR1cm5zIHtqUXVlcnl9IGpRdWVyeSBleHRlbmRlZCBIVE1MSUZyYW1lRWxlbWVudFxuICovXG4kLmZuLnBvZGxvdmV3ZWJwbGF5ZXIgPSBmdW5jdGlvbiAob3B0cykge1xuICBvcHRpb25zID0gb3B0cyB8fCB7fTtcbiAgcmV0dXJuIHRoaXMucmVwbGFjZVdpdGgoZ2V0SWZyYW1lUmVwbGFjZW1lbnQpO1xufTtcblxud2luZG93LnB3cCA9IHtcbiAgcGxheWVyczogcGxheWVyc1xufTtcblxufSkuY2FsbCh0aGlzLHJlcXVpcmUoXCJvTWZwQW5cIiksdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9LHJlcXVpcmUoXCJidWZmZXJcIikuQnVmZmVyLGFyZ3VtZW50c1szXSxhcmd1bWVudHNbNF0sYXJndW1lbnRzWzVdLGFyZ3VtZW50c1s2XSxcIi9mYWtlXzUwNGY2Y2M3LmpzXCIsXCIvXCIpIiwiKGZ1bmN0aW9uIChwcm9jZXNzLGdsb2JhbCxCdWZmZXIsX19hcmd1bWVudDAsX19hcmd1bWVudDEsX19hcmd1bWVudDIsX19hcmd1bWVudDMsX19maWxlbmFtZSxfX2Rpcm5hbWUpe1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgemVyb0ZpbGwgPSByZXF1aXJlKCcuL3V0aWwnKS56ZXJvRmlsbDtcblxuLyoqXG4gKiBUaW1lY29kZSBhcyBkZXNjcmliZWQgaW4gaHR0cDovL3BvZGxvdmUub3JnL2RlZXAtbGluay9cbiAqIGFuZCBodHRwOi8vd3d3LnczLm9yZy9UUi9tZWRpYS1mcmFncy8jZnJhZ21lbnQtZGltZW5zaW9uc1xuICovXG52YXIgdGltZUNvZGVNYXRjaGVyID0gLyg/OihcXGQrKTopPyhcXGR7MSwyfSk6KFxcZFxcZCkoXFwuXFxkezEsM30pPy87XG5cbi8qKlxuICogY29udmVydCBhbiBhcnJheSBvZiBzdHJpbmcgdG8gdGltZWNvZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0Y1xuICogQHJldHVybnMge251bWJlcnxib29sZWFufVxuICovXG5mdW5jdGlvbiBleHRyYWN0VGltZSh0Yykge1xuICBpZiAoIXRjKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwYXJ0cyA9IHRpbWVDb2RlTWF0Y2hlci5leGVjKHRjKTtcbiAgaWYgKCFwYXJ0cykge1xuICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IGV4dHJhY3QgdGltZSBmcm9tJywgdGMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdGltZSA9IDA7XG4gIC8vIGhvdXJzXG4gIHRpbWUgKz0gcGFydHNbMV0gPyBwYXJzZUludChwYXJ0c1sxXSwgMTApICogNjAgKiA2MCA6IDA7XG4gIC8vIG1pbnV0ZXNcbiAgdGltZSArPSBwYXJzZUludChwYXJ0c1syXSwgMTApICogNjA7XG4gIC8vIHNlY29uZHNcbiAgdGltZSArPSBwYXJzZUludChwYXJ0c1szXSwgMTApO1xuICAvLyBtaWxsaXNlY29uZHNcbiAgdGltZSArPSBwYXJ0c1s0XSA/IHBhcnNlRmxvYXQocGFydHNbNF0pIDogMDtcbiAgLy8gbm8gbmVnYXRpdmUgdGltZVxuICB0aW1lID0gTWF0aC5tYXgodGltZSwgMCk7XG4gIHJldHVybiB0aW1lO1xufVxuXG4vKipcbiAqIGNvbnZlcnQgYSB0aW1lc3RhbXAgdG8gYSB0aW1lY29kZSBpbiAke2luc2VydCBSRkMgaGVyZX0gZm9ybWF0XG4gKiBAcGFyYW0ge051bWJlcn0gdGltZVxuICogQHBhcmFtIHtCb29sZWFufSBsZWFkaW5nWmVyb3NcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2ZvcmNlSG91cnNdIGZvcmNlIG91dHB1dCBvZiBob3VycywgZGVmYXVsdHMgdG8gZmFsc2VcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW3Nob3dNaWxsaXNdIG91dHB1dCBtaWxsaXNlY29uZHMgc2VwYXJhdGVkIHdpdGggYSBkb3QgZnJvbSB0aGUgc2Vjb25kcyAtIGRlZmF1bHRzIHRvIGZhbHNlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHRzMnRjKHRpbWUsIGxlYWRpbmdaZXJvcywgZm9yY2VIb3Vycywgc2hvd01pbGxpcykge1xuICB2YXIgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1pbGxpc2Vjb25kcztcbiAgdmFyIHRpbWVjb2RlID0gJyc7XG5cbiAgaWYgKHRpbWUgPT09IDApIHtcbiAgICByZXR1cm4gKGZvcmNlSG91cnMgPyAnMDA6MDA6MDAnIDogJzAwOjAwJyk7XG4gIH1cblxuICAvLyBwcmV2ZW50IG5lZ2F0aXZlIHZhbHVlcyBmcm9tIHBsYXllclxuICBpZiAoIXRpbWUgfHwgdGltZSA8PSAwKSB7XG4gICAgcmV0dXJuIChmb3JjZUhvdXJzID8gJy0tOi0tOi0tJyA6ICctLTotLScpO1xuICB9XG5cbiAgaG91cnMgPSBNYXRoLmZsb29yKHRpbWUgLyA2MCAvIDYwKTtcbiAgbWludXRlcyA9IE1hdGguZmxvb3IodGltZSAvIDYwKSAlIDYwO1xuICBzZWNvbmRzID0gTWF0aC5mbG9vcih0aW1lICUgNjApICUgNjA7XG4gIG1pbGxpc2Vjb25kcyA9IE1hdGguZmxvb3IodGltZSAlIDEgKiAxMDAwKTtcblxuICBpZiAoc2hvd01pbGxpcyAmJiBtaWxsaXNlY29uZHMpIHtcbiAgICB0aW1lY29kZSA9ICcuJyArIHplcm9GaWxsKG1pbGxpc2Vjb25kcywgMyk7XG4gIH1cblxuICB0aW1lY29kZSA9ICc6JyArIHplcm9GaWxsKHNlY29uZHMsIDIpICsgdGltZWNvZGU7XG5cbiAgaWYgKGhvdXJzID09PSAwICYmICFmb3JjZUhvdXJzICYmICFsZWFkaW5nWmVyb3MgKSB7XG4gICAgcmV0dXJuIG1pbnV0ZXMudG9TdHJpbmcoKSArIHRpbWVjb2RlO1xuICB9XG5cbiAgdGltZWNvZGUgPSB6ZXJvRmlsbChtaW51dGVzLCAyKSArIHRpbWVjb2RlO1xuXG4gIGlmIChob3VycyA9PT0gMCAmJiAhZm9yY2VIb3Vycykge1xuICAgIC8vIHJlcXVpcmVkIChtaW51dGVzIDogc2Vjb25kcylcbiAgICByZXR1cm4gdGltZWNvZGU7XG4gIH1cblxuICBpZiAobGVhZGluZ1plcm9zKSB7XG4gICAgcmV0dXJuIHplcm9GaWxsKGhvdXJzLCAyKSArICc6JyArIHRpbWVjb2RlO1xuICB9XG5cbiAgcmV0dXJuIGhvdXJzICsgJzonICsgdGltZWNvZGU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXG4gIC8qKlxuICAgKiBjb252ZW5pZW5jZSBtZXRob2QgZm9yIGNvbnZlcnRpbmcgdGltZXN0YW1wcyB0b1xuICAgKiBAcGFyYW0ge051bWJlcn0gdGltZXN0YW1wXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IHRpbWVjb2RlXG4gICAqL1xuICBmcm9tVGltZVN0YW1wOiBmdW5jdGlvbiAodGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIHRzMnRjKHRpbWVzdGFtcCwgdHJ1ZSwgdHJ1ZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIGFjY2VwdHMgYXJyYXkgd2l0aCBzdGFydCBhbmQgZW5kIHRpbWUgaW4gc2Vjb25kc1xuICAgKiByZXR1cm5zIHRpbWVjb2RlIGluIGRlZXAtbGlua2luZyBmb3JtYXRcbiAgICogQHBhcmFtIHtBcnJheX0gdGltZXNcbiAgICogQHBhcmFtIHtCb29sZWFufSBsZWFkaW5nWmVyb3NcbiAgICogQHBhcmFtIHtCb29sZWFufSBbZm9yY2VIb3Vyc11cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZ2VuZXJhdGU6IGZ1bmN0aW9uICh0aW1lcywgbGVhZGluZ1plcm9zLCBmb3JjZUhvdXJzKSB7XG4gICAgaWYgKHRpbWVzWzFdID4gMCAmJiB0aW1lc1sxXSA8IDk5OTk5OTkgJiYgdGltZXNbMF0gPCB0aW1lc1sxXSkge1xuICAgICAgcmV0dXJuIHRzMnRjKHRpbWVzWzBdLCBsZWFkaW5nWmVyb3MsIGZvcmNlSG91cnMpICsgJywnICsgdHMydGModGltZXNbMV0sIGxlYWRpbmdaZXJvcywgZm9yY2VIb3Vycyk7XG4gICAgfVxuICAgIHJldHVybiB0czJ0Yyh0aW1lc1swXSwgbGVhZGluZ1plcm9zLCBmb3JjZUhvdXJzKTtcbiAgfSxcblxuICAvKipcbiAgICogcGFyc2VzIHRpbWUgY29kZSBpbnRvIHNlY29uZHNcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRpbWVjb2RlXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgcGFyc2U6IGZ1bmN0aW9uICh0aW1lY29kZSkge1xuICAgIGlmICghdGltZWNvZGUpIHtcbiAgICAgIHJldHVybiBbZmFsc2UsIGZhbHNlXTtcbiAgICB9XG5cbiAgICB2YXIgdGltZXBhcnRzID0gdGltZWNvZGUuc3BsaXQoJy0nKTtcblxuICAgIGlmICghdGltZXBhcnRzLmxlbmd0aCkge1xuICAgICAgY29uc29sZS53YXJuKCdubyB0aW1lcGFydHM6JywgdGltZWNvZGUpO1xuICAgICAgcmV0dXJuIFtmYWxzZSwgZmFsc2VdO1xuICAgIH1cblxuICAgIHZhciBzdGFydFRpbWUgPSBleHRyYWN0VGltZSh0aW1lcGFydHMuc2hpZnQoKSk7XG4gICAgdmFyIGVuZFRpbWUgPSBleHRyYWN0VGltZSh0aW1lcGFydHMuc2hpZnQoKSk7XG5cbiAgICByZXR1cm4gKGVuZFRpbWUgPiBzdGFydFRpbWUpID8gW3N0YXJ0VGltZSwgZW5kVGltZV0gOiBbc3RhcnRUaW1lLCBmYWxzZV07XG4gIH0sXG5cbiAgZ2V0U3RhcnRUaW1lQ29kZTogZnVuY3Rpb24gZ2V0U3RhcnRUaW1lY29kZShzdGFydCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc3RhcnQpWzBdO1xuICB9XG59O1xuXG59KS5jYWxsKHRoaXMscmVxdWlyZShcIm9NZnBBblwiKSx0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30scmVxdWlyZShcImJ1ZmZlclwiKS5CdWZmZXIsYXJndW1lbnRzWzNdLGFyZ3VtZW50c1s0XSxhcmd1bWVudHNbNV0sYXJndW1lbnRzWzZdLFwiL3RpbWVjb2RlLmpzXCIsXCIvXCIpIiwiKGZ1bmN0aW9uIChwcm9jZXNzLGdsb2JhbCxCdWZmZXIsX19hcmd1bWVudDAsX19hcmd1bWVudDEsX19hcmd1bWVudDIsX19hcmd1bWVudDMsX19maWxlbmFtZSxfX2Rpcm5hbWUpe1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgdGMgPSByZXF1aXJlKCcuL3RpbWVjb2RlJyk7XG5cbi8qXG4gIFwidD0xXCJcdFsoXCJ0XCIsIFwiMVwiKV1cdHNpbXBsZSBjYXNlXG4gIFwidD0xJnQ9MlwiXHRbKFwidFwiLCBcIjFcIiksIChcInRcIiwgXCIyXCIpXVx0cmVwZWF0ZWQgbmFtZVxuICBcImE9Yj1jXCJcdFsoXCJhXCIsIFwiYj1jXCIpXVx0XCI9XCIgaW4gdmFsdWVcbiAgXCJhJmI9Y1wiXHRbKFwiYVwiLCBcIlwiKSwgKFwiYlwiLCBcImNcIildXHRtaXNzaW5nIHZhbHVlXG4gIFwiJTc0PSU2ZXB0JTNBJTMxMFwiXHRbKFwidFwiLCBcIm5wdDoxMFwiKV1cdHVubmVjc3NhcnkgcGVyY2VudC1lbmNvZGluZ1xuICBcImlkPSV4eSZ0PTFcIlx0WyhcInRcIiwgXCIxXCIpXVx0aW52YWxpZCBwZXJjZW50LWVuY29kaW5nXG4gIFwiaWQ9JUU0ciZ0PTFcIlx0WyhcInRcIiwgXCIxXCIpXVx0aW52YWxpZCBVVEYtOFxuICovXG5cbi8qKlxuICogZ2V0IHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIFVSTCBoYXNoIGZyYWdtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IG5hbWUgb2YgdGhlIGZyYWdtZW50XG4gKiBAcmV0dXJucyB7c3RyaW5nfGJvb2xlYW59IHZhbHVlIG9mIHRoZSBmcmFnbWVudCBvciBmYWxzZSB3aGVuIG5vdCBmb3VuZCBpbiBVUkxcbiAqL1xuZnVuY3Rpb24gZ2V0RnJhZ21lbnQoa2V5KSB7XG4gIHZhciBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cmluZygxKSxcbiAgICBwYWlycyA9IHF1ZXJ5LnNwbGl0KCcmJyk7XG5cbiAgaWYgKHF1ZXJ5LmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKHZhciBpID0gMCwgbCA9IHBhaXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKTtcbiAgICBpZiAocGFpclswXSAhPT0ga2V5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHBhaXIubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVVJMIGhhbmRsaW5nIGhlbHBlcnNcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldEZyYWdtZW50OiBnZXRGcmFnbWVudCxcbiAgY2hlY2tDdXJyZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHQgPSBnZXRGcmFnbWVudCgndCcpO1xuICAgIHJldHVybiB0Yy5wYXJzZSh0KTtcbiAgfVxufTtcblxufSkuY2FsbCh0aGlzLHJlcXVpcmUoXCJvTWZwQW5cIiksdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9LHJlcXVpcmUoXCJidWZmZXJcIikuQnVmZmVyLGFyZ3VtZW50c1szXSxhcmd1bWVudHNbNF0sYXJndW1lbnRzWzVdLGFyZ3VtZW50c1s2XSxcIi91cmwuanNcIixcIi9cIikiLCIoZnVuY3Rpb24gKHByb2Nlc3MsZ2xvYmFsLEJ1ZmZlcixfX2FyZ3VtZW50MCxfX2FyZ3VtZW50MSxfX2FyZ3VtZW50MixfX2FyZ3VtZW50MyxfX2ZpbGVuYW1lLF9fZGlybmFtZSl7XG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogcmV0dXJuIG5ldyB2YWx1ZSBpbiBib3VuZHMgb2YgbWluIGFuZCBtYXhcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWwgYW55IG51bWJlclxuICogQHBhcmFtIHtudW1iZXJ9IG1pbiBsb3dlciBib3VuZGFyeSBmb3IgdmFsXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4IHVwcGVyIGJvdW5kYXJ5IGZvciB2YWxcbiAqIEByZXR1cm5zIHtudW1iZXJ9IHJlc3VsdGluZyB2YWx1ZVxuICovXG5mdW5jdGlvbiBjYXAodmFsLCBtaW4sIG1heCkge1xuICAvLyBjYXAgeCB2YWx1ZXNcbiAgdmFsID0gTWF0aC5tYXgodmFsLCBtaW4pO1xuICB2YWwgPSBNYXRoLm1pbih2YWwsIG1heCk7XG4gIHJldHVybiB2YWw7XG59XG5cbi8qKlxuICogcmV0dXJuIG51bWJlciBhcyBzdHJpbmcgbGVmdGhhbmQgZmlsbGVkIHdpdGggemVyb3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgKGludGVnZXIpIHZhbHVlIHRvIGJlIHBhZGRlZFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIGxlbmd0aCBvZiB0aGUgc3RyaW5nIHRoYXQgaXMgcmV0dXJuZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHBhZGRlZCBudW1iZXJcbiAqL1xuZnVuY3Rpb24gemVyb0ZpbGwgKG51bWJlciwgd2lkdGgpIHtcbiAgdmFyIHMgPSBudW1iZXIudG9TdHJpbmcoKTtcbiAgd2hpbGUgKHMubGVuZ3RoIDwgd2lkdGgpIHtcbiAgICBzID0gJzAnICsgcztcbiAgfVxuICByZXR1cm4gcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNhcDogY2FwLFxuICB6ZXJvRmlsbDogemVyb0ZpbGxcbn07XG5cbn0pLmNhbGwodGhpcyxyZXF1aXJlKFwib01mcEFuXCIpLHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSxyZXF1aXJlKFwiYnVmZmVyXCIpLkJ1ZmZlcixhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSxhcmd1bWVudHNbNl0sXCIvdXRpbC5qc1wiLFwiL1wiKSJdfQ==