From 28670096c8e34de64223e79b0256e983da579f4f Mon Sep 17 00:00:00 2001 From: He4eT Date: Fri, 18 Dec 2020 14:40:53 +0500 Subject: [PATCH] release: 2020-12-18-5 --- docs/200.html | 2 +- docs/404.html | 2 +- docs/{bundle.36a1c.js => bundle.25769.js} | 4 ++-- docs/{bundle.36a1c.js.map => bundle.25769.js.map} | 2 +- docs/{bundle.8259f.esm.js => bundle.ba53f.esm.js} | 4 ++-- docs/{bundle.8259f.esm.js.map => bundle.ba53f.esm.js.map} | 2 +- docs/index.html | 2 +- docs/push-manifest.json | 2 +- docs/route-editor.chunk.6c9ac.esm.js | 2 ++ docs/route-editor.chunk.6c9ac.esm.js.map | 1 + docs/route-editor.chunk.c9f0a.js | 2 -- docs/route-editor.chunk.c9f0a.js.map | 1 - docs/route-editor.chunk.f6351.esm.js | 2 -- docs/route-editor.chunk.f6351.esm.js.map | 1 - docs/route-editor.chunk.fda69.js | 2 ++ docs/route-editor.chunk.fda69.js.map | 1 + ...ost.chunk.fd471.esm.js => route-post.chunk.95b49.esm.js} | 4 ++-- docs/route-post.chunk.95b49.esm.js.map | 1 + ...{route-post.chunk.ecd18.js => route-post.chunk.c264f.js} | 4 ++-- docs/route-post.chunk.c264f.js.map | 1 + docs/route-post.chunk.ecd18.js.map | 1 - docs/route-post.chunk.fd471.esm.js.map | 1 - docs/ssr-build/ssr-bundle.js | 2 +- docs/ssr-build/ssr-bundle.js.map | 2 +- docs/sw-esm.js | 2 +- docs/sw.js | 2 +- src/routes/editor/index.js | 2 +- src/routes/post/index.js | 6 +++--- src/template.html | 1 - 29 files changed, 30 insertions(+), 31 deletions(-) rename docs/{bundle.36a1c.js => bundle.25769.js} (99%) rename docs/{bundle.36a1c.js.map => bundle.25769.js.map} (99%) rename docs/{bundle.8259f.esm.js => bundle.ba53f.esm.js} (99%) rename docs/{bundle.8259f.esm.js.map => bundle.ba53f.esm.js.map} (99%) create mode 100644 docs/route-editor.chunk.6c9ac.esm.js create mode 100644 docs/route-editor.chunk.6c9ac.esm.js.map delete mode 100644 docs/route-editor.chunk.c9f0a.js delete mode 100644 docs/route-editor.chunk.c9f0a.js.map delete mode 100644 docs/route-editor.chunk.f6351.esm.js delete mode 100644 docs/route-editor.chunk.f6351.esm.js.map create mode 100644 docs/route-editor.chunk.fda69.js create mode 100644 docs/route-editor.chunk.fda69.js.map rename docs/{route-post.chunk.fd471.esm.js => route-post.chunk.95b49.esm.js} (68%) create mode 100644 docs/route-post.chunk.95b49.esm.js.map rename docs/{route-post.chunk.ecd18.js => route-post.chunk.c264f.js} (68%) create mode 100644 docs/route-post.chunk.c264f.js.map delete mode 100644 docs/route-post.chunk.ecd18.js.map delete mode 100644 docs/route-post.chunk.fd471.esm.js.map diff --git a/docs/200.html b/docs/200.html index c7c892e..a1bad70 100644 --- a/docs/200.html +++ b/docs/200.html @@ -1 +1 @@ -huge-link \ No newline at end of file +huge-link \ No newline at end of file diff --git a/docs/404.html b/docs/404.html index e0dd62a..282a475 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1 +1 @@ -huge-link
\ No newline at end of file +huge-link
\ No newline at end of file diff --git a/docs/bundle.36a1c.js b/docs/bundle.25769.js similarity index 99% rename from docs/bundle.36a1c.js rename to docs/bundle.25769.js index 4556c8b..72abdea 100644 --- a/docs/bundle.36a1c.js +++ b/docs/bundle.25769.js @@ -1,2 +1,2 @@ -!function(t){function n(n){for(var e,r,o=n[0],i=n[1],_=0,l=[];_=e.__.length&&e.__.push({}),e.__[t]}function o(t){return x=1,u(g,t)}function u(t,n,e){var o=r(b++,2);return o.t=t,o.__c||(o.__=[e?e(n):g(void 0,n),function(t){var n=o.t(o.__[0],t);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}],o.__c=k),o.__}function i(t,n){var e=r(b++,3);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__H.__h.push(e))}function _(t,n){var e=r(b++,4);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__h.push(e))}function l(t){return x=5,a((function(){return{current:t}}),[])}function c(t,n,e){x=6,_((function(){"function"==typeof t?t(n()):t&&(t.current=n())}),null==e?e:e.concat(t))}function a(t,n){var e=r(b++,7);return m(e.__H,n)&&(e.__=t(),e.__H=n,e.__h=t),e.__}function f(t,n){return x=8,a((function(){return t}),n)}function s(t){var n=k.context[t.__c],e=r(b++,9);return e.__c=t,n?(null==e.__&&(e.__=!0,n.sub(k)),n.props.value):t.__}function p(t,n){w.options.useDebugValue&&w.options.useDebugValue(n?n(t):t)}function h(t){var n=r(b++,10),e=o();return n.__=t,k.componentDidCatch||(k.componentDidCatch=function(t){n.__&&n.__(t),e[1](t)}),[e[0],function(){e[1](void 0)}]}function d(){A.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(v),t.__H.__h.forEach(y),t.__H.__h=[]}catch(n){t.__H.__h=[],w.options.__e(n,t.__v)}})),A=[]}function v(t){var n=k;"function"==typeof t.__c&&t.__c(),k=n}function y(t){var n=k;t.__c=t.__(),k=n}function m(t,n){return!t||t.length!==n.length||n.some((function(n,e){return n!==t[e]}))}function g(t,n){return"function"==typeof n?n(t):n}e.d(n,"k",(function(){return o})),e.d(n,"i",(function(){return u})),e.d(n,"d",(function(){return i})),e.d(n,"g",(function(){return _})),e.d(n,"j",(function(){return l})),e.d(n,"f",(function(){return c})),e.d(n,"h",(function(){return a})),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return s})),e.d(n,"c",(function(){return p})),e.d(n,"e",(function(){return h}));var b,k,C,w=e("hosL"),x=0,A=[],O=w.options.__b,E=w.options.__r,S=w.options.diffed,P=w.options.__c,j=w.options.unmount;w.options.__b=function(t){k=null,O&&O(t)},w.options.__r=function(t){E&&E(t),b=0;var n=(k=t.__c).__H;n&&(n.__h.forEach(v),n.__h.forEach(y),n.__h=[])},w.options.diffed=function(t){S&&S(t);var n=t.__c;n&&n.__H&&n.__H.__h.length&&(1!==A.push(n)&&C===w.options.requestAnimationFrame||((C=w.options.requestAnimationFrame)||function(t){var n,e=function(){clearTimeout(r),T&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);T&&(n=requestAnimationFrame(e))})(d)),k=void 0},w.options.__c=function(t,n){n.some((function(t){try{t.__h.forEach(v),t.__h=t.__h.filter((function(t){return!t.__||y(t)}))}catch(e){n.some((function(t){t.__h&&(t.__h=[])})),n=[],w.options.__e(e,t.__v)}})),P&&P(t,n)},w.options.unmount=function(t){j&&j(t);var n=t.__c;if(n&&n.__H)try{n.__H.__.forEach(v)}catch(t){w.options.__e(t,n.__v)}};var T="function"==typeof requestAnimationFrame},QfWi:function(t,n,e){"use strict";function r(t){function n(){var n=this;u.Component.call(this),e||(this.componentWillMount=function(){t((function(t){e=t&&t.default||t,n.setState({})}))},this.shouldComponentUpdate=function(){return null!=e}),this.render=function(t){if(e)return Object(u.h)(e,t);var r=function t(n,e){if("string"==typeof n.type)return null;var r=n.__;if(r){var o=r.__k;if(o){Array.isArray(o)||(o=[o]);var u=o.indexOf(n);-1===u&&(u=o.length);for(var i=u;i--;){var _=o[i],l=_&&_.__e||t(_,!0);if(l)return l}}return e?void 0:t(r)}}(n.__v),o=r&&r.nextSibling||(n.__P||n._parentDom).firstChild;return o&&Object(u.h)(o.localName,{dangerouslySetInnerHTML:l})}}var e;return n.preload=t,(n.prototype=new u.Component).constructor=n,n}function o(){return(o=Object.assign||function(t){for(var n=1;nn.rank?-1:t.index-n.index}function i(t,n){return t.index=n,t.rank=function(t){return t.props.default?0:(n=t.props.path,_(n).map(l).join(""));var n}(t),t.props}function _(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function l(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function c(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:k).pathname||"")+(t.search||"")}function a(t,n){return void 0===n&&(n=!1),"string"!=typeof t&&t.url&&(n=t.replace,t=t.url),function(t){for(var n=g.length;n--;)if(g[n].canRoute(t))return!0;return!1}(t)&&function(t,n){void 0===n&&(n="push"),m&&m[n]?m[n](t):"undefined"!=typeof history&&history[n+"State"]&&history[n+"State"](null,null,t)}(t,n?"replace":"push"),f(t)}function f(t){for(var n=!1,e=0;e0},n.prototype.routeTo=function(t){this.setState({url:t});var n=this.canRoute(t);return this.updating||this.forceUpdate(),n},n.prototype.componentWillMount=function(){g.push(this),this.updating=!0},n.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(n){t.routeTo(""+(n.pathname||"")+(n.search||""))}))),this.updating=!1},n.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},n.prototype.componentWillUpdate=function(){this.updating=!0},n.prototype.componentDidUpdate=function(){this.updating=!1},n.prototype.getMatchingChildren=function(t,n,e){return t.filter(i).sort(u).map((function(t){var u=o(n,t.props.path,t.props);if(u){if(!1!==e){var i={url:n,matches:u};return r(i,u),delete i.ref,delete i.key,Object(v.cloneElement)(t,i)}return t}})).filter(Boolean)},n.prototype.render=function(t,n){var e=t.children,r=t.onChange,o=n.url,u=this.getMatchingChildren(Object(v.toChildArray)(e),o,!0),i=u[0]||null,_=this.previousUrl;return o!==_&&(this.previousUrl=o,"function"==typeof r&&r({router:this,url:o,previous:_,active:u,current:i})),i},n}(v.Component),x=function(t){return Object(v.createElement)("a",r({onClick:p},t))},A=function(t){return Object(v.createElement)(t.component,t)};w.subscribers=b,w.getCurrentUrl=c,w.route=a,w.Router=w,w.Route=A,w.Link=x,w.exec=o,n.default=w},hosL:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t){var n=t.parentNode;n&&n.removeChild(t)}function u(t,n,e){var r,o,u,_=arguments,l={};for(u in n)"key"==u?r=n[u]:"ref"==u?o=n[u]:l[u]=n[u];if(arguments.length>3)for(e=[e],u=3;u1&&k(o,n,e),n=v(e,o,o,t.__k,null,o.__e,n),"function"==typeof t.type&&(t.__d=n)))}function C(t,n,e,o,u,i,_,a,f){var s,p,d,v,y,m,g,b,C,w,A,O=n.type;if(void 0!==n.constructor)return null;null!=e.__h&&(f=e.__h,a=n.__e=e.__e,n.__h=null,i=[a]),(s=L.__b)&&s(n);try{t:if("function"==typeof O){if(b=n.props,C=(s=O.contextType)&&o[s.__c],w=s?C?C.props.value:s.__:o,e.__c?g=(p=n.__c=e.__c).__=p.__E:("prototype"in O&&O.prototype.render?n.__c=p=new O(b,w):(n.__c=p=new c(b,w),p.constructor=O,p.render=E),C&&C.sub(p),p.props=b,p.state||(p.state={}),p.context=w,p.__n=o,d=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=O.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=r({},p.__s)),r(p.__s,O.getDerivedStateFromProps(b,p.__s))),v=p.props,y=p.state,d)null==O.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==O.getDerivedStateFromProps&&b!==v&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(b,w),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(b,p.__s,w)||n.__v===e.__v){p.props=b,p.state=p.__s,n.__v!==e.__v&&(p.__d=!1),p.__v=n,n.__e=e.__e,n.__k=e.__k,p.__h.length&&_.push(p),k(n,a,t);break t}null!=p.componentWillUpdate&&p.componentWillUpdate(b,p.__s,w),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(v,y,m)}))}p.context=w,p.props=b,p.state=p.__s,(s=L.__r)&&s(n),p.__d=!1,p.__v=n,p.__P=t,s=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=r(r({},o),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(v,y)),A=null!=s&&s.type==l&&null==s.key?s.props.children:s,h(t,Array.isArray(A)?A:[A],n,e,o,u,i,_,a,f),p.base=n.__e,n.__h=null,p.__h.length&&_.push(p),g&&(p.__E=p.__=null),p.__e=!1}else null==i&&n.__v===e.__v?(n.__k=e.__k,n.__e=e.__e):n.__e=x(e.__e,n,e,o,u,i,_,f);(s=L.diffed)&&s(n)}catch(t){n.__v=null,(f||null!=i)&&(n.__e=a,n.__h=!!f,i[i.indexOf(a)]=null),L.__e(t,n,e)}return n.__e}function w(t,n){L.__c&&L.__c(n,t),t.some((function(n){try{t=n.__h,n.__h=[],t.some((function(t){t.call(n)}))}catch(t){L.__e(t,n.__v)}}))}function x(t,n,e,r,o,u,i,_){var l,c,a,f,s,p=e.props,d=n.props;if(o="svg"===n.type||o,null!=u)for(l=0;l3)for(e=[e],_=3;_=e.__.length&&e.__.push({}),e.__[t]}function o(t){return x=1,u(g,t)}function u(t,n,e){var o=r(b++,2);return o.t=t,o.__c||(o.__=[e?e(n):g(void 0,n),function(t){var n=o.t(o.__[0],t);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}],o.__c=k),o.__}function i(t,n){var e=r(b++,3);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__H.__h.push(e))}function _(t,n){var e=r(b++,4);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__h.push(e))}function l(t){return x=5,a((function(){return{current:t}}),[])}function c(t,n,e){x=6,_((function(){"function"==typeof t?t(n()):t&&(t.current=n())}),null==e?e:e.concat(t))}function a(t,n){var e=r(b++,7);return m(e.__H,n)&&(e.__=t(),e.__H=n,e.__h=t),e.__}function f(t,n){return x=8,a((function(){return t}),n)}function s(t){var n=k.context[t.__c],e=r(b++,9);return e.__c=t,n?(null==e.__&&(e.__=!0,n.sub(k)),n.props.value):t.__}function p(t,n){w.options.useDebugValue&&w.options.useDebugValue(n?n(t):t)}function h(t){var n=r(b++,10),e=o();return n.__=t,k.componentDidCatch||(k.componentDidCatch=function(t){n.__&&n.__(t),e[1](t)}),[e[0],function(){e[1](void 0)}]}function d(){A.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(v),t.__H.__h.forEach(y),t.__H.__h=[]}catch(n){t.__H.__h=[],w.options.__e(n,t.__v)}})),A=[]}function v(t){var n=k;"function"==typeof t.__c&&t.__c(),k=n}function y(t){var n=k;t.__c=t.__(),k=n}function m(t,n){return!t||t.length!==n.length||n.some((function(n,e){return n!==t[e]}))}function g(t,n){return"function"==typeof n?n(t):n}e.d(n,"k",(function(){return o})),e.d(n,"i",(function(){return u})),e.d(n,"d",(function(){return i})),e.d(n,"g",(function(){return _})),e.d(n,"j",(function(){return l})),e.d(n,"f",(function(){return c})),e.d(n,"h",(function(){return a})),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return s})),e.d(n,"c",(function(){return p})),e.d(n,"e",(function(){return h}));var b,k,C,w=e("hosL"),x=0,A=[],O=w.options.__b,E=w.options.__r,S=w.options.diffed,P=w.options.__c,j=w.options.unmount;w.options.__b=function(t){k=null,O&&O(t)},w.options.__r=function(t){E&&E(t),b=0;var n=(k=t.__c).__H;n&&(n.__h.forEach(v),n.__h.forEach(y),n.__h=[])},w.options.diffed=function(t){S&&S(t);var n=t.__c;n&&n.__H&&n.__H.__h.length&&(1!==A.push(n)&&C===w.options.requestAnimationFrame||((C=w.options.requestAnimationFrame)||function(t){var n,e=function(){clearTimeout(r),T&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);T&&(n=requestAnimationFrame(e))})(d)),k=void 0},w.options.__c=function(t,n){n.some((function(t){try{t.__h.forEach(v),t.__h=t.__h.filter((function(t){return!t.__||y(t)}))}catch(e){n.some((function(t){t.__h&&(t.__h=[])})),n=[],w.options.__e(e,t.__v)}})),P&&P(t,n)},w.options.unmount=function(t){j&&j(t);var n=t.__c;if(n&&n.__H)try{n.__H.__.forEach(v)}catch(t){w.options.__e(t,n.__v)}};var T="function"==typeof requestAnimationFrame},QfWi:function(t,n,e){"use strict";function r(t){function n(){var n=this;u.Component.call(this),e||(this.componentWillMount=function(){t((function(t){e=t&&t.default||t,n.setState({})}))},this.shouldComponentUpdate=function(){return null!=e}),this.render=function(t){if(e)return Object(u.h)(e,t);var r=function t(n,e){if("string"==typeof n.type)return null;var r=n.__;if(r){var o=r.__k;if(o){Array.isArray(o)||(o=[o]);var u=o.indexOf(n);-1===u&&(u=o.length);for(var i=u;i--;){var _=o[i],l=_&&_.__e||t(_,!0);if(l)return l}}return e?void 0:t(r)}}(n.__v),o=r&&r.nextSibling||(n.__P||n._parentDom).firstChild;return o&&Object(u.h)(o.localName,{dangerouslySetInnerHTML:l})}}var e;return n.preload=t,(n.prototype=new u.Component).constructor=n,n}function o(){return(o=Object.assign||function(t){for(var n=1;nn.rank?-1:t.index-n.index}function i(t,n){return t.index=n,t.rank=function(t){return t.props.default?0:(n=t.props.path,_(n).map(l).join(""));var n}(t),t.props}function _(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function l(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function c(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:k).pathname||"")+(t.search||"")}function a(t,n){return void 0===n&&(n=!1),"string"!=typeof t&&t.url&&(n=t.replace,t=t.url),function(t){for(var n=g.length;n--;)if(g[n].canRoute(t))return!0;return!1}(t)&&function(t,n){void 0===n&&(n="push"),m&&m[n]?m[n](t):"undefined"!=typeof history&&history[n+"State"]&&history[n+"State"](null,null,t)}(t,n?"replace":"push"),f(t)}function f(t){for(var n=!1,e=0;e0},n.prototype.routeTo=function(t){this.setState({url:t});var n=this.canRoute(t);return this.updating||this.forceUpdate(),n},n.prototype.componentWillMount=function(){g.push(this),this.updating=!0},n.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(n){t.routeTo(""+(n.pathname||"")+(n.search||""))}))),this.updating=!1},n.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},n.prototype.componentWillUpdate=function(){this.updating=!0},n.prototype.componentDidUpdate=function(){this.updating=!1},n.prototype.getMatchingChildren=function(t,n,e){return t.filter(i).sort(u).map((function(t){var u=o(n,t.props.path,t.props);if(u){if(!1!==e){var i={url:n,matches:u};return r(i,u),delete i.ref,delete i.key,Object(v.cloneElement)(t,i)}return t}})).filter(Boolean)},n.prototype.render=function(t,n){var e=t.children,r=t.onChange,o=n.url,u=this.getMatchingChildren(Object(v.toChildArray)(e),o,!0),i=u[0]||null,_=this.previousUrl;return o!==_&&(this.previousUrl=o,"function"==typeof r&&r({router:this,url:o,previous:_,active:u,current:i})),i},n}(v.Component),x=function(t){return Object(v.createElement)("a",r({onClick:p},t))},A=function(t){return Object(v.createElement)(t.component,t)};w.subscribers=b,w.getCurrentUrl=c,w.route=a,w.Router=w,w.Route=A,w.Link=x,w.exec=o,n.default=w},hosL:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t){var n=t.parentNode;n&&n.removeChild(t)}function u(t,n,e){var r,o,u,_=arguments,l={};for(u in n)"key"==u?r=n[u]:"ref"==u?o=n[u]:l[u]=n[u];if(arguments.length>3)for(e=[e],u=3;u1&&k(o,n,e),n=v(e,o,o,t.__k,null,o.__e,n),"function"==typeof t.type&&(t.__d=n)))}function C(t,n,e,o,u,i,_,a,f){var s,p,d,v,y,m,g,b,C,w,A,O=n.type;if(void 0!==n.constructor)return null;null!=e.__h&&(f=e.__h,a=n.__e=e.__e,n.__h=null,i=[a]),(s=L.__b)&&s(n);try{t:if("function"==typeof O){if(b=n.props,C=(s=O.contextType)&&o[s.__c],w=s?C?C.props.value:s.__:o,e.__c?g=(p=n.__c=e.__c).__=p.__E:("prototype"in O&&O.prototype.render?n.__c=p=new O(b,w):(n.__c=p=new c(b,w),p.constructor=O,p.render=E),C&&C.sub(p),p.props=b,p.state||(p.state={}),p.context=w,p.__n=o,d=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=O.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=r({},p.__s)),r(p.__s,O.getDerivedStateFromProps(b,p.__s))),v=p.props,y=p.state,d)null==O.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==O.getDerivedStateFromProps&&b!==v&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(b,w),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(b,p.__s,w)||n.__v===e.__v){p.props=b,p.state=p.__s,n.__v!==e.__v&&(p.__d=!1),p.__v=n,n.__e=e.__e,n.__k=e.__k,p.__h.length&&_.push(p),k(n,a,t);break t}null!=p.componentWillUpdate&&p.componentWillUpdate(b,p.__s,w),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(v,y,m)}))}p.context=w,p.props=b,p.state=p.__s,(s=L.__r)&&s(n),p.__d=!1,p.__v=n,p.__P=t,s=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=r(r({},o),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(v,y)),A=null!=s&&s.type==l&&null==s.key?s.props.children:s,h(t,Array.isArray(A)?A:[A],n,e,o,u,i,_,a,f),p.base=n.__e,n.__h=null,p.__h.length&&_.push(p),g&&(p.__E=p.__=null),p.__e=!1}else null==i&&n.__v===e.__v?(n.__k=e.__k,n.__e=e.__e):n.__e=x(e.__e,n,e,o,u,i,_,f);(s=L.diffed)&&s(n)}catch(t){n.__v=null,(f||null!=i)&&(n.__e=a,n.__h=!!f,i[i.indexOf(a)]=null),L.__e(t,n,e)}return n.__e}function w(t,n){L.__c&&L.__c(n,t),t.some((function(n){try{t=n.__h,n.__h=[],t.some((function(t){t.call(n)}))}catch(t){L.__e(t,n.__v)}}))}function x(t,n,e,r,o,u,i,_){var l,c,a,f,s,p=e.props,d=n.props;if(o="svg"===n.type||o,null!=u)for(l=0;l3)for(e=[e],_=3;_ {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-editor\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-post\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {h} from 'preact'\nimport {useState} from 'preact/hooks'\nimport {Router} from 'preact-router'\n\nimport Editor from './routes/editor'\nimport Post from './routes/post'\n\nimport './style/typography.css'\nimport './style'\n\nconst App = () => {\n const [markdown, setMarkdown] = useState('')\n\n return (
\n \n \n \n \n \n
)\n}\n\nexport default App\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++options._vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../index').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (typeof childVNode == 'string' || typeof childVNode == 'number') {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._dom != null || childVNode._component != null) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tnewDom = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\toldDom = placeChild(\n\t\t\t\tparentDom,\n\t\t\t\tchildVNode,\n\t\t\t\toldVNode,\n\t\t\t\toldChildren,\n\t\t\t\texcessDomChildren,\n\t\t\t\tnewDom,\n\t\t\t\toldDom\n\t\t\t);\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type == 'option') {\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nexport function placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\texcessDomChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\texcessDomChildren == oldVNode ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t// The values only have the same type when `null`.\n\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j 1) {\n\t\t\t\t\treorderChildren(vnode, oldDom, parentDom);\n\t\t\t\t}\n\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tnewVNode._children,\n\t\t\t\t\tnull,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\n\t\t\t\tif (typeof newVNode.type == 'function') {\n\t\t\t\t\tnewVNode._nextDom = oldDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\treorderChildren(newVNode, oldDom, parentDom);\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (newVNode.type === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.childNodes.length\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\tProvider(props, subs, ctx) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tsubs = [];\n\t\t\t\tctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError,\n\t_vnodeId: 0\n};\n\nexport default options;\n","// import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tconst wasHydrating = vnode._hydrating;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\tvnode._hydrating = wasHydrating;\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../src/index.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./routes/editor/index.js?5cf4","webpack:///./routes/post/index.js?01a5","webpack:///./index.js","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","0","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","getHookState","index","options","currentComponent","currentHook","hooks","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","props","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","flushAfterPaintEffects","afterPaintEffects","forEach","component","invokeCleanup","invokeEffect","hook","comp","oldArgs","newArgs","some","arg","f","prevRaf","oldBeforeDiff","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","vnode","requestAnimationFrame","raf","done","HAS_RAF","cancelAnimationFrame","commitQueue","filter","async","load","AsyncComponent","Component","this","componentWillMount","mod","default","shouldComponentUpdate","render","h","prev","getPreviousSibling","inner","parent","__","children","__k","Array","isArray","end","indexOf","child","dom","__e","__v","me","nextSibling","__P","_parentDom","firstChild","localName","dangerouslySetInnerHTML","PENDING","preload","constructor","result","App","markdown","setMarkdown","path","payload","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","history","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","nodeName","toUpperCase","hasAttribute","eventListenersInitialized","Router","super","addEventListener","static","onChange","const","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","componentWillUpdate","componentDidUpdate","invoke","prepareVNodeForRanking","sort","pathRankSort","map","matches","exec","newProps","assign","Boolean","active","previous","previousUrl","router","Link","onClick","Route","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","createRef","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","defer","queue","a","b","oldVNode","newDom","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","placeChild","applyRef","toChildArray","out","nextDom","sibDom","outer","insertBefore","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","oldValue","useCapture","nameLower","proxy","cssText","toLowerCase","_listeners","eventProxyCapture","eventProxy","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","reorderChildren","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","componentContext","newType","contextType","doRender","getDerivedStateFromProps","componentWillReceiveProps","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","root","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","attributes","innerHTML","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","IS_HYDRATE","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","isValidElement","ctor","handled","wasHydrating","getDerivedStateFromError","update","Preact","interopDefault","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","decodeURI","CLI_DATA","currentURL","canHydrate"],"mappings":"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","file":"bundle.25769.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"fda69\",\"3\":\"c264f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"e8d99\",\"3\":\"31d6c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/huge-link/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-editor\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-post\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {h} from 'preact'\nimport {useState} from 'preact/hooks'\nimport {Router} from 'preact-router'\n\nimport Editor from './routes/editor'\nimport Post from './routes/post'\n\nimport './style/typography.css'\nimport './style'\n\nconst App = () => {\n const [markdown, setMarkdown] = useState('')\n\n return (
\n \n \n \n \n \n
)\n}\n\nexport default App\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++options._vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../index').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (typeof childVNode == 'string' || typeof childVNode == 'number') {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._dom != null || childVNode._component != null) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tnewDom = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\toldDom = placeChild(\n\t\t\t\tparentDom,\n\t\t\t\tchildVNode,\n\t\t\t\toldVNode,\n\t\t\t\toldChildren,\n\t\t\t\texcessDomChildren,\n\t\t\t\tnewDom,\n\t\t\t\toldDom\n\t\t\t);\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type == 'option') {\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nexport function placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\texcessDomChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\texcessDomChildren == oldVNode ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t// The values only have the same type when `null`.\n\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j 1) {\n\t\t\t\t\treorderChildren(vnode, oldDom, parentDom);\n\t\t\t\t}\n\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tnewVNode._children,\n\t\t\t\t\tnull,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\n\t\t\t\tif (typeof newVNode.type == 'function') {\n\t\t\t\t\tnewVNode._nextDom = oldDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\treorderChildren(newVNode, oldDom, parentDom);\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (newVNode.type === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.childNodes.length\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\tProvider(props, subs, ctx) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tsubs = [];\n\t\t\t\tctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError,\n\t_vnodeId: 0\n};\n\nexport default options;\n","// import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tconst wasHydrating = vnode._hydrating;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\tvnode._hydrating = wasHydrating;\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/bundle.8259f.esm.js b/docs/bundle.ba53f.esm.js similarity index 99% rename from docs/bundle.8259f.esm.js rename to docs/bundle.ba53f.esm.js index a55af5e..821da11 100644 --- a/docs/bundle.8259f.esm.js +++ b/docs/bundle.ba53f.esm.js @@ -1,2 +1,2 @@ -!function(t){function n(n){for(var e,r,o=n[0],u=n[1],_=0,l=[];_=e.__.length&&e.__.push({}),e.__[t]}function o(t){return x=1,i(g,t)}function i(t,n,e){var o=r(b++,2);return o.t=t,o.__c||(o.__=[e?e(n):g(void 0,n),function(t){var n=o.t(o.__[0],t);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}],o.__c=k),o.__}function u(t,n){var e=r(b++,3);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__H.__h.push(e))}function _(t,n){var e=r(b++,4);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__h.push(e))}function l(t){return x=5,a((function(){return{current:t}}),[])}function c(t,n,e){x=6,_((function(){"function"==typeof t?t(n()):t&&(t.current=n())}),null==e?e:e.concat(t))}function a(t,n){var e=r(b++,7);return m(e.__H,n)&&(e.__=t(),e.__H=n,e.__h=t),e.__}function f(t,n){return x=8,a((function(){return t}),n)}function s(t){var n=k.context[t.__c],e=r(b++,9);return e.__c=t,n?(null==e.__&&(e.__=!0,n.sub(k)),n.props.value):t.__}function p(t,n){w.options.useDebugValue&&w.options.useDebugValue(n?n(t):t)}function h(t){var n=r(b++,10),e=o();return n.__=t,k.componentDidCatch||(k.componentDidCatch=function(t){n.__&&n.__(t),e[1](t)}),[e[0],function(){e[1](void 0)}]}function d(){A.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(v),t.__H.__h.forEach(y),t.__H.__h=[]}catch(n){t.__H.__h=[],w.options.__e(n,t.__v)}})),A=[]}function v(t){var n=k;"function"==typeof t.__c&&t.__c(),k=n}function y(t){var n=k;t.__c=t.__(),k=n}function m(t,n){return!t||t.length!==n.length||n.some((function(n,e){return n!==t[e]}))}function g(t,n){return"function"==typeof n?n(t):n}e.d(n,"k",(function(){return o})),e.d(n,"i",(function(){return i})),e.d(n,"d",(function(){return u})),e.d(n,"g",(function(){return _})),e.d(n,"j",(function(){return l})),e.d(n,"f",(function(){return c})),e.d(n,"h",(function(){return a})),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return s})),e.d(n,"c",(function(){return p})),e.d(n,"e",(function(){return h}));var b,k,C,w=e("hosL"),x=0,A=[],O=w.options.__b,E=w.options.__r,S=w.options.diffed,P=w.options.__c,j=w.options.unmount;w.options.__b=function(t){k=null,O&&O(t)},w.options.__r=function(t){E&&E(t),b=0;var n=(k=t.__c).__H;n&&(n.__h.forEach(v),n.__h.forEach(y),n.__h=[])},w.options.diffed=function(t){S&&S(t);var n=t.__c;n&&n.__H&&n.__H.__h.length&&(1!==A.push(n)&&C===w.options.requestAnimationFrame||((C=w.options.requestAnimationFrame)||function(t){var n,e=function(){clearTimeout(r),T&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);T&&(n=requestAnimationFrame(e))})(d)),k=void 0},w.options.__c=function(t,n){n.some((function(t){try{t.__h.forEach(v),t.__h=t.__h.filter((function(t){return!t.__||y(t)}))}catch(e){n.some((function(t){t.__h&&(t.__h=[])})),n=[],w.options.__e(e,t.__v)}})),P&&P(t,n)},w.options.unmount=function(t){j&&j(t);var n=t.__c;if(n&&n.__H)try{n.__H.__.forEach(v)}catch(t){w.options.__e(t,n.__v)}};var T="function"==typeof requestAnimationFrame},QfWi:function(t,n,e){"use strict";function r(t){function n(){i.Component.call(this),e||(this.componentWillMount=()=>{t(t=>{e=t&&t.default||t,this.setState({})})},this.shouldComponentUpdate=()=>null!=e),this.render=t=>{if(e)return Object(i.h)(e,t);const n=function t(n,e){if("string"==typeof n.type)return null;const r=n.__;if(!r)return;let o=r.__k;if(o){Array.isArray(o)||(o=[o]);let e=o.indexOf(n);-1===e&&(e=o.length);for(let n=e;n--;){const e=o[n],r=e&&e.__e||t(e,!0);if(r)return r}}return e?void 0:t(r)}(this.__v),r=n&&n.nextSibling||(this.__P||this._parentDom).firstChild;return r&&Object(i.h)(r.localName,{dangerouslySetInnerHTML:l})}}let e;return n.preload=t,(n.prototype=new i.Component).constructor=n,n}function o(){return(o=Object.assign||function(t){for(var n=1;n{const[t,n]=Object(u.k)("");return Object(i.h)("main",null,Object(i.h)(_.Router,null,Object(i.h)(c,o({path:"/huge-link/",markdown:t},{setMarkdown:n})),Object(i.h)(a,o({path:"/huge-link/preview/",mode:"preview",payload:t},{setMarkdown:n})),Object(i.h)(a,o({path:"/huge-link/p/:payload",mode:"post"},{setMarkdown:n}))))}},Y3FI:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t,n,e){var r,o=/(?:\?([^#]*))?(#.*)?$/,i=t.match(o),u={};if(i&&i[1])for(var l=i[1].split("&"),c=0;cn.rank?-1:t.index-n.index}function u(t,n){return t.index=n,t.rank=function(t){return t.props.default?0:(n=t.props.path,_(n).map(l).join(""));var n}(t),t.props}function _(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function l(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function c(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:k).pathname||"")+(t.search||"")}function a(t,n){return void 0===n&&(n=!1),"string"!=typeof t&&t.url&&(n=t.replace,t=t.url),function(t){for(var n=g.length;n--;)if(g[n].canRoute(t))return!0;return!1}(t)&&function(t,n){void 0===n&&(n="push"),m&&m[n]?m[n](t):"undefined"!=typeof history&&history[n+"State"]&&history[n+"State"](null,null,t)}(t,n?"replace":"push"),f(t)}function f(t){for(var n=!1,e=0;e0},n.prototype.routeTo=function(t){this.setState({url:t});var n=this.canRoute(t);return this.updating||this.forceUpdate(),n},n.prototype.componentWillMount=function(){g.push(this),this.updating=!0},n.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(n){t.routeTo(""+(n.pathname||"")+(n.search||""))}))),this.updating=!1},n.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},n.prototype.componentWillUpdate=function(){this.updating=!0},n.prototype.componentDidUpdate=function(){this.updating=!1},n.prototype.getMatchingChildren=function(t,n,e){return t.filter(u).sort(i).map((function(t){var i=o(n,t.props.path,t.props);if(i){if(!1!==e){var u={url:n,matches:i};return r(u,i),delete u.ref,delete u.key,Object(v.cloneElement)(t,u)}return t}})).filter(Boolean)},n.prototype.render=function(t,n){var e=t.children,r=t.onChange,o=n.url,i=this.getMatchingChildren(Object(v.toChildArray)(e),o,!0),u=i[0]||null,_=this.previousUrl;return o!==_&&(this.previousUrl=o,"function"==typeof r&&r({router:this,url:o,previous:_,active:i,current:u})),u},n}(v.Component),x=function(t){return Object(v.createElement)("a",r({onClick:p},t))},A=function(t){return Object(v.createElement)(t.component,t)};w.subscribers=b,w.getCurrentUrl=c,w.route=a,w.Router=w,w.Route=A,w.Link=x,w.exec=o,n.default=w},hosL:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t){var n=t.parentNode;n&&n.removeChild(t)}function i(t,n,e){var r,o,i,_=arguments,l={};for(i in n)"key"==i?r=n[i]:"ref"==i?o=n[i]:l[i]=n[i];if(arguments.length>3)for(e=[e],i=3;i1&&k(o,n,e),n=v(e,o,o,t.__k,null,o.__e,n),"function"==typeof t.type&&(t.__d=n)))}function C(t,n,e,o,i,u,_,a,f){var s,p,d,v,y,m,g,b,C,w,A,O=n.type;if(void 0!==n.constructor)return null;null!=e.__h&&(f=e.__h,a=n.__e=e.__e,n.__h=null,u=[a]),(s=L.__b)&&s(n);try{t:if("function"==typeof O){if(b=n.props,C=(s=O.contextType)&&o[s.__c],w=s?C?C.props.value:s.__:o,e.__c?g=(p=n.__c=e.__c).__=p.__E:("prototype"in O&&O.prototype.render?n.__c=p=new O(b,w):(n.__c=p=new c(b,w),p.constructor=O,p.render=E),C&&C.sub(p),p.props=b,p.state||(p.state={}),p.context=w,p.__n=o,d=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=O.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=r({},p.__s)),r(p.__s,O.getDerivedStateFromProps(b,p.__s))),v=p.props,y=p.state,d)null==O.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==O.getDerivedStateFromProps&&b!==v&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(b,w),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(b,p.__s,w)||n.__v===e.__v){p.props=b,p.state=p.__s,n.__v!==e.__v&&(p.__d=!1),p.__v=n,n.__e=e.__e,n.__k=e.__k,p.__h.length&&_.push(p),k(n,a,t);break t}null!=p.componentWillUpdate&&p.componentWillUpdate(b,p.__s,w),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(v,y,m)}))}p.context=w,p.props=b,p.state=p.__s,(s=L.__r)&&s(n),p.__d=!1,p.__v=n,p.__P=t,s=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=r(r({},o),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(v,y)),A=null!=s&&s.type==l&&null==s.key?s.props.children:s,h(t,Array.isArray(A)?A:[A],n,e,o,i,u,_,a,f),p.base=n.__e,n.__h=null,p.__h.length&&_.push(p),g&&(p.__E=p.__=null),p.__e=!1}else null==u&&n.__v===e.__v?(n.__k=e.__k,n.__e=e.__e):n.__e=x(e.__e,n,e,o,i,u,_,f);(s=L.diffed)&&s(n)}catch(t){n.__v=null,(f||null!=u)&&(n.__e=a,n.__h=!!f,u[u.indexOf(a)]=null),L.__e(t,n,e)}return n.__e}function w(t,n){L.__c&&L.__c(n,t),t.some((function(n){try{t=n.__h,n.__h=[],t.some((function(t){t.call(n)}))}catch(t){L.__e(t,n.__v)}}))}function x(t,n,e,r,o,i,u,_){var l,c,a,f,s,p=e.props,d=n.props;if(o="svg"===n.type||o,null!=i)for(l=0;l3)for(e=[e],_=3;_t&&t.default?t.default:t,l=t=>"/"===t[t.length-1]?t:t+"/";if("serviceWorker"in navigator&&navigator.serviceWorker.register(e.p+"sw-esm.js"),"function"==typeof _(e("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;0,(()=>{let n=_(e("QfWi")),r={};const c=document.querySelector('[type="__PREACT_CLI_DATA__"]');c&&(r=JSON.parse(decodeURI(c.innerHTML)).preRenderData||r);const a={preRenderData:r},f=r.url?l(r.url):"",s=u&&f===l(location.pathname);t=(s?u:i)(o(n,{CLI_DATA:a}),document.body,t)})()}},pRls:function(){}}); -//# sourceMappingURL=bundle.8259f.esm.js.map \ No newline at end of file +!function(t){function n(n){for(var e,r,o=n[0],u=n[1],_=0,l=[];_=e.__.length&&e.__.push({}),e.__[t]}function o(t){return x=1,i(g,t)}function i(t,n,e){var o=r(b++,2);return o.t=t,o.__c||(o.__=[e?e(n):g(void 0,n),function(t){var n=o.t(o.__[0],t);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}],o.__c=k),o.__}function u(t,n){var e=r(b++,3);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__H.__h.push(e))}function _(t,n){var e=r(b++,4);!w.options.__s&&m(e.__H,n)&&(e.__=t,e.__H=n,k.__h.push(e))}function l(t){return x=5,a((function(){return{current:t}}),[])}function c(t,n,e){x=6,_((function(){"function"==typeof t?t(n()):t&&(t.current=n())}),null==e?e:e.concat(t))}function a(t,n){var e=r(b++,7);return m(e.__H,n)&&(e.__=t(),e.__H=n,e.__h=t),e.__}function f(t,n){return x=8,a((function(){return t}),n)}function s(t){var n=k.context[t.__c],e=r(b++,9);return e.__c=t,n?(null==e.__&&(e.__=!0,n.sub(k)),n.props.value):t.__}function p(t,n){w.options.useDebugValue&&w.options.useDebugValue(n?n(t):t)}function h(t){var n=r(b++,10),e=o();return n.__=t,k.componentDidCatch||(k.componentDidCatch=function(t){n.__&&n.__(t),e[1](t)}),[e[0],function(){e[1](void 0)}]}function d(){A.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(v),t.__H.__h.forEach(y),t.__H.__h=[]}catch(n){t.__H.__h=[],w.options.__e(n,t.__v)}})),A=[]}function v(t){var n=k;"function"==typeof t.__c&&t.__c(),k=n}function y(t){var n=k;t.__c=t.__(),k=n}function m(t,n){return!t||t.length!==n.length||n.some((function(n,e){return n!==t[e]}))}function g(t,n){return"function"==typeof n?n(t):n}e.d(n,"k",(function(){return o})),e.d(n,"i",(function(){return i})),e.d(n,"d",(function(){return u})),e.d(n,"g",(function(){return _})),e.d(n,"j",(function(){return l})),e.d(n,"f",(function(){return c})),e.d(n,"h",(function(){return a})),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return s})),e.d(n,"c",(function(){return p})),e.d(n,"e",(function(){return h}));var b,k,C,w=e("hosL"),x=0,A=[],O=w.options.__b,E=w.options.__r,S=w.options.diffed,P=w.options.__c,j=w.options.unmount;w.options.__b=function(t){k=null,O&&O(t)},w.options.__r=function(t){E&&E(t),b=0;var n=(k=t.__c).__H;n&&(n.__h.forEach(v),n.__h.forEach(y),n.__h=[])},w.options.diffed=function(t){S&&S(t);var n=t.__c;n&&n.__H&&n.__H.__h.length&&(1!==A.push(n)&&C===w.options.requestAnimationFrame||((C=w.options.requestAnimationFrame)||function(t){var n,e=function(){clearTimeout(r),T&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);T&&(n=requestAnimationFrame(e))})(d)),k=void 0},w.options.__c=function(t,n){n.some((function(t){try{t.__h.forEach(v),t.__h=t.__h.filter((function(t){return!t.__||y(t)}))}catch(e){n.some((function(t){t.__h&&(t.__h=[])})),n=[],w.options.__e(e,t.__v)}})),P&&P(t,n)},w.options.unmount=function(t){j&&j(t);var n=t.__c;if(n&&n.__H)try{n.__H.__.forEach(v)}catch(t){w.options.__e(t,n.__v)}};var T="function"==typeof requestAnimationFrame},QfWi:function(t,n,e){"use strict";function r(t){function n(){i.Component.call(this),e||(this.componentWillMount=()=>{t(t=>{e=t&&t.default||t,this.setState({})})},this.shouldComponentUpdate=()=>null!=e),this.render=t=>{if(e)return Object(i.h)(e,t);const n=function t(n,e){if("string"==typeof n.type)return null;const r=n.__;if(!r)return;let o=r.__k;if(o){Array.isArray(o)||(o=[o]);let e=o.indexOf(n);-1===e&&(e=o.length);for(let n=e;n--;){const e=o[n],r=e&&e.__e||t(e,!0);if(r)return r}}return e?void 0:t(r)}(this.__v),r=n&&n.nextSibling||(this.__P||this._parentDom).firstChild;return r&&Object(i.h)(r.localName,{dangerouslySetInnerHTML:l})}}let e;return n.preload=t,(n.prototype=new i.Component).constructor=n,n}function o(){return(o=Object.assign||function(t){for(var n=1;n{const[t,n]=Object(u.k)("");return Object(i.h)("main",null,Object(i.h)(_.Router,null,Object(i.h)(c,o({path:"/huge-link/",markdown:t},{setMarkdown:n})),Object(i.h)(a,o({path:"/huge-link/preview/",mode:"preview",payload:t},{setMarkdown:n})),Object(i.h)(a,o({path:"/huge-link/p/:payload",mode:"post"},{setMarkdown:n}))))}},Y3FI:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t,n,e){var r,o=/(?:\?([^#]*))?(#.*)?$/,i=t.match(o),u={};if(i&&i[1])for(var l=i[1].split("&"),c=0;cn.rank?-1:t.index-n.index}function u(t,n){return t.index=n,t.rank=function(t){return t.props.default?0:(n=t.props.path,_(n).map(l).join(""));var n}(t),t.props}function _(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function l(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function c(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:k).pathname||"")+(t.search||"")}function a(t,n){return void 0===n&&(n=!1),"string"!=typeof t&&t.url&&(n=t.replace,t=t.url),function(t){for(var n=g.length;n--;)if(g[n].canRoute(t))return!0;return!1}(t)&&function(t,n){void 0===n&&(n="push"),m&&m[n]?m[n](t):"undefined"!=typeof history&&history[n+"State"]&&history[n+"State"](null,null,t)}(t,n?"replace":"push"),f(t)}function f(t){for(var n=!1,e=0;e0},n.prototype.routeTo=function(t){this.setState({url:t});var n=this.canRoute(t);return this.updating||this.forceUpdate(),n},n.prototype.componentWillMount=function(){g.push(this),this.updating=!0},n.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(n){t.routeTo(""+(n.pathname||"")+(n.search||""))}))),this.updating=!1},n.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},n.prototype.componentWillUpdate=function(){this.updating=!0},n.prototype.componentDidUpdate=function(){this.updating=!1},n.prototype.getMatchingChildren=function(t,n,e){return t.filter(u).sort(i).map((function(t){var i=o(n,t.props.path,t.props);if(i){if(!1!==e){var u={url:n,matches:i};return r(u,i),delete u.ref,delete u.key,Object(v.cloneElement)(t,u)}return t}})).filter(Boolean)},n.prototype.render=function(t,n){var e=t.children,r=t.onChange,o=n.url,i=this.getMatchingChildren(Object(v.toChildArray)(e),o,!0),u=i[0]||null,_=this.previousUrl;return o!==_&&(this.previousUrl=o,"function"==typeof r&&r({router:this,url:o,previous:_,active:i,current:u})),u},n}(v.Component),x=function(t){return Object(v.createElement)("a",r({onClick:p},t))},A=function(t){return Object(v.createElement)(t.component,t)};w.subscribers=b,w.getCurrentUrl=c,w.route=a,w.Router=w,w.Route=A,w.Link=x,w.exec=o,n.default=w},hosL:function(t,n,e){"use strict";function r(t,n){for(var e in n)t[e]=n[e];return t}function o(t){var n=t.parentNode;n&&n.removeChild(t)}function i(t,n,e){var r,o,i,_=arguments,l={};for(i in n)"key"==i?r=n[i]:"ref"==i?o=n[i]:l[i]=n[i];if(arguments.length>3)for(e=[e],i=3;i1&&k(o,n,e),n=v(e,o,o,t.__k,null,o.__e,n),"function"==typeof t.type&&(t.__d=n)))}function C(t,n,e,o,i,u,_,a,f){var s,p,d,v,y,m,g,b,C,w,A,O=n.type;if(void 0!==n.constructor)return null;null!=e.__h&&(f=e.__h,a=n.__e=e.__e,n.__h=null,u=[a]),(s=L.__b)&&s(n);try{t:if("function"==typeof O){if(b=n.props,C=(s=O.contextType)&&o[s.__c],w=s?C?C.props.value:s.__:o,e.__c?g=(p=n.__c=e.__c).__=p.__E:("prototype"in O&&O.prototype.render?n.__c=p=new O(b,w):(n.__c=p=new c(b,w),p.constructor=O,p.render=E),C&&C.sub(p),p.props=b,p.state||(p.state={}),p.context=w,p.__n=o,d=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=O.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=r({},p.__s)),r(p.__s,O.getDerivedStateFromProps(b,p.__s))),v=p.props,y=p.state,d)null==O.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==O.getDerivedStateFromProps&&b!==v&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(b,w),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(b,p.__s,w)||n.__v===e.__v){p.props=b,p.state=p.__s,n.__v!==e.__v&&(p.__d=!1),p.__v=n,n.__e=e.__e,n.__k=e.__k,p.__h.length&&_.push(p),k(n,a,t);break t}null!=p.componentWillUpdate&&p.componentWillUpdate(b,p.__s,w),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(v,y,m)}))}p.context=w,p.props=b,p.state=p.__s,(s=L.__r)&&s(n),p.__d=!1,p.__v=n,p.__P=t,s=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=r(r({},o),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(v,y)),A=null!=s&&s.type==l&&null==s.key?s.props.children:s,h(t,Array.isArray(A)?A:[A],n,e,o,i,u,_,a,f),p.base=n.__e,n.__h=null,p.__h.length&&_.push(p),g&&(p.__E=p.__=null),p.__e=!1}else null==u&&n.__v===e.__v?(n.__k=e.__k,n.__e=e.__e):n.__e=x(e.__e,n,e,o,i,u,_,f);(s=L.diffed)&&s(n)}catch(t){n.__v=null,(f||null!=u)&&(n.__e=a,n.__h=!!f,u[u.indexOf(a)]=null),L.__e(t,n,e)}return n.__e}function w(t,n){L.__c&&L.__c(n,t),t.some((function(n){try{t=n.__h,n.__h=[],t.some((function(t){t.call(n)}))}catch(t){L.__e(t,n.__v)}}))}function x(t,n,e,r,o,i,u,_){var l,c,a,f,s,p=e.props,d=n.props;if(o="svg"===n.type||o,null!=i)for(l=0;l3)for(e=[e],_=3;_t&&t.default?t.default:t,l=t=>"/"===t[t.length-1]?t:t+"/";if("serviceWorker"in navigator&&navigator.serviceWorker.register(e.p+"sw-esm.js"),"function"==typeof _(e("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;0,(()=>{let n=_(e("QfWi")),r={};const c=document.querySelector('[type="__PREACT_CLI_DATA__"]');c&&(r=JSON.parse(decodeURI(c.innerHTML)).preRenderData||r);const a={preRenderData:r},f=r.url?l(r.url):"",s=u&&f===l(location.pathname);t=(s?u:i)(o(n,{CLI_DATA:a}),document.body,t)})()}},pRls:function(){}}); +//# sourceMappingURL=bundle.ba53f.esm.js.map \ No newline at end of file diff --git a/docs/bundle.8259f.esm.js.map b/docs/bundle.ba53f.esm.js.map similarity index 99% rename from docs/bundle.8259f.esm.js.map rename to docs/bundle.ba53f.esm.js.map index 9598852..47c4440 100644 --- a/docs/bundle.8259f.esm.js.map +++ b/docs/bundle.ba53f.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../src/index.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./routes/editor/index.js?5cf4","webpack:///./routes/post/index.js?01a5","webpack:///./index.js","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","0","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","getHookState","index","options","currentComponent","currentHook","hooks","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","props","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","flushAfterPaintEffects","afterPaintEffects","forEach","component","invokeCleanup","invokeEffect","hook","comp","oldArgs","newArgs","some","arg","f","prevRaf","oldBeforeDiff","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","vnode","requestAnimationFrame","raf","done","HAS_RAF","cancelAnimationFrame","commitQueue","filter","async","load","AsyncComponent","Component","this","componentWillMount","mod","default","shouldComponentUpdate","render","h","prev","getPreviousSibling","inner","parent","__","children","__k","Array","isArray","end","indexOf","child","dom","__e","__v","me","nextSibling","__P","_parentDom","firstChild","localName","dangerouslySetInnerHTML","PENDING","preload","constructor","result","App","markdown","setMarkdown","path","payload","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","history","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","nodeName","toUpperCase","hasAttribute","eventListenersInitialized","Router","super","addEventListener","static","onChange","const","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","componentWillUpdate","componentDidUpdate","invoke","prepareVNodeForRanking","sort","pathRankSort","map","matches","exec","newProps","assign","Boolean","active","previous","previousUrl","router","Link","onClick","Route","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","createRef","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","defer","queue","a","b","oldVNode","newDom","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","placeChild","applyRef","toChildArray","out","nextDom","sibDom","outer","insertBefore","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","oldValue","useCapture","nameLower","proxy","cssText","toLowerCase","_listeners","eventProxyCapture","eventProxy","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","reorderChildren","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","componentContext","newType","contextType","doRender","getDerivedStateFromProps","componentWillReceiveProps","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","root","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","attributes","innerHTML","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","IS_HYDRATE","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","isValidElement","ctor","handled","wasHydrating","getDerivedStateFromError","update","Preact","interopDefault","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","decodeURI","CLI_DATA","currentURL","canHydrate"],"mappings":"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","file":"bundle.8259f.esm.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"f6351\",\"3\":\"fd471\"}[chunkId] + \".esm.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"e8d99\",\"3\":\"31d6c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/huge-link/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-editor\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-post\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {h} from 'preact'\nimport {useState} from 'preact/hooks'\nimport {Router} from 'preact-router'\n\nimport Editor from './routes/editor'\nimport Post from './routes/post'\n\nimport './style/typography.css'\nimport './style'\n\nconst App = () => {\n const [markdown, setMarkdown] = useState('')\n\n return (
\n \n \n \n \n \n
)\n}\n\nexport default App\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++options._vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../index').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (typeof childVNode == 'string' || typeof childVNode == 'number') {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._dom != null || childVNode._component != null) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tnewDom = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\toldDom = placeChild(\n\t\t\t\tparentDom,\n\t\t\t\tchildVNode,\n\t\t\t\toldVNode,\n\t\t\t\toldChildren,\n\t\t\t\texcessDomChildren,\n\t\t\t\tnewDom,\n\t\t\t\toldDom\n\t\t\t);\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type == 'option') {\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nexport function placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\texcessDomChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\texcessDomChildren == oldVNode ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t// The values only have the same type when `null`.\n\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j 1) {\n\t\t\t\t\treorderChildren(vnode, oldDom, parentDom);\n\t\t\t\t}\n\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tnewVNode._children,\n\t\t\t\t\tnull,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\n\t\t\t\tif (typeof newVNode.type == 'function') {\n\t\t\t\t\tnewVNode._nextDom = oldDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\treorderChildren(newVNode, oldDom, parentDom);\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (newVNode.type === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.childNodes.length\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\tProvider(props, subs, ctx) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tsubs = [];\n\t\t\t\tctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError,\n\t_vnodeId: 0\n};\n\nexport default options;\n","// import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tconst wasHydrating = vnode._hydrating;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\tvnode._hydrating = wasHydrating;\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../src/index.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./routes/editor/index.js?5cf4","webpack:///./routes/post/index.js?01a5","webpack:///./index.js","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","0","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","getHookState","index","options","currentComponent","currentHook","hooks","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","props","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","flushAfterPaintEffects","afterPaintEffects","forEach","component","invokeCleanup","invokeEffect","hook","comp","oldArgs","newArgs","some","arg","f","prevRaf","oldBeforeDiff","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","vnode","requestAnimationFrame","raf","done","HAS_RAF","cancelAnimationFrame","commitQueue","filter","async","load","AsyncComponent","Component","this","componentWillMount","mod","default","shouldComponentUpdate","render","h","prev","getPreviousSibling","inner","parent","__","children","__k","Array","isArray","end","indexOf","child","dom","__e","__v","me","nextSibling","__P","_parentDom","firstChild","localName","dangerouslySetInnerHTML","PENDING","preload","constructor","result","App","markdown","setMarkdown","path","payload","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","history","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","nodeName","toUpperCase","hasAttribute","eventListenersInitialized","Router","super","addEventListener","static","onChange","const","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","componentWillUpdate","componentDidUpdate","invoke","prepareVNodeForRanking","sort","pathRankSort","map","matches","exec","newProps","assign","Boolean","active","previous","previousUrl","router","Link","onClick","Route","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","createRef","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","defer","queue","a","b","oldVNode","newDom","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","placeChild","applyRef","toChildArray","out","nextDom","sibDom","outer","insertBefore","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","oldValue","useCapture","nameLower","proxy","cssText","toLowerCase","_listeners","eventProxyCapture","eventProxy","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","reorderChildren","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","componentContext","newType","contextType","doRender","getDerivedStateFromProps","componentWillReceiveProps","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","root","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","attributes","innerHTML","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","IS_HYDRATE","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","isValidElement","ctor","handled","wasHydrating","getDerivedStateFromError","update","Preact","interopDefault","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","decodeURI","CLI_DATA","currentURL","canHydrate"],"mappings":"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","file":"bundle.ba53f.esm.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"6c9ac\",\"3\":\"95b49\"}[chunkId] + \".esm.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-editor\",\"3\":\"route-post\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"e8d99\",\"3\":\"31d6c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/huge-link/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-editor\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-post\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {h} from 'preact'\nimport {useState} from 'preact/hooks'\nimport {Router} from 'preact-router'\n\nimport Editor from './routes/editor'\nimport Post from './routes/post'\n\nimport './style/typography.css'\nimport './style'\n\nconst App = () => {\n const [markdown, setMarkdown] = useState('')\n\n return (
\n \n \n \n \n \n
)\n}\n\nexport default App\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++options._vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../index').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (typeof childVNode == 'string' || typeof childVNode == 'number') {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._dom != null || childVNode._component != null) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tnewDom = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\toldDom = placeChild(\n\t\t\t\tparentDom,\n\t\t\t\tchildVNode,\n\t\t\t\toldVNode,\n\t\t\t\toldChildren,\n\t\t\t\texcessDomChildren,\n\t\t\t\tnewDom,\n\t\t\t\toldDom\n\t\t\t);\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type == 'option') {\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nexport function placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\texcessDomChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\texcessDomChildren == oldVNode ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t// The values only have the same type when `null`.\n\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j 1) {\n\t\t\t\t\treorderChildren(vnode, oldDom, parentDom);\n\t\t\t\t}\n\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tnewVNode._children,\n\t\t\t\t\tnull,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\n\t\t\t\tif (typeof newVNode.type == 'function') {\n\t\t\t\t\tnewVNode._nextDom = oldDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\treorderChildren(newVNode, oldDom, parentDom);\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (newVNode.type === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.childNodes.length\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\tProvider(props, subs, ctx) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tsubs = [];\n\t\t\t\tctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError,\n\t_vnodeId: 0\n};\n\nexport default options;\n","// import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tconst wasHydrating = vnode._hydrating;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\tvnode._hydrating = wasHydrating;\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index e0dd62a..282a475 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -huge-link
\ No newline at end of file +huge-link
\ No newline at end of file diff --git a/docs/push-manifest.json b/docs/push-manifest.json index 2be6c90..b953049 100644 --- a/docs/push-manifest.json +++ b/docs/push-manifest.json @@ -1 +1 @@ -{"/":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.8259f.esm.js":{"type":"script","weight":1}},"/editor":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.8259f.esm.js":{"type":"script","weight":1},"route-editor.chunk.f6351.esm.js":{"type":"script","weight":0.9},"route-editor.chunk.e8d99.css":{"type":"style","weight":0.9}},"/post":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.8259f.esm.js":{"type":"script","weight":1},"route-post.chunk.fd471.esm.js":{"type":"script","weight":0.9}}} \ No newline at end of file +{"/":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.ba53f.esm.js":{"type":"script","weight":1}},"/editor":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.ba53f.esm.js":{"type":"script","weight":1},"route-editor.chunk.6c9ac.esm.js":{"type":"script","weight":0.9},"route-editor.chunk.e8d99.css":{"type":"style","weight":0.9}},"/post":{"bundle.47ed9.css":{"type":"style","weight":1},"bundle.ba53f.esm.js":{"type":"script","weight":1},"route-post.chunk.95b49.esm.js":{"type":"script","weight":0.9}}} \ No newline at end of file diff --git a/docs/route-editor.chunk.6c9ac.esm.js b/docs/route-editor.chunk.6c9ac.esm.js new file mode 100644 index 0000000..4e67a03 --- /dev/null +++ b/docs/route-editor.chunk.6c9ac.esm.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{TqeA:function(t,e,n){"use strict";n.r(e);var r=n("hosL"),o=n("ox/y"),a=n("tP7B"),i=n.n(a);e.default=({markdown:t,setMarkdown:e})=>Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:i.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:({target:t})=>e(t.value)},t),Object(r.h)("nav",null,Object(r.h)(o.Link,{href:"/huge-link/preview"},"Preview")))},"ox/y":function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}Object.defineProperty(e,"__esModule",{value:!0}),e.Link=e.Match=void 0;var o=Object.assign||function(t){for(var e=1;e>>0,1)},e.prototype.render=function(t){var e=this.nextUrl||(0,i.getCurrentUrl)(),n=e.replace(/\?.+$/,"");return this.nextUrl=null,t.children({url:e,path:n,matches:!1!==(0,i.exec)(n,t.path,{})})},e}(a.Component),c=function(t){var e=t.activeClassName,n=t.path,r=function(t,e){var n={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}(t,["activeClassName","path"]);return(0,a.h)(s,{path:n||r.href},(function(t){return(0,a.h)(i.Link,o({},r,{class:[r.class||r.className,t.matches&&e].filter(Boolean).join(" ")}))}))};e.Link=c,e.default=s,s.Link=c},tP7B:function(t){t.exports={textarea:"textarea__1UKFm"}}}]); +//# sourceMappingURL=route-editor.chunk.6c9ac.esm.js.map \ No newline at end of file diff --git a/docs/route-editor.chunk.6c9ac.esm.js.map b/docs/route-editor.chunk.6c9ac.esm.js.map new file mode 100644 index 0000000..4c02693 --- /dev/null +++ b/docs/route-editor.chunk.6c9ac.esm.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./routes/editor/index.js","webpack:///../node_modules/preact-router/match.js","webpack:///./routes/editor/style.css"],"names":["Editor","markdown","setMarkdown","class","style","textarea","placeholder","onInput","target","value","href","_possibleConstructorReturn","self","call","ReferenceError","Object","defineProperty","exports","Link","Match","undefined","_extends","assign","i","arguments","length","source","key","prototype","hasOwnProperty","_preact","require","_preactRouter","_Component","_temp","_this","_len","args","Array","_key","this","apply","concat","update","url","nextUrl","setState","subClass","superClass","TypeError","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","componentDidMount","subscribers","push","componentWillUnmount","splice","indexOf","render","props","getCurrentUrl","path","replace","children","matches","exec","Component","_ref","activeClassName","obj","keys","_objectWithoutProperties","h","_ref2","className","filter","Boolean","join","default","module"],"mappings":"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","file":"route-editor.chunk.6c9ac.esm.js","sourcesContent":["import {h} from 'preact'\nimport {Link} from 'preact-router/match'\n\nimport style from './style.css'\n\nconst Editor = ({markdown, setMarkdown}) => (\n
\n

Huge link

\n

\n A minimalist serverless publishing tool\n that allows you to create markdown posts and\n push them to the Web by sharing the link.\n

\n setMarkdown(target.value) }>\n { markdown }\n \n\n \n
)\n\nexport default Editor\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea__1UKFm\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-editor.chunk.c9f0a.js b/docs/route-editor.chunk.c9f0a.js deleted file mode 100644 index 6b06bbb..0000000 --- a/docs/route-editor.chunk.c9f0a.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{TqeA:function(t,e,n){"use strict";n.r(e);var r=n("hosL"),o=n("ox/y"),a=n("tP7B"),i=n.n(a);e.default=function(t){var e=t.markdown,n=t.setMarkdown;return Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:i.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:function(t){return n(t.target.value)}},e),Object(r.h)("nav",null,Object(r.h)(o.Link,{href:"/preview"},"Preview")))}},"ox/y":function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}Object.defineProperty(e,"__esModule",{value:!0}),e.Link=e.Match=void 0;var o=Object.assign||function(t){for(var e=1;e>>0,1)},e.prototype.render=function(t){var e=this.nextUrl||(0,i.getCurrentUrl)(),n=e.replace(/\?.+$/,"");return this.nextUrl=null,t.children({url:e,path:n,matches:!1!==(0,i.exec)(n,t.path,{})})},e}(a.Component),s=function(t){var e=t.activeClassName,n=t.path,r=function(t,e){var n={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}(t,["activeClassName","path"]);return(0,a.h)(c,{path:n||r.href},(function(t){return(0,a.h)(i.Link,o({},r,{class:[r.class||r.className,t.matches&&e].filter(Boolean).join(" ")}))}))};e.Link=s,e.default=c,c.Link=s},tP7B:function(t){t.exports={textarea:"textarea__1UKFm"}}}]); -//# sourceMappingURL=route-editor.chunk.c9f0a.js.map \ No newline at end of file diff --git a/docs/route-editor.chunk.c9f0a.js.map b/docs/route-editor.chunk.c9f0a.js.map deleted file mode 100644 index 0d30c94..0000000 --- a/docs/route-editor.chunk.c9f0a.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./routes/editor/index.js","webpack:///../node_modules/preact-router/match.js","webpack:///./routes/editor/style.css"],"names":["Editor","markdown","setMarkdown","class","style","textarea","placeholder","onInput","target","value","href","_possibleConstructorReturn","self","call","ReferenceError","Object","defineProperty","exports","Link","Match","undefined","_extends","assign","i","arguments","length","source","key","prototype","hasOwnProperty","_preact","require","_preactRouter","_Component","_temp","_this","_len","args","Array","_key","this","apply","concat","update","url","nextUrl","setState","subClass","superClass","TypeError","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","componentDidMount","subscribers","push","componentWillUnmount","splice","indexOf","render","props","getCurrentUrl","path","replace","children","matches","exec","Component","_ref","activeClassName","obj","keys","_objectWithoutProperties","h","_ref2","className","filter","Boolean","join","default","module"],"mappings":"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","file":"route-editor.chunk.c9f0a.js","sourcesContent":["import {h} from 'preact'\nimport {Link} from 'preact-router/match'\n\nimport style from './style.css'\n\nconst Editor = ({markdown, setMarkdown}) => (\n
\n

Huge link

\n

\n A minimalist serverless publishing tool\n that allows you to create markdown posts and\n push them to the Web by sharing the link.\n

\n setMarkdown(target.value) }>\n { markdown }\n \n\n \n
)\n\nexport default Editor\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea__1UKFm\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-editor.chunk.f6351.esm.js b/docs/route-editor.chunk.f6351.esm.js deleted file mode 100644 index 6d098fa..0000000 --- a/docs/route-editor.chunk.f6351.esm.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{TqeA:function(t,e,n){"use strict";n.r(e);var r=n("hosL"),o=n("ox/y"),a=n("tP7B"),i=n.n(a);e.default=({markdown:t,setMarkdown:e})=>Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:i.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:({target:t})=>e(t.value)},t),Object(r.h)("nav",null,Object(r.h)(o.Link,{href:"/preview"},"Preview")))},"ox/y":function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}Object.defineProperty(e,"__esModule",{value:!0}),e.Link=e.Match=void 0;var o=Object.assign||function(t){for(var e=1;e>>0,1)},e.prototype.render=function(t){var e=this.nextUrl||(0,i.getCurrentUrl)(),n=e.replace(/\?.+$/,"");return this.nextUrl=null,t.children({url:e,path:n,matches:!1!==(0,i.exec)(n,t.path,{})})},e}(a.Component),c=function(t){var e=t.activeClassName,n=t.path,r=function(t,e){var n={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}(t,["activeClassName","path"]);return(0,a.h)(s,{path:n||r.href},(function(t){return(0,a.h)(i.Link,o({},r,{class:[r.class||r.className,t.matches&&e].filter(Boolean).join(" ")}))}))};e.Link=c,e.default=s,s.Link=c},tP7B:function(t){t.exports={textarea:"textarea__1UKFm"}}}]); -//# sourceMappingURL=route-editor.chunk.f6351.esm.js.map \ No newline at end of file diff --git a/docs/route-editor.chunk.f6351.esm.js.map b/docs/route-editor.chunk.f6351.esm.js.map deleted file mode 100644 index dd40ed5..0000000 --- a/docs/route-editor.chunk.f6351.esm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./routes/editor/index.js","webpack:///../node_modules/preact-router/match.js","webpack:///./routes/editor/style.css"],"names":["Editor","markdown","setMarkdown","class","style","textarea","placeholder","onInput","target","value","href","_possibleConstructorReturn","self","call","ReferenceError","Object","defineProperty","exports","Link","Match","undefined","_extends","assign","i","arguments","length","source","key","prototype","hasOwnProperty","_preact","require","_preactRouter","_Component","_temp","_this","_len","args","Array","_key","this","apply","concat","update","url","nextUrl","setState","subClass","superClass","TypeError","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","componentDidMount","subscribers","push","componentWillUnmount","splice","indexOf","render","props","getCurrentUrl","path","replace","children","matches","exec","Component","_ref","activeClassName","obj","keys","_objectWithoutProperties","h","_ref2","className","filter","Boolean","join","default","module"],"mappings":"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","file":"route-editor.chunk.f6351.esm.js","sourcesContent":["import {h} from 'preact'\nimport {Link} from 'preact-router/match'\n\nimport style from './style.css'\n\nconst Editor = ({markdown, setMarkdown}) => (\n
\n

Huge link

\n

\n A minimalist serverless publishing tool\n that allows you to create markdown posts and\n push them to the Web by sharing the link.\n

\n setMarkdown(target.value) }>\n { markdown }\n \n\n \n
)\n\nexport default Editor\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea__1UKFm\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-editor.chunk.fda69.js b/docs/route-editor.chunk.fda69.js new file mode 100644 index 0000000..49e6044 --- /dev/null +++ b/docs/route-editor.chunk.fda69.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{TqeA:function(t,e,n){"use strict";n.r(e);var r=n("hosL"),o=n("ox/y"),a=n("tP7B"),i=n.n(a);e.default=function(t){var e=t.markdown,n=t.setMarkdown;return Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:i.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:function(t){return n(t.target.value)}},e),Object(r.h)("nav",null,Object(r.h)(o.Link,{href:"/huge-link/preview"},"Preview")))}},"ox/y":function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}Object.defineProperty(e,"__esModule",{value:!0}),e.Link=e.Match=void 0;var o=Object.assign||function(t){for(var e=1;e>>0,1)},e.prototype.render=function(t){var e=this.nextUrl||(0,i.getCurrentUrl)(),n=e.replace(/\?.+$/,"");return this.nextUrl=null,t.children({url:e,path:n,matches:!1!==(0,i.exec)(n,t.path,{})})},e}(a.Component),s=function(t){var e=t.activeClassName,n=t.path,r=function(t,e){var n={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}(t,["activeClassName","path"]);return(0,a.h)(c,{path:n||r.href},(function(t){return(0,a.h)(i.Link,o({},r,{class:[r.class||r.className,t.matches&&e].filter(Boolean).join(" ")}))}))};e.Link=s,e.default=c,c.Link=s},tP7B:function(t){t.exports={textarea:"textarea__1UKFm"}}}]); +//# sourceMappingURL=route-editor.chunk.fda69.js.map \ No newline at end of file diff --git a/docs/route-editor.chunk.fda69.js.map b/docs/route-editor.chunk.fda69.js.map new file mode 100644 index 0000000..c89f71e --- /dev/null +++ b/docs/route-editor.chunk.fda69.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./routes/editor/index.js","webpack:///../node_modules/preact-router/match.js","webpack:///./routes/editor/style.css"],"names":["Editor","markdown","setMarkdown","class","style","textarea","placeholder","onInput","target","value","href","_possibleConstructorReturn","self","call","ReferenceError","Object","defineProperty","exports","Link","Match","undefined","_extends","assign","i","arguments","length","source","key","prototype","hasOwnProperty","_preact","require","_preactRouter","_Component","_temp","_this","_len","args","Array","_key","this","apply","concat","update","url","nextUrl","setState","subClass","superClass","TypeError","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","componentDidMount","subscribers","push","componentWillUnmount","splice","indexOf","render","props","getCurrentUrl","path","replace","children","matches","exec","Component","_ref","activeClassName","obj","keys","_objectWithoutProperties","h","_ref2","className","filter","Boolean","join","default","module"],"mappings":"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","file":"route-editor.chunk.fda69.js","sourcesContent":["import {h} from 'preact'\nimport {Link} from 'preact-router/match'\n\nimport style from './style.css'\n\nconst Editor = ({markdown, setMarkdown}) => (\n
\n

Huge link

\n

\n A minimalist serverless publishing tool\n that allows you to create markdown posts and\n push them to the Web by sharing the link.\n

\n setMarkdown(target.value) }>\n { markdown }\n \n\n \n
)\n\nexport default Editor\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea__1UKFm\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-post.chunk.fd471.esm.js b/docs/route-post.chunk.95b49.esm.js similarity index 68% rename from docs/route-post.chunk.fd471.esm.js rename to docs/route-post.chunk.95b49.esm.js index ef0aaec..01ce7a8 100644 --- a/docs/route-post.chunk.fd471.esm.js +++ b/docs/route-post.chunk.95b49.esm.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"0+f6":function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n("Ck5b"),o=n("6zBE"),u=n("gbxV"),c=n("mTjI"),s=r(i);e.exports={name:"characterReference",tokenize:function(e,t,n){function r(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),i):(e.enter("characterReferenceValue"),l=31,f=o,a(t))}function i(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),l=6,f=c,a):(e.enter("characterReferenceValue"),l=7,f=u,a(t))}function a(r){var i;return 59===r&&d?(i=e.exit("characterReferenceValue"),f!==o||s.default(p.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(r),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(r)):f(r)&&d++-1||o(c.events,"linePrefix")<4?e.interrupt(c.parser.constructs.flow,n,t)(i):t(i)}var c=this;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i(e,u,"linePrefix")}},partial:!0};e.exports=c},"1hwd":function(e){e.exports=function(){for(var e={},n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return r(e,"definition",(function(e){var n=e.identifier.toUpperCase();n in t||(t[n]={href:e.url,title:e.title})})),t}},"2sHR":function(e,t,n){"use strict";e.exports=n("i8V1")},"3d/4":function(e,t,n){"use strict";function r(e,t){return s(e,i(t),t.children)}function i(e){var t=e["data-sourcepos"];return t?{"data-sourcepos":t}:{}}var o=n("1hwd"),u=n("l8WD"),c=parseInt((u.version||"16").slice(0,2),10)>=16,s=u.createElement;e.exports={break:"br",paragraph:"p",emphasis:"em",strong:"strong",thematicBreak:"hr",blockquote:"blockquote",delete:"del",link:"a",image:"img",linkReference:"a",imageReference:"img",table:r.bind(null,"table"),tableHead:r.bind(null,"thead"),tableBody:r.bind(null,"tbody"),tableRow:r.bind(null,"tr"),tableCell:function(e){var t=e.align?{textAlign:e.align}:void 0,n=i(e);return s(e.isHeader?"th":"td",t?o({style:t},n):n,e.children)},root:function(e){var t=e.className;return s(!t&&u.Fragment||"div",t?{className:t}:null,e.children)},text:function(e){var t=e.children||"";return c?t:s("span",null,t)},list:function(e){var t=i(e);return null!==e.start&&1!==e.start&&void 0!==e.start&&(t.start=e.start.toString()),s(e.ordered?"ol":"ul",t,e.children)},listItem:function(e){var t=null;return null!=e.checked&&(t=s("input",{type:"checkbox",checked:e.checked,readOnly:!0})),s("li",i(e),t,e.children)},definition:function(){return null},heading:function(e){return s("h".concat(e.level),i(e),e.children)},inlineCode:function(e){return s("code",i(e),e.children)},code:function(e){var t=e.language&&"language-".concat(e.language),n=s("code",t?{className:t}:null,e.value);return s("pre",i(e),n)},html:function(e){if(e.skipHtml)return null;var t=e.isBlock?"div":"span";return e.allowDangerousHtml||!1===e.escapeHtml?s(t,{dangerouslySetInnerHTML:{__html:e.value}}):s(u.Fragment||t,null,e.value)},virtualHtml:function(e){return s(e.tag,i(e),e.children)},parsedHtml:function(e){return e["data-sourcepos"]?u.cloneElement(e.element,{"data-sourcepos":e["data-sourcepos"]}):e.element}}},"3nVo":function(e,t,n){"use strict";var r=n("BcHT"),i=n("isG3"),o=n("pi/J"),u=n("WJEV"),c=n("VNaL"),s=n("l3jb"),a=n("vJla"),l=n("NFok");e.exports=function(e){function t(e){return function(t){return a(n,e,t)}}var n={defined:[],constructs:s([l].concat(r((e||{}).extensions))),content:t(i),document:t(o),flow:t(u),string:t(c.string),text:t(c.text)};return n}},"4kIE":function(e){"use strict";e.exports=function(e){return e<-2}},"6zBE":function(e,t,n){"use strict";var r=n("OF0j")(/[\dA-Za-z]/);e.exports=r},"7kD2":function(e,t,n){"use strict";function r(e){var t=e.children;e.children=[{type:"tableHead",align:e.align,children:[t[0]],position:t[0].position}],t.length>1&&e.children.push({type:"tableBody",align:e.align,children:t.slice(1),position:{start:t[1].position.start,end:t[t.length-1].position.end}})}var i=n("BN5T");e.exports=function(e){return i(e,"table",r),e}},"7sXb":function(e,t,n){"use strict";var r=n("pMvH");e.exports=function(e,t,n,i){function o(i){return r(i)&&c++13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535==(65535&n)||65534==(65535&n)||n>1114111?"�":r(n)}},BN5T:function(e,t,n){"use strict";function r(e,t,n,r){"function"==typeof t&&"function"!=typeof n&&(r=n,n=t,t=null),i(e,t,(function(e,t){var r=t[t.length-1],i=r?r.children.indexOf(e):null;return n(e,i,r)}),r)}e.exports=r;var i=n("kqyo"),o=i.SKIP,u=i.EXIT;r.CONTINUE=i.CONTINUE,r.SKIP=o,r.EXIT=u},BcHT:function(e){"use strict";e.exports=function(e){return null==e?[]:"length"in e?e:[e]}},Bdgx:function(e,t,n){"use strict";var r=n("4kIE");e.exports={name:"codeText",tokenize:function(e,t,n){function i(t){return 96===t?(e.consume(t),l++,i):(e.exit("codeTextSequence"),o(t))}function o(t){return null===t?n(t):96===t?(a=e.enter("codeTextSequence"),s=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),o):r(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o):(e.enter("codeTextData"),u(t))}function u(t){return null===t||32===t||96===t||r(t)?(e.exit("codeTextData"),o(t)):(e.consume(t),u)}function c(n){return 96===n?(e.consume(n),s++,c):s===l?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(a.type="codeTextData",u(n))}var s,a,l=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),i(t)}},resolve:function(e){var t,n,r=e.length-4,i=3;if(!("lineEnding"!==e[i][1].type&&"space"!==e[i][1].type||"lineEnding"!==e[r][1].type&&"space"!==e[r][1].type))for(t=i;++t>>8,n[2*r+1]=u%256}return n},decompressFromUint8Array:function(e){if(null==e)return o.decompress(e);for(var n=new Array(e.length/2),r=0,i=n.length;r>=1}else{for(i=1,r=0;r>=1}0==--f&&(f=Math.pow(2,d),d++),delete c[l]}else for(i=u[l],r=0;r>=1;0==--f&&(f=Math.pow(2,d),d++),u[a]=p++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(c,l)){if(l.charCodeAt(0)<256){for(r=0;r>=1}else{for(i=1,r=0;r>=1}0==--f&&(f=Math.pow(2,d),d++),delete c[l]}else for(i=u[l],r=0;r>=1;0==--f&&(f=Math.pow(2,d),d++)}for(i=2,r=0;r>=1;for(;;){if(m<<=1,v==t-1){h.push(n(m));break}v++}return h.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(e,n,r){var i,o,u,c,s,a,l,f=[],p=4,d=4,h=3,m="",v=[],g={val:r(0),position:n,index:1};for(i=0;i<3;i+=1)f[i]=i;for(u=0,s=Math.pow(2,2),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;switch(u){case 0:for(u=0,s=Math.pow(2,8),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;l=t(u);break;case 1:for(u=0,s=Math.pow(2,16),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;l=t(u);break;case 2:return""}for(f[3]=l,o=l,v.push(l);;){if(g.index>e)return"";for(u=0,s=Math.pow(2,h),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;switch(l=u){case 0:for(u=0,s=Math.pow(2,8),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;f[d++]=t(u),l=d-1,p--;break;case 1:for(u=0,s=Math.pow(2,16),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;f[d++]=t(u),l=d-1,p--;break;case 2:return v.join("")}if(0==p&&(p=Math.pow(2,h),h++),f[l])m=f[l];else{if(l!==d)return null;m=o+o.charAt(0)}v.push(m),f[d++]=o+m.charAt(0),o=m,0==--p&&(p=Math.pow(2,h),h++)}}};return o}();void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)},E02R:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},EbX1:function(e){function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},Ek7W:function(e,t,n){"use strict";var r=n("m5ak");e.exports=function(e){return r({},e)}},EsqR:function(e,t,n){"use strict";var r=n("pMvH"),i=n("7sXb"),o={name:"blockQuote",tokenize:function(e,t,n){function i(n){return r(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}var o=this;return function(t){return 62===t?(o.containerState.open||(e.enter("blockQuote",{_container:!0}),o.containerState.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i):n(t)}},continuation:{tokenize:function(e,t,n){return i(e,e.attempt(o,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=o},FsDf:function(e){"use strict";e.exports=function(e,t){var n,r=t.start._index,i=t.start._bufferIndex,o=t.end._index,u=t.end._bufferIndex;return r===o?n=[e[r].slice(i,u)]:(n=e.slice(r,o),i>-1&&(n[0]=n[0].slice(i)),u>0&&n.push(e[o].slice(0,u))),n}},GZPr:function(e){"use strict";var t=["http","https","mailto","tel"];e.exports=function(e){var n=(e||"").trim(),r=n.charAt(0);if("#"===r||"/"===r)return n;var i=n.indexOf(":");if(-1===i)return n;for(var o=t.length,u=-1;++uu||-1!==(u=n.indexOf("#"))&&i>u?n:"javascript:void(0)"}},Gthe:function(e,t,n){"use strict";var r=n("OF0j")(/[#-'*+\--9=?A-Z^-~]/);e.exports=r},H5je:function(e,t,n){"use strict";var r=n("hKxf");e.exports=function(e,t){var n=e[e.length-1];return n&&n[1].type===t?r(n[2].sliceStream(n[1])):0}},INXP:function(e){"use strict";e.exports=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/},Iacx:function(e){"use strict";var t=[].slice;e.exports=function(e,n){function r(){o||(o=!0,n.apply(null,arguments))}function i(e){r(null,e)}var o;return function(){var n,u=t.call(arguments,0),c=e.length>u.length;c&&u.push(r);try{n=e.apply(null,u)}catch(e){if(c&&o)throw e;return r(e)}c||(n&&"function"==typeof n.then?n.then(i,r):n instanceof Error?r(n):i(n))}}},JdhB:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH"),o=n("7sXb");e.exports={name:"thematicBreak",tokenize:function(e,t,n){function u(l){return l===s?(e.enter("thematicBreakSequence"),c(l)):i(l)?o(e,u,"whitespace")(l):a<3||null!==l&&!r(l)?n(l):(e.exit("thematicBreak"),t(l))}function c(t){return t===s?(e.consume(t),a++,c):(e.exit("thematicBreakSequence"),u(t))}var s,a=0;return function(t){return e.enter("thematicBreak"),s=t,u(t)}}}},K4HH:function(e,t,n){"use strict";var r=n("YT9o"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw");e.exports={name:"headingAtx",tokenize:function(e,t,n){function r(i){return 35===i&&p++<6?(e.consume(i),r):null===i||c(i)?(e.exit("atxHeadingSequence"),f.interrupt?t(i):s(i)):n(i)}function s(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||i(n)?(e.exit("atxHeading"),t(n)):o(n)?u(e,s,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),s(t))}function l(t){return null===t||35===t||c(t)?(e.exit("atxHeadingText"),s(t)):(e.consume(t),l)}var f=this,p=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),r(t)}},resolve:function(e,t){var n,i,o=e.length-2,u=3;return"whitespace"===e[u][1].type&&(u+=2),o-2>u&&"whitespace"===e[o][1].type&&(o-=2),"atxHeadingSequence"===e[o][1].type&&(u===o-1||o-4>u&&"whitespace"===e[o-2][1].type)&&(o-=u+1===o?2:4),o>u&&r(e,u,o-u+1,[["enter",n={type:"atxHeadingText",start:e[u][1].start,end:e[o][1].end},t],["enter",i={type:"chunkText",start:e[u][1].start,end:e[o][1].end,contentType:"text"},t],["exit",i,t],["exit",n,t]]),e}}},KSUl:function(e){"use strict";e.exports=[].splice},Kio5:function(e,t,n){"use strict";var r=n("OF0j")(/\s/);e.exports=r},LO0j:function(e,t,n){"use strict";var r=n("1hwd"),i=n("w6Nv"),o=n("yAYQ"),u=n("W0B4"),c=n("unVz"),s=n("gxcY"),a=n("N//3"),l=n("XmUT"),f=n("7kD2"),p=n("26+u"),d=n("GZPr"),h=n("3d/4"),m=n("8UgC"),v=Object.keys(h),g=function(e){var t=e.source||e.children||"";if(e.allowedTypes&&e.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=r(h,e.renderers),u=i().use(o).use(e.plugins||[]),d=u.runSync(u.parse(t)),g=r(e,{renderers:n,definitions:p(d)});return function(e){var t=[f,c()],n=e.disallowedTypes;e.allowedTypes&&(n=v.filter((function(t){return"root"!==t&&-1===e.allowedTypes.indexOf(t)})));var r=e.unwrapDisallowed?"unwrap":"remove";n&&n.length>0&&t.push(a.ofType(n,r)),e.allowNode&&t.push(a.ifNotMatch(e.allowNode,r));var i=(e.allowDangerousHtml||!1===e.escapeHtml)&&!e.skipHtml,o=(e.astPlugins||[]).some((function(e){return e.identity===m.HtmlParser}));return i&&!o&&t.push(s),e.astPlugins&&(t=t.concat(e.astPlugins)),t.push(l),t}(e).forEach((function(e){d=e(d,g)})),d};g.defaultProps={transformLinkUri:d},g.propTypes={className:u.string,source:u.string,children:u.string,sourcePos:u.bool,rawSourcePos:u.bool,escapeHtml:u.bool,allowDangerousHtml:u.bool,skipHtml:u.bool,allowNode:u.func,allowedTypes:u.arrayOf(u.oneOf(v)),disallowedTypes:u.arrayOf(u.oneOf(v)),transformLinkUri:u.oneOfType([u.func,u.bool]),linkTarget:u.oneOfType([u.func,u.string]),transformImageUri:u.func,astPlugins:u.arrayOf(u.func),unwrapDisallowed:u.bool,renderers:u.object,plugins:u.array},g.types=v,g.renderers=h,g.uriTransformer=d,e.exports=g},"N//3":function(e,t,n){"use strict";function r(e,t){function n(n,r,i){if(i&&!e(n,r,i)){var u=[r,1];return"unwrap"===t&&n.children&&(u=u.concat(n.children)),o.apply(i.children,u),r}}return function(e){return i(e,n),e}}var i=n("BN5T"),o=[].splice;t.ofType=function(e,t){return r((function(t){return!e.includes(t.type)}),t)},t.ifNotMatch=r},NFok:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("VNaL"),i=n("w+ik"),o=n("UMwc"),u=n("EsqR"),c=n("lD/g"),s=n("0+f6"),a=n("sy7/"),l=n("xyCV"),f=n("Bdgx"),p=n("kSGr"),d=n("qWgT"),h=n("K4HH"),m=n("oAca"),v=n("oarT"),g=n("tezt"),y=n("zTh2"),x=n("XFvC"),k=n("gC7f"),b=n("JdhB"),_=n("Z6Dk"),E=n("zN7H"),w={42:_,43:_,45:_,48:_,49:_,50:_,51:_,52:_,53:_,54:_,55:_,56:_,57:_,62:u},S={"-2":l,"-1":l,32:l},F={35:h,42:b,45:[E,b],60:m,61:E,95:b,96:a,126:a},C={38:s,92:c},O={"-5":k,"-4":k,"-3":k,33:y,38:s,42:i,60:[o,v],91:x,92:[d,c],93:g,95:i,96:f},A={null:[i,r.resolver]};t.contentInitial={91:p},t.disable={null:[]},t.document=w,t.flow=F,t.flowInitial=S,t.insideSpan=A,t.string=C,t.text=O},NS33:function(e,t,n){"use strict";function r(){}function i(){}var o=n("E02R");i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,u){if(u!==o){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},OF0j:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){return function(t){return e.test(r(t))}}},Q4YM:function(e){"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&n(e.children)||"length"in e&&n(e))||""}function n(e){for(var n=[],r=-1;++r2&&void 0!==arguments[2]?arguments[2]:{},u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var l=e.position.start,f=[e.type,l.line,l.column,u].join("-");if(!a.isValidElementType(s))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var p=i(e,f,t,s,o,u);return c.createElement(s,p,p.children||n()||void 0)}function i(e,t,n,i,a,l){var f,p={key:t},d="string"==typeof i||i===c.Fragment;n.sourcePos&&e.position&&(p["data-sourcepos"]=[(f=e.position).start.line,":",f.start.column,"-",f.end.line,":",f.end.column].map(String).join("")),n.rawSourcePos&&!d&&(p.sourcePosition=e.position),n.includeNodeIndex&&a.node&&a.node.children&&!d&&(p.index=a.node.children.indexOf(e),p.parentChildCount=a.node.children.length);var h=null!=e.identifier?n.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":o(p,{className:n.className});break;case"text":p.nodeKey=t,p.children=e.value;break;case"heading":p.level=e.depth;break;case"list":p.start=e.start,p.ordered=e.ordered,p.spread=e.spread,p.depth=e.depth;break;case"listItem":p.checked=e.checked,p.spread=e.spread,p.ordered=e.ordered,p.index=e.index,p.children=function(e,t){return(t&&t.node?function(e){var t=e.children,n=e.spread,r=-1;for(;!n&&++r1:t}var c=n("l8WD"),s=n("1hwd"),a=n("xVO4");e.exports=r},YT9o:function(e,t,n){"use strict";var r=n("KSUl");e.exports=function(e,t,n,i){var o,u=e.length,c=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,i.length<1e4)(o=Array.from(i)).unshift(t,n),r.apply(e,o);else for(n&&r.apply(e,[t,n]);c-1?void 0:4)(r)}var c=this;return c.containerState._closeFlow=void 0,e.check(o,(function(e){return c.containerState.furtherBlankLines=c.containerState.furtherBlankLines||c.containerState.initialBlankLine,t(e)}),(function(n){return c.containerState.furtherBlankLines||!r(n)?(c.containerState.furtherBlankLines=c.containerState.initialBlankLine=void 0,u(n)):(c.containerState.furtherBlankLines=c.containerState.initialBlankLine=void 0,e.attempt(p,t,u)(n))}))}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var o=this;return i(e,(function(e){return r(e)||!c(o.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",o.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,n){var r=this;return i(e,(function(e){return c(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=l},a7DW:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH");e.exports=function(e,t,n,o,u,c){function s(i){return null===i||91===i||93===i&&!f||94===i&&!d&&"_hiddenFootnoteSupport"in p.parser.constructs||d>999?n(i):93===i?(e.exit(c),e.enter(u),e.consume(i),e.exit(u),e.exit(o),t):r(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),s):(e.enter("chunkString",{contentType:"string"}),a(i))}function a(t){return null===t||91===t||93===t||r(t)||d++>999?(e.exit("chunkString"),s(t)):(e.consume(t),f=f||!i(t),92===t?l:a)}function l(t){return 91===t||92===t||93===t?(e.consume(t),d++,a):a(t)}var f,p=this,d=0;return function(t){return e.enter(o),e.enter(u),e.consume(t),e.exit(u),e.enter(c),s}}},ajvC:function(e){"use strict";e.exports=function(e){if(e)throw e}},bpHb:function(e){"use strict";e.exports=function(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}},cTMR:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n;return"[object Object]"===t.call(e)&&(null===(n=Object.getPrototypeOf(e))||n===Object.getPrototypeOf({}))}},dY77:function(e,t,n){"use strict";function r(){var e=[],t={run:function(){function t(c){var s=e[++n],a=o.call(arguments,0),l=a.slice(1),f=r.length,p=-1;if(c)u(c);else{for(;++p$/i,o=/^<(\/?)([a-z]+)\s*>$/;e.exports=function(e){var t,n;return r(e,"html",(function(e,r,u){n!==u&&(t=[],n=u);var c=function(e){var t=e.value.match(i);return!!t&&t[1]}(e);if(c)return u.children.splice(r,1,{type:"virtualHtml",tag:c,position:e.position}),!0;var s=function(e){var t=e.value.match(o);return!!t&&{tag:t[2],opening:!t[1],node:e}}(e);if(!s)return!0;var a=function(e,t){for(var n=e.length;n--;)if(e[n].tag===t)return e.splice(n,1)[0];return!1}(t,s.tag);return a?u.children.splice(r,0,function(e,t,n){var r=n.children.indexOf(e.node),i=n.children.indexOf(t.node);return{type:"virtualHtml",children:n.children.splice(r,i-r+1).slice(1,-1),tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}(s,a,u)):s.opening||t.push(s),!0}),!0),e}},"h+e0":function(e,t,n){"use strict";var r=n("OF0j")(/[!-/:-@[-`{-~]/);e.exports=r},h3af:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){for(var t,n,i,o=-1,u=[];++o-1&&(x.call(this,e),k.call(this,e))},link:v((function(){var e=this.stack[this.stack.length-1];r("inReference")?(e.type+="Reference",e.referenceType=r("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),n("referenceType")})),listItem:v(),listOrdered:v(),listUnordered:v(),paragraph:v(),referenceString:function(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=s(this.sliceSerialize(e)).toLowerCase(),n("referenceType","full")},resourceDestinationString:function(){var e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){var e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){n("inReference")},setextHeading:v((function(){n("setextHeadingSlurpLineEnding")})),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){n("setextHeadingSlurpLineEnding",!0)},strong:v(),thematicBreak:v()}},A.mdastExtensions||[]),I={};return function(e){for(var i,o=[{type:"root",children:[]}],s=[],a=[],f=-1,d={stack:o,tokenStack:s,config:T,enter:m,exit:g,buffer:p,resume:y,setData:n,getData:r};++fg?n(r):(e.consume(r),m):41===r?y--?(e.consume(r),m):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(r)):null===r||i(r)?y?n(r):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(r)):o(r)?n(r):(e.consume(r),92===r?v:m)}function v(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}var g=f||1/0,y=0;return function(t){return 60===t?(e.enter(u),e.enter(c),e.enter(s),e.consume(t),e.exit(s),p):o(t)?n(t):(e.enter(u),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),m(t))}}},juNq:function(e,t,n){"use strict";function r(e){var t,n;if(e){if("string"==typeof e||a(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof r))return new r(e);for(this.data={},this.messages=[],this.history=[],this.cwd=s.cwd(),n=-1;++n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+c.sep+"`")}function o(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function u(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}var c=n("oSCq"),s=n("UuPi"),a=n("EbX1");e.exports=r;var l={}.hasOwnProperty,f=["history","path","basename","stem","extname","dirname"];r.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(r.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){o(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(r.prototype,"dirname",{get:function(){return"string"==typeof this.path?c.dirname(this.path):void 0},set:function(e){u(this.path,"dirname"),this.path=c.join(e||"",this.basename)}}),Object.defineProperty(r.prototype,"basename",{get:function(){return"string"==typeof this.path?c.basename(this.path):void 0},set:function(e){o(e,"basename"),i(e,"basename"),this.path=c.join(this.dirname||"",e)}}),Object.defineProperty(r.prototype,"extname",{get:function(){return"string"==typeof this.path?c.extname(this.path):void 0},set:function(e){if(i(e,"extname"),u(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=c.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(r.prototype,"stem",{get:function(){return"string"==typeof this.path?c.basename(this.path,this.extname):void 0},set:function(e){o(e,"stem"),i(e,"stem"),this.path=c.join(this.dirname||"",e+(this.extname||""))}})},kSGr:function(e,t,n){"use strict";var r=n("W9KB"),i=n("4kIE"),o=n("7sXb"),u=n("mQVw"),c=n("j1Sy"),s=n("a7DW"),a=n("QGTt"),l=n("eOGU"),f={name:"definition",tokenize:function(e,t,n){function u(t){return f=r(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a(e,c(e,e.attempt(p,o(e,l,"whitespace"),o(e,l,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function l(r){return null===r||i(r)?(e.exit("definition"),d.parser.defined.indexOf(f)<0&&d.parser.defined.push(f),t(r)):n(r)}var f,d=this;return function(t){return e.enter("definition"),s.call(d,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}}},p={tokenize:function(e,t,n){function r(t){return 34===t||39===t||40===t?l(e,o(e,c,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function c(e){return null===e||i(e)?t(e):n(e)}return function(t){return u(t)?a(e,r)(t):n(t)}},partial:!0};e.exports=f},kqyo:function(e){"use strict";e.exports=function(e,t,n){function r(e){var o;return t&&e.type!==t||(o=n(e,i.concat())),e.children&&!1!==o?function(e,t){var n,o=e.length,u=-1;i.push(t);for(;++u3;)n.pop()();if(n[1]null,a=e=>e,l=e=>Object(r.h)("header",null,Object(r.h)("nav",null,Object(r.h)("ul",null,Object(r.h)("li",null,Object(r.h)(i.Link,{href:"/"},"Edit")),Object(r.h)("li",null,Object(r.h)(i.Link,{href:"/p/"+e},"Publish")))));t.default=({mode:e,payload:t,setMarkdown:n})=>{const[o,f,p]={preview:[l,a,c.compressToEncodedURIComponent],post:[s,c.decompressFromEncodedURIComponent,a]}[e],d=f(t),h=p(t);return n(d),Object(r.h)("section",null,o(h),Object(r.h)("article",null,Object(r.h)(u.a,null,d)),Object(r.h)(i.Link,{href:"/"},"Edit post"))}},nppI:function(e){"use strict";e.exports=String.fromCharCode},oAca:function(e,t,n){"use strict";var r=n("nppI"),i=n("6zBE"),o=n("4kIE"),u=n("pMvH"),c=n("A0tY"),s=n("mQVw"),a=n("9pEU"),l=n("maJg"),f=n("rNCH"),p={name:"htmlFlow",tokenize:function(e,t,n){function c(i){return 33===i?(e.consume(i),p):47===i?(e.consume(i),v):63===i?(e.consume(i),L=3,W.interrupt?t:D):a(i)?(e.consume(i),U=r(i),R=!0,g):n(i)}function p(r){return 45===r?(e.consume(r),L=2,h):91===r?(e.consume(r),L=5,U="CDATA[",N=0,m):a(r)?(e.consume(r),L=4,W.interrupt?t:D):n(r)}function h(r){return 45===r?(e.consume(r),W.interrupt?t:D):n(r)}function m(r){return r===U.charCodeAt(N++)?(e.consume(r),N===U.length?W.interrupt?t:A:m):n(r)}function v(t){return a(t)?(e.consume(t),U=r(t),g):n(t)}function g(o){return null===o||47===o||62===o||s(o)?47!==o&&R&&f.indexOf(U.toLowerCase())>-1?(L=1,W.interrupt?t(o):A(o)):l.indexOf(U.toLowerCase())>-1?(L=6,47===o?(e.consume(o),y):W.interrupt?t(o):A(o)):(L=7,W.interrupt?n(o):R?k(o):x(o)):45===o||i(o)?(e.consume(o),U+=r(o),g):n(o)}function y(r){return 62===r?(e.consume(r),W.interrupt?t:A):n(r)}function x(t){return u(t)?(e.consume(t),x):C(t)}function k(t){return 47===t?(e.consume(t),C):58===t||95===t||a(t)?(e.consume(t),b):u(t)?(e.consume(t),k):C(t)}function b(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),b):_(t)}function _(t){return 61===t?(e.consume(t),E):u(t)?(e.consume(t),_):k(t)}function E(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),V=t,w):u(t)?(e.consume(t),E):(V=void 0,S(t))}function w(t){return t===V?(e.consume(t),F):null===t||o(t)?n(t):(e.consume(t),w)}function S(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||s(t)?_(t):(e.consume(t),S)}function F(e){return 47===e||62===e||u(e)?k(e):n(e)}function C(t){return 62===t?(e.consume(t),O):n(t)}function O(t){return u(t)?(e.consume(t),O):null===t||o(t)?A(t):n(t)}function A(t){return 45===t&&2===L?(e.consume(t),P):60===t&&1===L?(e.consume(t),j):62===t&&4===L?(e.consume(t),B):63===t&&3===L?(e.consume(t),D):93===t&&5===L?(e.consume(t),z):!o(t)||6!==L&&7!==L?null===t||o(t)?T(t):(e.consume(t),A):e.check(d,B,T)(t)}function T(t){return e.exit("htmlFlowData"),I(t)}function I(t){return null===t?H(t):o(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I):(e.enter("htmlFlowData"),A(t))}function P(t){return 45===t?(e.consume(t),D):A(t)}function j(t){return 47===t?(e.consume(t),U="",M):A(t)}function M(t){return 62===t&&f.indexOf(U.toLowerCase())>-1?(e.consume(t),B):a(t)&&U.length<8?(e.consume(t),U+=r(t),M):A(t)}function z(t){return 93===t?(e.consume(t),D):A(t)}function D(t){return 62===t?(e.consume(t),B):A(t)}function B(t){return null===t||o(t)?(e.exit("htmlFlowData"),H(t)):(e.consume(t),B)}function H(n){return e.exit("htmlFlow"),t(n)}var L,R,U,N,V,W=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c}},resolveTo:function(e){for(var t=e.length;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},concrete:!0},d={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(c,t,n)}},partial:!0};e.exports=p},oSCq:function(e,t){"use strict";function n(e){var t,n;return r(e),t=47===e.charCodeAt(0),(n=function(e,t){var n,r,i="",o=0,u=-1,c=0,s=-1;for(;++s<=e.length;){if(s2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",o=0):(i=i.slice(0,r),o=i.length-1-i.lastIndexOf("/")),u=s,c=0;continue}}else if(i.length){i="",o=0,u=s,c=0;continue}t&&(i=i.length?i+"/..":"..",o=2)}else i.length?i+="/"+e.slice(u+1,s):i=e.slice(u+1,s),o=s-u-1;u=s,c=0}else 46===n&&c>-1?c++:c=-1}return i}(e,!t)).length||t||(n="."),n.length&&47===e.charCodeAt(e.length-1)&&(n+="/"),t?"/"+n:n}function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}t.basename=function(e,t){var n,i,o,u,c=0,s=-1;if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');if(r(e),n=e.length,void 0===t||!t.length||t.length>e.length){for(;n--;)if(47===e.charCodeAt(n)){if(o){c=n+1;break}}else s<0&&(o=!0,s=n+1);return s<0?"":e.slice(c,s)}if(t===e)return"";for(i=-1,u=t.length-1;n--;)if(47===e.charCodeAt(n)){if(o){c=n+1;break}}else i<0&&(o=!0,i=n+1),u>-1&&(e.charCodeAt(n)===t.charCodeAt(u--)?u<0&&(s=n):(u=-1,s=i));return c===s?s=i:s<0&&(s=e.length),e.slice(c,s)},t.dirname=function(e){var t,n,i;if(r(e),!e.length)return".";for(t=-1,i=e.length;--i;)if(47===e.charCodeAt(i)){if(n){t=i;break}}else n||(n=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},t.extname=function(e){var t,n,i,o=-1,u=0,c=-1,s=0;for(r(e),i=e.length;i--;)if(47!==(n=e.charCodeAt(i)))c<0&&(t=!0,c=i+1),46===n?o<0?o=i:1!==s&&(s=1):o>-1&&(s=-1);else if(t){u=i+1;break}return o<0||c<0||0===s||1===s&&o===c-1&&o===u+1?"":e.slice(o,c)},t.join=function(){for(var e,t=-1;++t-1?void 0:4)}function z(t){return e.enter("htmlTextData"),R(t)}function D(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}var B,H,L,R,U=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),a}}}},"ox/y":function(e,t,n){"use strict";function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}Object.defineProperty(t,"__esModule",{value:!0}),t.Link=t.Match=void 0;var i=Object.assign||function(e){for(var t=1;t>>0,1)},t.prototype.render=function(e){var t=this.nextUrl||(0,u.getCurrentUrl)(),n=t.replace(/\?.+$/,"");return this.nextUrl=null,e.children({url:t,path:n,matches:!1!==(0,u.exec)(n,e.path,{})})},t}(o.Component),s=function(e){var t=e.activeClassName,n=e.path,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["activeClassName","path"]);return(0,o.h)(c,{path:n||r.href},(function(e){return(0,o.h)(u.Link,i({},r,{class:[r.class||r.className,e.matches&&t].filter(Boolean).join(" ")}))}))};t.Link=s,t.default=c,c.Link=s},pMvH:function(e){"use strict";e.exports=function(e){return-2===e||-1===e||32===e}},"pi/J":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("4kIE"),i=n("7sXb"),o=n("A0tY"),u=function(e){function t(t){return xt;)g.containerState=y[r][1],y[r][0].exit.call(g,e);y.length=t}var h,m,v,g=this,y=[],x=0,k={tokenize:function(e,t){function n(t){return f-1?void 0:4)}},s={tokenize:function(e,t,n){return i(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=u},qWgT:function(e,t,n){"use strict";var r=n("4kIE");e.exports={name:"hardBreakEscape",tokenize:function(e,t,n){function i(i){return r(i)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(i)):n(i)}return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),i}}}},rNCH:function(e){"use strict";e.exports=["pre","script","style","textarea"]},"sWw+":function(e){"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},u=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,i=t.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!o)return!1;for(r in e);return void 0===r||t.call(e,r)},c=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(i)return i(e,n).value}return e[n]};e.exports=function e(){var t,n,r,i,a,l,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p-1?void 0:4)},partial:!0},x=o(this.events,"linePrefix"),k=0;return function(t){return e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),v=t,c(t)}},concrete:!0}},tezt:function(e,t,n){"use strict";var r=n("YT9o"),i=n("wcY4"),o=n("W9KB"),u=n("Ek7W"),c=n("Ww+Z"),s=n("mQVw"),a=n("j1Sy"),l=n("a7DW"),f=n("QGTt"),p=n("eOGU"),d={name:"labelEnd",tokenize:function(e,t,n){function r(n){return 40===n?e.attempt(h,t,c?t:i)(n):91===n?e.attempt(m,t,c?e.attempt(v,t,i):i)(n):c?t(n):i(n)}function i(e){return u._balanced=!0,n(e)}for(var u,c,s=this,a=s.events.length;a--;)if(("labelImage"===s.events[a][1].type||"labelLink"===s.events[a][1].type)&&!s.events[a][1]._balanced){u=s.events[a][1];break}return function(t){return u?u._inactive?i(t):(c=s.parser.defined.indexOf(o(s.sliceSerialize({start:u.end,end:s.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),r):n(t)}},resolveTo:function(e,t){for(var n,o,s,a,l,f,p,d=e.length,h=0;d--;)if(a=e[d][1],l){if("link"===a.type||"labelLink"===a.type&&a._inactive)break;"enter"===e[d][0]&&"labelLink"===a.type&&(a._inactive=!0)}else if(f){if("enter"===e[d][0]&&("labelImage"===a.type||"labelLink"===a.type)&&!a._balanced&&(l=d,"labelLink"!==a.type)){h=2;break}}else"labelEnd"===a.type&&(f=d);return n={type:"labelLink"===e[l][1].type?"link":"image",start:u(e[l][1].start),end:u(e[e.length-1][1].end)},o={type:"label",start:u(e[l][1].start),end:u(e[f][1].end)},s={type:"labelText",start:u(e[l+h+2][1].end),end:u(e[f-2][1].start)},p=i(p=[["enter",n,t],["enter",o,t]],e.slice(l+1,l+h+3)),p=i(p,[["enter",s,t]]),p=i(p,c(t.parser.constructs.insideSpan.null,e.slice(l+h+4,f-3),t)),p=i(p,[["exit",s,t],e[f-2],e[f-1],["exit",o,t]]),p=i(p,e.slice(f+1)),p=i(p,[["exit",n,t]]),r(e,l,e.length,p),e},resolveAll:function(e){for(var t,n=-1;++n-1?l():e.tokenize.call(t?r({},S,t):S,w,a,l)(n)}}function a(){return e(h,m),i}function l(){return m.restore(),++p1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:s(o(e[n][1].end),-p),end:o(e[n][1].end)},f={type:p>1?"strongSequence":"emphasisSequence",start:o(e[m][1].start),end:s(o(e[m][1].start),p)},a={type:p>1?"strongText":"emphasisText",start:o(e[n][1].end),end:o(e[m][1].start)},c={type:p>1?"strong":"emphasis",start:o(l.start),end:o(f.end)},e[n][1].end=o(l.start),e[m][1].start=o(f.end),d=[],e[n][1].end.offset-e[n][1].start.offset&&(d=i(d,[["enter",e[n][1],t],["exit",e[n][1],t]])),d=i(d,[["enter",c,t],["enter",l,t],["exit",l,t],["enter",a,t]]),d=i(d,u(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),d=i(d,[["exit",a,t],["enter",f,t],["exit",f,t],["exit",c,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,d=i(d,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,r(e,n-1,m-n+3,d),m=n+d.length-h-2;break}for(m=-1;++m-1||o(c.events,"linePrefix")<4?e.interrupt(c.parser.constructs.flow,n,t)(i):t(i)}var c=this;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i(e,u,"linePrefix")}},partial:!0};e.exports=c},"1hwd":function(e){e.exports=function(){for(var e={},n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return r(e,"definition",(function(e){var n=e.identifier.toUpperCase();n in t||(t[n]={href:e.url,title:e.title})})),t}},"2sHR":function(e,t,n){"use strict";e.exports=n("i8V1")},"3d/4":function(e,t,n){"use strict";function r(e,t){return s(e,i(t),t.children)}function i(e){var t=e["data-sourcepos"];return t?{"data-sourcepos":t}:{}}var o=n("1hwd"),u=n("l8WD"),c=parseInt((u.version||"16").slice(0,2),10)>=16,s=u.createElement;e.exports={break:"br",paragraph:"p",emphasis:"em",strong:"strong",thematicBreak:"hr",blockquote:"blockquote",delete:"del",link:"a",image:"img",linkReference:"a",imageReference:"img",table:r.bind(null,"table"),tableHead:r.bind(null,"thead"),tableBody:r.bind(null,"tbody"),tableRow:r.bind(null,"tr"),tableCell:function(e){var t=e.align?{textAlign:e.align}:void 0,n=i(e);return s(e.isHeader?"th":"td",t?o({style:t},n):n,e.children)},root:function(e){var t=e.className;return s(!t&&u.Fragment||"div",t?{className:t}:null,e.children)},text:function(e){var t=e.children||"";return c?t:s("span",null,t)},list:function(e){var t=i(e);return null!==e.start&&1!==e.start&&void 0!==e.start&&(t.start=e.start.toString()),s(e.ordered?"ol":"ul",t,e.children)},listItem:function(e){var t=null;return null!=e.checked&&(t=s("input",{type:"checkbox",checked:e.checked,readOnly:!0})),s("li",i(e),t,e.children)},definition:function(){return null},heading:function(e){return s("h".concat(e.level),i(e),e.children)},inlineCode:function(e){return s("code",i(e),e.children)},code:function(e){var t=e.language&&"language-".concat(e.language),n=s("code",t?{className:t}:null,e.value);return s("pre",i(e),n)},html:function(e){if(e.skipHtml)return null;var t=e.isBlock?"div":"span";return e.allowDangerousHtml||!1===e.escapeHtml?s(t,{dangerouslySetInnerHTML:{__html:e.value}}):s(u.Fragment||t,null,e.value)},virtualHtml:function(e){return s(e.tag,i(e),e.children)},parsedHtml:function(e){return e["data-sourcepos"]?u.cloneElement(e.element,{"data-sourcepos":e["data-sourcepos"]}):e.element}}},"3nVo":function(e,t,n){"use strict";var r=n("BcHT"),i=n("isG3"),o=n("pi/J"),u=n("WJEV"),c=n("VNaL"),s=n("l3jb"),a=n("vJla"),l=n("NFok");e.exports=function(e){function t(e){return function(t){return a(n,e,t)}}var n={defined:[],constructs:s([l].concat(r((e||{}).extensions))),content:t(i),document:t(o),flow:t(u),string:t(c.string),text:t(c.text)};return n}},"4kIE":function(e){"use strict";e.exports=function(e){return e<-2}},"6zBE":function(e,t,n){"use strict";var r=n("OF0j")(/[\dA-Za-z]/);e.exports=r},"7kD2":function(e,t,n){"use strict";function r(e){var t=e.children;e.children=[{type:"tableHead",align:e.align,children:[t[0]],position:t[0].position}],t.length>1&&e.children.push({type:"tableBody",align:e.align,children:t.slice(1),position:{start:t[1].position.start,end:t[t.length-1].position.end}})}var i=n("BN5T");e.exports=function(e){return i(e,"table",r),e}},"7sXb":function(e,t,n){"use strict";var r=n("pMvH");e.exports=function(e,t,n,i){function o(i){return r(i)&&c++13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535==(65535&n)||65534==(65535&n)||n>1114111?"�":r(n)}},BN5T:function(e,t,n){"use strict";function r(e,t,n,r){"function"==typeof t&&"function"!=typeof n&&(r=n,n=t,t=null),i(e,t,(function(e,t){var r=t[t.length-1],i=r?r.children.indexOf(e):null;return n(e,i,r)}),r)}e.exports=r;var i=n("kqyo"),o=i.SKIP,u=i.EXIT;r.CONTINUE=i.CONTINUE,r.SKIP=o,r.EXIT=u},BcHT:function(e){"use strict";e.exports=function(e){return null==e?[]:"length"in e?e:[e]}},Bdgx:function(e,t,n){"use strict";var r=n("4kIE");e.exports={name:"codeText",tokenize:function(e,t,n){function i(t){return 96===t?(e.consume(t),l++,i):(e.exit("codeTextSequence"),o(t))}function o(t){return null===t?n(t):96===t?(a=e.enter("codeTextSequence"),s=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),o):r(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o):(e.enter("codeTextData"),u(t))}function u(t){return null===t||32===t||96===t||r(t)?(e.exit("codeTextData"),o(t)):(e.consume(t),u)}function c(n){return 96===n?(e.consume(n),s++,c):s===l?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(a.type="codeTextData",u(n))}var s,a,l=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),i(t)}},resolve:function(e){var t,n,r=e.length-4,i=3;if(!("lineEnding"!==e[i][1].type&&"space"!==e[i][1].type||"lineEnding"!==e[r][1].type&&"space"!==e[r][1].type))for(t=i;++t>>8,n[2*r+1]=u%256}return n},decompressFromUint8Array:function(e){if(null==e)return o.decompress(e);for(var n=new Array(e.length/2),r=0,i=n.length;r>=1}else{for(i=1,r=0;r>=1}0==--f&&(f=Math.pow(2,d),d++),delete c[l]}else for(i=u[l],r=0;r>=1;0==--f&&(f=Math.pow(2,d),d++),u[a]=p++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(c,l)){if(l.charCodeAt(0)<256){for(r=0;r>=1}else{for(i=1,r=0;r>=1}0==--f&&(f=Math.pow(2,d),d++),delete c[l]}else for(i=u[l],r=0;r>=1;0==--f&&(f=Math.pow(2,d),d++)}for(i=2,r=0;r>=1;for(;;){if(m<<=1,v==t-1){h.push(n(m));break}v++}return h.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(e,n,r){var i,o,u,c,s,a,l,f=[],p=4,d=4,h=3,m="",v=[],g={val:r(0),position:n,index:1};for(i=0;i<3;i+=1)f[i]=i;for(u=0,s=Math.pow(2,2),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;switch(u){case 0:for(u=0,s=Math.pow(2,8),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;l=t(u);break;case 1:for(u=0,s=Math.pow(2,16),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;l=t(u);break;case 2:return""}for(f[3]=l,o=l,v.push(l);;){if(g.index>e)return"";for(u=0,s=Math.pow(2,h),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;switch(l=u){case 0:for(u=0,s=Math.pow(2,8),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;f[d++]=t(u),l=d-1,p--;break;case 1:for(u=0,s=Math.pow(2,16),a=1;a!=s;)c=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=r(g.index++)),u|=(c>0?1:0)*a,a<<=1;f[d++]=t(u),l=d-1,p--;break;case 2:return v.join("")}if(0==p&&(p=Math.pow(2,h),h++),f[l])m=f[l];else{if(l!==d)return null;m=o+o.charAt(0)}v.push(m),f[d++]=o+m.charAt(0),o=m,0==--p&&(p=Math.pow(2,h),h++)}}};return o}();void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)},E02R:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},EbX1:function(e){function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},Ek7W:function(e,t,n){"use strict";var r=n("m5ak");e.exports=function(e){return r({},e)}},EsqR:function(e,t,n){"use strict";var r=n("pMvH"),i=n("7sXb"),o={name:"blockQuote",tokenize:function(e,t,n){function i(n){return r(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}var o=this;return function(t){return 62===t?(o.containerState.open||(e.enter("blockQuote",{_container:!0}),o.containerState.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i):n(t)}},continuation:{tokenize:function(e,t,n){return i(e,e.attempt(o,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=o},FsDf:function(e){"use strict";e.exports=function(e,t){var n,r=t.start._index,i=t.start._bufferIndex,o=t.end._index,u=t.end._bufferIndex;return r===o?n=[e[r].slice(i,u)]:(n=e.slice(r,o),i>-1&&(n[0]=n[0].slice(i)),u>0&&n.push(e[o].slice(0,u))),n}},GZPr:function(e){"use strict";var t=["http","https","mailto","tel"];e.exports=function(e){var n=(e||"").trim(),r=n.charAt(0);if("#"===r||"/"===r)return n;var i=n.indexOf(":");if(-1===i)return n;for(var o=t.length,u=-1;++uu||-1!==(u=n.indexOf("#"))&&i>u?n:"javascript:void(0)"}},Gthe:function(e,t,n){"use strict";var r=n("OF0j")(/[#-'*+\--9=?A-Z^-~]/);e.exports=r},H5je:function(e,t,n){"use strict";var r=n("hKxf");e.exports=function(e,t){var n=e[e.length-1];return n&&n[1].type===t?r(n[2].sliceStream(n[1])):0}},INXP:function(e){"use strict";e.exports=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/},Iacx:function(e){"use strict";var t=[].slice;e.exports=function(e,n){function r(){o||(o=!0,n.apply(null,arguments))}function i(e){r(null,e)}var o;return function(){var n,u=t.call(arguments,0),c=e.length>u.length;c&&u.push(r);try{n=e.apply(null,u)}catch(e){if(c&&o)throw e;return r(e)}c||(n&&"function"==typeof n.then?n.then(i,r):n instanceof Error?r(n):i(n))}}},JdhB:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH"),o=n("7sXb");e.exports={name:"thematicBreak",tokenize:function(e,t,n){function u(l){return l===s?(e.enter("thematicBreakSequence"),c(l)):i(l)?o(e,u,"whitespace")(l):a<3||null!==l&&!r(l)?n(l):(e.exit("thematicBreak"),t(l))}function c(t){return t===s?(e.consume(t),a++,c):(e.exit("thematicBreakSequence"),u(t))}var s,a=0;return function(t){return e.enter("thematicBreak"),s=t,u(t)}}}},K4HH:function(e,t,n){"use strict";var r=n("YT9o"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw");e.exports={name:"headingAtx",tokenize:function(e,t,n){function r(i){return 35===i&&p++<6?(e.consume(i),r):null===i||c(i)?(e.exit("atxHeadingSequence"),f.interrupt?t(i):s(i)):n(i)}function s(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||i(n)?(e.exit("atxHeading"),t(n)):o(n)?u(e,s,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),s(t))}function l(t){return null===t||35===t||c(t)?(e.exit("atxHeadingText"),s(t)):(e.consume(t),l)}var f=this,p=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),r(t)}},resolve:function(e,t){var n,i,o=e.length-2,u=3;return"whitespace"===e[u][1].type&&(u+=2),o-2>u&&"whitespace"===e[o][1].type&&(o-=2),"atxHeadingSequence"===e[o][1].type&&(u===o-1||o-4>u&&"whitespace"===e[o-2][1].type)&&(o-=u+1===o?2:4),o>u&&r(e,u,o-u+1,[["enter",n={type:"atxHeadingText",start:e[u][1].start,end:e[o][1].end},t],["enter",i={type:"chunkText",start:e[u][1].start,end:e[o][1].end,contentType:"text"},t],["exit",i,t],["exit",n,t]]),e}}},KSUl:function(e){"use strict";e.exports=[].splice},Kio5:function(e,t,n){"use strict";var r=n("OF0j")(/\s/);e.exports=r},LO0j:function(e,t,n){"use strict";var r=n("1hwd"),i=n("w6Nv"),o=n("yAYQ"),u=n("W0B4"),c=n("unVz"),s=n("gxcY"),a=n("N//3"),l=n("XmUT"),f=n("7kD2"),p=n("26+u"),d=n("GZPr"),h=n("3d/4"),m=n("8UgC"),v=Object.keys(h),g=function(e){var t=e.source||e.children||"";if(e.allowedTypes&&e.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=r(h,e.renderers),u=i().use(o).use(e.plugins||[]),d=u.runSync(u.parse(t)),g=r(e,{renderers:n,definitions:p(d)});return function(e){var t=[f,c()],n=e.disallowedTypes;e.allowedTypes&&(n=v.filter((function(t){return"root"!==t&&-1===e.allowedTypes.indexOf(t)})));var r=e.unwrapDisallowed?"unwrap":"remove";n&&n.length>0&&t.push(a.ofType(n,r)),e.allowNode&&t.push(a.ifNotMatch(e.allowNode,r));var i=(e.allowDangerousHtml||!1===e.escapeHtml)&&!e.skipHtml,o=(e.astPlugins||[]).some((function(e){return e.identity===m.HtmlParser}));return i&&!o&&t.push(s),e.astPlugins&&(t=t.concat(e.astPlugins)),t.push(l),t}(e).forEach((function(e){d=e(d,g)})),d};g.defaultProps={transformLinkUri:d},g.propTypes={className:u.string,source:u.string,children:u.string,sourcePos:u.bool,rawSourcePos:u.bool,escapeHtml:u.bool,allowDangerousHtml:u.bool,skipHtml:u.bool,allowNode:u.func,allowedTypes:u.arrayOf(u.oneOf(v)),disallowedTypes:u.arrayOf(u.oneOf(v)),transformLinkUri:u.oneOfType([u.func,u.bool]),linkTarget:u.oneOfType([u.func,u.string]),transformImageUri:u.func,astPlugins:u.arrayOf(u.func),unwrapDisallowed:u.bool,renderers:u.object,plugins:u.array},g.types=v,g.renderers=h,g.uriTransformer=d,e.exports=g},"N//3":function(e,t,n){"use strict";function r(e,t){function n(n,r,i){if(i&&!e(n,r,i)){var u=[r,1];return"unwrap"===t&&n.children&&(u=u.concat(n.children)),o.apply(i.children,u),r}}return function(e){return i(e,n),e}}var i=n("BN5T"),o=[].splice;t.ofType=function(e,t){return r((function(t){return!e.includes(t.type)}),t)},t.ifNotMatch=r},NFok:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("VNaL"),i=n("w+ik"),o=n("UMwc"),u=n("EsqR"),c=n("lD/g"),s=n("0+f6"),a=n("sy7/"),l=n("xyCV"),f=n("Bdgx"),p=n("kSGr"),d=n("qWgT"),h=n("K4HH"),m=n("oAca"),v=n("oarT"),g=n("tezt"),y=n("zTh2"),x=n("XFvC"),k=n("gC7f"),b=n("JdhB"),_=n("Z6Dk"),E=n("zN7H"),w={42:_,43:_,45:_,48:_,49:_,50:_,51:_,52:_,53:_,54:_,55:_,56:_,57:_,62:u},S={"-2":l,"-1":l,32:l},F={35:h,42:b,45:[E,b],60:m,61:E,95:b,96:a,126:a},C={38:s,92:c},O={"-5":k,"-4":k,"-3":k,33:y,38:s,42:i,60:[o,v],91:x,92:[d,c],93:g,95:i,96:f},A={null:[i,r.resolver]};t.contentInitial={91:p},t.disable={null:[]},t.document=w,t.flow=F,t.flowInitial=S,t.insideSpan=A,t.string=C,t.text=O},NS33:function(e,t,n){"use strict";function r(){}function i(){}var o=n("E02R");i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,u){if(u!==o){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},OF0j:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){return function(t){return e.test(r(t))}}},Q4YM:function(e){"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&n(e.children)||"length"in e&&n(e))||""}function n(e){for(var n=[],r=-1;++r2&&void 0!==arguments[2]?arguments[2]:{},u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var l=e.position.start,f=[e.type,l.line,l.column,u].join("-");if(!a.isValidElementType(s))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var p=i(e,f,t,s,o,u);return c.createElement(s,p,p.children||n()||void 0)}function i(e,t,n,i,a,l){var f,p={key:t},d="string"==typeof i||i===c.Fragment;n.sourcePos&&e.position&&(p["data-sourcepos"]=[(f=e.position).start.line,":",f.start.column,"-",f.end.line,":",f.end.column].map(String).join("")),n.rawSourcePos&&!d&&(p.sourcePosition=e.position),n.includeNodeIndex&&a.node&&a.node.children&&!d&&(p.index=a.node.children.indexOf(e),p.parentChildCount=a.node.children.length);var h=null!=e.identifier?n.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":o(p,{className:n.className});break;case"text":p.nodeKey=t,p.children=e.value;break;case"heading":p.level=e.depth;break;case"list":p.start=e.start,p.ordered=e.ordered,p.spread=e.spread,p.depth=e.depth;break;case"listItem":p.checked=e.checked,p.spread=e.spread,p.ordered=e.ordered,p.index=e.index,p.children=function(e,t){return(t&&t.node?function(e){var t=e.children,n=e.spread,r=-1;for(;!n&&++r1:t}var c=n("l8WD"),s=n("1hwd"),a=n("xVO4");e.exports=r},YT9o:function(e,t,n){"use strict";var r=n("KSUl");e.exports=function(e,t,n,i){var o,u=e.length,c=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,i.length<1e4)(o=Array.from(i)).unshift(t,n),r.apply(e,o);else for(n&&r.apply(e,[t,n]);c-1?void 0:4)(r)}var c=this;return c.containerState._closeFlow=void 0,e.check(o,(function(e){return c.containerState.furtherBlankLines=c.containerState.furtherBlankLines||c.containerState.initialBlankLine,t(e)}),(function(n){return c.containerState.furtherBlankLines||!r(n)?(c.containerState.furtherBlankLines=c.containerState.initialBlankLine=void 0,u(n)):(c.containerState.furtherBlankLines=c.containerState.initialBlankLine=void 0,e.attempt(p,t,u)(n))}))}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var o=this;return i(e,(function(e){return r(e)||!c(o.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",o.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,n){var r=this;return i(e,(function(e){return c(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=l},a7DW:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH");e.exports=function(e,t,n,o,u,c){function s(i){return null===i||91===i||93===i&&!f||94===i&&!d&&"_hiddenFootnoteSupport"in p.parser.constructs||d>999?n(i):93===i?(e.exit(c),e.enter(u),e.consume(i),e.exit(u),e.exit(o),t):r(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),s):(e.enter("chunkString",{contentType:"string"}),a(i))}function a(t){return null===t||91===t||93===t||r(t)||d++>999?(e.exit("chunkString"),s(t)):(e.consume(t),f=f||!i(t),92===t?l:a)}function l(t){return 91===t||92===t||93===t?(e.consume(t),d++,a):a(t)}var f,p=this,d=0;return function(t){return e.enter(o),e.enter(u),e.consume(t),e.exit(u),e.enter(c),s}}},ajvC:function(e){"use strict";e.exports=function(e){if(e)throw e}},bpHb:function(e){"use strict";e.exports=function(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}},cTMR:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n;return"[object Object]"===t.call(e)&&(null===(n=Object.getPrototypeOf(e))||n===Object.getPrototypeOf({}))}},dY77:function(e,t,n){"use strict";function r(){var e=[],t={run:function(){function t(c){var s=e[++n],a=o.call(arguments,0),l=a.slice(1),f=r.length,p=-1;if(c)u(c);else{for(;++p$/i,o=/^<(\/?)([a-z]+)\s*>$/;e.exports=function(e){var t,n;return r(e,"html",(function(e,r,u){n!==u&&(t=[],n=u);var c=function(e){var t=e.value.match(i);return!!t&&t[1]}(e);if(c)return u.children.splice(r,1,{type:"virtualHtml",tag:c,position:e.position}),!0;var s=function(e){var t=e.value.match(o);return!!t&&{tag:t[2],opening:!t[1],node:e}}(e);if(!s)return!0;var a=function(e,t){for(var n=e.length;n--;)if(e[n].tag===t)return e.splice(n,1)[0];return!1}(t,s.tag);return a?u.children.splice(r,0,function(e,t,n){var r=n.children.indexOf(e.node),i=n.children.indexOf(t.node);return{type:"virtualHtml",children:n.children.splice(r,i-r+1).slice(1,-1),tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}(s,a,u)):s.opening||t.push(s),!0}),!0),e}},"h+e0":function(e,t,n){"use strict";var r=n("OF0j")(/[!-/:-@[-`{-~]/);e.exports=r},h3af:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){for(var t,n,i,o=-1,u=[];++o-1&&(x.call(this,e),k.call(this,e))},link:v((function(){var e=this.stack[this.stack.length-1];r("inReference")?(e.type+="Reference",e.referenceType=r("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),n("referenceType")})),listItem:v(),listOrdered:v(),listUnordered:v(),paragraph:v(),referenceString:function(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=s(this.sliceSerialize(e)).toLowerCase(),n("referenceType","full")},resourceDestinationString:function(){var e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){var e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){n("inReference")},setextHeading:v((function(){n("setextHeadingSlurpLineEnding")})),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){n("setextHeadingSlurpLineEnding",!0)},strong:v(),thematicBreak:v()}},A.mdastExtensions||[]),I={};return function(e){for(var i,o=[{type:"root",children:[]}],s=[],a=[],f=-1,d={stack:o,tokenStack:s,config:T,enter:m,exit:g,buffer:p,resume:y,setData:n,getData:r};++fg?n(r):(e.consume(r),m):41===r?y--?(e.consume(r),m):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(r)):null===r||i(r)?y?n(r):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(u),t(r)):o(r)?n(r):(e.consume(r),92===r?v:m)}function v(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}var g=f||1/0,y=0;return function(t){return 60===t?(e.enter(u),e.enter(c),e.enter(s),e.consume(t),e.exit(s),p):o(t)?n(t):(e.enter(u),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),m(t))}}},juNq:function(e,t,n){"use strict";function r(e){var t,n;if(e){if("string"==typeof e||a(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof r))return new r(e);for(this.data={},this.messages=[],this.history=[],this.cwd=s.cwd(),n=-1;++n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+c.sep+"`")}function o(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function u(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}var c=n("oSCq"),s=n("UuPi"),a=n("EbX1");e.exports=r;var l={}.hasOwnProperty,f=["history","path","basename","stem","extname","dirname"];r.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(r.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){o(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(r.prototype,"dirname",{get:function(){return"string"==typeof this.path?c.dirname(this.path):void 0},set:function(e){u(this.path,"dirname"),this.path=c.join(e||"",this.basename)}}),Object.defineProperty(r.prototype,"basename",{get:function(){return"string"==typeof this.path?c.basename(this.path):void 0},set:function(e){o(e,"basename"),i(e,"basename"),this.path=c.join(this.dirname||"",e)}}),Object.defineProperty(r.prototype,"extname",{get:function(){return"string"==typeof this.path?c.extname(this.path):void 0},set:function(e){if(i(e,"extname"),u(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=c.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(r.prototype,"stem",{get:function(){return"string"==typeof this.path?c.basename(this.path,this.extname):void 0},set:function(e){o(e,"stem"),i(e,"stem"),this.path=c.join(this.dirname||"",e+(this.extname||""))}})},kSGr:function(e,t,n){"use strict";var r=n("W9KB"),i=n("4kIE"),o=n("7sXb"),u=n("mQVw"),c=n("j1Sy"),s=n("a7DW"),a=n("QGTt"),l=n("eOGU"),f={name:"definition",tokenize:function(e,t,n){function u(t){return f=r(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a(e,c(e,e.attempt(p,o(e,l,"whitespace"),o(e,l,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function l(r){return null===r||i(r)?(e.exit("definition"),d.parser.defined.indexOf(f)<0&&d.parser.defined.push(f),t(r)):n(r)}var f,d=this;return function(t){return e.enter("definition"),s.call(d,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}}},p={tokenize:function(e,t,n){function r(t){return 34===t||39===t||40===t?l(e,o(e,c,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function c(e){return null===e||i(e)?t(e):n(e)}return function(t){return u(t)?a(e,r)(t):n(t)}},partial:!0};e.exports=f},kqyo:function(e){"use strict";e.exports=function(e,t,n){function r(e){var o;return t&&e.type!==t||(o=n(e,i.concat())),e.children&&!1!==o?function(e,t){var n,o=e.length,u=-1;i.push(t);for(;++u3;)n.pop()();if(n[1]null,a=e=>e,l=e=>Object(r.h)("header",null,Object(r.h)("nav",null,Object(r.h)("ul",null,Object(r.h)("li",null,Object(r.h)(i.Link,{href:"/huge-link/"},"Edit")),Object(r.h)("li",null,Object(r.h)(i.Link,{href:"/huge-link/p/"+e},"Publish")))));t.default=({mode:e,payload:t,setMarkdown:n})=>{const[o,f,p]={preview:[l,a,c.compressToEncodedURIComponent],post:[s,c.decompressFromEncodedURIComponent,a]}[e],d=f(t),h=p(t);return n(d),Object(r.h)("section",null,o(h),Object(r.h)("article",null,Object(r.h)(u.a,null,d)),Object(r.h)(i.Link,{href:"/huge-link/"},"Edit post"))}},nppI:function(e){"use strict";e.exports=String.fromCharCode},oAca:function(e,t,n){"use strict";var r=n("nppI"),i=n("6zBE"),o=n("4kIE"),u=n("pMvH"),c=n("A0tY"),s=n("mQVw"),a=n("9pEU"),l=n("maJg"),f=n("rNCH"),p={name:"htmlFlow",tokenize:function(e,t,n){function c(i){return 33===i?(e.consume(i),p):47===i?(e.consume(i),v):63===i?(e.consume(i),L=3,W.interrupt?t:D):a(i)?(e.consume(i),U=r(i),R=!0,g):n(i)}function p(r){return 45===r?(e.consume(r),L=2,h):91===r?(e.consume(r),L=5,U="CDATA[",N=0,m):a(r)?(e.consume(r),L=4,W.interrupt?t:D):n(r)}function h(r){return 45===r?(e.consume(r),W.interrupt?t:D):n(r)}function m(r){return r===U.charCodeAt(N++)?(e.consume(r),N===U.length?W.interrupt?t:A:m):n(r)}function v(t){return a(t)?(e.consume(t),U=r(t),g):n(t)}function g(o){return null===o||47===o||62===o||s(o)?47!==o&&R&&f.indexOf(U.toLowerCase())>-1?(L=1,W.interrupt?t(o):A(o)):l.indexOf(U.toLowerCase())>-1?(L=6,47===o?(e.consume(o),y):W.interrupt?t(o):A(o)):(L=7,W.interrupt?n(o):R?k(o):x(o)):45===o||i(o)?(e.consume(o),U+=r(o),g):n(o)}function y(r){return 62===r?(e.consume(r),W.interrupt?t:A):n(r)}function x(t){return u(t)?(e.consume(t),x):C(t)}function k(t){return 47===t?(e.consume(t),C):58===t||95===t||a(t)?(e.consume(t),b):u(t)?(e.consume(t),k):C(t)}function b(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),b):_(t)}function _(t){return 61===t?(e.consume(t),E):u(t)?(e.consume(t),_):k(t)}function E(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),V=t,w):u(t)?(e.consume(t),E):(V=void 0,S(t))}function w(t){return t===V?(e.consume(t),F):null===t||o(t)?n(t):(e.consume(t),w)}function S(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||s(t)?_(t):(e.consume(t),S)}function F(e){return 47===e||62===e||u(e)?k(e):n(e)}function C(t){return 62===t?(e.consume(t),O):n(t)}function O(t){return u(t)?(e.consume(t),O):null===t||o(t)?A(t):n(t)}function A(t){return 45===t&&2===L?(e.consume(t),P):60===t&&1===L?(e.consume(t),j):62===t&&4===L?(e.consume(t),B):63===t&&3===L?(e.consume(t),D):93===t&&5===L?(e.consume(t),z):!o(t)||6!==L&&7!==L?null===t||o(t)?T(t):(e.consume(t),A):e.check(d,B,T)(t)}function T(t){return e.exit("htmlFlowData"),I(t)}function I(t){return null===t?H(t):o(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I):(e.enter("htmlFlowData"),A(t))}function P(t){return 45===t?(e.consume(t),D):A(t)}function j(t){return 47===t?(e.consume(t),U="",M):A(t)}function M(t){return 62===t&&f.indexOf(U.toLowerCase())>-1?(e.consume(t),B):a(t)&&U.length<8?(e.consume(t),U+=r(t),M):A(t)}function z(t){return 93===t?(e.consume(t),D):A(t)}function D(t){return 62===t?(e.consume(t),B):A(t)}function B(t){return null===t||o(t)?(e.exit("htmlFlowData"),H(t)):(e.consume(t),B)}function H(n){return e.exit("htmlFlow"),t(n)}var L,R,U,N,V,W=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c}},resolveTo:function(e){for(var t=e.length;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},concrete:!0},d={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(c,t,n)}},partial:!0};e.exports=p},oSCq:function(e,t){"use strict";function n(e){var t,n;return r(e),t=47===e.charCodeAt(0),(n=function(e,t){var n,r,i="",o=0,u=-1,c=0,s=-1;for(;++s<=e.length;){if(s2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",o=0):(i=i.slice(0,r),o=i.length-1-i.lastIndexOf("/")),u=s,c=0;continue}}else if(i.length){i="",o=0,u=s,c=0;continue}t&&(i=i.length?i+"/..":"..",o=2)}else i.length?i+="/"+e.slice(u+1,s):i=e.slice(u+1,s),o=s-u-1;u=s,c=0}else 46===n&&c>-1?c++:c=-1}return i}(e,!t)).length||t||(n="."),n.length&&47===e.charCodeAt(e.length-1)&&(n+="/"),t?"/"+n:n}function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}t.basename=function(e,t){var n,i,o,u,c=0,s=-1;if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');if(r(e),n=e.length,void 0===t||!t.length||t.length>e.length){for(;n--;)if(47===e.charCodeAt(n)){if(o){c=n+1;break}}else s<0&&(o=!0,s=n+1);return s<0?"":e.slice(c,s)}if(t===e)return"";for(i=-1,u=t.length-1;n--;)if(47===e.charCodeAt(n)){if(o){c=n+1;break}}else i<0&&(o=!0,i=n+1),u>-1&&(e.charCodeAt(n)===t.charCodeAt(u--)?u<0&&(s=n):(u=-1,s=i));return c===s?s=i:s<0&&(s=e.length),e.slice(c,s)},t.dirname=function(e){var t,n,i;if(r(e),!e.length)return".";for(t=-1,i=e.length;--i;)if(47===e.charCodeAt(i)){if(n){t=i;break}}else n||(n=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},t.extname=function(e){var t,n,i,o=-1,u=0,c=-1,s=0;for(r(e),i=e.length;i--;)if(47!==(n=e.charCodeAt(i)))c<0&&(t=!0,c=i+1),46===n?o<0?o=i:1!==s&&(s=1):o>-1&&(s=-1);else if(t){u=i+1;break}return o<0||c<0||0===s||1===s&&o===c-1&&o===u+1?"":e.slice(o,c)},t.join=function(){for(var e,t=-1;++t-1?void 0:4)}function z(t){return e.enter("htmlTextData"),R(t)}function D(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}var B,H,L,R,U=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),a}}}},"ox/y":function(e,t,n){"use strict";function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}Object.defineProperty(t,"__esModule",{value:!0}),t.Link=t.Match=void 0;var i=Object.assign||function(e){for(var t=1;t>>0,1)},t.prototype.render=function(e){var t=this.nextUrl||(0,u.getCurrentUrl)(),n=t.replace(/\?.+$/,"");return this.nextUrl=null,e.children({url:t,path:n,matches:!1!==(0,u.exec)(n,e.path,{})})},t}(o.Component),s=function(e){var t=e.activeClassName,n=e.path,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["activeClassName","path"]);return(0,o.h)(c,{path:n||r.href},(function(e){return(0,o.h)(u.Link,i({},r,{class:[r.class||r.className,e.matches&&t].filter(Boolean).join(" ")}))}))};t.Link=s,t.default=c,c.Link=s},pMvH:function(e){"use strict";e.exports=function(e){return-2===e||-1===e||32===e}},"pi/J":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("4kIE"),i=n("7sXb"),o=n("A0tY"),u=function(e){function t(t){return xt;)g.containerState=y[r][1],y[r][0].exit.call(g,e);y.length=t}var h,m,v,g=this,y=[],x=0,k={tokenize:function(e,t){function n(t){return f-1?void 0:4)}},s={tokenize:function(e,t,n){return i(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=u},qWgT:function(e,t,n){"use strict";var r=n("4kIE");e.exports={name:"hardBreakEscape",tokenize:function(e,t,n){function i(i){return r(i)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(i)):n(i)}return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),i}}}},rNCH:function(e){"use strict";e.exports=["pre","script","style","textarea"]},"sWw+":function(e){"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},u=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,i=t.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!o)return!1;for(r in e);return void 0===r||t.call(e,r)},c=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(i)return i(e,n).value}return e[n]};e.exports=function e(){var t,n,r,i,a,l,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p-1?void 0:4)},partial:!0},x=o(this.events,"linePrefix"),k=0;return function(t){return e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),v=t,c(t)}},concrete:!0}},tezt:function(e,t,n){"use strict";var r=n("YT9o"),i=n("wcY4"),o=n("W9KB"),u=n("Ek7W"),c=n("Ww+Z"),s=n("mQVw"),a=n("j1Sy"),l=n("a7DW"),f=n("QGTt"),p=n("eOGU"),d={name:"labelEnd",tokenize:function(e,t,n){function r(n){return 40===n?e.attempt(h,t,c?t:i)(n):91===n?e.attempt(m,t,c?e.attempt(v,t,i):i)(n):c?t(n):i(n)}function i(e){return u._balanced=!0,n(e)}for(var u,c,s=this,a=s.events.length;a--;)if(("labelImage"===s.events[a][1].type||"labelLink"===s.events[a][1].type)&&!s.events[a][1]._balanced){u=s.events[a][1];break}return function(t){return u?u._inactive?i(t):(c=s.parser.defined.indexOf(o(s.sliceSerialize({start:u.end,end:s.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),r):n(t)}},resolveTo:function(e,t){for(var n,o,s,a,l,f,p,d=e.length,h=0;d--;)if(a=e[d][1],l){if("link"===a.type||"labelLink"===a.type&&a._inactive)break;"enter"===e[d][0]&&"labelLink"===a.type&&(a._inactive=!0)}else if(f){if("enter"===e[d][0]&&("labelImage"===a.type||"labelLink"===a.type)&&!a._balanced&&(l=d,"labelLink"!==a.type)){h=2;break}}else"labelEnd"===a.type&&(f=d);return n={type:"labelLink"===e[l][1].type?"link":"image",start:u(e[l][1].start),end:u(e[e.length-1][1].end)},o={type:"label",start:u(e[l][1].start),end:u(e[f][1].end)},s={type:"labelText",start:u(e[l+h+2][1].end),end:u(e[f-2][1].start)},p=i(p=[["enter",n,t],["enter",o,t]],e.slice(l+1,l+h+3)),p=i(p,[["enter",s,t]]),p=i(p,c(t.parser.constructs.insideSpan.null,e.slice(l+h+4,f-3),t)),p=i(p,[["exit",s,t],e[f-2],e[f-1],["exit",o,t]]),p=i(p,e.slice(f+1)),p=i(p,[["exit",n,t]]),r(e,l,e.length,p),e},resolveAll:function(e){for(var t,n=-1;++n-1?l():e.tokenize.call(t?r({},S,t):S,w,a,l)(n)}}function a(){return e(h,m),i}function l(){return m.restore(),++p1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:s(o(e[n][1].end),-p),end:o(e[n][1].end)},f={type:p>1?"strongSequence":"emphasisSequence",start:o(e[m][1].start),end:s(o(e[m][1].start),p)},a={type:p>1?"strongText":"emphasisText",start:o(e[n][1].end),end:o(e[m][1].start)},c={type:p>1?"strong":"emphasis",start:o(l.start),end:o(f.end)},e[n][1].end=o(l.start),e[m][1].start=o(f.end),d=[],e[n][1].end.offset-e[n][1].start.offset&&(d=i(d,[["enter",e[n][1],t],["exit",e[n][1],t]])),d=i(d,[["enter",c,t],["enter",l,t],["exit",l,t],["enter",a,t]]),d=i(d,u(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),d=i(d,[["exit",a,t],["enter",f,t],["exit",f,t],["exit",c,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,d=i(d,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,r(e,n-1,m-n+3,d),m=n+d.length-h-2;break}for(m=-1;++m -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","'use strict'\n\nmodule.exports = require('./lib')\n","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","'use strict'\n\nvar miniflat = require('./util/miniflat.js')\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\nvar content = require('../tokenize/content.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n return ok(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nmodule.exports = require('./dist')\n","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var stack = [{type: 'root', children: []}]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n stack[0].position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n return stack[0]\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiControl = require('../character/ascii-control.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionalComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tvnode._component = null;\n\t\tvnode._children = vnode._children && vnode._children.map(detachedClone);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children = vnode._children && vnode._children.map(removeOriginal);\n\t}\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent.componentWillUnmount =\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\tc._vnode._children[0] = removeOriginal(c.state._suspended);\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!wasHydrating && !c._pendingSuspensionCount++) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children)\n\t\t\tthis._vnode._children[0] = detachedClone(this._detachOnNextRender);\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, hydrate, render, __u as _unmount } from 'preact';\n\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @param {object | null | undefined} props\n *\n * TODO: this could use the \"fake root node\" trick from the partial hydration demo\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\tlet wrap = createElement(\n\t\tContextProvider,\n\t\t{ context: _this.context },\n\t\tprops._vnode\n\t);\n\n\t_this.componentWillUnmount = function() {\n\t\tlet parent = _this._temp.parentNode;\n\t\tif (parent) parent.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t\t_this._hasMounted = false;\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._hasMounted) {\n\t\t\t// Create a placeholder that we can use to insert into.\n\t\t\t_this._temp = document.createTextNode('');\n\t\t\t// temporarily store the current children of the container to restore them after render\n\t\t\t_this._children = container._children;\n\t\t\t// Hydrate existing nodes to keep the dom intact, when rendering\n\t\t\t// wrap into the container.\n\t\t\thydrate('', container);\n\t\t\t// Append to the container (this matches React's behavior)\n\t\t\tcontainer.appendChild(_this._temp);\n\t\t\t// At this point we have mounted and should set our container.\n\t\t\t_this._hasMounted = true;\n\t\t\t_this._container = container;\n\t\t\t// Render our wrapping element into temp.\n\t\t\trender(wrap, container, _this._temp);\n\t\t\t// restore the previous children of the container\n\t\t\tcontainer._children = _this._children;\n\t\t\t// store the children of the new vnode to be used in subsequent re-renders\n\t\t\t_this._children = _this._temp._children;\n\t\t} else {\n\t\t\t// When we have mounted and the vnode is present it means the\n\t\t\t// props have changed or a parent is triggering a rerender.\n\t\t\t// This implies we only need to call render. But we need to keep\n\t\t\t// the old tree around, otherwise will treat the vnodes as new and\n\t\t\t// will wrongly call `componentDidMount` on them\n\t\t\tcontainer._children = _this._children;\n\t\t\trender(wrap, container);\n\t\t\t_this._children = container._children;\n\t\t}\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._hasMounted) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t}\n\t// Set the wrapping element for future unmounting.\n\t_this._wrap = wrap;\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { _vnode: vnode, _container: container });\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst ONCHANGE_INPUT_TYPES =\n\ttypeof Symbol != 'undefined' ? /fil|che|rad/i : /fil|che|ra/i;\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (i === 'defaultValue' && 'value' in props && props.value == null) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!ONCHANGE_INPUT_TYPES.test(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: \n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\t}\n\n\tif (type && props.class != props.className) {\n\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '16.8.0'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","import {h} from 'preact'\nimport {Link} from 'preact-router/match'\nimport ReactMarkdown from 'react-markdown'\n\nimport {\n compressToEncodedURIComponent as encode,\n decompressFromEncodedURIComponent as decode\n} from 'lz-string'\n\nconst noop = _ => null\nconst ident = _ => _\n\nconst previewContorls = content => (\n
)\n\nconst Post = ({mode, payload, setMarkdown}) => {\n const [controls, decodeFn, encodeFn] = {\n preview: [previewContorls, ident, encode],\n post: [noop, decode, ident]\n }[mode]\n\n const markdown = decodeFn(payload)\n const encoded = encodeFn(payload)\n\n setMarkdown(markdown)\n\n return (
\n { controls(encoded) }\n\n
\n \n { markdown }\n \n
\n\n \n Edit post\n \n
)\n}\n\nexport default Post\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar chunkedPush = require('./chunked-push.js')\nvar miniflat = require('./miniflat.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('./shallow.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(err, tree, file) {\n if (err) {\n next(err)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n var file = ctx.file\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n file.contents = result\n } else {\n file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var frozen = false\n var freezeIndex = -1\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var length = attachers.length\n var index = -1\n\n while (++index < length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var plugin\n var options\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n plugin = values[0]\n options = values[1]\n transformer = null\n\n if (options === false) {\n continue\n }\n\n if (options === true) {\n values[1] = undefined\n }\n\n transformer = plugin.apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n\n namespace[key] = value\n\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var length\n var index\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length\n index = -1\n\n while (++index < length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var length = attachers.length\n var index = -1\n var entry\n\n while (++index < length) {\n entry = attachers[index]\n\n if (entry[0] === plugin) {\n return entry\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(err, tree, file) {\n tree = tree || node\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var complete = false\n var result\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(err, tree) {\n complete = true\n bail(err)\n result = tree\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(err) {\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var complete = false\n var file\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(err) {\n complete = true\n bail(err)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar shallow = require('../util/shallow.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-post.chunk.ecd18.js.map b/docs/route-post.chunk.ecd18.js.map deleted file mode 100644 index 825b7dd..0000000 --- a/docs/route-post.chunk.ecd18.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///../node_modules/micromark/dist/tokenize/character-reference.js","webpack:///../node_modules/micromark/dist/tokenize/content.js","webpack:///../node_modules/xtend/immutable.js","webpack:///../node_modules/react-markdown/lib/get-definitions.js","webpack:///../node_modules/vfile/index.js","webpack:///../node_modules/react-markdown/lib/renderers.js","webpack:///../node_modules/micromark/dist/parse.js","webpack:///../node_modules/micromark/dist/character/markdown-line-ending.js","webpack:///../node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack:///../node_modules/react-markdown/lib/wrap-table-rows.js","webpack:///../node_modules/micromark/dist/tokenize/factory-space.js","webpack:///../node_modules/react-markdown/lib/symbols.js","webpack:///../node_modules/react-is/cjs/react-is.production.min.js","webpack:///../node_modules/micromark/dist/character/ascii-alpha.js","webpack:///../node_modules/micromark/dist/tokenize/partial-blank-line.js","webpack:///../node_modules/micromark/dist/util/subtokenize.js","webpack:///../node_modules/micromark/dist/util/safe-from-int.js","webpack:///../node_modules/unist-util-visit/index.js","webpack:///../node_modules/micromark/dist/util/miniflat.js","webpack:///../node_modules/micromark/dist/tokenize/code-text.js","webpack:///../node_modules/parse-entities/decode-entity.browser.js","webpack:///../node_modules/lz-string/libs/lz-string.js","webpack:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../node_modules/is-buffer/index.js","webpack:///../node_modules/micromark/dist/util/shallow.js","webpack:///../node_modules/micromark/dist/tokenize/block-quote.js","webpack:///../node_modules/micromark/dist/util/slice-chunks.js","webpack:///../node_modules/react-markdown/lib/uri-transformer.js","webpack:///../node_modules/micromark/dist/character/ascii-atext.js","webpack:///../node_modules/micromark/dist/util/prefix-size.js","webpack:///../node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack:///../node_modules/trough/wrap.js","webpack:///../node_modules/micromark/dist/tokenize/thematic-break.js","webpack:///../node_modules/micromark/dist/tokenize/heading-atx.js","webpack:///../node_modules/micromark/dist/constant/splice.js","webpack:///../node_modules/micromark/dist/character/unicode-whitespace.js","webpack:///../node_modules/react-markdown/lib/react-markdown.js","webpack:///../node_modules/react-markdown/lib/plugins/disallow-node.js","webpack:///../node_modules/micromark/dist/constructs.js","webpack:///../node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../node_modules/micromark/dist/util/regex-check.js","webpack:///../node_modules/mdast-util-to-string/index.js","webpack:///../node_modules/micromark/dist/tokenize/factory-whitespace.js","webpack:///../node_modules/micromark/dist/util/classify-character.js","webpack:///../node_modules/micromark/dist/tokenize/autolink.js","webpack:///../node_modules/vfile/lib/minproc.browser.js","webpack:///../node_modules/micromark/dist/initialize/text.js","webpack:///../node_modules/prop-types/index.js","webpack:///../node_modules/micromark/dist/util/normalize-identifier.js","webpack:///../node_modules/micromark/dist/initialize/flow.js","webpack:///../node_modules/micromark/dist/util/resolve-all.js","webpack:///../node_modules/micromark/dist/tokenize/label-start-link.js","webpack:///../node_modules/react-markdown/lib/ast-to-react.js","webpack:///../node_modules/micromark/dist/util/chunked-splice.js","webpack:///../node_modules/micromark/dist/preprocess.js","webpack:///../node_modules/micromark/dist/tokenize/list.js","webpack:///../node_modules/micromark/dist/tokenize/factory-label.js","webpack:///../node_modules/bail/index.js","webpack:///../node_modules/micromark/dist/util/move-point.js","webpack:///../node_modules/is-plain-obj/index.js","webpack:///../node_modules/trough/index.js","webpack:///../node_modules/micromark/dist/tokenize/factory-title.js","webpack:///../node_modules/micromark/dist/tokenize/line-ending.js","webpack:///../node_modules/micromark/dist/character/ascii-digit.js","webpack:///../node_modules/mdast-util-from-markdown/index.js","webpack:///../node_modules/react-markdown/lib/plugins/naive-html.js","webpack:///../node_modules/micromark/dist/character/ascii-punctuation.js","webpack:///../node_modules/micromark/dist/util/serialize-chunks.js","webpack:///../node_modules/micromark/dist/util/size-chunks.js","webpack:///../node_modules/vfile/lib/index.js","webpack:///../node_modules/micromark/dist/character/unicode-punctuation.js","webpack:///../node_modules/mdast-util-from-markdown/dist/index.js","webpack:///../node_modules/micromark/dist/initialize/content.js","webpack:///../node_modules/micromark/dist/tokenize/factory-destination.js","webpack:///../node_modules/vfile/lib/core.js","webpack:///../node_modules/micromark/dist/tokenize/definition.js","webpack:///../node_modules/unist-util-visit-parents/index.js","webpack:///../node_modules/micromark/dist/util/combine-extensions.js","webpack:///../src/util.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../src/render.js","webpack:///../src/index.js","webpack:///../src/Children.js","webpack:///../node_modules/micromark/dist/tokenize/character-escape.js","webpack:///../node_modules/micromark/dist/constant/assign.js","webpack:///../node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack:///../node_modules/micromark/dist/character/ascii-hex-digit.js","webpack:///../node_modules/micromark/dist/constant/html-block-names.js","webpack:///./routes/post/index.js","webpack:///../node_modules/micromark/dist/constant/from-char-code.js","webpack:///../node_modules/micromark/dist/tokenize/html-flow.js","webpack:///../node_modules/vfile/lib/minpath.browser.js","webpack:///../node_modules/micromark/dist/tokenize/html-text.js","webpack:///../node_modules/preact-router/match.js","webpack:///../node_modules/micromark/dist/character/markdown-space.js","webpack:///../node_modules/micromark/dist/initialize/document.js","webpack:///../node_modules/micromark/dist/tokenize/hard-break-escape.js","webpack:///../node_modules/micromark/dist/constant/html-raw-names.js","webpack:///../node_modules/extend/index.js","webpack:///../node_modules/micromark/dist/tokenize/code-fenced.js","webpack:///../node_modules/micromark/dist/tokenize/label-end.js","webpack:///../node_modules/vfile-message/index.js","webpack:///../node_modules/mdast-add-list-metadata/index.js","webpack:///../node_modules/micromark/dist/util/create-tokenizer.js","webpack:///../node_modules/micromark/dist/tokenize/attention.js","webpack:///../node_modules/unified/index.js","webpack:///../node_modules/micromark/dist/util/chunked-push.js","webpack:///../node_modules/react-is/index.js","webpack:///../node_modules/micromark/dist/constant/has-own-property.js","webpack:///../node_modules/micromark/dist/tokenize/code-indented.js","webpack:///../node_modules/remark-parse/index.js","webpack:///../node_modules/micromark/dist/character/ascii-control.js","webpack:///../node_modules/unist-util-stringify-position/index.js","webpack:///../node_modules/micromark/dist/tokenize/setext-underline.js","webpack:///../node_modules/micromark/dist/tokenize/label-start-image.js","webpack:///../node_modules/micromark/dist/postprocess.js"],"names":["_interopDefaultLegacy","e","default","decodeEntity","require","asciiAlphanumeric","asciiDigit","asciiHexDigit","decodeEntity__default","module","exports","name","tokenize","effects","ok","nok","open","code","enter","consume","exit","numeric","max","test","value","token","size","self","sliceSerialize","this","markdownLineEnding","factorySpace","prefixSize","subtokenize","content","data","contentEnd","check","continuationConstruct","contentContinue","previous","next","contentType","resolve","events","interruptible","lazy","prefixed","parser","constructs","disable","null","indexOf","interrupt","flow","partial","target","i","arguments","length","source","key","hasOwnProperty","call","Object","prototype","visit","tree","definitions","undefined","node","identifier","toUpperCase","href","url","title","SimpleRenderer","tag","props","createElement","getCoreProps","children","xtend","React","supportsStringRender","parseInt","version","slice","break","paragraph","emphasis","strong","thematicBreak","blockquote","delete","link","image","linkReference","imageReference","table","bind","tableHead","tableBody","tableRow","tableCell","style","align","textAlign","coreProps","isHeader","root","className","Fragment","text","list","attrs","start","toString","ordered","listItem","checkbox","checked","type","readOnly","definition","heading","concat","level","inlineCode","language","html","skipHtml","isBlock","allowDangerousHtml","escapeHtml","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","cloneElement","element","miniflat","document","combineExtensions","createTokenizer","options","create","initializer","from","defined","extensions","string","regexCheck","wrap","position","push","end","markdownSpace","prefix","limit","Infinity","HtmlParser","Symbol","z","a","u","$$typeof","c","l","m","g","f","p","k","n","t","r","h","d","A","b","for","q","v","w","x","y","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","asciiAlpha","subcontent","eventIndex","add","startPositions","pop","jumps","unshift","chunkedSplice","stream","index","entered","adjust","context","startPosition","tokenizer","_tokenizer","childEvents","gaps","sliceStream","defineSkip","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","write","line","assign","shallow","event","lineIndex","otherIndex","otherEvent","parameters","subevents","more","_container","_movePreviousLineEndings","fromCharCode","base","visitor","reverse","visitParents","parents","parent","SKIP","EXIT","CONTINUE","openingSequence","sizeOpen","gap","closingSequence","tailExitIndex","headEnterIndex","splice","el","characters","char","entity","innerHTML","textContent","charCodeAt","LZString","getBaseValue","alphabet","character","baseReverseDic","charAt","String","keyStrBase64","keyStrUriSafe","compressToBase64","input","res","_compress","decompressFromBase64","_decompress","compressToUTF16","decompressFromUTF16","compressed","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","decompress","Array","result","forEach","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","Math","pow","resetValue","getNextValue","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","val","define","isBuffer","obj","constructor","readFloatLE","isSlowBuffer","_isBuffer","object","blockQuote","after","containerState","continuation","attempt","chunks","view","startIndex","_index","startBufferIndex","_bufferIndex","endIndex","endBufferIndex","protocols","uri","trim","first","colon","protocol","toLowerCase","asciiAtext","sizeChunks","tail","fn","callback","done","invoked","apply","then","params","error","Error","atBreak","marker","sequence","markdownLineEndingOrSpace","fenceOpenInside","headingBreak","contentStart","unicodeWhitespace","unified","parse","PropTypes","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","symbols","allTypes","keys","ReactMarkdown","src","allowedTypes","disallowedTypes","renderers","processor","use","plugins","runSync","renderProps","transforms","filter","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","hasHtmlParser","astPlugins","some","transform","identity","determineAstToReactTransforms","defaultProps","transformLinkUri","propTypes","sourcePos","bool","rawSourcePos","func","arrayOf","oneOf","oneOfType","linkTarget","transformImageUri","array","types","allow","mode","includes","defineProperty","text$1","attention","autolink","characterEscape","characterReference","codeFenced","codeIndented","codeText","hardBreakEscape","headingAtx","htmlFlow","htmlText","labelEnd","labelStartImage","labelStartLink","lineEnding","setextUnderline","42","43","45","48","49","50","51","52","53","54","55","56","57","62","flowInitial","32","35","60","61","95","96","126","38","92","33","91","93","insideSpan","resolver","contentInitial","emptyFunction","emptyFunctionWithReset","ReactPropTypesSecret","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","number","symbol","any","elementType","instanceOf","objectOf","shape","exact","checkPropTypes","regex","alt","all","values","seen","unicodePunctuation","asciiControl","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","cwd","initializeFactory","field","notText","resolveAll","createResolver","resolveAllLineSuffixes","extraResolver","chunk","bufferIndex","tabs","column","offset","partialBlankLine","afterConstruct","currentConstruct","initial","called","resolveChildren","map","childNode","nodeProps","renderer","pos","ReactIs","getNodeProps","opts","isSimpleRenderer","sourcePosition","includeNodeIndex","parentChildCount","ref","assignDefined","nodeKey","depth","spread","loose","listItemLoose","listLoose","reduce","child","unwrapParagraphs","getListItemChildren","lang","split","inline","columnAlignment","parsedChildren","isArray","Children","toArray","mergeNodeChildren","remove","items","chunkStart","search","atCarriageReturn","buffer","encoding","match","endPosition","lastIndex","exec","ceil","inside","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","initialSize","kind","notInCurrentItem","_closeFlow","furtherBlankLines","indentConstruct","markerType","stringType","label","labelEscape","point","getPrototypeOf","trough","fns","middleware","atFirstTitleBreak","atTitleBreak","titleEscape","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","current","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","fromIndex","toIndex","indent","virtual","asciiPunctuation","atTab","VMessage","VFile","message","reason","origin","path","file","fatal","messages","info","fail","extension","config","left","own","prepareList","tailIndex","tailEvent","firstBlankLineIndex","containerBalance","listSpread","_spread","setData","getData","opener","and","stack","tokenStack","closer","stringifyPosition","resume","onenterdata","siblings","onexitdata","onexithardbreak","onexitcharacterreferencemarker","codeFlow","meta","hardBreak","settings","configure","canContainEols","autolinkProtocol","autolinkEmail","atxHeading","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreakTrailing","htmlFlowData","htmlTextData","listItemValue","listOrdered","listUnordered","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","atxHeadingSequence","characterEscapeValue","characterReferenceMarkerHexadecimal","characterReferenceMarkerNumeric","characterReferenceValue","safeFromInt","decode","codeFencedFence","normalizeIdentifier","referenceType","fragment","labelText","resource","setextHeadingLineSequence","setextHeadingText","mdastExtensions","handler","listStack","compiler","postprocess","preprocessor","lineStart","literalType","literalMarkerType","rawType","destinationEnclosedBefore","destinationEnclosed","destinationEnclosedEscape","destinationRaw","balance","destinationRawEscape","prop","contents","history","proc","order","assertPart","part","sep","assertNonEmpty","assertPath","get","set","dirname","basename","extname","stem","factoryDestination","factoryLabel","factoryWhitespace","factoryTitle","labelAfter","titleConstruct","before","one","hook","right","existing","shallowDiffers","PureComponent","memo","comparer","shouldUpdate","nextProps","updateRef","Memoed","shouldComponentUpdate","displayName","isReactComponent","forwardRef","Forwarded","clone","REACT_FORWARD_SYMBOL","render","detachedClone","vnode","effect","removeOriginal","_suspenders","suspended","component","loader","prom","SuspenseList","_next","_map","getChildContext","_this","container","componentWillUnmount","_temp","parentNode","removeChild","_unmount","_wrap","_hasMounted","createTextNode","hydrate","appendChild","createPortal","preactRender","preactHydrate","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","createFactory","isValidElement","REACT_ELEMENT_TYPE","preactCloneElement","unmountComponentAtNode","findDOMNode","nodeType","Component","isPureReactComponent","state","oldDiffHook","mapFn","toChildArray","count","only","normalized","oldCatchError","newVNode","oldVNode","promise","suspendingVNode","suspendingComponent","resolved","onResolved","onSuspensionComplete","setState","forceUpdate","fallback","revealOrder","delegated","wrappedUnsuspend","unsuspend","Map","componentDidUpdate","componentDidMount","CAMEL_PROPS","ONCHANGE_INPUT_TYPES","configurable","writable","oldEventHook","persist","nativeEvent","currentComponent","classNameDescriptor","class","oldVNodeHook","normalizedProps","multiple","selected","enumerable","oldBeforeRender","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","unstable_batchedUpdates","arg","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","createContext","createRef","noop","ident","_","previewContorls","Post","payload","setMarkdown","preview","encode","post","controls","encodeFn","markdown","decodeFn","encoded","htmlBlockNames","htmlRawNames","declarationStart","tagCloseStart","continuationDeclarationInside","startTag","tagName","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","resolveTo","concrete","normalize","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","TypeError","JSON","stringify","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","returnState","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","afterPrefix","_possibleConstructorReturn","ReferenceError","Link","Match","_extends","_preact","_preactRouter","_Component","_len","args","_key","update","nextUrl","subClass","superClass","setPrototypeOf","__proto__","_inherits","subscribers","getCurrentUrl","matches","_ref","activeClassName","_objectWithoutProperties","_ref2","Boolean","continued","documentContinue","documentContinued","inspectResult","flowContinue","flowStart","childFlow","containerConstruct","containerContinue","exitContainers","now","childToken","continueFlow","inspectConstruct","documentAfterPeek","flowEnd","inspectStart","subcontinued","inspectContinue","inspectLess","inspectDone","inspectFlowEnd","lazyFlowConstruct","inspectLazy","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","extend","copy","copyIsArray","deep","sequenceOpen","infoOpen","openAfter","infoAfter","closingFenceConstruct","initialPrefix","closingSequenceEnd","chunkedPush","afterLabelEnd","resourceConstruct","balanced","fullReferenceConstruct","collapsedReferenceConstruct","labelStart","_balanced","_inactive","group","close","media","_used","destinationAfter","between","afterLabel","VMessagePrototype","parts","range","parseOrigin","ruleId","proto","visitWithParents","ast","listNode","serializeChunks","sliceChunks","initialize","go","onsuccessfulcheck","construct","restore","constructFactory","onreturn","fields","bogusState","handleListOfConstructs","listOfConstructs","handleConstruct","constructIndex","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","accountForPotentialSkip","store","addResult","resolveAllConstructs","columnStart","chunkIndex","main","classifyCharacter","movePoint","_open","_close","nextEvents","newable","assertParser","Parser","assertCompiler","Compiler","assertUnfrozen","frozen","assertNode","assertDone","asyncName","complete","bail","plain","vfile","destination","attachers","namespace","freeze","plugin","transformer","freezeIndex","transformers","find","run","cb","executor","reject","Promise","process","doc","pipeline","addPreset","addList","addPlugin","compile","processSync","ctx","indentedContentConstruct","fromMarkdown"],"mappings":"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","file":"route-post.chunk.ecd18.js","sourcesContent":["'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","'use strict'\n\nmodule.exports = require('./lib')\n","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","'use strict'\n\nvar miniflat = require('./util/miniflat.js')\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\nvar content = require('../tokenize/content.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n return ok(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nmodule.exports = require('./dist')\n","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var stack = [{type: 'root', children: []}]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n stack[0].position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n return stack[0]\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiControl = require('../character/ascii-control.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionalComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tvnode._component = null;\n\t\tvnode._children = vnode._children && vnode._children.map(detachedClone);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children = vnode._children && vnode._children.map(removeOriginal);\n\t}\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent.componentWillUnmount =\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\tc._vnode._children[0] = removeOriginal(c.state._suspended);\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!wasHydrating && !c._pendingSuspensionCount++) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children)\n\t\t\tthis._vnode._children[0] = detachedClone(this._detachOnNextRender);\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, hydrate, render, __u as _unmount } from 'preact';\n\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @param {object | null | undefined} props\n *\n * TODO: this could use the \"fake root node\" trick from the partial hydration demo\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\tlet wrap = createElement(\n\t\tContextProvider,\n\t\t{ context: _this.context },\n\t\tprops._vnode\n\t);\n\n\t_this.componentWillUnmount = function() {\n\t\tlet parent = _this._temp.parentNode;\n\t\tif (parent) parent.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t\t_this._hasMounted = false;\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._hasMounted) {\n\t\t\t// Create a placeholder that we can use to insert into.\n\t\t\t_this._temp = document.createTextNode('');\n\t\t\t// temporarily store the current children of the container to restore them after render\n\t\t\t_this._children = container._children;\n\t\t\t// Hydrate existing nodes to keep the dom intact, when rendering\n\t\t\t// wrap into the container.\n\t\t\thydrate('', container);\n\t\t\t// Append to the container (this matches React's behavior)\n\t\t\tcontainer.appendChild(_this._temp);\n\t\t\t// At this point we have mounted and should set our container.\n\t\t\t_this._hasMounted = true;\n\t\t\t_this._container = container;\n\t\t\t// Render our wrapping element into temp.\n\t\t\trender(wrap, container, _this._temp);\n\t\t\t// restore the previous children of the container\n\t\t\tcontainer._children = _this._children;\n\t\t\t// store the children of the new vnode to be used in subsequent re-renders\n\t\t\t_this._children = _this._temp._children;\n\t\t} else {\n\t\t\t// When we have mounted and the vnode is present it means the\n\t\t\t// props have changed or a parent is triggering a rerender.\n\t\t\t// This implies we only need to call render. But we need to keep\n\t\t\t// the old tree around, otherwise will treat the vnodes as new and\n\t\t\t// will wrongly call `componentDidMount` on them\n\t\t\tcontainer._children = _this._children;\n\t\t\trender(wrap, container);\n\t\t\t_this._children = container._children;\n\t\t}\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._hasMounted) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t}\n\t// Set the wrapping element for future unmounting.\n\t_this._wrap = wrap;\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { _vnode: vnode, _container: container });\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst ONCHANGE_INPUT_TYPES =\n\ttypeof Symbol != 'undefined' ? /fil|che|rad/i : /fil|che|ra/i;\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (i === 'defaultValue' && 'value' in props && props.value == null) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!ONCHANGE_INPUT_TYPES.test(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: \n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\t}\n\n\tif (type && props.class != props.className) {\n\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '16.8.0'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","import {h} from 'preact'\nimport {Link} from 'preact-router/match'\nimport ReactMarkdown from 'react-markdown'\n\nimport {\n compressToEncodedURIComponent as encode,\n decompressFromEncodedURIComponent as decode\n} from 'lz-string'\n\nconst noop = _ => null\nconst ident = _ => _\n\nconst previewContorls = content => (\n
)\n\nconst Post = ({mode, payload, setMarkdown}) => {\n const [controls, decodeFn, encodeFn] = {\n preview: [previewContorls, ident, encode],\n post: [noop, decode, ident]\n }[mode]\n\n const markdown = decodeFn(payload)\n const encoded = encodeFn(payload)\n\n setMarkdown(markdown)\n\n return (
\n { controls(encoded) }\n\n
\n \n { markdown }\n \n
\n\n \n Edit post\n \n
)\n}\n\nexport default Post\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar chunkedPush = require('./chunked-push.js')\nvar miniflat = require('./miniflat.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('./shallow.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(err, tree, file) {\n if (err) {\n next(err)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n var file = ctx.file\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n file.contents = result\n } else {\n file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var frozen = false\n var freezeIndex = -1\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var length = attachers.length\n var index = -1\n\n while (++index < length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var plugin\n var options\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n plugin = values[0]\n options = values[1]\n transformer = null\n\n if (options === false) {\n continue\n }\n\n if (options === true) {\n values[1] = undefined\n }\n\n transformer = plugin.apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n\n namespace[key] = value\n\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var length\n var index\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length\n index = -1\n\n while (++index < length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var length = attachers.length\n var index = -1\n var entry\n\n while (++index < length) {\n entry = attachers[index]\n\n if (entry[0] === plugin) {\n return entry\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(err, tree, file) {\n tree = tree || node\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var complete = false\n var result\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(err, tree) {\n complete = true\n bail(err)\n result = tree\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(err) {\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var complete = false\n var file\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(err) {\n complete = true\n bail(err)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar shallow = require('../util/shallow.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/ssr-build/ssr-bundle.js b/docs/ssr-build/ssr-bundle.js index d31652f..71da5d9 100644 --- a/docs/ssr-build/ssr-bundle.js +++ b/docs/ssr-build/ssr-bundle.js @@ -13,5 +13,5 @@ module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;va * @author Feross Aboukhadijeh * @license MIT */ -e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},Ek7W:function(e,t,n){"use strict";var r=n("m5ak");e.exports=function(e){return r({},e)}},EsqR:function(e,t,n){"use strict";var r=n("pMvH"),i=n("7sXb"),o={name:"blockQuote",tokenize:function(e,t,n){var i=this;return function(t){if(62===t)return i.containerState.open||(e.enter("blockQuote",{_container:!0}),i.containerState.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),o;return n(t)};function o(n){return r(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){return i(e,e.attempt(o,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=o},FsDf:function(e,t,n){"use strict";e.exports=function(e,t){var n,r=t.start._index,i=t.start._bufferIndex,o=t.end._index,u=t.end._bufferIndex;return r===o?n=[e[r].slice(i,u)]:(n=e.slice(r,o),i>-1&&(n[0]=n[0].slice(i)),u>0&&n.push(e[o].slice(0,u))),n}},GFNa:function(e,t,n){},GZPr:function(e,t,n){"use strict";var r=["http","https","mailto","tel"];e.exports=function(e){var t=(e||"").trim(),n=t.charAt(0);if("#"===n||"/"===n)return t;var i=t.indexOf(":");if(-1===i)return t;for(var o=r.length,u=-1;++uu||-1!==(u=t.indexOf("#"))&&i>u?t:"javascript:void(0)"}},Gthe:function(e,t,n){"use strict";var r=n("OF0j")(/[#-'*+\--9=?A-Z^-~]/);e.exports=r},H5je:function(e,t,n){"use strict";var r=n("hKxf");e.exports=function(e,t){var n=e[e.length-1];return n&&n[1].type===t?r(n[2].sliceStream(n[1])):0}},HteQ:function(e,t){e.exports=require("preact")},INXP:function(e,t,n){"use strict";e.exports=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/},Iacx:function(e,t,n){"use strict";var r=[].slice;e.exports=function(e,t){var n;return function(){var t,u=r.call(arguments,0),c=e.length>u.length;c&&u.push(i);try{t=e.apply(null,u)}catch(e){if(c&&n)throw e;return i(e)}c||(t&&"function"==typeof t.then?t.then(o,i):t instanceof Error?i(t):o(t))};function i(){n||(n=!0,t.apply(null,arguments))}function o(e){i(null,e)}}},JdhB:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH"),o=n("7sXb"),u={name:"thematicBreak",tokenize:function(e,t,n){var u,c=0;return function(t){return e.enter("thematicBreak"),u=t,a(t)};function a(l){return l===u?(e.enter("thematicBreakSequence"),s(l)):i(l)?o(e,a,"whitespace")(l):c<3||null!==l&&!r(l)?n(l):(e.exit("thematicBreak"),t(l))}function s(t){return t===u?(e.consume(t),c++,s):(e.exit("thematicBreakSequence"),a(t))}}};e.exports=u},K4HH:function(e,t,n){"use strict";var r=n("YT9o"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw"),a={name:"headingAtx",tokenize:function(e,t,n){var r=this,a=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),s(t)};function s(i){return 35===i&&a++<6?(e.consume(i),s):null===i||c(i)?(e.exit("atxHeadingSequence"),r.interrupt?t(i):l(i)):n(i)}function l(n){return 35===n?(e.enter("atxHeadingSequence"),f(n)):null===n||i(n)?(e.exit("atxHeading"),t(n)):o(n)?u(e,l,"whitespace")(n):(e.enter("atxHeadingText"),p(n))}function f(t){return 35===t?(e.consume(t),f):(e.exit("atxHeadingSequence"),l(t))}function p(t){return null===t||35===t||c(t)?(e.exit("atxHeadingText"),l(t)):(e.consume(t),p)}},resolve:function(e,t){var n,i,o=e.length-2,u=3;"whitespace"===e[u][1].type&&(u+=2);o-2>u&&"whitespace"===e[o][1].type&&(o-=2);"atxHeadingSequence"===e[o][1].type&&(u===o-1||o-4>u&&"whitespace"===e[o-2][1].type)&&(o-=u+1===o?2:4);o>u&&(n={type:"atxHeadingText",start:e[u][1].start,end:e[o][1].end},i={type:"chunkText",start:e[u][1].start,end:e[o][1].end,contentType:"text"},r(e,u,o-u+1,[["enter",n,t],["enter",i,t],["exit",i,t],["exit",n,t]]));return e}};e.exports=a},KSUl:function(e,t,n){"use strict";var r=[].splice;e.exports=r},Kio5:function(e,t,n){"use strict";var r=n("OF0j")(/\s/);e.exports=r},LO0j:function(e,t,n){"use strict";var r=n("1hwd"),i=n("w6Nv"),o=n("yAYQ"),u=n("W0B4"),c=n("unVz"),a=n("gxcY"),s=n("N//3"),l=n("XmUT"),f=n("7kD2"),p=n("26+u"),d=n("GZPr"),h=n("3d/4"),m=n("8UgC"),g=Object.keys(h),v=function(e){var t=e.source||e.children||"";if(e.allowedTypes&&e.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=r(h,e.renderers),u=i().use(o).use(e.plugins||[]),d=u.runSync(u.parse(t)),v=r(e,{renderers:n,definitions:p(d)});return function(e){var t=[f,c()],n=e.disallowedTypes;e.allowedTypes&&(n=g.filter((function(t){return"root"!==t&&-1===e.allowedTypes.indexOf(t)})));var r=e.unwrapDisallowed?"unwrap":"remove";n&&n.length>0&&t.push(s.ofType(n,r));e.allowNode&&t.push(s.ifNotMatch(e.allowNode,r));var i=(e.allowDangerousHtml||!1===e.escapeHtml)&&!e.skipHtml,o=(e.astPlugins||[]).some((function(e){return e.identity===m.HtmlParser}));i&&!o&&t.push(a);e.astPlugins&&(t=t.concat(e.astPlugins));return t.push(l),t}(e).forEach((function(e){d=e(d,v)})),d};v.defaultProps={transformLinkUri:d},v.propTypes={className:u.string,source:u.string,children:u.string,sourcePos:u.bool,rawSourcePos:u.bool,escapeHtml:u.bool,allowDangerousHtml:u.bool,skipHtml:u.bool,allowNode:u.func,allowedTypes:u.arrayOf(u.oneOf(g)),disallowedTypes:u.arrayOf(u.oneOf(g)),transformLinkUri:u.oneOfType([u.func,u.bool]),linkTarget:u.oneOfType([u.func,u.string]),transformImageUri:u.func,astPlugins:u.arrayOf(u.func),unwrapDisallowed:u.bool,renderers:u.object,plugins:u.array},v.types=g,v.renderers=h,v.uriTransformer=d,e.exports=v},LzXL:function(e,t,n){"use strict";e.exports=process},"N//3":function(e,t,n){"use strict";var r=n("BN5T"),i=[].splice;function o(e,t){return function(e){return r(e,n),e};function n(n,r,o){if(o&&!e(n,r,o)){var u=[r,1];return"unwrap"===t&&n.children&&(u=u.concat(n.children)),i.apply(o.children,u),r}}}t.ofType=function(e,t){return o((function(t,n,r){return!e.includes(t.type)}),t)},t.ifNotMatch=o},NFok:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("VNaL"),i=n("w+ik"),o=n("UMwc"),u=n("EsqR"),c=n("lD/g"),a=n("0+f6"),s=n("sy7/"),l=n("xyCV"),f=n("Bdgx"),p=n("kSGr"),d=n("qWgT"),h=n("K4HH"),m=n("oAca"),g=n("oarT"),v=n("tezt"),y=n("zTh2"),b=n("XFvC"),x=n("gC7f"),k=n("JdhB"),_=n("Z6Dk"),w=n("zN7H"),E={42:_,43:_,45:_,48:_,49:_,50:_,51:_,52:_,53:_,54:_,55:_,56:_,57:_,62:u},S={91:p},A={"-2":l,"-1":l,32:l},C={35:h,42:k,45:[w,k],60:m,61:w,95:k,96:s,126:s},q={38:a,92:c},T={"-5":x,"-4":x,"-3":x,33:y,38:a,42:i,60:[o,g],91:b,92:[d,c],93:v,95:i,96:f},O={null:[i,r.resolver]};t.contentInitial=S,t.disable={null:[]},t.document=E,t.flow=C,t.flowInitial=A,t.insideSpan=O,t.string=q,t.text=T},NS33:function(e,t,n){"use strict";var r=n("E02R");function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,u){if(u!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},OF0j:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){return function(t){return e.test(r(t))}}},Q4YM:function(e,t,n){"use strict";function r(e){return e&&(e.value||e.alt||e.title||"children"in e&&i(e.children)||"length"in e&&i(e))||""}function i(e){for(var t=[],n=-1;++n=n.__.length&&n.__.push({}),n.__[e]}function m(e){return c=1,g(F,e)}function g(e,t,n){var o=h(r++,2);return o.t=e,o.__c||(o.__=[n?n(t):F(void 0,t),function(e){var t=o.t(o.__[0],e);o.__[0]!==t&&(o.__=[t,o.__[1]],o.__c.setState({}))}],o.__c=i),o.__}function v(e,t){var n=h(r++,3);!u.options.__s&&O(n.__H,t)&&(n.__=e,n.__H=t,i.__H.__h.push(n))}function y(e,t){var n=h(r++,4);!u.options.__s&&O(n.__H,t)&&(n.__=e,n.__H=t,i.__h.push(n))}function b(e){return c=5,k((function(){return{current:e}}),[])}function x(e,t,n){c=6,y((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==n?n:n.concat(e))}function k(e,t){var n=h(r++,7);return O(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function _(e,t){return c=8,k((function(){return e}),t)}function w(e){var t=i.context[e.__c],n=h(r++,9);return n.__c=e,t?(null==n.__&&(n.__=!0,t.sub(i)),t.props.value):e.__}function E(e,t){u.options.useDebugValue&&u.options.useDebugValue(t?t(e):e)}function S(e){var t=h(r++,10),n=m();return t.__=e,i.componentDidCatch||(i.componentDidCatch=function(e){t.__&&t.__(e),n[1](e)}),[n[0],function(){n[1](void 0)}]}function A(){a.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(q),e.__H.__h.forEach(T),e.__H.__h=[]}catch(t){e.__H.__h=[],u.options.__e(t,e.__v)}})),a=[]}u.options.__b=function(e){i=null,s&&s(e)},u.options.__r=function(e){l&&l(e),r=0;var t=(i=e.__c).__H;t&&(t.__h.forEach(q),t.__h.forEach(T),t.__h=[])},u.options.diffed=function(e){f&&f(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==a.push(t)&&o===u.options.requestAnimationFrame||((o=u.options.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),C&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);C&&(t=requestAnimationFrame(n))})(A)),i=void 0},u.options.__c=function(e,t){t.some((function(e){try{e.__h.forEach(q),e.__h=e.__h.filter((function(e){return!e.__||T(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],u.options.__e(n,e.__v)}})),p&&p(e,t)},u.options.unmount=function(e){d&&d(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(q)}catch(e){u.options.__e(e,t.__v)}};var C="function"==typeof requestAnimationFrame;function q(e){var t=i;"function"==typeof e.__c&&e.__c(),i=t}function T(e){var t=i;e.__c=e.__(),i=t}function O(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function F(e,t){return"function"==typeof t?t(e):t}},QfWi:function(e,t,n){"use strict";n.r(t);var r=n("HteQ"),i=n("QRet"),o=n("Y3FI"),u=n("ox/y"),c=n("tP7B"),a=n.n(c),s=function(e){var t=e.markdown,n=e.setMarkdown;return Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:a.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:function(e){var t=e.target;return n(t.value)}},t),Object(r.h)("nav",null,Object(r.h)(u.Link,{href:"/preview"},"Preview")))},l=n("LO0j"),f=n.n(l),p=n("D+jO"),d=function(e){return null},h=function(e){return e},m=function(e){return Object(r.h)("header",null,Object(r.h)("nav",null,Object(r.h)("ul",null,Object(r.h)("li",null,Object(r.h)(u.Link,{href:"/"},"Edit")),Object(r.h)("li",null,Object(r.h)(u.Link,{href:"/p/"+e},"Publish")))))},g=function(e){var t=e.mode,n=e.payload,i=e.setMarkdown,o={preview:[m,h,p.compressToEncodedURIComponent],post:[d,p.decompressFromEncodedURIComponent,h]}[t],c=o[0],a=o[1],s=o[2],l=a(n),g=s(n);return i(l),Object(r.h)("section",null,c(g),Object(r.h)("article",null,Object(r.h)(f.a,null,l)),Object(r.h)(u.Link,{href:"/"},"Edit post"))};n("pRls"),n("GFNa");function v(){return(v=Object.assign||function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var s=e.position.start,l=[e.type,s.line,s.column,i].join("-");if(!o.isValidElementType(a))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var f=c(e,l,t,a,n,i);return r.createElement(a,f,f.children||p()||void 0);function p(){return e.children&&e.children.map((function(n,r){return u(n,t,{node:e,props:f},r)}))}}function c(e,t,n,o,c,l){var f,p={key:t},d="string"==typeof o||o===r.Fragment;n.sourcePos&&e.position&&(p["data-sourcepos"]=[(f=e.position).start.line,":",f.start.column,"-",f.end.line,":",f.end.column].map(String).join("")),n.rawSourcePos&&!d&&(p.sourcePosition=e.position),n.includeNodeIndex&&c.node&&c.node.children&&!d&&(p.index=c.node.children.indexOf(e),p.parentChildCount=c.node.children.length);var h=null!==e.identifier&&void 0!==e.identifier?n.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":a(p,{className:n.className});break;case"text":p.nodeKey=t,p.children=e.value;break;case"heading":p.level=e.depth;break;case"list":p.start=e.start,p.ordered=e.ordered,p.spread=e.spread,p.depth=e.depth;break;case"listItem":p.checked=e.checked,p.spread=e.spread,p.ordered=e.ordered,p.index=e.index,p.children=function(e,t){return(t&&t.node?function(e){var t=e.children,n=e.spread,r=-1;for(;!n&&++r1:t}e.exports=u},Y3FI:function(e,t,n){"use strict";n.r(t),n.d(t,"subscribers",(function(){return d})),n.d(t,"getCurrentUrl",(function(){return m})),n.d(t,"route",(function(){return g})),n.d(t,"Router",(function(){return w})),n.d(t,"Route",(function(){return S})),n.d(t,"Link",(function(){return E})),n.d(t,"exec",(function(){return u}));var r=n("HteQ"),i={};function o(e,t){for(var n in t)e[n]=t[n];return e}function u(e,t,n){var r,o=/(?:\?([^#]*))?(#.*)?$/,u=e.match(o),c={};if(u&&u[1])for(var a=u[1].split("&"),l=0;lt.rank?-1:e.index-t.index}function a(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,s(t).map(l).join(""));var t}(e),e.props}function s(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function l(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var f=null,p=[],d=[],h={};function m(){var e;return""+((e=f&&f.location?f.location:f&&f.getCurrentLocation?f.getCurrentLocation():"undefined"!=typeof location?location:h).pathname||"")+(e.search||"")}function g(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=p.length;t--;)if(p[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),f&&f[t]?f[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),v(e)}function v(e){for(var t=!1,n=0;n0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){p.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;f&&(this.unlisten=f.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),p.splice(p.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,n){return e.filter(a).sort(c).map((function(e){var i=u(t,e.props.path,e.props);if(i){if(!1!==n){var c={url:t,matches:i};return o(c,i),delete c.ref,delete c.key,Object(r.cloneElement)(e,c)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var n=e.children,i=e.onChange,o=t.url,u=this.getMatchingChildren(Object(r.toChildArray)(n),o,!0),c=u[0]||null,a=this.previousUrl;return o!==a&&(this.previousUrl=o,"function"==typeof i&&i({router:this,url:o,previous:a,active:u,current:c})),c},t}(r.Component),E=function(e){return Object(r.createElement)("a",o({onClick:b},e))},S=function(e){return Object(r.createElement)(e.component,e)};w.subscribers=d,w.getCurrentUrl=m,w.route=g,w.Router=w,w.Route=S,w.Link=E,w.exec=u,t.default=w},YT9o:function(e,t,n){"use strict";var r=n("KSUl");e.exports=function(e,t,n,i){var o,u=e.length,c=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,i.length<1e4)(o=Array.from(i)).unshift(t,n),r.apply(e,o);else for(n&&r.apply(e,[t,n]);c-1?void 0:4)(r)}}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var o=this;return i(e,(function(e){return r(e)||!c(o.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",o.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,n){var r=this;return i(e,(function(e){return c(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=l},a7DW:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH");e.exports=function(e,t,n,o,u,c){var a,s=this,l=0;return function(t){return e.enter(o),e.enter(u),e.consume(t),e.exit(u),e.enter(c),f};function f(i){return null===i||91===i||93===i&&!a||94===i&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs||l>999?n(i):93===i?(e.exit(c),e.enter(u),e.consume(i),e.exit(u),e.exit(o),t):r(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),p(i))}function p(t){return null===t||91===t||93===t||r(t)||l++>999?(e.exit("chunkString"),f(t)):(e.consume(t),a=a||!i(t),92===t?d:p)}function d(t){return 91===t||92===t||93===t?(e.consume(t),l++,p):p(t)}}},ajvC:function(e,t,n){"use strict";e.exports=function(e){if(e)throw e}},bhct:function(e,t,n){"use strict";var r=n("h+A4");e.exports=function(e){return!!i.call(r,e)&&r[e]};var i={}.hasOwnProperty},bpHb:function(e,t,n){"use strict";e.exports=function(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}},cTMR:function(e,t,n){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t;return"[object Object]"===r.call(e)&&(null===(t=Object.getPrototypeOf(e))||t===Object.getPrototypeOf({}))}},dY77:function(e,t,n){"use strict";var r=n("Iacx");e.exports=o,o.wrap=r;var i=[].slice;function o(){var e=[],t={run:function(){var t=-1,n=i.call(arguments,0,-1),o=arguments[arguments.length-1];if("function"!=typeof o)throw new Error("Expected function as last argument, not "+o);function u(c){var a=e[++t],s=i.call(arguments,0),l=s.slice(1),f=n.length,p=-1;if(c)o(c);else{for(;++p$/i,o=/^<(\/?)([a-z]+)\s*>$/;e.exports=function(e){var t,n;return r(e,"html",(function(e,r,u){n!==u&&(t=[],n=u);var c=function(e){var t=e.value.match(i);return!!t&&t[1]}(e);if(c)return u.children.splice(r,1,{type:"virtualHtml",tag:c,position:e.position}),!0;var a=function(e,t){var n=e.value.match(o);return!!n&&{tag:n[2],opening:!n[1],node:e}}(e);if(!a)return!0;var s=function(e,t){var n=e.length;for(;n--;)if(e[n].tag===t)return e.splice(n,1)[0];return!1}(t,a.tag);return s?u.children.splice(r,0,function(e,t,n){var r=n.children.indexOf(e.node),i=n.children.indexOf(t.node),o=n.children.splice(r,i-r+1).slice(1,-1);return{type:"virtualHtml",children:o,tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}(a,s,u)):a.opening||t.push(a),!0}),!0),e}},"h+A4":function(e){e.exports=JSON.parse('{"AEli":"Æ","AElig":"Æ","AM":"&","AMP":"&","Aacut":"Á","Aacute":"Á","Abreve":"Ă","Acir":"Â","Acirc":"Â","Acy":"А","Afr":"𝔄","Agrav":"À","Agrave":"À","Alpha":"Α","Amacr":"Ā","And":"⩓","Aogon":"Ą","Aopf":"𝔸","ApplyFunction":"⁡","Arin":"Å","Aring":"Å","Ascr":"𝒜","Assign":"≔","Atild":"Ã","Atilde":"Ã","Aum":"Ä","Auml":"Ä","Backslash":"∖","Barv":"⫧","Barwed":"⌆","Bcy":"Б","Because":"∵","Bernoullis":"ℬ","Beta":"Β","Bfr":"𝔅","Bopf":"𝔹","Breve":"˘","Bscr":"ℬ","Bumpeq":"≎","CHcy":"Ч","COP":"©","COPY":"©","Cacute":"Ć","Cap":"⋒","CapitalDifferentialD":"ⅅ","Cayleys":"ℭ","Ccaron":"Č","Ccedi":"Ç","Ccedil":"Ç","Ccirc":"Ĉ","Cconint":"∰","Cdot":"Ċ","Cedilla":"¸","CenterDot":"·","Cfr":"ℭ","Chi":"Χ","CircleDot":"⊙","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","Colon":"∷","Colone":"⩴","Congruent":"≡","Conint":"∯","ContourIntegral":"∮","Copf":"ℂ","Coproduct":"∐","CounterClockwiseContourIntegral":"∳","Cross":"⨯","Cscr":"𝒞","Cup":"⋓","CupCap":"≍","DD":"ⅅ","DDotrahd":"⤑","DJcy":"Ђ","DScy":"Ѕ","DZcy":"Џ","Dagger":"‡","Darr":"↡","Dashv":"⫤","Dcaron":"Ď","Dcy":"Д","Del":"∇","Delta":"Δ","Dfr":"𝔇","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","Diamond":"⋄","DifferentialD":"ⅆ","Dopf":"𝔻","Dot":"¨","DotDot":"⃜","DotEqual":"≐","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrow":"↓","DownArrowBar":"⤓","DownArrowUpArrow":"⇵","DownBreve":"̑","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVector":"↽","DownLeftVectorBar":"⥖","DownRightTeeVector":"⥟","DownRightVector":"⇁","DownRightVectorBar":"⥗","DownTee":"⊤","DownTeeArrow":"↧","Downarrow":"⇓","Dscr":"𝒟","Dstrok":"Đ","ENG":"Ŋ","ET":"Ð","ETH":"Ð","Eacut":"É","Eacute":"É","Ecaron":"Ě","Ecir":"Ê","Ecirc":"Ê","Ecy":"Э","Edot":"Ė","Efr":"𝔈","Egrav":"È","Egrave":"È","Element":"∈","Emacr":"Ē","EmptySmallSquare":"◻","EmptyVerySmallSquare":"▫","Eogon":"Ę","Eopf":"𝔼","Epsilon":"Ε","Equal":"⩵","EqualTilde":"≂","Equilibrium":"⇌","Escr":"ℰ","Esim":"⩳","Eta":"Η","Eum":"Ë","Euml":"Ë","Exists":"∃","ExponentialE":"ⅇ","Fcy":"Ф","Ffr":"𝔉","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","Fopf":"𝔽","ForAll":"∀","Fouriertrf":"ℱ","Fscr":"ℱ","GJcy":"Ѓ","G":">","GT":">","Gamma":"Γ","Gammad":"Ϝ","Gbreve":"Ğ","Gcedil":"Ģ","Gcirc":"Ĝ","Gcy":"Г","Gdot":"Ġ","Gfr":"𝔊","Gg":"⋙","Gopf":"𝔾","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","Gt":"≫","HARDcy":"Ъ","Hacek":"ˇ","Hat":"^","Hcirc":"Ĥ","Hfr":"ℌ","HilbertSpace":"ℋ","Hopf":"ℍ","HorizontalLine":"─","Hscr":"ℋ","Hstrok":"Ħ","HumpDownHump":"≎","HumpEqual":"≏","IEcy":"Е","IJlig":"IJ","IOcy":"Ё","Iacut":"Í","Iacute":"Í","Icir":"Î","Icirc":"Î","Icy":"И","Idot":"İ","Ifr":"ℑ","Igrav":"Ì","Igrave":"Ì","Im":"ℑ","Imacr":"Ī","ImaginaryI":"ⅈ","Implies":"⇒","Int":"∬","Integral":"∫","Intersection":"⋂","InvisibleComma":"⁣","InvisibleTimes":"⁢","Iogon":"Į","Iopf":"𝕀","Iota":"Ι","Iscr":"ℐ","Itilde":"Ĩ","Iukcy":"І","Ium":"Ï","Iuml":"Ï","Jcirc":"Ĵ","Jcy":"Й","Jfr":"𝔍","Jopf":"𝕁","Jscr":"𝒥","Jsercy":"Ј","Jukcy":"Є","KHcy":"Х","KJcy":"Ќ","Kappa":"Κ","Kcedil":"Ķ","Kcy":"К","Kfr":"𝔎","Kopf":"𝕂","Kscr":"𝒦","LJcy":"Љ","L":"<","LT":"<","Lacute":"Ĺ","Lambda":"Λ","Lang":"⟪","Laplacetrf":"ℒ","Larr":"↞","Lcaron":"Ľ","Lcedil":"Ļ","Lcy":"Л","LeftAngleBracket":"⟨","LeftArrow":"←","LeftArrowBar":"⇤","LeftArrowRightArrow":"⇆","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVector":"⇃","LeftDownVectorBar":"⥙","LeftFloor":"⌊","LeftRightArrow":"↔","LeftRightVector":"⥎","LeftTee":"⊣","LeftTeeArrow":"↤","LeftTeeVector":"⥚","LeftTriangle":"⊲","LeftTriangleBar":"⧏","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVector":"↿","LeftUpVectorBar":"⥘","LeftVector":"↼","LeftVectorBar":"⥒","Leftarrow":"⇐","Leftrightarrow":"⇔","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","LessLess":"⪡","LessSlantEqual":"⩽","LessTilde":"≲","Lfr":"𝔏","Ll":"⋘","Lleftarrow":"⇚","Lmidot":"Ŀ","LongLeftArrow":"⟵","LongLeftRightArrow":"⟷","LongRightArrow":"⟶","Longleftarrow":"⟸","Longleftrightarrow":"⟺","Longrightarrow":"⟹","Lopf":"𝕃","LowerLeftArrow":"↙","LowerRightArrow":"↘","Lscr":"ℒ","Lsh":"↰","Lstrok":"Ł","Lt":"≪","Map":"⤅","Mcy":"М","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","MinusPlus":"∓","Mopf":"𝕄","Mscr":"ℳ","Mu":"Μ","NJcy":"Њ","Nacute":"Ń","Ncaron":"Ň","Ncedil":"Ņ","Ncy":"Н","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","Nfr":"𝔑","NoBreak":"⁠","NonBreakingSpace":" ","Nopf":"ℕ","Not":"⫬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","NotLeftTriangle":"⋪","NotLeftTriangleBar":"⧏̸","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangle":"⋫","NotRightTriangleBar":"⧐̸","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","Nscr":"𝒩","Ntild":"Ñ","Ntilde":"Ñ","Nu":"Ν","OElig":"Œ","Oacut":"Ó","Oacute":"Ó","Ocir":"Ô","Ocirc":"Ô","Ocy":"О","Odblac":"Ő","Ofr":"𝔒","Ograv":"Ò","Ograve":"Ò","Omacr":"Ō","Omega":"Ω","Omicron":"Ο","Oopf":"𝕆","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","Or":"⩔","Oscr":"𝒪","Oslas":"Ø","Oslash":"Ø","Otild":"Õ","Otilde":"Õ","Otimes":"⨷","Oum":"Ö","Ouml":"Ö","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","PartialD":"∂","Pcy":"П","Pfr":"𝔓","Phi":"Φ","Pi":"Π","PlusMinus":"±","Poincareplane":"ℌ","Popf":"ℙ","Pr":"⪻","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","Prime":"″","Product":"∏","Proportion":"∷","Proportional":"∝","Pscr":"𝒫","Psi":"Ψ","QUO":"\\"","QUOT":"\\"","Qfr":"𝔔","Qopf":"ℚ","Qscr":"𝒬","RBarr":"⤐","RE":"®","REG":"®","Racute":"Ŕ","Rang":"⟫","Rarr":"↠","Rarrtl":"⤖","Rcaron":"Ř","Rcedil":"Ŗ","Rcy":"Р","Re":"ℜ","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","Rfr":"ℜ","Rho":"Ρ","RightAngleBracket":"⟩","RightArrow":"→","RightArrowBar":"⇥","RightArrowLeftArrow":"⇄","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVector":"⇂","RightDownVectorBar":"⥕","RightFloor":"⌋","RightTee":"⊢","RightTeeArrow":"↦","RightTeeVector":"⥛","RightTriangle":"⊳","RightTriangleBar":"⧐","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVector":"↾","RightUpVectorBar":"⥔","RightVector":"⇀","RightVectorBar":"⥓","Rightarrow":"⇒","Ropf":"ℝ","RoundImplies":"⥰","Rrightarrow":"⇛","Rscr":"ℛ","Rsh":"↱","RuleDelayed":"⧴","SHCHcy":"Щ","SHcy":"Ш","SOFTcy":"Ь","Sacute":"Ś","Sc":"⪼","Scaron":"Š","Scedil":"Ş","Scirc":"Ŝ","Scy":"С","Sfr":"𝔖","ShortDownArrow":"↓","ShortLeftArrow":"←","ShortRightArrow":"→","ShortUpArrow":"↑","Sigma":"Σ","SmallCircle":"∘","Sopf":"𝕊","Sqrt":"√","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","Sscr":"𝒮","Star":"⋆","Sub":"⋐","Subset":"⋐","SubsetEqual":"⊆","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","SuchThat":"∋","Sum":"∑","Sup":"⋑","Superset":"⊃","SupersetEqual":"⊇","Supset":"⋑","THOR":"Þ","THORN":"Þ","TRADE":"™","TSHcy":"Ћ","TScy":"Ц","Tab":"\\t","Tau":"Τ","Tcaron":"Ť","Tcedil":"Ţ","Tcy":"Т","Tfr":"𝔗","Therefore":"∴","Theta":"Θ","ThickSpace":"  ","ThinSpace":" ","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","Topf":"𝕋","TripleDot":"⃛","Tscr":"𝒯","Tstrok":"Ŧ","Uacut":"Ú","Uacute":"Ú","Uarr":"↟","Uarrocir":"⥉","Ubrcy":"Ў","Ubreve":"Ŭ","Ucir":"Û","Ucirc":"Û","Ucy":"У","Udblac":"Ű","Ufr":"𝔘","Ugrav":"Ù","Ugrave":"Ù","Umacr":"Ū","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","Uopf":"𝕌","UpArrow":"↑","UpArrowBar":"⤒","UpArrowDownArrow":"⇅","UpDownArrow":"↕","UpEquilibrium":"⥮","UpTee":"⊥","UpTeeArrow":"↥","Uparrow":"⇑","Updownarrow":"⇕","UpperLeftArrow":"↖","UpperRightArrow":"↗","Upsi":"ϒ","Upsilon":"Υ","Uring":"Ů","Uscr":"𝒰","Utilde":"Ũ","Uum":"Ü","Uuml":"Ü","VDash":"⊫","Vbar":"⫫","Vcy":"В","Vdash":"⊩","Vdashl":"⫦","Vee":"⋁","Verbar":"‖","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","Vopf":"𝕍","Vscr":"𝒱","Vvdash":"⊪","Wcirc":"Ŵ","Wedge":"⋀","Wfr":"𝔚","Wopf":"𝕎","Wscr":"𝒲","Xfr":"𝔛","Xi":"Ξ","Xopf":"𝕏","Xscr":"𝒳","YAcy":"Я","YIcy":"Ї","YUcy":"Ю","Yacut":"Ý","Yacute":"Ý","Ycirc":"Ŷ","Ycy":"Ы","Yfr":"𝔜","Yopf":"𝕐","Yscr":"𝒴","Yuml":"Ÿ","ZHcy":"Ж","Zacute":"Ź","Zcaron":"Ž","Zcy":"З","Zdot":"Ż","ZeroWidthSpace":"​","Zeta":"Ζ","Zfr":"ℨ","Zopf":"ℤ","Zscr":"𝒵","aacut":"á","aacute":"á","abreve":"ă","ac":"∾","acE":"∾̳","acd":"∿","acir":"â","acirc":"â","acut":"´","acute":"´","acy":"а","aeli":"æ","aelig":"æ","af":"⁡","afr":"𝔞","agrav":"à","agrave":"à","alefsym":"ℵ","aleph":"ℵ","alpha":"α","amacr":"ā","amalg":"⨿","am":"&","amp":"&","and":"∧","andand":"⩕","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsd":"∡","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","aogon":"ą","aopf":"𝕒","ap":"≈","apE":"⩰","apacir":"⩯","ape":"≊","apid":"≋","apos":"\'","approx":"≈","approxeq":"≊","arin":"å","aring":"å","ascr":"𝒶","ast":"*","asymp":"≈","asympeq":"≍","atild":"ã","atilde":"ã","aum":"ä","auml":"ä","awconint":"∳","awint":"⨑","bNot":"⫭","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","barvee":"⊽","barwed":"⌅","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","beta":"β","beth":"ℶ","between":"≬","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bnot":"⌐","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxDL":"╗","boxDR":"╔","boxDl":"╖","boxDr":"╓","boxH":"═","boxHD":"╦","boxHU":"╩","boxHd":"╤","boxHu":"╧","boxUL":"╝","boxUR":"╚","boxUl":"╜","boxUr":"╙","boxV":"║","boxVH":"╬","boxVL":"╣","boxVR":"╠","boxVh":"╫","boxVl":"╢","boxVr":"╟","boxbox":"⧉","boxdL":"╕","boxdR":"╒","boxdl":"┐","boxdr":"┌","boxh":"─","boxhD":"╥","boxhU":"╨","boxhd":"┬","boxhu":"┴","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxuL":"╛","boxuR":"╘","boxul":"┘","boxur":"└","boxv":"│","boxvH":"╪","boxvL":"╡","boxvR":"╞","boxvh":"┼","boxvl":"┤","boxvr":"├","bprime":"‵","breve":"˘","brvba":"¦","brvbar":"¦","bscr":"𝒷","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsol":"\\\\","bsolb":"⧅","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","bumpeq":"≏","cacute":"ć","cap":"∩","capand":"⩄","capbrcup":"⩉","capcap":"⩋","capcup":"⩇","capdot":"⩀","caps":"∩︀","caret":"⁁","caron":"ˇ","ccaps":"⩍","ccaron":"č","ccedi":"ç","ccedil":"ç","ccirc":"ĉ","ccups":"⩌","ccupssm":"⩐","cdot":"ċ","cedi":"¸","cedil":"¸","cemptyv":"⦲","cen":"¢","cent":"¢","centerdot":"·","cfr":"𝔠","chcy":"ч","check":"✓","checkmark":"✓","chi":"χ","cir":"○","cirE":"⧃","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledR":"®","circledS":"Ⓢ","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","clubs":"♣","clubsuit":"♣","colon":":","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","conint":"∮","copf":"𝕔","coprod":"∐","cop":"©","copy":"©","copysr":"℗","crarr":"↵","cross":"✗","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cup":"∪","cupbrcap":"⩈","cupcap":"⩆","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curre":"¤","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dArr":"⇓","dHar":"⥥","dagger":"†","daleth":"ℸ","darr":"↓","dash":"‐","dashv":"⊣","dbkarow":"⤏","dblac":"˝","dcaron":"ď","dcy":"д","dd":"ⅆ","ddagger":"‡","ddarr":"⇊","ddotseq":"⩷","de":"°","deg":"°","delta":"δ","demptyv":"⦱","dfisht":"⥿","dfr":"𝔡","dharl":"⇃","dharr":"⇂","diam":"⋄","diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","digamma":"ϝ","disin":"⋲","div":"÷","divid":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","dopf":"𝕕","dot":"˙","doteq":"≐","doteqdot":"≑","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","downarrow":"↓","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","dscr":"𝒹","dscy":"ѕ","dsol":"⧶","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","dzcy":"џ","dzigrarr":"⟿","eDDot":"⩷","eDot":"≑","eacut":"é","eacute":"é","easter":"⩮","ecaron":"ě","ecir":"ê","ecirc":"ê","ecolon":"≕","ecy":"э","edot":"ė","ee":"ⅇ","efDot":"≒","efr":"𝔢","eg":"⪚","egrav":"è","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","emacr":"ē","empty":"∅","emptyset":"∅","emptyv":"∅","emsp13":" ","emsp14":" ","emsp":" ","eng":"ŋ","ensp":" ","eogon":"ę","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","equals":"=","equest":"≟","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erDot":"≓","erarr":"⥱","escr":"ℯ","esdot":"≐","esim":"≂","eta":"η","et":"ð","eth":"ð","eum":"ë","euml":"ë","euro":"€","excl":"!","exist":"∃","expectation":"ℰ","exponentiale":"ⅇ","fallingdotseq":"≒","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","ffr":"𝔣","filig":"fi","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","fopf":"𝕗","forall":"∀","fork":"⋔","forkv":"⫙","fpartint":"⨍","frac1":"¼","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac3":"¾","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","gE":"≧","gEl":"⪌","gacute":"ǵ","gamma":"γ","gammad":"ϝ","gap":"⪆","gbreve":"ğ","gcirc":"ĝ","gcy":"г","gdot":"ġ","ge":"≥","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","ges":"⩾","gescc":"⪩","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","gfr":"𝔤","gg":"≫","ggg":"⋙","gimel":"ℷ","gjcy":"ѓ","gl":"≷","glE":"⪒","gla":"⪥","glj":"⪤","gnE":"≩","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gneq":"⪈","gneqq":"≩","gnsim":"⋧","gopf":"𝕘","grave":"`","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","g":">","gt":">","gtcc":"⪧","gtcir":"⩺","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","hArr":"⇔","hairsp":" ","half":"½","hamilt":"ℋ","hardcy":"ъ","harr":"↔","harrcir":"⥈","harrw":"↭","hbar":"ℏ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","horbar":"―","hscr":"𝒽","hslash":"ℏ","hstrok":"ħ","hybull":"⁃","hyphen":"‐","iacut":"í","iacute":"í","ic":"⁣","icir":"î","icirc":"î","icy":"и","iecy":"е","iexc":"¡","iexcl":"¡","iff":"⇔","ifr":"𝔦","igrav":"ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","ijlig":"ij","imacr":"ī","image":"ℑ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","imof":"⊷","imped":"Ƶ","in":"∈","incare":"℅","infin":"∞","infintie":"⧝","inodot":"ı","int":"∫","intcal":"⊺","integers":"ℤ","intercal":"⊺","intlarhk":"⨗","intprod":"⨼","iocy":"ё","iogon":"į","iopf":"𝕚","iota":"ι","iprod":"⨼","iques":"¿","iquest":"¿","iscr":"𝒾","isin":"∈","isinE":"⋹","isindot":"⋵","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","itilde":"ĩ","iukcy":"і","ium":"ï","iuml":"ï","jcirc":"ĵ","jcy":"й","jfr":"𝔧","jmath":"ȷ","jopf":"𝕛","jscr":"𝒿","jsercy":"ј","jukcy":"є","kappa":"κ","kappav":"ϰ","kcedil":"ķ","kcy":"к","kfr":"𝔨","kgreen":"ĸ","khcy":"х","kjcy":"ќ","kopf":"𝕜","kscr":"𝓀","lAarr":"⇚","lArr":"⇐","lAtail":"⤛","lBarr":"⤎","lE":"≦","lEg":"⪋","lHar":"⥢","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","lambda":"λ","lang":"⟨","langd":"⦑","langle":"⟨","lap":"⪅","laqu":"«","laquo":"«","larr":"←","larrb":"⇤","larrbfs":"⤟","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","lat":"⪫","latail":"⤙","late":"⪭","lates":"⪭︀","lbarr":"⤌","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","lcaron":"ľ","lcedil":"ļ","lceil":"⌈","lcub":"{","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","leftarrow":"←","leftarrowtail":"↢","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","leftthreetimes":"⋋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","les":"⩽","lescc":"⪨","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","lessgtr":"≶","lesssim":"≲","lfisht":"⥼","lfloor":"⌊","lfr":"𝔩","lg":"≶","lgE":"⪑","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","ljcy":"љ","ll":"≪","llarr":"⇇","llcorner":"⌞","llhard":"⥫","lltri":"◺","lmidot":"ŀ","lmoust":"⎰","lmoustache":"⎰","lnE":"≨","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","longleftrightarrow":"⟷","longmapsto":"⟼","longrightarrow":"⟶","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","lstrok":"ł","l":"<","lt":"<","ltcc":"⪦","ltcir":"⩹","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltrPar":"⦖","ltri":"◃","ltrie":"⊴","ltrif":"◂","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","mDDot":"∺","mac":"¯","macr":"¯","male":"♂","malt":"✠","maltese":"✠","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","mcy":"м","mdash":"—","measuredangle":"∡","mfr":"𝔪","mho":"℧","micr":"µ","micro":"µ","mid":"∣","midast":"*","midcir":"⫰","middo":"·","middot":"·","minus":"−","minusb":"⊟","minusd":"∸","minusdu":"⨪","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","mopf":"𝕞","mp":"∓","mscr":"𝓂","mstpos":"∾","mu":"μ","multimap":"⊸","mumap":"⊸","nGg":"⋙̸","nGt":"≫⃒","nGtv":"≫̸","nLeftarrow":"⇍","nLeftrightarrow":"⇎","nLl":"⋘̸","nLt":"≪⃒","nLtv":"≪̸","nRightarrow":"⇏","nVDash":"⊯","nVdash":"⊮","nabla":"∇","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natur":"♮","natural":"♮","naturals":"ℕ","nbs":" ","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","ncaron":"ň","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","ncy":"н","ndash":"–","ne":"≠","neArr":"⇗","nearhk":"⤤","nearr":"↗","nearrow":"↗","nedot":"≐̸","nequiv":"≢","nesear":"⤨","nesim":"≂̸","nexist":"∄","nexists":"∄","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","ngsim":"≵","ngt":"≯","ngtr":"≯","nhArr":"⇎","nharr":"↮","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","njcy":"њ","nlArr":"⇍","nlE":"≦̸","nlarr":"↚","nldr":"‥","nle":"≰","nleftarrow":"↚","nleftrightarrow":"↮","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nlsim":"≴","nlt":"≮","nltri":"⋪","nltrie":"⋬","nmid":"∤","nopf":"𝕟","no":"¬","not":"¬","notin":"∉","notinE":"⋹̸","notindot":"⋵̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","npar":"∦","nparallel":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","npre":"⪯̸","nprec":"⊀","npreceq":"⪯̸","nrArr":"⇏","nrarr":"↛","nrarrc":"⤳̸","nrarrw":"↝̸","nrightarrow":"↛","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","ntild":"ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","nu":"ν","num":"#","numero":"№","numsp":" ","nvDash":"⊭","nvHarr":"⤄","nvap":"≍⃒","nvdash":"⊬","nvge":"≥⃒","nvgt":">⃒","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwArr":"⇖","nwarhk":"⤣","nwarr":"↖","nwarrow":"↖","nwnear":"⤧","oS":"Ⓢ","oacut":"ó","oacute":"ó","oast":"⊛","ocir":"ô","ocirc":"ô","ocy":"о","odash":"⊝","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","oelig":"œ","ofcir":"⦿","ofr":"𝔬","ogon":"˛","ograv":"ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","omacr":"ō","omega":"ω","omicron":"ο","omid":"⦶","ominus":"⊖","oopf":"𝕠","opar":"⦷","operp":"⦹","oplus":"⊕","or":"∨","orarr":"↻","ord":"º","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oscr":"ℴ","oslas":"ø","oslash":"ø","osol":"⊘","otild":"õ","otilde":"õ","otimes":"⊗","otimesas":"⨶","oum":"ö","ouml":"ö","ovbar":"⌽","par":"¶","para":"¶","parallel":"∥","parsim":"⫳","parsl":"⫽","part":"∂","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","pfr":"𝔭","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plus":"+","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plusdo":"∔","plusdu":"⨥","pluse":"⩲","plusm":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","pointint":"⨕","popf":"𝕡","poun":"£","pound":"£","pr":"≺","prE":"⪳","prap":"⪷","prcue":"≼","pre":"⪯","prec":"≺","precapprox":"⪷","preccurlyeq":"≼","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","precsim":"≾","prime":"′","primes":"ℙ","prnE":"⪵","prnap":"⪹","prnsim":"⋨","prod":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","propto":"∝","prsim":"≾","prurel":"⊰","pscr":"𝓅","psi":"ψ","puncsp":" ","qfr":"𝔮","qint":"⨌","qopf":"𝕢","qprime":"⁗","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quo":"\\"","quot":"\\"","rAarr":"⇛","rArr":"⇒","rAtail":"⤜","rBarr":"⤏","rHar":"⥤","race":"∽̱","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","rangd":"⦒","range":"⦥","rangle":"⟩","raqu":"»","raquo":"»","rarr":"→","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","rarrtl":"↣","rarrw":"↝","ratail":"⤚","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","rcaron":"ř","rcedil":"ŗ","rceil":"⌉","rcub":"}","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","rect":"▭","re":"®","reg":"®","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","rhard":"⇁","rharu":"⇀","rharul":"⥬","rho":"ρ","rhov":"ϱ","rightarrow":"→","rightarrowtail":"↣","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","rightthreetimes":"⋌","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoust":"⎱","rmoustache":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","roplus":"⨮","rotimes":"⨵","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","rsaquo":"›","rscr":"𝓇","rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","ruluhar":"⥨","rx":"℞","sacute":"ś","sbquo":"‚","sc":"≻","scE":"⪴","scap":"⪸","scaron":"š","sccue":"≽","sce":"⪰","scedil":"ş","scirc":"ŝ","scnE":"⪶","scnap":"⪺","scnsim":"⋩","scpolint":"⨓","scsim":"≿","scy":"с","sdot":"⋅","sdotb":"⊡","sdote":"⩦","seArr":"⇘","searhk":"⤥","searr":"↘","searrow":"↘","sec":"§","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","sfr":"𝔰","sfrown":"⌢","sharp":"♯","shchcy":"щ","shcy":"ш","shortmid":"∣","shortparallel":"∥","sh":"­","shy":"­","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","softcy":"ь","sol":"/","solb":"⧄","solbar":"⌿","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","squ":"□","square":"□","squarf":"▪","squf":"▪","srarr":"→","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","subE":"⫅","subdot":"⪽","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","subseteq":"⊆","subseteqq":"⫅","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succ":"≻","succapprox":"⪸","succcurlyeq":"≽","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","sum":"∑","sung":"♪","sup":"⊃","sup1":"¹","sup2":"²","sup3":"³","supE":"⫆","supdot":"⪾","supdsub":"⫘","supe":"⊇","supedot":"⫄","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swArr":"⇙","swarhk":"⤦","swarr":"↙","swarrow":"↙","swnwar":"⤪","szli":"ß","szlig":"ß","target":"⌖","tau":"τ","tbrk":"⎴","tcaron":"ť","tcedil":"ţ","tcy":"т","tdot":"⃛","telrec":"⌕","tfr":"𝔱","there4":"∴","therefore":"∴","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","thinsp":" ","thkap":"≈","thksim":"∼","thor":"þ","thorn":"þ","tilde":"˜","time":"×","times":"×","timesb":"⊠","timesbar":"⨱","timesd":"⨰","tint":"∭","toea":"⤨","top":"⊤","topbot":"⌶","topcir":"⫱","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","tscr":"𝓉","tscy":"ц","tshcy":"ћ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","uArr":"⇑","uHar":"⥣","uacut":"ú","uacute":"ú","uarr":"↑","ubrcy":"ў","ubreve":"ŭ","ucir":"û","ucirc":"û","ucy":"у","udarr":"⇅","udblac":"ű","udhar":"⥮","ufisht":"⥾","ufr":"𝔲","ugrav":"ù","ugrave":"ù","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","umacr":"ū","um":"¨","uml":"¨","uogon":"ų","uopf":"𝕦","uparrow":"↑","updownarrow":"↕","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","upsi":"υ","upsih":"ϒ","upsilon":"υ","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","uring":"ů","urtri":"◹","uscr":"𝓊","utdot":"⋰","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","uum":"ü","uuml":"ü","uwangle":"⦧","vArr":"⇕","vBar":"⫨","vBarv":"⫩","vDash":"⊨","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vcy":"в","vdash":"⊢","vee":"∨","veebar":"⊻","veeeq":"≚","vellip":"⋮","verbar":"|","vert":"|","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","vopf":"𝕧","vprop":"∝","vrtri":"⊳","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","vzigzag":"⦚","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","wedgeq":"≙","weierp":"℘","wfr":"𝔴","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","xfr":"𝔵","xhArr":"⟺","xharr":"⟷","xi":"ξ","xlArr":"⟸","xlarr":"⟵","xmap":"⟼","xnis":"⋻","xodot":"⨀","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrArr":"⟹","xrarr":"⟶","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","yacut":"ý","yacute":"ý","yacy":"я","ycirc":"ŷ","ycy":"ы","ye":"¥","yen":"¥","yfr":"𝔶","yicy":"ї","yopf":"𝕪","yscr":"𝓎","yucy":"ю","yum":"ÿ","yuml":"ÿ","zacute":"ź","zcaron":"ž","zcy":"з","zdot":"ż","zeetrf":"ℨ","zeta":"ζ","zfr":"𝔷","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},"h+e0":function(e,t,n){"use strict";var r=n("OF0j")(/[!-/:-@[-`{-~]/);e.exports=r},h3af:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){for(var t,n,i,o=-1,u=[];++o-1&&(_.call(this,e),w.call(this,e))},link:b((function(){var e=this.stack[this.stack.length-1];f("inReference")?(e.type+="Reference",e.referenceType=f("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType);l("referenceType")})),listItem:b(),listOrdered:b(),listUnordered:b(),paragraph:b(),referenceString:function(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=c(this.sliceSerialize(e)).toLowerCase(),l("referenceType","full")},resourceDestinationString:function(){var e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){var e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){l("inReference")},setextHeading:b((function(){l("setextHeadingSlurpLineEnding")})),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){l("setextHeadingSlurpLineEnding",!0)},strong:b(),thematicBreak:b()}},t.mdastExtensions||[]),r={};return function(e){var t,r,i=[{type:"root",children:[]}],c=[],a=[],p=-1,h={stack:i,tokenStack:c,config:n,enter:y,exit:x,buffer:v,resume:k,setData:l,getData:f};for(;++pp?n(r):(e.consume(r),v):41===r?d--?(e.consume(r),v):(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(u),t(r)):null===r||i(r)?d?n(r):(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(u),t(r)):o(r)?n(r):(e.consume(r),92===r?y:v)}function y(t){return 40===t||41===t||92===t?(e.consume(t),v):v(t)}}},juNq:function(e,t,n){"use strict";var r=n("SpX7"),i=n("LzXL"),o=n("EbX1");e.exports=a;var u={}.hasOwnProperty,c=["history","path","basename","stem","extname","dirname"];function a(e){var t,n;if(e){if("string"==typeof e||o(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof a))return new a(e);for(this.data={},this.messages=[],this.history=[],this.cwd=i.cwd(),n=-1;++n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+r.sep+"`")}function l(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function f(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}a.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(a.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){l(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(a.prototype,"dirname",{get:function(){return"string"==typeof this.path?r.dirname(this.path):void 0},set:function(e){f(this.path,"dirname"),this.path=r.join(e||"",this.basename)}}),Object.defineProperty(a.prototype,"basename",{get:function(){return"string"==typeof this.path?r.basename(this.path):void 0},set:function(e){l(e,"basename"),s(e,"basename"),this.path=r.join(this.dirname||"",e)}}),Object.defineProperty(a.prototype,"extname",{get:function(){return"string"==typeof this.path?r.extname(this.path):void 0},set:function(e){if(s(e,"extname"),f(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=r.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(a.prototype,"stem",{get:function(){return"string"==typeof this.path?r.basename(this.path,this.extname):void 0},set:function(e){l(e,"stem"),s(e,"stem"),this.path=r.join(this.dirname||"",e+(this.extname||""))}})},kSGr:function(e,t,n){"use strict";var r=n("W9KB"),i=n("4kIE"),o=n("7sXb"),u=n("mQVw"),c=n("j1Sy"),a=n("a7DW"),s=n("QGTt"),l=n("eOGU"),f={name:"definition",tokenize:function(e,t,n){var u,l=this;return function(t){return e.enter("definition"),a.call(l,e,f,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function f(t){return u=r(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),s(e,c(e,e.attempt(p,o(e,d,"whitespace"),o(e,d,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function d(r){return null===r||i(r)?(e.exit("definition"),l.parser.defined.indexOf(u)<0&&l.parser.defined.push(u),t(r)):n(r)}}},p={tokenize:function(e,t,n){return function(t){return u(t)?s(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?l(e,o(e,c,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function c(e){return null===e||i(e)?t(e):n(e)}},partial:!0};e.exports=f},kqyo:function(e,t,n){"use strict";e.exports=function(e,t,n){var r=[];"function"==typeof t&&(n=t,t=null);function i(e){var o;return t&&e.type!==t||(o=n(e,r.concat())),e.children&&!1!==o?function(e,t){var n,o=e.length,u=-1;r.push(t);for(;++u3;)n.pop()();if(n[1]-1?(c=1,v.interrupt?t(o):j(o)):l.indexOf(h.toLowerCase())>-1?(c=6,47===o?(e.consume(o),E):v.interrupt?t(o):j(o)):(c=7,v.interrupt?n(o):p?A(o):S(o)):45===o||i(o)?(e.consume(o),h+=r(o),w):n(o)}function E(r){return 62===r?(e.consume(r),v.interrupt?t:j):n(r)}function S(t){return u(t)?(e.consume(t),S):L(t)}function A(t){return 47===t?(e.consume(t),L):58===t||95===t||s(t)?(e.consume(t),C):u(t)?(e.consume(t),A):L(t)}function C(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),C):q(t)}function q(t){return 61===t?(e.consume(t),T):u(t)?(e.consume(t),q):A(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),g=t,O):u(t)?(e.consume(t),T):(g=void 0,F(t))}function O(t){return t===g?(e.consume(t),D):null===t||o(t)?n(t):(e.consume(t),O)}function F(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||a(t)?q(t):(e.consume(t),F)}function D(e){return 47===e||62===e||u(e)?A(e):n(e)}function L(t){return 62===t?(e.consume(t),I):n(t)}function I(t){return u(t)?(e.consume(t),I):null===t||o(t)?j(t):n(t)}function j(t){return 45===t&&2===c?(e.consume(t),H):60===t&&1===c?(e.consume(t),B):62===t&&4===c?(e.consume(t),z):63===t&&3===c?(e.consume(t),M):93===t&&5===c?(e.consume(t),N):!o(t)||6!==c&&7!==c?null===t||o(t)?P(t):(e.consume(t),j):e.check(d,z,P)(t)}function P(t){return e.exit("htmlFlowData"),R(t)}function R(t){return null===t?V(t):o(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),R):(e.enter("htmlFlowData"),j(t))}function H(t){return 45===t?(e.consume(t),M):j(t)}function B(t){return 47===t?(e.consume(t),h="",U):j(t)}function U(t){return 62===t&&f.indexOf(h.toLowerCase())>-1?(e.consume(t),z):s(t)&&h.length<8?(e.consume(t),h+=r(t),U):j(t)}function N(t){return 93===t?(e.consume(t),M):j(t)}function M(t){return 62===t?(e.consume(t),z):j(t)}function z(t){return null===t||o(t)?(e.exit("htmlFlowData"),V(t)):(e.consume(t),z)}function V(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},d={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(c,t,n)}},partial:!0};e.exports=p},oarT:function(e,t,n){"use strict";var r=n("6zBE"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw"),a=n("9pEU"),s={name:"htmlText",tokenize:function(e,t,n){var s,l,f,p,d=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),h};function h(t){return 33===t?(e.consume(t),m):47===t?(e.consume(t),q):63===t?(e.consume(t),A):a(t)?(e.consume(t),F):n(t)}function m(t){return 45===t?(e.consume(t),g):91===t?(e.consume(t),l="CDATA[",f=0,k):a(t)?(e.consume(t),S):n(t)}function g(t){return 45===t?(e.consume(t),v):n(t)}function v(t){return null===t||62===t?n(t):45===t?(e.consume(t),y):b(t)}function y(e){return null===e||62===e?n(e):b(e)}function b(t){return null===t?n(t):45===t?(e.consume(t),x):i(t)?(p=b,B(t)):(e.consume(t),b)}function x(t){return 45===t?(e.consume(t),N):b(t)}function k(t){return t===l.charCodeAt(f++)?(e.consume(t),f===l.length?_:k):n(t)}function _(t){return null===t?n(t):93===t?(e.consume(t),w):i(t)?(p=_,B(t)):(e.consume(t),_)}function w(t){return 93===t?(e.consume(t),E):_(t)}function E(t){return 62===t?N(t):93===t?(e.consume(t),E):_(t)}function S(t){return null===t||62===t?N(t):i(t)?(p=S,B(t)):(e.consume(t),S)}function A(t){return null===t?n(t):63===t?(e.consume(t),C):i(t)?(p=A,B(t)):(e.consume(t),A)}function C(e){return 62===e?N(e):A(e)}function q(t){return a(t)?(e.consume(t),T):n(t)}function T(t){return 45===t||r(t)?(e.consume(t),T):O(t)}function O(t){return i(t)?(p=O,B(t)):o(t)?(e.consume(t),O):N(t)}function F(t){return 45===t||r(t)?(e.consume(t),F):47===t||62===t||c(t)?D(t):n(t)}function D(t){return 47===t?(e.consume(t),N):58===t||95===t||a(t)?(e.consume(t),L):i(t)?(p=D,B(t)):o(t)?(e.consume(t),D):N(t)}function L(t){return 45===t||46===t||58===t||95===t||r(t)?(e.consume(t),L):I(t)}function I(t){return 61===t?(e.consume(t),j):i(t)?(p=I,B(t)):o(t)?(e.consume(t),I):D(t)}function j(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,P):i(t)?(p=j,B(t)):o(t)?(e.consume(t),j):(e.consume(t),s=void 0,H)}function P(t){return t===s?(e.consume(t),R):null===t?n(t):i(t)?(p=P,B(t)):(e.consume(t),P)}function R(e){return 62===e||47===e||c(e)?D(e):n(e)}function H(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||c(t)?D(t):(e.consume(t),H)}function B(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),u(e,U,"linePrefix",d.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function U(t){return e.enter("htmlTextData"),p(t)}function N(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};e.exports=s},"ox/y":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Link=t.Match=void 0;var r=Object.assign||function(e){for(var t=1;t>>0,1)},t.prototype.render=function(e){var t=this.nextUrl||(0,o.getCurrentUrl)(),n=t.replace(/\?.+$/,"");return this.nextUrl=null,e.children({url:t,path:n,matches:!1!==(0,o.exec)(n,e.path,{})})},t}(i.Component),s=function(e){var t=e.activeClassName,n=e.path,u=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["activeClassName","path"]);return(0,i.h)(a,{path:n||u.href},(function(e){var n=e.matches;return(0,i.h)(o.Link,r({},u,{class:[u.class||u.className,n&&t].filter(Boolean).join(" ")}))}))};t.Link=s,t.default=a,a.Link=s},oyvS:function(e,t){e.exports=require("path")},pMvH:function(e,t,n){"use strict";e.exports=function(e){return-2===e||-1===e||32===e}},pRls:function(e,t,n){},"pi/J":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("4kIE"),i=n("7sXb"),o=n("A0tY"),u=function(e){var t,n,i,u=this,s=[],l=0,f={tokenize:function(e,r){var i=0;return t={},l;function l(r){return it;)u.containerState=s[o][1],s[o][0].exit.call(u,e);s.length=t}},c={tokenize:function(e,t,n){return i(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},a={tokenize:function(e,t,n){return i(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=u},qWgT:function(e,t,n){"use strict";var r=n("4kIE"),i={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),i};function i(i){return r(i)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(i)):n(i)}}};e.exports=i},rNCH:function(e,t,n){"use strict";e.exports=["pre","script","style","textarea"]},"sWw+":function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=Object.defineProperty,u=Object.getOwnPropertyDescriptor,c=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===i.call(e)},a=function(e){if(!e||"[object Object]"!==i.call(e))return!1;var t,n=r.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&r.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!o)return!1;for(t in e);return void 0===t||r.call(e,t)},s=function(e,t){o&&"__proto__"===t.name?o(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if("__proto__"===t){if(!r.call(e,t))return;if(u)return u(e,t).value}return e[t]};e.exports=function e(){var t,n,r,i,o,u,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p-1?void 0:4);function u(t){return t===c?(e.consume(t),o++,u):o-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),a)};function a(n){return 40===n?e.attempt(h,t,i?t:s)(n):91===n?e.attempt(m,t,i?e.attempt(g,t,s):s)(n):i?t(n):s(n)}function s(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,o,a,s,l,f,p,d=e.length,h=0;for(;d--;)if(s=e[d][1],l){if("link"===s.type||"labelLink"===s.type&&s._inactive)break;"enter"===e[d][0]&&"labelLink"===s.type&&(s._inactive=!0)}else if(f){if("enter"===e[d][0]&&("labelImage"===s.type||"labelLink"===s.type)&&!s._balanced&&(l=d,"labelLink"!==s.type)){h=2;break}}else"labelEnd"===s.type&&(f=d);return n={type:"labelLink"===e[l][1].type?"link":"image",start:u(e[l][1].start),end:u(e[e.length-1][1].end)},o={type:"label",start:u(e[l][1].start),end:u(e[f][1].end)},a={type:"labelText",start:u(e[l+h+2][1].end),end:u(e[f-2][1].start)},p=i(p=[["enter",n,t],["enter",o,t]],e.slice(l+1,l+h+3)),p=i(p,[["enter",a,t]]),p=i(p,c(t.parser.constructs.insideSpan.null,e.slice(l+h+4,f-3),t)),p=i(p,[["exit",a,t],e[f-2],e[f-1],["exit",o,t]]),p=i(p,e.slice(f+1)),p=i(p,[["exit",n,t]]),r(e,l,e.length,p),e},resolveAll:function(e){var t,n=-1;for(;++n-1)return m();return e.tokenize.call(t?r({},y,t):y,v,h,m)(n)}}function h(t){return e(s,l),i}function m(e){return l.restore(),++a1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1,l={type:p>1?"strongSequence":"emphasisSequence",start:a(o(e[n][1].end),-p),end:o(e[n][1].end)},f={type:p>1?"strongSequence":"emphasisSequence",start:o(e[m][1].start),end:a(o(e[m][1].start),p)},s={type:p>1?"strongText":"emphasisText",start:o(e[n][1].end),end:o(e[m][1].start)},c={type:p>1?"strong":"emphasis",start:o(l.start),end:o(f.end)},e[n][1].end=o(l.start),e[m][1].start=o(f.end),d=[],e[n][1].end.offset-e[n][1].start.offset&&(d=i(d,[["enter",e[n][1],t],["exit",e[n][1],t]])),d=i(d,[["enter",c,t],["enter",l,t],["exit",l,t],["enter",s,t]]),d=i(d,u(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),d=i(d,[["exit",s,t],["enter",f,t],["exit",f,t],["exit",c,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,d=i(d,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,r(e,n-1,m-n+3,d),m=n+d.length-h-2;break}m=-1;for(;++m-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=o},FsDf:function(e,t,n){"use strict";e.exports=function(e,t){var n,r=t.start._index,i=t.start._bufferIndex,o=t.end._index,u=t.end._bufferIndex;return r===o?n=[e[r].slice(i,u)]:(n=e.slice(r,o),i>-1&&(n[0]=n[0].slice(i)),u>0&&n.push(e[o].slice(0,u))),n}},GFNa:function(e,t,n){},GZPr:function(e,t,n){"use strict";var r=["http","https","mailto","tel"];e.exports=function(e){var t=(e||"").trim(),n=t.charAt(0);if("#"===n||"/"===n)return t;var i=t.indexOf(":");if(-1===i)return t;for(var o=r.length,u=-1;++uu||-1!==(u=t.indexOf("#"))&&i>u?t:"javascript:void(0)"}},Gthe:function(e,t,n){"use strict";var r=n("OF0j")(/[#-'*+\--9=?A-Z^-~]/);e.exports=r},H5je:function(e,t,n){"use strict";var r=n("hKxf");e.exports=function(e,t){var n=e[e.length-1];return n&&n[1].type===t?r(n[2].sliceStream(n[1])):0}},HteQ:function(e,t){e.exports=require("preact")},INXP:function(e,t,n){"use strict";e.exports=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/},Iacx:function(e,t,n){"use strict";var r=[].slice;e.exports=function(e,t){var n;return function(){var t,u=r.call(arguments,0),c=e.length>u.length;c&&u.push(i);try{t=e.apply(null,u)}catch(e){if(c&&n)throw e;return i(e)}c||(t&&"function"==typeof t.then?t.then(o,i):t instanceof Error?i(t):o(t))};function i(){n||(n=!0,t.apply(null,arguments))}function o(e){i(null,e)}}},JdhB:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH"),o=n("7sXb"),u={name:"thematicBreak",tokenize:function(e,t,n){var u,c=0;return function(t){return e.enter("thematicBreak"),u=t,a(t)};function a(l){return l===u?(e.enter("thematicBreakSequence"),s(l)):i(l)?o(e,a,"whitespace")(l):c<3||null!==l&&!r(l)?n(l):(e.exit("thematicBreak"),t(l))}function s(t){return t===u?(e.consume(t),c++,s):(e.exit("thematicBreakSequence"),a(t))}}};e.exports=u},K4HH:function(e,t,n){"use strict";var r=n("YT9o"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw"),a={name:"headingAtx",tokenize:function(e,t,n){var r=this,a=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),s(t)};function s(i){return 35===i&&a++<6?(e.consume(i),s):null===i||c(i)?(e.exit("atxHeadingSequence"),r.interrupt?t(i):l(i)):n(i)}function l(n){return 35===n?(e.enter("atxHeadingSequence"),f(n)):null===n||i(n)?(e.exit("atxHeading"),t(n)):o(n)?u(e,l,"whitespace")(n):(e.enter("atxHeadingText"),p(n))}function f(t){return 35===t?(e.consume(t),f):(e.exit("atxHeadingSequence"),l(t))}function p(t){return null===t||35===t||c(t)?(e.exit("atxHeadingText"),l(t)):(e.consume(t),p)}},resolve:function(e,t){var n,i,o=e.length-2,u=3;"whitespace"===e[u][1].type&&(u+=2);o-2>u&&"whitespace"===e[o][1].type&&(o-=2);"atxHeadingSequence"===e[o][1].type&&(u===o-1||o-4>u&&"whitespace"===e[o-2][1].type)&&(o-=u+1===o?2:4);o>u&&(n={type:"atxHeadingText",start:e[u][1].start,end:e[o][1].end},i={type:"chunkText",start:e[u][1].start,end:e[o][1].end,contentType:"text"},r(e,u,o-u+1,[["enter",n,t],["enter",i,t],["exit",i,t],["exit",n,t]]));return e}};e.exports=a},KSUl:function(e,t,n){"use strict";var r=[].splice;e.exports=r},Kio5:function(e,t,n){"use strict";var r=n("OF0j")(/\s/);e.exports=r},LO0j:function(e,t,n){"use strict";var r=n("1hwd"),i=n("w6Nv"),o=n("yAYQ"),u=n("W0B4"),c=n("unVz"),a=n("gxcY"),s=n("N//3"),l=n("XmUT"),f=n("7kD2"),p=n("26+u"),d=n("GZPr"),h=n("3d/4"),m=n("8UgC"),g=Object.keys(h),v=function(e){var t=e.source||e.children||"";if(e.allowedTypes&&e.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=r(h,e.renderers),u=i().use(o).use(e.plugins||[]),d=u.runSync(u.parse(t)),v=r(e,{renderers:n,definitions:p(d)});return function(e){var t=[f,c()],n=e.disallowedTypes;e.allowedTypes&&(n=g.filter((function(t){return"root"!==t&&-1===e.allowedTypes.indexOf(t)})));var r=e.unwrapDisallowed?"unwrap":"remove";n&&n.length>0&&t.push(s.ofType(n,r));e.allowNode&&t.push(s.ifNotMatch(e.allowNode,r));var i=(e.allowDangerousHtml||!1===e.escapeHtml)&&!e.skipHtml,o=(e.astPlugins||[]).some((function(e){return e.identity===m.HtmlParser}));i&&!o&&t.push(a);e.astPlugins&&(t=t.concat(e.astPlugins));return t.push(l),t}(e).forEach((function(e){d=e(d,v)})),d};v.defaultProps={transformLinkUri:d},v.propTypes={className:u.string,source:u.string,children:u.string,sourcePos:u.bool,rawSourcePos:u.bool,escapeHtml:u.bool,allowDangerousHtml:u.bool,skipHtml:u.bool,allowNode:u.func,allowedTypes:u.arrayOf(u.oneOf(g)),disallowedTypes:u.arrayOf(u.oneOf(g)),transformLinkUri:u.oneOfType([u.func,u.bool]),linkTarget:u.oneOfType([u.func,u.string]),transformImageUri:u.func,astPlugins:u.arrayOf(u.func),unwrapDisallowed:u.bool,renderers:u.object,plugins:u.array},v.types=g,v.renderers=h,v.uriTransformer=d,e.exports=v},LzXL:function(e,t,n){"use strict";e.exports=process},"N//3":function(e,t,n){"use strict";var r=n("BN5T"),i=[].splice;function o(e,t){return function(e){return r(e,n),e};function n(n,r,o){if(o&&!e(n,r,o)){var u=[r,1];return"unwrap"===t&&n.children&&(u=u.concat(n.children)),i.apply(o.children,u),r}}}t.ofType=function(e,t){return o((function(t,n,r){return!e.includes(t.type)}),t)},t.ifNotMatch=o},NFok:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("VNaL"),i=n("w+ik"),o=n("UMwc"),u=n("EsqR"),c=n("lD/g"),a=n("0+f6"),s=n("sy7/"),l=n("xyCV"),f=n("Bdgx"),p=n("kSGr"),d=n("qWgT"),h=n("K4HH"),m=n("oAca"),g=n("oarT"),v=n("tezt"),y=n("zTh2"),b=n("XFvC"),x=n("gC7f"),k=n("JdhB"),_=n("Z6Dk"),w=n("zN7H"),E={42:_,43:_,45:_,48:_,49:_,50:_,51:_,52:_,53:_,54:_,55:_,56:_,57:_,62:u},S={91:p},A={"-2":l,"-1":l,32:l},C={35:h,42:k,45:[w,k],60:m,61:w,95:k,96:s,126:s},q={38:a,92:c},T={"-5":x,"-4":x,"-3":x,33:y,38:a,42:i,60:[o,g],91:b,92:[d,c],93:v,95:i,96:f},O={null:[i,r.resolver]};t.contentInitial=S,t.disable={null:[]},t.document=E,t.flow=C,t.flowInitial=A,t.insideSpan=O,t.string=q,t.text=T},NS33:function(e,t,n){"use strict";var r=n("E02R");function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,u){if(u!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},OF0j:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){return function(t){return e.test(r(t))}}},Q4YM:function(e,t,n){"use strict";function r(e){return e&&(e.value||e.alt||e.title||"children"in e&&i(e.children)||"length"in e&&i(e))||""}function i(e){for(var t=[],n=-1;++n=n.__.length&&n.__.push({}),n.__[e]}function m(e){return c=1,g(F,e)}function g(e,t,n){var o=h(r++,2);return o.t=e,o.__c||(o.__=[n?n(t):F(void 0,t),function(e){var t=o.t(o.__[0],e);o.__[0]!==t&&(o.__=[t,o.__[1]],o.__c.setState({}))}],o.__c=i),o.__}function v(e,t){var n=h(r++,3);!u.options.__s&&O(n.__H,t)&&(n.__=e,n.__H=t,i.__H.__h.push(n))}function y(e,t){var n=h(r++,4);!u.options.__s&&O(n.__H,t)&&(n.__=e,n.__H=t,i.__h.push(n))}function b(e){return c=5,k((function(){return{current:e}}),[])}function x(e,t,n){c=6,y((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==n?n:n.concat(e))}function k(e,t){var n=h(r++,7);return O(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function _(e,t){return c=8,k((function(){return e}),t)}function w(e){var t=i.context[e.__c],n=h(r++,9);return n.__c=e,t?(null==n.__&&(n.__=!0,t.sub(i)),t.props.value):e.__}function E(e,t){u.options.useDebugValue&&u.options.useDebugValue(t?t(e):e)}function S(e){var t=h(r++,10),n=m();return t.__=e,i.componentDidCatch||(i.componentDidCatch=function(e){t.__&&t.__(e),n[1](e)}),[n[0],function(){n[1](void 0)}]}function A(){a.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(q),e.__H.__h.forEach(T),e.__H.__h=[]}catch(t){e.__H.__h=[],u.options.__e(t,e.__v)}})),a=[]}u.options.__b=function(e){i=null,s&&s(e)},u.options.__r=function(e){l&&l(e),r=0;var t=(i=e.__c).__H;t&&(t.__h.forEach(q),t.__h.forEach(T),t.__h=[])},u.options.diffed=function(e){f&&f(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==a.push(t)&&o===u.options.requestAnimationFrame||((o=u.options.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),C&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);C&&(t=requestAnimationFrame(n))})(A)),i=void 0},u.options.__c=function(e,t){t.some((function(e){try{e.__h.forEach(q),e.__h=e.__h.filter((function(e){return!e.__||T(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],u.options.__e(n,e.__v)}})),p&&p(e,t)},u.options.unmount=function(e){d&&d(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(q)}catch(e){u.options.__e(e,t.__v)}};var C="function"==typeof requestAnimationFrame;function q(e){var t=i;"function"==typeof e.__c&&e.__c(),i=t}function T(e){var t=i;e.__c=e.__(),i=t}function O(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function F(e,t){return"function"==typeof t?t(e):t}},QfWi:function(e,t,n){"use strict";n.r(t);var r=n("HteQ"),i=n("QRet"),o=n("Y3FI"),u=n("ox/y"),c=n("tP7B"),a=n.n(c),s=function(e){var t=e.markdown,n=e.setMarkdown;return Object(r.h)("section",null,Object(r.h)("h1",null,"Huge link"),Object(r.h)("p",null,"A minimalist serverless publishing tool that allows you to create markdown posts and push them to the Web by sharing the link."),Object(r.h)("textarea",{class:a.a.textarea,placeholder:"Write a post using markdown and click Preview",onInput:function(e){var t=e.target;return n(t.value)}},t),Object(r.h)("nav",null,Object(r.h)(u.Link,{href:"/huge-link/preview"},"Preview")))},l=n("LO0j"),f=n.n(l),p=n("D+jO"),d=function(e){return null},h=function(e){return e},m=function(e){return Object(r.h)("header",null,Object(r.h)("nav",null,Object(r.h)("ul",null,Object(r.h)("li",null,Object(r.h)(u.Link,{href:"/huge-link/"},"Edit")),Object(r.h)("li",null,Object(r.h)(u.Link,{href:"/huge-link/p/"+e},"Publish")))))},g=function(e){var t=e.mode,n=e.payload,i=e.setMarkdown,o={preview:[m,h,p.compressToEncodedURIComponent],post:[d,p.decompressFromEncodedURIComponent,h]}[t],c=o[0],a=o[1],s=o[2],l=a(n),g=s(n);return i(l),Object(r.h)("section",null,c(g),Object(r.h)("article",null,Object(r.h)(f.a,null,l)),Object(r.h)(u.Link,{href:"/huge-link/"},"Edit post"))};n("pRls"),n("GFNa");function v(){return(v=Object.assign||function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var s=e.position.start,l=[e.type,s.line,s.column,i].join("-");if(!o.isValidElementType(a))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var f=c(e,l,t,a,n,i);return r.createElement(a,f,f.children||p()||void 0);function p(){return e.children&&e.children.map((function(n,r){return u(n,t,{node:e,props:f},r)}))}}function c(e,t,n,o,c,l){var f,p={key:t},d="string"==typeof o||o===r.Fragment;n.sourcePos&&e.position&&(p["data-sourcepos"]=[(f=e.position).start.line,":",f.start.column,"-",f.end.line,":",f.end.column].map(String).join("")),n.rawSourcePos&&!d&&(p.sourcePosition=e.position),n.includeNodeIndex&&c.node&&c.node.children&&!d&&(p.index=c.node.children.indexOf(e),p.parentChildCount=c.node.children.length);var h=null!==e.identifier&&void 0!==e.identifier?n.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":a(p,{className:n.className});break;case"text":p.nodeKey=t,p.children=e.value;break;case"heading":p.level=e.depth;break;case"list":p.start=e.start,p.ordered=e.ordered,p.spread=e.spread,p.depth=e.depth;break;case"listItem":p.checked=e.checked,p.spread=e.spread,p.ordered=e.ordered,p.index=e.index,p.children=function(e,t){return(t&&t.node?function(e){var t=e.children,n=e.spread,r=-1;for(;!n&&++r1:t}e.exports=u},Y3FI:function(e,t,n){"use strict";n.r(t),n.d(t,"subscribers",(function(){return d})),n.d(t,"getCurrentUrl",(function(){return m})),n.d(t,"route",(function(){return g})),n.d(t,"Router",(function(){return w})),n.d(t,"Route",(function(){return S})),n.d(t,"Link",(function(){return E})),n.d(t,"exec",(function(){return u}));var r=n("HteQ"),i={};function o(e,t){for(var n in t)e[n]=t[n];return e}function u(e,t,n){var r,o=/(?:\?([^#]*))?(#.*)?$/,u=e.match(o),c={};if(u&&u[1])for(var a=u[1].split("&"),l=0;lt.rank?-1:e.index-t.index}function a(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,s(t).map(l).join(""));var t}(e),e.props}function s(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function l(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var f=null,p=[],d=[],h={};function m(){var e;return""+((e=f&&f.location?f.location:f&&f.getCurrentLocation?f.getCurrentLocation():"undefined"!=typeof location?location:h).pathname||"")+(e.search||"")}function g(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=p.length;t--;)if(p[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),f&&f[t]?f[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),v(e)}function v(e){for(var t=!1,n=0;n0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){p.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;f&&(this.unlisten=f.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),p.splice(p.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,n){return e.filter(a).sort(c).map((function(e){var i=u(t,e.props.path,e.props);if(i){if(!1!==n){var c={url:t,matches:i};return o(c,i),delete c.ref,delete c.key,Object(r.cloneElement)(e,c)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var n=e.children,i=e.onChange,o=t.url,u=this.getMatchingChildren(Object(r.toChildArray)(n),o,!0),c=u[0]||null,a=this.previousUrl;return o!==a&&(this.previousUrl=o,"function"==typeof i&&i({router:this,url:o,previous:a,active:u,current:c})),c},t}(r.Component),E=function(e){return Object(r.createElement)("a",o({onClick:b},e))},S=function(e){return Object(r.createElement)(e.component,e)};w.subscribers=d,w.getCurrentUrl=m,w.route=g,w.Router=w,w.Route=S,w.Link=E,w.exec=u,t.default=w},YT9o:function(e,t,n){"use strict";var r=n("KSUl");e.exports=function(e,t,n,i){var o,u=e.length,c=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,i.length<1e4)(o=Array.from(i)).unshift(t,n),r.apply(e,o);else for(n&&r.apply(e,[t,n]);c-1?void 0:4)(r)}}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var o=this;return i(e,(function(e){return r(e)||!c(o.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",o.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,n){var r=this;return i(e,(function(e){return c(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=l},a7DW:function(e,t,n){"use strict";var r=n("4kIE"),i=n("pMvH");e.exports=function(e,t,n,o,u,c){var a,s=this,l=0;return function(t){return e.enter(o),e.enter(u),e.consume(t),e.exit(u),e.enter(c),f};function f(i){return null===i||91===i||93===i&&!a||94===i&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs||l>999?n(i):93===i?(e.exit(c),e.enter(u),e.consume(i),e.exit(u),e.exit(o),t):r(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),p(i))}function p(t){return null===t||91===t||93===t||r(t)||l++>999?(e.exit("chunkString"),f(t)):(e.consume(t),a=a||!i(t),92===t?d:p)}function d(t){return 91===t||92===t||93===t?(e.consume(t),l++,p):p(t)}}},ajvC:function(e,t,n){"use strict";e.exports=function(e){if(e)throw e}},bhct:function(e,t,n){"use strict";var r=n("h+A4");e.exports=function(e){return!!i.call(r,e)&&r[e]};var i={}.hasOwnProperty},bpHb:function(e,t,n){"use strict";e.exports=function(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}},cTMR:function(e,t,n){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t;return"[object Object]"===r.call(e)&&(null===(t=Object.getPrototypeOf(e))||t===Object.getPrototypeOf({}))}},dY77:function(e,t,n){"use strict";var r=n("Iacx");e.exports=o,o.wrap=r;var i=[].slice;function o(){var e=[],t={run:function(){var t=-1,n=i.call(arguments,0,-1),o=arguments[arguments.length-1];if("function"!=typeof o)throw new Error("Expected function as last argument, not "+o);function u(c){var a=e[++t],s=i.call(arguments,0),l=s.slice(1),f=n.length,p=-1;if(c)o(c);else{for(;++p$/i,o=/^<(\/?)([a-z]+)\s*>$/;e.exports=function(e){var t,n;return r(e,"html",(function(e,r,u){n!==u&&(t=[],n=u);var c=function(e){var t=e.value.match(i);return!!t&&t[1]}(e);if(c)return u.children.splice(r,1,{type:"virtualHtml",tag:c,position:e.position}),!0;var a=function(e,t){var n=e.value.match(o);return!!n&&{tag:n[2],opening:!n[1],node:e}}(e);if(!a)return!0;var s=function(e,t){var n=e.length;for(;n--;)if(e[n].tag===t)return e.splice(n,1)[0];return!1}(t,a.tag);return s?u.children.splice(r,0,function(e,t,n){var r=n.children.indexOf(e.node),i=n.children.indexOf(t.node),o=n.children.splice(r,i-r+1).slice(1,-1);return{type:"virtualHtml",children:o,tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}(a,s,u)):a.opening||t.push(a),!0}),!0),e}},"h+A4":function(e){e.exports=JSON.parse('{"AEli":"Æ","AElig":"Æ","AM":"&","AMP":"&","Aacut":"Á","Aacute":"Á","Abreve":"Ă","Acir":"Â","Acirc":"Â","Acy":"А","Afr":"𝔄","Agrav":"À","Agrave":"À","Alpha":"Α","Amacr":"Ā","And":"⩓","Aogon":"Ą","Aopf":"𝔸","ApplyFunction":"⁡","Arin":"Å","Aring":"Å","Ascr":"𝒜","Assign":"≔","Atild":"Ã","Atilde":"Ã","Aum":"Ä","Auml":"Ä","Backslash":"∖","Barv":"⫧","Barwed":"⌆","Bcy":"Б","Because":"∵","Bernoullis":"ℬ","Beta":"Β","Bfr":"𝔅","Bopf":"𝔹","Breve":"˘","Bscr":"ℬ","Bumpeq":"≎","CHcy":"Ч","COP":"©","COPY":"©","Cacute":"Ć","Cap":"⋒","CapitalDifferentialD":"ⅅ","Cayleys":"ℭ","Ccaron":"Č","Ccedi":"Ç","Ccedil":"Ç","Ccirc":"Ĉ","Cconint":"∰","Cdot":"Ċ","Cedilla":"¸","CenterDot":"·","Cfr":"ℭ","Chi":"Χ","CircleDot":"⊙","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","Colon":"∷","Colone":"⩴","Congruent":"≡","Conint":"∯","ContourIntegral":"∮","Copf":"ℂ","Coproduct":"∐","CounterClockwiseContourIntegral":"∳","Cross":"⨯","Cscr":"𝒞","Cup":"⋓","CupCap":"≍","DD":"ⅅ","DDotrahd":"⤑","DJcy":"Ђ","DScy":"Ѕ","DZcy":"Џ","Dagger":"‡","Darr":"↡","Dashv":"⫤","Dcaron":"Ď","Dcy":"Д","Del":"∇","Delta":"Δ","Dfr":"𝔇","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","Diamond":"⋄","DifferentialD":"ⅆ","Dopf":"𝔻","Dot":"¨","DotDot":"⃜","DotEqual":"≐","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrow":"↓","DownArrowBar":"⤓","DownArrowUpArrow":"⇵","DownBreve":"̑","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVector":"↽","DownLeftVectorBar":"⥖","DownRightTeeVector":"⥟","DownRightVector":"⇁","DownRightVectorBar":"⥗","DownTee":"⊤","DownTeeArrow":"↧","Downarrow":"⇓","Dscr":"𝒟","Dstrok":"Đ","ENG":"Ŋ","ET":"Ð","ETH":"Ð","Eacut":"É","Eacute":"É","Ecaron":"Ě","Ecir":"Ê","Ecirc":"Ê","Ecy":"Э","Edot":"Ė","Efr":"𝔈","Egrav":"È","Egrave":"È","Element":"∈","Emacr":"Ē","EmptySmallSquare":"◻","EmptyVerySmallSquare":"▫","Eogon":"Ę","Eopf":"𝔼","Epsilon":"Ε","Equal":"⩵","EqualTilde":"≂","Equilibrium":"⇌","Escr":"ℰ","Esim":"⩳","Eta":"Η","Eum":"Ë","Euml":"Ë","Exists":"∃","ExponentialE":"ⅇ","Fcy":"Ф","Ffr":"𝔉","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","Fopf":"𝔽","ForAll":"∀","Fouriertrf":"ℱ","Fscr":"ℱ","GJcy":"Ѓ","G":">","GT":">","Gamma":"Γ","Gammad":"Ϝ","Gbreve":"Ğ","Gcedil":"Ģ","Gcirc":"Ĝ","Gcy":"Г","Gdot":"Ġ","Gfr":"𝔊","Gg":"⋙","Gopf":"𝔾","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","Gt":"≫","HARDcy":"Ъ","Hacek":"ˇ","Hat":"^","Hcirc":"Ĥ","Hfr":"ℌ","HilbertSpace":"ℋ","Hopf":"ℍ","HorizontalLine":"─","Hscr":"ℋ","Hstrok":"Ħ","HumpDownHump":"≎","HumpEqual":"≏","IEcy":"Е","IJlig":"IJ","IOcy":"Ё","Iacut":"Í","Iacute":"Í","Icir":"Î","Icirc":"Î","Icy":"И","Idot":"İ","Ifr":"ℑ","Igrav":"Ì","Igrave":"Ì","Im":"ℑ","Imacr":"Ī","ImaginaryI":"ⅈ","Implies":"⇒","Int":"∬","Integral":"∫","Intersection":"⋂","InvisibleComma":"⁣","InvisibleTimes":"⁢","Iogon":"Į","Iopf":"𝕀","Iota":"Ι","Iscr":"ℐ","Itilde":"Ĩ","Iukcy":"І","Ium":"Ï","Iuml":"Ï","Jcirc":"Ĵ","Jcy":"Й","Jfr":"𝔍","Jopf":"𝕁","Jscr":"𝒥","Jsercy":"Ј","Jukcy":"Є","KHcy":"Х","KJcy":"Ќ","Kappa":"Κ","Kcedil":"Ķ","Kcy":"К","Kfr":"𝔎","Kopf":"𝕂","Kscr":"𝒦","LJcy":"Љ","L":"<","LT":"<","Lacute":"Ĺ","Lambda":"Λ","Lang":"⟪","Laplacetrf":"ℒ","Larr":"↞","Lcaron":"Ľ","Lcedil":"Ļ","Lcy":"Л","LeftAngleBracket":"⟨","LeftArrow":"←","LeftArrowBar":"⇤","LeftArrowRightArrow":"⇆","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVector":"⇃","LeftDownVectorBar":"⥙","LeftFloor":"⌊","LeftRightArrow":"↔","LeftRightVector":"⥎","LeftTee":"⊣","LeftTeeArrow":"↤","LeftTeeVector":"⥚","LeftTriangle":"⊲","LeftTriangleBar":"⧏","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVector":"↿","LeftUpVectorBar":"⥘","LeftVector":"↼","LeftVectorBar":"⥒","Leftarrow":"⇐","Leftrightarrow":"⇔","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","LessLess":"⪡","LessSlantEqual":"⩽","LessTilde":"≲","Lfr":"𝔏","Ll":"⋘","Lleftarrow":"⇚","Lmidot":"Ŀ","LongLeftArrow":"⟵","LongLeftRightArrow":"⟷","LongRightArrow":"⟶","Longleftarrow":"⟸","Longleftrightarrow":"⟺","Longrightarrow":"⟹","Lopf":"𝕃","LowerLeftArrow":"↙","LowerRightArrow":"↘","Lscr":"ℒ","Lsh":"↰","Lstrok":"Ł","Lt":"≪","Map":"⤅","Mcy":"М","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","MinusPlus":"∓","Mopf":"𝕄","Mscr":"ℳ","Mu":"Μ","NJcy":"Њ","Nacute":"Ń","Ncaron":"Ň","Ncedil":"Ņ","Ncy":"Н","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","Nfr":"𝔑","NoBreak":"⁠","NonBreakingSpace":" ","Nopf":"ℕ","Not":"⫬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","NotLeftTriangle":"⋪","NotLeftTriangleBar":"⧏̸","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangle":"⋫","NotRightTriangleBar":"⧐̸","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","Nscr":"𝒩","Ntild":"Ñ","Ntilde":"Ñ","Nu":"Ν","OElig":"Œ","Oacut":"Ó","Oacute":"Ó","Ocir":"Ô","Ocirc":"Ô","Ocy":"О","Odblac":"Ő","Ofr":"𝔒","Ograv":"Ò","Ograve":"Ò","Omacr":"Ō","Omega":"Ω","Omicron":"Ο","Oopf":"𝕆","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","Or":"⩔","Oscr":"𝒪","Oslas":"Ø","Oslash":"Ø","Otild":"Õ","Otilde":"Õ","Otimes":"⨷","Oum":"Ö","Ouml":"Ö","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","PartialD":"∂","Pcy":"П","Pfr":"𝔓","Phi":"Φ","Pi":"Π","PlusMinus":"±","Poincareplane":"ℌ","Popf":"ℙ","Pr":"⪻","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","Prime":"″","Product":"∏","Proportion":"∷","Proportional":"∝","Pscr":"𝒫","Psi":"Ψ","QUO":"\\"","QUOT":"\\"","Qfr":"𝔔","Qopf":"ℚ","Qscr":"𝒬","RBarr":"⤐","RE":"®","REG":"®","Racute":"Ŕ","Rang":"⟫","Rarr":"↠","Rarrtl":"⤖","Rcaron":"Ř","Rcedil":"Ŗ","Rcy":"Р","Re":"ℜ","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","Rfr":"ℜ","Rho":"Ρ","RightAngleBracket":"⟩","RightArrow":"→","RightArrowBar":"⇥","RightArrowLeftArrow":"⇄","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVector":"⇂","RightDownVectorBar":"⥕","RightFloor":"⌋","RightTee":"⊢","RightTeeArrow":"↦","RightTeeVector":"⥛","RightTriangle":"⊳","RightTriangleBar":"⧐","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVector":"↾","RightUpVectorBar":"⥔","RightVector":"⇀","RightVectorBar":"⥓","Rightarrow":"⇒","Ropf":"ℝ","RoundImplies":"⥰","Rrightarrow":"⇛","Rscr":"ℛ","Rsh":"↱","RuleDelayed":"⧴","SHCHcy":"Щ","SHcy":"Ш","SOFTcy":"Ь","Sacute":"Ś","Sc":"⪼","Scaron":"Š","Scedil":"Ş","Scirc":"Ŝ","Scy":"С","Sfr":"𝔖","ShortDownArrow":"↓","ShortLeftArrow":"←","ShortRightArrow":"→","ShortUpArrow":"↑","Sigma":"Σ","SmallCircle":"∘","Sopf":"𝕊","Sqrt":"√","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","Sscr":"𝒮","Star":"⋆","Sub":"⋐","Subset":"⋐","SubsetEqual":"⊆","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","SuchThat":"∋","Sum":"∑","Sup":"⋑","Superset":"⊃","SupersetEqual":"⊇","Supset":"⋑","THOR":"Þ","THORN":"Þ","TRADE":"™","TSHcy":"Ћ","TScy":"Ц","Tab":"\\t","Tau":"Τ","Tcaron":"Ť","Tcedil":"Ţ","Tcy":"Т","Tfr":"𝔗","Therefore":"∴","Theta":"Θ","ThickSpace":"  ","ThinSpace":" ","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","Topf":"𝕋","TripleDot":"⃛","Tscr":"𝒯","Tstrok":"Ŧ","Uacut":"Ú","Uacute":"Ú","Uarr":"↟","Uarrocir":"⥉","Ubrcy":"Ў","Ubreve":"Ŭ","Ucir":"Û","Ucirc":"Û","Ucy":"У","Udblac":"Ű","Ufr":"𝔘","Ugrav":"Ù","Ugrave":"Ù","Umacr":"Ū","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","Uopf":"𝕌","UpArrow":"↑","UpArrowBar":"⤒","UpArrowDownArrow":"⇅","UpDownArrow":"↕","UpEquilibrium":"⥮","UpTee":"⊥","UpTeeArrow":"↥","Uparrow":"⇑","Updownarrow":"⇕","UpperLeftArrow":"↖","UpperRightArrow":"↗","Upsi":"ϒ","Upsilon":"Υ","Uring":"Ů","Uscr":"𝒰","Utilde":"Ũ","Uum":"Ü","Uuml":"Ü","VDash":"⊫","Vbar":"⫫","Vcy":"В","Vdash":"⊩","Vdashl":"⫦","Vee":"⋁","Verbar":"‖","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","Vopf":"𝕍","Vscr":"𝒱","Vvdash":"⊪","Wcirc":"Ŵ","Wedge":"⋀","Wfr":"𝔚","Wopf":"𝕎","Wscr":"𝒲","Xfr":"𝔛","Xi":"Ξ","Xopf":"𝕏","Xscr":"𝒳","YAcy":"Я","YIcy":"Ї","YUcy":"Ю","Yacut":"Ý","Yacute":"Ý","Ycirc":"Ŷ","Ycy":"Ы","Yfr":"𝔜","Yopf":"𝕐","Yscr":"𝒴","Yuml":"Ÿ","ZHcy":"Ж","Zacute":"Ź","Zcaron":"Ž","Zcy":"З","Zdot":"Ż","ZeroWidthSpace":"​","Zeta":"Ζ","Zfr":"ℨ","Zopf":"ℤ","Zscr":"𝒵","aacut":"á","aacute":"á","abreve":"ă","ac":"∾","acE":"∾̳","acd":"∿","acir":"â","acirc":"â","acut":"´","acute":"´","acy":"а","aeli":"æ","aelig":"æ","af":"⁡","afr":"𝔞","agrav":"à","agrave":"à","alefsym":"ℵ","aleph":"ℵ","alpha":"α","amacr":"ā","amalg":"⨿","am":"&","amp":"&","and":"∧","andand":"⩕","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsd":"∡","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","aogon":"ą","aopf":"𝕒","ap":"≈","apE":"⩰","apacir":"⩯","ape":"≊","apid":"≋","apos":"\'","approx":"≈","approxeq":"≊","arin":"å","aring":"å","ascr":"𝒶","ast":"*","asymp":"≈","asympeq":"≍","atild":"ã","atilde":"ã","aum":"ä","auml":"ä","awconint":"∳","awint":"⨑","bNot":"⫭","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","barvee":"⊽","barwed":"⌅","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","beta":"β","beth":"ℶ","between":"≬","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bnot":"⌐","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxDL":"╗","boxDR":"╔","boxDl":"╖","boxDr":"╓","boxH":"═","boxHD":"╦","boxHU":"╩","boxHd":"╤","boxHu":"╧","boxUL":"╝","boxUR":"╚","boxUl":"╜","boxUr":"╙","boxV":"║","boxVH":"╬","boxVL":"╣","boxVR":"╠","boxVh":"╫","boxVl":"╢","boxVr":"╟","boxbox":"⧉","boxdL":"╕","boxdR":"╒","boxdl":"┐","boxdr":"┌","boxh":"─","boxhD":"╥","boxhU":"╨","boxhd":"┬","boxhu":"┴","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxuL":"╛","boxuR":"╘","boxul":"┘","boxur":"└","boxv":"│","boxvH":"╪","boxvL":"╡","boxvR":"╞","boxvh":"┼","boxvl":"┤","boxvr":"├","bprime":"‵","breve":"˘","brvba":"¦","brvbar":"¦","bscr":"𝒷","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsol":"\\\\","bsolb":"⧅","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","bumpeq":"≏","cacute":"ć","cap":"∩","capand":"⩄","capbrcup":"⩉","capcap":"⩋","capcup":"⩇","capdot":"⩀","caps":"∩︀","caret":"⁁","caron":"ˇ","ccaps":"⩍","ccaron":"č","ccedi":"ç","ccedil":"ç","ccirc":"ĉ","ccups":"⩌","ccupssm":"⩐","cdot":"ċ","cedi":"¸","cedil":"¸","cemptyv":"⦲","cen":"¢","cent":"¢","centerdot":"·","cfr":"𝔠","chcy":"ч","check":"✓","checkmark":"✓","chi":"χ","cir":"○","cirE":"⧃","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledR":"®","circledS":"Ⓢ","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","clubs":"♣","clubsuit":"♣","colon":":","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","conint":"∮","copf":"𝕔","coprod":"∐","cop":"©","copy":"©","copysr":"℗","crarr":"↵","cross":"✗","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cup":"∪","cupbrcap":"⩈","cupcap":"⩆","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curre":"¤","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dArr":"⇓","dHar":"⥥","dagger":"†","daleth":"ℸ","darr":"↓","dash":"‐","dashv":"⊣","dbkarow":"⤏","dblac":"˝","dcaron":"ď","dcy":"д","dd":"ⅆ","ddagger":"‡","ddarr":"⇊","ddotseq":"⩷","de":"°","deg":"°","delta":"δ","demptyv":"⦱","dfisht":"⥿","dfr":"𝔡","dharl":"⇃","dharr":"⇂","diam":"⋄","diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","digamma":"ϝ","disin":"⋲","div":"÷","divid":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","dopf":"𝕕","dot":"˙","doteq":"≐","doteqdot":"≑","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","downarrow":"↓","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","dscr":"𝒹","dscy":"ѕ","dsol":"⧶","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","dzcy":"џ","dzigrarr":"⟿","eDDot":"⩷","eDot":"≑","eacut":"é","eacute":"é","easter":"⩮","ecaron":"ě","ecir":"ê","ecirc":"ê","ecolon":"≕","ecy":"э","edot":"ė","ee":"ⅇ","efDot":"≒","efr":"𝔢","eg":"⪚","egrav":"è","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","emacr":"ē","empty":"∅","emptyset":"∅","emptyv":"∅","emsp13":" ","emsp14":" ","emsp":" ","eng":"ŋ","ensp":" ","eogon":"ę","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","equals":"=","equest":"≟","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erDot":"≓","erarr":"⥱","escr":"ℯ","esdot":"≐","esim":"≂","eta":"η","et":"ð","eth":"ð","eum":"ë","euml":"ë","euro":"€","excl":"!","exist":"∃","expectation":"ℰ","exponentiale":"ⅇ","fallingdotseq":"≒","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","ffr":"𝔣","filig":"fi","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","fopf":"𝕗","forall":"∀","fork":"⋔","forkv":"⫙","fpartint":"⨍","frac1":"¼","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac3":"¾","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","gE":"≧","gEl":"⪌","gacute":"ǵ","gamma":"γ","gammad":"ϝ","gap":"⪆","gbreve":"ğ","gcirc":"ĝ","gcy":"г","gdot":"ġ","ge":"≥","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","ges":"⩾","gescc":"⪩","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","gfr":"𝔤","gg":"≫","ggg":"⋙","gimel":"ℷ","gjcy":"ѓ","gl":"≷","glE":"⪒","gla":"⪥","glj":"⪤","gnE":"≩","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gneq":"⪈","gneqq":"≩","gnsim":"⋧","gopf":"𝕘","grave":"`","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","g":">","gt":">","gtcc":"⪧","gtcir":"⩺","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","hArr":"⇔","hairsp":" ","half":"½","hamilt":"ℋ","hardcy":"ъ","harr":"↔","harrcir":"⥈","harrw":"↭","hbar":"ℏ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","horbar":"―","hscr":"𝒽","hslash":"ℏ","hstrok":"ħ","hybull":"⁃","hyphen":"‐","iacut":"í","iacute":"í","ic":"⁣","icir":"î","icirc":"î","icy":"и","iecy":"е","iexc":"¡","iexcl":"¡","iff":"⇔","ifr":"𝔦","igrav":"ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","ijlig":"ij","imacr":"ī","image":"ℑ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","imof":"⊷","imped":"Ƶ","in":"∈","incare":"℅","infin":"∞","infintie":"⧝","inodot":"ı","int":"∫","intcal":"⊺","integers":"ℤ","intercal":"⊺","intlarhk":"⨗","intprod":"⨼","iocy":"ё","iogon":"į","iopf":"𝕚","iota":"ι","iprod":"⨼","iques":"¿","iquest":"¿","iscr":"𝒾","isin":"∈","isinE":"⋹","isindot":"⋵","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","itilde":"ĩ","iukcy":"і","ium":"ï","iuml":"ï","jcirc":"ĵ","jcy":"й","jfr":"𝔧","jmath":"ȷ","jopf":"𝕛","jscr":"𝒿","jsercy":"ј","jukcy":"є","kappa":"κ","kappav":"ϰ","kcedil":"ķ","kcy":"к","kfr":"𝔨","kgreen":"ĸ","khcy":"х","kjcy":"ќ","kopf":"𝕜","kscr":"𝓀","lAarr":"⇚","lArr":"⇐","lAtail":"⤛","lBarr":"⤎","lE":"≦","lEg":"⪋","lHar":"⥢","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","lambda":"λ","lang":"⟨","langd":"⦑","langle":"⟨","lap":"⪅","laqu":"«","laquo":"«","larr":"←","larrb":"⇤","larrbfs":"⤟","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","lat":"⪫","latail":"⤙","late":"⪭","lates":"⪭︀","lbarr":"⤌","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","lcaron":"ľ","lcedil":"ļ","lceil":"⌈","lcub":"{","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","leftarrow":"←","leftarrowtail":"↢","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","leftthreetimes":"⋋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","les":"⩽","lescc":"⪨","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","lessgtr":"≶","lesssim":"≲","lfisht":"⥼","lfloor":"⌊","lfr":"𝔩","lg":"≶","lgE":"⪑","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","ljcy":"љ","ll":"≪","llarr":"⇇","llcorner":"⌞","llhard":"⥫","lltri":"◺","lmidot":"ŀ","lmoust":"⎰","lmoustache":"⎰","lnE":"≨","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","longleftrightarrow":"⟷","longmapsto":"⟼","longrightarrow":"⟶","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","lstrok":"ł","l":"<","lt":"<","ltcc":"⪦","ltcir":"⩹","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltrPar":"⦖","ltri":"◃","ltrie":"⊴","ltrif":"◂","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","mDDot":"∺","mac":"¯","macr":"¯","male":"♂","malt":"✠","maltese":"✠","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","mcy":"м","mdash":"—","measuredangle":"∡","mfr":"𝔪","mho":"℧","micr":"µ","micro":"µ","mid":"∣","midast":"*","midcir":"⫰","middo":"·","middot":"·","minus":"−","minusb":"⊟","minusd":"∸","minusdu":"⨪","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","mopf":"𝕞","mp":"∓","mscr":"𝓂","mstpos":"∾","mu":"μ","multimap":"⊸","mumap":"⊸","nGg":"⋙̸","nGt":"≫⃒","nGtv":"≫̸","nLeftarrow":"⇍","nLeftrightarrow":"⇎","nLl":"⋘̸","nLt":"≪⃒","nLtv":"≪̸","nRightarrow":"⇏","nVDash":"⊯","nVdash":"⊮","nabla":"∇","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natur":"♮","natural":"♮","naturals":"ℕ","nbs":" ","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","ncaron":"ň","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","ncy":"н","ndash":"–","ne":"≠","neArr":"⇗","nearhk":"⤤","nearr":"↗","nearrow":"↗","nedot":"≐̸","nequiv":"≢","nesear":"⤨","nesim":"≂̸","nexist":"∄","nexists":"∄","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","ngsim":"≵","ngt":"≯","ngtr":"≯","nhArr":"⇎","nharr":"↮","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","njcy":"њ","nlArr":"⇍","nlE":"≦̸","nlarr":"↚","nldr":"‥","nle":"≰","nleftarrow":"↚","nleftrightarrow":"↮","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nlsim":"≴","nlt":"≮","nltri":"⋪","nltrie":"⋬","nmid":"∤","nopf":"𝕟","no":"¬","not":"¬","notin":"∉","notinE":"⋹̸","notindot":"⋵̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","npar":"∦","nparallel":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","npre":"⪯̸","nprec":"⊀","npreceq":"⪯̸","nrArr":"⇏","nrarr":"↛","nrarrc":"⤳̸","nrarrw":"↝̸","nrightarrow":"↛","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","ntild":"ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","nu":"ν","num":"#","numero":"№","numsp":" ","nvDash":"⊭","nvHarr":"⤄","nvap":"≍⃒","nvdash":"⊬","nvge":"≥⃒","nvgt":">⃒","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwArr":"⇖","nwarhk":"⤣","nwarr":"↖","nwarrow":"↖","nwnear":"⤧","oS":"Ⓢ","oacut":"ó","oacute":"ó","oast":"⊛","ocir":"ô","ocirc":"ô","ocy":"о","odash":"⊝","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","oelig":"œ","ofcir":"⦿","ofr":"𝔬","ogon":"˛","ograv":"ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","omacr":"ō","omega":"ω","omicron":"ο","omid":"⦶","ominus":"⊖","oopf":"𝕠","opar":"⦷","operp":"⦹","oplus":"⊕","or":"∨","orarr":"↻","ord":"º","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oscr":"ℴ","oslas":"ø","oslash":"ø","osol":"⊘","otild":"õ","otilde":"õ","otimes":"⊗","otimesas":"⨶","oum":"ö","ouml":"ö","ovbar":"⌽","par":"¶","para":"¶","parallel":"∥","parsim":"⫳","parsl":"⫽","part":"∂","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","pfr":"𝔭","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plus":"+","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plusdo":"∔","plusdu":"⨥","pluse":"⩲","plusm":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","pointint":"⨕","popf":"𝕡","poun":"£","pound":"£","pr":"≺","prE":"⪳","prap":"⪷","prcue":"≼","pre":"⪯","prec":"≺","precapprox":"⪷","preccurlyeq":"≼","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","precsim":"≾","prime":"′","primes":"ℙ","prnE":"⪵","prnap":"⪹","prnsim":"⋨","prod":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","propto":"∝","prsim":"≾","prurel":"⊰","pscr":"𝓅","psi":"ψ","puncsp":" ","qfr":"𝔮","qint":"⨌","qopf":"𝕢","qprime":"⁗","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quo":"\\"","quot":"\\"","rAarr":"⇛","rArr":"⇒","rAtail":"⤜","rBarr":"⤏","rHar":"⥤","race":"∽̱","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","rangd":"⦒","range":"⦥","rangle":"⟩","raqu":"»","raquo":"»","rarr":"→","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","rarrtl":"↣","rarrw":"↝","ratail":"⤚","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","rcaron":"ř","rcedil":"ŗ","rceil":"⌉","rcub":"}","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","rect":"▭","re":"®","reg":"®","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","rhard":"⇁","rharu":"⇀","rharul":"⥬","rho":"ρ","rhov":"ϱ","rightarrow":"→","rightarrowtail":"↣","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","rightthreetimes":"⋌","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoust":"⎱","rmoustache":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","roplus":"⨮","rotimes":"⨵","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","rsaquo":"›","rscr":"𝓇","rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","ruluhar":"⥨","rx":"℞","sacute":"ś","sbquo":"‚","sc":"≻","scE":"⪴","scap":"⪸","scaron":"š","sccue":"≽","sce":"⪰","scedil":"ş","scirc":"ŝ","scnE":"⪶","scnap":"⪺","scnsim":"⋩","scpolint":"⨓","scsim":"≿","scy":"с","sdot":"⋅","sdotb":"⊡","sdote":"⩦","seArr":"⇘","searhk":"⤥","searr":"↘","searrow":"↘","sec":"§","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","sfr":"𝔰","sfrown":"⌢","sharp":"♯","shchcy":"щ","shcy":"ш","shortmid":"∣","shortparallel":"∥","sh":"­","shy":"­","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","softcy":"ь","sol":"/","solb":"⧄","solbar":"⌿","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","squ":"□","square":"□","squarf":"▪","squf":"▪","srarr":"→","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","subE":"⫅","subdot":"⪽","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","subseteq":"⊆","subseteqq":"⫅","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succ":"≻","succapprox":"⪸","succcurlyeq":"≽","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","sum":"∑","sung":"♪","sup":"⊃","sup1":"¹","sup2":"²","sup3":"³","supE":"⫆","supdot":"⪾","supdsub":"⫘","supe":"⊇","supedot":"⫄","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swArr":"⇙","swarhk":"⤦","swarr":"↙","swarrow":"↙","swnwar":"⤪","szli":"ß","szlig":"ß","target":"⌖","tau":"τ","tbrk":"⎴","tcaron":"ť","tcedil":"ţ","tcy":"т","tdot":"⃛","telrec":"⌕","tfr":"𝔱","there4":"∴","therefore":"∴","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","thinsp":" ","thkap":"≈","thksim":"∼","thor":"þ","thorn":"þ","tilde":"˜","time":"×","times":"×","timesb":"⊠","timesbar":"⨱","timesd":"⨰","tint":"∭","toea":"⤨","top":"⊤","topbot":"⌶","topcir":"⫱","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","tscr":"𝓉","tscy":"ц","tshcy":"ћ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","uArr":"⇑","uHar":"⥣","uacut":"ú","uacute":"ú","uarr":"↑","ubrcy":"ў","ubreve":"ŭ","ucir":"û","ucirc":"û","ucy":"у","udarr":"⇅","udblac":"ű","udhar":"⥮","ufisht":"⥾","ufr":"𝔲","ugrav":"ù","ugrave":"ù","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","umacr":"ū","um":"¨","uml":"¨","uogon":"ų","uopf":"𝕦","uparrow":"↑","updownarrow":"↕","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","upsi":"υ","upsih":"ϒ","upsilon":"υ","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","uring":"ů","urtri":"◹","uscr":"𝓊","utdot":"⋰","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","uum":"ü","uuml":"ü","uwangle":"⦧","vArr":"⇕","vBar":"⫨","vBarv":"⫩","vDash":"⊨","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vcy":"в","vdash":"⊢","vee":"∨","veebar":"⊻","veeeq":"≚","vellip":"⋮","verbar":"|","vert":"|","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","vopf":"𝕧","vprop":"∝","vrtri":"⊳","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","vzigzag":"⦚","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","wedgeq":"≙","weierp":"℘","wfr":"𝔴","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","xfr":"𝔵","xhArr":"⟺","xharr":"⟷","xi":"ξ","xlArr":"⟸","xlarr":"⟵","xmap":"⟼","xnis":"⋻","xodot":"⨀","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrArr":"⟹","xrarr":"⟶","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","yacut":"ý","yacute":"ý","yacy":"я","ycirc":"ŷ","ycy":"ы","ye":"¥","yen":"¥","yfr":"𝔶","yicy":"ї","yopf":"𝕪","yscr":"𝓎","yucy":"ю","yum":"ÿ","yuml":"ÿ","zacute":"ź","zcaron":"ž","zcy":"з","zdot":"ż","zeetrf":"ℨ","zeta":"ζ","zfr":"𝔷","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},"h+e0":function(e,t,n){"use strict";var r=n("OF0j")(/[!-/:-@[-`{-~]/);e.exports=r},h3af:function(e,t,n){"use strict";var r=n("nppI");e.exports=function(e){for(var t,n,i,o=-1,u=[];++o-1&&(_.call(this,e),w.call(this,e))},link:b((function(){var e=this.stack[this.stack.length-1];f("inReference")?(e.type+="Reference",e.referenceType=f("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType);l("referenceType")})),listItem:b(),listOrdered:b(),listUnordered:b(),paragraph:b(),referenceString:function(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=c(this.sliceSerialize(e)).toLowerCase(),l("referenceType","full")},resourceDestinationString:function(){var e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){var e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){l("inReference")},setextHeading:b((function(){l("setextHeadingSlurpLineEnding")})),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){l("setextHeadingSlurpLineEnding",!0)},strong:b(),thematicBreak:b()}},t.mdastExtensions||[]),r={};return function(e){var t,r,i=[{type:"root",children:[]}],c=[],a=[],p=-1,h={stack:i,tokenStack:c,config:n,enter:y,exit:x,buffer:v,resume:k,setData:l,getData:f};for(;++pp?n(r):(e.consume(r),v):41===r?d--?(e.consume(r),v):(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(u),t(r)):null===r||i(r)?d?n(r):(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(u),t(r)):o(r)?n(r):(e.consume(r),92===r?y:v)}function y(t){return 40===t||41===t||92===t?(e.consume(t),v):v(t)}}},juNq:function(e,t,n){"use strict";var r=n("SpX7"),i=n("LzXL"),o=n("EbX1");e.exports=a;var u={}.hasOwnProperty,c=["history","path","basename","stem","extname","dirname"];function a(e){var t,n;if(e){if("string"==typeof e||o(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof a))return new a(e);for(this.data={},this.messages=[],this.history=[],this.cwd=i.cwd(),n=-1;++n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+r.sep+"`")}function l(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function f(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}a.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(a.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){l(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(a.prototype,"dirname",{get:function(){return"string"==typeof this.path?r.dirname(this.path):void 0},set:function(e){f(this.path,"dirname"),this.path=r.join(e||"",this.basename)}}),Object.defineProperty(a.prototype,"basename",{get:function(){return"string"==typeof this.path?r.basename(this.path):void 0},set:function(e){l(e,"basename"),s(e,"basename"),this.path=r.join(this.dirname||"",e)}}),Object.defineProperty(a.prototype,"extname",{get:function(){return"string"==typeof this.path?r.extname(this.path):void 0},set:function(e){if(s(e,"extname"),f(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=r.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(a.prototype,"stem",{get:function(){return"string"==typeof this.path?r.basename(this.path,this.extname):void 0},set:function(e){l(e,"stem"),s(e,"stem"),this.path=r.join(this.dirname||"",e+(this.extname||""))}})},kSGr:function(e,t,n){"use strict";var r=n("W9KB"),i=n("4kIE"),o=n("7sXb"),u=n("mQVw"),c=n("j1Sy"),a=n("a7DW"),s=n("QGTt"),l=n("eOGU"),f={name:"definition",tokenize:function(e,t,n){var u,l=this;return function(t){return e.enter("definition"),a.call(l,e,f,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function f(t){return u=r(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),s(e,c(e,e.attempt(p,o(e,d,"whitespace"),o(e,d,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function d(r){return null===r||i(r)?(e.exit("definition"),l.parser.defined.indexOf(u)<0&&l.parser.defined.push(u),t(r)):n(r)}}},p={tokenize:function(e,t,n){return function(t){return u(t)?s(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?l(e,o(e,c,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function c(e){return null===e||i(e)?t(e):n(e)}},partial:!0};e.exports=f},kqyo:function(e,t,n){"use strict";e.exports=function(e,t,n){var r=[];"function"==typeof t&&(n=t,t=null);function i(e){var o;return t&&e.type!==t||(o=n(e,r.concat())),e.children&&!1!==o?function(e,t){var n,o=e.length,u=-1;r.push(t);for(;++u3;)n.pop()();if(n[1]-1?(c=1,v.interrupt?t(o):j(o)):l.indexOf(h.toLowerCase())>-1?(c=6,47===o?(e.consume(o),E):v.interrupt?t(o):j(o)):(c=7,v.interrupt?n(o):p?A(o):S(o)):45===o||i(o)?(e.consume(o),h+=r(o),w):n(o)}function E(r){return 62===r?(e.consume(r),v.interrupt?t:j):n(r)}function S(t){return u(t)?(e.consume(t),S):L(t)}function A(t){return 47===t?(e.consume(t),L):58===t||95===t||s(t)?(e.consume(t),C):u(t)?(e.consume(t),A):L(t)}function C(t){return 45===t||46===t||58===t||95===t||i(t)?(e.consume(t),C):q(t)}function q(t){return 61===t?(e.consume(t),T):u(t)?(e.consume(t),q):A(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),g=t,O):u(t)?(e.consume(t),T):(g=void 0,F(t))}function O(t){return t===g?(e.consume(t),D):null===t||o(t)?n(t):(e.consume(t),O)}function F(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||a(t)?q(t):(e.consume(t),F)}function D(e){return 47===e||62===e||u(e)?A(e):n(e)}function L(t){return 62===t?(e.consume(t),I):n(t)}function I(t){return u(t)?(e.consume(t),I):null===t||o(t)?j(t):n(t)}function j(t){return 45===t&&2===c?(e.consume(t),H):60===t&&1===c?(e.consume(t),B):62===t&&4===c?(e.consume(t),z):63===t&&3===c?(e.consume(t),M):93===t&&5===c?(e.consume(t),N):!o(t)||6!==c&&7!==c?null===t||o(t)?P(t):(e.consume(t),j):e.check(d,z,P)(t)}function P(t){return e.exit("htmlFlowData"),R(t)}function R(t){return null===t?V(t):o(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),R):(e.enter("htmlFlowData"),j(t))}function H(t){return 45===t?(e.consume(t),M):j(t)}function B(t){return 47===t?(e.consume(t),h="",U):j(t)}function U(t){return 62===t&&f.indexOf(h.toLowerCase())>-1?(e.consume(t),z):s(t)&&h.length<8?(e.consume(t),h+=r(t),U):j(t)}function N(t){return 93===t?(e.consume(t),M):j(t)}function M(t){return 62===t?(e.consume(t),z):j(t)}function z(t){return null===t||o(t)?(e.exit("htmlFlowData"),V(t)):(e.consume(t),z)}function V(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},d={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(c,t,n)}},partial:!0};e.exports=p},oarT:function(e,t,n){"use strict";var r=n("6zBE"),i=n("4kIE"),o=n("pMvH"),u=n("7sXb"),c=n("mQVw"),a=n("9pEU"),s={name:"htmlText",tokenize:function(e,t,n){var s,l,f,p,d=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),h};function h(t){return 33===t?(e.consume(t),m):47===t?(e.consume(t),q):63===t?(e.consume(t),A):a(t)?(e.consume(t),F):n(t)}function m(t){return 45===t?(e.consume(t),g):91===t?(e.consume(t),l="CDATA[",f=0,k):a(t)?(e.consume(t),S):n(t)}function g(t){return 45===t?(e.consume(t),v):n(t)}function v(t){return null===t||62===t?n(t):45===t?(e.consume(t),y):b(t)}function y(e){return null===e||62===e?n(e):b(e)}function b(t){return null===t?n(t):45===t?(e.consume(t),x):i(t)?(p=b,B(t)):(e.consume(t),b)}function x(t){return 45===t?(e.consume(t),N):b(t)}function k(t){return t===l.charCodeAt(f++)?(e.consume(t),f===l.length?_:k):n(t)}function _(t){return null===t?n(t):93===t?(e.consume(t),w):i(t)?(p=_,B(t)):(e.consume(t),_)}function w(t){return 93===t?(e.consume(t),E):_(t)}function E(t){return 62===t?N(t):93===t?(e.consume(t),E):_(t)}function S(t){return null===t||62===t?N(t):i(t)?(p=S,B(t)):(e.consume(t),S)}function A(t){return null===t?n(t):63===t?(e.consume(t),C):i(t)?(p=A,B(t)):(e.consume(t),A)}function C(e){return 62===e?N(e):A(e)}function q(t){return a(t)?(e.consume(t),T):n(t)}function T(t){return 45===t||r(t)?(e.consume(t),T):O(t)}function O(t){return i(t)?(p=O,B(t)):o(t)?(e.consume(t),O):N(t)}function F(t){return 45===t||r(t)?(e.consume(t),F):47===t||62===t||c(t)?D(t):n(t)}function D(t){return 47===t?(e.consume(t),N):58===t||95===t||a(t)?(e.consume(t),L):i(t)?(p=D,B(t)):o(t)?(e.consume(t),D):N(t)}function L(t){return 45===t||46===t||58===t||95===t||r(t)?(e.consume(t),L):I(t)}function I(t){return 61===t?(e.consume(t),j):i(t)?(p=I,B(t)):o(t)?(e.consume(t),I):D(t)}function j(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,P):i(t)?(p=j,B(t)):o(t)?(e.consume(t),j):(e.consume(t),s=void 0,H)}function P(t){return t===s?(e.consume(t),R):null===t?n(t):i(t)?(p=P,B(t)):(e.consume(t),P)}function R(e){return 62===e||47===e||c(e)?D(e):n(e)}function H(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||c(t)?D(t):(e.consume(t),H)}function B(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),u(e,U,"linePrefix",d.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function U(t){return e.enter("htmlTextData"),p(t)}function N(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};e.exports=s},"ox/y":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Link=t.Match=void 0;var r=Object.assign||function(e){for(var t=1;t>>0,1)},t.prototype.render=function(e){var t=this.nextUrl||(0,o.getCurrentUrl)(),n=t.replace(/\?.+$/,"");return this.nextUrl=null,e.children({url:t,path:n,matches:!1!==(0,o.exec)(n,e.path,{})})},t}(i.Component),s=function(e){var t=e.activeClassName,n=e.path,u=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["activeClassName","path"]);return(0,i.h)(a,{path:n||u.href},(function(e){var n=e.matches;return(0,i.h)(o.Link,r({},u,{class:[u.class||u.className,n&&t].filter(Boolean).join(" ")}))}))};t.Link=s,t.default=a,a.Link=s},oyvS:function(e,t){e.exports=require("path")},pMvH:function(e,t,n){"use strict";e.exports=function(e){return-2===e||-1===e||32===e}},pRls:function(e,t,n){},"pi/J":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("4kIE"),i=n("7sXb"),o=n("A0tY"),u=function(e){var t,n,i,u=this,s=[],l=0,f={tokenize:function(e,r){var i=0;return t={},l;function l(r){return it;)u.containerState=s[o][1],s[o][0].exit.call(u,e);s.length=t}},c={tokenize:function(e,t,n){return i(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},a={tokenize:function(e,t,n){return i(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=u},qWgT:function(e,t,n){"use strict";var r=n("4kIE"),i={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),i};function i(i){return r(i)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(i)):n(i)}}};e.exports=i},rNCH:function(e,t,n){"use strict";e.exports=["pre","script","style","textarea"]},"sWw+":function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=Object.defineProperty,u=Object.getOwnPropertyDescriptor,c=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===i.call(e)},a=function(e){if(!e||"[object Object]"!==i.call(e))return!1;var t,n=r.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&r.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!o)return!1;for(t in e);return void 0===t||r.call(e,t)},s=function(e,t){o&&"__proto__"===t.name?o(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if("__proto__"===t){if(!r.call(e,t))return;if(u)return u(e,t).value}return e[t]};e.exports=function e(){var t,n,r,i,o,u,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p-1?void 0:4);function u(t){return t===c?(e.consume(t),o++,u):o-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),a)};function a(n){return 40===n?e.attempt(h,t,i?t:s)(n):91===n?e.attempt(m,t,i?e.attempt(g,t,s):s)(n):i?t(n):s(n)}function s(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,o,a,s,l,f,p,d=e.length,h=0;for(;d--;)if(s=e[d][1],l){if("link"===s.type||"labelLink"===s.type&&s._inactive)break;"enter"===e[d][0]&&"labelLink"===s.type&&(s._inactive=!0)}else if(f){if("enter"===e[d][0]&&("labelImage"===s.type||"labelLink"===s.type)&&!s._balanced&&(l=d,"labelLink"!==s.type)){h=2;break}}else"labelEnd"===s.type&&(f=d);return n={type:"labelLink"===e[l][1].type?"link":"image",start:u(e[l][1].start),end:u(e[e.length-1][1].end)},o={type:"label",start:u(e[l][1].start),end:u(e[f][1].end)},a={type:"labelText",start:u(e[l+h+2][1].end),end:u(e[f-2][1].start)},p=i(p=[["enter",n,t],["enter",o,t]],e.slice(l+1,l+h+3)),p=i(p,[["enter",a,t]]),p=i(p,c(t.parser.constructs.insideSpan.null,e.slice(l+h+4,f-3),t)),p=i(p,[["exit",a,t],e[f-2],e[f-1],["exit",o,t]]),p=i(p,e.slice(f+1)),p=i(p,[["exit",n,t]]),r(e,l,e.length,p),e},resolveAll:function(e){var t,n=-1;for(;++n-1)return m();return e.tokenize.call(t?r({},y,t):y,v,h,m)(n)}}function h(t){return e(s,l),i}function m(e){return l.restore(),++a1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1,l={type:p>1?"strongSequence":"emphasisSequence",start:a(o(e[n][1].end),-p),end:o(e[n][1].end)},f={type:p>1?"strongSequence":"emphasisSequence",start:o(e[m][1].start),end:a(o(e[m][1].start),p)},s={type:p>1?"strongText":"emphasisText",start:o(e[n][1].end),end:o(e[m][1].start)},c={type:p>1?"strong":"emphasis",start:o(l.start),end:o(f.end)},e[n][1].end=o(l.start),e[m][1].start=o(f.end),d=[],e[n][1].end.offset-e[n][1].start.offset&&(d=i(d,[["enter",e[n][1],t],["exit",e[n][1],t]])),d=i(d,[["enter",c,t],["enter",l,t],["exit",l,t],["enter",s,t]]),d=i(d,u(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),d=i(d,[["exit",s,t],["enter",f,t],["exit",f,t],["exit",c,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,d=i(d,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,r(e,n-1,m-n+3,d),m=n+d.length-h-2;break}m=-1;for(;++m -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","'use strict'\n\nmodule.exports = require('./lib')\n","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","'use strict'\n\nvar miniflat = require('./util/miniflat.js')\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","module.exports = require(\"preact\");","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","'use strict'\n\nmodule.exports = process\n","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '16.8.0'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n","import {h} from 'preact'\nimport {Link} from 'preact-router/match'\n\nimport style from './style.css'\n\nconst Editor = ({markdown, setMarkdown}) => (\n
\n

Huge link

\n

\n A minimalist serverless publishing tool\n that allows you to create markdown posts and\n push them to the Web by sharing the link.\n

\n setMarkdown(target.value) }>\n { markdown }\n \n\n \n
)\n\nexport default Editor\n","import {h} from 'preact'\nimport {Link} from 'preact-router/match'\nimport ReactMarkdown from 'react-markdown'\n\nimport {\n compressToEncodedURIComponent as encode,\n decompressFromEncodedURIComponent as decode\n} from 'lz-string'\n\nconst noop = _ => null\nconst ident = _ => _\n\nconst previewContorls = content => (\n
)\n\nconst Post = ({mode, payload, setMarkdown}) => {\n const [controls, decodeFn, encodeFn] = {\n preview: [previewContorls, ident, encode],\n post: [noop, decode, ident]\n }[mode]\n\n const markdown = decodeFn(payload)\n const encoded = encodeFn(payload)\n\n setMarkdown(markdown)\n\n return (
\n { controls(encoded) }\n\n
\n \n { markdown }\n \n
\n\n \n Edit post\n \n
)\n}\n\nexport default Post\n","import {h} from 'preact'\nimport {useState} from 'preact/hooks'\nimport {Router} from 'preact-router'\n\nimport Editor from './routes/editor'\nimport Post from './routes/post'\n\nimport './style/typography.css'\nimport './style'\n\nconst App = () => {\n const [markdown, setMarkdown] = useState('')\n\n return (
\n \n \n \n \n \n
)\n}\n\nexport default App\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nmodule.exports = require('path')\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\nvar content = require('../tokenize/content.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n return ok(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict'\n\nvar characterEntities = require('character-entities')\n\nmodule.exports = decodeEntity\n\nvar own = {}.hasOwnProperty\n\nfunction decodeEntity(characters) {\n return own.call(characterEntities, characters)\n ? characterEntities[characters]\n : false\n}\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nmodule.exports = require('./dist')\n","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var stack = [{type: 'root', children: []}]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n stack[0].position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n return stack[0]\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiControl = require('../character/ascii-control.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionalComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tvnode._component = null;\n\t\tvnode._children = vnode._children && vnode._children.map(detachedClone);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children = vnode._children && vnode._children.map(removeOriginal);\n\t}\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent.componentWillUnmount =\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\tc._vnode._children[0] = removeOriginal(c.state._suspended);\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!wasHydrating && !c._pendingSuspensionCount++) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children)\n\t\t\tthis._vnode._children[0] = detachedClone(this._detachOnNextRender);\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, hydrate, render, __u as _unmount } from 'preact';\n\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @param {object | null | undefined} props\n *\n * TODO: this could use the \"fake root node\" trick from the partial hydration demo\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\tlet wrap = createElement(\n\t\tContextProvider,\n\t\t{ context: _this.context },\n\t\tprops._vnode\n\t);\n\n\t_this.componentWillUnmount = function() {\n\t\tlet parent = _this._temp.parentNode;\n\t\tif (parent) parent.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t\t_this._hasMounted = false;\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._hasMounted) {\n\t\t\t// Create a placeholder that we can use to insert into.\n\t\t\t_this._temp = document.createTextNode('');\n\t\t\t// temporarily store the current children of the container to restore them after render\n\t\t\t_this._children = container._children;\n\t\t\t// Hydrate existing nodes to keep the dom intact, when rendering\n\t\t\t// wrap into the container.\n\t\t\thydrate('', container);\n\t\t\t// Append to the container (this matches React's behavior)\n\t\t\tcontainer.appendChild(_this._temp);\n\t\t\t// At this point we have mounted and should set our container.\n\t\t\t_this._hasMounted = true;\n\t\t\t_this._container = container;\n\t\t\t// Render our wrapping element into temp.\n\t\t\trender(wrap, container, _this._temp);\n\t\t\t// restore the previous children of the container\n\t\t\tcontainer._children = _this._children;\n\t\t\t// store the children of the new vnode to be used in subsequent re-renders\n\t\t\t_this._children = _this._temp._children;\n\t\t} else {\n\t\t\t// When we have mounted and the vnode is present it means the\n\t\t\t// props have changed or a parent is triggering a rerender.\n\t\t\t// This implies we only need to call render. But we need to keep\n\t\t\t// the old tree around, otherwise will treat the vnodes as new and\n\t\t\t// will wrongly call `componentDidMount` on them\n\t\t\tcontainer._children = _this._children;\n\t\t\trender(wrap, container);\n\t\t\t_this._children = container._children;\n\t\t}\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._hasMounted) {\n\t\t_this.componentWillUnmount();\n\t\t// if (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t// _unmount(_this._wrap);\n\t}\n\t// Set the wrapping element for future unmounting.\n\t_this._wrap = wrap;\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { _vnode: vnode, _container: container });\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst ONCHANGE_INPUT_TYPES =\n\ttypeof Symbol != 'undefined' ? /fil|che|rad/i : /fil|che|ra/i;\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (i === 'defaultValue' && 'value' in props && props.value == null) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!ONCHANGE_INPUT_TYPES.test(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: \n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\t}\n\n\tif (type && props.class != props.className) {\n\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","module.exports = require(\"path\");","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea__1UKFm\"};","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar chunkedPush = require('./chunked-push.js')\nvar miniflat = require('./miniflat.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('./shallow.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(err, tree, file) {\n if (err) {\n next(err)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n var file = ctx.file\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n file.contents = result\n } else {\n file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var frozen = false\n var freezeIndex = -1\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var length = attachers.length\n var index = -1\n\n while (++index < length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var plugin\n var options\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n plugin = values[0]\n options = values[1]\n transformer = null\n\n if (options === false) {\n continue\n }\n\n if (options === true) {\n values[1] = undefined\n }\n\n transformer = plugin.apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n\n namespace[key] = value\n\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var length\n var index\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length\n index = -1\n\n while (++index < length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var length = attachers.length\n var index = -1\n var entry\n\n while (++index < length) {\n entry = attachers[index]\n\n if (entry[0] === plugin) {\n return entry\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(err, tree, file) {\n tree = tree || node\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var complete = false\n var result\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(err, tree) {\n complete = true\n bail(err)\n result = tree\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(err) {\n if (err) {\n reject(err)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var complete = false\n var file\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(err) {\n complete = true\n bail(err)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar shallow = require('../util/shallow.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/sw-esm.js b/docs/sw-esm.js index 43b6721..82eb215 100644 --- a/docs/sw-esm.js +++ b/docs/sw-esm.js @@ -1,2 +1,2 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/huge-link/",t(t.s="p5Qz")}({"2Gk3":function(){"use strict";try{self["workbox:cacheable-response:5.1.4"]&&_()}catch(e){}},Gpc1:function(){"use strict";try{self["workbox:precaching:5.1.4"]&&_()}catch(e){}},I3Xu:function(){"use strict";try{self["workbox:routing:5.1.4"]&&_()}catch(e){}},myed:function(){"use strict";try{self["workbox:strategies:5.1.4"]&&_()}catch(e){}},p5Qz:function(e,t,r){"use strict";function n(e){var t="function"==typeof Map?new Map:void 0;return(n=function(e){function r(){return o(e,arguments,c(this).constructor)}if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,e)})(e)}function o(){return(o=i()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&u(o,r.prototype),o}).apply(null,arguments)}function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(self.addEventListener("install",ae),self.addEventListener("activate",le))}(e),U(t)}function x(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return j(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return j(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?r-1:0),o=1;o0&&(t+=" :: "+JSON.stringify(n)),t},E=function(e){function t(t,r){var n,o=M(t,r);return(n=e.call(this,o)||this).name=t,n.details=r,n}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(n(Error)),N=(r("I3Xu"),function(e){return e&&"object"==typeof e?e:{handle:e}}),k=function(e,t,r){void 0===r&&(r="GET"),this.handler=N(t),this.match=e,this.method=r},W=function(e){function t(t,r,n){return e.call(this,(function(e){var r=e.url,n=t.exec(r.href);if(n&&(r.origin===location.origin||0===n.index))return n.slice(1)}),r,n)||this}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(k),F=function(e){return new URL(String(e),location.href).href.replace(new RegExp("^"+location.origin),"")},H=function(){function e(){this._routes=new Map}var t,r,n,o=e.prototype;return o.addFetchListener=function(){var e=this;self.addEventListener("fetch",(function(t){var r=e.handleRequest({request:t.request,event:t});r&&t.respondWith(r)}))},o.addCacheListener=function(){var e=this;self.addEventListener("message",(function(t){if(t.data&&"CACHE_URLS"===t.data.type){0;var r=Promise.all(t.data.payload.urlsToCache.map((function(t){"string"==typeof t&&(t=[t]);var r=l(Request,t);return e.handleRequest({request:r})})));t.waitUntil(r),t.ports&&t.ports[0]&&r.then((function(){return t.ports[0].postMessage(!0)}))}}))},o.handleRequest=function(e){var t=this,r=e.request,n=e.event;var o=new URL(r.url,location.href);if(o.protocol.startsWith("http")){var i=this.findMatchingRoute({url:o,request:r,event:n}),u=i.params,c=i.route,s=c&&c.handler;if(!s&&this._defaultHandler&&(s=this._defaultHandler),s){var a;0;try{a=s.handle({url:o,request:r,event:n,params:u})}catch(e){a=Promise.reject(e)}return a instanceof Promise&&this._catchHandler&&(a=a.catch((function(){return t._catchHandler.handle({url:o,request:r,event:n})}))),a}}},o.findMatchingRoute=function(e){var t=e.url,r=e.request,n=e.event;for(var o,i=s(this._routes.get(r.method)||[]);!(o=i()).done;){var u=o.value,c=void 0,a=u.match({url:t,request:r,event:n});if(a)return c=a,(Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(c=void 0),{route:u,params:c}}return{}},o.setDefaultHandler=function(e){this._defaultHandler=N(e)},o.setCatchHandler=function(e){this._catchHandler=N(e)},o.registerRoute=function(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)},o.unregisterRoute=function(e){if(!this._routes.has(e.method))throw new E("unregister-route-but-not-found-with-method",{method:e.method});var t=this._routes.get(e.method).indexOf(e);if(!(t>-1))throw new E("unregister-route-route-not-registered");this._routes.get(e.method).splice(t,1)},t=e,(r=[{key:"routes",get:function(){return this._routes}}])&&d(t.prototype,r),n&&d(t,n),e}(),D=function(){return L||((L=new H).addFetchListener(),L.addCacheListener()),L},B=(r("Gpc1"),[]),$=function(){return B},G={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},X=function(e){return[G.prefix,e,G.suffix].filter((function(e){return e&&e.length>0})).join("-")},Q=function(e){return e||X(G.googleAnalytics)},z=function(e){return e||X(G.precache)},J=function(){return G.prefix},V=function(e){return e||X(G.runtime)},Y=function(){return G.suffix},Z=new Set,ee=function(e,t){return e.filter((function(e){return t in e}))},te=function(e){return new Promise((function(t,r){function n(){return(h=l()).done?[1]:(f=h.value,Promise.resolve(f.cacheKeyWillBeUsed.call(f,{mode:u,request:a})).then((function(e){try{return"string"==typeof(a=e)&&(a=new Request(a)),n}catch(e){return r(e)}}),r))}function o(){return t(a)}var i,u,c,s,a,l,h,f,d;return i=e.request,u=e.mode,s=ee(void 0===(c=e.plugins)?[]:c,"cacheKeyWillBeUsed"),a=i,l=v(s),(d=function(e){for(;e;){if(e.then)return void e.then(d,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n)}))},re=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p;return n=e.cacheName,o=e.request,i=e.event,u=e.matchOptions,s=void 0===(c=e.plugins)?[]:c,Promise.resolve(self.caches.open(n)).then(function(e){try{return a=e,Promise.resolve(te({plugins:s,request:o,mode:"read"})).then(function(e){try{return l=e,Promise.resolve(a.match(l,u)).then(function(e){try{{var o;function c(){if((d=f()).done)return[1];{if("cachedResponseWillBeUsed"in(p=d.value))return Promise.resolve(p.cachedResponseWillBeUsed.call(p,{cacheName:n,event:i,matchOptions:u,cachedResponse:h,request:l})).then(function(t){try{return h=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);function e(){return c}return e.call(this)}}return h=e,f=v(s),(o=function(e){for(;e;){if(e.then)return void e.then(o,r);try{if(e.pop){if(e.length)return e.pop()?a.call(this):e;e=c}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(c);function a(){return t(h)}}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}))},ne=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,y,m,g;return n=e.cacheName,o=e.response,i=e.event,c=void 0===(u=e.plugins)?[]:u,s=e.matchOptions,Promise.resolve(te({plugins:c,request:e.request,mode:"write"})).then(function(e){try{return a=e,o?Promise.resolve((u={event:i,plugins:c,response:o,request:a},new Promise((function(e,t){function r(){if((h=l()).done)return[1];{if("cacheWillUpdate"in(f=h.value))return a=!0,Promise.resolve(f.cacheWillUpdate.call(f,{request:o,response:s,event:i})).then(function(r){try{return(s=r)?e.call(this):[1]}catch(e){return t(e)}}.bind(this),t);function e(){return r}return e.call(this)}}function n(){return a||(s=s&&200===s.status?s:void 0),e(s||null)}var o,i,c,s,a,l,h,f,d;return o=u.request,i=u.event,s=u.response,a=!1,l=v(void 0===(c=u.plugins)?[]:c),(d=function(e){for(;e;){if(e.then)return void e.then(d,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)})))).then(function(e){try{return(l=e)?Promise.resolve(self.caches.open(n)).then(function(e){try{return h=e,f=ee(c,"cacheDidUpdate"),Promise.resolve(new Promise((function(e,t){return f.length>0?Promise.resolve(re({cacheName:n,matchOptions:s,request:a})).then(e,t):e(null)}))).then(function(e){try{d=e;var o=function(e){try{if("QuotaExceededError"===e.name)return Promise.resolve(new Promise((function(e,t){function r(){return(i=o()).done?[1]:Promise.resolve((0,i.value)()).then((function(){try{return r}catch(e){return t(e)}}),t)}function n(){return e()}var o,i,u;return o=p(Z),(u=function(e){for(;e;){if(e.then)return void e.then(u,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)}))).then(function(){try{return t.call(this)}catch(e){return r(e)}}.bind(this),r);function t(){throw e}return t.call(this)}catch(e){return r(e)}}.bind(this);try{return Promise.resolve(h.put(a,l)).then((function(){try{return function(){try{var e;function o(){return(m=y()).done?[1]:(g=m.value,Promise.resolve(g.cacheDidUpdate.call(g,{cacheName:n,event:i,oldResponse:d,newResponse:l,request:a})).then((function(){try{return o}catch(e){return r(e)}}),r))}return y=v(f),(e=function(t){for(;t;){if(t.then)return void t.then(e,r);try{if(t.pop){if(t.length)return t.pop()?u.call(this):t;t=o}else t=t.call(this)}catch(e){return r(e)}}}.bind(this))(o);function u(){return t()}}catch(e){return r(e)}}()}catch(e){return o(e)}}),o)}catch(e){o(e)}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r):t()}catch(e){return r(e)}}.bind(this),r):r(new E("cache-put-with-no-response",{url:F(a.url)}))}catch(e){return r(e)}var u}.bind(this),r)}))},oe=re,ie=function(e){return new Promise((function(t,r){function n(){l=ee(s,"fetchDidFail"),h=l.length>0?o.clone():null;var e=function(e){try{throw new E("plugin-error-request-will-fetch",{thrownError:e})}catch(e){return r(e)}};try{var n;function c(){if((d=f()).done)return[1];{if("requestWillFetch"in(p=d.value))return y=p.requestWillFetch,v=o.clone(),Promise.resolve(y.call(p,{request:v,event:u})).then(function(r){try{return o=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return c}return t.call(this)}}return f=g(s),(n=function(t){for(;t;){if(t.then)return void t.then(n,e);try{if(t.pop){if(t.length)return t.pop()?a.call(this):t;t=c}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(c);function a(){return function(){try{m=o.clone();var e=function(e){try{{var t;function n(){return(S=R()).done?[1]:(A=S.value,Promise.resolve(A.fetchDidFail.call(A,{error:e,event:u,originalRequest:h.clone(),request:m.clone()})).then((function(){try{return n}catch(e){return r(e)}}),r))}return R=g(l),(t=function(e){for(;e;){if(e.then)return void e.then(t,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n);function o(){throw e}}}catch(e){return r(e)}}.bind(this);try{return"navigate"===o.mode?Promise.resolve(fetch(o)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e):Promise.resolve(fetch(o,i)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e);function n(){function r(){if((_=w()).done)return[1];{if("fetchDidSucceed"in(P=_.value))return Promise.resolve(P.fetchDidSucceed.call(P,{event:u,request:m,response:b})).then(function(r){try{return b=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return r}return t.call(this)}}function n(){return t(b)}var o;return w=g(s),(o=function(t){for(;t;){if(t.then)return void t.then(o,e);try{if(t.pop){if(t.length)return t.pop()?n.call(this):t;t=r}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(r)}}catch(t){e(t)}}catch(e){return r(e)}}()}}catch(t){e(t)}}var o,i,u,c,s,a,l,h,f,d,p,y,v,m,b,w,_,P,R,S,A;return i=e.fetchOptions,u=e.event,s=void 0===(c=e.plugins)?[]:c,"string"==typeof(o=e.request)&&(o=new Request(o)),u instanceof FetchEvent&&u.preloadResponse?Promise.resolve(u.preloadResponse).then(function(e){try{return(a=e)?t(a):n.call(this)}catch(e){return r(e)}}.bind(this),r):n.call(this)}))},ue=function(){function e(e){this._cacheName=z(e),this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map}var t=e.prototype;return t.addToCacheList=function(e){for(var t,r=[],n=P(e);!(t=n()).done;){var o=t.value;"string"==typeof o?r.push(o):o&&void 0===o.revision&&r.push(o.url);var i=_(o),u=i.cacheKey,c=i.url,s="string"!=typeof o&&o.revision?"reload":"default";if(this._urlsToCacheKeys.has(c)&&this._urlsToCacheKeys.get(c)!==u)throw new E("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(c),secondEntry:u});if("string"!=typeof o&&o.integrity){if(this._cacheKeysToIntegrities.has(u)&&this._cacheKeysToIntegrities.get(u)!==o.integrity)throw new E("add-to-cache-list-conflicting-integrities",{url:c});this._cacheKeysToIntegrities.set(u,o.integrity)}if(this._urlsToCacheKeys.set(c,u),this._urlsToCacheModes.set(c,s),r.length>0){var a="Workbox is precaching URLs without revision info: "+r.join(", ")+"\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache";console.warn(a)}}},t.install=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p,y,v;return n=this,i=(o=void 0===e?{}:e).event,u=o.plugins,c=[],s=[],Promise.resolve(self.caches.open(this._cacheName)).then(function(e){try{return Promise.resolve(e.keys()).then(function(e){try{for(a=new Set(e.map((function(e){return e.url}))),l=P(this._urlsToCacheKeys);!(h=l()).done;)d=(f=h.value)[0],a.has(p=f[1])?s.push(d):c.push({cacheKey:p,url:d});return y=c.map((function(e){var t=e.cacheKey,r=e.url,o=n._cacheKeysToIntegrities.get(t),c=n._urlsToCacheModes.get(r);return n._addURLToCache({cacheKey:t,cacheMode:c,event:i,integrity:o,plugins:u,url:r})})),Promise.resolve(Promise.all(y)).then((function(){try{return v=c.map((function(e){return e.url})),t({updatedURLs:v,notUpdatedURLs:s})}catch(e){return r(e)}}),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.activate=function(){return new Promise(function(e,t){var r,n,o,i,u,c,s;return Promise.resolve(self.caches.open(this._cacheName)).then(function(a){try{return r=a,Promise.resolve(r.keys()).then(function(a){try{{var l;function h(){if((c=u()).done)return[1];{if(!o.has((s=c.value).url))return Promise.resolve(r.delete(s)).then(function(){try{return i.push(s.url),e.call(this)}catch(e){return t(e)}}.bind(this),t);function e(){return h}return e.call(this)}}return n=a,o=new Set(this._urlsToCacheKeys.values()),i=[],u=P(n),(l=function(e){for(;e;){if(e.then)return void e.then(l,t);try{if(e.pop){if(e.length)return e.pop()?f.call(this):e;e=h}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(h);function f(){return e({deletedURLs:i})}}}catch(e){return t(e)}}.bind(this),t)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},t._addURLToCache=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f;return n=e.cacheKey,o=e.url,i=e.event,u=e.plugins,c=new Request(o,{integrity:e.integrity,cache:e.cacheMode,credentials:"same-origin"}),Promise.resolve(ie({event:i,plugins:u,request:c})).then(function(e){try{for(s=e,l=P(u||[]);!(h=l()).done;)"cacheWillUpdate"in(f=h.value)&&(a=f);return Promise.resolve(new Promise((function(e,t){return a?Promise.resolve(a.cacheWillUpdate({event:i,request:c,response:s})).then(e,t):e(s.status<400)}))).then(function(e){try{if(!e)return r(new E("bad-precaching-response",{url:o,status:s.status}));if(s.redirected)return Promise.resolve(w(s)).then(function(e){try{return s=e,a.call(this)}catch(e){return r(e)}}.bind(this),r);function a(){return Promise.resolve(ne({event:i,plugins:u,response:s,request:n===o?c:new Request(n),cacheName:this._cacheName,matchOptions:{ignoreSearch:!0}})).then((function(){try{return t()}catch(e){return r(e)}}),r)}return a.call(this)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.getURLsToCacheKeys=function(){return this._urlsToCacheKeys},t.getCachedURLs=function(){return[].concat(this._urlsToCacheKeys.keys())},t.getCacheKeyForURL=function(e){var t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)},t.matchPrecache=function(e){return new Promise(function(t,r){var n,o;return n=e instanceof Request?e.url:e,(o=this.getCacheKeyForURL(n))?Promise.resolve(self.caches.open(this._cacheName)).then((function(e){try{return t(e.match(o))}catch(e){return r(e)}}),r):t(void 0)}.bind(this))},t.createHandler=function(e){var t=this;return void 0===e&&(e=!0),function(r){return new Promise((function(n,o){var i,u;i=r.request;var c=function(t){try{if(e)return n(fetch(i));throw t}catch(e){return o(e)}};try{return Promise.resolve(t.matchPrecache(i)).then((function(e){try{if(u=e)return n(u);throw new E("missing-precache-entry",{cacheName:t._cacheName,url:i instanceof Request?i.url:i})}catch(e){return c(e)}}),c)}catch(e){c(e)}}))}},t.createHandlerBoundToURL=function(e,t){if(void 0===t&&(t=!0),!this.getCacheKeyForURL(e))throw new E("non-precached-url",{url:e});var r=this.createHandler(t),n=new Request(e);return function(){return r({request:n})}},e}(),ce=function(){return K||(K=new ue),K},se=!1,ae=function(e){var t=ce(),r=$();e.waitUntil(t.install({event:e,plugins:r}).catch((function(e){throw e})))},le=function(e){var t=ce();e.waitUntil(t.activate())},he=function(e){return"navigate"===e.request.mode},fe=(r("myed"),{cacheWillUpdate:function(e){return new Promise((function(t){var r=e.response;return t(200===r.status||0===r.status?r:null)}))}}),de=function(){function e(e){if(void 0===e&&(e={}),this._cacheName=V(e.cacheName),e.plugins){var t=e.plugins.some((function(e){return!!e.cacheWillUpdate}));this._plugins=t?e.plugins:[fe].concat(e.plugins)}else this._plugins=[fe];this._networkTimeoutSeconds=e.networkTimeoutSeconds||0,this._fetchOptions=e.fetchOptions,this._matchOptions=e.matchOptions}var t=e.prototype;return t.handle=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l;return n=e.event,i=[],"string"==typeof(o=e.request)&&(o=new Request(o)),u=[],this._networkTimeoutSeconds&&(c=(s=this._getTimeoutPromise({request:o,event:n,logs:i})).id,u.push(s.promise)),a=this._getNetworkPromise({timeoutId:c,request:o,event:n,logs:i}),u.push(a),Promise.resolve(Promise.race(u)).then(function(e){try{if(!(l=e))return Promise.resolve(a).then(function(e){try{return l=e,n.call(this)}catch(e){return r(e)}}.bind(this),r);function n(){return l?t(l):r(new E("no-response",{url:o.url}))}return n.call(this)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t._getTimeoutPromise=function(e){var t,r=this,n=e.request,o=e.event;return{promise:new Promise((function(e){t=setTimeout((function(){return new Promise((function(t,i){return Promise.resolve(r._respondFromCache({request:n,event:o})).then((function(r){try{return e(r),t()}catch(e){return i(e)}}),i)}))}),1e3*r._networkTimeoutSeconds)})),id:t}},t._getNetworkPromise=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a;n=e.timeoutId,o=e.request,i=e.event;var l=function(){try{if(n&&clearTimeout(n),u||!c)return Promise.resolve(this._respondFromCache({request:o,event:i})).then(function(t){try{return c=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);if(s=c.clone(),a=ne({cacheName:this._cacheName,request:o,response:s,event:i,plugins:this._plugins}),i)try{i.waitUntil(a)}catch(e){0}return e.call(this);function e(){return t(c)}}catch(e){return r(e)}}.bind(this),h=function(e){try{return u=e,l()}catch(e){return r(e)}};try{return Promise.resolve(ie({request:o,event:i,fetchOptions:this._fetchOptions,plugins:this._plugins})).then((function(e){try{return c=e,l()}catch(e){return h(e)}}),h)}catch(e){h(e)}}.bind(this))},t._respondFromCache=function(e){return oe({cacheName:this._cacheName,request:e.request,event:e.event,matchOptions:this._matchOptions,plugins:this._plugins})},e}(),pe=function(){function e(e,t,r){var n=this,o=void 0===r?{}:r,i=o.onupgradeneeded,u=o.onversionchange;this._db=null,this._name=e,this._version=t,this._onupgradeneeded=i,this._onversionchange=u||function(){return n.close()}}var t,r,n,o=e.prototype;return o.open=function(){return new Promise(function(e,t){var r;return r=this,this._db?e():Promise.resolve(new Promise((function(e,t){var n=!1;setTimeout((function(){n=!0,t(new Error("The open request was blocked and timed out"))}),r.OPEN_TIMEOUT);var o=indexedDB.open(r._name,r._version);o.onerror=function(){return t(o.error)},o.onupgradeneeded=function(e){n?(o.transaction.abort(),o.result.close()):"function"==typeof r._onupgradeneeded&&r._onupgradeneeded(e)},o.onsuccess=function(){var t=o.result;n?t.close():(t.onversionchange=r._onversionchange.bind(r),e(t))}}))).then(function(r){try{return this._db=r,e(this)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},o.getKey=function(e,t){return new Promise(function(r,n){return Promise.resolve(this.getAllKeys(e,t,1)).then((function(e){try{return r(e[0])}catch(e){return n(e)}}),n)}.bind(this))},o.getAll=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r})).then(n,o)}.bind(this))},o.getAllKeys=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r,includeKeys:!0})).then((function(e){try{return n(e.map((function(e){return e.key})))}catch(e){return o(e)}}),o)}.bind(this))},o.getAllMatching=function(e,t){return new Promise(function(r,n){var o,i,u,c,s,a,l,h,f;return i=(o=void 0===t?{}:t).index,c=void 0===(u=o.query)?null:u,a=void 0===(s=o.direction)?"next":s,l=o.count,f=void 0!==(h=o.includeKeys)&&h,Promise.resolve(this.transaction([e],"readonly",(function(t,r){var n=t.objectStore(e),o=i?n.index(i):n,u=[],s=o.openCursor(c,a);s.onsuccess=function(){var e=s.result;e?(u.push(f?e:e.value),l&&u.length>=l?r(u):e.continue()):r(u)}}))).then(r,n)}.bind(this))},o.transaction=function(e,t,r){return new Promise(function(n,o){var i;return i=this,Promise.resolve(this.open()).then((function(){try{return Promise.resolve(new Promise((function(n,o){var u=i._db.transaction(e,t);u.onabort=function(){return o(u.error)},u.oncomplete=function(){return n()},r(u,(function(e){return n(e)}))}))).then(n,o)}catch(e){return o(e)}}),o)}.bind(this))},o._call=function(e,t,r){var n=arguments;return new Promise(function(o,i){var u,c,s;for(u=n.length,c=new Array(u>3?u-3:0),s=3;s1?u-1:0),s=1;s=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(self.addEventListener("install",ae),self.addEventListener("activate",le))}(e),U(t)}function x(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return j(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return j(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?r-1:0),o=1;o0&&(t+=" :: "+JSON.stringify(n)),t},E=function(e){function t(t,r){var n,o=M(t,r);return(n=e.call(this,o)||this).name=t,n.details=r,n}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(n(Error)),N=(r("I3Xu"),function(e){return e&&"object"==typeof e?e:{handle:e}}),k=function(e,t,r){void 0===r&&(r="GET"),this.handler=N(t),this.match=e,this.method=r},W=function(e){function t(t,r,n){return e.call(this,(function(e){var r=e.url,n=t.exec(r.href);if(n&&(r.origin===location.origin||0===n.index))return n.slice(1)}),r,n)||this}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(k),F=function(e){return new URL(String(e),location.href).href.replace(new RegExp("^"+location.origin),"")},H=function(){function e(){this._routes=new Map}var t,r,n,o=e.prototype;return o.addFetchListener=function(){var e=this;self.addEventListener("fetch",(function(t){var r=e.handleRequest({request:t.request,event:t});r&&t.respondWith(r)}))},o.addCacheListener=function(){var e=this;self.addEventListener("message",(function(t){if(t.data&&"CACHE_URLS"===t.data.type){0;var r=Promise.all(t.data.payload.urlsToCache.map((function(t){"string"==typeof t&&(t=[t]);var r=l(Request,t);return e.handleRequest({request:r})})));t.waitUntil(r),t.ports&&t.ports[0]&&r.then((function(){return t.ports[0].postMessage(!0)}))}}))},o.handleRequest=function(e){var t=this,r=e.request,n=e.event;var o=new URL(r.url,location.href);if(o.protocol.startsWith("http")){var i=this.findMatchingRoute({url:o,request:r,event:n}),u=i.params,c=i.route,s=c&&c.handler;if(!s&&this._defaultHandler&&(s=this._defaultHandler),s){var a;0;try{a=s.handle({url:o,request:r,event:n,params:u})}catch(e){a=Promise.reject(e)}return a instanceof Promise&&this._catchHandler&&(a=a.catch((function(){return t._catchHandler.handle({url:o,request:r,event:n})}))),a}}},o.findMatchingRoute=function(e){var t=e.url,r=e.request,n=e.event;for(var o,i=s(this._routes.get(r.method)||[]);!(o=i()).done;){var u=o.value,c=void 0,a=u.match({url:t,request:r,event:n});if(a)return c=a,(Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(c=void 0),{route:u,params:c}}return{}},o.setDefaultHandler=function(e){this._defaultHandler=N(e)},o.setCatchHandler=function(e){this._catchHandler=N(e)},o.registerRoute=function(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)},o.unregisterRoute=function(e){if(!this._routes.has(e.method))throw new E("unregister-route-but-not-found-with-method",{method:e.method});var t=this._routes.get(e.method).indexOf(e);if(!(t>-1))throw new E("unregister-route-route-not-registered");this._routes.get(e.method).splice(t,1)},t=e,(r=[{key:"routes",get:function(){return this._routes}}])&&d(t.prototype,r),n&&d(t,n),e}(),D=function(){return L||((L=new H).addFetchListener(),L.addCacheListener()),L},B=(r("Gpc1"),[]),$=function(){return B},G={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},X=function(e){return[G.prefix,e,G.suffix].filter((function(e){return e&&e.length>0})).join("-")},Q=function(e){return e||X(G.googleAnalytics)},z=function(e){return e||X(G.precache)},J=function(){return G.prefix},V=function(e){return e||X(G.runtime)},Y=function(){return G.suffix},Z=new Set,ee=function(e,t){return e.filter((function(e){return t in e}))},te=function(e){return new Promise((function(t,r){function n(){return(h=l()).done?[1]:(f=h.value,Promise.resolve(f.cacheKeyWillBeUsed.call(f,{mode:u,request:a})).then((function(e){try{return"string"==typeof(a=e)&&(a=new Request(a)),n}catch(e){return r(e)}}),r))}function o(){return t(a)}var i,u,c,s,a,l,h,f,d;return i=e.request,u=e.mode,s=ee(void 0===(c=e.plugins)?[]:c,"cacheKeyWillBeUsed"),a=i,l=v(s),(d=function(e){for(;e;){if(e.then)return void e.then(d,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n)}))},re=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p;return n=e.cacheName,o=e.request,i=e.event,u=e.matchOptions,s=void 0===(c=e.plugins)?[]:c,Promise.resolve(self.caches.open(n)).then(function(e){try{return a=e,Promise.resolve(te({plugins:s,request:o,mode:"read"})).then(function(e){try{return l=e,Promise.resolve(a.match(l,u)).then(function(e){try{{var o;function c(){if((d=f()).done)return[1];{if("cachedResponseWillBeUsed"in(p=d.value))return Promise.resolve(p.cachedResponseWillBeUsed.call(p,{cacheName:n,event:i,matchOptions:u,cachedResponse:h,request:l})).then(function(t){try{return h=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);function e(){return c}return e.call(this)}}return h=e,f=v(s),(o=function(e){for(;e;){if(e.then)return void e.then(o,r);try{if(e.pop){if(e.length)return e.pop()?a.call(this):e;e=c}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(c);function a(){return t(h)}}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}))},ne=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,y,m,g;return n=e.cacheName,o=e.response,i=e.event,c=void 0===(u=e.plugins)?[]:u,s=e.matchOptions,Promise.resolve(te({plugins:c,request:e.request,mode:"write"})).then(function(e){try{return a=e,o?Promise.resolve((u={event:i,plugins:c,response:o,request:a},new Promise((function(e,t){function r(){if((h=l()).done)return[1];{if("cacheWillUpdate"in(f=h.value))return a=!0,Promise.resolve(f.cacheWillUpdate.call(f,{request:o,response:s,event:i})).then(function(r){try{return(s=r)?e.call(this):[1]}catch(e){return t(e)}}.bind(this),t);function e(){return r}return e.call(this)}}function n(){return a||(s=s&&200===s.status?s:void 0),e(s||null)}var o,i,c,s,a,l,h,f,d;return o=u.request,i=u.event,s=u.response,a=!1,l=v(void 0===(c=u.plugins)?[]:c),(d=function(e){for(;e;){if(e.then)return void e.then(d,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)})))).then(function(e){try{return(l=e)?Promise.resolve(self.caches.open(n)).then(function(e){try{return h=e,f=ee(c,"cacheDidUpdate"),Promise.resolve(new Promise((function(e,t){return f.length>0?Promise.resolve(re({cacheName:n,matchOptions:s,request:a})).then(e,t):e(null)}))).then(function(e){try{d=e;var o=function(e){try{if("QuotaExceededError"===e.name)return Promise.resolve(new Promise((function(e,t){function r(){return(i=o()).done?[1]:Promise.resolve((0,i.value)()).then((function(){try{return r}catch(e){return t(e)}}),t)}function n(){return e()}var o,i,u;return o=p(Z),(u=function(e){for(;e;){if(e.then)return void e.then(u,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)}))).then(function(){try{return t.call(this)}catch(e){return r(e)}}.bind(this),r);function t(){throw e}return t.call(this)}catch(e){return r(e)}}.bind(this);try{return Promise.resolve(h.put(a,l)).then((function(){try{return function(){try{var e;function o(){return(m=y()).done?[1]:(g=m.value,Promise.resolve(g.cacheDidUpdate.call(g,{cacheName:n,event:i,oldResponse:d,newResponse:l,request:a})).then((function(){try{return o}catch(e){return r(e)}}),r))}return y=v(f),(e=function(t){for(;t;){if(t.then)return void t.then(e,r);try{if(t.pop){if(t.length)return t.pop()?u.call(this):t;t=o}else t=t.call(this)}catch(e){return r(e)}}}.bind(this))(o);function u(){return t()}}catch(e){return r(e)}}()}catch(e){return o(e)}}),o)}catch(e){o(e)}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r):t()}catch(e){return r(e)}}.bind(this),r):r(new E("cache-put-with-no-response",{url:F(a.url)}))}catch(e){return r(e)}var u}.bind(this),r)}))},oe=re,ie=function(e){return new Promise((function(t,r){function n(){l=ee(s,"fetchDidFail"),h=l.length>0?o.clone():null;var e=function(e){try{throw new E("plugin-error-request-will-fetch",{thrownError:e})}catch(e){return r(e)}};try{var n;function c(){if((d=f()).done)return[1];{if("requestWillFetch"in(p=d.value))return y=p.requestWillFetch,v=o.clone(),Promise.resolve(y.call(p,{request:v,event:u})).then(function(r){try{return o=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return c}return t.call(this)}}return f=g(s),(n=function(t){for(;t;){if(t.then)return void t.then(n,e);try{if(t.pop){if(t.length)return t.pop()?a.call(this):t;t=c}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(c);function a(){return function(){try{m=o.clone();var e=function(e){try{{var t;function n(){return(S=R()).done?[1]:(A=S.value,Promise.resolve(A.fetchDidFail.call(A,{error:e,event:u,originalRequest:h.clone(),request:m.clone()})).then((function(){try{return n}catch(e){return r(e)}}),r))}return R=g(l),(t=function(e){for(;e;){if(e.then)return void e.then(t,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n);function o(){throw e}}}catch(e){return r(e)}}.bind(this);try{return"navigate"===o.mode?Promise.resolve(fetch(o)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e):Promise.resolve(fetch(o,i)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e);function n(){function r(){if((_=w()).done)return[1];{if("fetchDidSucceed"in(P=_.value))return Promise.resolve(P.fetchDidSucceed.call(P,{event:u,request:m,response:b})).then(function(r){try{return b=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return r}return t.call(this)}}function n(){return t(b)}var o;return w=g(s),(o=function(t){for(;t;){if(t.then)return void t.then(o,e);try{if(t.pop){if(t.length)return t.pop()?n.call(this):t;t=r}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(r)}}catch(t){e(t)}}catch(e){return r(e)}}()}}catch(t){e(t)}}var o,i,u,c,s,a,l,h,f,d,p,y,v,m,b,w,_,P,R,S,A;return i=e.fetchOptions,u=e.event,s=void 0===(c=e.plugins)?[]:c,"string"==typeof(o=e.request)&&(o=new Request(o)),u instanceof FetchEvent&&u.preloadResponse?Promise.resolve(u.preloadResponse).then(function(e){try{return(a=e)?t(a):n.call(this)}catch(e){return r(e)}}.bind(this),r):n.call(this)}))},ue=function(){function e(e){this._cacheName=z(e),this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map}var t=e.prototype;return t.addToCacheList=function(e){for(var t,r=[],n=P(e);!(t=n()).done;){var o=t.value;"string"==typeof o?r.push(o):o&&void 0===o.revision&&r.push(o.url);var i=_(o),u=i.cacheKey,c=i.url,s="string"!=typeof o&&o.revision?"reload":"default";if(this._urlsToCacheKeys.has(c)&&this._urlsToCacheKeys.get(c)!==u)throw new E("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(c),secondEntry:u});if("string"!=typeof o&&o.integrity){if(this._cacheKeysToIntegrities.has(u)&&this._cacheKeysToIntegrities.get(u)!==o.integrity)throw new E("add-to-cache-list-conflicting-integrities",{url:c});this._cacheKeysToIntegrities.set(u,o.integrity)}if(this._urlsToCacheKeys.set(c,u),this._urlsToCacheModes.set(c,s),r.length>0){var a="Workbox is precaching URLs without revision info: "+r.join(", ")+"\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache";console.warn(a)}}},t.install=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p,y,v;return n=this,i=(o=void 0===e?{}:e).event,u=o.plugins,c=[],s=[],Promise.resolve(self.caches.open(this._cacheName)).then(function(e){try{return Promise.resolve(e.keys()).then(function(e){try{for(a=new Set(e.map((function(e){return e.url}))),l=P(this._urlsToCacheKeys);!(h=l()).done;)d=(f=h.value)[0],a.has(p=f[1])?s.push(d):c.push({cacheKey:p,url:d});return y=c.map((function(e){var t=e.cacheKey,r=e.url,o=n._cacheKeysToIntegrities.get(t),c=n._urlsToCacheModes.get(r);return n._addURLToCache({cacheKey:t,cacheMode:c,event:i,integrity:o,plugins:u,url:r})})),Promise.resolve(Promise.all(y)).then((function(){try{return v=c.map((function(e){return e.url})),t({updatedURLs:v,notUpdatedURLs:s})}catch(e){return r(e)}}),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.activate=function(){return new Promise(function(e,t){var r,n,o,i,u,c,s;return Promise.resolve(self.caches.open(this._cacheName)).then(function(a){try{return r=a,Promise.resolve(r.keys()).then(function(a){try{{var l;function h(){if((c=u()).done)return[1];{if(!o.has((s=c.value).url))return Promise.resolve(r.delete(s)).then(function(){try{return i.push(s.url),e.call(this)}catch(e){return t(e)}}.bind(this),t);function e(){return h}return e.call(this)}}return n=a,o=new Set(this._urlsToCacheKeys.values()),i=[],u=P(n),(l=function(e){for(;e;){if(e.then)return void e.then(l,t);try{if(e.pop){if(e.length)return e.pop()?f.call(this):e;e=h}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(h);function f(){return e({deletedURLs:i})}}}catch(e){return t(e)}}.bind(this),t)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},t._addURLToCache=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f;return n=e.cacheKey,o=e.url,i=e.event,u=e.plugins,c=new Request(o,{integrity:e.integrity,cache:e.cacheMode,credentials:"same-origin"}),Promise.resolve(ie({event:i,plugins:u,request:c})).then(function(e){try{for(s=e,l=P(u||[]);!(h=l()).done;)"cacheWillUpdate"in(f=h.value)&&(a=f);return Promise.resolve(new Promise((function(e,t){return a?Promise.resolve(a.cacheWillUpdate({event:i,request:c,response:s})).then(e,t):e(s.status<400)}))).then(function(e){try{if(!e)return r(new E("bad-precaching-response",{url:o,status:s.status}));if(s.redirected)return Promise.resolve(w(s)).then(function(e){try{return s=e,a.call(this)}catch(e){return r(e)}}.bind(this),r);function a(){return Promise.resolve(ne({event:i,plugins:u,response:s,request:n===o?c:new Request(n),cacheName:this._cacheName,matchOptions:{ignoreSearch:!0}})).then((function(){try{return t()}catch(e){return r(e)}}),r)}return a.call(this)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.getURLsToCacheKeys=function(){return this._urlsToCacheKeys},t.getCachedURLs=function(){return[].concat(this._urlsToCacheKeys.keys())},t.getCacheKeyForURL=function(e){var t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)},t.matchPrecache=function(e){return new Promise(function(t,r){var n,o;return n=e instanceof Request?e.url:e,(o=this.getCacheKeyForURL(n))?Promise.resolve(self.caches.open(this._cacheName)).then((function(e){try{return t(e.match(o))}catch(e){return r(e)}}),r):t(void 0)}.bind(this))},t.createHandler=function(e){var t=this;return void 0===e&&(e=!0),function(r){return new Promise((function(n,o){var i,u;i=r.request;var c=function(t){try{if(e)return n(fetch(i));throw t}catch(e){return o(e)}};try{return Promise.resolve(t.matchPrecache(i)).then((function(e){try{if(u=e)return n(u);throw new E("missing-precache-entry",{cacheName:t._cacheName,url:i instanceof Request?i.url:i})}catch(e){return c(e)}}),c)}catch(e){c(e)}}))}},t.createHandlerBoundToURL=function(e,t){if(void 0===t&&(t=!0),!this.getCacheKeyForURL(e))throw new E("non-precached-url",{url:e});var r=this.createHandler(t),n=new Request(e);return function(){return r({request:n})}},e}(),ce=function(){return K||(K=new ue),K},se=!1,ae=function(e){var t=ce(),r=$();e.waitUntil(t.install({event:e,plugins:r}).catch((function(e){throw e})))},le=function(e){var t=ce();e.waitUntil(t.activate())},he=function(e){return"navigate"===e.request.mode},fe=(r("myed"),{cacheWillUpdate:function(e){return new Promise((function(t){var r=e.response;return t(200===r.status||0===r.status?r:null)}))}}),de=function(){function e(e){if(void 0===e&&(e={}),this._cacheName=V(e.cacheName),e.plugins){var t=e.plugins.some((function(e){return!!e.cacheWillUpdate}));this._plugins=t?e.plugins:[fe].concat(e.plugins)}else this._plugins=[fe];this._networkTimeoutSeconds=e.networkTimeoutSeconds||0,this._fetchOptions=e.fetchOptions,this._matchOptions=e.matchOptions}var t=e.prototype;return t.handle=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l;return n=e.event,i=[],"string"==typeof(o=e.request)&&(o=new Request(o)),u=[],this._networkTimeoutSeconds&&(c=(s=this._getTimeoutPromise({request:o,event:n,logs:i})).id,u.push(s.promise)),a=this._getNetworkPromise({timeoutId:c,request:o,event:n,logs:i}),u.push(a),Promise.resolve(Promise.race(u)).then(function(e){try{if(!(l=e))return Promise.resolve(a).then(function(e){try{return l=e,n.call(this)}catch(e){return r(e)}}.bind(this),r);function n(){return l?t(l):r(new E("no-response",{url:o.url}))}return n.call(this)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t._getTimeoutPromise=function(e){var t,r=this,n=e.request,o=e.event;return{promise:new Promise((function(e){t=setTimeout((function(){return new Promise((function(t,i){return Promise.resolve(r._respondFromCache({request:n,event:o})).then((function(r){try{return e(r),t()}catch(e){return i(e)}}),i)}))}),1e3*r._networkTimeoutSeconds)})),id:t}},t._getNetworkPromise=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a;n=e.timeoutId,o=e.request,i=e.event;var l=function(){try{if(n&&clearTimeout(n),u||!c)return Promise.resolve(this._respondFromCache({request:o,event:i})).then(function(t){try{return c=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);if(s=c.clone(),a=ne({cacheName:this._cacheName,request:o,response:s,event:i,plugins:this._plugins}),i)try{i.waitUntil(a)}catch(e){0}return e.call(this);function e(){return t(c)}}catch(e){return r(e)}}.bind(this),h=function(e){try{return u=e,l()}catch(e){return r(e)}};try{return Promise.resolve(ie({request:o,event:i,fetchOptions:this._fetchOptions,plugins:this._plugins})).then((function(e){try{return c=e,l()}catch(e){return h(e)}}),h)}catch(e){h(e)}}.bind(this))},t._respondFromCache=function(e){return oe({cacheName:this._cacheName,request:e.request,event:e.event,matchOptions:this._matchOptions,plugins:this._plugins})},e}(),pe=function(){function e(e,t,r){var n=this,o=void 0===r?{}:r,i=o.onupgradeneeded,u=o.onversionchange;this._db=null,this._name=e,this._version=t,this._onupgradeneeded=i,this._onversionchange=u||function(){return n.close()}}var t,r,n,o=e.prototype;return o.open=function(){return new Promise(function(e,t){var r;return r=this,this._db?e():Promise.resolve(new Promise((function(e,t){var n=!1;setTimeout((function(){n=!0,t(new Error("The open request was blocked and timed out"))}),r.OPEN_TIMEOUT);var o=indexedDB.open(r._name,r._version);o.onerror=function(){return t(o.error)},o.onupgradeneeded=function(e){n?(o.transaction.abort(),o.result.close()):"function"==typeof r._onupgradeneeded&&r._onupgradeneeded(e)},o.onsuccess=function(){var t=o.result;n?t.close():(t.onversionchange=r._onversionchange.bind(r),e(t))}}))).then(function(r){try{return this._db=r,e(this)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},o.getKey=function(e,t){return new Promise(function(r,n){return Promise.resolve(this.getAllKeys(e,t,1)).then((function(e){try{return r(e[0])}catch(e){return n(e)}}),n)}.bind(this))},o.getAll=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r})).then(n,o)}.bind(this))},o.getAllKeys=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r,includeKeys:!0})).then((function(e){try{return n(e.map((function(e){return e.key})))}catch(e){return o(e)}}),o)}.bind(this))},o.getAllMatching=function(e,t){return new Promise(function(r,n){var o,i,u,c,s,a,l,h,f;return i=(o=void 0===t?{}:t).index,c=void 0===(u=o.query)?null:u,a=void 0===(s=o.direction)?"next":s,l=o.count,f=void 0!==(h=o.includeKeys)&&h,Promise.resolve(this.transaction([e],"readonly",(function(t,r){var n=t.objectStore(e),o=i?n.index(i):n,u=[],s=o.openCursor(c,a);s.onsuccess=function(){var e=s.result;e?(u.push(f?e:e.value),l&&u.length>=l?r(u):e.continue()):r(u)}}))).then(r,n)}.bind(this))},o.transaction=function(e,t,r){return new Promise(function(n,o){var i;return i=this,Promise.resolve(this.open()).then((function(){try{return Promise.resolve(new Promise((function(n,o){var u=i._db.transaction(e,t);u.onabort=function(){return o(u.error)},u.oncomplete=function(){return n()},r(u,(function(e){return n(e)}))}))).then(n,o)}catch(e){return o(e)}}),o)}.bind(this))},o._call=function(e,t,r){var n=arguments;return new Promise(function(o,i){var u,c,s;for(u=n.length,c=new Array(u>3?u-3:0),s=3;s1?u-1:0),s=1;s=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(self.addEventListener("install",ae),self.addEventListener("activate",le))}(e),U(t)}function x(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return j(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return j(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?r-1:0),o=1;o0&&(t+=" :: "+JSON.stringify(n)),t},E=function(e){function t(t,r){var n,o=M(t,r);return(n=e.call(this,o)||this).name=t,n.details=r,n}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(n(Error)),N=(r("I3Xu"),function(e){return e&&"object"==typeof e?e:{handle:e}}),k=function(e,t,r){void 0===r&&(r="GET"),this.handler=N(t),this.match=e,this.method=r},W=function(e){function t(t,r,n){return e.call(this,(function(e){var r=e.url,n=t.exec(r.href);if(n&&(r.origin===location.origin||0===n.index))return n.slice(1)}),r,n)||this}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(k),F=function(e){return new URL(String(e),location.href).href.replace(new RegExp("^"+location.origin),"")},H=function(){function e(){this._routes=new Map}var t,r,n,o=e.prototype;return o.addFetchListener=function(){var e=this;self.addEventListener("fetch",(function(t){var r=e.handleRequest({request:t.request,event:t});r&&t.respondWith(r)}))},o.addCacheListener=function(){var e=this;self.addEventListener("message",(function(t){if(t.data&&"CACHE_URLS"===t.data.type){0;var r=Promise.all(t.data.payload.urlsToCache.map((function(t){"string"==typeof t&&(t=[t]);var r=l(Request,t);return e.handleRequest({request:r})})));t.waitUntil(r),t.ports&&t.ports[0]&&r.then((function(){return t.ports[0].postMessage(!0)}))}}))},o.handleRequest=function(e){var t=this,r=e.request,n=e.event;var o=new URL(r.url,location.href);if(o.protocol.startsWith("http")){var i=this.findMatchingRoute({url:o,request:r,event:n}),u=i.params,c=i.route,s=c&&c.handler;if(!s&&this._defaultHandler&&(s=this._defaultHandler),s){var a;0;try{a=s.handle({url:o,request:r,event:n,params:u})}catch(e){a=Promise.reject(e)}return a instanceof Promise&&this._catchHandler&&(a=a.catch((function(){return t._catchHandler.handle({url:o,request:r,event:n})}))),a}}},o.findMatchingRoute=function(e){var t=e.url,r=e.request,n=e.event;for(var o,i=s(this._routes.get(r.method)||[]);!(o=i()).done;){var u=o.value,c=void 0,a=u.match({url:t,request:r,event:n});if(a)return c=a,(Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(c=void 0),{route:u,params:c}}return{}},o.setDefaultHandler=function(e){this._defaultHandler=N(e)},o.setCatchHandler=function(e){this._catchHandler=N(e)},o.registerRoute=function(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)},o.unregisterRoute=function(e){if(!this._routes.has(e.method))throw new E("unregister-route-but-not-found-with-method",{method:e.method});var t=this._routes.get(e.method).indexOf(e);if(!(t>-1))throw new E("unregister-route-route-not-registered");this._routes.get(e.method).splice(t,1)},t=e,(r=[{key:"routes",get:function(){return this._routes}}])&&d(t.prototype,r),n&&d(t,n),e}(),D=function(){return L||((L=new H).addFetchListener(),L.addCacheListener()),L},B=(r("Gpc1"),[]),$=function(){return B},G={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},X=function(e){return[G.prefix,e,G.suffix].filter((function(e){return e&&e.length>0})).join("-")},Q=function(e){return e||X(G.googleAnalytics)},z=function(e){return e||X(G.precache)},J=function(){return G.prefix},V=function(e){return e||X(G.runtime)},Y=function(){return G.suffix},Z=new Set,ee=function(e,t){return e.filter((function(e){return t in e}))},te=function(e){return new Promise((function(t,r){function n(){return(h=l()).done?[1]:(f=h.value,Promise.resolve(f.cacheKeyWillBeUsed.call(f,{mode:u,request:a})).then((function(e){try{return"string"==typeof(a=e)&&(a=new Request(a)),n}catch(e){return r(e)}}),r))}function o(){return t(a)}var i,u,c,s,a,l,h,f,d;return i=e.request,u=e.mode,s=ee(void 0===(c=e.plugins)?[]:c,"cacheKeyWillBeUsed"),a=i,l=v(s),(d=function(e){for(;e;){if(e.then)return void e.then(d,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n)}))},re=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p;return n=e.cacheName,o=e.request,i=e.event,u=e.matchOptions,s=void 0===(c=e.plugins)?[]:c,Promise.resolve(self.caches.open(n)).then(function(e){try{return a=e,Promise.resolve(te({plugins:s,request:o,mode:"read"})).then(function(e){try{return l=e,Promise.resolve(a.match(l,u)).then(function(e){try{{var o;function c(){if((d=f()).done)return[1];{if("cachedResponseWillBeUsed"in(p=d.value))return Promise.resolve(p.cachedResponseWillBeUsed.call(p,{cacheName:n,event:i,matchOptions:u,cachedResponse:h,request:l})).then(function(t){try{return h=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);function e(){return c}return e.call(this)}}return h=e,f=v(s),(o=function(e){for(;e;){if(e.then)return void e.then(o,r);try{if(e.pop){if(e.length)return e.pop()?a.call(this):e;e=c}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(c);function a(){return t(h)}}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}))},ne=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,y,m,g;return n=e.cacheName,o=e.response,i=e.event,c=void 0===(u=e.plugins)?[]:u,s=e.matchOptions,Promise.resolve(te({plugins:c,request:e.request,mode:"write"})).then(function(e){try{return a=e,o?Promise.resolve((u={event:i,plugins:c,response:o,request:a},new Promise((function(e,t){function r(){if((h=l()).done)return[1];{if("cacheWillUpdate"in(f=h.value))return a=!0,Promise.resolve(f.cacheWillUpdate.call(f,{request:o,response:s,event:i})).then(function(r){try{return(s=r)?e.call(this):[1]}catch(e){return t(e)}}.bind(this),t);function e(){return r}return e.call(this)}}function n(){return a||(s=s&&200===s.status?s:void 0),e(s||null)}var o,i,c,s,a,l,h,f,d;return o=u.request,i=u.event,s=u.response,a=!1,l=v(void 0===(c=u.plugins)?[]:c),(d=function(e){for(;e;){if(e.then)return void e.then(d,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)})))).then(function(e){try{return(l=e)?Promise.resolve(self.caches.open(n)).then(function(e){try{return h=e,f=ee(c,"cacheDidUpdate"),Promise.resolve(new Promise((function(e,t){return f.length>0?Promise.resolve(re({cacheName:n,matchOptions:s,request:a})).then(e,t):e(null)}))).then(function(e){try{d=e;var o=function(e){try{if("QuotaExceededError"===e.name)return Promise.resolve(new Promise((function(e,t){function r(){return(i=o()).done?[1]:Promise.resolve((0,i.value)()).then((function(){try{return r}catch(e){return t(e)}}),t)}function n(){return e()}var o,i,u;return o=p(Z),(u=function(e){for(;e;){if(e.then)return void e.then(u,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)}))).then(function(){try{return t.call(this)}catch(e){return r(e)}}.bind(this),r);function t(){throw e}return t.call(this)}catch(e){return r(e)}}.bind(this);try{return Promise.resolve(h.put(a,l)).then((function(){try{return function(){try{var e;function o(){return(m=y()).done?[1]:(g=m.value,Promise.resolve(g.cacheDidUpdate.call(g,{cacheName:n,event:i,oldResponse:d,newResponse:l,request:a})).then((function(){try{return o}catch(e){return r(e)}}),r))}return y=v(f),(e=function(t){for(;t;){if(t.then)return void t.then(e,r);try{if(t.pop){if(t.length)return t.pop()?u.call(this):t;t=o}else t=t.call(this)}catch(e){return r(e)}}}.bind(this))(o);function u(){return t()}}catch(e){return r(e)}}()}catch(e){return o(e)}}),o)}catch(e){o(e)}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r):t()}catch(e){return r(e)}}.bind(this),r):r(new E("cache-put-with-no-response",{url:F(a.url)}))}catch(e){return r(e)}var u}.bind(this),r)}))},oe=re,ie=function(e){return new Promise((function(t,r){function n(){l=ee(s,"fetchDidFail"),h=l.length>0?o.clone():null;var e=function(e){try{throw new E("plugin-error-request-will-fetch",{thrownError:e})}catch(e){return r(e)}};try{var n;function c(){if((d=f()).done)return[1];{if("requestWillFetch"in(p=d.value))return y=p.requestWillFetch,v=o.clone(),Promise.resolve(y.call(p,{request:v,event:u})).then(function(r){try{return o=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return c}return t.call(this)}}return f=g(s),(n=function(t){for(;t;){if(t.then)return void t.then(n,e);try{if(t.pop){if(t.length)return t.pop()?a.call(this):t;t=c}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(c);function a(){return function(){try{m=o.clone();var e=function(e){try{{var t;function n(){return(S=R()).done?[1]:(A=S.value,Promise.resolve(A.fetchDidFail.call(A,{error:e,event:u,originalRequest:h.clone(),request:m.clone()})).then((function(){try{return n}catch(e){return r(e)}}),r))}return R=g(l),(t=function(e){for(;e;){if(e.then)return void e.then(t,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n);function o(){throw e}}}catch(e){return r(e)}}.bind(this);try{return"navigate"===o.mode?Promise.resolve(fetch(o)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e):Promise.resolve(fetch(o,i)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e);function n(){function r(){if((_=w()).done)return[1];{if("fetchDidSucceed"in(P=_.value))return Promise.resolve(P.fetchDidSucceed.call(P,{event:u,request:m,response:b})).then(function(r){try{return b=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return r}return t.call(this)}}function n(){return t(b)}var o;return w=g(s),(o=function(t){for(;t;){if(t.then)return void t.then(o,e);try{if(t.pop){if(t.length)return t.pop()?n.call(this):t;t=r}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(r)}}catch(t){e(t)}}catch(e){return r(e)}}()}}catch(t){e(t)}}var o,i,u,c,s,a,l,h,f,d,p,y,v,m,b,w,_,P,R,S,A;return i=e.fetchOptions,u=e.event,s=void 0===(c=e.plugins)?[]:c,"string"==typeof(o=e.request)&&(o=new Request(o)),u instanceof FetchEvent&&u.preloadResponse?Promise.resolve(u.preloadResponse).then(function(e){try{return(a=e)?t(a):n.call(this)}catch(e){return r(e)}}.bind(this),r):n.call(this)}))},ue=function(){function e(e){this._cacheName=z(e),this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map}var t=e.prototype;return t.addToCacheList=function(e){for(var t,r=[],n=P(e);!(t=n()).done;){var o=t.value;"string"==typeof o?r.push(o):o&&void 0===o.revision&&r.push(o.url);var i=_(o),u=i.cacheKey,c=i.url,s="string"!=typeof o&&o.revision?"reload":"default";if(this._urlsToCacheKeys.has(c)&&this._urlsToCacheKeys.get(c)!==u)throw new E("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(c),secondEntry:u});if("string"!=typeof o&&o.integrity){if(this._cacheKeysToIntegrities.has(u)&&this._cacheKeysToIntegrities.get(u)!==o.integrity)throw new E("add-to-cache-list-conflicting-integrities",{url:c});this._cacheKeysToIntegrities.set(u,o.integrity)}if(this._urlsToCacheKeys.set(c,u),this._urlsToCacheModes.set(c,s),r.length>0){var a="Workbox is precaching URLs without revision info: "+r.join(", ")+"\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache";console.warn(a)}}},t.install=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p,y,v;return n=this,i=(o=void 0===e?{}:e).event,u=o.plugins,c=[],s=[],Promise.resolve(self.caches.open(this._cacheName)).then(function(e){try{return Promise.resolve(e.keys()).then(function(e){try{for(a=new Set(e.map((function(e){return e.url}))),l=P(this._urlsToCacheKeys);!(h=l()).done;)d=(f=h.value)[0],a.has(p=f[1])?s.push(d):c.push({cacheKey:p,url:d});return y=c.map((function(e){var t=e.cacheKey,r=e.url,o=n._cacheKeysToIntegrities.get(t),c=n._urlsToCacheModes.get(r);return n._addURLToCache({cacheKey:t,cacheMode:c,event:i,integrity:o,plugins:u,url:r})})),Promise.resolve(Promise.all(y)).then((function(){try{return v=c.map((function(e){return e.url})),t({updatedURLs:v,notUpdatedURLs:s})}catch(e){return r(e)}}),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.activate=function(){return new Promise(function(e,t){var r,n,o,i,u,c,s;return Promise.resolve(self.caches.open(this._cacheName)).then(function(a){try{return r=a,Promise.resolve(r.keys()).then(function(a){try{{var l;function h(){if((c=u()).done)return[1];{if(!o.has((s=c.value).url))return Promise.resolve(r.delete(s)).then(function(){try{return i.push(s.url),e.call(this)}catch(e){return t(e)}}.bind(this),t);function e(){return h}return e.call(this)}}return n=a,o=new Set(this._urlsToCacheKeys.values()),i=[],u=P(n),(l=function(e){for(;e;){if(e.then)return void e.then(l,t);try{if(e.pop){if(e.length)return e.pop()?f.call(this):e;e=h}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(h);function f(){return e({deletedURLs:i})}}}catch(e){return t(e)}}.bind(this),t)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},t._addURLToCache=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f;return n=e.cacheKey,o=e.url,i=e.event,u=e.plugins,c=new Request(o,{integrity:e.integrity,cache:e.cacheMode,credentials:"same-origin"}),Promise.resolve(ie({event:i,plugins:u,request:c})).then(function(e){try{for(s=e,l=P(u||[]);!(h=l()).done;)"cacheWillUpdate"in(f=h.value)&&(a=f);return Promise.resolve(new Promise((function(e,t){return a?Promise.resolve(a.cacheWillUpdate({event:i,request:c,response:s})).then(e,t):e(s.status<400)}))).then(function(e){try{if(!e)return r(new E("bad-precaching-response",{url:o,status:s.status}));if(s.redirected)return Promise.resolve(w(s)).then(function(e){try{return s=e,a.call(this)}catch(e){return r(e)}}.bind(this),r);function a(){return Promise.resolve(ne({event:i,plugins:u,response:s,request:n===o?c:new Request(n),cacheName:this._cacheName,matchOptions:{ignoreSearch:!0}})).then((function(){try{return t()}catch(e){return r(e)}}),r)}return a.call(this)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.getURLsToCacheKeys=function(){return this._urlsToCacheKeys},t.getCachedURLs=function(){return[].concat(this._urlsToCacheKeys.keys())},t.getCacheKeyForURL=function(e){var t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)},t.matchPrecache=function(e){return new Promise(function(t,r){var n,o;return n=e instanceof Request?e.url:e,(o=this.getCacheKeyForURL(n))?Promise.resolve(self.caches.open(this._cacheName)).then((function(e){try{return t(e.match(o))}catch(e){return r(e)}}),r):t(void 0)}.bind(this))},t.createHandler=function(e){var t=this;return void 0===e&&(e=!0),function(r){return new Promise((function(n,o){var i,u;i=r.request;var c=function(t){try{if(e)return n(fetch(i));throw t}catch(e){return o(e)}};try{return Promise.resolve(t.matchPrecache(i)).then((function(e){try{if(u=e)return n(u);throw new E("missing-precache-entry",{cacheName:t._cacheName,url:i instanceof Request?i.url:i})}catch(e){return c(e)}}),c)}catch(e){c(e)}}))}},t.createHandlerBoundToURL=function(e,t){if(void 0===t&&(t=!0),!this.getCacheKeyForURL(e))throw new E("non-precached-url",{url:e});var r=this.createHandler(t),n=new Request(e);return function(){return r({request:n})}},e}(),ce=function(){return K||(K=new ue),K},se=!1,ae=function(e){var t=ce(),r=$();e.waitUntil(t.install({event:e,plugins:r}).catch((function(e){throw e})))},le=function(e){var t=ce();e.waitUntil(t.activate())},he=function(e){return"navigate"===e.request.mode},fe=(r("myed"),{cacheWillUpdate:function(e){return new Promise((function(t){var r=e.response;return t(200===r.status||0===r.status?r:null)}))}}),de=function(){function e(e){if(void 0===e&&(e={}),this._cacheName=V(e.cacheName),e.plugins){var t=e.plugins.some((function(e){return!!e.cacheWillUpdate}));this._plugins=t?e.plugins:[fe].concat(e.plugins)}else this._plugins=[fe];this._networkTimeoutSeconds=e.networkTimeoutSeconds||0,this._fetchOptions=e.fetchOptions,this._matchOptions=e.matchOptions}var t=e.prototype;return t.handle=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l;return n=e.event,i=[],"string"==typeof(o=e.request)&&(o=new Request(o)),u=[],this._networkTimeoutSeconds&&(c=(s=this._getTimeoutPromise({request:o,event:n,logs:i})).id,u.push(s.promise)),a=this._getNetworkPromise({timeoutId:c,request:o,event:n,logs:i}),u.push(a),Promise.resolve(Promise.race(u)).then(function(e){try{if(!(l=e))return Promise.resolve(a).then(function(e){try{return l=e,n.call(this)}catch(e){return r(e)}}.bind(this),r);function n(){return l?t(l):r(new E("no-response",{url:o.url}))}return n.call(this)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t._getTimeoutPromise=function(e){var t,r=this,n=e.request,o=e.event;return{promise:new Promise((function(e){t=setTimeout((function(){return new Promise((function(t,i){return Promise.resolve(r._respondFromCache({request:n,event:o})).then((function(r){try{return e(r),t()}catch(e){return i(e)}}),i)}))}),1e3*r._networkTimeoutSeconds)})),id:t}},t._getNetworkPromise=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a;n=e.timeoutId,o=e.request,i=e.event;var l=function(){try{if(n&&clearTimeout(n),u||!c)return Promise.resolve(this._respondFromCache({request:o,event:i})).then(function(t){try{return c=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);if(s=c.clone(),a=ne({cacheName:this._cacheName,request:o,response:s,event:i,plugins:this._plugins}),i)try{i.waitUntil(a)}catch(e){0}return e.call(this);function e(){return t(c)}}catch(e){return r(e)}}.bind(this),h=function(e){try{return u=e,l()}catch(e){return r(e)}};try{return Promise.resolve(ie({request:o,event:i,fetchOptions:this._fetchOptions,plugins:this._plugins})).then((function(e){try{return c=e,l()}catch(e){return h(e)}}),h)}catch(e){h(e)}}.bind(this))},t._respondFromCache=function(e){return oe({cacheName:this._cacheName,request:e.request,event:e.event,matchOptions:this._matchOptions,plugins:this._plugins})},e}(),pe=function(){function e(e,t,r){var n=this,o=void 0===r?{}:r,i=o.onupgradeneeded,u=o.onversionchange;this._db=null,this._name=e,this._version=t,this._onupgradeneeded=i,this._onversionchange=u||function(){return n.close()}}var t,r,n,o=e.prototype;return o.open=function(){return new Promise(function(e,t){var r;return r=this,this._db?e():Promise.resolve(new Promise((function(e,t){var n=!1;setTimeout((function(){n=!0,t(new Error("The open request was blocked and timed out"))}),r.OPEN_TIMEOUT);var o=indexedDB.open(r._name,r._version);o.onerror=function(){return t(o.error)},o.onupgradeneeded=function(e){n?(o.transaction.abort(),o.result.close()):"function"==typeof r._onupgradeneeded&&r._onupgradeneeded(e)},o.onsuccess=function(){var t=o.result;n?t.close():(t.onversionchange=r._onversionchange.bind(r),e(t))}}))).then(function(r){try{return this._db=r,e(this)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},o.getKey=function(e,t){return new Promise(function(r,n){return Promise.resolve(this.getAllKeys(e,t,1)).then((function(e){try{return r(e[0])}catch(e){return n(e)}}),n)}.bind(this))},o.getAll=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r})).then(n,o)}.bind(this))},o.getAllKeys=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r,includeKeys:!0})).then((function(e){try{return n(e.map((function(e){return e.key})))}catch(e){return o(e)}}),o)}.bind(this))},o.getAllMatching=function(e,t){return new Promise(function(r,n){var o,i,u,c,s,a,l,h,f;return i=(o=void 0===t?{}:t).index,c=void 0===(u=o.query)?null:u,a=void 0===(s=o.direction)?"next":s,l=o.count,f=void 0!==(h=o.includeKeys)&&h,Promise.resolve(this.transaction([e],"readonly",(function(t,r){var n=t.objectStore(e),o=i?n.index(i):n,u=[],s=o.openCursor(c,a);s.onsuccess=function(){var e=s.result;e?(u.push(f?e:e.value),l&&u.length>=l?r(u):e.continue()):r(u)}}))).then(r,n)}.bind(this))},o.transaction=function(e,t,r){return new Promise(function(n,o){var i;return i=this,Promise.resolve(this.open()).then((function(){try{return Promise.resolve(new Promise((function(n,o){var u=i._db.transaction(e,t);u.onabort=function(){return o(u.error)},u.oncomplete=function(){return n()},r(u,(function(e){return n(e)}))}))).then(n,o)}catch(e){return o(e)}}),o)}.bind(this))},o._call=function(e,t,r){var n=arguments;return new Promise(function(o,i){var u,c,s;for(u=n.length,c=new Array(u>3?u-3:0),s=3;s1?u-1:0),s=1;s=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(self.addEventListener("install",ae),self.addEventListener("activate",le))}(e),U(t)}function x(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return j(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return j(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?r-1:0),o=1;o0&&(t+=" :: "+JSON.stringify(n)),t},E=function(e){function t(t,r){var n,o=M(t,r);return(n=e.call(this,o)||this).name=t,n.details=r,n}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(n(Error)),N=(r("I3Xu"),function(e){return e&&"object"==typeof e?e:{handle:e}}),k=function(e,t,r){void 0===r&&(r="GET"),this.handler=N(t),this.match=e,this.method=r},W=function(e){function t(t,r,n){return e.call(this,(function(e){var r=e.url,n=t.exec(r.href);if(n&&(r.origin===location.origin||0===n.index))return n.slice(1)}),r,n)||this}var r,n;return n=e,(r=t).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,t}(k),F=function(e){return new URL(String(e),location.href).href.replace(new RegExp("^"+location.origin),"")},H=function(){function e(){this._routes=new Map}var t,r,n,o=e.prototype;return o.addFetchListener=function(){var e=this;self.addEventListener("fetch",(function(t){var r=e.handleRequest({request:t.request,event:t});r&&t.respondWith(r)}))},o.addCacheListener=function(){var e=this;self.addEventListener("message",(function(t){if(t.data&&"CACHE_URLS"===t.data.type){0;var r=Promise.all(t.data.payload.urlsToCache.map((function(t){"string"==typeof t&&(t=[t]);var r=l(Request,t);return e.handleRequest({request:r})})));t.waitUntil(r),t.ports&&t.ports[0]&&r.then((function(){return t.ports[0].postMessage(!0)}))}}))},o.handleRequest=function(e){var t=this,r=e.request,n=e.event;var o=new URL(r.url,location.href);if(o.protocol.startsWith("http")){var i=this.findMatchingRoute({url:o,request:r,event:n}),u=i.params,c=i.route,s=c&&c.handler;if(!s&&this._defaultHandler&&(s=this._defaultHandler),s){var a;0;try{a=s.handle({url:o,request:r,event:n,params:u})}catch(e){a=Promise.reject(e)}return a instanceof Promise&&this._catchHandler&&(a=a.catch((function(){return t._catchHandler.handle({url:o,request:r,event:n})}))),a}}},o.findMatchingRoute=function(e){var t=e.url,r=e.request,n=e.event;for(var o,i=s(this._routes.get(r.method)||[]);!(o=i()).done;){var u=o.value,c=void 0,a=u.match({url:t,request:r,event:n});if(a)return c=a,(Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(c=void 0),{route:u,params:c}}return{}},o.setDefaultHandler=function(e){this._defaultHandler=N(e)},o.setCatchHandler=function(e){this._catchHandler=N(e)},o.registerRoute=function(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)},o.unregisterRoute=function(e){if(!this._routes.has(e.method))throw new E("unregister-route-but-not-found-with-method",{method:e.method});var t=this._routes.get(e.method).indexOf(e);if(!(t>-1))throw new E("unregister-route-route-not-registered");this._routes.get(e.method).splice(t,1)},t=e,(r=[{key:"routes",get:function(){return this._routes}}])&&d(t.prototype,r),n&&d(t,n),e}(),D=function(){return L||((L=new H).addFetchListener(),L.addCacheListener()),L},B=(r("Gpc1"),[]),$=function(){return B},G={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},X=function(e){return[G.prefix,e,G.suffix].filter((function(e){return e&&e.length>0})).join("-")},Q=function(e){return e||X(G.googleAnalytics)},z=function(e){return e||X(G.precache)},J=function(){return G.prefix},V=function(e){return e||X(G.runtime)},Y=function(){return G.suffix},Z=new Set,ee=function(e,t){return e.filter((function(e){return t in e}))},te=function(e){return new Promise((function(t,r){function n(){return(h=l()).done?[1]:(f=h.value,Promise.resolve(f.cacheKeyWillBeUsed.call(f,{mode:u,request:a})).then((function(e){try{return"string"==typeof(a=e)&&(a=new Request(a)),n}catch(e){return r(e)}}),r))}function o(){return t(a)}var i,u,c,s,a,l,h,f,d;return i=e.request,u=e.mode,s=ee(void 0===(c=e.plugins)?[]:c,"cacheKeyWillBeUsed"),a=i,l=v(s),(d=function(e){for(;e;){if(e.then)return void e.then(d,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n)}))},re=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p;return n=e.cacheName,o=e.request,i=e.event,u=e.matchOptions,s=void 0===(c=e.plugins)?[]:c,Promise.resolve(self.caches.open(n)).then(function(e){try{return a=e,Promise.resolve(te({plugins:s,request:o,mode:"read"})).then(function(e){try{return l=e,Promise.resolve(a.match(l,u)).then(function(e){try{{var o;function c(){if((d=f()).done)return[1];{if("cachedResponseWillBeUsed"in(p=d.value))return Promise.resolve(p.cachedResponseWillBeUsed.call(p,{cacheName:n,event:i,matchOptions:u,cachedResponse:h,request:l})).then(function(t){try{return h=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);function e(){return c}return e.call(this)}}return h=e,f=v(s),(o=function(e){for(;e;){if(e.then)return void e.then(o,r);try{if(e.pop){if(e.length)return e.pop()?a.call(this):e;e=c}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(c);function a(){return t(h)}}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}))},ne=function(e){return new Promise((function(t,r){var n,o,i,u,c,s,a,l,h,f,d,y,m,g;return n=e.cacheName,o=e.response,i=e.event,c=void 0===(u=e.plugins)?[]:u,s=e.matchOptions,Promise.resolve(te({plugins:c,request:e.request,mode:"write"})).then(function(e){try{return a=e,o?Promise.resolve((u={event:i,plugins:c,response:o,request:a},new Promise((function(e,t){function r(){if((h=l()).done)return[1];{if("cacheWillUpdate"in(f=h.value))return a=!0,Promise.resolve(f.cacheWillUpdate.call(f,{request:o,response:s,event:i})).then(function(r){try{return(s=r)?e.call(this):[1]}catch(e){return t(e)}}.bind(this),t);function e(){return r}return e.call(this)}}function n(){return a||(s=s&&200===s.status?s:void 0),e(s||null)}var o,i,c,s,a,l,h,f,d;return o=u.request,i=u.event,s=u.response,a=!1,l=v(void 0===(c=u.plugins)?[]:c),(d=function(e){for(;e;){if(e.then)return void e.then(d,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)})))).then(function(e){try{return(l=e)?Promise.resolve(self.caches.open(n)).then(function(e){try{return h=e,f=ee(c,"cacheDidUpdate"),Promise.resolve(new Promise((function(e,t){return f.length>0?Promise.resolve(re({cacheName:n,matchOptions:s,request:a})).then(e,t):e(null)}))).then(function(e){try{d=e;var o=function(e){try{if("QuotaExceededError"===e.name)return Promise.resolve(new Promise((function(e,t){function r(){return(i=o()).done?[1]:Promise.resolve((0,i.value)()).then((function(){try{return r}catch(e){return t(e)}}),t)}function n(){return e()}var o,i,u;return o=p(Z),(u=function(e){for(;e;){if(e.then)return void e.then(u,t);try{if(e.pop){if(e.length)return e.pop()?n.call(this):e;e=r}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(r)}))).then(function(){try{return t.call(this)}catch(e){return r(e)}}.bind(this),r);function t(){throw e}return t.call(this)}catch(e){return r(e)}}.bind(this);try{return Promise.resolve(h.put(a,l)).then((function(){try{return function(){try{var e;function o(){return(m=y()).done?[1]:(g=m.value,Promise.resolve(g.cacheDidUpdate.call(g,{cacheName:n,event:i,oldResponse:d,newResponse:l,request:a})).then((function(){try{return o}catch(e){return r(e)}}),r))}return y=v(f),(e=function(t){for(;t;){if(t.then)return void t.then(e,r);try{if(t.pop){if(t.length)return t.pop()?u.call(this):t;t=o}else t=t.call(this)}catch(e){return r(e)}}}.bind(this))(o);function u(){return t()}}catch(e){return r(e)}}()}catch(e){return o(e)}}),o)}catch(e){o(e)}}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r):t()}catch(e){return r(e)}}.bind(this),r):r(new E("cache-put-with-no-response",{url:F(a.url)}))}catch(e){return r(e)}var u}.bind(this),r)}))},oe=re,ie=function(e){return new Promise((function(t,r){function n(){l=ee(s,"fetchDidFail"),h=l.length>0?o.clone():null;var e=function(e){try{throw new E("plugin-error-request-will-fetch",{thrownError:e})}catch(e){return r(e)}};try{var n;function c(){if((d=f()).done)return[1];{if("requestWillFetch"in(p=d.value))return y=p.requestWillFetch,v=o.clone(),Promise.resolve(y.call(p,{request:v,event:u})).then(function(r){try{return o=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return c}return t.call(this)}}return f=g(s),(n=function(t){for(;t;){if(t.then)return void t.then(n,e);try{if(t.pop){if(t.length)return t.pop()?a.call(this):t;t=c}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(c);function a(){return function(){try{m=o.clone();var e=function(e){try{{var t;function n(){return(S=R()).done?[1]:(A=S.value,Promise.resolve(A.fetchDidFail.call(A,{error:e,event:u,originalRequest:h.clone(),request:m.clone()})).then((function(){try{return n}catch(e){return r(e)}}),r))}return R=g(l),(t=function(e){for(;e;){if(e.then)return void e.then(t,r);try{if(e.pop){if(e.length)return e.pop()?o.call(this):e;e=n}else e=e.call(this)}catch(e){return r(e)}}}.bind(this))(n);function o(){throw e}}}catch(e){return r(e)}}.bind(this);try{return"navigate"===o.mode?Promise.resolve(fetch(o)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e):Promise.resolve(fetch(o,i)).then(function(t){try{return b=t,n.call(this)}catch(t){return e(t)}}.bind(this),e);function n(){function r(){if((_=w()).done)return[1];{if("fetchDidSucceed"in(P=_.value))return Promise.resolve(P.fetchDidSucceed.call(P,{event:u,request:m,response:b})).then(function(r){try{return b=r,t.call(this)}catch(t){return e(t)}}.bind(this),e);function t(){return r}return t.call(this)}}function n(){return t(b)}var o;return w=g(s),(o=function(t){for(;t;){if(t.then)return void t.then(o,e);try{if(t.pop){if(t.length)return t.pop()?n.call(this):t;t=r}else t=t.call(this)}catch(t){return e(t)}}}.bind(this))(r)}}catch(t){e(t)}}catch(e){return r(e)}}()}}catch(t){e(t)}}var o,i,u,c,s,a,l,h,f,d,p,y,v,m,b,w,_,P,R,S,A;return i=e.fetchOptions,u=e.event,s=void 0===(c=e.plugins)?[]:c,"string"==typeof(o=e.request)&&(o=new Request(o)),u instanceof FetchEvent&&u.preloadResponse?Promise.resolve(u.preloadResponse).then(function(e){try{return(a=e)?t(a):n.call(this)}catch(e){return r(e)}}.bind(this),r):n.call(this)}))},ue=function(){function e(e){this._cacheName=z(e),this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map}var t=e.prototype;return t.addToCacheList=function(e){for(var t,r=[],n=P(e);!(t=n()).done;){var o=t.value;"string"==typeof o?r.push(o):o&&void 0===o.revision&&r.push(o.url);var i=_(o),u=i.cacheKey,c=i.url,s="string"!=typeof o&&o.revision?"reload":"default";if(this._urlsToCacheKeys.has(c)&&this._urlsToCacheKeys.get(c)!==u)throw new E("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(c),secondEntry:u});if("string"!=typeof o&&o.integrity){if(this._cacheKeysToIntegrities.has(u)&&this._cacheKeysToIntegrities.get(u)!==o.integrity)throw new E("add-to-cache-list-conflicting-integrities",{url:c});this._cacheKeysToIntegrities.set(u,o.integrity)}if(this._urlsToCacheKeys.set(c,u),this._urlsToCacheModes.set(c,s),r.length>0){var a="Workbox is precaching URLs without revision info: "+r.join(", ")+"\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache";console.warn(a)}}},t.install=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f,d,p,y,v;return n=this,i=(o=void 0===e?{}:e).event,u=o.plugins,c=[],s=[],Promise.resolve(self.caches.open(this._cacheName)).then(function(e){try{return Promise.resolve(e.keys()).then(function(e){try{for(a=new Set(e.map((function(e){return e.url}))),l=P(this._urlsToCacheKeys);!(h=l()).done;)d=(f=h.value)[0],a.has(p=f[1])?s.push(d):c.push({cacheKey:p,url:d});return y=c.map((function(e){var t=e.cacheKey,r=e.url,o=n._cacheKeysToIntegrities.get(t),c=n._urlsToCacheModes.get(r);return n._addURLToCache({cacheKey:t,cacheMode:c,event:i,integrity:o,plugins:u,url:r})})),Promise.resolve(Promise.all(y)).then((function(){try{return v=c.map((function(e){return e.url})),t({updatedURLs:v,notUpdatedURLs:s})}catch(e){return r(e)}}),r)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.activate=function(){return new Promise(function(e,t){var r,n,o,i,u,c,s;return Promise.resolve(self.caches.open(this._cacheName)).then(function(a){try{return r=a,Promise.resolve(r.keys()).then(function(a){try{{var l;function h(){if((c=u()).done)return[1];{if(!o.has((s=c.value).url))return Promise.resolve(r.delete(s)).then(function(){try{return i.push(s.url),e.call(this)}catch(e){return t(e)}}.bind(this),t);function e(){return h}return e.call(this)}}return n=a,o=new Set(this._urlsToCacheKeys.values()),i=[],u=P(n),(l=function(e){for(;e;){if(e.then)return void e.then(l,t);try{if(e.pop){if(e.length)return e.pop()?f.call(this):e;e=h}else e=e.call(this)}catch(e){return t(e)}}}.bind(this))(h);function f(){return e({deletedURLs:i})}}}catch(e){return t(e)}}.bind(this),t)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},t._addURLToCache=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l,h,f;return n=e.cacheKey,o=e.url,i=e.event,u=e.plugins,c=new Request(o,{integrity:e.integrity,cache:e.cacheMode,credentials:"same-origin"}),Promise.resolve(ie({event:i,plugins:u,request:c})).then(function(e){try{for(s=e,l=P(u||[]);!(h=l()).done;)"cacheWillUpdate"in(f=h.value)&&(a=f);return Promise.resolve(new Promise((function(e,t){return a?Promise.resolve(a.cacheWillUpdate({event:i,request:c,response:s})).then(e,t):e(s.status<400)}))).then(function(e){try{if(!e)return r(new E("bad-precaching-response",{url:o,status:s.status}));if(s.redirected)return Promise.resolve(w(s)).then(function(e){try{return s=e,a.call(this)}catch(e){return r(e)}}.bind(this),r);function a(){return Promise.resolve(ne({event:i,plugins:u,response:s,request:n===o?c:new Request(n),cacheName:this._cacheName,matchOptions:{ignoreSearch:!0}})).then((function(){try{return t()}catch(e){return r(e)}}),r)}return a.call(this)}catch(e){return r(e)}}.bind(this),r)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t.getURLsToCacheKeys=function(){return this._urlsToCacheKeys},t.getCachedURLs=function(){return[].concat(this._urlsToCacheKeys.keys())},t.getCacheKeyForURL=function(e){var t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)},t.matchPrecache=function(e){return new Promise(function(t,r){var n,o;return n=e instanceof Request?e.url:e,(o=this.getCacheKeyForURL(n))?Promise.resolve(self.caches.open(this._cacheName)).then((function(e){try{return t(e.match(o))}catch(e){return r(e)}}),r):t(void 0)}.bind(this))},t.createHandler=function(e){var t=this;return void 0===e&&(e=!0),function(r){return new Promise((function(n,o){var i,u;i=r.request;var c=function(t){try{if(e)return n(fetch(i));throw t}catch(e){return o(e)}};try{return Promise.resolve(t.matchPrecache(i)).then((function(e){try{if(u=e)return n(u);throw new E("missing-precache-entry",{cacheName:t._cacheName,url:i instanceof Request?i.url:i})}catch(e){return c(e)}}),c)}catch(e){c(e)}}))}},t.createHandlerBoundToURL=function(e,t){if(void 0===t&&(t=!0),!this.getCacheKeyForURL(e))throw new E("non-precached-url",{url:e});var r=this.createHandler(t),n=new Request(e);return function(){return r({request:n})}},e}(),ce=function(){return K||(K=new ue),K},se=!1,ae=function(e){var t=ce(),r=$();e.waitUntil(t.install({event:e,plugins:r}).catch((function(e){throw e})))},le=function(e){var t=ce();e.waitUntil(t.activate())},he=function(e){return"navigate"===e.request.mode},fe=(r("myed"),{cacheWillUpdate:function(e){return new Promise((function(t){var r=e.response;return t(200===r.status||0===r.status?r:null)}))}}),de=function(){function e(e){if(void 0===e&&(e={}),this._cacheName=V(e.cacheName),e.plugins){var t=e.plugins.some((function(e){return!!e.cacheWillUpdate}));this._plugins=t?e.plugins:[fe].concat(e.plugins)}else this._plugins=[fe];this._networkTimeoutSeconds=e.networkTimeoutSeconds||0,this._fetchOptions=e.fetchOptions,this._matchOptions=e.matchOptions}var t=e.prototype;return t.handle=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a,l;return n=e.event,i=[],"string"==typeof(o=e.request)&&(o=new Request(o)),u=[],this._networkTimeoutSeconds&&(c=(s=this._getTimeoutPromise({request:o,event:n,logs:i})).id,u.push(s.promise)),a=this._getNetworkPromise({timeoutId:c,request:o,event:n,logs:i}),u.push(a),Promise.resolve(Promise.race(u)).then(function(e){try{if(!(l=e))return Promise.resolve(a).then(function(e){try{return l=e,n.call(this)}catch(e){return r(e)}}.bind(this),r);function n(){return l?t(l):r(new E("no-response",{url:o.url}))}return n.call(this)}catch(e){return r(e)}}.bind(this),r)}.bind(this))},t._getTimeoutPromise=function(e){var t,r=this,n=e.request,o=e.event;return{promise:new Promise((function(e){t=setTimeout((function(){return new Promise((function(t,i){return Promise.resolve(r._respondFromCache({request:n,event:o})).then((function(r){try{return e(r),t()}catch(e){return i(e)}}),i)}))}),1e3*r._networkTimeoutSeconds)})),id:t}},t._getNetworkPromise=function(e){return new Promise(function(t,r){var n,o,i,u,c,s,a;n=e.timeoutId,o=e.request,i=e.event;var l=function(){try{if(n&&clearTimeout(n),u||!c)return Promise.resolve(this._respondFromCache({request:o,event:i})).then(function(t){try{return c=t,e.call(this)}catch(e){return r(e)}}.bind(this),r);if(s=c.clone(),a=ne({cacheName:this._cacheName,request:o,response:s,event:i,plugins:this._plugins}),i)try{i.waitUntil(a)}catch(e){0}return e.call(this);function e(){return t(c)}}catch(e){return r(e)}}.bind(this),h=function(e){try{return u=e,l()}catch(e){return r(e)}};try{return Promise.resolve(ie({request:o,event:i,fetchOptions:this._fetchOptions,plugins:this._plugins})).then((function(e){try{return c=e,l()}catch(e){return h(e)}}),h)}catch(e){h(e)}}.bind(this))},t._respondFromCache=function(e){return oe({cacheName:this._cacheName,request:e.request,event:e.event,matchOptions:this._matchOptions,plugins:this._plugins})},e}(),pe=function(){function e(e,t,r){var n=this,o=void 0===r?{}:r,i=o.onupgradeneeded,u=o.onversionchange;this._db=null,this._name=e,this._version=t,this._onupgradeneeded=i,this._onversionchange=u||function(){return n.close()}}var t,r,n,o=e.prototype;return o.open=function(){return new Promise(function(e,t){var r;return r=this,this._db?e():Promise.resolve(new Promise((function(e,t){var n=!1;setTimeout((function(){n=!0,t(new Error("The open request was blocked and timed out"))}),r.OPEN_TIMEOUT);var o=indexedDB.open(r._name,r._version);o.onerror=function(){return t(o.error)},o.onupgradeneeded=function(e){n?(o.transaction.abort(),o.result.close()):"function"==typeof r._onupgradeneeded&&r._onupgradeneeded(e)},o.onsuccess=function(){var t=o.result;n?t.close():(t.onversionchange=r._onversionchange.bind(r),e(t))}}))).then(function(r){try{return this._db=r,e(this)}catch(e){return t(e)}}.bind(this),t)}.bind(this))},o.getKey=function(e,t){return new Promise(function(r,n){return Promise.resolve(this.getAllKeys(e,t,1)).then((function(e){try{return r(e[0])}catch(e){return n(e)}}),n)}.bind(this))},o.getAll=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r})).then(n,o)}.bind(this))},o.getAllKeys=function(e,t,r){return new Promise(function(n,o){return Promise.resolve(this.getAllMatching(e,{query:t,count:r,includeKeys:!0})).then((function(e){try{return n(e.map((function(e){return e.key})))}catch(e){return o(e)}}),o)}.bind(this))},o.getAllMatching=function(e,t){return new Promise(function(r,n){var o,i,u,c,s,a,l,h,f;return i=(o=void 0===t?{}:t).index,c=void 0===(u=o.query)?null:u,a=void 0===(s=o.direction)?"next":s,l=o.count,f=void 0!==(h=o.includeKeys)&&h,Promise.resolve(this.transaction([e],"readonly",(function(t,r){var n=t.objectStore(e),o=i?n.index(i):n,u=[],s=o.openCursor(c,a);s.onsuccess=function(){var e=s.result;e?(u.push(f?e:e.value),l&&u.length>=l?r(u):e.continue()):r(u)}}))).then(r,n)}.bind(this))},o.transaction=function(e,t,r){return new Promise(function(n,o){var i;return i=this,Promise.resolve(this.open()).then((function(){try{return Promise.resolve(new Promise((function(n,o){var u=i._db.transaction(e,t);u.onabort=function(){return o(u.error)},u.oncomplete=function(){return n()},r(u,(function(e){return n(e)}))}))).then(n,o)}catch(e){return o(e)}}),o)}.bind(this))},o._call=function(e,t,r){var n=arguments;return new Promise(function(o,i){var u,c,s;for(u=n.length,c=new Array(u>3?u-3:0),s=3;s1?u-1:0),s=1;s ( diff --git a/src/routes/post/index.js b/src/routes/post/index.js index 0083988..225ab7b 100644 --- a/src/routes/post/index.js +++ b/src/routes/post/index.js @@ -13,10 +13,10 @@ const ident = _ => _ const previewContorls = content => (