From 9e8eada9fee18acad494ef24a0909850a7d1778c Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 02:13:56 +0200 Subject: [PATCH 01/36] my commentary --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 590697c..46dc2a4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,14 @@ +## yet another necro component pulled into service + +This guy is from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. + +I was thinking about using web2vr and doing the proper stats panel, but that would definitely add more impact to the site being measured itself than this option. There's also probably other nice ways to implement this idea these days. but I googled, found this, and then found this pull request on it: +https://github.com/chenzlabs/stats-in-vr/pull/1 + +Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 + +So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'main.js' file. + ## aframe-stats-in-vr-component stats-in-vr component for [A-Frame](https://aframe.io). From 250ee70464eab10e49e4ca2da7ac604412716077 Mon Sep 17 00:00:00 2001 From: kyle Date: Thu, 19 Aug 2021 02:16:20 +0200 Subject: [PATCH 02/36] attempt to update to pull request mentioned in readme --- README.md | 42 +- dist/aframe-stats-in-vr-component.js | 159 +- dist/aframe-stats-in-vr-component.min.js | 2 +- examples/advanced/index.html | 94 +- examples/basic/index.html | 48 +- examples/index.html | 94 +- examples/mobile-screenshot.png | Bin 97902 -> 45101 bytes examples/pc-screenshot.png | Bin 50113 -> 16448 bytes examples/style.css | 41 + package.json | 17 +- stats-in-vr.js | 151 +- yarn.lock | 6904 ++++++++++++++++++++++ 12 files changed, 7290 insertions(+), 262 deletions(-) create mode 100644 examples/style.css create mode 100644 yarn.lock diff --git a/README.md b/README.md index 46dc2a4..eb33373 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,12 @@ -## yet another necro component pulled into service - -This guy is from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. - -I was thinking about using web2vr and doing the proper stats panel, but that would definitely add more impact to the site being measured itself than this option. There's also probably other nice ways to implement this idea these days. but I googled, found this, and then found this pull request on it: -https://github.com/chenzlabs/stats-in-vr/pull/1 - -Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 - -So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'main.js' file. - ## aframe-stats-in-vr-component +![npm (scoped)](https://img.shields.io/npm/v/@aframe-community/aframe-stats-in-vr-component) +![NPM](https://img.shields.io/npm/l/@aframe-community/aframe-stats-in-vr-component) +![npm](https://img.shields.io/npm/dm/@aframe-community/aframe-stats-in-vr-component) + stats-in-vr component for [A-Frame](https://aframe.io). -![Screenshot](https://chenzlabs.github.io/stats-in-vr/pc-screenshot.png) +![Screenshot](https://raw.githubusercontent.com/aframe-community/stats-in-vr/master/examples/pc-screenshot.png) The stats-in-vr component allows the A-Frame scene stats component to be visible in VR. ## Example @@ -24,16 +17,17 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ## Value -| Property | Description | Default Value | -|----------------------|----------------------------------------------------|----------------------| -| enabled | Whether enabled or not. | true | -| position | Position of camera-locked stats panel. | '0 -0.35 -0.5' | -| scale | Scale of camera-locked stats panel. | '0.5 0.5 1' | +| Property | Description | Default Value | +| -------- | -------------------------------------- | -------------- | +| enabled | Whether enabled or not. | true | +| position | Position of camera-locked stats panel. | '0 -0.35 -0.5' | +| scale | Scale of camera-locked stats panel. | '0.5 0.5 1' | ## Events -| Event Name | Description | -| ---------- | ----------- | +| Event Name | Description | +| ---------- | ----------- | + ### Installation @@ -44,8 +38,8 @@ Install and use by directly including the [browser files](dist): ```html My A-Frame Scene - - + + @@ -58,12 +52,12 @@ Install and use by directly including the [browser files](dist): Install via npm: ```bash -npm install aframe-stats-in-vr-component +npm install @aframe-community/aframe-stats-in-vr-component ``` Then register and use. ```js -require('aframe'); -require('aframe-stats-in-vr-component'); +require("aframe"); +require("aframe-stats-in-vr-component"); ``` diff --git a/dist/aframe-stats-in-vr-component.js b/dist/aframe-stats-in-vr-component.js index ff890d8..49f6434 100644 --- a/dist/aframe-stats-in-vr-component.js +++ b/dist/aframe-stats-in-vr-component.js @@ -42,53 +42,58 @@ /************************************************************************/ /******/ ([ /* 0 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { __webpack_require__(1); -/***/ }, +/***/ }), /* 1 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { /* globals AFRAME */ /** * Show scene stats in VR. */ - AFRAME.registerComponent('stats-in-vr', { - dependencies: ['stats'], + AFRAME.registerComponent("stats-in-vr", { + dependencies: ["stats"], schema: { - enabled: {type:'boolean', default: true}, - position: {type:'string', default: '0 -0.35 -0.5'}, - scale: {type:'string', default: '0.5 0.5 1'}, - updateIntervalMillis: {type:'number', default: 500} + enabled: { type: "boolean", default: true }, + position: { type: "string", default: "0 -0.35 -0.5" }, + scale: { type: "string", default: "0.5 0.5 1" }, + updateIntervalMillis: { type: "number", default: 500 } }, - init: function () { + init: function() { var scene = this.el; - var statsEl = scene.components['stats'].statsEl; + var statsEl = scene.components["stats"].statsEl; // hide the DOM stats panel - statsEl.style = 'display: none !important;'; - statsEl.className = 'a-hidden'; + //statsEl.style = 'display: none !important;'; + //statsEl.className = 'a-hidden'; // once we start rendering, create VR stats panel - if (scene.renderStarted) { this.createStatsPanel(); } else { - scene.addEventListener('renderstart', this.createStatsPanel.bind(this)); + if (scene.renderStarted) { + this.createStatsPanel(); + } else { + scene.addEventListener("renderstart", this.createStatsPanel.bind(this)); } }, - createStatsPanel: function () { + createStatsPanel: function() { var self = this; // attached to scene element, so inject stats panel into camera - self.statspanel = document.createElement('a-entity'); - self.statspanel.setAttribute('id', 'statspanel'); - self.statspanel.setAttribute('position', self.data.position); - self.statspanel.setAttribute('scale', self.data.scale); - self.statspanel.setAttribute('visible', self.data.enabled ? 'true' : 'false'); + self.statspanel = document.createElement("a-entity"); + self.statspanel.setAttribute("id", "statspanel"); + self.statspanel.setAttribute("position", self.data.position); + self.statspanel.setAttribute("scale", self.data.scale); + self.statspanel.setAttribute( + "visible", + self.data.enabled ? "true" : "false" + ); self.el.camera.el.appendChild(self.statspanel); // set up the VR stats panel @@ -97,98 +102,110 @@ self.rsvalues = []; }, - updateStatsPanel: function () { + updateStatsPanel: function() { var self = this; - if (!self.statspanel || !self.rsids) { return; } + if (!self.statspanel || !self.rsids) { + return; + } var scene = this.el; - var statsEl = scene.components['stats'].statsEl; - var rscanvases = document.querySelectorAll('.rs-canvas'); + var statsEl = scene.components["stats"].statsEl; + var rscanvases = document.querySelectorAll(".rs-canvas"); for (var i = 0; i < rscanvases.length; i++) { var rsparent = rscanvases[i].parentElement; - var rsid = rsparent.querySelector('.rs-counter-id').innerText; - if (self.rsids.indexOf(rsid) >= 0) { continue; } + var rsid = rsparent.querySelector(".rs-counter-id").innerText; + + if (self.rsids.indexOf(rsid) >= 0) { + continue; + } // remember labels and value elements self.rsids.push(rsid); - self.rsvalues.push(rsparent.querySelector('.rs-counter-value')); + self.rsvalues.push(rsparent.querySelector(".rs-counter-value")); // inject id values for rstats canvases - var idsuffix = self.rsids[i].replace(' ', '_'); - rscanvases[i].id = 'rstats-' + idsuffix; + var idsuffix = self.rsids[i].replace(" ", "_"); + rscanvases[i].id = "rstats-" + idsuffix; - var y = (1.25 - i * 0.025) + ' 0'; - - // create the image for the rstats canvas - var stats = document.createElement('a-image'); - stats.setAttribute('position', '-0.08 ' + y); - stats.setAttribute('width', '0.34'); - stats.setAttribute('height', '0.025'); - stats.setAttribute('src', '#' + rscanvases[i].id); - self.statspanel.appendChild(stats); + var y = 1.25 - i * 0.025 + " 0"; // create the canvas for the value - var valuecanvas = document.createElement('canvas'); - valuecanvas.setAttribute('id', 'value-' + idsuffix); - valuecanvas.setAttribute('width', '160'); - valuecanvas.setAttribute('height', '20'); - valuecanvas.setAttribute('crossorigin', 'anonymous'); + var valuecanvas = document.createElement("canvas"); + valuecanvas.setAttribute("id", "value-" + idsuffix); + valuecanvas.setAttribute("width", "192"); + valuecanvas.setAttribute("height", "16"); + valuecanvas.setAttribute("crossorigin", "anonymous"); self.valuecanvases.push(valuecanvas); // add the value canvas statsEl.appendChild(self.valuecanvases[i]); // create the image for the value canvas - var value = document.createElement('a-image'); - value.setAttribute('position', '0.17 ' + y); - value.setAttribute('width', '0.16'); - value.setAttribute('height', '0.025'); - value.setAttribute('src', '#' + self.valuecanvases[i].id); + var value = document.createElement("a-image"); + value.setAttribute("id", "aframe-" + idsuffix); + value.setAttribute("position", "0.17 " + y); + value.setAttribute("width", "0.16"); + value.setAttribute("height", "0.025"); + value.setAttribute("src", "#" + self.valuecanvases[i].id); self.statspanel.appendChild(value); + } }, - update: function () { - if (!this.statspanel) { return; } - this.statspanel.setAttribute('position', this.data.position); - this.statspanel.setAttribute('scale', this.data.scale); - return (!this.data.enabled) ? this.hide() : this.show(); + update: function() { + if (!this.statspanel) { + return; + } + this.statspanel.setAttribute("position", this.data.position); + this.statspanel.setAttribute("scale", this.data.scale); + return !this.data.enabled ? this.hide() : this.show(); }, - remove: function () { + remove: function() { var scene = this.el; - var statsEl = scene.components['stats'].statsEl; + var statsEl = scene.components["stats"].statsEl; statsEl.parentNode.removeChild(statsEl); }, - tick: function () { + tick: function() { // periodically update the value canvases var now = Date.now(); - if (now < this.lastTime + this.data.updateIntervalMillis) { return; } + if (now < this.lastTime + this.data.updateIntervalMillis) { + return; + } this.lastTime = now; - this.updateStatsPanel(); if (this.valuecanvases) { + this.updateStatsPanel(); for (var i = 0; i < this.valuecanvases.length; i++) { - var ctx = this.valuecanvases[i].getContext('2d'); - ctx.font = '16px monospace'; - ctx.fillStyle = 'gray'; - ctx.fillRect(0, 0, 160, 20); - ctx.fillStyle = 'black'; - ctx.fillText(this.rsvalues[i].innerText + ' ' + this.rsids[i], 2, 16); + var ctx = this.valuecanvases[i].getContext("2d"); + ctx.clearRect(0, 0, 192, 16); + ctx.font = "12px monospace"; + ctx.fillStyle = "gray"; + ctx.fillRect(0, 0, 192, 16); + ctx.fillStyle = "black"; + ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 16); + + if (this.statspanel.childNodes.item(i).components.material.shader){ + this.statspanel.childNodes.item(i).components.material.material.map.needsUpdate = true; + } + } } }, - hide: function () { - if (this.statspanel) { this.statspanel.object3D.visible = false; } + hide: function() { + if (this.statspanel) { + this.statspanel.object3D.visible = false; + } }, - show: function () { - if (this.statspanel) { this.statspanel.object3D.visible = true; } + show: function() { + if (this.statspanel) { + this.statspanel.object3D.visible = true; + } } - }); -/***/ } +/***/ }) /******/ ]); \ No newline at end of file diff --git a/dist/aframe-stats-in-vr-component.min.js b/dist/aframe-stats-in-vr-component.min.js index 59871d4..2d93db6 100644 --- a/dist/aframe-stats-in-vr-component.min.js +++ b/dist/aframe-stats-in-vr-component.min.js @@ -1 +1 @@ -!function(t){function e(a){if(s[a])return s[a].exports;var i=s[a]={exports:{},id:a,loaded:!1};return t[a].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}([function(t,e,s){s(1)},function(t,e){AFRAME.registerComponent("stats-in-vr",{dependencies:["stats"],schema:{enabled:{type:"boolean",default:!0},position:{type:"string",default:"0 -0.35 -0.5"},scale:{type:"string",default:"0.5 0.5 1"},updateIntervalMillis:{type:"number",default:500}},init:function(){var t=this.el,e=t.components.stats.statsEl;e.style="display: none !important;",e.className="a-hidden",t.renderStarted?this.createStatsPanel():t.addEventListener("renderstart",this.createStatsPanel.bind(this))},createStatsPanel:function(){var t=this;t.statspanel=document.createElement("a-entity"),t.statspanel.setAttribute("id","statspanel"),t.statspanel.setAttribute("position",t.data.position),t.statspanel.setAttribute("scale",t.data.scale),t.statspanel.setAttribute("visible",t.data.enabled?"true":"false"),t.el.camera.el.appendChild(t.statspanel),t.valuecanvases=[],t.rsids=[],t.rsvalues=[]},updateStatsPanel:function(){var t=this;if(t.statspanel&&t.rsids)for(var e=this.el,s=e.components.stats.statsEl,a=document.querySelectorAll(".rs-canvas"),i=0;i=0)){t.rsids.push(r),t.rsvalues.push(n.querySelector(".rs-counter-value"));var l=t.rsids[i].replace(" ","_");a[i].id="rstats-"+l;var o=1.25-.025*i+" 0",u=document.createElement("a-image");u.setAttribute("position","-0.08 "+o),u.setAttribute("width","0.34"),u.setAttribute("height","0.025"),u.setAttribute("src","#"+a[i].id),t.statspanel.appendChild(u);var d=document.createElement("canvas");d.setAttribute("id","value-"+l),d.setAttribute("width","160"),d.setAttribute("height","20"),d.setAttribute("crossorigin","anonymous"),t.valuecanvases.push(d),s.appendChild(t.valuecanvases[i]);var c=document.createElement("a-image");c.setAttribute("position","0.17 "+o),c.setAttribute("width","0.16"),c.setAttribute("height","0.025"),c.setAttribute("src","#"+t.valuecanvases[i].id),t.statspanel.appendChild(c)}}},update:function(){if(this.statspanel)return this.statspanel.setAttribute("position",this.data.position),this.statspanel.setAttribute("scale",this.data.scale),this.data.enabled?this.show():this.hide()},remove:function(){var t=this.el,e=t.components.stats.statsEl;e.parentNode.removeChild(e)},tick:function(){var t=Date.now();if(!(t=0)){t.rsids.push(l),t.rsvalues.push(n.querySelector(".rs-counter-value"));var r=t.rsids[i].replace(" ","_");a[i].id="rstats-"+r;var o=1.25-.025*i+" 0",d=document.createElement("canvas");d.setAttribute("id","value-"+r),d.setAttribute("width","192"),d.setAttribute("height","16"),d.setAttribute("crossorigin","anonymous"),t.valuecanvases.push(d),s.appendChild(t.valuecanvases[i]);var u=document.createElement("a-image");u.setAttribute("id","aframe-"+r),u.setAttribute("position","0.17 "+o),u.setAttribute("width","0.16"),u.setAttribute("height","0.025"),u.setAttribute("src","#"+t.valuecanvases[i].id),t.statspanel.appendChild(u)}}},update:function(){if(this.statspanel)return this.statspanel.setAttribute("position",this.data.position),this.statspanel.setAttribute("scale",this.data.scale),this.data.enabled?this.show():this.hide()},remove:function(){var t=this.el,e=t.components.stats.statsEl;e.parentNode.removeChild(e)},tick:function(){var t=Date.now();if(!(t - - A-Frame stats-in-vr Component - Basic - - - - - - - - - - - - - - - - - - -

A-Frame stats-in-vr Component

- Basic - -

This is a basic example.

+ + A-Frame stats-in-vr Component + + - Advanced - -

This is an advanced example.

+ +

A-Frame stats-in-vr Component

- - - - - - - - - + Basic + +

This is a basic example.

+ + Advanced + +

This is an advanced example.

+ + + + + + + + + + + + \ No newline at end of file diff --git a/examples/mobile-screenshot.png b/examples/mobile-screenshot.png index b02a13339c976c0ec081127e11fb9bcbc8fce9fe..3f459486fa298bc9f504c55a5981c54dd007bee1 100644 GIT binary patch literal 45101 zcmcFqQ*En* zs;jGWa&oe=vcki|0|NsiA|hmDWJE+nw6(QsYik=C8uaw^n3$MiVq)UsCB{elQ3kwUmxw#V(5)u;=)6&x9<>gCDOIcW0`1tr}XlODsGsVQj7#J876%_>p z1gNN}3JMBHNJ#$hD;XFVu(7eROnw;|8OgRD8X6kn;^OwG*$N2>5fTz&Vq$WQy#6Yl zp`)YY8+@#*X)hsVBZ`E<_Q?^z7#fMMXtLy`j&jtT6=zMUAn4lfGxAX`r#OF)Au*wqt^ZhK4}@eWF+PlCV0* z*qd!;f1ynj+sLz0<4$Nud7gdjw1l3nt}ffe2hZ@6dd<2?!Gu)HT8evye(8L)e<1<_ zf@tTi(C-_Ev|i1sRp;cc328%x<~`}`Hm!WBxhlSAw+*26-(`F)3#0<=S2$inY^5RyHD4 z(~5D$s&$)IDMb$Pnab7UnkBzgBD2+klgrIRyh6f7%f?(I<23@}c$+u%ojlF5s%;Z< zJ;I_@!qPQ;BV`88e1bwa3x@c!yZC()MTc+slk1gw_x0MAIm)M%+She@xBUVFp`f6C z)lXQ3#0pt^derv0w@rnWHF)J!@kSO)`^1FRbt^k~rI%JoL>0=L*;#fj2^v@`>YEtF zWZ9N>#^x1gG_)I54SA*J1|_CZiOSjGPXFV5^|hpkpo;tYbz6uXJ1Uqqdl z{$bDyVBJJrabwq}waa>lQZHl(a79z2-i4nQb<(~|CJrX=N9b~K+z>zoRjlv-2x_Gd-7_hkAI~#Z z1v@+{;QkR_3w(uu+h>;zWCJO*0&G(VZstqcSNosyVfwd4Ab!^YrjH_zd;0<2vLPI@ zz|2Xs>7GG=w^%5L7BF!VeB5US@R0;NFaAGQ3;@1mLM*EOr;d`&eoO%V3PcoCS~PcA zr{9?VB|_24^%A?Xh3^J{No2bPA%RFBbW3bmeDKZ6 zb87iH>qg^s0W;8AKb+NQqWzc|MFc?uh%DR35g+AAi zpesg%8c4Oxb#em`o)TFX?9bNb4{p$GBvLJ?`rjSX><}Ck5}QRGa~drxZhHQ>=%luY zy6O3ymL0SLzS$_GwMe?@CD@ki)O{%8kKr&P7^an`TyW60D{q8%siy#{`8mI809Q*c-0%ket&uJu z&8n+Y{QkgoniZ%yy-&MmAS|QUPd)#i=RFOOjD0-A8o=XfD_sQSb9}1wi^I+ zN{5s)M#s^`*L6$rs)$5cwlWI}|*0s>15FyJa$3fhIuh?&O=VC$iJ76qFG z98Gdm%~UKF>+9nmsCe92TXz$Yes6v!?=$TN%Mlg%x7LD!f=B=uXlOOo3+OL`5aa)Z z8OBin4F!dItxpvNsMh>^13K`&guuyAZrhz+tMBoHvGK5Ykj(UUA<>( zb-iN!Y~QzgHtf0#i+3GObo;rfF174|jXe)eUT#;P6L-8rnfyGxemlLNBBfynC>i*@ zH)~EjpLX!Md=GOkdA_Gp8DX(_B)@!(%TI(UV)1yK?)w6Kykd7e-Z8|W>2X$$P=WQk ziS~n68*K#Nd%f@1+&;&RP#%QOhTU-uvEybmfQgpQP~#Pq1ERyfLKFC2>9 zEc1VPOg0G`dmMT2SXL~HdZ!$!oFp=^W&9}RjKr9<#te{y6a)3@%(ZP=Y9RCQDN+&b zk>t^Kg+yAthGK5e+ZK!qU4M)n{kmN}(SLsmGW)*YTD|c-oH~1lzvT8knGR`OVY`6d zE>*DV_j7uG<{gdOetLW%csp>~@j3SL^LW~``~CN-pR#QeeFXCBkv8|TfZ9YSg)XLI zrL~#Q2A%h}K^fhYia`hY6zrp;EN?9I4@KPdW}DUfw5Vb)xkj2YSYP1FEC!#O^U1*| z{^#c!|L?nX6u;B1E1o{iD^XlYDGw?fJh3*LaqpC?IL8*YXrmft92HNgFbh%5ia{wf z#+`sYzzoBkp}cl+VExIgQu~5Q8WqpF@g!>Q&!yOfa#EG)v|sfc3`0H|+ESxrZ8Bs< za7(VyP-$G5Xp2vsh+*~2lcEKhwLuvHE45`Q@w$34h2)E-oo5I|#dU_a_wG4FoJ6%H5>Ljk)eHbh=C-`%IpJ=V9@89+%JV z?RFudK5O+P6^KE<*ImdJKaZ5_!!@VZ^Ivw~Y|$8{jRxxcMWj&v*Z%gy77PhzWvdcW zwrp$?ak!ELOy=~;3??1E8>kC~jaBob zJ!7ucKPLKNJhDJ+5^lR$un62c$!>zB>OhaYp7G*WPKh?eO=lmY{{%?I_)jUzr(onH zt;AlDz>TqmP|~zkNZ%!g*~x%YnSUhKd&?O*-fAGsTti3acDKN3ux#P zz30u=liS4|@9P(F-^UTV{m8A_0Ib4wuHVzYsvi11$1~EU#o$V#Gm&yH%=ZMUrxz27 zTd;W6Z@H=!f6OJ$wfOHB^9rljY)=UEv4gRC6ZV3X&>+|Va*B0YE-y}s3u|S@)ykC32}lNh0vx!DV6N!13WZ& zVmdx?Mb~w{omcVuxq!QtLg9>{QZhOJ=I@+InUAaZ0cJr_JD?LP^ zH)gpojn)dGkjl$OJ~}WXl%04ldT#tmIy0Bh|*{X{jCh**ykq6*S2Wff`sE(ALiw zzwWoRn{4-w!+GAeIMizN6*N?#p6+&=o4t3r&%0dxp8F31i1i_!wb7zdM}*}KAzaHA z(cWJjlO+b-qlwY%w)HNoIAhl1wwk~ydoh%HUp=fYkA9g8z$6eL5+u^mVRy8djCDtb zHzrcVVv8mG(h3r9Dl5tKh_~#~Fifvb6<^@kQtQ~hCd(7hyYS6yN<` z5cvl|r`5?9cU13`SN&Uv7Fb_PKi3vB2iAG&?fDaGXVklm=-? z&HRpQE5=Je`aPkbiz72Zx9z9$o@NhLh=0gd1|mm2I~EAE)P=A=m<3C*Di>}VA&yF6 z=*{FoiU@1WxL{?xUo!_n@PVvjjnvY@Wi_%{CjF>kp>T(tp(KF~uyy?azg zGaWJ;O0i5!PsnM}m~Oe!gcJw22qFlgD~Q$fwF4e^$kiw=ZWZ zO$KI@HXP7U5ME)0t$eDe>R3tK2hqek02s$0)viN*p)Tzt5ROTSEvw=uqd&St1MD;{ zz5yJzNHw)tj1G-E&@dd1Wt;Ur@o z@(p|vC80e?+Ug-K%r<)*?_E<^+~)TwBZ@5p*C=O|eyJ!xr{|x}^cuP4`P}_=e|jyoyUwBpIB>vsoSpc1fufXlXm=!4gYZI?{5U%MyfOQeDT+_E&vVx$;c z1lx##a1v+{EB-d0%|Nz)Qfr8vh*}VB2nE&7wOzz4DY~(CjR|YxiJop0L+5~Vpya-4 zDuVF#!>z%qC=FWoK5c4~De3&tpj4Fk&*(yqq6t>sprT*)!l|k&(-8gYektp=lRFN{V2Mm%iwUM`u3yj;anedY4^?D@+ITE9fU z_@tEjQ36WcNs!l3hjEsmDw-9}A4T;20B!9tYP!;EDI&_Bge-(66zHLR62|z41H+QY z#oh~;&%6>NO<`EG$0dIdS#i~jH&V@hU7l_|9U>QsGU0>L7V@REk*+&5kY$af(p@sw zo7~YB#*mkJS~LOC*y9K0q{357A}C7joR!lGC`s91*Byq$qLi2R&cka`^W!mE^7knc zt*eBR+&87)Kl==uD8XX4adrLBEMDcF2`5JtQQrCqneqcsMHN{$3Gy-`3L{yn$4%_- zKAs~eZhRgKx}Gr%?Vlo(b(-c@sP{v;-F&}?dd&2jH=OQe*z{Xz(7Jk(Mc|gyqVK?# ztx1kmrC5rWOdbrmb4WZGWdHgjH1gaeKnMT?nXMgN8Oxh>YFM!!qHUvHi9lo83uxx* znPfw1@SpK0-6G8LH;YwCNwG-Z`nuzIVljA!9Q#C~CmrYq+ZEKY4$m_O2?^HWL%jQ4 zr6dlhkWit(+@JFM-n|thjoRT*xg)6k?xc4TgXY7w z<^Moo8hX*%fHyO!8B`tkDBqNkr&7LepK8{n0x1DEV0B_o(9!~JoQfLc?E!mW*-13U zHYL@~_|^6cn3gp1-YopmCJ7>{og|yHS1cv1>~DNWI;9!fSMRZ=vk*vcK$Rq)ALxw# z8eIrljvN4@T%aLgHPjQBZl&UnU-SnTK=X-&IL0IgOpV~8LO@<*%B@XG33cd-kv$cQ%SvfsDJZxo1G_Z7|80{wuaE>PE z{hsU3*@$}caftWqxN+<4W}9Ge|xijk^Uz!3hyQc*Lm08>=8961P4IE6Bl)=u!VE`_U2$*yK;V&ZUeVgh#c zqZ3t$S41)Lf_q4_wT4N=%|nkRVE5<-l`9$xQ>+PGhL_PeV7ZAtVQC={q?+&MwIzld7p`k=$t3iLi0=896q3frb0k*!TL% zj^Xp;2xaz~x^l^_>HNy2gGuR@$Z50|v@DnVem!fTyhKiM>&e?k6BBmojhO%RZxrR( zB)!oja_gG6oZRmHT?gR7f)EF5+Qf&(zT>)`l$bBq`mc5Bi|p8gcBhdkZ#5B4(nMw> zXpp)30dv1$GfNB7g8!J3$69qVsyfArss{QIlQZV8(E_{g#WWgvUCkdJb){uh9N4VR z3=v{DUmGiQpX@Yo)jCL=f75Oqcer}16vCIm1rOT|`)i|02i!sCauyKp#c<&Ex3298 z6dU_E%`=NE>?PgL$4Opz99O@7>3E@0{wpv6iav)Ny#2@d9!8hS#+iD%D_lIAon{Jg zJqM)Fps`Gb2zSn`MDF+~bGW-d;-iq}QWE2gOjk;qtgO+izvIBQuHns~nQ?ak_8=^*t1@swt~`2{?NQZ_ zq6-jzKU8%qJBiH1Z`;y(U+x=nhCBAZjhAsQ9gT{2g^h0Z7X7-v#qI3TU|O&$K)75O z*Ig#`+CVVDIzz|S|9--O-KwSFjm3c3N01ukSdH+`935n!UrZFg8c(TZ|Baqw;-I+6 zY9B+n$KydrbQb4ib5s5A35G#^16PG;BvR19}%RZ>dW0D{-r9aeO->^wD{tS%q{P7ER6)i9SrQ1(J$5}Hd<%Ahe zHB9xwQhgfv%UU%zf60i9b^94Ea<3G^@ng z<%RZ$^J?RO#6fK=<1?A##gy8}sYMH6Cct4$0FYHD!ZIF;w z@TprJMp8jZH}0^!jhmbR8I`71<_G|%SSzuz5C$6}0AIs=B%Akj|J2sZi=9o7i6WX% zbcTQlF+Q`KLjrEa0fN*gqK)(1Jg8547r#Mx6+9@{XHaL-lM@NQ(0=`B!gH&6Zfl@kIk!Z77hHk)pf2Ra-(DzDq_JA}e@ z=N7G8H)q=;pd#wM02DoZ;TGhLhq;+zz;Eg7e`XJ7v;O-ojllb-%ETCUNDg*5Y29Em z^^eTOE_8*prFbA15Z*o%7++#)dH?w_7y1+1G5Svw=n61qNX&NoR-`sPYP8A6gd;x< zAzCNZ;bu!AmmU@&Ih?jgDA(wFR9V{2C7yQ`OHSAemI*jY9G9BKE7?ezYtn9uS+9p4 z22d2)r%oQ6ON>@ynhLCa<(F1r8q;|US1+4bVIcu0$nN2u<$1}$=-tYKJx6iHUAxl6 z9bba4vHKAPk55_(Y0N3_aCSJ2rou2YW1%O=5+WuW=xe8g2(O>VJ3Vg_CzM9sy?KyjkQH5CW__ZW;)POTO z;ZzOa!~FfZmLQIB%`g*-3bePWf9b1e^7D17Xvy7~FD;_Cd{={#mh$~JQ5)0Z5l5Jf zGXcVBr3z+o)RI=OWhLZGNh1qbuOI17Kz7GqVpy7U5OhzNKJjU(719Seeirh)_p+bl z1&PV{F_N|)ec?40wfFTbS9)tSM+_JR4+zx5GRVS{rt2%cgOy@wP@68>Z}^Y ze_jM?RDS1k;$eQmCnH8lwMDG|5}rQ!GBHg;!%2`vx+7&N%%T=eO5orCOY=z^ZEz~9 zlUS)E_<>RlFw|LD;{hAOlR^a2Ayj$!4TOZ68mh_DbuM6YJ4me|v&a8)K0>#uQiaoM z+wFk9;O~S{wQ5ZoU~jd7(qF>G<@inFrh7L0(&A{O^n9LgVrcZpQ`e|HkZNS18PcsOZp#!nxreBWwlH|? z>N_4R-|PGv!+}MIGsb4LA9_lNGDlnV$~LJm)&UD|Q_V|xC=6c=L{}A?CB>>1Si~?d z5l285v{&V@xnfkZSLF8H@jUv=;T-N_W?&{58-$z^N{9C&qJPmJAvBD$y?KpY1Vx?t z$3oWuTueb0gvh1TIZ8ohoE*(k%Iac|03qRJyXgT$o_FvRoj#t?PR^-F^HUXjsx=bR zau%QTnLnF!%RRBsgYv5W>b$wV;v8Xj>{jf8EQKwAme~I76T|%qU|zu(_R&^n4LqTlK=z% z+g#5ipPffQBeYXF4CL%o+V=c>(jGaswpWZNbeI3xsT15sGoP52juV^rbxkuHr(J#- z+`uW@LcWMRES+%{1p6?ELlKN@|JQ!gzK8Z2RD9C&k0|*FA`wn^%3CDFji@1rklDdX zr8KAjjM486F0)*UYFTejt2Go6%l)?tDbKGlDM)a+Ezc`jFbvQ#*V<3ij;ASBryKoF zgq`m(lU|DUb^jT8^&Nsp69>E zpI4_kzU7QG5}k`V#iTXEXD|EyVXBVCX2SIGd1eEZ4I>nZpxhw2c;$>8QYylTBILgWL0gpwYtUto%Um8?b4Cb z$|&M?1$?jjZQ-=DfCOTIZ}6t~KdyW-Kyv#StiLp8X04J+!*bhkzN5`r6pmewY3ItC_af`l1G&I_*|8awT7Lig zA-np1-^A!mo9d`U|M%YOxNu$f^B;_u1xy?W2^;GF_<=+&z|)}M5YKVgRhJC`*epcqIWE>dT7rJE_pqzwS;15!1hzVse&&0Chm50;BC<^jCkJrU!1pc z5m~E*5}6GpePeV=Q{T?cL3WHPJnhILjg`l1Pf79a<&el2=5SQqCB&k7DWvxm`i{2l zXP4DB)twrr$czpG1dPl&IrB1VU~ph3b!WYfusr5-k@sx5TMf& z(%NpRs5&mrAMN;54(5(J$LDO{pVj$3m1=Ws`>70*xBO*RMg_YGU2~qc?&;2W)R>5s z0F`r76*sy1cBf-^TXZoALm@isgFK8N38Tk3`j@!yQK(;o8+k!ZG7vzIf6x7W$(%u# zBsn6IWXy=Knf~ttf8{SS62}4Xw z-G1{P_zvQEmzQB)S&F^NKL1y4w)eI0=JxLMT^XVK+vhkwrlb)gzyi1dsVE3Xp$v;7 zd8n*n7;!J3NdD7ph0076Xu;TDEJrP=M=aDR=(#HPiIJahJm%b#Bg&M>Z008GA^=E4 zk_+18p`@j*JM)3OaRe@<%OZuzg6BhTy3L_+h zu&ScEXB1(#Vwbk|=j0t}|MaxBdWqZukgWTTAJFJ|u%$WlqU0Ax-3yT-8s-$(9$jRU&x842xv-SzFZ=mziA7WGd>7 zHM-MXyTfg60=!R~wQKmkhWVpT41%{)+FEB@11#f}V9^x{CMP5bapG!5lb*4zZu<$Q zTwSA+htM(EH#1P{KNM6vq6WXlv>jd%fIz^Z2&-GI31j1*iUizOGM*LdRd_e17FRdC zGr7AA)@J<|!?zeaL_S>gHd{&;CoAhk* zaQi5h{;_8BM!fk&CZkaKEEE2!)FiyO%xC6sqv+7bjLj z$CkCr=BiFv@8UK`vXGt9u7i8SJN&aL2)?&Sn#KEyjlV>Kmf*ADZlMh@Qzb>)4=>yE zEd$OxV!^%$@eBW;$|o|}@J6BDn|^$mkoxCOEn7l>^eIbkcwq&7r69O8EowpwYR#m& zvHv)I)aU40n=w(Khxezpv$naGUIA}!B-5(4S1nP|s%+Un3xe#hB$$yEh?*-Uk`C4vGR#RSPd`;bnl6o* z4pew;h^UYRWZbnAdSJiJ{`xCnc{D+j+V1|#ZE^`x$9sK~`c%T<*cJXPmRwqzj6jXj zE{zQS@van9m#k~=7UY)TFz`a(LhmY=d)GZU{?$MTuui zF?UnodrZ%!5|ocIU~gKE8;`FuOaYZjY9bY(GCdNECW_niCEv%DQ+-ltH}4=Ki~y(M zV8Hf2{NFv_u>Cw`ZZ*Do)E*DS3K$Y#92QJ9Lj3xvl;1dGqTm)belw%REob%C79kt@N#ZLvP36!_wZ$Hs2d=nI(1by=d2y zK5oLpKL|+w2ZFt$EdKB0m>+9OOsQJj>{!B{CZIA*$iQm;i7`Ta>EMA117ev0Fe?M1 z<#k=*$Xp9~MpA)WrA{ALNtU5Ot#@kzI9hkhX&zWk8hl&_)t;VM?ceMC+-W1(UfC3L zM?Zr>APP%fDnl4w$-G^Qd?ZW6i`!Fk*LPO-e)&bggVtN{*v8Hf(W~K$fMsglY2NOz7Q0D9!CGzz0Im zBWQG$<53_i;{EyaF+9BQ4;?EPoWx6-l`bnp@!o-&S&1XhAb|M4(r+Df65WB^-W&}~ z{_eiHsAkNeHBmkoryY6Kgl3{jMbaQ+B9N83eC5H|CkIbi;>=G7HkJr}AuQD<^y;Ny zpG=9?v{I)j$OU=9>DVM12A-@3AFmJn3FBYnZ`+l}2pMON=8qFxJg8vvo9 z!em?gN0R^$7Uzcy2w4m6kpww*{0}}LX<#5k1X6LCTALt8C{rU!hb?_tRjChCeZbo0 zv!IoDgP(T)1Y}E;MC5(O(={>>Kw7tMv*N0P3me*1zQsazi=x1_TCJn{v+lf=;u&w} zJ|pNl5-11uvi;ZJ>jbn1@Ij*UIv}ktD^o2qaysC9P8&-2rz5y!9mkLyJacmNQ%XYv zevFiFTq(W3>hNw7ej6t78-`I@{^H0|v01pTy&+Q-l2rS&^6mNAw)SK&mu&HA9U9?_ zW5lz8RZ)}sYwZzre$kZ%Y-47?)G$! z)vkaPJ3{7}3sbQ&Q!!-EgJPY!#2n~}Xp`d1l`X+PVUuSUUtGKDiK4XMcR!4k-fD+9 z*aqM_;ncBbw{2keO7e$MRRCb(gNc;|#efgYfutuv(ZvTK;>d=g6yAEf9)H*c4-Q41 ztlu#lO=#Q_V0}Zf>D)S>X7orl5%~0IuWhddZfWvo%_u7&`W>>ht5@1uyGrl5X;5c3 zogTicK;^MLM!w{A-uI>TO{#Nz!(L?o+ItujtjHM1*1he8SNs#s(bMzhQmLJN_|KLWbO6dUuaWH_ zOrPOj7OPU}dy3l`UuyJ^A9 zUOB>wXfQ|DiGrXwDSxchVL;t@)#23^haG*~>RO9-0ZP3oPCkWVLHMtRX3MB9iopiv zx$QTKFSg1KW&e_d>EoYjsq0S5t+yziUdT*EAmzNcYVAX%5#M)6&Hoh4UBVn8BvmEv zfzcI%!G(o`W7SmS*hDYSpl_Y%xV~O-jopRN1#55X82LP0w0{5h{U49GDqH4rkG89b zEvh7Tw!t-?6OJuh-_O+ql}72pJWc%xgO5#I+2EufDWq_!_xLvN!idJlb{bF|`zJq#6jBSqKN~z2>J(lu9-sz;i-Kl)Wu3hD* z4r`s1S`NqG;U$}DA()iagI6^=bh;W+WiN^V>fRE^+U?CLh3+Q?5P>>pwI;+ek2iU1 zWrz0y)|W9`%x=I3Xtu)(US6@3+Fw}~YSR)$LX}LDM1gb!0hjygeCh^4!4VboG{%Vg zYq{4V1N2}xi-5yO)F_dvi)6TkI>Rw2Sz#qL)YE({l~cPc!%t~&h(RLj=`y%i<^dG1 zmTC}BO5>+SN43>)C7Ui?B(JK8ni$z=P>Rf-tN$o%uY-v4%sftsLJTDY(S3+QHLmS` zdJ#fMHc>C1*C-?T6HM%c^G1ymD`WVRE=%px zS@LO;yK&d2RE?@_YZV$Eq`*j{rju1&u|NN0lYH0fRA!VhJDA=#+&C-4_RE@a>(Ef2 zVTpoPCS`cRU^54nek_dPDS>=2r73i<2pJVh`l)6cf>!axXC{En z(V^>7xi8{);J*jHeK)olWsIZnAMP z+qAB1O})aL9GZGnr$YlmI+bkGI4+DVoNa($0Cnagoeq(C14I!gBNsfM?9jPwjds`c zwb|0FE;Kkutya~Y&dbK0)DGn1{=Acn(akp9HQh!W5C(u>UK!sPIiFW;MsyPfk_SIs z2vLe;k`rN;Vd-pUZkaIlpt*>IYIR8Jx9*!}ktNo>ze%tps(X|Js(aao+AiMwRl@}C zcBhZ{i%FDql(QA{P~V4&moa|a8)yV6#RVAHH&i=ukV_68Y=2x0f|k@o1FKtKsQ&-mWy;VvUYS^k?u(``i)1_ov^JR>9H z=m?V-KknbgKre>$AQ-%JllT7P`zKhOVXr)DL-^OJJFd^<{rwc|o7&@%*;Dh8L{(k2 z(Zg-^k%ONVAN5h3}f!%{d5H@;0wm$bxZYdy5CX$Y+{O z^JJ+=P=LZw&B_;2(t?62Yh&Z`<{kiVyDk}_+Kizsk{IC&TYlT)!JOCn5PTQPVLXUo z3mM^!+C7>R1LZ>iLMAvPW`vlA%r%oN1~qef)I}(<;#=}1!VoIm-_QGR^SlAR@UYHCte4iGSKWMUvxssIZLuMam~peD*L^@t4`?Z*q?2ibz;2LTX9e4RqQ z#fnge^fK~C^m<#aEU3wA`Iu-9yr~kd=e~*J@+DjmDbAt^B;A<4= zG6Z`TDetUprFQfxRp7HgL8mxatIXM?G>+c8mzSLUVypxI7w6E-YoRm1!S5WD+t1EKe06ykpu78Y#j+T-EDwTO` zu`eJd0tH3Vp<_qU~@XU>Sb5s;29*d9nV`D^gLN!~dSqX__y`{%0ian$|syZr}#vcWO?qWTHAMAc5 z{o)qHp3)n6RFcH=0M+7FhOpCnqM;>BECWXFiu1l9G}WnRU0P#6l6d1b)zX+`bC#>@ zV$(yUje<^GGqoWWqHrJ9%3+gDHCPf#Xjb82Uerp|NGqtppgT!ow)0edXwMa%XTAk zU+zsz9e6*o?ZOY9UJUol&~9$R+s%_rk_yUa<@x(sR@xJXTR*cY7k3~Bto+~bg!Q0k zNod655i>c?N_GzqFgmtcNmFf!{y;oOe2tW{}>nRHLHZEW#Sp2y)JxMIR0qJP}V&|`j9&yn@ zL1HWB+_15K{~FYc$VvO{l8g{LvPVpD{@!8qPpshxM!?(H8AK6>sinj5691+b>?HBg zeYS~?iiboyJzV#1Sl5A_eU80$JN_6PQ2QwtojoW1;(l?E{yzg5;vY_>C_ZDn%s-`h zK0|bf=Bs$umEtO~V!ghSTG(mTP`<{AFWYvf_N_tKCGtSQzZf|T(Y33#W}f?>U9}4O z8HgOOnk8QNs%lTTvak|0?5tU&drt@m~__e=$6@gy% z$M^NG!F~B*T$ z+$39) zqgNYsvyG+@R|msp0l)F^@j&&0`T{7lHdvKHv?$wBQthQnHjhnW{BD+u%xnot4v78( ze$ikGyEn&gTp&VbiZY||5#+tV`jt7W+{x0fxzg!eGJrL+#i5u*pe@Yl?mc; zqS(#z`W`^K_WK2YwXSldDr;El(`?lL+sA>=W0sN@D(_z>JMvcbJ1q+vjtLNS!9J>i zm}==JaC_DHx2A;hq@TFHW^za}m>r$&ZpU0CxA!wbtP3&URrDEN>F z+R^(%xY;|IWEakK$_}~~ou}*^e$X+y{k*;7|M%O?_<_i&2=G?EMn;>m~J@q5I`EW?fhHal-IMB2{ zu9n2*)+=5x{EXVnHv<(KrtZ9J$||)6mg)H{Q7!)iMk(v#s&oAD`y~0>MCYg-QXvXx zf4_6ldlm(Y_Pd3wI^M*0dU(g35{xa+!6&PEu^r?@!|PYlo{WvcCQA|y2%WQXNm#$} z@BCg-p#4`b4bD+xrZQY&m+>croLxIbB(4VEdRU)UsbO7YN2V73^Xh+-6*o`{w-1p6p6Zfq%xpV^{)%cyaWV)4waVja; zvF{DAF8m85vrP-q0Un(&xomSr2!vGVy6h^jpm8BLL0Z@8#8XE{TbhYDGO0jTnrbGe zqStldFsE6g_7R(QUTtUdmXUm@0yW2Oy$jjhnA$I%=Ft*6rf-;ec&|QQth;?4p9?n7 zDA`+?of)f2Wx{&mK%dgqyu`5Q!X-*U}~StWG^HiCadTR7_SQPDoC4 z^i$eA5Y8^(E#Lj`B;;DHo+%o^{`JL4A3ZonZg{H$;vphQW910S=Nxd@XhXqbcxt?` z5Mc>pGT>mgfkwE(N*g6$W^1~QOvU?%lTD7faVpsMAWmxFNiWG{-Kc~2&#lwTd#$53 zt+$G!JSYgkh;@OTx`{n_8bHZ&iv!jl&1ceUoi=3&6E~=YqiReklj*#LHv`mT@-)qj zy(wd+ehi8c1w(mSuV!)n0Sf($kJz~o@Jg{w{>}S*u5I_V)eyVUqnMNr5rdKE$VDw= z26v@S;IPrat(%j%QZG_q2T?V@d*tPP3aRm>g1O`341r9Dlafkt)SDot~OtL?O>=$xT&Xmc>Fp(q z+un}67h*fND(((Q)#_lcXg@=Mp*H@pbD1E8#Ha63T#nS#(oAf!rg-;<>PR6I3Er$* zZGZU;X!Lw1E8sYno;Qx@N+$mt!| z6S6&Oc|n@?`N9^{kOb}ZL=|~NcNDMJVbV?oyFs{`CYc;ifkiz+Bk?H$K8)<*zk}V! z&!<u5%CrMFb3v5~?|Q#M?F|*HE@F*V9sd!m^3UaE+j_r`kH#AF<6F75(wfN* zxOd$D_7kC^%Jw%=M(>?xf)3@~z%F%KQI*XL&y9Qgapf+pZt^?2L~z7ot_hAsdSq73 zR4N!fZPI6LQ;yhu=+AO(IF27;&AoPDZleZ(cx<`Zh<=$(v7S^az#?%%9iw(@Zvx__>$6@wlv-LWY^IL)j*2 zNsPl5y2uOOTF5r9(oazlW#d+n)`67Ipkm{{k- z`O7Pk58ayfGPEkcv=v?JbL)y9qzDxwBOK3}DGMdwNM*MxyYHYvZ$}&;lzH7i`@>dm z43z7gk(S7w(cbPH|svmo(Ba_ zR%Fhx<4oi9$DMCs4C#jLJis937)jvCTOk%{`5L-kHcGSH(KCBGrC0;0_ zu?dWo7MWP6k|?XN8iPO>ZF-;e2o zw&EVf#s8>?zeL`a?69m)69vDH$lLN6NHZ1~l)9&|WAbLDvedD?=bp>d%+=k8HQN1U z4!%0A&C#Onk^SZkE%(1Lz+dc(QTPaGMIc&>`zFvDUH7~b&Rk{7o9X>wlKTCm?b6zL zv9Rw=w3Z^IioD;^41+K1cZ>Xh! zZQu6{6D&uwqzt{)eF>b*bpC0rzE5|bLUFAA8*OqHl}%@74m&B0%^W;aF;lr7lbf+w zZR;v>>AL2j*O+EDN`nZKJyR`IaI=>V_Sw%^Zn(LQ?OpHMJh%l3e{-Uv{;1smyqt6B zHpN-9U6om3!o%LW`YXTSWimLFznsPnPX!m9ypzvTHKE+2x-;86)=^VOLs^J5jW7Jn zVXC53=A#6|mH{mV4wni;QfNd6L-9VYOG@3^X}Q@pvry&u-G69&ZgHNCCyBtJaO&Qx zm8?d1&yU)IT{xOO@Jt*fW~vbU!~ZQaT}5T9I1iTXvCi9ke(H2SJjnIb4P!j4N5lY;7Sv|smVXe3pq!(!;9a0c?FeKpvSuBgkXUw*jI`v7X1duoHryhL5x-wFC zi{5x4k9QSZSlU++ZukbMtZ&~9b8yoOhx0M+N1v^#i0l-}i<24NyQ61+_LiIM_^ANY){vf~)O*k&kDE;y(V}g5)1z_d8 zSQzn~j#XW4T=IW=p!;0n(tatlJ;g^lae6@oPEn>ifk*S^O-w~%74JW5t_JA&eWpmmR_}sb7k<-Q|@~(U+-^8GThR`Xj`4V#cm3jH_&`SHVDWFgQ}!XBO{=yf+Jo(B>++=j{+Kzb~-D3*>A*pL6qhH7X=!=}o5Q z+j9N4FeCJ8`SgTFn&uHfFX!f7jHFXT#3S%OtCGmUUPFiCz?ILZ$wkK+WDfl#8T=}4 z`UqWf3HV7cG3NZ%!`=MT5v`y`oy1)F>@qnHr!?%n%B-h76s;8wA*)y_5&F30w3eJ1 zgV1>Q;cq@nJZ@2zWlf-Z%{0RjPHEnpFl849u_KLpqn& z88lVZwfUF^Kg>L$Lp)H8UJ#mUy%}i&{*U4d-H%gVg!`ULVI!$wzPQtkZWh&=z@k!f zGv{>)uq-n=ET|KTJ`+yOkbyYhW)}ui1^J?Y;vEY1P2*Gqg%5esIqlo3rA_jgrme-y zb~|sW04Zmc{+*Z?pAt~Tl!&;z%PIzMa8FEMyH$@c)&eg^5mFVo>So5BFju#9gb&3eX#rvZW-T z+6yeCiy3t1YiLlat?=m`ExQ##z;)NhMK{EjlF#@$(_puLfa7J3$a?+$R!`O0YB_&e zU~Dy@&_Z1u8qwSukH`fhWrgc9ctP@U1v8<8rrWL8 z4Ln%5ZFa_lGz*Y^uV$L{@Vj8d0YYNxZ@P(-rrEW{VcdJQpRdV*r9lbs61L;ZQ zrR$~(4EVvYcl*$skD|%%w-SSNdhXeXGRC%48n>77qiFA*Rye2%l>O)?ixwTkFw~{I zNH{OwJ|@x-0lsCsM8PmdUEfGERW!d?cXWf5^1@V=3se0NyfZ;+kNJ|TQiueZ9@}p1 zFf(?MFy+U**Ngr1HSY84#c`)kelHA9!^VzJvklDeAOZ4Xfh?goaQ#pG!>(wxIIB`c^S7r@ zr`;O>y?D=utgZi=V!FVb_gvcPw3oD1Ds>#79zIHEzp|9K81SuBBYn-fXA6j_N; zj15IrqWf#<)GH858(-ERQ)BZ&Qg~7>u{)j}-(QiDT7-00fy>*vcVMX&aC z|98i2J9tatROEO$S$?xpd}B8hS5iN%E%}eVYFM^CoisoH?DqIm=Vwx)H%=Z8!&I@) zRJ0livW;KORotYKAH*c7Hg>)|8HwF4sUL#$%{W+Sc`Q1HYBMLha6h#kR^+on z$Gf&w<8;*Iqk~V;J54v=>Ug`BpRR08<(!<=ykiME=pfi`k2b|TWNq3Rd%}8p_H=6T z_ZuOLeR%rV38aR-F6v zPVHXx((GeYUq6VA)Y0~r;%ArRU?<@{XXE~}4EK{dOhe4<9zDI^@RDIpVzyr0>fSV$ zM4^Vr8!bY65rt8|_oTX<=+t|fqL0yil#Ah{!ijj-@4O_qvGF$Z9P?D1`FgD! zzex5``q%wt!I_0k=ly}>WBJY{@hOhR2@i3hhH-=b6k_2I?!K!Y5B1&NmN&I=I=tN> z8|nERT_Hp84IN{Ck6jh|TZHl{q!BM!nu@DqMELyh*>8_twYu`JZMcu9nj%_p!c^GJ zPyQ-bp?S4@ErnY-#3z@l@%xD`;qcRh$DM3N6LC1!tp&VzLgiTT3dml@k35VelYWu~ zv1&u9$g1=)3HW9XGCcum-hR)UVpR|Kzj1$d#^$@dUB7dueg$3C?xuS~I>5I%c0PRc zou`VA{PdYZyeCa_r=@g8?%n24If=kv+p~>#1mshV$DIm6P?u}j-E_tTlW8Zn*%;zf zUs~|FZJE2b6Lxm>`q0}pZ(v0STdVub#lt_ zH6)$LyT@@p&l94Ed`gcVQAGQYlJzFp@e8$m`q7|83EULZ6z~W-(HHvp!Sd+g@|MY4 zo6hGU&TfYa@y5dsP2_mXA9uTbB$F&OYC4=4(KCrWZEd2xtZ^ejgm$Mdmr9HrUe^_g zx}MLFTf^0fcl8-ivL601WZ_%C@4$F-jO;@ANQ}SIr7LAn+$~;HxaF@ zukRDTuuKi{^a*YoB;G=SPe%sIu5NvG_nysmfMa4N#saIKd_ptS`g!0rC#lS5dnm`m z(He@fTtQ(%?sbT69lj+ZY-JE$@95!z=+USh?BCuA^66M(BR$o~-S=Z29HtG_Zt!{W z-RahL&67R1sA_LtFV(2Wcgd%Y8*|VWO?Aztx&27Q4}y6FAbpop(C4ki*i}<&p*((V zM|*X^$mm5wzk7@4iPHmbJJ&Q$MVbZX97;#?H`+}e1`CBW>9}tRkFUAMiQy3>L3kns zv!800DsAc@ek;zt2f+Vk^DXXN<~X5CMF-1c`yis`WXEOz(<5I^wmlQsULNNpF;StC zqwIwHM85YKl|OCAbQCNXHm(R*`A_fAJeVH&yngSQjZ)2kCB?*Ij&!}6OJ!NaPJFOu zb@Q*SJ@F-nmzPr)?>M~7^_nE4+HaZILMiOE&te}cY>zTRijl?>aWv>KF zGr!g>>Z^=MAkpj-A$WO<&pYTN9kO)r)qd)wzNbst02TfNpZ zJ5IU|M~G-xi)-3d6+LwvK3dq3xP24;3V_inDmEBSrB z6ZfF5C3v#A*0V`MgWq+ZWJo*k*U3+{u&m-Y$J3uK505!tVT>scgQa|u;aoTa)NPzn zd(Bk_1GSPqE3^J~t7^#j)ZG4fwhJ|%)678;=Tj)&d|Q}#3-%;eLtr1{nl#hg?5euW+P44`^QgH zV(5n$!=?*>e3x_I&+H6EZ?3IRuD%+kd64hmk-~K7{7z4ZO!3SnSnI`RKDu<>@l%x9 zOT|Q>#QIq;=0$)yd#>gD?(pZ(nSMZ;^o6zLV6*EV2 zAOt|uH4Vj`OLjwfWb#Tr1zm7;n;qY;Hf#HvPrOopy)l0HSbK8)&GYYHalb!`C*&;- z=HWseWb#C>L-RtfwfOtIdNM$~Z)l%q+NtWu?b8!QDFO|S1_#7#LjUDnwcRGpE^FMaBiZ92r=KM;JGNq7stUHC_ zQ!s8NT5wOv-k~*FbL7i^OL9X#s7c7Dr15xOPW15-K1X@_2K8qdr7)Myw?|(4{#9mo zvG$1So6x+pU-Vm!N_!D^LX74=ip%c}b&)SAhD4k`?WQ2a4Bdt*K5D7;yN(}C_-){H z863&q@J8FOI(ra&&a9nAgWIB}4-@we=m{?OuIP}*%_wtGQE$&mV7eE=i|VXazrO5m z=euljEk-x+QMGXDJbqWbGB>2UOAGt`N|kB&m%doo3)9p$_=k>7gpu&P#mm0#=m`pi1)jpApQH!o6#e%Up#tk_HcAPDAO+*&3u{1Ixc0vw6Rb1;|B zt?RrCV9txPBYJp$`en7R=H0%ppT@&TJ;t?aB}x2JKyP3wSn%FsOZOsdOL4kbAW zarITtcp2{HUK5C1_N1T-CH9$JZcU1RN7+t7!0)eZQ$^}YeMIXtxM^H?*V3c^Y6&=^ zR!Z~dgs$4Tcd-E^n1fiO5!&M--cYB4syEw45A5I%9vh6l>EgAQ_3#jpWs zE55t9yy5!k&xwHP%TFc-xpoPf!s$C48P0xz_kRV%U$Jh%*M0{0)p6n8_m6iU7m!e# zoVeKDe?)B0`;3^}H1C<{{Ra)n0N>e|juF?8WJt=3r*4(9sK~F3qJ)@{^s{r0P7RM4 zEu7Xp-Qek~cE1AS85r+IbX#8f$h$c-KBV`{)gz2k32H8W9*im(xMIzWj}@mpLnx&E zT%Fnyaw@6f+ib9j?Ox*Y~Ym)K;wB!89z zCC+Mdp-a8(R0qk$uj>H?Y#Zktmbu+NPI25jDpg_iYVikHC{_}rPm*i zswy-$cL(csEL|h9>Pv4fax-cxALH|_Pl%mEwgsfMl(`iUVx40(e%`-dPM?r_T32*P znd=VE`%Tuj^)--IKA||}OS}ethm;B&S5JNk-+pI1>*fOV-rH8uq$ysOcaWPnLZKm6 z=?-8ZU>1^oS0^arEU_ip1Wlu&J^tk`;X<{Qkf@%Ba=q)*jwf6abO`CAo{bqp~u4 z(9An=EU=pIxfa2*(0U+8VY@p*1Q~1Ma4TL85Fb%vjUz-u zce|WAhZ@C0N)Twk(|L2S3|sWoQ=@37_GIMfck>s5N&txgEVb?Yt_T-1XDU9o|M@Y> zd5(wGf0N*i8UQV^3~^j-ccaA+*8;*$N+>1ElvVj{punv26;|mFs^wS^Isz0PZGyu> z-IZyvI+;hX@7DmRDWz~9fOC>x12K)AKBzs2FKmfK$4=|M~n!ub%`iOG%lx<6646F z95W9&29r|I3qA%w33UGTh)yRKxaV~s8bH7#aRpj!Kmm%r{huCXNpL}{4aa)cncc^d z5m*Xj2FT{<;s32#1f4H09_NzzEQztz*wB zfy#u+aXFm+4-3eA7XUS1@x^l|fFa7Cai0@t-vL6djN1btr6j0o)eI7p=*igMTpF0wK-gh5-cf0z&vm`aw`&!CL?tcEKzGGGD%6#)l!a z9WEqW10nt61_1LkVsR3E(6Bav^XRd(g}saSS?M@I)yO1AzzFgJ|H9phh`} z@sYd>`7oWMvF47wb%a<`|ybHm70F*p-8EhK;qiHu7 zO?c6S1)y9PePJ*}@pwN zT%-*U8Pa=X<;9pl66~497it{=fy*Af2cQi2NW={BIf2*aOSL`BxtjD z@`9%ufU<$2rio#QaC$V#-sCqq?~GLZXNZ!u2|iL?41<1GNrFna=wrcvMu8}>wSp!` zL*Q3^Y=Dr|N8fo_c8M0t=3O;DWJg}BEMxGkuv7DQt5LaZ7H_zc~JSR3%L??No- zO@bXLmKhZL4iqZ~ijBVz3l2LAXw4>wh{7pOUmhm~9)5r4nw=#|0-#C4w>sC)V&c)? zUpqu0Ls1u6LF3_|6nk>eco6D777!>9qXY#Iwe{RAK9*g|hoHlW7Y>8cIWMI5o3qi=Pd|mgTQ0;=fp%S(!~>#nVUjL5wxFy;<}+3#7`utgAk&e!b0R@o z9~meDjI6#V3$l_nC_G6^Pq7sNg=BDSz3Uj(9(f^+L?`&is+xdUZMhdc#gI4`p z)qhB1@Y%rN14w*p`rkLhLO5`DRRqI8`*s=7Loi9uN6=$U5)_#KV0439mowJC9sf!B z+ZHR2$sj1V2OwZ97n~>oFvJ^r^nbFQ1R?o)aGl%~1TPEB3+jJCPS#n zFgE|x{5L)SG&X-5t=%kzG1xYUNhSnt_8;T$Cq9ATTiGeFXk>WxVO0zCCsEvWIIPVT z)YV?56c+#Q>HJeO_WbxddDGB21e|Py{s>R7K!HK}A8oJv-T`OHC;+1jM0~P3 zT)YO=xqd)YEnXae1#`$6Ok-OB0w%BBzu)RDp9BBeYP@Dd-UQAyF(6d`z3}Q72ZMPQDRz-Pr+5{MCo_^VJWxfvMa{{s5oG8BXu%-@86QUb2-o5C)WQ6Mcg^;FILNf27__=zxw-EhyJHcED8%Sga2)Z907(uamJv^gYRy2 zv4%qaHUj^<7X3Le|5HEygI@9Hu+Lyc1tY7;@y5wTS(uDnkVS$Z1IQIOg+7&M08|c& zm?uP4b6~L9|GzpxwtAy3zQKbUT#`))ilp_$M^1}@Mnd30;9?4l8gRij2wrP|>o-q) z0!RakJRpt_el-Lvjlkf4&D874 zjJQA!@x75{B_9D;t6qqMg984aJ+K{#a|SRrKm_UMlb2tu5V5iB2DWh2#TQrLKqLj| zg_s<04g+u!5CnjN8>60L2Ba$6`F?tu1FaWMG`V18>rnU!vR6Y1#f?XQC-~;Crus|q)lR4M~E-U}u zv~rIO>GUW6|J?;8yw03J0-P#Hx^sTeJz}e8|EF^QU)RY0q0ZM9s)hMu{*h9GxuU^9qh#y7fn~{O2!EaSpr9m8^Rn zN^VRLL;)2B{eQU2P`w6$euASCz*O4%&vursIXwiN6c}_%1OOjLpi$WX{PQ2X@ET^TF!ki)|4^Yy4An(+um)*`enISaRn5D@ci_`tWd7~L+sesi6y1; z)XEN#=iZi>9ng}6lC1kSuh2ku@$@~?pF?{-#lKoKO(Is+yop@kDADyp<5x5avI?(! z4#s~}t@gOe%$+xY5=S-{EVOKu>9Kq19l5Abx+o?JL*DDMO;^)sQ%n;>l0)65RjLu) zmhf8K;o^_NqxABj=M@#k_lNh+TMuA;!45g%`*<#-#q^`O6AoWnEal{=Q8>unj?&z_ z+Mo_*hs#3yPv=vDs;;N-p`plWOxJR4{Y3hTr$>hXL7Q`Xj1XE2iNQSPKP~K2Dc2iu zQ2V7bHaOUV?xxIs`q9j=I6Q^b^@mdoW zzsT-E0tg|9a(ym#0`8itFN7VrFONulJKj0?f;UbCN9~sVt{NBszw73A=KSdAueHk8 zKvkCzc-y&({(Xps7}rD~Q*6-8X zV;??zSX|7ZapVqec(t3#3yCKh{5P;k^)vBYug ztxi^#mRYOIZTM300Q@7rIW->#s+>9g6GbrHHo&bSrJawS^TE0o| z;^d15IaB7m-u-f^ckAk|LApC!fggXH{Yv zdiyE>4K`G=9DjXmnHsAFj$w889i8irMxD-W>^BWg!T@+O<6F80iNyr_)C}Ow7nQ48 z8G_nMSbaZbz;+|%s#ctYVo@;~ux;mmrlL=pQ&Ue3LCnF4A5WJ@M@LsM&o7glc*9Yf z6CSkw>tm#Hg(qtnDnPfA=FDc3C2!hbbh74YN}hojPYQpBdZbX(hV?Hp@P2Z+o)i<= zakqH6|LL5`G!%T-Z1*e8!_Y{=ukDf4R)t00D5QG&uxFM>^O(EE^Lg{=EGQ&$q-=mR zkbwR9z-n%Fb0bA%H!&2MgM8LU#Z^~h0zOLqeWId1CvAH}rszcemu6vOvOgI(1ajHK zZx##Yw!CD`{Rwkv{Q3gH(IifPPprAxE-m)VF!^Ddv z8{zt?4q=WFN1y|n^~EPy)4#Tx78nuoKTGZtzs+%RRK6UusUjLqvAtghw&=|LE%IzO}TL-S`D5fW1nyx=*98pQn$6cW4^8$*$$}vVCSm zKz5rB@k8tlG9DVtCC!_pF1LTH=vez4?s?L2jo#KU6IBetY$n1KaY?lF82a`78V4ncoNa z_;|seABHAJE4}j8Hxzswq!FlLX(L1PT;;K^yN@bVo-+MMehytqG(&VIgBahshQde- z6XzW_L8@o&H|${S2#}}5v`t$3t4h@5G0+jNa)h5VMY)b zJ*mqL%o)!rzOJXQ`0o9(R1)9eKV5afpSoQA0xbGxBSp(CgDB0U{zofg4A=bb+O&U> z=bed96g!Dqm4stoI{HRfS{3?H4Ec5Ns`00OOTFVKm(jN_sdO-G%DPAQo(PVOPx0Qi zO}o@IfHV1kW!2=DMqt#6?W6o}O$=rpa3tFuPmgI1}*ox0u@$|CaL?)u-M0 z&*?TR_xqnJqi&L~%J2Bm z1qoLRQ2Vbq+59Uw2cj#?B~XWH$OoO?inE*)socfmPuVW`~=KDnN~5e z5FBdi1`GwFV8NjbySi{}@Ut1yZ}&=5{T?Y68wlQLcdRssezG`}(J)^VA%SC5!#v!9 zLvh7{_gM~0==_VXuVpqC$G#fT{BX?}rH_c`YMbe>Jtzxc?$lN+eD(6T#XIw6gjRAA zt5?sm!Aea!>tdB}N|oEP;8SVNEFec6I8*fXDRmIta4K$bmTB4;VEJ&A?i|kZ+*7i& z*4sORdWeAK;k)0TNhi3Vd0MF{n~yhs$=$zg9#UL;>+8={OPS-~xqBt<-n44vW$s9b zD1V`BLy^mIIL*y09YIylm1z}^u_Hh6SkoIhvSZ1#Nby4j^>w~wfgI*w}I?JMze zR3rgh(jH6@VI*L|=mZR6$aw)(2|&@Vo)|J(D4S_(ZD?#053@FeP1}kZA>nA>UPf$0 zP4^BgPw!l-r~u*)Z@S=oieLQ#Yx1E{dM*i=9tZs12Jt{q_Zcw^yJGm*eEjO0RTX*E zkkORdGZJRic|^lyvu9*fOrtg^b^%>xd9p)kOyEFpr~m!gn4coS(CoF^K97NdW z(^Wl(HUvbvuR;uurQQr~fsZSOM+M=VKib^72azo!lf*s1!)1b`W_w|P;1;(vjKvWA z#G{@hF&qaxCzM~8SicNx(dzB9BQf{adZ~GvPAMm$?vyudU+d;=9>^mxt}flZMUuF4 zou3G7GWz6`vE(_>QOKU2OFeHrB?;UhB^X}+(vFTYmH%H>#M^H%|1zw)iRGtkZ z0xgw-qtNZZZ^y&kg5I3iKm(GS6_nMGcwWFR1N~tiJP*8q#c#6#bUzacD)Q(Zav(9J zCWOgCVZq#w;5Zwox5!!uaNz4QJs(@e=LNnsjnc`F27z7*i5Swkk6pmSJ%KZR3<1hp zHL&>dML^q)yibRBP{6A=suI6T2Q(P9eYlx%mk-NBIdcq8ztz#ULqk7`2)irO-idx- z!Y5=)5pG~6fhwZ44V9qoGP5|jCb{4xMBUXu$K5m>C|x6KQPP&w7mfs{MYn`+8ZkQ0dz zTC3YITFf0eLZdDG1vt(hsuP3{)dRYJ>MFq(;CY8CqwC%%K#PpBB%Sp>K|4H8$9;7D zL<0p7gFt5xJO<{^<{ze_GjD+u2STH4IE6Vle9`dP+i++#&JKE$KoPph1LX3Ie))Xg z{awwmDY5%8cSzZ@0j~=SQ${yUP=HAW_b5(wofB~DfGT0qPA2KT7(hS3U>o5%AjV`|jY|Ganw;%^D%`+)uJPmKLaQ zPd`@Cdx3mo5N->vAwIVzHYP<7E>K4$Wa|-Cw(b|smuXmY-}1`%(eXt3OxX8J%!XI> zQ|D1tz>-IAQxb_8kk%nRDqXAs4wj(&e#F-S;bXoKN`kJdz+(UW!)$cTwM+mHXTU?4 zoc1VoajTvJ^8|dZjMNkm-anHLVP9Ui;DGq0qifivoi^{^g;;XxeGv?pQU^M;^QL#f zRE-8x_=}T>?3607O@uDl6GUQ;&^`FN`JVUTc~8)J@59i5Fe8`V`a`eESfEWaubX4- zIbNQ^X!TS73(8p{=82#Q6-K3qkeboz`qC@{Z8DWNoC)@lR?nOCKd1nEY2@`LZJ%2r zuv|f$df&KzepCe%b+BZwQsCCl7M2K;8NGiOj9&$eM-<3Iu*@e6KHfwD=iaI4=Ej|T zyZdmQe28Xo2;h~5|4~Z&f{-U9s(1ekT-1|IV1HJ=ykH4}HUuo$iU4#>JbIrzy~<;O zc^&M!nFc^B0|qqsT)Ql2Y7URy-NnNnt2#xCuW50XP@0HaBY4xQ02$#VBNTGdI0tu; z-~J)q0)ml>u29-s7}BIgQ)51Pwkff}=~_g)J-BT0P``MK>iJ$wqO_cNlyU5l*akY| zA5V5GzBIXe<*c!ji3|>=KSl$K2l64b1Y*@sfwrU?sZ8{%>>nU;S2%>Ws?iR7p937H z2_1?9YaxZ`WP7B|AqB<}iX<|ILHv3q;2DFx)nIL1h0j*tK}T;9O$z;S-UFWB!n4Q- zAb$-=Q90GtGrj!A0X%|3xpu&QTYh{HDd%lNAV@b42bPhkI4bv~FP3&z!hefi86PJ3p^1IDHhpg=e%!v4PH* z-z7{QlqZ7Y9=j1roKjo^?UbS{xphL1z9{>G*{!H}Wv5BuxL`M`lC<~>3J;;t zeGr=5i9`y9@B)xjIIlorIS!%2nbK!{$7IT zsbQ;aPcP{Yq99G@yde(3MIc)vVZBV03qB#%iqH#*fx2(Yhe-1151}B^T6sM?XrNaj zL~_pRWtuW{w1cLljp#zksH;>I11GR>8&XV1Oga|4p@(TCoK~&63CuQLeLe(sdH{{J zR1?#J<2a3XWJAd2in<7~X&vf$V_Sln7Z#ZiPPYl80E?oCl-8#Ps)XR`Bj7fC6}GDb zRh+bX1;{Vygn$qN87N(q^Ba@DxP;J7=`N86#_Ax+QGbtC%ypc5(RTpr~^ATT%? zUH9&SvW|lW=-db^q-}pFC$J-5Dmyz>ja|4JcDz)&v$gN59_DlLwd!(eWF+_Q^mN*XUPs zkN_r)uLr$1D5qG7a^33+sU`uA;M#{51Fa=?3BcLF;;(XhhU*X}#kH-UiU?m#=J0-oDAIl&;vKStrUIPm;}rB@g7fzF@dl0DsYyLPLhR4$5LWOsGJ-S z)jj}YQHW~Q%P1S@?j7iFF*8k|(nTbM+g$%GFXZIN7djL=4mptt;hws)tq-C<0MB4% z!ApVdN`^?b>c8QIG=X)-_U`8Shy-ZFjlfcPg>HVNK6G^b@eJ`mGuBNjFn~G&vCgt{pymPmOef7ve-r;-%;Ov=pe{319AH2c9=+<$V|nE3r-kwDY2S^6mivFevkF6}%oe?g3O`6YMp5 z3Av8r<~J1srh>mc(!mmi6~b|4mYk!T%MOD}5}JVPCaCnY&aUr-#2QpyJ#RsEa7h&6 zCL7n%6r}Gce z5L|ZV;y&7wb~)o%{z#~3;P4}*OI_@I>}<-20(H@=Xbn454bqE_?E%cZfC5f@iLD`9 zWEHkaL@X1Xlzy>d&s}Ipl>_H~Pn|=nO*aEBN~?0THd;xTtnhI3bd)`_0}Hy z|Gb2cJ0fpy41$DTjTY$wUvs9F*Qe`s--R2zKA@(=aNy&vfm(8lmvn(eZoPFjQ@aZt z{?IFn%xY7!gy{3z=u+_eln}o(^s}CIGdajQs9~18ml!)mNG%gx*+7NqfP@%Sg@SLY zR)ebizCI;MhCO_eLz+5T*8bZhofu1#OU3JPE+8ujvVt|*4BmqW&ha-DRo^iZVfW$u z%yiRY*+4KqO?vsE{dAqZ2A_r+o zLRUmvSA$D~yy1cMsV|VG-=q6pc(Vs|h?#1xq##ZRv0se3(EM4Wl?{f>ak|W{dDW z5mpE zl|)(+nM{MZhL zMJAK?n@K-u`V)~2eJg@ZJ|MXCD}54C->Rve0iY;X|I`TcHM(H~%`KL&sji&^-Q6Sg z1mBm3t+;PNL_~y@@}Xk>RqvwkiqzsIk$%w>Wl}M4Ci(DV#_+9)(Ha-d4@DFLm(VXn zF0%t`)t5>?491LYoEL_e|FS(~v0u*@)VC_#<^yh+YYW`W4oZvDe)(*|&^qUivIgX2 zep}ZuE*2{B>Q_oDF~!2SXW^5I0G-l-q8agreixUHpLcrt>2!@kY6`34tDD!Ag7KuQ zv&KiW?QNDLy7!*pF~EJeDGufFa5q}RoRPC_b2+z!Rhv7&PrqYDT0dHLq`%^j^j-h1 zP1v%Xa(#slI98m=cG|KYf|eIiJSWgkrczdh_*oyTHpqBpUXyxcv!0*%^ETx6$zUCx z{)ey18(n=W%5NIIczJn%=R+asFJ8IOR47jG5-(7CGQ7PBxXy)^I4k^69iRG1$gdIU zBn)4LcjzLb{zmh)`pjdXq59P^nUAUM)<5s!Ln1K&5&(*<%&)k^rq=@zPKJtAL| zV!8Ww3jOoZ$aklq65m7VaB zHZu)p178nGE2;S2Lqri`Lmt0$xHtQlpn?5DWSHSb;!iUCdxE6zg1}a^75Rja`xnaa zCZ$)Il)9(Dy~KIp@}#m8J1v2xh6Bq4Rm*kgSr0ggO48s#=yN^Sen8p1Z1}?SXy?PP z&c>P+1S7R5BpR%Z)~~vA*t1c;xZ!y3QWBO_CtyT_TYSkag@?Xl{^53dHq2WjR@Ae` zfZ(&v9e!Z0C4IboPeiv0o7I6*2QrkjvV+$tLwR>n{Okk(tBu}E@M!q%6l-wDhRQ?D=CE^xy}6CIZX0TMma4Fe=Q5X}EgiOl8^BExUv9$jP&Fh6BF z&MZl6N5fQkxp5*mm1x&YOl|xie(?pIBH(3F4RFxfo#;zr+GuPJ_EzFcYX)Dz-DE2O zVjEY-kEF>fHLI$xEp;hh-O$R9N>D>LuCF#}xr zPVPn-yyj|iiJAje7_s>3=)ox&3bk@PoQXJPa4vx!V-x$<6BY)BpHrWex zKYbj!7Rp<=>YBm@F?B4Vw^?Ct^?Xq900eNNF!WZqtu83B`#!+(9qu0fEE*c;`zH3i zDbQgk7&?XZORhMkynUtTE`+~!*&gNki$ba#4;6NoBI(q|^xo6eCfP1+V0d2@bdMtL z_jPk(>~F`nR}DVn;dQ&!asqcPluRa<3q={fMP2#`O{g0f&?MmyeBsMkb5lGE-`ZS1 z9=L93^@j8=#P5YQ%Zt3u&4n5lYJKY7JkDFWR4KfOpqbg zT@qLBtf(dqxcL$LaY@ouSm9+01M#p;3RQ`kq905{fINA5$k1DEU7hPKKo&fWGsbEB zz#P?qt_6HycWobxO}+J;NDv0xpqmu5?y-E3=^lw{MM=6}S(y>w^}>D8)_K?oU0C>D zmT6C5jsp-xc+kC)|3n}OHv>(WBmQlZAez|tQPc{>fKh_QSD_~>dheLQt>xY`M-Un` zno?i_2|2|iO+LKP=%d5Tg^VT3#pv&Mlx11#&IHR4B{X7^tUbAgw6C@R^Pe|0d2+O^ zMQ;>+6x;!CUWvd;slnf~6TeCZKP~Q%eyd=4syn#0jz9( zpQY!x=k#&&E_P8v6p(?L#)dMsSN|lX#kj&|2<2O#4_GVo7gfXn|3rhN&~J!9lHq;u zHf0{&Ys9au`T&}GUrG}6wqb>aviDJW03pnsu`eH;+R*#Z>3>cT@(GnQ9heJ+e z6Rz?NJ`;W>0v46|B2)o2V>OG~MN6L&MuwU<^U-VWACv(XNc^NWvOoXmB4rK6%d#&j z7J8GlTw_s36pWB+UAzYAhWGy6KpSFZ|4DnRNi09fXHmud;lmk(4;!1HD;rx=q|Td2 zq9AK1W4&HjEE3M9!sv!2uB)k;u6vxRu%GK6L??%AUC%k#X49%t4X|F5ran%(kNIhJ_Yx%l}UfEUXuJA)(;K9oG$%5Dz zNE7QQPLDe{T*&);$O;n@z?5FDZT22mISQRW6Nz}%6jzMyg+q}VVxCE6Y4ypF6OM$m zmyy*$z2UYHzqgd`G;swT85eX(R2SRU=uZZ!C_LOgS|-kj@e& zs3oYDe>Z=0tZgz3*b|z@i^sy-Yg~H^%pfOndJN)HVW-@JcYqFdAVtPru;R}y@c9Tk z;bU#^H{G}7JOp@b3+NQZ#5l>UfOa0n>_0YSLK|9-gl>%HgWUhjI>-sjoRKF`{FulG#y z?RB!DhC4B#s`(nD`)^JqYnKEEid3mnKdt4z%#Z>$p#ky%VXy7SU^UYxU!=*|ObS^TNOOjIr zp_r%Ta_`AlO7d%8g3kZXY&@Pig)USRs!;|(MG%9k;;VRrF+Ok)${gval=LC3*3J(G z53D}*#v>o@Y+cxmlpk4u7c>zT|oqW0uRS437v$#fBREE}VyOJDg z+HSp|nnnhA8fd(sN;6wcT4GWM^fM3aHXqg9wwJLpdNC((?R_T(r{jCJqB#$IdALjX zN|VlpjW$$Cg8OTTON{w}r|Gbw@0@Oc*CI|+(8GxXb=Q(Zp~et6B60Lz$^EUd-wGOU zO0t0EI==He-Ml6`LAn4{J>6-U#%sVD(_e??npE;o_TlFBe`)yv#5Daq>Sy2+% zyV{8c&+EE@PZ~hpM}Lpt6|JBU7Z3NVVP14kI&XkU0iYy>8^z{c$95HQ!p_%qra~rU z*CRjJ%QuZQ7@KC);BNQZ>;P$R;OC*94dj}v23leP2R<3MqVG~&S3O$;l)fS!k>2*>TFeF2n-K3)q@*eH%({#^wXGCN1u#8$JR*jcO|B2q10Vnk|hKSHB^ z!UG|*W(lX&0~nuKmR$4kMfb!Q(9!@Cu-fMM+@IWc>ZfmBg>Xfm_#V8x+*Bayx`@DvG^NbK-$&V2wTl6!)o zFJ#8(nZwypYY>7&nuZ@Zwy2{qAx9d?A)mTNt}~#RO+od=SLtgJ3VpTt8J6=DEZGsl z92cIPrCh6GqtPihstMvH3RcMXR&svx=$p;=^lAWkB?PnC;T4Es)Rp{uabvT16SxY2~ zW@zKX2UJ9V<{~5J*CK7}Vc+j(3~o{9a_F{=l`RSDs|Rl}F__7G4x!F*{DhAwg|zc8 zMq0ah@-LqX;pcL6H=P;Ny0W8w6+musxS|$UzM`4jJnN~CKnS&B{Dz;Jrw5R9IeM$< zU%O-Y4ZR@}0HHv5Yp|S%k0!3fWoKrspYQFfA`>GuerN-I4A9qWWs1pcBaDH?dPqB}_1ykJl z=dY^f_YnR?{+v8>@(J!Iq9o;7&3$#f#E4-EhX~UA1gtE!jz+bL93^*P2NU^eF)2{{ zZ6>1e>;5WA*TdJJteK||M`>fJnqK@(na~z#gq#Bl=-oocTCFBeouvlB#t;kl(Ix=W_P0CGZYEX&c zM-RS?FSYn@Yk*9v>qv#o$np2wn#4?*jw6n2C5XQAl40qe;nI44co|zM4dG%vCp!;4 zsqVXClH})IM`g<`d#p{bRvs`XHwP+T{W4S;*78^Le^1btrnSRU+S_zou=G6W(fONG z6_S<*DY1eH^DGwdTmLJU<8bTB`lAlBWMM+*U7tQ7mQ)JeIk6-^TZ_#@+E|n1O1(dUbdtH~sy3Y-&;}!?zfCx@8fT;h=3z7gSuS=YjMr@UxjpMB$)`D-MyLjTK@lTiO042Y^2w9LKhZNQ9AfS|`8#SDosd>uN7RtI_J8En)Ljv-H{4z;rY zE@B^FgRi1bNhK%sLGX@-z!)nEZF!_*&{<14@F%F^Nah=PJYvCd$3Dy0mk3j6&HD`U zgodr|jlMC>$NIP(rs#xSnRmie>^)s>r*ONcKqEtN(d9k?mw+_Zj2!Q=Db1*Kw~!Vs_;Q_a8wTa*7W_Qu7`O{3PWxr>YddL0-t$=s@Vv`V}MM2`z_ z%v40;=;DYw{13D=oPeu9k@~$}3j}By5HXFlbAO z|EsNqN-Bvbb1{J4%m!l0Tr;Y`=ayRxub^8S3@f%}`b8Uql$u6URfZviu7>oTUz?kO z)iSBq zhy4jt@DXh4|KA{TgL_7xDrDEim~$MRHgxV-0ORRQXj$-gtZj4^&uXe_w8xA=1h$pj z>Tp2JxZME2LWY0#A3nAMOURujxLj(0Xz)G0{GoBpMibbztmZ9IzkY8DTALR};LT3R z54ZhuIVQ7iOswPwT6$-%Lk)3)4K$R|aP|5)0nhwMh#K=E2fiA?4EQEeMOZ+hBX9k3 zqi44FkKN|(b=0WBS@E0uV<#q{MG?$}=QF*SRO5;B(#%;{QgY8LhNNZnc!>N1<6~nK z^#CS3M#&7I?etF%L3n=n0TtK29D_)vp(F;|KKGGgheZK?`p&=a?0 z^G6DeQ-hNVc*=Ds!T=buLb{>sMceAF6)84WCu2vAb=Hh5GaZm_&yrL*wAdB&XJm*E ztp2qNott0xOfJ2KP>EL+8J$Mxx2VnvI1+W=lXDQ^YRB-ZXP}vPbjBKp%4eGS(+I4l zSH2hy&geQi_Ha(FnIvziU_hB)1W{$`zR*lV!JUVrsFEzz$K2s2{>Goh3hDCc2fHst zZV^llNc~3&4Ecq$Z@@u@V90;u1$rNy4%URxZt$#fKtUmts#0z{!HP$bUGQM z{6=~Et1Z-s`hcCqp+;9?&x$7xgOwJ4d5p8Z7H(OYAOmI64!lW8C%m3&TA<8veMyn- z&y=roe~_ng%HRXle+WTWs1f8IpQokt8)=~?7yPwiSX>9IWGHr@%-$q-g~?CX7_bvs zLDytr>0Dg`S&pL%s0Yi*G{Qf=%uf`4)gk5j)fI{i)%Jsw|6aPqur_X(5O* zwN@s)C^G5d(C7Uq{k$7opVRa;A-^q@%-In7Z%?x(rtr6^Qea*>fdgof!()_EYAfiP zroEWtXpT<&6>r-6DZkjGWy|f1T0o)uX%}0iFxSJife#aoIv+T*1pGg=ncd|gtrJ37 zqh~7DrxJai4ZiOA8oBsh?yC)lAq=8G^q_b-K&-l@yP#;7yqpMAFSA#Pq&q!hd|6C} z3xR|hbk`T7zw1P|;&$c=j7{PHT#tP%YG6_Pz)FCnaw+p*N&-iv5Tz!4wX@;^9h@X@{)c5=u zLXOvEy2aQ~Q4heZckcGw6l(Oj?~Mg1nm@_jld2#>)))6E!H0aM+P?50O?%=B=l)eb zWX}hzfKMG^EQ$9_S-y}t^a5y@LL?Wq zTPQNN>+}UC;$(JKr-gIvk#OU)O|i$a$T+^z=oJXdnC@h$2VI`+3$@-1ya5!$D2cp0})j zFPW%Y^K9QsCo#XrS!AF#0C#!6Oogy(;oJO+U@09eR>TGbEYcic!_Ltn7a?GbKv0q6?h@hnUL_UPe1H z=_)I-A-Y~JfX{O&phjksP~-Tz__an)|CQZbtBJK=mO2m|*tl~f6Ioa2nRwe+8OGk> z?Tmq*;Lf-bEW)?~YBGr!)~OT=F7u_0ECI-?6SdShd7s43;h+0JZ^?N!YaQbXgePOs z)Bz~X7lQ(rgSl6(SFBa>N5b5fgXu8P8=x<*YAddNUx%B$$k!SFr*AsG0#@uDz=kb! zbb9z>E>MEWim=|9RmKDKj{9%x)A@e}fx+OwDTfe{(i9Kqy-dOp{A%tWf{0%j^=RR! z$z!zhLSG$=i8t;H#^VF3RHjt$z7{CbDhIe@+>e@i0s=toKp$OieoBk+3pSlmfsh9m zuWfFTTr=xb%x|3(L!P_mQ)8GpSlPWmVWN#cki=>q(q14|hSRE)9upV>TD^Mg;E4p= zFL8UkyU#EMp;%^CRxi*MoZrft_e?y&cVv9nv#Fk;Z~5a*T!qyy4UPu|kNm>#bmJ)p zILyyC2&06Cj!GS!T`Dgjq0)tiycL9V^$GMQAX&a{x@XwFTJL948ACTNp+`|RTej*Y zZ3(Oqkxw~$N;Yaxb*W|c_P{^Rbci~Apr@htQ*7>QCv5nw%ai}W=Zro#VBg>PAI$~N zT^4u8yh4~_=I}hsM(Ep;ZTfFg4TW8s4uw~@!C#Oquq^Vv$;2|Unv{V>AnpP|Ezpnf5)0K4(sRO9g{)bXr5c3fcH$UmB)ktgU)nVeK2E1g>|zq>P}YJAC{6v~N#`MWOE`tKr$+*| ziU`J81C}5_Da7~iV}1yP@$vI1C_bO7oL+8n{YM$->z2GhGKX+Oawhh2f1E*Xpu8=7St?t@i0(iefnv&DM! zE)n#_5p(tr7EKc79`?7)%1Q-s8H&70sEJ3BiMz;$|SDlq69Nq2Zu)$T6xOOIYV|PWnb{rs^d`if#b3L z*PUEyeI#dKp0Hrb2GPF0WxX`38l6WAVVe|cUSxuwWxeFO)n|%AqrzrB+&KZxm;cuI zJ2ey1BvMqF>>$Nth&m1!WEkx#2%Z+1 zUGycfUlil};YOTsY7lr`WvaG6B1E)SrYrFJ_?&BC5i0EMnr&d-a$ObHX@^*~eP7oi zmofX4J40~mOHMK+l6SlrZ>1(h8LWi5-@qM4=xWsH?c1`PiwO+Z=(W7%UG*@m13#a( z9rsBkO2ORUr=UBT*{zr-{XvpGjr+aX6)XB(9#w;+s2#I%HP^P3R?Xd^f<=+Lps7W7 zzfZO;e2>$oLxu6#0BvTiE`k$bBmSXa!DG2Nz6O65z)}AI1Y>NX~hc zb3Ac}ym?x`#Whk_KZof^{DBfat(yv^vb7Z2BS_C%0`YlL{*#4z7%B2k+{CFIq?9x3 z66w5}-Ye(js3y2wuNB+ZT$OMcCxcgDnA|NWn)SUAT~|PQx@lOw|2BAjn9_}tT}1GV z;Npt@rObHSBiH3mEd1NG=_2?dH^r_Q>DsH+_-*ux#)z z^3by`6HS`YCt<8B8)@`9bFmwmlr;8uyog##1aDx)lIC15o;vwlU~r#Vs`cIz>{RjA zRAI-%2o>@l-{eBCS@rm?sV51`A5F+>z6*{#t0}qhGhk&rtZ&~H9E)Jg2fYQp32ups z>-zaAcUPY+3`KNKa-`gSNWxXa&=Sk9<L2aIvWBOQg1do+0#B|w{C{#tv1aaHxMpw_!XKS5T6PU9(XmC+_SJBueMJ^lve-r{N) zW1@DgI3b>SMW!}tHT|4}6)}!Oh2=@~HW{1Hc!BR`J>oJW^7mApt~WIapxu%=yKwiU z=X{0hwXqhtvEMU>`UG)6?pq7Niy;Fg{q@FtDb+$ni-5CgyO?gWEN^s*{z|D_`Rpt$ z{}uUwO9Nt@djH>4Yp%)9i>{#9r~VH5O$?D8Y^W>3YVy6r*+-_a$6acFoZAVB-SYMF z7$Qw2ZIqxp&dv3^k|KBik*e(J5{ zr}!M&=CjR%)u-8WjNGj~0@{{N%;HsKVL_?I%LGl%c%th5^S_2y#K>IRUgKlr8%`Cs z)Cmnt&ckS3hn-#^Et3c6r0Jh)o|Otyx&A9*?!>;H5y3F=#3ZoD_d&yUn>BU`h30e` z&o5b;hTz@qp$i-{=S?JK0cfZ1PGdFB798e3J3(pdfdtCVc!fH7)2DJ^&t|oNO}!MW ztrq93z>6LJsu|an@}W%w3~4Z{`Yc1FNNtgAVb9f-X*>iu9cA|!xB9vc2~=u}rU6|z zB8VfNY*9!6EkygQ!Is+p$~^g(Xc?RPR8c@O%@G|YFYqzzkSasusfXy%;uOg_Y+p(VrrF%R`Pz|EdlzLAUH4@ktNEG>SyzFBM7Ci;}OAsUon5GeR@bw zMW!nC?02N%kDQm!zmZTC7G=cw22GZJ78+iRSaC@N@dgrb;&qgXF3$ z&J%ZXqMClBM>o;t^Yntt?P}1YIVN}elp{5I=7@a%Ke1|dR3w+O6WB26FkVL55}`jJ z;rs~Hcf;HFFKX;|=yfr>f8P(kRouiUce-+7ot|!vg-?&($elI)J(v2(i1Yque8?L} z;&|!AJe@NaREf^BvS@hR&mjvyH1~V&rLL9C-e|S`6HmZmSDL>b^hal2>V{oHM?nny zCOJ$`Qd6yq593)qeEodL3qvDQu;Jlz8{uj}Kp|zdq)4SUckbw?@YVQT>=KUpvUt<> z^oKjIG5}Fi5Y{5>BNXBl?1Vmb~((kqvU8BX599z`gIDz$19?-hK@fb z&w^4w3#3cd;}z{RBv8bj5WI zQ)<6c5bYW5i$IWHvAMXez;$2hrcNltcqw=^OBM~mA>!%q0)`(w+j|Nzg$nRYeSbcm zqkE8(IQX8l=N}G6BlUPyU*);Ai77eU`^#*|ygz~3Jos#r$}B;GFh*${Mtmr^hvFdb zvN1f6)hv0Fko31c2v%rg>FxOubgr4%UZ0P`!g8{D?EKGCk2WADikgi!RcX)hyj{!D zT#QjJnU_Vf(}&dSm~_w`wX6dbMw}%7nSK$rGr<=*1Qgflh6@Pd z1$#7O=_sZo0CpZ-Zg&r3ps~j!upK? zVI>BQ*;3XW{HV+^GC#dKEUd)|=(GPW_^lcyL*z(V)lyuIE|vgVxb=jv{HWNJ+MjEc z)8^|R7*NM^qI&X94Ghq^sa^Q2NRI8&b9~6jp%(em#_&||>VOC5{iVmvyL~wzt4S++ zHo^ZY0a=;ly!b|0IsRebrRPij`-_Aoz{}FLz(Qs-S0Go8F3U2L!|{0Ap4o1~X9TdF zu+p(t4@Ws17OuY=*S3D{!+_FfcKc>tjeiH;EzrH@3Is`Qh^W}*RbrTX0v)4n1tKZ* zUf)bApq5ZXKG(hpJCT8xJZC=MJbC^wWT^kBPi6pMyJ{Pdw#(){4e(CiFu6?eO@Km{ z)|(DD)zU%RQ&**{K$vU<0yk4};xstPD4dYZ|0U=G+-i>jBe!xqIJqL6p3SX-&HoQ5 qUAqTYw}yK-#y6j(Cvp8h%JlG7tv6iKIJW)|g|4O{qFLQB>VE;&t=g;r literal 97902 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 B=uQ9t diff --git a/examples/pc-screenshot.png b/examples/pc-screenshot.png index 3f5142777d9b7a1f0c9711316ff84038603d34a9..4f876b347bdab3ec05d4eeec8c7550ccb2caec93 100644 GIT binary patch literal 16448 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", + "author": "aframe-community https://github.com/aframe-community", "license": "MIT", "bugs": { - "url": "https://github.com/chenzlabs/stats-in-vr/issues" + "url": "https://github.com/aframe-community/stats-in-vr/issues" }, - "homepage": "https://github.com/chenzlabs/stats-in-vr#readme", + "homepage": "https://github.com/aframe-community/stats-in-vr#readme", "devDependencies": { - "aframe": "^0.4.0", + "aframe": "^1.0.4", "browserify": "^13.0.0", "browserify-css": "^0.9.1", "budo": "^8.2.2", diff --git a/stats-in-vr.js b/stats-in-vr.js index a9c9b45..c6a4afd 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -3,39 +3,44 @@ /** * Show scene stats in VR. */ -AFRAME.registerComponent('stats-in-vr', { - dependencies: ['stats'], +AFRAME.registerComponent("stats-in-vr", { + dependencies: ["stats"], schema: { - enabled: {type:'boolean', default: true}, - position: {type:'string', default: '0 -0.35 -0.5'}, - scale: {type:'string', default: '0.5 0.5 1'}, - updateIntervalMillis: {type:'number', default: 500} + enabled: { type: "boolean", default: true }, + position: { type: "string", default: "0 -0.35 -0.5" }, + scale: { type: "string", default: "0.5 0.5 1" }, + updateIntervalMillis: { type: "number", default: 500 } }, - init: function () { + init: function() { var scene = this.el; - var statsEl = scene.components['stats'].statsEl; + var statsEl = scene.components["stats"].statsEl; // hide the DOM stats panel - statsEl.style = 'display: none !important;'; - statsEl.className = 'a-hidden'; + //statsEl.style = 'display: none !important;'; + //statsEl.className = 'a-hidden'; // once we start rendering, create VR stats panel - if (scene.renderStarted) { this.createStatsPanel(); } else { - scene.addEventListener('renderstart', this.createStatsPanel.bind(this)); + if (scene.renderStarted) { + this.createStatsPanel(); + } else { + scene.addEventListener("renderstart", this.createStatsPanel.bind(this)); } }, - createStatsPanel: function () { + createStatsPanel: function() { var self = this; // attached to scene element, so inject stats panel into camera - self.statspanel = document.createElement('a-entity'); - self.statspanel.setAttribute('id', 'statspanel'); - self.statspanel.setAttribute('position', self.data.position); - self.statspanel.setAttribute('scale', self.data.scale); - self.statspanel.setAttribute('visible', self.data.enabled ? 'true' : 'false'); + self.statspanel = document.createElement("a-entity"); + self.statspanel.setAttribute("id", "statspanel"); + self.statspanel.setAttribute("position", self.data.position); + self.statspanel.setAttribute("scale", self.data.scale); + self.statspanel.setAttribute( + "visible", + self.data.enabled ? "true" : "false" + ); self.el.camera.el.appendChild(self.statspanel); // set up the VR stats panel @@ -44,94 +49,106 @@ AFRAME.registerComponent('stats-in-vr', { self.rsvalues = []; }, - updateStatsPanel: function () { + updateStatsPanel: function() { var self = this; - if (!self.statspanel || !self.rsids) { return; } + if (!self.statspanel || !self.rsids) { + return; + } var scene = this.el; - var statsEl = scene.components['stats'].statsEl; - var rscanvases = document.querySelectorAll('.rs-canvas'); + var statsEl = scene.components["stats"].statsEl; + var rscanvases = document.querySelectorAll(".rs-canvas"); for (var i = 0; i < rscanvases.length; i++) { var rsparent = rscanvases[i].parentElement; - var rsid = rsparent.querySelector('.rs-counter-id').innerText; - if (self.rsids.indexOf(rsid) >= 0) { continue; } + var rsid = rsparent.querySelector(".rs-counter-id").innerText; + + if (self.rsids.indexOf(rsid) >= 0) { + continue; + } // remember labels and value elements self.rsids.push(rsid); - self.rsvalues.push(rsparent.querySelector('.rs-counter-value')); + self.rsvalues.push(rsparent.querySelector(".rs-counter-value")); // inject id values for rstats canvases - var idsuffix = self.rsids[i].replace(' ', '_'); - rscanvases[i].id = 'rstats-' + idsuffix; + var idsuffix = self.rsids[i].replace(" ", "_"); + rscanvases[i].id = "rstats-" + idsuffix; - var y = (1.25 - i * 0.025) + ' 0'; - - // create the image for the rstats canvas - var stats = document.createElement('a-image'); - stats.setAttribute('position', '-0.08 ' + y); - stats.setAttribute('width', '0.34'); - stats.setAttribute('height', '0.025'); - stats.setAttribute('src', '#' + rscanvases[i].id); - self.statspanel.appendChild(stats); + var y = 1.25 - i * 0.025 + " 0"; // create the canvas for the value - var valuecanvas = document.createElement('canvas'); - valuecanvas.setAttribute('id', 'value-' + idsuffix); - valuecanvas.setAttribute('width', '160'); - valuecanvas.setAttribute('height', '20'); - valuecanvas.setAttribute('crossorigin', 'anonymous'); + var valuecanvas = document.createElement("canvas"); + valuecanvas.setAttribute("id", "value-" + idsuffix); + valuecanvas.setAttribute("width", "192"); + valuecanvas.setAttribute("height", "16"); + valuecanvas.setAttribute("crossorigin", "anonymous"); self.valuecanvases.push(valuecanvas); // add the value canvas statsEl.appendChild(self.valuecanvases[i]); // create the image for the value canvas - var value = document.createElement('a-image'); - value.setAttribute('position', '0.17 ' + y); - value.setAttribute('width', '0.16'); - value.setAttribute('height', '0.025'); - value.setAttribute('src', '#' + self.valuecanvases[i].id); + var value = document.createElement("a-image"); + value.setAttribute("id", "aframe-" + idsuffix); + value.setAttribute("position", "0.17 " + y); + value.setAttribute("width", "0.16"); + value.setAttribute("height", "0.025"); + value.setAttribute("src", "#" + self.valuecanvases[i].id); self.statspanel.appendChild(value); + } }, - update: function () { - if (!this.statspanel) { return; } - this.statspanel.setAttribute('position', this.data.position); - this.statspanel.setAttribute('scale', this.data.scale); - return (!this.data.enabled) ? this.hide() : this.show(); + update: function() { + if (!this.statspanel) { + return; + } + this.statspanel.setAttribute("position", this.data.position); + this.statspanel.setAttribute("scale", this.data.scale); + return !this.data.enabled ? this.hide() : this.show(); }, - remove: function () { + remove: function() { var scene = this.el; - var statsEl = scene.components['stats'].statsEl; + var statsEl = scene.components["stats"].statsEl; statsEl.parentNode.removeChild(statsEl); }, - tick: function () { + tick: function() { // periodically update the value canvases var now = Date.now(); - if (now < this.lastTime + this.data.updateIntervalMillis) { return; } + if (now < this.lastTime + this.data.updateIntervalMillis) { + return; + } this.lastTime = now; - this.updateStatsPanel(); if (this.valuecanvases) { + this.updateStatsPanel(); for (var i = 0; i < this.valuecanvases.length; i++) { - var ctx = this.valuecanvases[i].getContext('2d'); - ctx.font = '16px monospace'; - ctx.fillStyle = 'gray'; - ctx.fillRect(0, 0, 160, 20); - ctx.fillStyle = 'black'; - ctx.fillText(this.rsvalues[i].innerText + ' ' + this.rsids[i], 2, 16); + var ctx = this.valuecanvases[i].getContext("2d"); + ctx.clearRect(0, 0, 192, 16); + ctx.font = "12px monospace"; + ctx.fillStyle = "gray"; + ctx.fillRect(0, 0, 192, 16); + ctx.fillStyle = "black"; + ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 16); + + if (this.statspanel.childNodes.item(i).components?.material?.shader){ + this.statspanel.childNodes.item(i).components.material.material.map.needsUpdate = true; + } + } } }, - hide: function () { - if (this.statspanel) { this.statspanel.object3D.visible = false; } + hide: function() { + if (this.statspanel) { + this.statspanel.object3D.visible = false; + } }, - show: function () { - if (this.statspanel) { this.statspanel.object3D.visible = true; } + show: function() { + if (this.statspanel) { + this.statspanel.object3D.visible = true; + } } - }); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..9b55b85 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6904 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +JSONStream@^1.0.3: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= + +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + integrity sha1-w8p0NJOGSMPg2cHjKN1otiLChMo= + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-to-esprima@^2.0.6, acorn-to-esprima@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz#003f0c642eb92132f417d3708f14ada82adf2eb1" + integrity sha1-AD8MZC65ITL0F9NwjxStqCrfLrE= + +acorn-walk@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" + integrity sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg== + +acorn@^3.0.0, acorn@^3.0.4, acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.2.1, acorn@^5.5.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + +aframe@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aframe/-/aframe-1.2.0.tgz#795027f656d51d59820536e7e6288744f78e80ae" + integrity sha512-e4lGvxLQ5CAptlbCqmnR4+qUf9s3f5SSnkMQaBsIFlJ2QMZhzEBr/SSV3+NEvMhsQf88EOvSpN1Vez942mBLcQ== + dependencies: + custom-event-polyfill "^1.0.6" + debug ngokevin/debug#noTimestamp + deep-assign "^2.0.0" + document-register-element dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90 + load-bmfont "^1.2.3" + object-assign "^4.0.1" + present "0.0.6" + promise-polyfill "^3.1.0" + super-animejs "^3.1.0" + super-three "^0.125.1" + three-bmfont-text dmarcos/three-bmfont-text#1babdf8507c731a18f8af3b807292e2b9740955e + webvr-polyfill "^0.10.12" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= + +ajv@^4.7.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +an-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/an-array/-/an-array-1.0.0.tgz#c125a5bb8257778e35f4b4f6aa9c7d0fa9e42665" + integrity sha1-wSWlu4JXd4419LT2qpx9D6nkJmU= + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= + +ansi-regex@^1.0.0, ansi-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" + integrity sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.0.1.tgz#b033f57f93e2d28adeb8bc11138fa13da0fd20a3" + integrity sha1-sDP1f5Pi0oreuLwRE4+hPaD9IKM= + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= + +ansi-styles@^2.0.1, ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-shuffle@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-shuffle/-/array-shuffle-1.0.1.tgz#7ea4882a356b4bca5f545e0b6e52eaf6d971557a" + integrity sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo= + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + integrity sha1-8zshWfBTKj8xB6JywMz70a0peco= + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +as-number@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/as-number/-/as-number-1.0.0.tgz#acb27e34f8f9d8ab0da9e376f3b8959860f80a66" + integrity sha1-rLJ+NPj52KsNqeN287iVmGD4CmY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1, assert@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= + +async-each@^1.0.0, async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async@1.5.2, async@1.x, async@^1.3.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-traverse@^6.4.5, babel-traverse@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@6.14.1: + version "6.14.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" + integrity sha1-lWJ1+rcnU62bNDXXr+WPi/CimBU= + +babylon@^6.18.0, babylon@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base62@^1.1.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/base62/-/base62-1.2.8.tgz#1264cb0fb848d875792877479dbe8bae6bae3428" + integrity sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA== + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE= + +bluebird@^3.0.5, bluebird@^3.3.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@^1.16.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +body-parser@~1.14.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9" + integrity sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk= + dependencies: + bytes "2.2.0" + content-type "~1.0.1" + debug "~2.2.0" + depd "~1.1.0" + http-errors "~1.3.1" + iconv-lite "0.4.13" + on-finished "~2.3.0" + qs "5.2.0" + raw-body "~2.1.5" + type-is "~1.6.10" + +bole@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bole/-/bole-2.0.0.tgz#d8aa1c690467bfb4fe11b874acb2e8387e382615" + integrity sha1-2KocaQRnv7T+Ebh0rLLoOH44JhU= + dependencies: + core-util-is ">=1.0.1 <1.1.0-0" + individual ">=3.0.0 <3.1.0-0" + json-stringify-safe ">=5.0.0 <5.1.0-0" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + integrity sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY= + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= + +browserify-aes@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" + integrity sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw= + dependencies: + inherits "^2.0.1" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-css@^0.9.1: + version "0.9.2" + resolved "https://registry.yarnpkg.com/browserify-css/-/browserify-css-0.9.2.tgz#377a703a3e63842b9145a6a64e0b97e401766f2c" + integrity sha1-N3pwOj5jhCuRRaamTguX5AF2byw= + dependencies: + clean-css "2.2.x" + concat-stream "1.4.x" + css "1.6.x" + find-node-modules "^1.0.1" + lodash "3.6.x" + through2 "0.6.x" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4, browserify-zlib@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + dependencies: + pako "~0.2.0" + +browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserify@^13.0.0, browserify@^13.0.1: + version "13.3.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce" + integrity sha1-tanJAgJD8McORnW+yCI7xifkFc4= + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.1.2" + buffer "^4.1.0" + cached-path-relative "^1.0.0" + concat-stream "~1.5.1" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "~1.1.0" + duplexer2 "~0.1.2" + events "~1.1.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "~0.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + module-deps "^4.0.8" + os-browserify "~0.1.1" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "~0.10.0" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "~0.0.0" + url "~0.11.0" + util "~0.10.1" + vm-browserify "~0.0.1" + xtend "^4.0.0" + +browserify@^16.1.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.0.tgz#a1c2bc0431bec11fd29151941582e3f645ede881" + integrity sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +budo@^8.2.2: + version "8.4.0" + resolved "https://registry.yarnpkg.com/budo/-/budo-8.4.0.tgz#2b59ce115c6ef2319a57b192d44886655b83423b" + integrity sha1-K1nOEVxu8jGaV7GS1EiGZVuDQjs= + dependencies: + bole "^2.0.0" + browserify "^13.0.1" + chokidar "^1.0.1" + connect-pushstate "^1.0.0" + events "^1.0.2" + garnish "^5.0.0" + get-ports "^1.0.2" + inject-lr-script "^2.0.0" + internal-ip "^1.0.1" + micromatch "^2.2.0" + minimist "^1.1.0" + once "^1.3.2" + opn "^3.0.2" + resolve "^1.1.6" + resp-modifier "^6.0.0" + serve-static "^1.10.0" + simple-html-index "^1.4.0" + stacked "^1.1.1" + stdout-stream "^1.4.0" + strip-ansi "^3.0.0" + term-color "^1.0.1" + tiny-lr "^0.2.0" + url-trim "^1.0.0" + watchify-middleware "^1.6.0" + xtend "^4.0.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.1.0, buffer@^4.9.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.0.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" + integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588" + integrity sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg= + +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + integrity sha1-fZcZb51br39pNeJZhVSe3SpsIzk= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" + integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +cardboard-vr-display@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/cardboard-vr-display/-/cardboard-vr-display-1.0.19.tgz#81dcde1804b329b8228b757ac00e1fd2afa9d748" + integrity sha512-+MjcnWKAkb95p68elqZLDPzoiF/dGncQilLGvPBM5ZorABp/ao3lCs7nnRcYBckmuNkg1V/5rdGDKoUaCVsHzQ== + dependencies: + gl-preserve-state "^1.0.0" + nosleep.js "^0.7.0" + webvr-polyfill-dpdb "^1.0.17" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai-shallow-deep-equal@^1.4.0: + version "1.4.6" + resolved "https://registry.yarnpkg.com/chai-shallow-deep-equal/-/chai-shallow-deep-equal-1.4.6.tgz#4184b5a13393adae34b6cef0c69b5acc82c4d834" + integrity sha1-QYS1oTOTra40ts7wxptazILE2DQ= + +chai@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.1.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^1.0.0, chokidar@^1.0.1, chokidar@^1.4.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chokidar@^2.1.1: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@2.2.x: + version "2.2.23" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-2.2.23.tgz#0590b5478b516c4903edc2d89bd3fdbdd286328c" + integrity sha1-BZC1R4tRbEkD7cLYm9P9vdKGMow= + dependencies: + commander "2.2.x" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-width@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d" + integrity sha1-pNKT72frt7iNSk1CwMzwDE0eNm0= + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +collections@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/collections/-/collections-0.2.2.tgz#1f23026b2ef36f927eecc901e99c5f0d48fa334e" + integrity sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04= + dependencies: + weak-map "1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +colors@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + integrity sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y= + dependencies: + lodash "^4.5.0" + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +commander@2.2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.2.0.tgz#175ad4b9317f3ff615f201c1e57224f55a3e91df" + integrity sha1-F1rUuTF/P/YV8gHB5XIk9Vo+kd8= + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.2.0, commander@^2.5.0, commander@^2.9.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commoner@^0.10.1: + version "0.10.8" + resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5" + integrity sha1-NPw2cs0kOT6LtH5wyqApOBH08sU= + dependencies: + commander "^2.5.0" + detective "^4.3.1" + glob "^5.0.15" + graceful-fs "^4.1.2" + iconv-lite "^0.4.5" + mkdirp "^0.5.0" + private "^0.1.6" + q "^1.1.2" + recast "^0.11.17" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@1.4.x: + version "1.4.11" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.4.11.tgz#1dc9f666f2621da9c618b1e7f8f3b2ff70b5f76f" + integrity sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw== + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.9" + typedarray "~0.0.5" + +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +concat-stream@~1.5.0, concat-stream@~1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + integrity sha1-cIl4Yk2FavQaWnQd790mHadSwmY= + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +config-chain@~1.1.5: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-pushstate@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/connect-pushstate/-/connect-pushstate-1.1.0.tgz#bcab224271c439604a0fb0f614c0a5f563e88e24" + integrity sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ= + +connect@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0, constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-type@~1.0.1, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.1.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js@^2.2.0, core-js@^2.4.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +"core-util-is@>=1.0.1 <1.1.0-0", core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +crypto-browserify@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" + integrity sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw= + dependencies: + browserify-aes "0.4.0" + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +crypto-browserify@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-parse@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" + integrity sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs= + +css-stringify@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/css-stringify/-/css-stringify-1.4.1.tgz#252ccbf03f723a009bdd8770fe7eb274171afdfa" + integrity sha1-JSzL8D9yOgCb3Ydw/n6ydBca/fo= + dependencies: + source-map "~0.1.31" + +css@1.6.x: + version "1.6.0" + resolved "https://registry.yarnpkg.com/css/-/css-1.6.0.tgz#c06fff0afbb313fce5bce070d76531a6c8d300aa" + integrity sha1-wG//CvuzE/zlvOBw12UxpsjTAKo= + dependencies: + css-parse "1.7.0" + css-stringify "1.4.1" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +custom-event-polyfill@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz#9bc993ddda937c1a30ccd335614c6c58c4f87aee" + integrity sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w== + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dateformat@^1.0.6: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +debounce@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" + integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== + +debug-log@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@2.2.0, "debug@github:ngokevin/debug#noTimestamp", debug@~2.2.0: + version "2.2.0" + resolved "https://codeload.github.com/ngokevin/debug/tar.gz/ef5f8e66d49ce8bc64c6f282c15f8b7164409e3a" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + integrity sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w= + dependencies: + ms "0.7.2" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw= + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= + +debug@^3.0.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.0.0, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-assign@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-2.0.0.tgz#ebe06b1f07f08dae597620e3dd1622f371a1c572" + integrity sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI= + dependencies: + is-obj "^1.0.0" + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= + dependencies: + type-detect "0.1.1" + +deep-is@~0.1.2, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defaults@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +deglob@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-1.1.2.tgz#76d577c25fe3f7329412a2b59eadea57ac500e3f" + integrity sha1-dtV3wl/j9zKUEqK1nq3qV6xQDj8= + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^3.0.9" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + xtend "^4.0.0" + +depd@~1.1.0, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deps-sort@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + dependencies: + JSONStream "^1.0.3" + shasum-object "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + integrity sha1-STXe39lIhkjgBrASlWbpOGcR6mM= + dependencies: + fs-exists-sync "^0.1.0" + +detective@^4.0.0, detective@^4.3.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e" + integrity sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig== + dependencies: + acorn "^5.2.1" + defined "^1.0.0" + +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k= + +diff@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + integrity sha1-fyjS657nsVqX79ic5j3P2qPMur8= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +disparity@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/disparity/-/disparity-2.0.0.tgz#57ddacb47324ae5f58d2cc0da886db4ce9eeb718" + integrity sha1-V92stHMkrl9Y0swNqIbbTOnutxg= + dependencies: + ansi-styles "^2.0.1" + diff "^1.3.2" + +doctrine@^0.6.2: + version "0.6.4" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.6.4.tgz#81428491a942ef18b0492056eda3800eee57d61d" + integrity sha1-gUKEkalC7xiwSSBW7aOADu5X1h0= + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + +doctrine@^1.2.1, doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +"document-register-element@github:dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90": + version "0.5.4" + resolved "https://codeload.github.com/dmarcos/document-register-element/tar.gz/8ccc532b7f3744be954574caf3072a5fd260ca90" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + +domain-browser@^1.1.1, domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domain-browser@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + integrity sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw= + +dtype@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dtype/-/dtype-2.0.0.tgz#cd052323ce061444ecd2e8f5748f69a29be28434" + integrity sha1-zQUjI84GFETs0uj1dI9popvihDQ= + +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + +editorconfig@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" + integrity sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ== + dependencies: + bluebird "^3.0.5" + commander "^2.9.0" + lru-cache "^3.2.0" + semver "^5.1.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +engine.io-client@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" + integrity sha1-F5jtk0USRkU9TG9jXXogH+lA1as= + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + integrity sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo= + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" + integrity sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q= + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + +envify@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/envify/-/envify-3.4.1.tgz#d7122329e8df1688ba771b12501917c9ce5cbce8" + integrity sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg= + dependencies: + jstransform "^11.0.3" + through "~2.3.4" + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0-next.1: + version "1.17.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" + integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escope@^3.1.0, escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esformatter-eol-last@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esformatter-eol-last/-/esformatter-eol-last-1.0.0.tgz#45a78ff4622b1d49e44f56b49905766a63290c07" + integrity sha1-RaeP9GIrHUnkT1a0mQV2amMpDAc= + dependencies: + string.prototype.endswith "^0.2.0" + +esformatter-ignore@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/esformatter-ignore/-/esformatter-ignore-0.1.3.tgz#04d3b875bfa49dde004cc58df6f6bbc3c0567f1e" + integrity sha1-BNO4db+knd4ATMWN9va7w8BWfx4= + +esformatter-jsx@^7.0.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/esformatter-jsx/-/esformatter-jsx-7.4.1.tgz#b2209ae0908f413a747b1205727cbf4ba4249602" + integrity sha1-siCa4JCPQTp0exIFcny/S6QklgI= + dependencies: + babylon "6.14.1" + esformatter-ignore "^0.1.3" + extend "3.0.0" + js-beautify "1.6.4" + +esformatter-literal-notation@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esformatter-literal-notation/-/esformatter-literal-notation-1.0.1.tgz#710e7b420175fe3f7e5afad5bbad329103842e2f" + integrity sha1-cQ57QgF1/j9+WvrVu60ykQOELi8= + dependencies: + rocambole "^0.3.6" + rocambole-token "^1.2.1" + +esformatter-parser@^1.0, esformatter-parser@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esformatter-parser/-/esformatter-parser-1.0.0.tgz#0854072d0487539ed39cae38d8a5432c17ec11d3" + integrity sha1-CFQHLQSHU57TnK442KVDLBfsEdM= + dependencies: + acorn-to-esprima "^2.0.8" + babel-traverse "^6.9.0" + babylon "^6.8.0" + rocambole "^0.7.0" + +esformatter-quotes@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esformatter-quotes/-/esformatter-quotes-1.1.0.tgz#e22c6c445c7f306041d81c9b9e51fca6cbfaca82" + integrity sha1-4ixsRFx/MGBB2BybnlH8psv6yoI= + +esformatter-remove-trailing-commas@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esformatter-remove-trailing-commas/-/esformatter-remove-trailing-commas-1.0.1.tgz#9397624c1faa980fc4ecc7e5e9813eb4f2b582a7" + integrity sha1-k5diTB+qmA/E7Mfl6YE+tPK1gqc= + dependencies: + rocambole-token "^1.2.1" + +esformatter-semicolon-first@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/esformatter-semicolon-first/-/esformatter-semicolon-first-1.2.0.tgz#e3b512d1d4e07310eabcabf57277ea7c8a56e242" + integrity sha1-47US0dTgcxDqvKv1cnfqfIpW4kI= + dependencies: + esformatter-parser "^1.0" + rocambole ">=0.6.0 <2.0" + rocambole-linebreak "^1.0.2" + rocambole-token "^1.2.1" + +esformatter-spaced-lined-comment@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esformatter-spaced-lined-comment/-/esformatter-spaced-lined-comment-2.0.1.tgz#dc5f3407f93c295e1e56446bd344560da5e6dcac" + integrity sha1-3F80B/k8KV4eVkRr00RWDaXm3Kw= + +esformatter@^0.9.0: + version "0.9.6" + resolved "https://registry.yarnpkg.com/esformatter/-/esformatter-0.9.6.tgz#3608aec7828deee3cd3f46e1192aeb47268a957f" + integrity sha1-Ngiux4KN7uPNP0bhGSrrRyaKlX8= + dependencies: + acorn-to-esprima "^2.0.6" + babel-traverse "^6.4.5" + debug "^0.7.4" + disparity "^2.0.0" + esformatter-parser "^1.0.0" + glob "^5.0.3" + minimist "^1.1.1" + mout ">=0.9 <2.0" + npm-run "^2.0.0" + resolve "^1.1.5" + rocambole ">=0.7 <2.0" + rocambole-indent "^2.0.4" + rocambole-linebreak "^1.0.2" + rocambole-node "~1.0" + rocambole-token "^1.1.2" + rocambole-whitespace "^1.0.0" + stdin "*" + strip-json-comments "~0.1.1" + supports-color "^1.3.1" + user-home "^2.0.0" + +eslint-config-semistandard@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-6.0.2.tgz#257b96337d2a8f2eb20e20e5f0e8235014a190d4" + integrity sha1-JXuWM30qjy6yDiDl8OgjUBShkNQ= + +eslint-config-standard-jsx@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-1.2.0.tgz#ca9fd593610e6af55a2ad3f4300092d1e8c0def5" + integrity sha1-yp/Vk2EOavVaKtP0MACS0ejA3vU= + +eslint-config-standard-jsx@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-1.2.1.tgz#0d19b1705f0ad48363ef2a8bbfa71df012d989b3" + integrity sha1-DRmxcF8K1INj7yqLv6cd8BLZibM= + +eslint-config-standard@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-5.3.1.tgz#591c969151744132f561d3b915a812ea413fe490" + integrity sha1-WRyWkVF0QTL1YdO5FagS6kE/5JA= + +eslint-plugin-promise@^1.0.8: + version "1.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-1.3.2.tgz#fce332d6f5ff523200a537704863ec3c2422ba7c" + integrity sha1-/OMy1vX/UjIApTdwSGPsPCQiunw= + +eslint-plugin-react@^5.0.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" + integrity sha1-fbBo4fVIf2hx5N7vNqOBwwPqwWE= + dependencies: + doctrine "^1.2.2" + jsx-ast-utils "^1.2.1" + +eslint-plugin-standard@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-1.3.3.tgz#a3085451523431e76f409c70cb8f94e32bf0ec7f" + integrity sha1-owhUUVI0MedvQJxwy4+U4yvw7H8= + +eslint@^0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-0.24.1.tgz#54a50809855b9655721c6f2ee57b351edce28101" + integrity sha1-VKUICYVbllVyHG8u5Xs1HtzigQE= + dependencies: + chalk "^1.0.0" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^0.6.2" + escape-string-regexp "^1.0.2" + escope "^3.1.0" + espree "^2.0.1" + estraverse "^4.1.0" + estraverse-fb "^1.3.1" + globals "^8.0.0" + inquirer "^0.8.2" + is-my-json-valid "^2.10.0" + js-yaml "^3.2.5" + minimatch "^2.0.1" + mkdirp "^0.5.0" + object-assign "^2.0.0" + optionator "^0.5.0" + path-is-absolute "^1.0.0" + strip-json-comments "~1.0.1" + text-table "~0.2.0" + user-home "^1.0.0" + xml-escape "~1.0.0" + +eslint@^2.10.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" + integrity sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE= + dependencies: + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + es6-map "^0.1.3" + escope "^3.6.0" + espree "^3.1.6" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^1.1.1" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.1.2" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + optionator "^0.8.1" + path-is-absolute "^1.0.0" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.6.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +eslint@~2.10.2: + version "2.10.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.10.2.tgz#b2309482fef043d3203365a321285e6cce01c3d7" + integrity sha1-sjCUgv7wQ9MgM2WjIShebM4Bw9c= + dependencies: + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.1" + es6-map "^0.1.3" + escope "^3.6.0" + espree "3.1.4" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^1.1.1" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.1.2" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + optionator "^0.8.1" + path-is-absolute "^1.0.0" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.6.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.4.tgz#0726d7ac83af97a7c8498da9b363a3609d2a68a1" + integrity sha1-BybXrIOvl6fISY2ps2OjYJ0qaKE= + dependencies: + acorn "^3.1.0" + acorn-jsx "^3.0.0" + +espree@^2.0.1: + version "2.2.5" + resolved "https://registry.yarnpkg.com/espree/-/espree-2.2.5.tgz#df691b9310889402aeb29cc066708c56690b854b" + integrity sha1-32kbkxCIlAKuspzAZnCMVmkLhUs= + +espree@^3.1.6: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima-fb@^15001.1.0-dev-harmony-fb: + version "15001.1.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz#30a947303c6b8d5e955bee2b99b1d233206a6901" + integrity sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE= + +esprima@2.7.x, esprima@^2.1, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@~1.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= + +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse-fb@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/estraverse-fb/-/estraverse-fb-1.3.2.tgz#d323a4cb5e5ac331cea033413a9253e1643e07c4" + integrity sha1-0yOky15awzHOoDNBOpJT4WQ+B8Q= + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@^1.0.0, events@^1.0.2, events@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + integrity sha1-SIsdHSRRyz06axks/AMPRMWFX+o= + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + integrity sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ= + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + dependencies: + os-homedir "^1.0.1" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + integrity sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ= + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + integrity sha1-Etew24UPf/fnCBuvQAVwAGDEYAs= + dependencies: + extend "^3.0.0" + spawn-sync "^1.0.15" + tmp "^0.0.29" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-levenshtein@~1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz#0178dcdee023b92905193af0959e8a7639cfdcb9" + integrity sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk= + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-safe-stringify@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + +faye-websocket@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^1.1.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" + integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-node-modules@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-1.0.4.tgz#b6deb3cccb699c87037677bcede2c5f5862b2550" + integrity sha1-tt6zzMtpnIcDdne87eLF9YYrJVA= + dependencies: + findup-sync "0.4.2" + merge "^1.2.0" + +find-root@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +findit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findit/-/findit-2.0.0.tgz#6509f0126af4c178551cfa99394e032e13a4d56e" + integrity sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4= + +findup-sync@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" + integrity sha1-qBF9D3MST1pFRoOVef5S1xKfteU= + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flatten-vertex-data@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz#889fd60bea506006ca33955ee1105175fb620219" + integrity sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw== + dependencies: + dtype "^2.0.0" + +follow-redirects@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" + integrity sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ== + dependencies: + debug "^3.0.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +formatio@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" + integrity sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek= + dependencies: + samsam "~1.1" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2-string@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/from2-string/-/from2-string-1.1.0.tgz#18282b27d08a267cb3030cd2b8b4b0f212af752a" + integrity sha1-GCgrJ9CKJnyzAwzSuLSw8hKvdSo= + dependencies: + from2 "^2.0.3" + +from2@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= + dependencies: + null-check "^1.0.0" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.0.0, fsevents@^1.2.7: + version "1.2.11" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +garnish@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/garnish/-/garnish-5.2.0.tgz#bed43659382e4b198e33c793897be7c701e65577" + integrity sha1-vtQ2WTguSxmOM8eTiXvnxwHmVXc= + dependencies: + chalk "^0.5.1" + minimist "^1.1.0" + pad-left "^2.0.0" + pad-right "^0.2.2" + prettier-bytes "^1.0.3" + pretty-ms "^2.1.0" + right-now "^1.0.0" + split2 "^0.2.1" + stdout-stream "^1.4.0" + url-trim "^1.0.0" + +generate-function@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= + dependencies: + is-property "^1.0.0" + +get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-ports@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-ports/-/get-ports-1.0.3.tgz#f40bd580aca7ec0efb7b96cbfcbeb03ef894b5e8" + integrity sha1-9AvVgKyn7A77e5bL/L6wPviUteg= + dependencies: + map-limit "0.0.1" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +gh-pages@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-0.11.0.tgz#93313c6dcbfc74d426bc89a29ebff6420acc3c1b" + integrity sha1-kzE8bcv8dNQmvIminr/2QgrMPBs= + dependencies: + async "1.5.2" + commander "2.9.0" + globby "^4.0.0" + graceful-fs "4.1.2" + q "1.4.1" + q-io "1.13.2" + wrench "1.5.8" + +ghpages@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ghpages/-/ghpages-0.0.8.tgz#be67da4443833c91f250313920fb0cccda77db1f" + integrity sha1-vmfaREODPJHyUDE5IPsMzNp32x8= + dependencies: + gh-pages "^0.11.0" + gitconfiglocal "^1.0.0" + meow "^3.6.0" + object-assign "^4.0.1" + opn "^3.0.3" + parse-github-url "^0.2.1" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + +gl-preserve-state@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gl-preserve-state/-/gl-preserve-state-1.0.0.tgz#4ef710d62873f1470ed015c6546c37dacddd4198" + integrity sha512-zQZ25l3haD4hvgJZ6C9+s0ebdkW9y+7U2qxvGu1uWOJh8a4RU+jURIKEQhf8elIlFpMH6CrAY2tH0mYrRjet3Q== + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15, glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^8.0.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4" + integrity sha1-k9SmK9ysOM+vr8R9awNHaMsP/LQ= + +globals@^9.18.0, globals@^9.2.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globby@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" + integrity sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg= + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^6.0.1" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.2.tgz#fe2239b7574972e67e41f808823f9bfa4a991e37" + integrity sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc= + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8= + +handlebars@^4.0.1: + version "4.7.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.2.tgz#01127b3840156a0927058779482031afe0e730d7" + integrity sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow= + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hat@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" + integrity sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo= + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +homedir-polyfill@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" + integrity sha1-GX4izevUGYWF6GlO9nhhl7ke2UI= + dependencies: + inherits "~2.0.1" + statuses "1" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy@^1.13.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-browserify@0.0.1, https-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + integrity sha1-H4irpKsLFQjoMSrMOTRfNumS4vI= + +iconv-lite@0.4.24, iconv-lite@^0.4.5: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore@^3.0.9, ignore@^3.1.2: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +"individual@>=3.0.0 <3.1.0-0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/individual/-/individual-3.0.0.tgz#e7ca4f85f8957b018734f285750dc22ec2f9862d" + integrity sha1-58pPhfiVewGHNPKFdQ3CLsL5hi0= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.2, ini@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inject-lr-script@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/inject-lr-script/-/inject-lr-script-2.2.0.tgz#58d91cd99e5de1a3f172aa076f7db8651ee72db2" + integrity sha512-lFLjCOg2XP8233AiET5vFePo910vhNIkKHDzUptNhc+4Y7dsp/TNBiusUUpaxzaGd6UDHy0Lozfl9AwmteK6DQ== + dependencies: + resp-modifier "^6.0.0" + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= + dependencies: + source-map "~0.5.3" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^0.8.2: + version "0.8.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.8.5.tgz#dbd740cf6ca3b731296a63ce6f6d961851f336df" + integrity sha1-29dAz2yjtzEpamPOb22WGFHzNt8= + dependencies: + ansi-regex "^1.1.1" + chalk "^1.0.0" + cli-width "^1.0.1" + figures "^1.3.5" + lodash "^3.3.1" + readline2 "^0.1.1" + rx "^2.4.3" + through "^2.3.6" + +inquirer@^1.0.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg= + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + external-editor "^1.1.0" + figures "^1.3.5" + lodash "^4.3.0" + mute-stream "0.0.6" + pinkie-promise "^2.0.0" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +insert-module-globals@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +internal-ip@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + integrity sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w= + dependencies: + meow "^3.3.0" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= + +interpret@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.0, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0, is-finite@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== + +is-my-json-valid@^2.10.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" + integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + integrity sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-property@^1.0.0, is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= + +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +istanbul@^0.4.0: + version "0.4.5" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + integrity sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs= + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +js-beautify@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.4.tgz#a9af79699742ac9a1b6fddc1fdbc78bc4d515fc3" + integrity sha1-qa95aZdCrJobb93B/bx4vE1RX8M= + dependencies: + config-chain "~1.1.5" + editorconfig "^0.13.2" + mkdirp "~0.5.0" + nopt "~3.0.1" + +js-string-escape@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@3.x, js-yaml@^3.2.5, js-yaml@^3.5.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= + dependencies: + jsonify "~0.0.0" + +"json-stringify-safe@>=5.0.0 <5.1.0-0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= + +jstransform@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-11.0.3.tgz#09a78993e0ae4d4ef4487f6155a91f6190cb4223" + integrity sha1-CaeJk+CuTU70SH9hVakfYZDLQiM= + dependencies: + base62 "^1.1.0" + commoner "^0.10.1" + esprima-fb "^15001.1.0-dev-harmony-fb" + object-assign "^2.0.0" + source-map "^0.4.2" + +jsx-ast-utils@^1.2.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" + integrity sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE= + +karma-browserify@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/karma-browserify/-/karma-browserify-5.3.0.tgz#9001796dfd1196cbc0327b022a00c6345a28e5dd" + integrity sha512-EMaUd1RNyQVGTETI80dtX/fEtYs57/A5sl3rClvzJFImPW1s3EtsbESfqNtk7/OkzfYuAHLh4RSZSSbVgvhNdQ== + dependencies: + convert-source-map "^1.1.3" + hat "^0.0.3" + js-string-escape "^1.0.0" + lodash "^4.17.10" + minimatch "^3.0.0" + os-shim "^0.1.3" + +karma-chai-shallow-deep-equal@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/karma-chai-shallow-deep-equal/-/karma-chai-shallow-deep-equal-0.0.4.tgz#1a674f6cf68e059fb9f763a650c2bd4382daa898" + integrity sha1-GmdPbPaOBZ+592OmUMK9Q4LaqJg= + +karma-chrome-launcher@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" + integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-coverage@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.2.tgz#cc09dceb589a83101aca5fe70c287645ef387689" + integrity sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw== + dependencies: + dateformat "^1.0.6" + istanbul "^0.4.0" + lodash "^4.17.0" + minimatch "^3.0.0" + source-map "^0.5.1" + +karma-env-preprocessor@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz#bbe8c87d59c00edb76070bd3c31b4b39d5dc7e15" + integrity sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU= + +karma-firefox-launcher@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171" + integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ== + dependencies: + is-wsl "^2.1.0" + +karma-mocha-reporter@^2.1.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" + integrity sha1-FRIAlejtgZGG5HoLAS8810GJVWA= + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + strip-ansi "^4.0.0" + +karma-mocha@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= + dependencies: + minimist "1.2.0" + +karma-sinon-chai@^1.2.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/karma-sinon-chai/-/karma-sinon-chai-1.3.4.tgz#56c82674a5618ee9a4063cfbd57fc01da37f1495" + integrity sha512-Oatu8tdkfWaSveM809euI6KGcNJRdoXFilz9ozSf+vPwrM73kncu54nsfkLcMqR/iht3PXASAGK9La5oU2xDKQ== + dependencies: + lolex "^1.6.0" + +karma@^1.3.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" + integrity sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg== + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" + source-map "^0.5.3" + tmp "0.0.31" + useragent "^2.1.12" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +labeled-stream-splicer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== + dependencies: + inherits "^2.0.1" + stream-splicer "^2.0.0" + +layout-bmfont-text@^1.2.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz#f20f2c5464774f48da6ce8a997fbce6d46945b81" + integrity sha1-8g8sVGR3T0jabOipl/vObUaUW4E= + dependencies: + as-number "^1.0.0" + word-wrapper "^1.0.7" + xtend "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +levn@~0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.2.5.tgz#ba8d339d0ca4a610e3a3f145b9caf48807155054" + integrity sha1-uo0znQykphDjo/FFucr0iAcVUFQ= + dependencies: + prelude-ls "~1.1.0" + type-check "~0.3.1" + +livereload-js@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-bmfont@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" + integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-utils@^0.2.11: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c= + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= + +lodash@3.6.x: + version "3.6.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.6.0.tgz#5266a8f49dd989be4f9f681b6f2a0c55285d0d9a" + integrity sha1-Umao9J3Zib5Pn2gbbyoMVShdDZo= + +lodash@^3.3.1, lodash@^3.8.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= + +lodash@^4.0.0, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^0.6.31: + version "0.6.38" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + integrity sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0= + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + +lolex@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31" + integrity sha1-fD2mL/yzDw9agKJWbKJORdigHzE= + +lolex@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6" + integrity sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY= + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lru-cache@4.1.x: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" + integrity sha1-cXibO39Tmb7IVl3aOKow0qCX7+4= + dependencies: + pseudomap "^1.0.1" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-limit@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" + integrity sha1-63lhAxwPDo0AG/LVb6toXViCLzg= + dependencies: + once "~1.3.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + integrity sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0, meow@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +micromatch@^2.1.5, micromatch@^2.2.0, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +mime-types@~2.1.11, mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +mime@1.6.0, mime@^1.2.11, mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimeparse@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/mimeparse/-/mimeparse-0.1.4.tgz#dafb02752370fd226093ae3152c271af01ac254a" + integrity sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo= + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc= + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mocha@^3.0.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg== + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +module-deps@^4.0.8: + version "4.1.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd" + integrity sha1-IyFYM/HaE/1gbMuAh7RIUty4If0= + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.5.0" + defined "^1.0.0" + detective "^4.0.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.1.3" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +module-deps@^6.0.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" + integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.2" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.2.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +"mout@>=0.9 <2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/mout/-/mout-1.2.2.tgz#c9b718a499806a0632cede178e80f436259e777d" + integrity sha512-w0OUxFEla6z3d7sVpMZGBCpQvYh8PHS1wZ6Wu9GNKHMpAHWJ0if0LsQZh3DlOqw55HlhJEOMLpFnwtxp99Y5GA== + +mout@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99" + integrity sha1-ujYR318OWx/7/QEWa48C0fX6K5k= + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + integrity sha1-riXPJRKziFodldfwN4aNhDESR2U= + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multiline@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/multiline/-/multiline-1.0.2.tgz#69b1f25ff074d2828904f244ddd06b7d96ef6c93" + integrity sha1-abHyX/B00oKJBPJE3dBrfZbvbJM= + dependencies: + strip-indent "^1.0.0" + +mute-stream@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e" + integrity sha1-qSGZYKbV1dBGWXruUSUsZlX3F34= + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= + +mute-stream@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" + integrity sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s= + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +new-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/new-array/-/new-array-1.0.0.tgz#5dbc639d961eac7f1a9fbc1a7146ec12f2924fbf" + integrity sha1-XbxjnZYerH8an7wacUbsEvKST78= + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-color-palettes@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nice-color-palettes/-/nice-color-palettes-1.0.1.tgz#875ea01dc86efae7f595e066a8b2660e7206053e" + integrity sha1-h16gHchu+uf1leBmqLJmDnIGBT4= + dependencies: + map-limit "0.0.1" + minimist "^1.2.0" + new-array "^1.0.0" + xhr-request "^1.0.1" + +node-libs-browser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" + integrity sha1-PicsCBnjCJNeJmdECNevDhSRuDs= + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "3.3.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +nopt@3.x, nopt@~3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nosleep.js@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/nosleep.js/-/nosleep.js-0.7.0.tgz#cfd919c25523ca0d0f4a69fb3305c083adaee289" + integrity sha1-z9kZwlUjyg0PSmn7MwXAg62u4ok= + +npm-path@^1.0.0, npm-path@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-1.1.0.tgz#0474ae00419c327d54701b7cf2cd05dc88be1140" + integrity sha1-BHSuAEGcMn1UcBt88s0F3Ii+EUA= + dependencies: + which "^1.2.4" + +npm-run@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-run/-/npm-run-2.0.0.tgz#28dfc0ad5e2e46fe0848e2bd58ddf002e7b73c15" + integrity sha1-KN/ArV4uRv4ISOK9WN3wAue3PBU= + dependencies: + minimist "^1.1.1" + npm-path "^1.0.1" + npm-which "^2.0.0" + serializerr "^1.0.1" + spawn-sync "^1.0.5" + sync-exec "^0.5.0" + +npm-which@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-2.0.0.tgz#0c46982160b783093661d1d01bd4496d2feabbac" + integrity sha1-DEaYIWC3gwk2YdHQG9RJbS/qu6w= + dependencies: + commander "^2.2.0" + npm-path "^1.0.0" + which "^1.0.5" + +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +opn@^3.0.2, opn@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a" + integrity sha1-ttmec5n3jWXDuq/+8fsojpuFJDo= + dependencies: + object-assign "^4.0.1" + +optimist@^0.6.1, optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.5.0.tgz#b75a8995a2d417df25b6e4e3862f50aa88651368" + integrity sha1-t1qJlaLUF98ltuTjhi9QqohlE2g= + dependencies: + deep-is "~0.1.2" + fast-levenshtein "~1.0.0" + levn "~0.2.5" + prelude-ls "~1.1.1" + type-check "~0.3.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + integrity sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8= + +os-browserify@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + integrity sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ= + +os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-shim@^0.1.2, os-shim@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= + +os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +outpipe@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" + integrity sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I= + dependencies: + shell-quote "^1.4.2" + +pad-left@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pad-left/-/pad-left-2.1.0.tgz#16e6a3b2d44a8e138cb0838cc7cb403a4fc9e994" + integrity sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ= + dependencies: + repeat-string "^1.5.4" + +pad-right@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" + integrity sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q= + dependencies: + repeat-string "^1.5.2" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-github-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-0.2.1.tgz#e17335025e02c827a14198b614e73ab5b9904be8" + integrity sha1-4XM1Al4CyCehQZi2FOc6tbmQS+g= + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-headers@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-ms@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" + integrity sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0= + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs= + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.0, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + integrity sha1-tuDI+plJTZTgURV1gCpZpcFC8og= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-config@^1.0.1, pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + integrity sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +plur@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156" + integrity sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY= + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prelude-ls@~1.1.0, prelude-ls@~1.1.1, prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +present@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/present/-/present-0.0.6.tgz#9eeff700daa9e998613352e47f7ac2324d4faf02" + integrity sha1-nu/3ANqp6ZhhM1Lkf3rCMk1PrwI= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +prettier-bytes@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prettier-bytes/-/prettier-bytes-1.0.4.tgz#994b02aa46f699c50b6257b5faaa7fe2557e62d6" + integrity sha1-mUsCqkb2mcULYle1+qp/4lV+YtY= + +pretty-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc" + integrity sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw= + dependencies: + is-finite "^1.0.1" + parse-ms "^1.0.0" + plur "^1.0.0" + +private@^0.1.6, private@~0.1.5: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.0, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= + +promise-polyfill@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-3.1.0.tgz#62952b01d059b115b432763b7ef461b80f6df47d" + integrity sha1-YpUrAdBZsRW0MnY7fvRhuA9t9H0= + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +protochain@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260" + integrity sha1-mRxAfpneJkqt+PgVBLXn+ve/omA= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.1, pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +q-io@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/q-io/-/q-io-1.13.2.tgz#eea130d481ddb5e1aa1bc5a66855f7391d06f003" + integrity sha1-7qEw1IHdteGqG8WmaFX3OR0G8AM= + dependencies: + collections "^0.2.0" + mime "^1.2.11" + mimeparse "^0.1.4" + q "^1.0.1" + qs "^1.2.1" + url2 "^0.0.0" + +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= + +q@^1.0.1, q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be" + integrity sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" + integrity sha1-GbV/8k3CqZzh+L32r82ln472H4g= + +qs@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9" + integrity sha1-TZMuXH6kEcynajEtOaYGIA/VDNk= + +quad-indices@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/quad-indices/-/quad-indices-2.0.1.tgz#a6941d89a13d63eed6c1d4a5a621a0463617a814" + integrity sha1-ppQdiaE9Y+7WwdSlpiGgRjYXqBQ= + dependencies: + an-array "^1.0.0" + dtype "^2.0.0" + is-buffer "^1.0.2" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0, querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomcolor@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.4.4.tgz#5ff56862e97ba03beb0419ff0536ec7aff59eeeb" + integrity sha1-X/VoYul7oDvrBBn/BTbsev9Z7us= + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + integrity sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q= + dependencies: + bytes "2.4.0" + iconv-lite "0.4.13" + unpipe "1.0.0" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= + dependencies: + readable-stream "^2.0.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.2, readable-stream@^3.0.6: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.5.0.tgz#465d70e6d1087f6162d079cd0b5db7fbebfd1606" + integrity sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@^2.0.0, readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readline2@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568" + integrity sha1-mUQ7pug7gw7zBRv9fcJBqCco1Wg= + dependencies: + mute-stream "0.0.4" + strip-ansi "^2.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +recast@^0.11.17: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + integrity sha1-x6jTI2BoNiBZp+RlH8aITosftK4= + +repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7, resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.4.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.0.tgz#1b7ca96073ebb52e741ffd799f6b39ea462c67f5" + integrity sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw== + dependencies: + path-parse "^1.0.6" + +resp-modifier@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" + integrity sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08= + dependencies: + debug "^2.2.0" + minimatch "^3.0.2" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +right-now@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/right-now/-/right-now-1.0.0.tgz#6e89609deebd7dcdaf8daecc9aea39cf585a0918" + integrity sha1-bolgne69fc2vja7Mmuo5z1haCRg= + +rimraf@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + integrity sha1-K/GYveFnys+lHAqSjoS2i74XH84= + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rocambole-indent@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/rocambole-indent/-/rocambole-indent-2.0.4.tgz#a18a24977ca0400b861daa4631e861dcb52d085c" + integrity sha1-oYokl3ygQAuGHapGMehh3LUtCFw= + dependencies: + debug "^2.1.3" + mout "^0.11.0" + rocambole-token "^1.2.1" + +rocambole-linebreak@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/rocambole-linebreak/-/rocambole-linebreak-1.0.2.tgz#03621515b43b4721c97e5a1c1bca5a0366368f2f" + integrity sha1-A2IVFbQ7RyHJflocG8paA2Y2jy8= + dependencies: + debug "^2.1.3" + rocambole-token "^1.2.1" + semver "^4.3.1" + +rocambole-node@~1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rocambole-node/-/rocambole-node-1.0.0.tgz#db5b49de7407b0080dd514872f28e393d0f7ff3f" + integrity sha1-21tJ3nQHsAgN1RSHLyjjk9D3/z8= + +rocambole-token@^1.1.2, rocambole-token@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rocambole-token/-/rocambole-token-1.2.1.tgz#c785df7428dc3cb27ad7897047bd5238cc070d35" + integrity sha1-x4XfdCjcPLJ614lwR71SOMwHDTU= + +rocambole-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz#63330949256b29941f59b190459f999c6b1d3bf9" + integrity sha1-YzMJSSVrKZQfWbGQRZ+ZnGsdO/k= + dependencies: + debug "^2.1.3" + repeat-string "^1.5.0" + rocambole-token "^1.2.1" + +"rocambole@>=0.6.0 <2.0", "rocambole@>=0.7 <2.0", rocambole@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rocambole/-/rocambole-0.7.0.tgz#f6c79505517dc42b6fb840842b8b953b0f968585" + integrity sha1-9seVBVF9xCtvuECEK4uVOw+WhYU= + dependencies: + esprima "^2.1" + +rocambole@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/rocambole/-/rocambole-0.3.6.tgz#4debbf5943144bc7b6006d95be8facc0b74352a7" + integrity sha1-Teu/WUMUS8e2AG2Vvo+swLdDUqc= + dependencies: + esprima "~1.0" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= + dependencies: + once "^1.3.0" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= + +rx@^2.4.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566" + integrity sha1-Ia3H2A8CACr1Da6X/Z2/JIdV9WY= + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +samsam@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" + integrity sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc= + +samsam@~1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621" + integrity sha1-n1CHQZtNCR8jJXHn+lLpCw9VJiE= + +sax@>=0.6.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semi@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/semi/-/semi-4.0.5.tgz#4b995c0c16639238f6ae298c840582a8bf0511ee" + integrity sha1-S5lcDBZjkjj2rimMhAWCqL8FEe4= + dependencies: + eslint "^0.24.1" + findit "^2.0.0" + minimist "^1.1.0" + mkdirp "^0.5.0" + +semistandard-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/semistandard-format/-/semistandard-format-3.0.0.tgz#785f1500dc8405dd561dd0b8afc1971448f523eb" + integrity sha1-eF8VANyEBd1WHdC4r8GXFEj1I+s= + dependencies: + minimist "^1.1.0" + semi "^4.0.4" + standard-format "^2.1.1" + stdin "0.0.1" + +semistandard@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/semistandard/-/semistandard-8.0.0.tgz#fd869e2e4d7d2ebfc65b046625c189b78b67dd1e" + integrity sha1-/YaeLk19Lr/GWwRmJcGJt4tn3R4= + dependencies: + eslint "^2.10.1" + eslint-config-semistandard "^6.0.2" + eslint-config-standard "5.3.1" + eslint-config-standard-jsx "1.2.0" + eslint-plugin-promise "^1.0.8" + eslint-plugin-react "^5.0.1" + eslint-plugin-standard "^1.3.1" + semistandard-format "^3.0.0" + standard-engine "^4.0.0" + +"semver@2 || 3 || 4 || 5", semver@^5.1.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^4.3.1, semver@~4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serializerr@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/serializerr/-/serializerr-1.0.3.tgz#12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91" + integrity sha1-EtTFqhw/+49tHcXzlaqUVVacP5E= + dependencies: + protochain "^1.0.5" + +serve-static@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + integrity sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo= + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shell-quote@^1.4.2, shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shelljs@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" + integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg= + +shelljs@^0.7.0: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shx@^0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.1.4.tgz#9a3a94271e6cbb788149fdc6696237154ab6379f" + integrity sha1-mjqUJx5su3iBSf3GaWI3FUq2N58= + dependencies: + minimist "^1.2.0" + shelljs "^0.7.0" + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-html-index@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/simple-html-index/-/simple-html-index-1.5.0.tgz#2c93eeaebac001d8a135fc0022bd4ade8f58996f" + integrity sha1-LJPurrrAAdihNfwAIr1K3o9YmW8= + dependencies: + from2-string "^1.1.0" + +sinon-chai@^2.8.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" + integrity sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ== + +sinon@^1.17.5: + version "1.17.7" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.7.tgz#4542a4f49ba0c45c05eb2e9dd9d203e2b8efe0bf" + integrity sha1-RUKk9JugxFwF6y6d2dID4rjv4L8= + dependencies: + formatio "1.1.1" + lolex "1.3.2" + samsam "1.1.2" + util ">=0.10.3 <1" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +snazzy@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/snazzy/-/snazzy-4.0.1.tgz#9e81974ceff52650c76fd1be9d9764afb89cc466" + integrity sha1-noGXTO/1JlDHb9G+nZdkr7icxGY= + dependencies: + chalk "^1.1.0" + inherits "^2.0.1" + minimist "^1.1.1" + readable-stream "^2.0.6" + standard "^7.0.0" + standard-json "^1.0.0" + text-table "^0.2.0" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + integrity sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s= + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" + integrity sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c= + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + integrity sha1-3VMgJRA85Clpcya+/WQAX8/ltKA= + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" + integrity sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs= + dependencies: + debug "2.3.3" + engine.io "1.8.3" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" + +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY= + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.4.2, source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.1.31: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + dependencies: + amdefine ">=0.0.4" + +spawn-sync@^1.0.15, spawn-sync@^1.0.5: + version "1.0.15" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY= + dependencies: + concat-stream "^1.4.7" + os-shim "^0.1.2" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900" + integrity sha1-At2smtwD7Au3jBKC7Aecpuha6QA= + dependencies: + through2 "~0.6.1" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stacked@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stacked/-/stacked-1.1.1.tgz#2c7fa38cc7e37a3411a77cd8e792de448f9f6975" + integrity sha1-LH+jjMfjejQRp3zY55LeRI+faXU= + +standard-engine@^4.0.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-4.1.3.tgz#7a31aad54f03d9f39355f43389ce0694f4094155" + integrity sha1-ejGq1U8D2fOTVfQzic4GlPQJQVU= + dependencies: + defaults "^1.0.2" + deglob "^1.0.0" + find-root "^1.0.0" + get-stdin "^5.0.1" + minimist "^1.1.0" + multiline "^1.0.2" + pkg-config "^1.0.1" + xtend "^4.0.0" + +standard-format@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/standard-format/-/standard-format-2.2.4.tgz#b90fb39a635f749cd4fd117fe4730d31179aaeef" + integrity sha1-uQ+zmmNfdJzU/RF/5HMNMRearu8= + dependencies: + deglob "^1.0.0" + esformatter "^0.9.0" + esformatter-eol-last "^1.0.0" + esformatter-jsx "^7.0.0" + esformatter-literal-notation "^1.0.0" + esformatter-quotes "^1.0.0" + esformatter-remove-trailing-commas "^1.0.1" + esformatter-semicolon-first "^1.1.0" + esformatter-spaced-lined-comment "^2.0.0" + minimist "^1.1.0" + stdin "0.0.1" + +standard-json@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/standard-json/-/standard-json-1.1.0.tgz#33ac0d2eccaddb0556f5ae28c43a35624cf1fb25" + integrity sha512-nkonX+n5g3pyVBvJZmvRlFtT/7JyLbNh4CtrYC3Qfxihgs8PKX52f6ONKQXORStuBWJ5PI83EUrNXme7LKfiTQ== + dependencies: + concat-stream "^2.0.0" + +standard@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/standard/-/standard-7.1.2.tgz#40166eeec2405065d1a4f0e3f15babc6e274607e" + integrity sha1-QBZu7sJAUGXRpPDj8VurxuJ0YH4= + dependencies: + eslint "~2.10.2" + eslint-config-standard "5.3.1" + eslint-config-standard-jsx "1.2.1" + eslint-plugin-promise "^1.0.8" + eslint-plugin-react "^5.0.1" + eslint-plugin-standard "^1.3.1" + standard-engine "^4.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@1, "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdin@*, stdin@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" + integrity sha1-0wQZgarsPf28d6GzjWNy449ftx4= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.0, stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-http@^2.0.0, stream-http@^2.3.1: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-http@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.0.tgz#22fb33fe9b4056b4eccf58bd8f400c4b993ffe57" + integrity sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^3.0.6" + xtend "^4.0.0" + +stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.endswith@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/string.prototype.endswith/-/string.prototype.endswith-0.2.0.tgz#a19c20dee51a98777e9a47e10f09be393b9bba75" + integrity sha1-oZwg3uUamHd+mkfhDwm+OTubunU= + +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^0.10.25, string_decoder@~0.10.0, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" + integrity sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4= + dependencies: + ansi-regex "^1.0.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-indent@^1.0.0, strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-0.1.3.tgz#164c64e370a8a3cc00c9e01b539e569823f0ee54" + integrity sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ= + +strip-json-comments@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + +super-animejs@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/super-animejs/-/super-animejs-3.1.0.tgz#59435946faafe880710e348cf24ad3126e45aed1" + integrity sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA== + +super-three@^0.125.1: + version "0.125.1" + resolved "https://registry.yarnpkg.com/super-three/-/super-three-0.125.1.tgz#b4d440ea2e69a1f575994c412ab39b465831c8d1" + integrity sha512-poTMpd0fa5tWVJDtWKSFWuqbb+h2Z0m1Eop66hRsfaeOE2p9xnl78MDJmj0S/jYI0Ly4iMQOWIkS0LyKCZe0SA== + +supports-color@1.3.1, supports-color@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.3.1.tgz#15758df09d8ff3b4acc307539fabe27095e1042d" + integrity sha1-FXWN8J2P87SswwdTn6vicJXhBC0= + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU= + dependencies: + has-flag "^1.0.0" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +sync-exec@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/sync-exec/-/sync-exec-0.5.0.tgz#3f7258e4a5ba17245381909fa6a6f6cf506e1661" + integrity sha1-P3JY5KW6FyRTgZCfpqb2z1BuFmE= + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= + +term-color@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/term-color/-/term-color-1.0.1.tgz#38e192553a473e35e41604ff5199846bf8117a3a" + integrity sha1-OOGSVTpHPjXkFgT/UZmEa/gRejo= + dependencies: + ansi-styles "2.0.1" + supports-color "1.3.1" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +"three-bmfont-text@github:dmarcos/three-bmfont-text#1babdf8507c731a18f8af3b807292e2b9740955e": + version "2.3.0" + resolved "https://codeload.github.com/dmarcos/three-bmfont-text/tar.gz/1babdf8507c731a18f8af3b807292e2b9740955e" + dependencies: + array-shuffle "^1.0.1" + inherits "^2.0.1" + layout-bmfont-text "^1.2.0" + nice-color-palettes "^1.0.1" + object-assign "^4.0.1" + quad-indices "^2.0.1" + three-buffer-vertex-data dmarcos/three-buffer-vertex-data#69378fc58daf27d3b1d930df9f233473e4a4818c + +three-buffer-vertex-data@dmarcos/three-buffer-vertex-data#69378fc58daf27d3b1d930df9f233473e4a4818c: + version "1.1.0" + resolved "https://codeload.github.com/dmarcos/three-buffer-vertex-data/tar.gz/69378fc58daf27d3b1d930df9f233473e4a4818c" + dependencies: + flatten-vertex-data "^1.0.0" + +through2@0.6.x, through2@~0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +timers-browserify@^2.0.2: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +tiny-lr@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d" + integrity sha1-s/26gC5dVqM8L28QeUsy5Hescp0= + dependencies: + body-parser "~1.14.0" + debug "~2.2.0" + faye-websocket "~0.10.0" + livereload-js "^2.2.0" + parseurl "~1.3.0" + qs "~5.1.0" + +tmp@0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + integrity sha1-jzirlDjhcxXl29izZX6L+yd65Kc= + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.0.29: + version "0.0.29" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" + integrity sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA= + dependencies: + os-tmpdir "~1.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tty-browserify@0.0.1, tty-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +type-check@~0.3.1, type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= + +type-is@~1.6.10, type-is@~1.6.17: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + +typedarray@^0.0.6, typedarray@~0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@^3.1.4: + version "3.7.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.6.tgz#0783daa867d4bc962a37cc92f67f6e3238c47485" + integrity sha512-yYqjArOYSxvqeeiYH2VGjZOqq6SVmhxzaPjJC1W2F9e+bqvFL9QXQ2osQuKUFjM2hGjKG2YclQnRKWQSt/nOTQ== + dependencies: + commander "~2.20.3" + source-map "~0.6.1" + +uglify-js@~2.7.3: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + integrity sha1-RhLAx7qu4rp8SH3kkErhIgefLKg= + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= + +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-trim@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-trim/-/url-trim-1.0.0.tgz#40057e2f164b88e5daca7269da47e6d1dd837adc" + integrity sha1-QAV+LxZLiOXaynJp2kfm0d2Detw= + +url2@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/url2/-/url2-0.0.0.tgz#4eaabd1d5c3ac90d62ab4485c998422865a04b1a" + integrity sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo= + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +user-home@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= + dependencies: + os-homedir "^1.0.0" + +useragent@^2.1.12: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +"util@>=0.10.3 <1": + version "0.12.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade" + integrity sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + object.entries "^1.1.0" + safe-buffer "^5.1.2" + +util@^0.10.3, util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vm-browserify@0.0.4, vm-browserify@~0.0.1: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + +vm-browserify@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +watchify-middleware@^1.6.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/watchify-middleware/-/watchify-middleware-1.8.2.tgz#be84fd318049cc281f0a1da274410f9ba45a7c1e" + integrity sha512-A+x5K0mHVEK2WSLOEbazcXDFnSlralMZzk364Ea39F4xFl2jGl4VQLLN5HwrnRzpF5/Ggf1Q2he0HpJtflUiHg== + dependencies: + concat-stream "^1.5.0" + debounce "^1.0.0" + events "^1.0.2" + object-assign "^4.0.1" + strip-ansi "^3.0.0" + watchify "^3.11.1" + +watchify@^3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" + integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== + dependencies: + anymatch "^2.0.0" + browserify "^16.1.0" + chokidar "^2.1.1" + defined "^1.0.0" + outpipe "^1.1.0" + through2 "^2.0.0" + xtend "^4.0.0" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + integrity sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws= + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +weak-map@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37" + integrity sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc= + +webpack-core@~0.6.9: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI= + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + +webpack@^1.13.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" + integrity sha1-T/MfU9sDM55VFkqdRo7gMklo/pg= + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.7.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.9" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +webvr-polyfill-dpdb@^1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/webvr-polyfill-dpdb/-/webvr-polyfill-dpdb-1.0.17.tgz#1165e964c9f6bd69cd36b02cd1dc0ece4ca833ca" + integrity sha512-WOd4s0gSrb0fOlOtIpqFbwLBATax/ka7DFAB/u+C9KJBBJk1/x/FZlFynOqsNrUxMJniOdO7ViFJwVdMScMQzA== + +webvr-polyfill@^0.10.12: + version "0.10.12" + resolved "https://registry.yarnpkg.com/webvr-polyfill/-/webvr-polyfill-0.10.12.tgz#47ea0b0d558f09e089bc49fa7b47a4ee7e4b8148" + integrity sha512-trDJEVUQnRIVAnmImjEQ0BlL1NfuWl8+eaEdu+bs4g59c7OtETi/5tFkgEFDRaWEYwHntXs/uFF3OXZuutNGGA== + dependencies: + cardboard-vr-display "^1.0.19" + +which@^1.0.5, which@^1.1.1, which@^1.2.1, which@^1.2.12, which@^1.2.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +word-wrapper@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/word-wrapper/-/word-wrapper-1.0.7.tgz#1f14afebf66dfdf0fef55efd37184efbd08c28b6" + integrity sha1-HxSv6/Zt/fD+9V79NxhO+9CMKLY= + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +wrench@1.5.8: + version "1.5.8" + resolved "https://registry.yarnpkg.com/wrench/-/wrench-1.5.8.tgz#7a31c97f7869246d76c5cf2f5c977a1c4c8e5ab5" + integrity sha1-ejHJf3hpJG12xc8vXJd6HEyOWrU= + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +ws@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" + integrity sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8= + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + integrity sha1-OS2LotDxw00e4tYw8V0O+2jhBIo= + +xhr-request@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr@^2.0.1, xhr@^2.0.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-escape@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-escape/-/xml-escape-1.0.0.tgz#00963d697b2adf0c185c4e04e73174ba9b288eb2" + integrity sha1-AJY9aXsq3wwYXE4E5zF0upsojrI= + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.5: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0= + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 90e52b1f31afc963f583f877e1f04401cef0a25b Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 02:20:10 +0200 Subject: [PATCH 03/36] added commentary back. --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index eb33373..0bf8fdb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ +## yet another necro component pulled into service + +This guy is from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. + +I was thinking about using web2vr and doing the proper stats panel, but that would definitely add more impact to the site being measured itself than this option. There's also probably other nice ways to implement this idea these days. but I googled, found this, and then found this pull request on it: +https://github.com/chenzlabs/stats-in-vr/pull/1 + +Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 +though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order? + +So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'main.js' file. + ## aframe-stats-in-vr-component ![npm (scoped)](https://img.shields.io/npm/v/@aframe-community/aframe-stats-in-vr-component) From f9bd6ba0a9ac677b83b8653eb6f7e24911a50236 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 02:34:08 +0200 Subject: [PATCH 04/36] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0bf8fdb..694e394 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,12 @@ https://github.com/chenzlabs/stats-in-vr/pull/1 Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order? -So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'main.js' file. +So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean it up later. + +You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@0.2.0/stats-in-vr.js + +Note that the build/dist files are NOT up to date with this one file listed above--they wouldn't build because of the ES6 syntax used in my bug fix, and the build tools are just that old. + ## aframe-stats-in-vr-component @@ -50,8 +55,9 @@ Install and use by directly including the [browser files](dist): ```html My A-Frame Scene - - + + + From aa04a4c5a5bca5883578742a54a1d0c822742ffa Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 06:26:55 +0200 Subject: [PATCH 05/36] Update stats-in-vr.js - Performance improvements - adding back the bars! - more comfortable default position, size, rotation - only show VR component when in VR - optionally show standard stats when not in VR (default:true) - a touch of opacity makes panel a little less painfully drab - add ability to optionally anchor the component in-world instead of to-headset - problem: adds a ton of draw calls with current inherited design, by adding a ton of images/canvases. will fix that next. --- stats-in-vr.js | 232 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 159 insertions(+), 73 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index c6a4afd..b7fe111 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -8,93 +8,171 @@ AFRAME.registerComponent("stats-in-vr", { schema: { enabled: { type: "boolean", default: true }, - position: { type: "string", default: "0 -0.35 -0.5" }, - scale: { type: "string", default: "0.5 0.5 1" }, - updateIntervalMillis: { type: "number", default: 500 } + position: { type: "string", default: "0 -1.1 -1" }, + rotation: { type: "string", default: "-20 0 0" }, + scale: { type: "string", default: "1 .8 1" }, + updateIntervalMs: { type: "number", default: 250 }, + show2dstats: { type: "boolean", default: true }, + anchorEl: { type: "string", default: "[camera]" }, }, - + + inVR: false, init: function() { - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; - - // hide the DOM stats panel - //statsEl.style = 'display: none !important;'; - //statsEl.className = 'a-hidden'; + + // var scene = this.sceneEl; + // var statsEl = this.sceneEl.components.stats.statsEl; + // this.tick = AFRAME.utils.throttleTick(this.tick, this.data.updateIntervalMs, this); + this.canvasParent = document.createElement('div'); + this.canvasParent.setAttribute('id','stats-in-vr-canvas-parent') + this.sceneEl = AFRAME.scenes[0] + + AFRAME.scenes[0].addEventListener('enter-vr', async () => { + this.inVR = true; + if (this.data.enabled) { + this.show() + } + // AFRAME.scenes[0].setAttribute('stats-in-vr',{a:1}) + }) + AFRAME.scenes[0].addEventListener('exit-vr', async () => { + this.inVR = false; + this.hide(); + // AFRAME.scenes[0].setAttribute('stats-in-vr',{a:1}) + }) + + if (!this.data.show2dstats) { + // hide the DOM stats panel, except for ours + this.sceneEl.components.stats.statsEl/*.querySelector('.rs-container')*/.style = 'display: none !important;'; + this.sceneEl.components.stats.statsEl/*.querySelector('.rs-container')*/.className = 'a-hidden'; + } + this.begin(); + }, + + begin: async function() { // once we start rendering, create VR stats panel - if (scene.renderStarted) { - this.createStatsPanel(); + if (this.sceneEl.renderStarted) { + await this.createStatsPanel(); } else { - scene.addEventListener("renderstart", this.createStatsPanel.bind(this)); + this.sceneEl.addEventListener("renderstart", this.createStatsPanel.bind(this)); } }, - createStatsPanel: function() { - var self = this; - + createStatsPanel: async function() { // attached to scene element, so inject stats panel into camera - self.statspanel = document.createElement("a-entity"); - self.statspanel.setAttribute("id", "statspanel"); - self.statspanel.setAttribute("position", self.data.position); - self.statspanel.setAttribute("scale", self.data.scale); - self.statspanel.setAttribute( + this.statspanel = document.createElement("a-entity"); + this.statspanel.setAttribute("id", "statspanel"); + this.statspanel.setAttribute("position", this.data.position); + this.statspanel.setAttribute('rotation', this.data.rotation) + this.statspanel.setAttribute("scale", this.data.scale); + this.statspanel.setAttribute( "visible", - self.data.enabled ? "true" : "false" + this.data.enabled ? "true" : "false" ); - self.el.camera.el.appendChild(self.statspanel); - + // this.sceneEl.camera.el.appendChild(this.statspanel); + document.querySelector(this.data.anchorEl).appendChild(this.statspanel); + + await this.addEls(); + if (!this.inVR) { + // console.warn("disabled for dev, but add this line back in") + this.hide(); + } + this.sceneEl.components.stats.statsEl.appendChild(this.canvasParent); + this.addStatPanels(); + this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.updateIntervalMs, this); + }, + + waitForTime: async function(ms) { + return new Promise((res,rej) => { + setTimeout(res,ms) + }) + }, + + addEls: async function() { + if (!document.querySelectorAll(".rs-canvas").length) { + // console.log("no canvases, recurse in ", this.data.updateIntervalMs) + await this.waitForTime(this.data.updateIntervalMs) + await this.addEls() + } // set up the VR stats panel - self.valuecanvases = []; - self.rsids = []; - self.rsvalues = []; + this.valuecanvases = []; + this.valueimages = []; + this.rsids = []; + this.rsvalues = []; + this.stats = []; + // console.log(document.querySelectorAll(".rs-canvas").length) + // this.addStatPanels(); }, - - updateStatsPanel: function() { - var self = this; - if (!self.statspanel || !self.rsids) { + + addStatPanels: function() { + // method: + // get labels + // get values + // removed, to add back: get raw bar canvas + // make canvas for every label/value + // make picture with prior canvas as source + // attach picture to statspanel entity + // set canvas in the canvas ctx within the tick function (weird?) + // label the item as needing an update to rendered + + if (!this.statspanel || !this.rsids) { return; } - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; - var rscanvases = document.querySelectorAll(".rs-canvas"); - for (var i = 0; i < rscanvases.length; i++) { - var rsparent = rscanvases[i].parentElement; - var rsid = rsparent.querySelector(".rs-counter-id").innerText; - - if (self.rsids.indexOf(rsid) >= 0) { + + if (!this.rscanvases) { + this.rscanvases = document.querySelectorAll(".rs-canvas"); + } + + + // for (var i = 0; i < this.rscanvases.length; i++) { + for (var i = 0; i < this.rscanvases.length; i++) { + + this.yval = (1.25 - i * 0.025); + this.rsparent = this.rscanvases[i].parentElement; + this.rsid = this.rsparent.querySelector(".rs-counter-id").innerText; + + if (this.rsids.indexOf(this.rsid) >= 0) { continue; } // remember labels and value elements - self.rsids.push(rsid); - self.rsvalues.push(rsparent.querySelector(".rs-counter-value")); + // this.rsids.push(this.rsid); + this.rsids[i] = this.rsid; + this.rsvalues[i] = (this.rsparent.querySelector(".rs-counter-value")); // inject id values for rstats canvases - var idsuffix = self.rsids[i].replace(" ", "_"); - rscanvases[i].id = "rstats-" + idsuffix; - - var y = 1.25 - i * 0.025 + " 0"; + this.idsuffix = this.rsids[i].replace(" ", "_"); + this.rscanvases[i].id = "rstats-" + this.idsuffix; + + + // create the image for the rstats canvas + this.stats[i] = document.createElement('a-image'); + this.stats[i].setAttribute('position', {x:-0.08, y:this.yval, z:0}); + this.stats[i].setAttribute('width', '0.34'); + this.stats[i].setAttribute('height', '0.025'); + this.stats[i].setAttribute('src', '#' + this.rscanvases[i].id); + this.statspanel.appendChild(this.stats[i]); // create the canvas for the value - var valuecanvas = document.createElement("canvas"); - valuecanvas.setAttribute("id", "value-" + idsuffix); - valuecanvas.setAttribute("width", "192"); - valuecanvas.setAttribute("height", "16"); - valuecanvas.setAttribute("crossorigin", "anonymous"); - self.valuecanvases.push(valuecanvas); + // var valuecanvas = document.createElement("canvas"); + this.valuecanvases[i] = this.valuecanvases[i] || document.createElement("canvas"); + this.valuecanvases[i].setAttribute("id", "value-" + this.idsuffix); + this.valuecanvases[i].setAttribute("width", "128"); + this.valuecanvases[i].setAttribute("height", "16"); + this.valuecanvases[i].setAttribute("crossorigin", "anonymous"); // add the value canvas - statsEl.appendChild(self.valuecanvases[i]); + this.canvasParent.appendChild(this.valuecanvases[i]) + // this.sceneEl.components.stats.statsEl.appendChild(this.canvasParent); // create the image for the value canvas - var value = document.createElement("a-image"); - value.setAttribute("id", "aframe-" + idsuffix); - value.setAttribute("position", "0.17 " + y); - value.setAttribute("width", "0.16"); - value.setAttribute("height", "0.025"); - value.setAttribute("src", "#" + self.valuecanvases[i].id); - self.statspanel.appendChild(value); - + // var value = document.createElement("a-image"); + this.valueimages[i] = this.valueimages[i] || document.createElement("a-image"); + this.valueimages[i].setAttribute("id", "aframe-" + this.idsuffix); + this.valueimages[i].setAttribute("position", {x:0.17, y:this.yval, z:0}); + this.valueimages[i].setAttribute("width", .16); + this.valueimages[i].setAttribute("height", .025); + this.valueimages[i].setAttribute("src", "#" + this.valuecanvases[i].id); + this.statspanel.appendChild(this.valueimages[i]); } }, @@ -104,38 +182,39 @@ AFRAME.registerComponent("stats-in-vr", { } this.statspanel.setAttribute("position", this.data.position); this.statspanel.setAttribute("scale", this.data.scale); - return !this.data.enabled ? this.hide() : this.show(); + this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.updateIntervalMs, this); + return this.data.enabled ? this.show() : this.hide(); }, remove: function() { - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; + var statsEl = this.sceneEl.components.stats.statsEl; statsEl.parentNode.removeChild(statsEl); }, - tick: function() { + tick(){}, + willtick: function(log) { // periodically update the value canvases - var now = Date.now(); - if (now < this.lastTime + this.data.updateIntervalMillis) { + if (!this.inVR) { + // console.warn("disabled for dev, but add this line back in") return; } - this.lastTime = now; + if (this.valuecanvases) { - this.updateStatsPanel(); + // this.addStatPanels(); // if you had new stats being added dynamically, you could run this... for (var i = 0; i < this.valuecanvases.length; i++) { var ctx = this.valuecanvases[i].getContext("2d"); ctx.clearRect(0, 0, 192, 16); ctx.font = "12px monospace"; - ctx.fillStyle = "gray"; + ctx.fillStyle = "rgba(255, 255, 255, 0.5)"; ctx.fillRect(0, 0, 192, 16); ctx.fillStyle = "black"; - ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 16); - + ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 13); + } + for (i = 0; i < this.valuecanvases.length*2; i++) { if (this.statspanel.childNodes.item(i).components?.material?.shader){ this.statspanel.childNodes.item(i).components.material.material.map.needsUpdate = true; - } - + } } } }, @@ -144,6 +223,13 @@ AFRAME.registerComponent("stats-in-vr", { if (this.statspanel) { this.statspanel.object3D.visible = false; } + if (!this.data.show2dstats) { + this.sceneEl.components.stats.statsEl/*.querySelector('.rs-container')*/.style = 'display: none !important;'; + this.sceneEl.components.stats.statsEl/*.querySelector('.rs-container')*/.className = 'a-hidden'; + } else { + this.sceneEl.components.stats.statsEl.classList.remove("a-hidden"); + this.sceneEl.components.stats.statsEl.style = ""; + } }, show: function() { From ab6f5603945db7633ad5ebd0208df26e18a30c43 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 06:34:16 +0200 Subject: [PATCH 06/36] Update README.md --- README.md | 50 +++++++++++++++++--------------------------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 694e394..a637514 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ ## yet another necro component pulled into service -This guy is from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. +This one is revived from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. I was thinking about using web2vr and doing the proper stats panel, but that would definitely add more impact to the site being measured itself than this option. There's also probably other nice ways to implement this idea these days. but I googled, found this, and then found this pull request on it: https://github.com/chenzlabs/stats-in-vr/pull/1 Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 -though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order? +~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value. -So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date no doubt. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean it up later. +So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@0.2.0/stats-in-vr.js @@ -23,7 +23,7 @@ Note that the build/dist files are NOT up to date with this one file listed abov stats-in-vr component for [A-Frame](https://aframe.io). -![Screenshot](https://raw.githubusercontent.com/aframe-community/stats-in-vr/master/examples/pc-screenshot.png) +![stats-in-vr](https://user-images.githubusercontent.com/6391152/130007970-a512c190-0a4e-4f0d-8c40-0d8e1e9e58e8.png) The stats-in-vr component allows the A-Frame scene stats component to be visible in VR. ## Example @@ -32,32 +32,30 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ``` -## Value - -| Property | Description | Default Value | -| -------- | -------------------------------------- | -------------- | -| enabled | Whether enabled or not. | true | -| position | Position of camera-locked stats panel. | '0 -0.35 -0.5' | -| scale | Scale of camera-locked stats panel. | '0.5 0.5 1' | - -## Events - -| Event Name | Description | -| ---------- | ----------- | - +## params +```js + schema: { + enabled: { type: "boolean", default: true }, + position: { type: "string", default: "0 -1.1 -1" }, + rotation: { type: "string", default: "-20 0 0" }, + scale: { type: "string", default: "1 .8 1" }, + updateIntervalMs: { type: "number", default: 250 }, + show2dstats: { type: "boolean", default: true }, + anchorEl: { type: "string", default: "[camera]" }, + }, +``` ### Installation #### Browser -Install and use by directly including the [browser files](dist): +Install and use by directly including the [browser file](dist): ```html My A-Frame Scene - @@ -65,17 +63,3 @@ Install and use by directly including the [browser files](dist): ``` -#### npm - -Install via npm: - -```bash -npm install @aframe-community/aframe-stats-in-vr-component -``` - -Then register and use. - -```js -require("aframe"); -require("aframe-stats-in-vr-component"); -``` From d2998b85f91cb163d08cdc1b8ee56bb5b66d3176 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 06:36:21 +0200 Subject: [PATCH 07/36] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a637514..70da7ee 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glit So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. -You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@0.2.0/stats-in-vr.js +You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.0.0/stats-in-vr.js Note that the build/dist files are NOT up to date with this one file listed above--they wouldn't build because of the ES6 syntax used in my bug fix, and the build tools are just that old. @@ -55,7 +55,7 @@ Install and use by directly including the [browser file](dist): My A-Frame Scene - + From 4feeef2bd4db400128867367b9e3cfcb3bbc33f0 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 07:29:00 +0200 Subject: [PATCH 08/36] single-canvas design huge improvement on draw calls, now one single canvas for labels/values. graphs can be turned on optionally, which add on a draw call each. --- stats-in-vr.js | 70 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index b7fe111..d282b08 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -8,12 +8,14 @@ AFRAME.registerComponent("stats-in-vr", { schema: { enabled: { type: "boolean", default: true }, + debug: { type: "boolean", default: true }, position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, updateIntervalMs: { type: "number", default: 250 }, show2dstats: { type: "boolean", default: true }, anchorEl: { type: "string", default: "[camera]" }, + showGraphs: { type: "boolean", default: true }, }, inVR: false, @@ -122,11 +124,25 @@ AFRAME.registerComponent("stats-in-vr", { this.rscanvases = document.querySelectorAll(".rs-canvas"); } + this.monoCanvas = document.createElement('canvas'); + this.monoCanvas.setAttribute("id", "value-monocanvas"); + this.monoCanvas.setAttribute("width", 128); + this.monoCanvas.setAttribute("height", 16*this.rscanvases.length); + this.monoCanvas.setAttribute("crossorigin", "anonymous"); + this.canvasParent.appendChild(this.monoCanvas) + this.monoImage = this.monoImage || document.createElement("a-image"); + this.monoImage.setAttribute("id", "aframe-all"); + this.monoImage.setAttribute("position", {x:0.17, y:1.25, z:0}); + this.monoImage.setAttribute("width", .16); + this.monoImage.setAttribute("height", .025 * this.rscanvases.length); + this.monoImage.setAttribute("src", "#" + this.monoCanvas.id); + + this.statspanel.appendChild(this.monoImage); // for (var i = 0; i < this.rscanvases.length; i++) { for (var i = 0; i < this.rscanvases.length; i++) { - this.yval = (1.25 - i * 0.025); + this.yval = (1.3625 - i * 0.025); this.rsparent = this.rscanvases[i].parentElement; this.rsid = this.rsparent.querySelector(".rs-counter-id").innerText; @@ -143,26 +159,25 @@ AFRAME.registerComponent("stats-in-vr", { this.idsuffix = this.rsids[i].replace(" ", "_"); this.rscanvases[i].id = "rstats-" + this.idsuffix; - + if (this.data.showGraphs) { // create the image for the rstats canvas - this.stats[i] = document.createElement('a-image'); - this.stats[i].setAttribute('position', {x:-0.08, y:this.yval, z:0}); - this.stats[i].setAttribute('width', '0.34'); - this.stats[i].setAttribute('height', '0.025'); - this.stats[i].setAttribute('src', '#' + this.rscanvases[i].id); - this.statspanel.appendChild(this.stats[i]); - + this.stats[i] = document.createElement('a-image'); + this.stats[i].setAttribute('position', {x:-0.08, y:this.yval, z:0}); + this.stats[i].setAttribute('width', '0.34'); + this.stats[i].setAttribute('height', '0.025'); + this.stats[i].setAttribute('src', '#' + this.rscanvases[i].id); + this.statspanel.appendChild(this.stats[i]); + } // create the canvas for the value // var valuecanvas = document.createElement("canvas"); this.valuecanvases[i] = this.valuecanvases[i] || document.createElement("canvas"); this.valuecanvases[i].setAttribute("id", "value-" + this.idsuffix); - this.valuecanvases[i].setAttribute("width", "128"); - this.valuecanvases[i].setAttribute("height", "16"); + this.valuecanvases[i].setAttribute("width", 128); + this.valuecanvases[i].setAttribute("height", 16); this.valuecanvases[i].setAttribute("crossorigin", "anonymous"); // add the value canvas - this.canvasParent.appendChild(this.valuecanvases[i]) - // this.sceneEl.components.stats.statsEl.appendChild(this.canvasParent); + // this.canvasParent.appendChild(this.valuecanvases[i]) // create the image for the value canvas // var value = document.createElement("a-image"); @@ -172,7 +187,7 @@ AFRAME.registerComponent("stats-in-vr", { this.valueimages[i].setAttribute("width", .16); this.valueimages[i].setAttribute("height", .025); this.valueimages[i].setAttribute("src", "#" + this.valuecanvases[i].id); - this.statspanel.appendChild(this.valueimages[i]); + // this.statspanel.appendChild(this.valueimages[i]); } }, @@ -191,35 +206,44 @@ AFRAME.registerComponent("stats-in-vr", { statsEl.parentNode.removeChild(statsEl); }, - + newText: "", tick(){}, willtick: function(log) { // periodically update the value canvases - if (!this.inVR) { + if (!this.inVR && !this.data.debug) { // console.warn("disabled for dev, but add this line back in") return; } if (this.valuecanvases) { // this.addStatPanels(); // if you had new stats being added dynamically, you could run this... + this.newText = ""; + var ctx = this.monoCanvas.getContext("2d"); + ctx.clearRect(0, 0, 192, 16 * this.valuecanvases.length); + ctx.fillStyle = "rgba(255, 255, 255, 0.5)"; + ctx.fillRect(0, 0, 192, 16 * this.valuecanvases.length); + for (var i = 0; i < this.valuecanvases.length; i++) { - var ctx = this.valuecanvases[i].getContext("2d"); - ctx.clearRect(0, 0, 192, 16); ctx.font = "12px monospace"; - ctx.fillStyle = "rgba(255, 255, 255, 0.5)"; - ctx.fillRect(0, 0, 192, 16); ctx.fillStyle = "black"; - ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 13); + this.newText = `${this.rsvalues[i].innerText} ${this.rsids[i]}\n` + ctx.fillText(this.newText, 2, 13 + (13*i)); } + + for (i = 0; i < this.valuecanvases.length*2; i++) { - if (this.statspanel.childNodes.item(i).components?.material?.shader){ - this.statspanel.childNodes.item(i).components.material.material.map.needsUpdate = true; + if (this.statspanel.childNodes.item(i)?.components?.material?.shader){ + let node =this.statspanel.childNodes.item(i); + if (node) node.components.material.material.map.needsUpdate = true; } } } }, hide: function() { + if (this.data.debug) { + return + } if (this.statspanel) { this.statspanel.object3D.visible = false; } From 7102a8ae0086e0d343c23471271919e71c837ba8 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:03:41 +0200 Subject: [PATCH 09/36] specify which labels and/or graphs to show + general code cleanup --- stats-in-vr.js | 82 +++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index d282b08..4cf0fcf 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -8,22 +8,21 @@ AFRAME.registerComponent("stats-in-vr", { schema: { enabled: { type: "boolean", default: true }, - debug: { type: "boolean", default: true }, + debug: { type: "boolean", default: false }, position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - updateIntervalMs: { type: "number", default: 250 }, - show2dstats: { type: "boolean", default: true }, - anchorEl: { type: "string", default: "[camera]" }, - showGraphs: { type: "boolean", default: true }, + updateIntervalMs: { type: "number", default: 20 }, // throttle + show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component + anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + showAllLabels: { type: "boolean", default: false }, + showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] + showAllGraphs: { type: "boolean", default: false }, + showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] }, inVR: false, init: function() { - - // var scene = this.sceneEl; - // var statsEl = this.sceneEl.components.stats.statsEl; - // this.tick = AFRAME.utils.throttleTick(this.tick, this.data.updateIntervalMs, this); this.canvasParent = document.createElement('div'); this.canvasParent.setAttribute('id','stats-in-vr-canvas-parent') this.sceneEl = AFRAME.scenes[0] @@ -33,12 +32,10 @@ AFRAME.registerComponent("stats-in-vr", { if (this.data.enabled) { this.show() } - // AFRAME.scenes[0].setAttribute('stats-in-vr',{a:1}) }) AFRAME.scenes[0].addEventListener('exit-vr', async () => { this.inVR = false; this.hide(); - // AFRAME.scenes[0].setAttribute('stats-in-vr',{a:1}) }) if (!this.data.show2dstats) { @@ -70,15 +67,17 @@ AFRAME.registerComponent("stats-in-vr", { "visible", this.data.enabled ? "true" : "false" ); - // this.sceneEl.camera.el.appendChild(this.statspanel); document.querySelector(this.data.anchorEl).appendChild(this.statspanel); await this.addEls(); if (!this.inVR) { - // console.warn("disabled for dev, but add this line back in") this.hide(); } - this.sceneEl.components.stats.statsEl.appendChild(this.canvasParent); + if (this.data.debug) { + this.sceneEl.components.stats.statsEl.appendChild(this.canvasParent); + } else { + document.body.appendChild(this.canvasParent) + } this.addStatPanels(); this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.updateIntervalMs, this); }, @@ -91,7 +90,7 @@ AFRAME.registerComponent("stats-in-vr", { addEls: async function() { if (!document.querySelectorAll(".rs-canvas").length) { - // console.log("no canvases, recurse in ", this.data.updateIntervalMs) + if (this.data.debug) console.log("no canvases, recurse in ", this.data.updateIntervalMs) await this.waitForTime(this.data.updateIntervalMs) await this.addEls() } @@ -101,8 +100,6 @@ AFRAME.registerComponent("stats-in-vr", { this.rsids = []; this.rsvalues = []; this.stats = []; - // console.log(document.querySelectorAll(".rs-canvas").length) - // this.addStatPanels(); }, addStatPanels: function() { @@ -137,11 +134,10 @@ AFRAME.registerComponent("stats-in-vr", { this.monoImage.setAttribute("width", .16); this.monoImage.setAttribute("height", .025 * this.rscanvases.length); this.monoImage.setAttribute("src", "#" + this.monoCanvas.id); - this.statspanel.appendChild(this.monoImage); - // for (var i = 0; i < this.rscanvases.length; i++) { - for (var i = 0; i < this.rscanvases.length; i++) { + for (var i = 0; i < this.rscanvases.length; i++) { + console.log(this.rsid) this.yval = (1.3625 - i * 0.025); this.rsparent = this.rscanvases[i].parentElement; this.rsid = this.rsparent.querySelector(".rs-counter-id").innerText; @@ -151,7 +147,6 @@ AFRAME.registerComponent("stats-in-vr", { } // remember labels and value elements - // this.rsids.push(this.rsid); this.rsids[i] = this.rsid; this.rsvalues[i] = (this.rsparent.querySelector(".rs-counter-value")); @@ -159,7 +154,7 @@ AFRAME.registerComponent("stats-in-vr", { this.idsuffix = this.rsids[i].replace(" ", "_"); this.rscanvases[i].id = "rstats-" + this.idsuffix; - if (this.data.showGraphs) { + if (this.data.showAllGraphs || this.data.showGraphs.includes(this.rsid.toLowerCase())) { // create the image for the rstats canvas this.stats[i] = document.createElement('a-image'); this.stats[i].setAttribute('position', {x:-0.08, y:this.yval, z:0}); @@ -168,26 +163,27 @@ AFRAME.registerComponent("stats-in-vr", { this.stats[i].setAttribute('src', '#' + this.rscanvases[i].id); this.statspanel.appendChild(this.stats[i]); } - // create the canvas for the value - // var valuecanvas = document.createElement("canvas"); - this.valuecanvases[i] = this.valuecanvases[i] || document.createElement("canvas"); - this.valuecanvases[i].setAttribute("id", "value-" + this.idsuffix); - this.valuecanvases[i].setAttribute("width", 128); - this.valuecanvases[i].setAttribute("height", 16); - this.valuecanvases[i].setAttribute("crossorigin", "anonymous"); + + if (this.data.showAllLabels || this.data.showLabels.includes(this.rsid.toLowerCase())) { + console.log(this.data.showLabels,this.rsid.toLowerCase()) + // create the canvas for the value + this.valuecanvases[i] = this.valuecanvases[i] || document.createElement("canvas"); + this.valuecanvases[i].setAttribute("id", "value-" + this.idsuffix); + this.valuecanvases[i].setAttribute("width", 128); + this.valuecanvases[i].setAttribute("height", 16); + this.valuecanvases[i].setAttribute("crossorigin", "anonymous"); - // add the value canvas - // this.canvasParent.appendChild(this.valuecanvases[i]) + // add the value canvas + // this.canvasParent.appendChild(this.valuecanvases[i]) - // create the image for the value canvas - // var value = document.createElement("a-image"); - this.valueimages[i] = this.valueimages[i] || document.createElement("a-image"); - this.valueimages[i].setAttribute("id", "aframe-" + this.idsuffix); - this.valueimages[i].setAttribute("position", {x:0.17, y:this.yval, z:0}); - this.valueimages[i].setAttribute("width", .16); - this.valueimages[i].setAttribute("height", .025); - this.valueimages[i].setAttribute("src", "#" + this.valuecanvases[i].id); - // this.statspanel.appendChild(this.valueimages[i]); + // create the image for the value canvas + this.valueimages[i] = this.valueimages[i] || document.createElement("a-image"); + this.valueimages[i].setAttribute("id", "aframe-" + this.idsuffix); + this.valueimages[i].setAttribute("position", {x:0.17, y:this.yval, z:0}); + this.valueimages[i].setAttribute("width", .16); + this.valueimages[i].setAttribute("height", .025); + this.valueimages[i].setAttribute("src", "#" + this.valuecanvases[i].id); + } } }, @@ -209,14 +205,11 @@ AFRAME.registerComponent("stats-in-vr", { newText: "", tick(){}, willtick: function(log) { - // periodically update the value canvases if (!this.inVR && !this.data.debug) { - // console.warn("disabled for dev, but add this line back in") return; } if (this.valuecanvases) { - // this.addStatPanels(); // if you had new stats being added dynamically, you could run this... this.newText = ""; var ctx = this.monoCanvas.getContext("2d"); ctx.clearRect(0, 0, 192, 16 * this.valuecanvases.length); @@ -224,10 +217,11 @@ AFRAME.registerComponent("stats-in-vr", { ctx.fillRect(0, 0, 192, 16 * this.valuecanvases.length); for (var i = 0; i < this.valuecanvases.length; i++) { + if (!this.valuecanvases[i]) continue ctx.font = "12px monospace"; ctx.fillStyle = "black"; this.newText = `${this.rsvalues[i].innerText} ${this.rsids[i]}\n` - ctx.fillText(this.newText, 2, 13 + (13*i)); + ctx.fillText(this.newText, 2, 15.5 + (15.5*i)); } From f73a76e4433e33db2f6ecdf99ed5a62c72ba5bee Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:04:40 +0200 Subject: [PATCH 10/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70da7ee..b3d67df 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ I was thinking about using web2vr and doing the proper stats panel, but that wou https://github.com/chenzlabs/stats-in-vr/pull/1 Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 -~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value. +~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. ~~I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value.~~ NM, fixed that too. Now all text stats are rendered as one buttery smooth image with canvas texture. So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. From f8a0799bd5e26f6885c64fc6913366731823c1ea Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:04:56 +0200 Subject: [PATCH 11/36] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b3d67df..d69163f 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,17 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ```js schema: { enabled: { type: "boolean", default: true }, + debug: { type: "boolean", default: false }, position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - updateIntervalMs: { type: "number", default: 250 }, - show2dstats: { type: "boolean", default: true }, - anchorEl: { type: "string", default: "[camera]" }, + updateIntervalMs: { type: "number", default: 20 }, // throttle + show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component + anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + showAllLabels: { type: "boolean", default: false }, + showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] + showAllGraphs: { type: "boolean", default: false }, + showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] }, ``` From 7a1412ca559891d20edf50dedd5d081b9c795a61 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:09:03 +0200 Subject: [PATCH 12/36] changed defaults to all stats+labels on pretty as default, tunable by turning off features if desired --- stats-in-vr.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index 4cf0fcf..0ebd71f 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -15,9 +15,9 @@ AFRAME.registerComponent("stats-in-vr", { updateIntervalMs: { type: "number", default: 20 }, // throttle show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showAllLabels: { type: "boolean", default: false }, + showAllLabels: { type: "boolean", default: true }, showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] - showAllGraphs: { type: "boolean", default: false }, + showAllGraphs: { type: "boolean", default: true }, showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] }, From 55e0529512ed422b5bc7576e4c6fbcf9a5b82414 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:10:08 +0200 Subject: [PATCH 13/36] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d69163f..6062220 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glit So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. -You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.0.0/stats-in-vr.js +You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.1.0/stats-in-vr.js Note that the build/dist files are NOT up to date with this one file listed above--they wouldn't build because of the ES6 syntax used in my bug fix, and the build tools are just that old. @@ -60,7 +60,7 @@ Install and use by directly including the [browser file](dist): My A-Frame Scene - + From 0fc5ecc203db662561c513dbf88d38f2a7ddd250 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:11:13 +0200 Subject: [PATCH 14/36] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6062220..2c2b35d 100644 --- a/README.md +++ b/README.md @@ -43,9 +43,9 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible updateIntervalMs: { type: "number", default: 20 }, // throttle show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showAllLabels: { type: "boolean", default: false }, + showAllLabels: { type: "boolean", default: true }, showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] - showAllGraphs: { type: "boolean", default: false }, + showAllGraphs: { type: "boolean", default: true }, showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] }, ``` From 93e760936f683926e06cd0087f6bf2e50d372b83 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:17:32 +0200 Subject: [PATCH 15/36] Update README.md --- README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2c2b35d..d3468bd 100644 --- a/README.md +++ b/README.md @@ -2,29 +2,24 @@ This one is revived from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. -I was thinking about using web2vr and doing the proper stats panel, but that would definitely add more impact to the site being measured itself than this option. There's also probably other nice ways to implement this idea these days. but I googled, found this, and then found this pull request on it: +I've wanted this for a while, but I googled, found this, and then found this pull request on it: https://github.com/chenzlabs/stats-in-vr/pull/1 Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 ~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. ~~I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value.~~ NM, fixed that too. Now all text stats are rendered as one buttery smooth image with canvas texture. -So, adding my fork here. Will pull the updates here soon. It's got all the usual boilerplate, now fallen out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. +I spent time working on the code, but not yet the repo. It's got all the usual boilerplate, now fallen way out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. You can access it through jsdelivr's cdn here: https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.1.0/stats-in-vr.js -Note that the build/dist files are NOT up to date with this one file listed above--they wouldn't build because of the ES6 syntax used in my bug fix, and the build tools are just that old. - - -## aframe-stats-in-vr-component - -![npm (scoped)](https://img.shields.io/npm/v/@aframe-community/aframe-stats-in-vr-component) -![NPM](https://img.shields.io/npm/l/@aframe-community/aframe-stats-in-vr-component) -![npm](https://img.shields.io/npm/dm/@aframe-community/aframe-stats-in-vr-component) +**AGAIN, Note that the build/dist files are NOT up to date with this one file listed above--they wouldn't build because of the ES6 syntax used in my bug fix, and the build tools are just that old.** stats-in-vr component for [A-Frame](https://aframe.io). ![stats-in-vr](https://user-images.githubusercontent.com/6391152/130007970-a512c190-0a4e-4f0d-8c40-0d8e1e9e58e8.png) -The stats-in-vr component allows the A-Frame scene stats component to be visible in VR. +![pick-graphs](https://user-images.githubusercontent.com/6391152/130017676-8de7e02b-268e-4896-89cb-3006e5a8dd58.png) +The stats-in-vr component allows the A-Frame scene stats component to be visible in VR! + ## Example From 9fc8e516a33c5074915cd059548a38837db46e31 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:31:15 +0200 Subject: [PATCH 16/36] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d3468bd..bf5b7a5 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ I've wanted this for a while, but I googled, found this, and then found this pul https://github.com/chenzlabs/stats-in-vr/pull/1 Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 + ~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. ~~I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value.~~ NM, fixed that too. Now all text stats are rendered as one buttery smooth image with canvas texture. I spent time working on the code, but not yet the repo. It's got all the usual boilerplate, now fallen way out of date. I just use the 'stats-in-vr.js' file and ignore the rest for now, may clean up rest of repo later. @@ -26,6 +27,8 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ```html ``` +## Glitch +https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 ## params ```js From 6ddff0a64bbf956ca0b562eaa50fead658b091cd Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:38:26 +0200 Subject: [PATCH 17/36] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bf5b7a5..aad3cde 100644 --- a/README.md +++ b/README.md @@ -39,11 +39,11 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, updateIntervalMs: { type: "number", default: 20 }, // throttle - show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component + show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component when not in VR anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showAllLabels: { type: "boolean", default: true }, + showAllLabels: { type: "boolean", default: true }, // show all stats available from stats component showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] - showAllGraphs: { type: "boolean", default: true }, + showAllGraphs: { type: "boolean", default: true }, // show all graphs available from stats component showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] }, ``` From 15bdda2e0af07f5e90b067ec936c7c527c1d541c Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 08:46:30 +0200 Subject: [PATCH 18/36] Update README.md --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index aad3cde..56042ef 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,26 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ```html ``` + +### attach stats to your left hand +```html + + + + + + + + + + +``` + ## Glitch https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 From 3465749b5b143a8cb527be3aaa199c9546367061 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:07:21 +0200 Subject: [PATCH 19/36] Update README.md --- README.md | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 56042ef..74a11e9 100644 --- a/README.md +++ b/README.md @@ -24,15 +24,17 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ## Example +### default +when you enter VR, text stats get attached to your face. When you are not in VR, you see normal 2d stats. ```html ``` -### attach stats to your left hand +### attach stats to your left hand when you enter vr ```html - + @@ -47,6 +49,24 @@ The stats-in-vr component allows the A-Frame scene stats component to be visible ``` +### make it a permanent fixture in your scene, vr or not +stick a VR panel somewhere you want in the scene, and make it stay there. +```html + + + + + +``` + ## Glitch https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 @@ -58,13 +78,14 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - updateIntervalMs: { type: "number", default: 20 }, // throttle - show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component when not in VR - anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showAllLabels: { type: "boolean", default: true }, // show all stats available from stats component - showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] - showAllGraphs: { type: "boolean", default: true }, // show all graphs available from stats component - showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] + throttle: { type: "number", default: 20 }, // throttle + show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component + alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component + anchorel: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + showalllabel: { type: "boolean", default: true }, + showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] + showallgraphs: { type: "boolean", default: true }, + showgraphs: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] }, ``` From 2661962cd04e449b39e2e9d0ce890ab0b230215f Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:08:05 +0200 Subject: [PATCH 20/36] Update stats-in-vr.js lowercase stat names, option to make persist in VR --- stats-in-vr.js | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index 0ebd71f..5ad5a23 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -12,13 +12,14 @@ AFRAME.registerComponent("stats-in-vr", { position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - updateIntervalMs: { type: "number", default: 20 }, // throttle + throttle: { type: "number", default: 20 }, // throttle show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component - anchorEl: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showAllLabels: { type: "boolean", default: true }, - showLabels: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] - showAllGraphs: { type: "boolean", default: true }, - showGraphs: {type: 'array', default:['raf','fps','calls','entities']}, // e.g., ['raf','fps','calls','entities'] + alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component + anchorel: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + showalllabel: { type: "boolean", default: true }, + showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] + showallgraphs: { type: "boolean", default: true }, + showgraphs: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] }, inVR: false, @@ -35,7 +36,9 @@ AFRAME.registerComponent("stats-in-vr", { }) AFRAME.scenes[0].addEventListener('exit-vr', async () => { this.inVR = false; - this.hide(); + if (!this.data.alwaysshow3dstats) { + this.hide(); + } }) if (!this.data.show2dstats) { @@ -67,10 +70,13 @@ AFRAME.registerComponent("stats-in-vr", { "visible", this.data.enabled ? "true" : "false" ); - document.querySelector(this.data.anchorEl).appendChild(this.statspanel); + document.querySelector(this.data.anchorel).appendChild(this.statspanel); await this.addEls(); - if (!this.inVR) { + if (this.data.alwaysshow3dstats || this.inVR) { + this.show(); + } + else if (!this.inVR) { this.hide(); } if (this.data.debug) { @@ -79,7 +85,7 @@ AFRAME.registerComponent("stats-in-vr", { document.body.appendChild(this.canvasParent) } this.addStatPanels(); - this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.updateIntervalMs, this); + this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.throttle, this); }, waitForTime: async function(ms) { @@ -90,8 +96,8 @@ AFRAME.registerComponent("stats-in-vr", { addEls: async function() { if (!document.querySelectorAll(".rs-canvas").length) { - if (this.data.debug) console.log("no canvases, recurse in ", this.data.updateIntervalMs) - await this.waitForTime(this.data.updateIntervalMs) + if (this.data.debug) console.log("no canvases, recurse in ", this.data.throttle) + await this.waitForTime(this.data.throttle) await this.addEls() } // set up the VR stats panel @@ -137,7 +143,7 @@ AFRAME.registerComponent("stats-in-vr", { this.statspanel.appendChild(this.monoImage); for (var i = 0; i < this.rscanvases.length; i++) { - console.log(this.rsid) + // console.log(this.rsid) this.yval = (1.3625 - i * 0.025); this.rsparent = this.rscanvases[i].parentElement; this.rsid = this.rsparent.querySelector(".rs-counter-id").innerText; @@ -154,7 +160,7 @@ AFRAME.registerComponent("stats-in-vr", { this.idsuffix = this.rsids[i].replace(" ", "_"); this.rscanvases[i].id = "rstats-" + this.idsuffix; - if (this.data.showAllGraphs || this.data.showGraphs.includes(this.rsid.toLowerCase())) { + if (this.data.showallgraphs || this.data.showgraphs.includes(this.rsid.toLowerCase())) { // create the image for the rstats canvas this.stats[i] = document.createElement('a-image'); this.stats[i].setAttribute('position', {x:-0.08, y:this.yval, z:0}); @@ -164,8 +170,8 @@ AFRAME.registerComponent("stats-in-vr", { this.statspanel.appendChild(this.stats[i]); } - if (this.data.showAllLabels || this.data.showLabels.includes(this.rsid.toLowerCase())) { - console.log(this.data.showLabels,this.rsid.toLowerCase()) + if (this.data.showalllabel || this.data.showlabels.includes(this.rsid.toLowerCase())) { + // console.log(this.data.showlabels,this.rsid.toLowerCase()) // create the canvas for the value this.valuecanvases[i] = this.valuecanvases[i] || document.createElement("canvas"); this.valuecanvases[i].setAttribute("id", "value-" + this.idsuffix); @@ -193,7 +199,7 @@ AFRAME.registerComponent("stats-in-vr", { } this.statspanel.setAttribute("position", this.data.position); this.statspanel.setAttribute("scale", this.data.scale); - this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.updateIntervalMs, this); + this.tick = AFRAME.utils.throttleTick(this.willtick, this.data.throttle, this); return this.data.enabled ? this.show() : this.hide(); }, @@ -205,7 +211,7 @@ AFRAME.registerComponent("stats-in-vr", { newText: "", tick(){}, willtick: function(log) { - if (!this.inVR && !this.data.debug) { + if (!this.inVR && !this.data.debug && !this.data.alwaysshow3dstats) { return; } From 5e7318b16c131ee3e69279554af81980f47c8a01 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:12:43 +0200 Subject: [PATCH 21/36] Update README.md --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 74a11e9..a68551b 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,10 @@ This one is revived from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. -I've wanted this for a while, but I googled, found this, and then found this pull request on it: -https://github.com/chenzlabs/stats-in-vr/pull/1 +I've wanted this for a while, but I googled, found this, and then found what looked like a [promising pull request](https://github.com/chenzlabs/stats-in-vr/pull/1 +). -Which, with just one tiny bug fix, was found to work even on 1.2.0: https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A36%3A53 +Which, with just one tiny bug fix, was found to work even on 1.2.0! ~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. ~~I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value.~~ NM, fixed that too. Now all text stats are rendered as one buttery smooth image with canvas texture. @@ -19,18 +19,17 @@ stats-in-vr component for [A-Frame](https://aframe.io). ![stats-in-vr](https://user-images.githubusercontent.com/6391152/130007970-a512c190-0a4e-4f0d-8c40-0d8e1e9e58e8.png) ![pick-graphs](https://user-images.githubusercontent.com/6391152/130017676-8de7e02b-268e-4896-89cb-3006e5a8dd58.png) -The stats-in-vr component allows the A-Frame scene stats component to be visible in VR! -## Example +## Examples -### default +### default behavior: when you enter VR, text stats get attached to your face. When you are not in VR, you see normal 2d stats. ```html ``` -### attach stats to your left hand when you enter vr +### attach stats to your left hand when you enter vr: ```html @@ -49,8 +48,8 @@ when you enter VR, text stats get attached to your face. When you are not in VR, ``` -### make it a permanent fixture in your scene, vr or not -stick a VR panel somewhere you want in the scene, and make it stay there. +### make it a permanent fixture in your scene, vr or not: +stick a VR panel somewhere you want in the scene, and make it stay there, whether you're in VR or not. ```html From 4f0aa4dff526c0bc9f10f19a9edb8694fb44a1db Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:17:50 +0200 Subject: [PATCH 22/36] 1.2.0 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a68551b..f00f0b3 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ ## yet another necro component pulled into service -This one is revived from back in the olden days! 0.4.0 is close to as old as I've seen. Very cool that this 5 year old code can still be called into service. +This one is revived from back in the olden days! A-Frame 0.4.0 is close to as old as I've seen (pretty sure I have pulled a library somewhere that had a demo on 0.3.0?). Very cool that this 5 year old code can still be called into service. I've wanted this for a while, but I googled, found this, and then found what looked like a [promising pull request](https://github.com/chenzlabs/stats-in-vr/pull/1 ). -Which, with just one tiny bug fix, was found to work even on 1.2.0! +Which, with just one tiny bug fix, was found to work even on A-Frame 1.2.0! ~~though it seems the bars may not be working properly and that they perhaps used to. perhaps some more tinkering is in order?~~ Got the bars working again. :D Also spent a few hours going over it, refactoring stuff in the process. ~~I now realize it adds about 40-50 draw calls or so, because it works by adding a ton of images with canvas with text as textures for every value.~~ NM, fixed that too. Now all text stats are rendered as one buttery smooth image with canvas texture. @@ -32,7 +32,7 @@ when you enter VR, text stats get attached to your face. When you are not in VR, ### attach stats to your left hand when you enter vr: ```html - + My A-Frame Scene - + From 24ef82248971f45a0b92ea933a6f5a641cf7b652 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:57:33 +0200 Subject: [PATCH 23/36] Update README.md --- README.md | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f00f0b3..95c8c7f 100644 --- a/README.md +++ b/README.md @@ -24,23 +24,33 @@ stats-in-vr component for [A-Frame](https://aframe.io). ## Examples ### default behavior: -when you enter VR, text stats get attached to your face. When you are not in VR, you see normal 2d stats. +when you enter VR, full stats get attached to your face, about half a meter down and forward from you. When you are not in VR, you see the normal 2d stats. ```html ``` -### attach stats to your left hand when you enter vr: +### just want fps and tirangles, including their graphs +```html + +``` + +### no graphs, just numbers please +```html + +``` + +### only fps graph, but all numbers +```html + +``` + +### attach translucent stats to your left hand when you enter vr: ```html - - - + + + @@ -52,17 +62,8 @@ when you enter VR, text stats get attached to your face. When you are not in VR, stick a VR panel somewhere you want in the scene, and make it stay there, whether you're in VR or not. ```html - - - + + ``` @@ -71,16 +72,18 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 ## params ```js + schema: { enabled: { type: "boolean", default: true }, debug: { type: "boolean", default: false }, position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - throttle: { type: "number", default: 20 }, // throttle + throttle: { type: "number", default: 20 }, + fillstyle: { type:"color", default: "white"}, // for opacity, you can try "rgba(255, 255, 255, 0.5)" show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component - anchorel: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + anchorel: { type: "selector", default: "[camera]" }, // anchor in-vr stats to something other than the camera showalllabel: { type: "boolean", default: true }, showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] showallgraphs: { type: "boolean", default: true }, From 7bd6964873449c3488e128bfbb5815b7953d5f3e Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 09:59:21 +0200 Subject: [PATCH 24/36] Update stats-in-vr.js no opacity by default, but ability to specify background color added --- stats-in-vr.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index 5ad5a23..1706d5c 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -12,10 +12,11 @@ AFRAME.registerComponent("stats-in-vr", { position: { type: "string", default: "0 -1.1 -1" }, rotation: { type: "string", default: "-20 0 0" }, scale: { type: "string", default: "1 .8 1" }, - throttle: { type: "number", default: 20 }, // throttle + throttle: { type: "number", default: 20 }, + backgroundcolor: { type:"color", default: "white"}, // for opacity, you can try "rgba(255, 255, 255, 0.5)" show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component - anchorel: { type: "string", default: "[camera]" }, // anchor in-vr stats to something other than the camera + anchorel: { type: "selector", default: "[camera]" }, // anchor in-vr stats to something other than the camera showalllabel: { type: "boolean", default: true }, showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] showallgraphs: { type: "boolean", default: true }, @@ -70,7 +71,7 @@ AFRAME.registerComponent("stats-in-vr", { "visible", this.data.enabled ? "true" : "false" ); - document.querySelector(this.data.anchorel).appendChild(this.statspanel); + this.data.anchorel.appendChild(this.statspanel); await this.addEls(); if (this.data.alwaysshow3dstats || this.inVR) { @@ -219,7 +220,7 @@ AFRAME.registerComponent("stats-in-vr", { this.newText = ""; var ctx = this.monoCanvas.getContext("2d"); ctx.clearRect(0, 0, 192, 16 * this.valuecanvases.length); - ctx.fillStyle = "rgba(255, 255, 255, 0.5)"; + ctx.fillStyle = this.data.backgroundcolor; ctx.fillRect(0, 0, 192, 16 * this.valuecanvases.length); for (var i = 0; i < this.valuecanvases.length; i++) { @@ -230,7 +231,6 @@ AFRAME.registerComponent("stats-in-vr", { ctx.fillText(this.newText, 2, 15.5 + (15.5*i)); } - for (i = 0; i < this.valuecanvases.length*2; i++) { if (this.statspanel.childNodes.item(i)?.components?.material?.shader){ let node =this.statspanel.childNodes.item(i); From 782fe7454b2679545c733b064160c924a088146a Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:01:04 +0200 Subject: [PATCH 25/36] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 95c8c7f..0485031 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ when you enter VR, full stats get attached to your face, about half a meter down ### attach translucent stats to your left hand when you enter vr: ```html - + @@ -95,13 +95,13 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 #### Browser -Install and use by directly including the [browser file](https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.2.0/stats-in-vr.js): +Install and use by directly including the [browser file](https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.2.1/stats-in-vr.js): ```html My A-Frame Scene - + From 592f04c96754758b6833056ad4c37b336f12bd2e Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:06:23 +0200 Subject: [PATCH 26/36] Update README.md typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0485031..7333037 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component anchorel: { type: "selector", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showalllabel: { type: "boolean", default: true }, + showalllabels: { type: "boolean", default: true }, showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] showallgraphs: { type: "boolean", default: true }, showgraphs: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] From 5a563837804e0d27af0047617c911f647a497dd3 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:06:44 +0200 Subject: [PATCH 27/36] Update stats-in-vr.js --- stats-in-vr.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stats-in-vr.js b/stats-in-vr.js index 1706d5c..43baae2 100644 --- a/stats-in-vr.js +++ b/stats-in-vr.js @@ -17,7 +17,7 @@ AFRAME.registerComponent("stats-in-vr", { show2dstats: { type: "boolean", default: true }, // show the built-in 'stats' component alwaysshow3dstats: { type: "boolean", default: false }, // show the built-in 'stats' component anchorel: { type: "selector", default: "[camera]" }, // anchor in-vr stats to something other than the camera - showalllabel: { type: "boolean", default: true }, + showalllabels: { type: "boolean", default: true }, showlabels: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] showallgraphs: { type: "boolean", default: true }, showgraphs: {type: 'array', default:[]}, // e.g., ['raf','fps','calls','entities'] From b81c2d2efbc0195d5db05786f64e9e669858d8f6 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:07:05 +0200 Subject: [PATCH 28/36] Create stats-in-vr.js From d6da334f5e2da789c4e1305e9c5f4ec14266702a Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:08:22 +0200 Subject: [PATCH 29/36] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7333037..5baff70 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,8 @@ when you enter VR, full stats get attached to your face, about half a meter down ### attach translucent stats to your left hand when you enter vr: ```html - + + @@ -95,13 +96,13 @@ https://glitch.com/edit/#!/stats-in-vr?path=index.html%3A17%3A30 #### Browser -Install and use by directly including the [browser file](https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.2.1/stats-in-vr.js): +Install and use by directly including the [browser file](https://cdn.jsdelivr.net/gh/kylebakerio/stats-in-vr@1.2.2/stats-in-vr.js): ```html My A-Frame Scene - + From 209012d03fd870d523b35e96dd97c133b34d28e9 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:11:02 +0200 Subject: [PATCH 30/36] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 5baff70..19be756 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,14 @@ +# features +- get stats component data in VR, while you're actually using your app +- high performance +- uses existing stats component +- pick which stats you want to track +- throttle +- pick background color, opacity +- include some, all, or no charts +- attach to camera by default, but attach anywhere you want +- easy-peasy + ## yet another necro component pulled into service This one is revived from back in the olden days! A-Frame 0.4.0 is close to as old as I've seen (pretty sure I have pulled a library somewhere that had a demo on 0.3.0?). Very cool that this 5 year old code can still be called into service. From 34cc52e2aa3d0f874a7962f25d5341aab39a42bd Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:12:30 +0200 Subject: [PATCH 31/36] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 19be756..2f4b176 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ - pick background color, opacity - include some, all, or no charts - attach to camera by default, but attach anywhere you want +- default behavior is to display when enter-vr, and hide and show `stats` when exit-vr, but behavior can be customized - easy-peasy ## yet another necro component pulled into service From ee3834ade4ce4a1b6786cf241c57279c75fd85e9 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:13:25 +0200 Subject: [PATCH 32/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f4b176..ba9cf5f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # features - get stats component data in VR, while you're actually using your app -- high performance +- high performance, just one canvas texture for all stats (each though each graph is its own canvas) - uses existing stats component - pick which stats you want to track - throttle From fb39f1c0954a1e32e9e8722f5e1385fe4b355bc7 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:14:12 +0200 Subject: [PATCH 33/36] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba9cf5f..8ef655b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # features - get stats component data in VR, while you're actually using your app - high performance, just one canvas texture for all stats (each though each graph is its own canvas) -- uses existing stats component +- uses existing stats component under the hood - pick which stats you want to track -- throttle +- throttle to as smooth or as performance sensitive as you want - pick background color, opacity - include some, all, or no charts - attach to camera by default, but attach anywhere you want From fd756b5babfb747190114a037a6db7b8cdc501d6 Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:15:30 +0200 Subject: [PATCH 34/36] Delete dist directory --- dist/.gitkeep | 1 - dist/aframe-stats-in-vr-component.js | 211 ----------------------- dist/aframe-stats-in-vr-component.min.js | 1 - 3 files changed, 213 deletions(-) delete mode 100644 dist/.gitkeep delete mode 100644 dist/aframe-stats-in-vr-component.js delete mode 100644 dist/aframe-stats-in-vr-component.min.js diff --git a/dist/.gitkeep b/dist/.gitkeep deleted file mode 100644 index d9186ea..0000000 --- a/dist/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -`npm run dist` to generate browser files. diff --git a/dist/aframe-stats-in-vr-component.js b/dist/aframe-stats-in-vr-component.js deleted file mode 100644 index 49f6434..0000000 --- a/dist/aframe-stats-in-vr-component.js +++ /dev/null @@ -1,211 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(1); - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - - /* globals AFRAME */ - - /** - * Show scene stats in VR. - */ - AFRAME.registerComponent("stats-in-vr", { - dependencies: ["stats"], - - schema: { - enabled: { type: "boolean", default: true }, - position: { type: "string", default: "0 -0.35 -0.5" }, - scale: { type: "string", default: "0.5 0.5 1" }, - updateIntervalMillis: { type: "number", default: 500 } - }, - - init: function() { - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; - - // hide the DOM stats panel - //statsEl.style = 'display: none !important;'; - //statsEl.className = 'a-hidden'; - - // once we start rendering, create VR stats panel - if (scene.renderStarted) { - this.createStatsPanel(); - } else { - scene.addEventListener("renderstart", this.createStatsPanel.bind(this)); - } - }, - - createStatsPanel: function() { - var self = this; - - // attached to scene element, so inject stats panel into camera - self.statspanel = document.createElement("a-entity"); - self.statspanel.setAttribute("id", "statspanel"); - self.statspanel.setAttribute("position", self.data.position); - self.statspanel.setAttribute("scale", self.data.scale); - self.statspanel.setAttribute( - "visible", - self.data.enabled ? "true" : "false" - ); - self.el.camera.el.appendChild(self.statspanel); - - // set up the VR stats panel - self.valuecanvases = []; - self.rsids = []; - self.rsvalues = []; - }, - - updateStatsPanel: function() { - var self = this; - if (!self.statspanel || !self.rsids) { - return; - } - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; - var rscanvases = document.querySelectorAll(".rs-canvas"); - for (var i = 0; i < rscanvases.length; i++) { - var rsparent = rscanvases[i].parentElement; - var rsid = rsparent.querySelector(".rs-counter-id").innerText; - - if (self.rsids.indexOf(rsid) >= 0) { - continue; - } - - // remember labels and value elements - self.rsids.push(rsid); - self.rsvalues.push(rsparent.querySelector(".rs-counter-value")); - - // inject id values for rstats canvases - var idsuffix = self.rsids[i].replace(" ", "_"); - rscanvases[i].id = "rstats-" + idsuffix; - - var y = 1.25 - i * 0.025 + " 0"; - - // create the canvas for the value - var valuecanvas = document.createElement("canvas"); - valuecanvas.setAttribute("id", "value-" + idsuffix); - valuecanvas.setAttribute("width", "192"); - valuecanvas.setAttribute("height", "16"); - valuecanvas.setAttribute("crossorigin", "anonymous"); - self.valuecanvases.push(valuecanvas); - - // add the value canvas - statsEl.appendChild(self.valuecanvases[i]); - - // create the image for the value canvas - var value = document.createElement("a-image"); - value.setAttribute("id", "aframe-" + idsuffix); - value.setAttribute("position", "0.17 " + y); - value.setAttribute("width", "0.16"); - value.setAttribute("height", "0.025"); - value.setAttribute("src", "#" + self.valuecanvases[i].id); - self.statspanel.appendChild(value); - - } - }, - - update: function() { - if (!this.statspanel) { - return; - } - this.statspanel.setAttribute("position", this.data.position); - this.statspanel.setAttribute("scale", this.data.scale); - return !this.data.enabled ? this.hide() : this.show(); - }, - - remove: function() { - var scene = this.el; - var statsEl = scene.components["stats"].statsEl; - - statsEl.parentNode.removeChild(statsEl); - }, - - tick: function() { - // periodically update the value canvases - var now = Date.now(); - if (now < this.lastTime + this.data.updateIntervalMillis) { - return; - } - this.lastTime = now; - if (this.valuecanvases) { - this.updateStatsPanel(); - for (var i = 0; i < this.valuecanvases.length; i++) { - var ctx = this.valuecanvases[i].getContext("2d"); - ctx.clearRect(0, 0, 192, 16); - ctx.font = "12px monospace"; - ctx.fillStyle = "gray"; - ctx.fillRect(0, 0, 192, 16); - ctx.fillStyle = "black"; - ctx.fillText(this.rsvalues[i].innerText + " " + this.rsids[i], 2, 16); - - if (this.statspanel.childNodes.item(i).components.material.shader){ - this.statspanel.childNodes.item(i).components.material.material.map.needsUpdate = true; - } - - } - } - }, - - hide: function() { - if (this.statspanel) { - this.statspanel.object3D.visible = false; - } - }, - - show: function() { - if (this.statspanel) { - this.statspanel.object3D.visible = true; - } - } - }); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/dist/aframe-stats-in-vr-component.min.js b/dist/aframe-stats-in-vr-component.min.js deleted file mode 100644 index 2d93db6..0000000 --- a/dist/aframe-stats-in-vr-component.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){function e(a){if(s[a])return s[a].exports;var i=s[a]={exports:{},id:a,loaded:!1};return t[a].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}([function(t,e,s){s(1)},function(t,e){AFRAME.registerComponent("stats-in-vr",{dependencies:["stats"],schema:{enabled:{type:"boolean",default:!0},position:{type:"string",default:"0 -0.35 -0.5"},scale:{type:"string",default:"0.5 0.5 1"},updateIntervalMillis:{type:"number",default:500}},init:function(){var t=this.el;t.components.stats.statsEl;t.renderStarted?this.createStatsPanel():t.addEventListener("renderstart",this.createStatsPanel.bind(this))},createStatsPanel:function(){var t=this;t.statspanel=document.createElement("a-entity"),t.statspanel.setAttribute("id","statspanel"),t.statspanel.setAttribute("position",t.data.position),t.statspanel.setAttribute("scale",t.data.scale),t.statspanel.setAttribute("visible",t.data.enabled?"true":"false"),t.el.camera.el.appendChild(t.statspanel),t.valuecanvases=[],t.rsids=[],t.rsvalues=[]},updateStatsPanel:function(){var t=this;if(t.statspanel&&t.rsids)for(var e=this.el,s=e.components.stats.statsEl,a=document.querySelectorAll(".rs-canvas"),i=0;i=0)){t.rsids.push(l),t.rsvalues.push(n.querySelector(".rs-counter-value"));var r=t.rsids[i].replace(" ","_");a[i].id="rstats-"+r;var o=1.25-.025*i+" 0",d=document.createElement("canvas");d.setAttribute("id","value-"+r),d.setAttribute("width","192"),d.setAttribute("height","16"),d.setAttribute("crossorigin","anonymous"),t.valuecanvases.push(d),s.appendChild(t.valuecanvases[i]);var u=document.createElement("a-image");u.setAttribute("id","aframe-"+r),u.setAttribute("position","0.17 "+o),u.setAttribute("width","0.16"),u.setAttribute("height","0.025"),u.setAttribute("src","#"+t.valuecanvases[i].id),t.statspanel.appendChild(u)}}},update:function(){if(this.statspanel)return this.statspanel.setAttribute("position",this.data.position),this.statspanel.setAttribute("scale",this.data.scale),this.data.enabled?this.show():this.hide()},remove:function(){var t=this.el,e=t.components.stats.statsEl;e.parentNode.removeChild(e)},tick:function(){var t=Date.now();if(!(t Date: Thu, 19 Aug 2021 10:15:49 +0200 Subject: [PATCH 35/36] Delete scripts directory --- scripts/unboil.js | 77 ----------------------------------------------- 1 file changed, 77 deletions(-) delete mode 100644 scripts/unboil.js diff --git a/scripts/unboil.js b/scripts/unboil.js deleted file mode 100644 index 9a3f510..0000000 --- a/scripts/unboil.js +++ /dev/null @@ -1,77 +0,0 @@ -/* global find, ls, sed */ -require('shelljs/global'); -var exec = require('child_process').exec; -var inquirer = require('inquirer'); - -// You can manually add configuration options here if you don't want to go through the -// interactive script or if the interactive script is not working. -var CONFIG = { - // What is your component's short-name? (e.g., `rick-roll` for aframe-rick-roll-component). - shortname: '', - // What is your component's long-name? (e.g., `Rick Roll` for A-Frame Rick Roll Component). - longname: '', - // Where is your component on GitHub (e.g., yourusername/aframe-rick-roll-component). - repo: '', - // Who are you? (e.g., Jane John ). - author: '' -}; - -// --- - -exec("sed '1,/--trim--/d' README.md | tee README.md"); - -if (CONFIG.shortname && CONFIG.longname && CONFIG.repo) { - run(CONFIG); - process.exit(0); -} - -var q1 = { - name: 'shortname', - message: 'What is your component\'s short-name? (e.g., `rick-roll` for aframe-rick-roll-component, ``)', - type: 'input' -}; - -var q2 = { - name: 'longname', - message: 'What is your component\'s long-name? (e.g., `Rick Roll` for A-Frame Rick Roll Component)', - type: 'input' -}; - -var q3 = { - name: 'repo', - message: 'Where is your component on Github? (e.g., yourusername/aframe-rick-roll-component)', - type: 'input' -}; - -var q4 = { - name: 'author', - message: 'Who are you? (e.g., Jane John )', - type: 'input' -}; - -inquirer.prompt([q1, q2, q3, q4]).then(run); - -function run (ans) { - ls(['index.js', 'package.json', 'README.md']).forEach(function (file) { - sed('-i', 'aframe-example-component', 'aframe-' + ans.shortname + '-component', file); - sed('-i', 'Example Component', ans.longname + ' Component', file); - sed('-i', 'Example component', ans.longname + ' component', file); - sed('-i', "'example'", "'" + ans.shortname + "'", file); - }); - - ls('README.md').forEach(function (file) { - sed('-i', 'example component', ans.longname + ' component', file); - sed('-i', 'example=', ans.shortname + '=', file); - }); - - find('examples').filter(function (file) { return file.match(/\.html/); }).forEach(function (file) { - sed('-i', 'Example Component', ans.longname + ' Component', file); - sed('-i', 'ngokevin/aframe-component-boilerplate', ans.repo, file); - }); - - ls(['package.json', 'README.md']).forEach(function (file) { - sed('-i', 'aframe-example-component', 'aframe-' + ans.shortname + '-component', file); - sed('-i', 'ngokevin/aframe-component-boilerplate', ans.repo, file); - sed('-i', 'Kevin Ngo ', ans.author, file); - }); -} From 772461bbd72df7a509bbfe2f71c6f605b7e18eea Mon Sep 17 00:00:00 2001 From: Kyle Baker Date: Thu, 19 Aug 2021 10:16:33 +0200 Subject: [PATCH 36/36] Delete index.js --- index.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 index.js diff --git a/index.js b/index.js deleted file mode 100644 index 3a77b25..0000000 --- a/index.js +++ /dev/null @@ -1 +0,0 @@ -require('./stats-in-vr');