diff --git a/footer.php b/footer.php index cdfa40f8..e8297cc5 100644 --- a/footer.php +++ b/footer.php @@ -45,13 +45,7 @@
-
- -
- -

- -
+
diff --git a/functions.php b/functions.php index 1206e123..618b85b0 100644 --- a/functions.php +++ b/functions.php @@ -848,7 +848,7 @@ function comment_mail_notify($comment_id) $parent_id = $comment->comment_parent ?: ''; $spam_confirmed = $comment->comment_approved; $mail_notify = iro_opt('mail_notify') ? get_comment_meta($parent_id, 'mail_notify', false) : false; - $admin_notify = iro_opt('admin_notify') ? '1' : (get_comment($parent_id)->comment_author_email != get_bloginfo('admin_email') ? '1' : '0'); + $admin_notify = iro_opt('admin_notify') ? '1' : ((isset(get_comment($parent_id)->comment_author_email) && get_comment($parent_id)->comment_author_email) != get_bloginfo('admin_email') ? '1' : '0'); if (($parent_id != '') && ($spam_confirmed != 'spam') && ($admin_notify != '0') && (!$mail_notify)) { $wp_email = $mail_user_name . '@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); $to = trim(get_comment($parent_id)->comment_author_email); @@ -1590,7 +1590,7 @@ function DEFAULT_FEATURE_IMAGE() //评论回复 function sakura_comment_notify($comment_id) { - if (!$_POST['mail-notify']) { + if (!isset($_POST['mail-notify'])) { update_comment_meta($comment_id, 'mail_notify', 'false'); } diff --git a/header.php b/header.php index e11e13d5..53a1e896 100644 --- a/header.php +++ b/header.php @@ -9,8 +9,6 @@ * @package Akina */ - $mashiro_logo = iro_opt('mashiro_logo'); - ?> @@ -99,26 +97,7 @@
",g=function(e,t){return t=t.replace(t,"^(?=.*?"+t+").+$").replace(/\s/g,")(?=.*?"),e.filter((e=>Object.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(o=0;o{let e=document.documentElement.scrollTop||window.pageYOffset,t=document.querySelector(".site-header");0==e&&t.classList.remove("yya"),e>0&&t.classList.add("yya")}))},XLS:function(){let e;function t(){const e=document.querySelector("#pagination a");return e.classList.add("loading"),e.innerText="",fetch(e.getAttribute("href")+"#main").then((e=>e.text())).then((t=>{const n=(new DOMParser).parseFromString(t,"text/html"),o=n.querySelectorAll("#main .post"),s=n.querySelector("#pagination a"),a=s&&s.innerText,i=s&&s.getAttribute("href");for(let e=0;e{const n=await t.text();if(t.ok){Array.from(document.getElementsByTagName("textarea")).forEach((e=>e.value=""));const t=document.getElementById("cancel-comment-reply-link"),o=document.getElementById("wp-temp-form-div"),s=document.getElementById(addComment.respondId);"0"!=document.getElementById("comment_parent").value?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementsByClassName(e).length?"asc"==Poi.order?document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("beforeend",n):document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("afterbegin",n):"bottom"==Poi.formpostion?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementById("respond").insertAdjacentHTML("afterend",'
    '+n+"
"),addComment.createButterbar("提交成功(Succeed)"),(0,r.mA)(),y(),S(),document.getElementById("upload-img-show").innerHTML="",t.style.display="none",t.onclick=null,document.getElementById("comment_parent").value="0",o&&s&&(o.parentNode.insertBefore(s,o),o.remove())}else addComment.createButterbar(null!=n?n:"HTTP"+t.status+":"+t.statusText)})).catch((e=>{addComment.createButterbar(e)})),!1})),window.addComment=a(2713).Z},XCP:function(){document.body.addEventListener("click",(function(e){if(e.target.parentNode==document.getElementById("comments-navi")&&"a"==e.target.nodeName.toLowerCase()){e.preventDefault(),e.stopPropagation();let t=e.target,n=t.pathname,o=new XMLHttpRequest;o.open("GET",t.getAttribute("href"),!0),o.responseType="document",o.onloadstart=()=>{let e=document.getElementById("comments-navi"),t=document.querySelector("ul.commentwrap"),n=document.getElementById("loading-comments"),o=document.getElementById("comments-list-title");e.remove(),t.remove(),n.style.display="block",v(n,500,"show"),window.scrollTo({top:o.getBoundingClientRect().top+window.pageYOffset-o.clientTop-65,behavior:"smooth"})},o.onreadystatechange=function(){if(4==o.readyState&&200==o.status){let e=o.response,t=e.querySelector("ul.commentwrap"),s=e.getElementById("comments-navi");v(document.getElementById("loading-comments"),200,"hide"),document.getElementById("loading-comments").insertAdjacentHTML("afterend",t.outerHTML),document.querySelector("ul.commentwrap").insertAdjacentHTML("afterend",s.outerHTML),(0,r.mA)(),window.gtag&>ag("config",Poi.google_analytics_id,{page_path:n}),y(),S();let a=document.querySelector("ul.commentwrap");window.scrollTo({top:a&&a.getBoundingClientRect().top+window.pageYOffset-a.clientTop-200,behavior:"smooth"})}},o.send()}}))},IA:function(){f().colorful=!0,f().shake=!1,document.body.addEventListener("input",f())},GT:function(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||document.body.scrollTop)>20?(e.style.transform="scale(1)",t.style.transform="scale(1)"):(e.style.transform="scale(0)",t.style.transform="scale(0)")})),e.onclick=function(){window.scrollTo({top:0,behavior:"smooth"})}}};Poi.pjax&&(document.addEventListener("pjax:send",(()=>{for(const e of document.getElementsByClassName("normal-cover-video"))e.pause(),e.src="",e.load="";document.getElementById("bar").style.width="0%",mashiro_option.NProgressON&&i().start(),F.MNH()})),document.addEventListener("pjax:complete",(function(){F.AH(),F.PE(),F.CE(),mashiro_option.NProgressON&&i().done(),mashiro_global.ini.pjax();let e=document.getElementById("loading");e&&(e.classList.add("hide"),e.classList.remove("show")),document.querySelector(".js-search.is-visible")&&(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),document.getElementsByClassName("js-search")[0].classList.toggle("is-visible"),document.documentElement.style.overflowY="unset")})),document.addEventListener("pjax:success",(function(){window.gtag&>ag("config",Poi.google_analytics_id,{page_path:window.location.pathname})})),window.addEventListener("popstate",(function(e){F.AH(),F.PE(),F.CE(),M(),I(!0),b()}),!1)),w((function(){F.AH(),F.PE(),F.NH(),F.GT(),F.XLS(),F.XCS(),F.XCP(),F.CE(),F.MN(),F.IA(),F.LV(),console.log("%c Mashiro %c","background:#24272A; color:#ffffff","","https://2heng.xin/"),console.log("%c Github %c","background:#24272A; color:#ffffff","","https://github.com/mashirozx")}));let X=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,W=navigator.userAgent.toLowerCase().indexOf("opera")>-1,V=navigator.userAgent.toLowerCase().indexOf("msie")>-1;function Y(){mashiro_option.audio&&w((()=>{window.AudioContext=window.AudioContext||window.webkitAudioContext,function(){if(window.AudioContext){let e,t=new AudioContext,n="880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880".split(" "),o=0,r=1,s="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" "),a=!1;document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((i=>{i.addEventListener("mouseenter",(i=>{if(e)return;let l=n[o];l||(o=0,l=n[o]),o+=r;let c=t.createOscillator(),d=t.createGain();if(c.connect(d),d.connect(t.destination),c.type="sine",c.frequency.value=l,d.gain.setValueAtTime(0,t.currentTime),d.gain.linearRampToValueAtTime(1,t.currentTime+.01),c.start(t.currentTime),d.gain.exponentialRampToValueAtTime(.001,t.currentTime+1),c.stop(t.currentTime+1),a=!0){let t=Math.round(7*Math.random());e=document.createElement("b"),e.textContent=s[t],h=i.pageX,p=i.pageY-5,e.style.zIndex="99999",e.style.top=p-100+"px",e.style.left=h+"px",e.style.position="absolute",e.style.color="#FF6EB4",document.body.appendChild(e),e.animate([{top:p+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{e.remove(),e=null}),500),i.stopPropagation()}a=!1}))}))}}()}))}(X||W||V)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",(function(){let e,t=location.hash.substring(1);/^[A-z0-9_-]+$/.test(t)&&(e=document.getElementById(t),e&&(/^(?:a|select|input|button|textarea)$/i.test(e.tagName)||(e.tabIndex=-1),e.focus()))}),!1),window.addEventListener("load",(()=>{const e=document.getElementById("preload");e&&(document.documentElement.style.overflowY="unset",0==mashiro_option.preload_blur?(e.classList.add("hide"),e.classList.remove("show"),setTimeout((()=>e.remove()),233)):e.animate([{filter:"blur(0px)",backdropFilter:"blur(10px)",opacity:1},{backdropFilter:"blur(0px)grayscale(0)",opacity:.1},{opacity:0,filter:"blur(100px)"}],{duration:mashiro_option.preload_blur,fill:"forwards",easing:"ease"}).onfinish=()=>{e.remove()})}))})()})(); +(()=>{var e,t,n,o,r={5213:function(e){var t;t=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";var o=document.createElement("canvas");o.width=window.innerWidth,o.height=window.innerHeight,o.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:999999",window.addEventListener("resize",(function(){o.width=window.innerWidth,o.height=window.innerHeight})),document.body.appendChild(o);var r=o.getContext("2d"),s=[],i=0,a=!1;function l(e,t){return Math.random()*(t-e)+e}function c(e){if(u.colorful){var t=l(0,360);return"hsla("+l(t-10,t+10)+", 100%, "+l(50,80)+"%, 1)"}return window.getComputedStyle(e).color}function d(e,t,n){return{x:e,y:t,alpha:1,color:n,velocity:{x:2*Math.random()-1,y:2*Math.random()-3.5}}}function u(){for(var e=function(){var e,t=document.activeElement;if("TEXTAREA"===t.tagName||"INPUT"===t.tagName&&"text"===t.getAttribute("type")){var o=n(1)(t,t.selectionEnd);return e=t.getBoundingClientRect(),{x:o.left+e.left,y:o.top+e.top,color:c(t)}}var r=window.getSelection();if(r.rangeCount){var s=r.getRangeAt(0),i=s.startContainer;return i.nodeType===document.TEXT_NODE&&(i=i.parentNode),{x:(e=s.getBoundingClientRect()).left,y:e.top,color:c(i)}}return{x:0,y:0,color:"transparent"}}(),t=5+Math.round(10*Math.random());t--;)s[i]=d(e.x,e.y,e.color),i=(i+1)%500;if(u.shake){var o=1+2*Math.random(),r=o*(Math.random()>.5?-1:1),l=o*(Math.random()>.5?-1:1);document.body.style.marginLeft=r+"px",document.body.style.marginTop=l+"px",setTimeout((function(){document.body.style.marginLeft="",document.body.style.marginTop=""}),75)}a||requestAnimationFrame(m)}function m(){a=!0,r.clearRect(0,0,o.width,o.height);for(var e=!1,t=o.getBoundingClientRect(),n=0;nparseInt(c.height)&&(l.overflowY="scroll"):l.overflow="hidden",a.textContent=e.value.substring(0,o),"INPUT"===e.nodeName&&(a.textContent=a.textContent.replace(/\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",a.appendChild(d);var u={top:d.offsetTop+parseInt(c.borderTopWidth),left:d.offsetLeft+parseInt(c.borderLeftWidth)};return s?d.style.backgroundColor="#aaa":document.body.removeChild(a),u}void 0!==e&&void 0!==e.exports?e.exports=o:window.getCaretCoordinates=o}()}])},e.exports=t()},487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,o=0;n>>5]|=e[n]<<24-o%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-s)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],o=0,r=0;o>>6-2*r);return n}},e.exports=n},8487:function(e,t,n){!function(e){"use strict";t.loadCSS=function(t,n,o,r){var s,i=e.document,a=i.createElement("link");if(n)s=n;else{var l=(i.body||i.getElementsByTagName("head")[0]).childNodes;s=l[l.length-1]}var c=i.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&a.setAttribute(d,r[d]);a.rel="stylesheet",a.href=t,a.media="only x",function e(t){if(i.body)return t();setTimeout((function(){e(t)}))}((function(){s.parentNode.insertBefore(a,n?s:s.nextSibling)}));var u=function(e){for(var t=a.href,n=c.length;n--;)if(c[n].href===t)return e();setTimeout((function(){u(e)}))};function m(){a.addEventListener&&a.removeEventListener("load",m),a.media=o||"all"}return a.addEventListener&&a.addEventListener("load",m),a.onloadcssdefined=u,u(m),a}}(void 0!==n.g?n.g:this)},8738: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)}},2568:(e,t,n)=>{var o,r,s,i,a;o=n(1012),r=n(487).utf8,s=n(8738),i=n(487).bin,(a=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?i.stringToBytes(e):r.stringToBytes(e):s(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=o.bytesToWords(e),l=8*e.length,c=1732584193,d=-271733879,u=-1732584194,m=271733878,h=0;h>>24)|4278255360&(n[h]<<24|n[h]>>>8);n[l>>>5]|=128<>>9<<4)]=l;var p=a._ff,g=a._gg,f=a._hh,y=a._ii;for(h=0;h>>0,d=d+b>>>0,u=u+w>>>0,m=m+E>>>0}return o.endian([c,d,u,m])})._ff=function(e,t,n,o,r,s,i){var a=e+(t&n|~t&o)+(r>>>0)+i;return(a<>>32-s)+t},a._gg=function(e,t,n,o,r,s,i){var a=e+(t&o|n&~o)+(r>>>0)+i;return(a<>>32-s)+t},a._hh=function(e,t,n,o,r,s,i){var a=e+(t^n^o)+(r>>>0)+i;return(a<>>32-s)+t},a._ii=function(e,t,n,o,r,s,i){var a=e+(n^(t|~o))+(r>>>0)+i;return(a<>>32-s)+t},a._blocksize=16,a._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=o.wordsToBytes(a(e,t));return t&&t.asBytes?n:t&&t.asString?i.bytesToString(n):o.bytesToHex(n)}},4865:function(e,t,n){var o,r;void 0===(r="function"==typeof(o=function(){var e,t,n={version:"0.2.0"},o=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,n){return en?n:e}function s(e){return 100*(-1+e)}function i(e,t,n){var r;return(r="translate3d"===o.positionUsing?{transform:"translate3d("+s(e)+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+s(e)+"%,0)"}:{"margin-left":s(e)+"%"}).transition="all "+t+"ms "+n,r}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(o[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,o.minimum,1),n.status=1===e?null:e;var s=n.render(!t),c=s.querySelector(o.barSelector),d=o.speed,u=o.easing;return s.offsetWidth,a((function(t){""===o.positionUsing&&(o.positionUsing=n.getPositioningCSS()),l(c,i(e,d,u)),1===e?(l(s,{transition:"none",opacity:1}),s.offsetWidth,setTimeout((function(){l(s,{transition:"all "+d+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),d)}),d)):setTimeout(t,d)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),o.trickleSpeed)};return o.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*o.trickleRate)},e=0,t=0,n.promise=function(o){return o&&"resolved"!==o.state()?(0===t&&n.start(),e++,t++,o.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=o.template;var r,i=t.querySelector(o.barSelector),a=e?"-100":s(n.status||0),c=document.querySelector(o.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+a+"%,0,0)"}),o.showSpinner||(r=t.querySelector(o.spinnerSelector))&&h(r),c!=document.body&&d(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(o.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&h(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function o(t){var n=document.body.style;if(t in n)return t;for(var o,r=e.length,s=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((o=e[r]+s)in n)return o;return t}function r(e){return e=n(e),t[e]||(t[e]=o(e))}function s(e,t,n){t=r(t),e.style[t]=n}return function(e,t){var n,o,r=arguments;if(2==r.length)for(n in t)void 0!==(o=t[n])&&t.hasOwnProperty(n)&&s(e,n,o);else s(e,r[1],r[2])}}();function c(e,t){return("string"==typeof e?e:m(e)).indexOf(" "+t+" ")>=0}function d(e,t){var n=m(e),o=n+t;c(n,t)||(e.className=o.substring(1))}function u(e,t){var n,o=m(e);c(e,t)&&(n=o.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function m(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function h(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?o.call(t,n,t,e):o)||(e.exports=r)},8842:(e,t,n)=>{var o=n(1450),r=n(8025),s=n(194),i=n(7534),a=n(5265),l=n(8053),c=n(904),d=n(4982),u=n(1191),m=n(8666),h=n(2833),p=function(e){this.state={numPendingSwitches:0,href:null,options:null},this.options=s(e),this.log("Pjax options",this.options),this.options.scrollRestoration&&"scrollRestoration"in history&&(history.scrollRestoration="manual"),this.maxUid=this.lastUid=a(),this.parseDOM(document),l(window,"popstate",function(e){if(e.state){var t=d(this.options);t.url=e.state.url,t.title=e.state.title,t.history=!1,t.scrollPos=e.state.scrollPos,e.state.uid]+>/gi);if(o&&o.length&&(o=o[0].match(/\s?[a-z:]+(?:=['"][^'">]+['"])*/gi)).length&&(o.shift(),o.forEach((function(e){var t=e.trim().split("=");1===t.length?n.documentElement.setAttribute(t[0],!0):n.documentElement.setAttribute(t[0],t[1].slice(1,-1))}))),n.documentElement.innerHTML=e,this.log("load content",n.documentElement.attributes,n.documentElement.innerHTML.length),document.activeElement&&u(document,this.options.selectors,document.activeElement))try{document.activeElement.blur()}catch(e){}this.switchSelectors(this.options.selectors,n,document,t)}else c(document,"pjax:complete pjax:error",t)},abortRequest:n(5986),doRequest:n(877),handleResponse:n(6364),loadUrl:function(e,t){t="object"==typeof t?m({},this.options,t):d(this.options),this.log("load href",e,t),this.abortRequest(this.request),c(document,"pjax:send",t),this.request=this.doRequest(e,t,this.handleResponse.bind(this))},afterAllSwitches:function(){var e=Array.prototype.slice.call(document.querySelectorAll("[autofocus]")).pop();e&&document.activeElement!==e&&e.focus(),this.options.selectors.forEach((function(e){r(document.querySelectorAll(e),(function(e){o(e)}))}));var t=this.state;if(t.options.history&&(window.history.state||(this.lastUid=this.maxUid=a(),window.history.replaceState({url:window.location.href,title:document.title,uid:this.maxUid,scrollPos:[0,0]},document.title)),this.lastUid=this.maxUid=a(),window.history.pushState({url:t.href,title:t.options.title,uid:this.maxUid,scrollPos:[0,0]},t.options.title,t.href)),this.forEachSelectors((function(e){this.parseDOM(e)}),this),c(document,"pjax:complete pjax:success",t.options),"function"==typeof t.options.analytics&&t.options.analytics(),t.options.history){var n=document.createElement("a");if(n.href=this.state.href,n.hash){var s=n.hash.slice(1);s=decodeURIComponent(s);var i=0,l=document.getElementById(s)||document.getElementsByName(s)[0];if(l&&l.offsetParent)do{i+=l.offsetTop,l=l.offsetParent}while(l);window.scrollTo(0,i)}else!1!==t.options.scrollTo&&(t.options.scrollTo.length>1?window.scrollTo(t.options.scrollTo[0],t.options.scrollTo[1]):window.scrollTo(0,t.options.scrollTo))}else t.options.scrollRestoration&&t.options.scrollPos&&window.scrollTo(t.options.scrollPos[0],t.options.scrollPos[1]);this.state={numPendingSwitches:0,href:null,options:null}}},p.isSupported=n(6747),p.isSupported())e.exports=p;else{var g=h;for(var f in p.prototype)p.prototype.hasOwnProperty(f)&&"function"==typeof p.prototype[f]&&(g[f]=h);e.exports=g}},5986:(e,t,n)=>{var o=n(2833);e.exports=function(e){e&&e.readyState<4&&(e.onreadystatechange=o,e.abort())}},4050:e=>{e.exports=function(e){var t=e.text||e.textContent||e.innerHTML||"",n=e.src||"",o=e.parentNode||document.querySelector("head")||document.documentElement,r=document.createElement("script");if(t.match("document.write"))return console&&console.log&&console.log("Script contains document.write. Can’t be executed correctly. Code skipped ",e),!1;if(r.type="text/javascript",r.id=e.id,""!==n&&(r.src=n,r.async=!1),""!==t)try{r.appendChild(document.createTextNode(t))}catch(e){r.text=t}return o.appendChild(r),(o instanceof HTMLHeadElement||o instanceof HTMLBodyElement)&&o.contains(r)&&o.removeChild(r),!0}},8053:(e,t,n)=>{var o=n(8025);e.exports=function(e,t,n,r){(t="string"==typeof t?t.split(" "):t).forEach((function(t){o(e,(function(e){e.addEventListener(t,n,r)}))}))}},904:(e,t,n)=>{var o=n(8025);e.exports=function(e,t,n){(t="string"==typeof t?t.split(" "):t).forEach((function(t){var r;(r=document.createEvent("HTMLEvents")).initEvent(t,!0,!0),r.eventName=t,n&&Object.keys(n).forEach((function(e){r[e]=n[e]})),o(e,(function(e){var t=!1;e.parentNode||e===document||e===window||(t=!0,document.body.appendChild(e)),e.dispatchEvent(r),t&&e.parentNode.removeChild(e)}))}))}},1450:(e,t,n)=>{var o=n(8025),r=n(4050);e.exports=function(e){"script"===e.tagName.toLowerCase()&&r(e),o(e.querySelectorAll("script"),(function(e){e.type&&"text/javascript"!==e.type.toLowerCase()||(e.parentNode&&e.parentNode.removeChild(e),r(e))}))}},8025:e=>{e.exports=function(e,t,n){return e instanceof HTMLCollection||e instanceof NodeList||e instanceof Array?Array.prototype.forEach.call(e,t,n):t.call(n,e)}},9147:(e,t,n)=>{var o=n(8025);e.exports=function(e,t,n,r){r=r||document,e.forEach((function(e){o(r.querySelectorAll(e),t,n)}))}},6747:e=>{e.exports=function(){return window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/)}},194:(e,t,n)=>{var o=n(7534);function r(){window._gaq&&_gaq.push(["_trackPageview"]),window.ga&&ga("send","pageview",{page:location.pathname,title:document.title})}e.exports=function(e){return(e=e||{}).elements=e.elements||"a[href], form[action]",e.selectors=e.selectors||["title",".js-Pjax"],e.switches=e.switches||{},e.switchesOptions=e.switchesOptions||{},e.history=void 0===e.history||e.history,e.analytics="function"==typeof e.analytics||!1===e.analytics?e.analytics:r,e.scrollTo=void 0===e.scrollTo?0:e.scrollTo,e.scrollRestoration=void 0===e.scrollRestoration||e.scrollRestoration,e.cacheBust=void 0===e.cacheBust||e.cacheBust,e.debug=e.debug||!1,e.timeout=e.timeout||0,e.currentUrlFullReload=void 0!==e.currentUrlFullReload&&e.currentUrlFullReload,e.switches.head||(e.switches.head=o.switchElementsAlt),e.switches.body||(e.switches.body=o.switchElementsAlt),e}},6973:(e,t,n)=>{var o=n(8053),r=n(4982),s="data-pjax-state",i=function(e,t){if(!a(t)){var n=r(this.options);n.requestOptions={requestUrl:e.getAttribute("action")||window.location.href,requestMethod:e.getAttribute("method")||"GET"};var o=document.createElement("a");o.setAttribute("href",n.requestOptions.requestUrl);var i=function(e,t){if(e.protocol!==window.location.protocol||e.host!==window.location.host)return"external";if(e.hash&&e.href.replace(e.hash,"")===window.location.href.replace(location.hash,""))return"anchor";if(e.href===window.location.href.split("#")[0]+"#")return"anchor-empty";if(t.currentUrlFullReload&&e.href===window.location.href.split("#")[0])return"reload"}(o,n);i?e.setAttribute(s,i):(t.preventDefault(),"multipart/form-data"===e.enctype?n.requestOptions.formData=new FormData(e):n.requestOptions.requestParams=function(e){for(var t=[],n=e.elements,o=0;o{var o=n(8053),r=n(4982),s="data-pjax-state",i=function(e,t){if(!a(t)){var n=r(this.options),o=function(e,t){if(t.which>1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return"modifier";if(e.protocol!==window.location.protocol||e.host!==window.location.host)return"external";if(e.hash&&e.href.replace(e.hash,"")===window.location.href.replace(location.hash,""))return"anchor";if(e.href===window.location.href.split("#")[0]+"#")return"anchor-empty"}(e,t);if(o)e.setAttribute(s,o);else{if(t.preventDefault(),this.options.currentUrlFullReload&&e.href===window.location.href.split("#")[0])return e.setAttribute(s,"reload"),void this.reload();e.setAttribute(s,"load"),n.triggerElement=e,this.loadUrl(e.href,n)}}};var a=function(e){return e.defaultPrevented||!1===e.returnValue};e.exports=function(e){var t=this;e.setAttribute(s,""),o(e,"click",(function(n){i.call(t,e,n)})),o(e,"keyup",function(n){13===n.keyCode&&i.call(t,e,n)}.bind(this))}},6364:(e,t,n)=>{var o=n(4982),r=n(5265),s=n(904);e.exports=function(e,t,n,i){if((i=o(i||this.options)).request=t,!1!==e){var a=window.history.state||{};window.history.replaceState({url:a.url||window.location.href,title:a.title||document.title,uid:a.uid||r(),scrollPos:[document.documentElement.scrollLeft||document.body.scrollLeft,document.documentElement.scrollTop||document.body.scrollTop]},document.title,window.location.href);var l=n;t.responseURL?n!==t.responseURL&&(n=t.responseURL):t.getResponseHeader("X-PJAX-URL")?n=t.getResponseHeader("X-PJAX-URL"):t.getResponseHeader("X-XHR-Redirected-To")&&(n=t.getResponseHeader("X-XHR-Redirected-To"));var c=document.createElement("a");c.href=l;var d=c.hash;c.href=n,d&&!c.hash&&(c.hash=d,n=c.href),this.state.href=n,this.state.options=i;try{this.loadContent(e,i)}catch(e){if(s(document,"pjax:error",i),this.options.debug)throw e;return console&&console.error&&console.error("Pjax switch fail: ",e),this.latestChance(n)}}else s(document,"pjax:complete pjax:error",i)}},8251:e=>{e.exports=function(){this.options.debug&&console&&("function"==typeof console.log?console.log.apply(console,arguments):console.log&&console.log(arguments))}},6023:e=>{var t="data-pjax-state";e.exports=function(e){switch(e.tagName.toLowerCase()){case"a":e.hasAttribute(t)||this.attachLink(e);break;case"form":e.hasAttribute(t)||this.attachForm(e);break;default:throw"Pjax can only be applied on
or submit"}}},877:(e,t,n)=>{var o=n(2680);e.exports=function(e,t,n){var r,s=(t=t||{}).requestOptions||{},i=(s.requestMethod||"GET").toUpperCase(),a=s.requestParams||null,l=s.formData||null,c=null,d=new XMLHttpRequest,u=t.timeout||0;if(d.onreadystatechange=function(){4===d.readyState&&(200===d.status?n(d.responseText,d,e,t):0!==d.status&&n(null,d,e,t))},d.onerror=function(o){console.log(o),n(null,d,e,t)},d.ontimeout=function(){n(null,d,e,t)},a&&a.length)switch(r=a.map((function(e){return e.name+"="+e.value})).join("&"),i){case"GET":e=e.split("?")[0],e+="?"+r;break;case"POST":c=r}else l&&(c=l);return t.cacheBust&&(e=o(e,"t",Date.now())),d.open(i,e,!0),d.timeout=u,d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.setRequestHeader("X-PJAX","true"),d.setRequestHeader("X-PJAX-Selectors",JSON.stringify(t.selectors)),c&&"POST"===i&&!l&&d.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),d.send(c),d}},8830:(e,t,n)=>{var o=n(8025),r=n(7534);e.exports=function(e,t,n,s,i,a){var l=[];n.forEach((function(n){var c=s.querySelectorAll(n),d=i.querySelectorAll(n);if(this.log&&this.log("Pjax switch",n,c,d),c.length!==d.length)throw"DOM doesn’t look the same on new loaded page: ’"+n+"’ - new "+c.length+", old "+d.length;o(c,(function(o,s){var i=d[s];this.log&&this.log("newEl",o,"oldEl",i);var c=e[n]?e[n].bind(this,i,o,a,t[n]):r.outerHTML.bind(this,i,o,a);l.push(c)}),this)}),this),this.state.numPendingSwitches=l.length,l.forEach((function(e){e()}))}},7534:(e,t,n)=>{var o=n(8053);e.exports={outerHTML:function(e,t){e.outerHTML=t.outerHTML,this.onSwitch()},innerHTML:function(e,t){e.innerHTML=t.innerHTML,""===t.className?e.removeAttribute("class"):e.className=t.className,this.onSwitch()},switchElementsAlt:function(e,t){if(e.innerHTML=t.innerHTML,t.hasAttributes())for(var n=t.attributes,o=0;o{var t;e.exports=(t=0,function(){var e="pjax"+(new Date).getTime()+"_"+t;return t++,e})},4982:e=>{e.exports=function(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}},1191:e=>{e.exports=function(e,t,n){for(var o=0;o{e.exports=function(e){if(null==e)return null;for(var t=Object(e),n=1;n{e.exports=function(){}},2680:e=>{e.exports=function(e,t,n){var o=new RegExp("([?&])"+t+"=.*?(&|$)","i"),r=-1!==e.indexOf("?")?"&":"?";return e.match(o)?e.replace(o,"$1"+t+"="+n+"$2"):e+r+t+"="+n}},7648:(e,t)=>{"use strict";t.mA=void 0;const n={src:"data-src",srcset:"data-srcset",selector:".lazyload",root:null,rootMargin:"0px",threshold:0};class o{constructor(e,t){this.observer=null,this.settings=Object.assign(Object.assign({},n),t),this.images=e||document.querySelectorAll(this.settings.selector),this.init()}init(){if(!IntersectionObserver)return void this.loadImages();const e=this;let t={root:this.settings.root,rootMargin:this.settings.rootMargin,threshold:[this.settings.threshold]};this.observer=new IntersectionObserver((function(t){Array.prototype.forEach.call(t,(function(t){if(t.isIntersecting){e.observer.unobserve(t.target);let n=t.target.getAttribute(e.settings.src),o=t.target.getAttribute(e.settings.srcset);"img"===t.target.tagName.toLowerCase()?(n&&(t.target.src=n),o&&(t.target.srcset=o)):t.target.style.backgroundImage="url("+n+")"}}))}),t),this.images.forEach((t=>{e.observer.observe(t)}))}loadAndDestroy(){this.settings&&(this.loadImages(),this.destroy())}loadImages(){if(!this.settings)return;const e=this;Array.prototype.forEach.call(this.images,(function(t){let n=t.getAttribute(e.settings.src),o=t.getAttribute(e.settings.srcset);"img"===t.tagName.toLowerCase()?(n&&(t.src=n),o&&(t.srcset=o)):t.style.backgroundImage="url('"+n+"')"}))}destroy(){this.settings&&(this.observer.disconnect(),this.settings=null)}}t.mA=(e,t)=>new o(e,t)},2713:(e,t)=>{"use strict";const n={respondId:"",moveForm:function(e,t,o){const r=document.getElementById(e),s=document.getElementById(o),i=document.getElementById("cancel-comment-reply-link"),a=document.getElementById("comment_parent");let l;if(this.respondId=o,document.getElementById("wp-temp-form-div")||(l=document.createElement("div"),l.id="wp-temp-form-div",l.style.display="none",s.parentNode.insertBefore(l,s)),r)r.parentNode.insertBefore(s,r.nextSibling);else{const e=document.getElementById("wp-temp-form-div");document.getElementById("comment_parent").value="0",e.parentNode.insertBefore(s,e),e.remove()}const c=document.getElementById("respond");window.scrollTo({top:c.getBoundingClientRect().top+window.pageYOffset-c.clientTop-100,behavior:"smooth"}),a.value=t,i.style.display="",i.onclick=function(e){var t=n,o=document.getElementById("wp-temp-form-div"),r=document.getElementById(t.respondId);return document.getElementById("comment_parent").value="0",o&&r&&(o.parentNode.insertBefore(r,o),o.remove()),this.style.display="none",this.onclick=null,!1};try{document.getElementById("comment").focus()}catch(e){}return!1},clearButterbar:function(){const e=document.getElementsByClassName("butterBar");if(e.length>0)for(let t=0;t

'+e+"

"),setTimeout((()=>{n.clearButterbar()}),t>0?t:6e3)}};t.Z=n},5990:(e,t)=>{"use strict";t.Z=function(e,t={},n=!0){const o=new URL(e),{searchParams:r}=o;for(const[e,n]of Object.entries(t))r.set(e,n);return n&&r.set("_wpnonce",Poi.nonce),o.toString()}},3037:(e,t)=>{"use strict";const n=["# 商业转载请联系作者获得授权,非商业转载请注明出处。","# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.","# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)","# 作者(Author):"+mashiro_option.author_name,"# 链接(URL):"+window.location.href,"# 来源(Source):"+mashiro_option.site_name];function o(e){const t=window.getSelection();if(t){const o=t.toString();o.length>30&&(!function(e,t){e.preventDefault();const o=n.join("
")+"

"+t.replace(/\r\n/g,"
"),r=n.join("\n")+"\n\n"+t.toString().replace(/\r\n/g,"\n");if(e.clipboardData)e.clipboardData.setData("text/html",o),e.clipboardData.setData("text/plain",r);else if(window.clipboardData)window.clipboardData.setData("text",r)}(e,o),addComment.createButterbar("复制成功!
Copied to clipboard successfully!",1e3))}}t.Z=function(){mashiro_option.clipboardCopyright&&(document.body.removeEventListener("copy",o),document.body.addEventListener("copy",o))}},6520:(e,t)=>{"use strict";t.q1=t.Lg=t.B3=t.N2=void 0;const n=window.matchMedia("(prefers-color-scheme:dark)");let o=!1;function r(e){console.log("夜间模式"+(e?"开启":"关闭")),e!==o&&(document.dispatchEvent(new CustomEvent("darkmode",{detail:e})),o=e)}function s(){localStorage.getItem("dark")||(n.matches&&mashiro_option.darkmode?a():l())}function i(e){e==d()?localStorage.removeItem("dark"):1==e?localStorage.setItem("dark","1"):localStorage.setItem("dark","0"),localStorage.setItem("bgImgSetting","white-bg")}function a(e){document.documentElement.style.background="#333",document.getElementsByClassName("site-content")[0].style.backgroundColor="#333",document.body.classList.add("dark"),e&&i(!0),r(!0)}function l(e){document.documentElement.style.background="unset",document.getElementsByClassName("site-content")[0].style.backgroundColor="rgba(255, 255, 255, .8)",document.body.classList.remove("dark"),document.body.classList.remove("dynamic"),r(!1),e&&(i(!1),document.body.style.backgroundImage=`url(${mashiro_option.skin_bg0})`)}function c(){const e=new Date;return e.getHours()>21||e.getHours()<7}function d(){switch(mashiro_option.dm_strategy){case"time":return c();case"client":return n.matches;case"eien":return!0;default:return c()}}t.N2=()=>o,"client"===mashiro_option.dm_strategy&&(n.removeEventListener("change",s),n.addEventListener("change",s)),t.B3=a,t.Lg=l,t.q1=function(){const e=localStorage.getItem("dark");e?"1"==e?a():l():d()&&mashiro_option.darkmode?a():l()}},5934:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=o(n(2568));t.default=(e,t=80)=>"https://"+Poi.gravatar_url+"/"+r.default(e)+".jpg?s="+t+"&d=mm"},2937:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.pjax=void 0;const r=o(n(8842)),s=n(9458),i=navigator.userAgent,a=-1!=i.indexOf("Chrome")?/(Chrome)\/(\d+)/i:/(Firefox|Chrome|Version|Opera)\/(\d+)/i,l=i.match(a);Poi.pjax=l&&parseInt(l[2])>={Firefox:84,Edg:88,Chrome:88,Opera:74,Version:9}[l[1]]&&Poi.pjax,0===document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")&&s.setCookie("su_webp","1",114514);const c=Poi.pjax&&new r.default({selectors:["#page","title",".footer-device"],elements:["a:not([target='_top']):not(.comment-reply-link):not(#pagination a):not(#comments-navi a):not(.user-menu-option a):not(.header-user-avatar a):not(.emoji-item):not(.no-pjax)",".search-form",".s-search"],timeout:8e3,history:!0,cacheBust:!1});t.pjax=c},9458:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.removeCookie=t.getCookie=t.setCookie=void 0;let o=null!==(n=mashiro_option.cookie_version_control)&&void 0!==n?n:"";t.setCookie=function(e,t,n){const r=n?"; expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString():"";document.cookie=e+o+"="+(t||"")+r+"; path=/"},t.getCookie=function(e){const t=e+o+"=",n=document.cookie.split(";");for(let e=0;e{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(n,o){if(1&o&&(n=this(n)),8&o)return n;if("object"==typeof n&&n){if(4&o&&n.__esModule)return n;if(16&o&&"function"==typeof n.then)return n}var r=Object.create(null);i.r(r);var s={};e=e||[null,t({}),t([]),t(t)];for(var a=2&o&&n;"object"==typeof a&&!~e.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((e=>s[e]=()=>n[e]));return s.default=()=>n,i.d(r,s),r},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>e+".js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},o="sakurairo-scripts:",i.l=(e,t,r,s)=>{if(n[e])n[e].push(t);else{var a,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(h);var r=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),r&&r.forEach((e=>e(o))),t)return t(o)},h=setTimeout(m.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=m.bind(null,a.onerror),a.onload=m.bind(null,a.onload),l&&document.head.appendChild(a)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e={143:0};i.f.j=(t,n)=>{var o=i.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var r=new Promise(((n,r)=>o=e[t]=[n,r]));n.push(o[2]=r);var s=i.p+i.u(t),a=new Error;i.l(s,(n=>{if(i.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var r=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+r+": "+s+")",a.name="ChunkLoadError",a.type=r,a.request=s,o[1](a)}}),"chunk-"+t,t)}};var t=(t,n)=>{var o,r,[s,a,l]=n,c=0;for(o in a)i.o(a,o)&&(i.m[o]=a[o]);if(l)l(i);for(t&&t(n);c{"use strict";var e=i(5990),t=i(9458),n=i(3037),o=i(8487),r=i(7648),s=i(4865),a=i.n(s),l=i(2937),c=i(5934),d=i.n(c);const u=[".bili",".menhera",".tieba"];window.get_gravatar=d(),window.imgError=function(e,t){switch(t){case 1:e.src="https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg";break;case 2:e.src="https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g";break;default:e.src="https://view.moezx.cc/images/2018/05/13/image-404.png"}},window.cmt_showPopup=function(e){let t=e.querySelector("#thePopup");t.classList.add("show"),e.querySelector("input").onblur=()=>{t.classList.remove("show")}},window.coverVideo=function(){let e=document.getElementById("coverVideo"),t=document.getElementById("coverVideo-btn");if(e.paused){e.play();try{t.innerHTML=''}catch{}}else{e.pause();try{t.innerHTML=''}catch{}}},window.killCoverVideo=function(){var e=document.getElementById("coverVideo"),t=document.getElementById("coverVideo-btn");if(e.paused);else{e.pause();try{t.innerHTML=''}catch(e){}}},window.mail_me=function(){var e="mailto:"+mashiro_option.email_name+"@"+mashiro_option.email_domain;window.open(e)},window.headertop_down=function(){let e=document.getElementById("content").getBoundingClientRect().top+window.pageYOffset;window.scrollTo({top:e,behavior:"smooth"})},window.motionSwitch=function(e){for(let e=0;e860&&window.addEventListener("scroll",(()=>{let e,t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.scrollHeight||document.body.scrollHeight,o=window.innerHeight,r=parseInt(t/(n-o)*100),s=document.getElementById("bar");switch(s.style.width=r+"%",!0){case r<=19:e="#cccccc";break;case r<=39:e="#50bcb6";break;case r<=59:e="#85c440";break;case r<=79:e="#f2b63c";break;case r<=99:e="#FF0000";break;case 100==r:e="#5aaadb";break;default:e="orange"}s.style.background=e;let i=document.querySelector(".toc-container"),a=document.querySelector(".site-content"),l=document.querySelector(".skin-menu");i&&a&&(i.style.height=a.getBoundingClientRect(outerHeight).height+"px"),l&&l.classList.remove("show")})),O(),j()},this.pjax=function(){N(),y(),I(),X(),C(),S(),O(),j()}};const g=(()=>{var e,t;function n(e,t){const n={autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",contenteditable:"false",design:"by Mashiro"};if(!e.children[0])return;const o=e.children[0].className;let r=o.substr(0,o.indexOf(" ")).replace("language-","");"hljs"==r.toLowerCase()&&(r=t.className.replace("hljs","")?t.className.replace("hljs",""):"text"),e.classList.add("highlight-wrap");for(const t in n)e.setAttribute(t,n[t]);t.setAttribute("data-rel",r.toUpperCase())}async function r(e,t){try{await async function(){try{window.hljs||(window.hljs=await Promise.all([i.e(869),i.e(870),i.e(450),i.e(130),i.e(135),i.e(356),i.e(412),i.e(455),i.e(140),i.e(191),i.e(732),i.e(914)]).then(i.t.bind(i,7869,23)),await i.e(241).then(i.t.bind(i,5241,23)))}catch(e){console.warn(e)}}();for(let e=0;e{var e,t;const{light:n,dark:o}=null!==(e=null===(t=mashiro_option.code_highlight_prism)||void 0===t?void 0:t.theme)&&void 0!==e?e:{},r={light:null!=n?n:"themes/prism.min.css",dark:null!=o?o:"themes/prism-tomorrow.min.css"};for(const e in r)r[e]=new URL(r[e],s).toString();return r})();function c(e){const t=e?l.dark:l.light;if(a){if(a.href!==t){const e=(0,o.loadCSS)(t);e.addEventListener("load",(()=>{a.remove(),a=e}))}}else a=(0,o.loadCSS)(t)}function d(){return(0,o.loadCSS)(new URL("plugins/line-numbers/prism-line-numbers.min.css",s).toString()),i.e(759).then(i.t.bind(i,8759,23))}async function u(e){try{await async function(){try{if(!window.Prism){const{default:e}=await i.e(660).then(i.t.bind(i,5660,23));window.Prism=e}await Promise.all([i.e(475).then(i.t.bind(i,3475,23)),i.e(470).then(i.t.bind(i,9470,23)),i.e(206).then(i.t.bind(i,5206,23)).then((()=>i.e(695).then(i.t.bind(i,2695,23))))]),(0,o.loadCSS)(new URL("plugins/toolbar/prism-toolbar.min.css",s).toString()),(0,o.loadCSS)(new URL("plugins/previewers/prism-previewers.min.css",s).toString()),Prism.plugins.autoloader.languages_path=new URL("components/",s).toString(),c((0,m.N2)()),document.addEventListener("darkmode",(e=>{c(e.detail)}))}catch(e){console.warn(e)}}(),mashiro_option.code_highlight_prism.line_number_all&&(document.querySelector(".entry-content").classList.add("line-numbers"),await d()),e.forEach((async e=>{e.parentElement.classList.contains("line-numbers")&&await d(),e.classList.contains("match-braces")&&(await i.e(873).then(i.t.bind(i,7873,23)),(0,o.loadCSS)(new URL("plugins/match-braces/prism-match-braces.min.css",s).toString())),Prism.highlightElement(e)})),Prism.plugins.fileHighlight&&Prism.plugins.fileHighlight.highlight()}catch(e){console.warn(e)}}return async function(){const e=document.getElementsByTagName("pre"),t=document.querySelectorAll("pre code");if(e.length)switch(mashiro_option.code_highlight){case"hljs":return r(e,t);case"prism":return u(t);case"custom":return;default:console.warn(`mashiro_option.code_highlight这咋填的是个${mashiro_option.code_highlight}啊🤔`)}}})();function f(e,t=1e3,n="",o){let r=e;r.status=r.status||getComputedStyle(r,null).display;const s="none"!=r.status;1==s&&"show"==n||0==s&&"hide"==n||(r.status=s?"none":"block",r.style.transition="height "+t/1e3+"s",r.style.overflow="hidden",clearTimeout(r.tagTimer),r.tagTimer=r.tagTimer||null,r.style.display="block",r.tagHeight=r.tagHeight||r.clientHeight+"px",r.style.display="",r.style.height=s?r.tagHeight:"0px",setTimeout((()=>{r.style.height=s?"0px":r.tagHeight}),0),r.tagTimer=setTimeout((()=>{r.style.display=s?"none":"block",r.style.transition="",r.style.overflow="",r.style.height="",r.status=r.tagHeight=null}),t),o&&o())}function y(){if(document.querySelector("article")&&document.querySelector("article").classList.contains("post-list-thumb")){const e=new IntersectionObserver((t=>{t.forEach((t=>{window.IntersectionObserver?t.target.classList.contains("post-list-show")?(t.target.style.willChange="auto",e.unobserve(t.target)):t.isIntersecting&&(t.target.classList.add("post-list-show"),t.target.style.willChange="auto",e.unobserve(t.target)):(t.target.style.willChange="auto",!1===t.target.classList.contains("post-list-show")&&t.target.classList.add("post-list-show"))}))}),{root:null,threshold:[.66]}),t=document.getElementsByClassName("post-list-thumb");for(let n=0;n860&&((0,t.getCookie)("font_family")&&"serif"!=(0,t.getCookie)("font_family")||document.body.classList.add("serif")),"sans-serif"==(0,t.getCookie)("font_family")&&(document.body.classList.remove("sans-serif"),e&&e.classList.remove("selected"),n&&n.classList.add("selected"))}},mashiro_global.font_control.ini(),g();const v=function(e){if("complete"===document.readyState)return e();document.addEventListener("DOMContentLoaded",e,!1)};function b(){const t=document.querySelector(".form-submit #submit");if(null==t)return;if(!mashiro_option.comment_upload_img)return void(t.style.width="100%");t.insertAdjacentHTML("afterend",''),function(){let t=document.getElementsByClassName("insert-image-tips")[0],n=document.getElementById("upload-img-file");n&&n.addEventListener("change",(function(){if(this.files.length>10)return addComment.createButterbar("每次上传上限为10张.
10 files max per request."),0;for(let e=0;e=5242880)return void alert("图片上传大小限制为5 MB.\n5 MB max per file.\n\n「"+this.files[e].name+"」\n\n这张图太大啦~请重新上传噢!\nThis image is too large~Please reupload!");for(let n=0;nUploading...")})),i.open("POST",(0,e.Z)(Poi.api+"sakura/v1/image/upload"),!0),i.send(s),i.onreadystatechange=function(){if(4!=i.readyState||200!=i.status&&304!=i.status)4==i.readyState&&(t.innerHTML='',alert("上传失败,请重试.\nUpload failed, please try again."),setTimeout((function(){t.innerHTML=''}),1e3));else{t.innerHTML='',setTimeout((function(){t.innerHTML=''}),1e3);let e=JSON.parse(i.responseText);if(200==e.status){let t=e.proxy;document.getElementById("upload-img-show").insertAdjacentHTML("afterend",''),(0,r.mA)(),addComment.createButterbar("图片上传成功~
Uploaded successfully~"),grin(t,type="Img")}else addComment.createButterbar("上传失败!
Uploaded failed!
文件名/Filename: "+o.name+"
code: "+e.status+"
"+e.message,3e3)}}}}))}();const n=document.getElementById("upload-img-file"),o=document.getElementsByClassName("insert-image-tips")[0],s=document.getElementById("uploadTipPopup");n&&(n.addEventListener("mouseenter",(function(){o.classList.toggle("insert-image-tips-hover"),s.classList.toggle("show")})),n.addEventListener("mouseleave",(function(){o.classList.toggle("insert-image-tips-hover"),s.classList.toggle("show")})))}function w(){document.getElementsByClassName("comment_inline_img").length&&document.getElementsByClassName("comments-main")[0].addEventListener("click",(function(e){e.target.classList.contains("comment_inline_img")&&window.open(e.target.src)}))}function E(){document.getElementsByClassName("emoji-item").length&&document.querySelector(".menhera-container").addEventListener("click",(function(e){e.target.classList.contains("emoji-item")&&grin(e.target.innerText,"custom","`","` ")}))}function S(){if(!1===mashiro_global.variables.skinSecter){const e=document.querySelector(".pattern-center"),t=document.querySelector(".headertop-bar");e&&(e.classList.remove("pattern-center"),e.classList.add("pattern-center-sakura")),t&&(t.classList.remove("headertop-bar"),t.classList.add("headertop-bar-sakura"))}else{const e=document.querySelector(".pattern-center-sakura"),t=document.querySelector(".headertop-bar-sakura");e&&(e.classList.remove("pattern-center-sakura"),e.classList.add("pattern-center")),t&&(t.classList.remove("headertop-bar-sakura"),t.classList.add("headertop-bar"))}}function L(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}function _(e){let t;switch(mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,S(),e){case"diy1-bg":t=mashiro_option.skin_bg1;break;case"diy2-bg":t=mashiro_option.skin_bg2;break;case"diy3-bg":t=mashiro_option.skin_bg3;break;case"diy4-bg":t=mashiro_option.skin_bg4}document.body.style.backgroundImage=t?`url(${t})`:""}w(),E(),L(),v((function(){function e(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}!function(){const e=document.querySelector(".centerbg");if(e){const t=document.body.clientWidth<860&&1==mashiro_option.random_graphs_mts,n=new URL(mashiro_option.cover_api);t&&n.searchParams.set("type","mobile"),e.style.backgroundImage="url("+n.toString()+")"}}(),document.querySelectorAll(".menu-list li").forEach((t=>{t.addEventListener("click",(function(){const t=this.id;"dark-bg"==t?(0,m.B3)(!0):"white-bg"==t?(0,m.Lg)(!0):((0,m.Lg)(!0),_(t),localStorage.setItem("bgImgSetting",t)),e()}))})),function(){const e=localStorage.getItem("bgImgSetting");e&&_(e)}(),setTimeout((function(){(0,m.q1)()}),100);let t=document.querySelector("#changskin"),n=document.querySelector(".skin-menu #close-skinMenu");t&&t.addEventListener("click",(function(){document.querySelector(".skin-menu").classList.toggle("show")})),n&&n.addEventListener("click",(function(){e()})),b()}));let k=1;function x(){const e=new URL(mashiro_option.cover_api);document.body.clientWidth<860&&1==mashiro_option.random_graphs_mts?(e.searchParams.set("type","mobile"),document.querySelector(".centerbg").style.backgroundImage="url("+e.toString()+"&"+k+")"):document.querySelector(".centerbg").style.backgroundImage="url("+e.toString()+(""===e.search?"?":"&")+k+")"}function T(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=()=>{x(),k++}),t&&(t.onclick=()=>{k--,x()})}function q(e){let t=document.getElementById("archives");if(null==t)return;let n=t.getElementsByClassName("al_mon");1==e?(t.addEventListener("click",(function(e){e.target.classList.contains("al_mon")&&(f(e.target.nextElementSibling,500),e.preventDefault())})),(0,r.mA)()):function(){let e=document.getElementById("al_expand_collapse");e.style.cursor="s-resize";for(let e=0;e860){for(let e=0;e{window.Hls=e.default,B(),mashiro_global.variables.has_hls=!0})).catch((e=>console.warn("Hls load failed: ",e))))}function I(){const e=document.querySelectorAll("pre code");for(let t=0;t');i.e(152).then(i.t.bind(i,2152,23)).then((({default:e})=>{new e(".copy-code")}))}function A(e){if(!(document.body.clientWidth<=1200))if(document.querySelector("div.have-toc")||document.querySelector("div.has-toc")){if(e){let e=1,t="sakura"==mashiro_option.entry_content_theme?document.querySelector("article.type-post")?document.querySelector("div.pattern-attachment-img")?-75:200:375:window.innerHeight/2,n=document.querySelectorAll(".entry-content,.links");for(let t=0;t{e.init({tocSelector:".toc",contentSelector:[".entry-content",".links"],headingSelector:"h1, h2, h3, h4, h5",headingsOffset:t-window.innerHeight/2})}))}}else{let e=document.getElementsByClassName("toc-container")[0];e&&(e.remove(),e=null)}}v(T),q(),A(!0);const N=function(){b(),L(),w(),E(),mashiro_global.font_control.ini();let e=document.getElementsByTagName("p");for(let t=0;t{try{reloadHermit()}catch(e){}for(let e=0;e{let t=e.target.parentNode;if(t.classList.contains("sm")){if(1==confirm("您真的要设为私密吗?")){if(t.classList.contains("private_now"))return alert("您之前已设过私密评论"),!1;{t.classList.add("private_now");let e=t.getAttribute("data-idp"),n=t.getAttribute("data-actionp"),o=t.getElementsByClassName("has_set_private")[0],r="action=siren_private&p_id="+e+"&p_action="+n,s=new XMLHttpRequest;return s.onreadystatechange=function(){4==this.readyState&&200==this.status&&(o.innerHTML=s.responseText)},s.open("POST","/wp-admin/admin-ajax.php",!0),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),s.send(r),!1}}alert("已取消")}})))}let P=document.getElementsByClassName("comt-addsmilies");function M(){let e=document.getElementById("emotion-toggle");e&&e.addEventListener("click",(function(){document.querySelector(".emotion-toggle-off").classList.toggle("emotion-hide"),document.querySelector(".emotion-toggle-on").classList.toggle("emotion-show"),document.querySelector(".emotion-box").classList.toggle("emotion-box-show")}))}function H(){let t=!1;const n=document.querySelector("input#author"),o=document.querySelector("input#qq"),r=document.querySelector("input#email"),s=document.querySelector("input#url"),i=document.querySelector(".qq-check"),a=document.querySelector(".gravatar-check"),l=document.querySelector("div.comment-user-avatar img");if(null==n)return;localStorage.getItem("user_qq")||localStorage.getItem("user_qq_email")||localStorage.getItem("user_author")||(o.value=n.value=r.value=s.value=""),localStorage.getItem("user_avatar")&&localStorage.getItem("user_qq")&&localStorage.getItem("user_qq_email")&&(l.setAttribute("src",localStorage.getItem("user_avatar")),n.value=localStorage.getItem("user_author"),r.value=localStorage.getItem("user_qq")+"@qq.com",o.value=localStorage.getItem("user_qq"),mashiro_option.qzone_autocomplete&&(s.value="https://user.qzone.qq.com/"+localStorage.getItem("user_qq")),o.value&&(i.style.display="block",a.style.display="none"));let c=r.value;n.addEventListener("blur",(()=>{const d=n.value;if(/^[1-9]\d{4,9}$/.test(d)){const u=()=>{o.value="",i.style.display="none",a.style.display="block",l.setAttribute("src",get_gravatar(r.value,80)),localStorage.setItem("user_qq",""),localStorage.setItem("user_email",r.value),localStorage.setItem("user_avatar",get_gravatar(r.value,80))};fetch((0,e.Z)(mashiro_option.qq_api_url,{qq:d})).then((async e=>{if(e.ok)try{const u=await e.json();n.value=u.name,r.value=d.trim()+"@qq.com",mashiro_option.qzone_autocomplete&&(s.value="https://user.qzone.qq.com/"+d.trim()),l.setAttribute("src","https://q2.qlogo.cn/headimg_dl?dst_uin="+d+"&spec=100"),t=!0,o.value=d.trim(),o.value&&(i.style.display="block",a.style.display="none"),localStorage.setItem("user_author",u.name),localStorage.setItem("user_qq",d),localStorage.setItem("is_user_qq","yes"),localStorage.setItem("user_qq_email",d+"@qq.com"),localStorage.setItem("user_email",d+"@qq.com"),c=r.value,l.setAttribute("src",u.avatar),localStorage.setItem("user_avatar",u.avatar)}catch(e){console.warn(e),u()}else u()}))}})),localStorage.getItem("user_avatar")&&localStorage.getItem("user_email")&&"no"==localStorage.getItem("is_user_qq")&&!localStorage.getItem("user_qq_email")&&(l.setAttribute("src",localStorage.getItem("user_avatar")),r.value=localStorage.getItem("user_mail"),o.value="",o.value||(i.style.display="none",a.style.display="block")),r.addEventListener("blur",(function(){let e=r.value;0!=t&&c==e||""==e||(l.setAttribute("src",get_gravatar(e,80)),localStorage.setItem("user_avatar",get_gravatar(e,80)),localStorage.setItem("user_email",e),localStorage.setItem("user_qq_email",""),localStorage.setItem("is_user_qq","no"),o.value="",o.value||(i.style.display="none",a.style.display="block"))})),localStorage.getItem("user_url")&&(s.value=localStorage.getItem("user_url")),s.addEventListener("blur",(function(){let e=s.value;s.value=e,localStorage.setItem("user_url",e)})),localStorage.getItem("user_author")&&(n.value=localStorage.getItem("user_author")),n.addEventListener("blur",(function(){let e=n.value;n.value=e,localStorage.setItem("user_author",e)}))}function O(){const e=document.getElementsByTagName("section");let t=!1;for(let n=0;n0&&Array.from(P,(e=>{e.addEventListener("click",(()=>{"block"==e.stlye.display?e.style.display="none":e.style.display="block"}))})),document.querySelectorAll(".comt-smilies a").forEach((e=>{e.addEventListener("click",(()=>{e.parentNode.style.display="none"}))})),M(),(0,n.Z)(),v((()=>{H()})),mashiro_option.float_player_on&&document.body.clientWidth>860&&i.e(350).then(i.t.bind(i,6350,23)).then((({aplayerInit:e})=>e())),setTimeout((function(){!function(){let e=document.getElementById("secondary");if(document.body.clientWidth>860){let t=document.querySelector(".show-hide");t&&t.addEventListener("click",(function(){e&&e.classList.toggle("active")}))}else e&&e.remove()}()}),100),mashiro_global.ini.normalize(),(0,o.loadCSS)(mashiro_option.jsdelivr_css_src),(0,o.loadCSS)(mashiro_option.entry_content_style_src),(0,o.loadCSS)("https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css");var R=document.getElementById("bgvideo"),U={MN:function(){let e=document.querySelector(".iconflat");e&&e.addEventListener("click",(function(){document.body.classList.toggle("navOpen"),document.getElementById("main-container").classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open")}))},MNH:function(){document.body.classList.contains("navOpen")&&(document.body.classList.toggle("navOpen"),document.getElementById("main-container").classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open"))},splay:function(){let e=document.getElementById("video-btn");e&&(e.classList.add("video-pause"),e.classList.remove("video-play"));try{e.style.display="",document.querySelector(".video-stu").style.bottom="-100px",document.querySelector(".focusinfo").style.top="-999px"}catch{}try{for(let e=0;e0){for(let e=0;e{e.preventDefault(),e.stopPropagation(),f(e.target.nextElementSibling,300)}))}!function(){const e=document.getElementsByClassName("collapseButton");if(e.length>0){const t=e=>{f(e.target.parentNode.parentNode.parentNode.querySelector(".xContent"))};for(const n of e)n.addEventListener("click",t)}mashiro_option.baguetteBoxON?((0,o.loadCSS)("https://cdn.jsdelivr.net/npm/baguettebox.js@1.11.1/dist/baguetteBox.min.css"),i.e(731).then(i.t.bind(i,5731,23)).then((({default:e})=>{e.run(".entry-content",{captions:function(e){return e.getElementsByTagName("img")[0].alt},ignoreClass:"fancybox"})}))):mashiro_option.fancybox&&((0,o.loadCSS)("https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css"),i.e(755).then(i.t.bind(i,9755,23)).then((e=>{window.jQuery=e.default,window.$=e.default,i.e(155).then(i.t.bind(i,4155,23))})))}();const s=function(){if(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),document.getElementsByClassName("js-search")[0].classList.toggle("is-visible"),document.documentElement.style.overflowY="hidden",mashiro_option.live_search){var t=[];l=(0,e.Z)(Poi.api+"sakura/v1/cache_search/json"),null!=sessionStorage.getItem("search")?(a(t=JSON.parse(sessionStorage.getItem("search")),document.getElementById("search-input").value,o),s()):fetch(l).then((async e=>{if(e.ok){const r=await e.text();""!=r&&(sessionStorage.setItem("search",r),a(t=JSON.parse(r),n.value,o),s())}else console.warn("HTTP "+e.status)})).catch((e=>console.warn(e)));var n=document.getElementById("search-input"),o=document.getElementById("PostlistBox").innerHTML,r=null;function s(){const e=document.querySelector(".search_close"),t=document.getElementById("Ty");for(const n of document.getElementsByClassName("ins-selectable"))n.addEventListener("click",(()=>{t.href=n.getAttribute("href"),t.click(),e.click()}))}function i(e,t,n,o,r,s,i){if(e){var a=e.trim().split(" "),l=o.indexOf(a[a.length-1]),c=i.indexOf(a[a.length-1]);o=(o=l<60?o.slice(0,80):o.slice(l-30,l+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" "),i=(i=c<60?i.slice(0,80):i.slice(c-30,c+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" ")}return'
'+o+' '+s+'

'+i+"

"}function a(e,t,n){var o,r="",s="",a="",l="",c="",d="",u="",m='
',h="
",p="",g=function(e,t){for(let e=0;eObject.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(o=0;o{let e=document.documentElement.scrollTop||window.pageYOffset,t=document.querySelector(".site-header");0==e&&t.classList.remove("yya"),e>0&&t.classList.add("yya")}))},XLS:function(){let e;function t(){const e=document.querySelector("#pagination a");return e.classList.add("loading"),e.innerText="",fetch(e.getAttribute("href")+"#main").then((e=>e.text())).then((t=>{const n=(new DOMParser).parseFromString(t,"text/html"),o=n.querySelectorAll("#main .post"),s=n.querySelector("#pagination a"),i=s&&s.innerText,a=s&&s.getAttribute("href");for(let e=0;e{const n=await t.text();if(t.ok){Array.from(document.getElementsByTagName("textarea")).forEach((e=>e.value=""));const t=document.getElementById("cancel-comment-reply-link"),o=document.getElementById("wp-temp-form-div"),s=document.getElementById(addComment.respondId);"0"!=document.getElementById("comment_parent").value?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementsByClassName(e).length?"asc"==Poi.order?document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("beforeend",n):document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("afterbegin",n):"bottom"==Poi.formpostion?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementById("respond").insertAdjacentHTML("afterend",'
    '+n+"
"),addComment.createButterbar("提交成功(Succeed)"),(0,r.mA)(),g(),w(),document.getElementById("upload-img-show").innerHTML="",t.style.display="none",t.onclick=null,document.getElementById("comment_parent").value="0",o&&s&&(o.parentNode.insertBefore(s,o),o.remove())}else addComment.createButterbar(null!=n?n:"HTTP"+t.status+":"+t.statusText)})).catch((e=>{addComment.createButterbar(e)})),!1})),window.addComment=i(2713).Z},XCP:function(){document.body.addEventListener("click",(function(e){if(e.target.parentNode==document.getElementById("comments-navi")&&"a"==e.target.nodeName.toLowerCase()){e.preventDefault(),e.stopPropagation();let t=e.target,n=t.pathname,o=new XMLHttpRequest;o.open("GET",t.getAttribute("href"),!0),o.responseType="document",o.onloadstart=()=>{let e=document.getElementById("comments-navi"),t=document.querySelector("ul.commentwrap"),n=document.getElementById("loading-comments"),o=document.getElementById("comments-list-title");e.remove(),t.remove(),n.style.display="block",f(n,500,"show"),window.scrollTo({top:o.getBoundingClientRect().top+window.pageYOffset-o.clientTop-65,behavior:"smooth"})},o.onreadystatechange=function(){if(4==o.readyState&&200==o.status){let e=o.response,t=e.querySelector("ul.commentwrap"),s=e.getElementById("comments-navi");f(document.getElementById("loading-comments"),200,"hide"),document.getElementById("loading-comments").insertAdjacentHTML("afterend",t.outerHTML),document.querySelector("ul.commentwrap").insertAdjacentHTML("afterend",s.outerHTML),(0,r.mA)(),window.gtag&>ag("config",Poi.google_analytics_id,{page_path:n}),g(),w();let i=document.querySelector("ul.commentwrap");window.scrollTo({top:i&&i.getBoundingClientRect().top+window.pageYOffset-i.clientTop-200,behavior:"smooth"})}},o.send()}}))},IA:function(){p().colorful=!0,p().shake=!1,document.body.addEventListener("input",p())},GT:function(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||document.body.scrollTop)>20?(e.style.transform="scale(1)",t.style.transform="scale(1)"):(e.style.transform="scale(0)",t.style.transform="scale(0)")})),e.onclick=function(){window.scrollTo({top:0,behavior:"smooth"})}}};Poi.pjax&&(document.addEventListener("pjax:send",(()=>{for(const e of document.getElementsByClassName("normal-cover-video"))e.pause(),e.src="",e.load="";document.getElementById("bar").style.width="0%",mashiro_option.NProgressON&&a().start(),U.MNH()})),document.addEventListener("pjax:complete",(function(){U.AH(),U.PE(),U.CE(),mashiro_option.NProgressON&&a().done(),mashiro_global.ini.pjax();let e=document.getElementById("loading");e&&(e.classList.add("hide"),e.classList.remove("show")),document.querySelector(".js-search.is-visible")&&(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),document.getElementsByClassName("js-search")[0].classList.toggle("is-visible"),document.documentElement.style.overflowY="unset")})),document.addEventListener("pjax:success",(function(){window.gtag&>ag("config",Poi.google_analytics_id,{page_path:window.location.pathname})})),window.addEventListener("popstate",(function(e){U.AH(),U.PE(),U.CE(),j(),q(!0),y()}),!1)),v((function(){U.AH(),U.PE(),U.NH(),U.GT(),U.XLS(),U.XCS(),U.XCP(),U.CE(),U.MN(),U.IA(),U.LV(),console.log("%c Mashiro %c","background:#24272A; color:#ffffff","","https://2heng.xin/"),console.log("%c Github %c","background:#24272A; color:#ffffff","","https://github.com/mashirozx")}));let D=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,z=navigator.userAgent.toLowerCase().indexOf("opera")>-1,F=navigator.userAgent.toLowerCase().indexOf("msie")>-1;function X(){mashiro_option.audio&&v((()=>{window.AudioContext=window.AudioContext||window.webkitAudioContext,function(){if(window.AudioContext){let e,t=new AudioContext,n="880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880".split(" "),o=0,r=1,s="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" ");document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((i=>{i.addEventListener("mouseenter",(i=>{if(e)return;let a=n[o];a||(o=0,a=n[o]),o+=r;const l=t.createOscillator(),c=t.createGain();l.connect(c),c.connect(t.destination),l.type="sine",l.frequency.value=a,c.gain.setValueAtTime(0,t.currentTime),c.gain.linearRampToValueAtTime(1,t.currentTime+.01),l.start(t.currentTime),c.gain.exponentialRampToValueAtTime(.001,t.currentTime+1),l.stop(t.currentTime+1);const d=Math.round(7*Math.random()),u=i.pageX,m=i.pageY-5;e=document.createElement("b"),e.textContent=s[d],e.style.zIndex="99999",e.style.top=m-100+"px",e.style.left=u+"px",e.style.position="absolute",e.style.color="#FF6EB4",document.body.appendChild(e),e.animate([{top:m+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{e.remove(),e=null}),500),i.stopPropagation()}))}))}}()}))}(D||z||F)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",(function(){let e,t=location.hash.substring(1);/^[A-z0-9_-]+$/.test(t)&&(e=document.getElementById(t),e&&(/^(?:a|select|input|button|textarea)$/i.test(e.tagName)||(e.tabIndex=-1),e.focus()))}),!1),window.addEventListener("load",(()=>{const e=document.getElementById("preload");e&&(document.documentElement.style.overflowY="unset",0==mashiro_option.preload_blur?(e.classList.add("hide"),e.classList.remove("show"),setTimeout((()=>e.remove()),233)):e.animate([{filter:"blur(0px)",backdropFilter:"blur(10px)",opacity:1},{backdropFilter:"blur(0px)grayscale(0)",opacity:.1},{opacity:0,filter:"blur(100px)"}],{duration:mashiro_option.preload_blur,fill:"forwards",easing:"ease"}).onfinish=()=>{e.remove()})}))})()})(); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/js/app.js.gz b/js/app.js.gz index 571228a8..b43cec49 100644 Binary files a/js/app.js.gz and b/js/app.js.gz differ diff --git a/js/app.js.map b/js/app.js.map index a0dcba27..33b7e2f9 100644 --- a/js/app.js.map +++ b/js/app.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://sakurairo-scripts/webpack/runtime/create fake namespace object","webpack://sakurairo-scripts/webpack/runtime/load script","webpack://sakurairo-scripts/./node_modules/activate-power-mode/dist/activate-power-mode.js","webpack://sakurairo-scripts/./node_modules/charenc/charenc.js","webpack://sakurairo-scripts/./node_modules/crypt/crypt.js","webpack://sakurairo-scripts/./node_modules/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/is-buffer/index.js","webpack://sakurairo-scripts/./node_modules/md5/md5.js","webpack://sakurairo-scripts/./node_modules/nprogress/nprogress.js","webpack://sakurairo-scripts/./node_modules/pjax/index.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/abort-request.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/eval-script.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/events/on.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/events/trigger.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/execute-scripts.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/foreach-els.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/foreach-selectors.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/is-supported.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/parse-options.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/attach-form.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/attach-link.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/handle-response.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/log.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/parse-element.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/send-request.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/switches-selectors.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/switches.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/uniqueid.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/clone.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/contains.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/extend.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/noop.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/update-query-string.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/AddComment.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/api.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/copyright.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/darkmode.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/get_gravatar.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/pjax.ts","webpack://sakurairo-scripts/./src/module/cookie.ts","webpack://sakurairo-scripts/webpack/bootstrap","webpack://sakurairo-scripts/webpack/runtime/compat get default export","webpack://sakurairo-scripts/webpack/runtime/define property getters","webpack://sakurairo-scripts/webpack/runtime/ensure chunk","webpack://sakurairo-scripts/webpack/runtime/get javascript chunk filename","webpack://sakurairo-scripts/webpack/runtime/global","webpack://sakurairo-scripts/webpack/runtime/hasOwnProperty shorthand","webpack://sakurairo-scripts/webpack/runtime/make namespace object","webpack://sakurairo-scripts/webpack/runtime/publicPath","webpack://sakurairo-scripts/webpack/runtime/jsonp chunk loading","webpack://sakurairo-scripts/./src/entries/sakura-app/global-func.js","webpack://sakurairo-scripts/./src/entries/sakura-app/index.js"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","factory","modules","installedModules","moduleId","exports","module","id","loaded","call","m","c","p","canvas","document","createElement","width","window","innerWidth","height","innerHeight","style","cssText","addEventListener","body","appendChild","context","getContext","particles","particlePointer","rendering","getRandom","min","max","Math","random","getColor","el","POWERMODE","colorful","u","getComputedStyle","color","createParticle","x","y","alpha","velocity","caret","bcr","activeElement","tagName","getAttribute","offset","selectionEnd","getBoundingClientRect","left","top","selection","getSelection","rangeCount","range","getRangeAt","startNode","startContainer","nodeType","TEXT_NODE","parentNode","getCaret","numParticles","round","shake","intensity","marginLeft","marginTop","setTimeout","requestAnimationFrame","loop","clearRect","rendered","rect","i","length","particle","globalAlpha","fillStyle","fillRect","properties","isFirefox","mozInnerScreenX","getCaretCoordinates","element","position","options","debug","querySelector","removeChild","div","computed","currentStyle","whiteSpace","nodeName","wordWrap","visibility","forEach","prop","scrollHeight","parseInt","overflowY","overflow","textContent","value","substring","replace","span","coordinates","offsetTop","offsetLeft","backgroundColor","charenc","utf8","stringToBytes","str","bin","unescape","encodeURIComponent","bytesToString","bytes","decodeURIComponent","escape","push","charCodeAt","String","fromCharCode","join","base64map","crypt","rotl","n","b","rotr","endian","constructor","Number","randomBytes","floor","bytesToWords","words","wordsToBytes","bytesToHex","hex","toString","hexToBytes","substr","bytesToBase64","base64","triplet","j","charAt","base64ToBytes","imod4","indexOf","pow","w","loadCSS","href","before","media","attributes","ref","doc","ss","refs","getElementsByTagName","childNodes","sheets","styleSheets","attributeName","hasOwnProperty","setAttribute","rel","ready","cb","insertBefore","nextSibling","onloadcssdefined","resolvedHref","loadCB","removeEventListener","g","this","isBuffer","obj","readFloatLE","slice","isSlowBuffer","_isBuffer","md5","message","encoding","Array","prototype","isArray","Uint8Array","l","a","d","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","s","t","_blocksize","_digestsize","Error","digestbytes","asBytes","asString","initial","current","NProgress","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","clamp","toBarPerc","barPositionCSS","ease","barCSS","transform","transition","configure","key","undefined","status","set","started","isStarted","progress","render","bar","offsetWidth","queue","next","getPositioningCSS","css","opacity","remove","start","work","done","force","inc","amount","promise","$promise","state","always","fromStart","isRendered","getElementById","addClass","documentElement","innerHTML","spinner","perc","removeElement","removeClass","bodyStyle","vendorPrefix","pending","fn","shift","cssPrefixes","cssProps","camelCase","string","match","letter","toUpperCase","getVendorProp","name","vendorName","capName","getStyleProp","applyCss","args","arguments","hasClass","classList","oldList","newList","className","executeScripts","forEachEls","parseOptions","switches","newUid","on","trigger","clone","contains","extend","noop","Pjax","numPendingSwitches","log","scrollRestoration","history","maxUid","lastUid","parseDOM","st","opt","url","title","scrollPos","uid","backward","forward","loadUrl","bind","getElements","querySelectorAll","elements","parseElement","refresh","reload","location","attachLink","attachForm","forEachSelectors","DOMcontext","selectors","switchSelectors","fromEl","toEl","switchesOptions","latestChance","onSwitch","afterAllSwitches","loadContent","html","tmpEl","implementation","createHTMLDocument","matches","htmlAttrib","attr","trim","split","blur","e","abortRequest","doRequest","handleResponse","request","autofocusEl","pop","focus","selector","replaceState","pushState","analytics","hash","curtop","target","getElementsByName","offsetParent","scrollTo","isSupported","stupidPjax","readyState","onreadystatechange","abort","code","text","src","script","console","type","async","createTextNode","HTMLHeadElement","HTMLBodyElement","els","events","listener","useCapture","opts","event","createEvent","initEvent","eventName","Object","keys","domFix","dispatchEvent","evalScript","toLowerCase","HTMLCollection","NodeList","navigator","userAgent","defaultSwitches","defaultAnalytics","_gaq","ga","page","pathname","cacheBust","timeout","currentUrlFullReload","head","switchElementsAlt","attrState","formAction","isDefaultPrevented","requestOptions","requestUrl","requestMethod","virtLinkElement","attrValue","protocol","host","checkIfShouldAbort","preventDefault","enctype","formData","FormData","requestParams","formElements","checked","values","selected","disabled","hasAttribute","k","parseFormElements","triggerElement","defaultPrevented","returnValue","that","linkAction","which","metaKey","ctrlKey","shiftKey","altKey","keyCode","responseText","currentState","scrollLeft","scrollTop","oldHref","responseURL","getResponseHeader","oldHash","error","apply","updateQueryString","callback","queryString","requestPayload","XMLHttpRequest","onerror","ontimeout","map","param","Date","now","open","setRequestHeader","JSON","stringify","send","switchesQueue","newEls","oldEls","newEl","oldEl","outerHTML","queuedSwitch","removeAttribute","hasAttributes","attrs","setNamedItem","cloneNode","replaceNode","replaceChild","sideBySide","switchOptions","elsToRemove","elsToAdd","fragToAppend","createDocumentFragment","animationEventNames","animatedElsNumber","sexyAnimationEnd","currentTarget","add","callbacks","classNames","addClasses","addElement","counter","getTime","copy","selectedEls","to","source","uri","re","RegExp","separator","defaults","srcset","root","rootMargin","threshold","LazyLoad","images","observer","assign","init","IntersectionObserver","loadImages","self","observerConfig","entries","entry","isIntersecting","unobserve","backgroundImage","image","observe","destroy","disconnect","AddComment","respondId","moveForm","commId","parentId","comm","respond","cancel","display","temp","_respond","pageYOffset","clientTop","behavior","onclick","clearButterbar","butterBar","getElementsByClassName","createButterbar","showtime","insertAdjacentHTML","apiPath","params","nonce","path","URL","searchParams","Poi","txt","mashiro_option","author_name","site_name","copytext","selectionText","selectionTxt","htmlData","textData","clipboardData","setData","setClipboardText","addComment","clipboardCopyright","mediaQuery","matchMedia","inDarkMode","informDarkModeChange","nextValue","CustomEvent","detail","mediaQueryCallback","localStorage","getItem","darkmode","turnOnDarkMode","turnOffDarkMode","saveUserSetting","ifDarkmodeShouldOn","removeItem","setItem","userTriggered","background","skin_bg0","checkTime","today","getHours","dm_strategy","dark","__importDefault","mod","__esModule","defineProperty","md5_1","default","email","size","gravatar_url","pjax","pjax_1","_a","_version_ctrl","cookie_version_control","days","expires","toUTCString","cookie","nameEQ","ca","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","getter","getPrototypeOf","mode","then","ns","create","r","def","getOwnPropertyNames","definition","o","enumerable","get","f","chunkId","Promise","all","reduce","promises","globalThis","Function","needAttach","scripts","charset","nc","onScriptComplete","prev","onload","clearTimeout","doneFns","Symbol","toStringTag","scriptUrl","importScripts","currentScript","installedChunks","143","installedChunkData","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","chunkLoadingGlobal","motionEles","get_gravatar","imgError","ele","cmt_showPopup","popup","onblur","coverVideo","video","btn","paused","play","pause","killCoverVideo","mail_me","mail","email_name","email_domain","headertop_down","coverOffset","motionSwitch","UA","reg","version","Firefox","Edg","Chrome","Opera","Version","toDataURL","setCookie","mashiro_global","variables","has_hls","skinSecter","ini","normalize","lazyload","post_list_show_animation","copy_code_block","web_audio","coverVideoIni","checkSkinSecter","clientWidth","result","cached","sc","skinMenu","outerHeight","load_bangumi","sm","pjaxInit","code_highlight_style","gen_top_bar","pre","code_a","children","ele_name","lang","hljs_process","hljs","warn","importHighlightjs","highlightBlock","initLineNumbersOnLoad","ec","toggle","PrismBaseUrl","code_highlight_prism","autoload_path","current_prism_css","themeCSS","light","theme","theme_name","loadPrismCSS","darkmodeOn","nextCSS","nextCSSElement","loadPrismPluginLineNumbers","prism_process","Prism","plugins","autoloader","languages_path","isInDarkMode","reason","importPrismJS","line_number_all","parentElement","highlightElement","fileHighlight","highlight","code_highlight","slideToogle","duration","dom","flag","tagTimer","tagHeight","clientHeight","io","article","willChange","articles","font_control","cbs","cbss","change_font","getCookie","add_upload_tips","form_submit","comment_upload_img","upload_img","files","alert","xhr","append","buildAPI","api","res","parse","get_the_url","proxy","grin","attach_image","file_submit","hover","Tip","click_to_view_image","original_emoji_click","innerText","pattern","headertop","no_right_click","pri","stopPropagation","changeBG","bgid","bg_url","skin_bg1","skin_bg2","skin_bg3","skin_bg4","closeSkinMenu","centerbg","type_mobile","random_graphs_mts","cover_api","changeCoverBG","tagid","bgurl","checkBgImgCookie","checkDarkModeSetting","changskin","close_SkinMenu","bgn","setBG","cover_api_url","search","bgButtonAddListener","timeSeriesReload","archives","al_li","nextElementSibling","al_expand_collapse","cursor","num","al_post_list","al_post_list_f","al_expand_collapse_click","loadHls","video_src","Hls","hls","loadSource","attachMedia","Events","MANIFEST_PARSED","canPlayType","catch","ClipboardJS","tableOfContentScroll","heading_fix","entry_content_theme","_els","_el","tocbot","tocSelector","contentSelector","headingSelector","headingsOffset","_p","getqqinfo","_div","tla","reloadHermit","iconflat","openNav","smileBoxToggle","add_copyright","cm","reply_link_version","data_commentid","list","confirm","idp","actionp","rateHolderp","ajax_data","comt","et","tag","after","myField","sel","createRange","selectionStart","startPos","endPos","cursorPos","is_get_by_qq","i_author","i_qq","i_email","i_url","qq_check","gravatar_check","user_avatar_img","qzone_autocomplete","emailAddressFlag","qq","test","whileFailed","fetch","qq_api_url","resp","ok","json","avatar","emailAddress","URL_Address","user_name","sections","_flag","bfan","row","from","stlye","float_player_on","aplayerInit","secondary","show_hide","activate_widget","jsdelivr_css_src","entry_content_style_src","Siren","MN","MNH","splay","video_btn","bottom","ap","hermitInit","spause","liveplay","oncanplay","livepause","video_stu","addsource","movies","_t","bgvideo","LV","onended","video_add","AH","windowheight","minHeight","PE","blank","paddingTop","live","CE","comments_hidden","comments_main","h3","collapseButton","collapseListener","baguetteBoxON","baguetteBox","run","captions","alt","ignoreClass","fancybox","jQuery","$","article_attach","live_search","QueryStorage","val","sessionStorage","query","Record","div_href","otxt","searchFlag","search_close","Ty","click","search_result","keyword","link","fa","iconfont","comments","B","A","z","F","H","G","D","E","C","array","filter","v","some","Cx","oninput","js_search","show_Nav","sln","loading","NH","XLS","load_post_timer","load_post","pagination_a","DOM","DOMParser","parseFromString","paga","paga_innerText","nextHref","dpga","addps","tempScrollTop","intersectionRatio","_page_next","page_next","load_key","load_time","XCS","__list","form","ajaxurl","method","order","formpostion","statusText","require","XCP","_this","_xhr","responseType","onloadstart","comments_navi","commentwrap","loading_comments","comments_list","response","nextlink","gtag","google_analytics_id","IA","GT","mb_to_top","load","NProgressON","isWebkit","isOpera","isIe","audio","AudioContext","webkitAudioContext","createOscillator","createGain","connect","destination","frequency","gain","setValueAtTime","currentTime","linearRampToValueAtTime","exponentialRampToValueAtTime","stop","h","pageX","pageY","zIndex","animate","tabIndex","preload","preload_blur","backdropFilter","fill","onfinish"],"mappings":"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","file":"app.js","sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"sakurairo-scripts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"POWERMODE\"] = factory();\n\telse\n\t\troot[\"POWERMODE\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar canvas = document.createElement('canvas');\n\tcanvas.width = window.innerWidth;\n\tcanvas.height = window.innerHeight;\n\tcanvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';\n\twindow.addEventListener('resize', function () {\n\t canvas.width = window.innerWidth;\n\t canvas.height = window.innerHeight;\n\t});\n\tdocument.body.appendChild(canvas);\n\tvar context = canvas.getContext('2d');\n\tvar particles = [];\n\tvar particlePointer = 0;\n\tvar rendering = false;\n\n\tPOWERMODE.shake = true;\n\n\tfunction getRandom(min, max) {\n\t return Math.random() * (max - min) + min;\n\t}\n\n\tfunction getColor(el) {\n\t if (POWERMODE.colorful) {\n\t var u = getRandom(0, 360);\n\t return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')';\n\t } else {\n\t return window.getComputedStyle(el).color;\n\t }\n\t}\n\n\tfunction getCaret() {\n\t var el = document.activeElement;\n\t var bcr;\n\t if (el.tagName === 'TEXTAREA' ||\n\t (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {\n\t var offset = __webpack_require__(1)(el, el.selectionEnd);\n\t bcr = el.getBoundingClientRect();\n\t return {\n\t x: offset.left + bcr.left,\n\t y: offset.top + bcr.top,\n\t color: getColor(el)\n\t };\n\t }\n\t var selection = window.getSelection();\n\t if (selection.rangeCount) {\n\t var range = selection.getRangeAt(0);\n\t var startNode = range.startContainer;\n\t if (startNode.nodeType === document.TEXT_NODE) {\n\t startNode = startNode.parentNode;\n\t }\n\t bcr = range.getBoundingClientRect();\n\t return {\n\t x: bcr.left,\n\t y: bcr.top,\n\t color: getColor(startNode)\n\t };\n\t }\n\t return { x: 0, y: 0, color: 'transparent' };\n\t}\n\n\tfunction createParticle(x, y, color) {\n\t return {\n\t x: x,\n\t y: y,\n\t alpha: 1,\n\t color: color,\n\t velocity: {\n\t x: -1 + Math.random() * 2,\n\t y: -3.5 + Math.random() * 2\n\t }\n\t };\n\t}\n\n\tfunction POWERMODE() {\n\t { // spawn particles\n\t var caret = getCaret();\n\t var numParticles = 5 + Math.round(Math.random() * 10);\n\t while (numParticles--) {\n\t particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);\n\t particlePointer = (particlePointer + 1) % 500;\n\t }\n\t }\n\t { // shake screen\n\t if (POWERMODE.shake) {\n\t var intensity = 1 + 2 * Math.random();\n\t var x = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t var y = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t document.body.style.marginLeft = x + 'px';\n\t document.body.style.marginTop = y + 'px';\n\t setTimeout(function() {\n\t document.body.style.marginLeft = '';\n\t document.body.style.marginTop = '';\n\t }, 75);\n\t }\n\t }\n\t if(!rendering){\n\t requestAnimationFrame(loop);\n\t }\n\t};\n\tPOWERMODE.colorful = false;\n\n\tfunction loop() {\n\t rendering = true;\n\t context.clearRect(0, 0, canvas.width, canvas.height);\n\t var rendered = false;\n\t var rect = canvas.getBoundingClientRect();\n\t for (var i = 0; i < particles.length; ++i) {\n\t var particle = particles[i];\n\t if (particle.alpha <= 0.1) continue;\n\t particle.velocity.y += 0.075;\n\t particle.x += particle.velocity.x;\n\t particle.y += particle.velocity.y;\n\t particle.alpha *= 0.96;\n\t context.globalAlpha = particle.alpha;\n\t context.fillStyle = particle.color;\n\t context.fillRect(\n\t Math.round(particle.x - 1.5) - rect.left,\n\t Math.round(particle.y - 1.5) - rect.top,\n\t 3, 3\n\t );\n\t rendered = true;\n\t }\n\t if(rendered){\n\t requestAnimationFrame(loop);\n\t }else{\n\t rendering = false;\n\t }\n\t}\n\n\tmodule.exports = POWERMODE;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t/* jshint browser: true */\n\n\t(function () {\n\n\t// The properties that we copy into a mirrored div.\n\t// Note that some browsers, such as Firefox,\n\t// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n\t// so we have to do every single property specifically.\n\tvar properties = [\n\t 'direction', // RTL support\n\t 'boxSizing',\n\t 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n\t 'height',\n\t 'overflowX',\n\t 'overflowY', // copy the scrollbar for IE\n\n\t 'borderTopWidth',\n\t 'borderRightWidth',\n\t 'borderBottomWidth',\n\t 'borderLeftWidth',\n\t 'borderStyle',\n\n\t 'paddingTop',\n\t 'paddingRight',\n\t 'paddingBottom',\n\t 'paddingLeft',\n\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n\t 'fontStyle',\n\t 'fontVariant',\n\t 'fontWeight',\n\t 'fontStretch',\n\t 'fontSize',\n\t 'fontSizeAdjust',\n\t 'lineHeight',\n\t 'fontFamily',\n\n\t 'textAlign',\n\t 'textTransform',\n\t 'textIndent',\n\t 'textDecoration', // might not make a difference, but better be safe\n\n\t 'letterSpacing',\n\t 'wordSpacing',\n\n\t 'tabSize',\n\t 'MozTabSize'\n\n\t];\n\n\tvar isFirefox = window.mozInnerScreenX != null;\n\n\tfunction getCaretCoordinates(element, position, options) {\n\n\t var debug = options && options.debug || false;\n\t if (debug) {\n\t var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n\t if ( el ) { el.parentNode.removeChild(el); }\n\t }\n\n\t // mirrored div\n\t var div = document.createElement('div');\n\t div.id = 'input-textarea-caret-position-mirror-div';\n\t document.body.appendChild(div);\n\n\t var style = div.style;\n\t var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n\n\t // default textarea styles\n\t style.whiteSpace = 'pre-wrap';\n\t if (element.nodeName !== 'INPUT')\n\t style.wordWrap = 'break-word'; // only for textarea-s\n\n\t // position off-screen\n\t style.position = 'absolute'; // required to return coordinates properly\n\t if (!debug)\n\t style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n\t // transfer the element's properties to the div\n\t properties.forEach(function (prop) {\n\t style[prop] = computed[prop];\n\t });\n\n\t if (isFirefox) {\n\t // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n\t if (element.scrollHeight > parseInt(computed.height))\n\t style.overflowY = 'scroll';\n\t } else {\n\t style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n\t }\n\n\t div.textContent = element.value.substring(0, position);\n\t // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n\t if (element.nodeName === 'INPUT')\n\t div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n\t var span = document.createElement('span');\n\t // Wrapping must be replicated *exactly*, including when a long word gets\n\t // onto the next line, with whitespace at the end of the line before (#7).\n\t // The *only* reliable way to do that is to copy the *entire* rest of the\n\t // textarea's content into the created at the caret position.\n\t // for inputs, just '.' would be enough, but why bother?\n\t span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n\t div.appendChild(span);\n\n\t var coordinates = {\n\t top: span.offsetTop + parseInt(computed['borderTopWidth']),\n\t left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n\t };\n\n\t if (debug) {\n\t span.style.backgroundColor = '#aaa';\n\t } else {\n\t document.body.removeChild(div);\n\t }\n\n\t return coordinates;\n\t}\n\n\tif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t module.exports = getCaretCoordinates;\n\t} else {\n\t window.getCaretCoordinates = getCaretCoordinates;\n\t}\n\n\t}());\n\n/***/ })\n/******/ ])\n});\n;","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*! loadCSS. [c]2020 Filament Group, Inc. MIT License */\n(function(w){\n\t\"use strict\";\n\t/* exported loadCSS */\n\tvar loadCSS = function( href, before, media, attributes ){\n\t\t// Arguments explained:\n\t\t// `href` [REQUIRED] is the URL for your CSS file.\n\t\t// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before\n\t\t// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.\n\t\t// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'\n\t\t// `attributes` [OPTIONAL] is the Object of attribute name/attribute value pairs to set on the stylesheet's DOM Element.\n\t\tvar doc = w.document;\n\t\tvar ss = doc.createElement( \"link\" );\n\t\tvar ref;\n\t\tif( before ){\n\t\t\tref = before;\n\t\t}\n\t\telse {\n\t\t\tvar refs = ( doc.body || doc.getElementsByTagName( \"head\" )[ 0 ] ).childNodes;\n\t\t\tref = refs[ refs.length - 1];\n\t\t}\n\n\t\tvar sheets = doc.styleSheets;\n\t\t// Set any of the provided attributes to the stylesheet DOM Element.\n\t\tif( attributes ){\n\t\t\tfor( var attributeName in attributes ){\n\t\t\t\tif( attributes.hasOwnProperty( attributeName ) ){\n\t\t\t\t\tss.setAttribute( attributeName, attributes[attributeName] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tss.rel = \"stylesheet\";\n\t\tss.href = href;\n\t\t// temporarily set media to something inapplicable to ensure it'll fetch without blocking render\n\t\tss.media = \"only x\";\n\n\t\t// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.\n\t\tfunction ready( cb ){\n\t\t\tif( doc.body ){\n\t\t\t\treturn cb();\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\tready( cb );\n\t\t\t});\n\t\t}\n\t\t// Inject link\n\t\t\t// Note: the ternary preserves the existing behavior of \"before\" argument, but we could choose to change the argument to \"after\" in a later release and standardize on ref.nextSibling for all refs\n\t\t\t// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/\n\t\tready( function(){\n\t\t\tref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );\n\t\t});\n\t\t// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.\n\t\tvar onloadcssdefined = function( cb ){\n\t\t\tvar resolvedHref = ss.href;\n\t\t\tvar i = sheets.length;\n\t\t\twhile( i-- ){\n\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\treturn cb();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTimeout(function() {\n\t\t\t\tonloadcssdefined( cb );\n\t\t\t});\n\t\t};\n\n\t\tfunction loadCB(){\n\t\t\tif( ss.addEventListener ){\n\t\t\t\tss.removeEventListener( \"load\", loadCB );\n\t\t\t}\n\t\t\tss.media = media || \"all\";\n\t\t}\n\n\t\t// once loaded, set link's media back to `all` so that the stylesheet applies once it loads\n\t\tif( ss.addEventListener ){\n\t\t\tss.addEventListener( \"load\", loadCB);\n\t\t}\n\t\tss.onloadcssdefined = onloadcssdefined;\n\t\tonloadcssdefined( loadCB );\n\t\treturn ss;\n\t};\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ));\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","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '
'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","var executeScripts = require(\"./lib/execute-scripts\");\nvar forEachEls = require(\"./lib/foreach-els\");\nvar parseOptions = require(\"./lib/parse-options\");\nvar switches = require(\"./lib/switches\");\nvar newUid = require(\"./lib/uniqueid\");\n\nvar on = require(\"./lib/events/on\");\nvar trigger = require(\"./lib/events/trigger\");\n\nvar clone = require(\"./lib/util/clone\");\nvar contains = require(\"./lib/util/contains\");\nvar extend = require(\"./lib/util/extend\");\nvar noop = require(\"./lib/util/noop\");\n\nvar Pjax = function(options) {\n this.state = {\n numPendingSwitches: 0,\n href: null,\n options: null\n };\n\n this.options = parseOptions(options);\n this.log(\"Pjax options\", this.options);\n\n if (this.options.scrollRestoration && \"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\";\n }\n\n this.maxUid = this.lastUid = newUid();\n\n this.parseDOM(document);\n\n on(\n window,\n \"popstate\",\n function(st) {\n if (st.state) {\n var opt = clone(this.options);\n opt.url = st.state.url;\n opt.title = st.state.title;\n // Since state already exists, prevent it from being pushed again\n opt.history = false;\n opt.scrollPos = st.state.scrollPos;\n if (st.state.uid < this.lastUid) {\n opt.backward = true;\n } else {\n opt.forward = true;\n }\n this.lastUid = st.state.uid;\n\n // @todo implement history cache here, based on uid\n this.loadUrl(st.state.url, opt);\n }\n }.bind(this)\n );\n};\n\nPjax.switches = switches;\n\nPjax.prototype = {\n log: require(\"./lib/proto/log\"),\n\n getElements: function(el) {\n return el.querySelectorAll(this.options.elements);\n },\n\n parseDOM: function(el) {\n var parseElement = require(\"./lib/proto/parse-element\");\n forEachEls(this.getElements(el), parseElement, this);\n },\n\n refresh: function(el) {\n this.parseDOM(el || document);\n },\n\n reload: function() {\n window.location.reload();\n },\n\n attachLink: require(\"./lib/proto/attach-link\"),\n\n attachForm: require(\"./lib/proto/attach-form\"),\n\n forEachSelectors: function(cb, context, DOMcontext) {\n return require(\"./lib/foreach-selectors\").bind(this)(\n this.options.selectors,\n cb,\n context,\n DOMcontext\n );\n },\n\n switchSelectors: function(selectors, fromEl, toEl, options) {\n return require(\"./lib/switches-selectors\").bind(this)(\n this.options.switches,\n this.options.switchesOptions,\n selectors,\n fromEl,\n toEl,\n options\n );\n },\n\n latestChance: function(href) {\n window.location = href;\n },\n\n onSwitch: function() {\n trigger(window, \"resize scroll\");\n\n this.state.numPendingSwitches--;\n\n // debounce calls, so we only run this once after all switches are finished.\n if (this.state.numPendingSwitches === 0) {\n this.afterAllSwitches();\n }\n },\n\n loadContent: function(html, options) {\n if (typeof html !== \"string\") {\n trigger(document, \"pjax:complete pjax:error\", options);\n\n return;\n }\n\n var tmpEl = document.implementation.createHTMLDocument(\"pjax\");\n\n // parse HTML attributes to copy them\n // since we are forced to use documentElement.innerHTML (outerHTML can't be used for )\n var htmlRegex = /]+>/gi;\n var htmlAttribsRegex = /\\s?[a-z:]+(?:=['\"][^'\">]+['\"])*/gi;\n var matches = html.match(htmlRegex);\n if (matches && matches.length) {\n matches = matches[0].match(htmlAttribsRegex);\n if (matches.length) {\n matches.shift();\n matches.forEach(function(htmlAttrib) {\n var attr = htmlAttrib.trim().split(\"=\");\n if (attr.length === 1) {\n tmpEl.documentElement.setAttribute(attr[0], true);\n } else {\n tmpEl.documentElement.setAttribute(attr[0], attr[1].slice(1, -1));\n }\n });\n }\n }\n\n tmpEl.documentElement.innerHTML = html;\n this.log(\n \"load content\",\n tmpEl.documentElement.attributes,\n tmpEl.documentElement.innerHTML.length\n );\n\n // Clear out any focused controls before inserting new page contents.\n if (\n document.activeElement &&\n contains(document, this.options.selectors, document.activeElement)\n ) {\n try {\n document.activeElement.blur();\n } catch (e) {} // eslint-disable-line no-empty\n }\n\n this.switchSelectors(this.options.selectors, tmpEl, document, options);\n },\n\n abortRequest: require(\"./lib/abort-request\"),\n\n doRequest: require(\"./lib/send-request\"),\n\n handleResponse: require(\"./lib/proto/handle-response\"),\n\n loadUrl: function(href, options) {\n options =\n typeof options === \"object\"\n ? extend({}, this.options, options)\n : clone(this.options);\n\n this.log(\"load href\", href, options);\n\n // Abort any previous request\n this.abortRequest(this.request);\n\n trigger(document, \"pjax:send\", options);\n\n // Do the request\n this.request = this.doRequest(\n href,\n options,\n this.handleResponse.bind(this)\n );\n },\n\n afterAllSwitches: function() {\n // FF bug: Won’t autofocus fields that are inserted via JS.\n // This behavior is incorrect. So if theres no current focus, autofocus\n // the last field.\n //\n // http://www.w3.org/html/wg/drafts/html/master/forms.html\n var autofocusEl = Array.prototype.slice\n .call(document.querySelectorAll(\"[autofocus]\"))\n .pop();\n if (autofocusEl && document.activeElement !== autofocusEl) {\n autofocusEl.focus();\n }\n\n // execute scripts when DOM have been completely updated\n this.options.selectors.forEach(function(selector) {\n forEachEls(document.querySelectorAll(selector), function(el) {\n executeScripts(el);\n });\n });\n\n var state = this.state;\n\n if (state.options.history) {\n if (!window.history.state) {\n this.lastUid = this.maxUid = newUid();\n window.history.replaceState(\n {\n url: window.location.href,\n title: document.title,\n uid: this.maxUid,\n scrollPos: [0, 0]\n },\n document.title\n );\n }\n\n // Update browser history\n this.lastUid = this.maxUid = newUid();\n\n window.history.pushState(\n {\n url: state.href,\n title: state.options.title,\n uid: this.maxUid,\n scrollPos: [0, 0]\n },\n state.options.title,\n state.href\n );\n }\n\n this.forEachSelectors(function(el) {\n this.parseDOM(el);\n }, this);\n\n // Fire Events\n trigger(document, \"pjax:complete pjax:success\", state.options);\n\n if (typeof state.options.analytics === \"function\") {\n state.options.analytics();\n }\n\n if (state.options.history) {\n // First parse url and check for hash to override scroll\n var a = document.createElement(\"a\");\n a.href = this.state.href;\n if (a.hash) {\n var name = a.hash.slice(1);\n name = decodeURIComponent(name);\n\n var curtop = 0;\n var target =\n document.getElementById(name) || document.getElementsByName(name)[0];\n if (target) {\n // http://stackoverflow.com/questions/8111094/cross-browser-javascript-function-to-find-actual-position-of-an-element-in-page\n if (target.offsetParent) {\n do {\n curtop += target.offsetTop;\n\n target = target.offsetParent;\n } while (target);\n }\n }\n window.scrollTo(0, curtop);\n } else if (state.options.scrollTo !== false) {\n // Scroll page to top on new page load\n if (state.options.scrollTo.length > 1) {\n window.scrollTo(state.options.scrollTo[0], state.options.scrollTo[1]);\n } else {\n window.scrollTo(0, state.options.scrollTo);\n }\n }\n } else if (state.options.scrollRestoration && state.options.scrollPos) {\n window.scrollTo(state.options.scrollPos[0], state.options.scrollPos[1]);\n }\n\n this.state = {\n numPendingSwitches: 0,\n href: null,\n options: null\n };\n }\n};\n\nPjax.isSupported = require(\"./lib/is-supported\");\n\n// arguably could do `if( require(\"./lib/is-supported\")()) {` but that might be a little to simple\nif (Pjax.isSupported()) {\n module.exports = Pjax;\n}\n// if there isn’t required browser functions, returning stupid api\nelse {\n var stupidPjax = noop;\n for (var key in Pjax.prototype) {\n if (\n Pjax.prototype.hasOwnProperty(key) &&\n typeof Pjax.prototype[key] === \"function\"\n ) {\n stupidPjax[key] = noop;\n }\n }\n\n module.exports = stupidPjax;\n}\n","var noop = require(\"./util/noop\");\n\nmodule.exports = function(request) {\n if (request && request.readyState < 4) {\n request.onreadystatechange = noop;\n request.abort();\n }\n};\n","module.exports = function(el) {\n var code = el.text || el.textContent || el.innerHTML || \"\";\n var src = el.src || \"\";\n var parent =\n el.parentNode || document.querySelector(\"head\") || document.documentElement;\n var script = document.createElement(\"script\");\n\n if (code.match(\"document.write\")) {\n if (console && console.log) {\n console.log(\n \"Script contains document.write. Can’t be executed correctly. Code skipped \",\n el\n );\n }\n return false;\n }\n\n script.type = \"text/javascript\";\n script.id = el.id;\n\n /* istanbul ignore if */\n if (src !== \"\") {\n script.src = src;\n script.async = false; // force synchronous loading of peripheral JS\n }\n\n if (code !== \"\") {\n try {\n script.appendChild(document.createTextNode(code));\n } catch (e) {\n /* istanbul ignore next */\n // old IEs have funky script nodes\n script.text = code;\n }\n }\n\n // execute\n parent.appendChild(script);\n // avoid pollution only in head or body tags\n if (\n (parent instanceof HTMLHeadElement || parent instanceof HTMLBodyElement) &&\n parent.contains(script)\n ) {\n parent.removeChild(script);\n }\n\n return true;\n};\n","var forEachEls = require(\"../foreach-els\");\n\nmodule.exports = function(els, events, listener, useCapture) {\n events = typeof events === \"string\" ? events.split(\" \") : events;\n\n events.forEach(function(e) {\n forEachEls(els, function(el) {\n el.addEventListener(e, listener, useCapture);\n });\n });\n};\n","var forEachEls = require(\"../foreach-els\");\n\nmodule.exports = function(els, events, opts) {\n events = typeof events === \"string\" ? events.split(\" \") : events;\n\n events.forEach(function(e) {\n var event;\n event = document.createEvent(\"HTMLEvents\");\n event.initEvent(e, true, true);\n event.eventName = e;\n if (opts) {\n Object.keys(opts).forEach(function(key) {\n event[key] = opts[key];\n });\n }\n\n forEachEls(els, function(el) {\n var domFix = false;\n if (!el.parentNode && el !== document && el !== window) {\n // THANK YOU IE (9/10/11)\n // dispatchEvent doesn't work if the element is not in the DOM\n domFix = true;\n document.body.appendChild(el);\n }\n el.dispatchEvent(event);\n if (domFix) {\n el.parentNode.removeChild(el);\n }\n });\n });\n};\n","var forEachEls = require(\"./foreach-els\");\nvar evalScript = require(\"./eval-script\");\n// Finds and executes scripts (used for newly added elements)\n// Needed since innerHTML does not run scripts\nmodule.exports = function(el) {\n if (el.tagName.toLowerCase() === \"script\") {\n evalScript(el);\n }\n\n forEachEls(el.querySelectorAll(\"script\"), function(script) {\n if (!script.type || script.type.toLowerCase() === \"text/javascript\") {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n evalScript(script);\n }\n });\n};\n","/* global HTMLCollection: true */\n\nmodule.exports = function(els, fn, context) {\n if (\n els instanceof HTMLCollection ||\n els instanceof NodeList ||\n els instanceof Array\n ) {\n return Array.prototype.forEach.call(els, fn, context);\n }\n // assume simple DOM element\n return fn.call(context, els);\n};\n","var forEachEls = require(\"./foreach-els\");\n\nmodule.exports = function(selectors, cb, context, DOMcontext) {\n DOMcontext = DOMcontext || document;\n selectors.forEach(function(selector) {\n forEachEls(DOMcontext.querySelectorAll(selector), cb, context);\n });\n};\n","module.exports = function() {\n // Borrowed wholesale from https://github.com/defunkt/jquery-pjax\n return (\n window.history &&\n window.history.pushState &&\n window.history.replaceState &&\n // pushState isn’t reliable on iOS until 5.\n !navigator.userAgent.match(\n /((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/\n )\n );\n};\n","/* global _gaq: true, ga: true */\n\nvar defaultSwitches = require(\"./switches\");\n\nmodule.exports = function(options) {\n options = options || {};\n options.elements = options.elements || \"a[href], form[action]\";\n options.selectors = options.selectors || [\"title\", \".js-Pjax\"];\n options.switches = options.switches || {};\n options.switchesOptions = options.switchesOptions || {};\n options.history =\n typeof options.history === \"undefined\" ? true : options.history;\n options.analytics =\n typeof options.analytics === \"function\" || options.analytics === false\n ? options.analytics\n : defaultAnalytics;\n options.scrollTo =\n typeof options.scrollTo === \"undefined\" ? 0 : options.scrollTo;\n options.scrollRestoration =\n typeof options.scrollRestoration !== \"undefined\"\n ? options.scrollRestoration\n : true;\n options.cacheBust =\n typeof options.cacheBust === \"undefined\" ? true : options.cacheBust;\n options.debug = options.debug || false;\n options.timeout = options.timeout || 0;\n options.currentUrlFullReload =\n typeof options.currentUrlFullReload === \"undefined\"\n ? false\n : options.currentUrlFullReload;\n\n // We can’t replace body.outerHTML or head.outerHTML.\n // It creates a bug where a new body or head are created in the DOM.\n // If you set head.outerHTML, a new body tag is appended, so the DOM has 2 body nodes, and vice versa\n if (!options.switches.head) {\n options.switches.head = defaultSwitches.switchElementsAlt;\n }\n if (!options.switches.body) {\n options.switches.body = defaultSwitches.switchElementsAlt;\n }\n\n return options;\n};\n\n/* istanbul ignore next */\nfunction defaultAnalytics() {\n if (window._gaq) {\n _gaq.push([\"_trackPageview\"]);\n }\n if (window.ga) {\n ga(\"send\", \"pageview\", { page: location.pathname, title: document.title });\n }\n}\n","var on = require(\"../events/on\");\nvar clone = require(\"../util/clone\");\n\nvar attrState = \"data-pjax-state\";\n\nvar formAction = function(el, event) {\n if (isDefaultPrevented(event)) {\n return;\n }\n\n // Since loadUrl modifies options and we may add our own modifications below,\n // clone it so the changes don't persist\n var options = clone(this.options);\n\n // Initialize requestOptions\n options.requestOptions = {\n requestUrl: el.getAttribute(\"action\") || window.location.href,\n requestMethod: el.getAttribute(\"method\") || \"GET\"\n };\n\n // create a testable virtual link of the form action\n var virtLinkElement = document.createElement(\"a\");\n virtLinkElement.setAttribute(\"href\", options.requestOptions.requestUrl);\n\n var attrValue = checkIfShouldAbort(virtLinkElement, options);\n if (attrValue) {\n el.setAttribute(attrState, attrValue);\n return;\n }\n\n event.preventDefault();\n\n if (el.enctype === \"multipart/form-data\") {\n options.requestOptions.formData = new FormData(el);\n } else {\n options.requestOptions.requestParams = parseFormElements(el);\n }\n\n el.setAttribute(attrState, \"submit\");\n\n options.triggerElement = el;\n this.loadUrl(virtLinkElement.href, options);\n};\n\nfunction parseFormElements(el) {\n var requestParams = [];\n var formElements = el.elements;\n\n for (var i = 0; i < formElements.length; i++) {\n var element = formElements[i];\n var tagName = element.tagName.toLowerCase();\n // jscs:disable disallowImplicitTypeConversion\n if (\n !!element.name &&\n element.attributes !== undefined &&\n tagName !== \"button\"\n ) {\n // jscs:enable disallowImplicitTypeConversion\n var type = element.attributes.type;\n\n if (\n !type ||\n (type.value !== \"checkbox\" && type.value !== \"radio\") ||\n element.checked\n ) {\n // Build array of values to submit\n var values = [];\n\n if (tagName === \"select\") {\n var opt;\n\n for (var j = 0; j < element.options.length; j++) {\n opt = element.options[j];\n if (opt.selected && !opt.disabled) {\n values.push(opt.hasAttribute(\"value\") ? opt.value : opt.text);\n }\n }\n } else {\n values.push(element.value);\n }\n\n for (var k = 0; k < values.length; k++) {\n requestParams.push({\n name: encodeURIComponent(element.name),\n value: encodeURIComponent(values[k])\n });\n }\n }\n }\n }\n\n return requestParams;\n}\n\nfunction checkIfShouldAbort(virtLinkElement, options) {\n // Ignore external links.\n if (\n virtLinkElement.protocol !== window.location.protocol ||\n virtLinkElement.host !== window.location.host\n ) {\n return \"external\";\n }\n\n // Ignore click if we are on an anchor on the same page\n if (\n virtLinkElement.hash &&\n virtLinkElement.href.replace(virtLinkElement.hash, \"\") ===\n window.location.href.replace(location.hash, \"\")\n ) {\n return \"anchor\";\n }\n\n // Ignore empty anchor \"foo.html#\"\n if (virtLinkElement.href === window.location.href.split(\"#\")[0] + \"#\") {\n return \"anchor-empty\";\n }\n\n // if declared as a full reload, just normally submit the form\n if (\n options.currentUrlFullReload &&\n virtLinkElement.href === window.location.href.split(\"#\")[0]\n ) {\n return \"reload\";\n }\n}\n\nvar isDefaultPrevented = function(event) {\n return event.defaultPrevented || event.returnValue === false;\n};\n\nmodule.exports = function(el) {\n var that = this;\n\n el.setAttribute(attrState, \"\");\n\n on(el, \"submit\", function(event) {\n formAction.call(that, el, event);\n });\n};\n","var on = require(\"../events/on\");\nvar clone = require(\"../util/clone\");\n\nvar attrState = \"data-pjax-state\";\n\nvar linkAction = function(el, event) {\n if (isDefaultPrevented(event)) {\n return;\n }\n\n // Since loadUrl modifies options and we may add our own modifications below,\n // clone it so the changes don't persist\n var options = clone(this.options);\n\n var attrValue = checkIfShouldAbort(el, event);\n if (attrValue) {\n el.setAttribute(attrState, attrValue);\n return;\n }\n\n event.preventDefault();\n\n // don’t do \"nothing\" if user try to reload the page by clicking the same link twice\n if (\n this.options.currentUrlFullReload &&\n el.href === window.location.href.split(\"#\")[0]\n ) {\n el.setAttribute(attrState, \"reload\");\n this.reload();\n return;\n }\n\n el.setAttribute(attrState, \"load\");\n\n options.triggerElement = el;\n this.loadUrl(el.href, options);\n};\n\nfunction checkIfShouldAbort(el, event) {\n // Don’t break browser special behavior on links (like page in new window)\n if (\n event.which > 1 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey\n ) {\n return \"modifier\";\n }\n\n // we do test on href now to prevent unexpected behavior if for some reason\n // user have href that can be dynamically updated\n\n // Ignore external links.\n if (\n el.protocol !== window.location.protocol ||\n el.host !== window.location.host\n ) {\n return \"external\";\n }\n\n // Ignore anchors on the same page (keep native behavior)\n if (\n el.hash &&\n el.href.replace(el.hash, \"\") ===\n window.location.href.replace(location.hash, \"\")\n ) {\n return \"anchor\";\n }\n\n // Ignore empty anchor \"foo.html#\"\n if (el.href === window.location.href.split(\"#\")[0] + \"#\") {\n return \"anchor-empty\";\n }\n}\n\nvar isDefaultPrevented = function(event) {\n return event.defaultPrevented || event.returnValue === false;\n};\n\nmodule.exports = function(el) {\n var that = this;\n\n el.setAttribute(attrState, \"\");\n\n on(el, \"click\", function(event) {\n linkAction.call(that, el, event);\n });\n\n on(\n el,\n \"keyup\",\n function(event) {\n if (event.keyCode === 13) {\n linkAction.call(that, el, event);\n }\n }.bind(this)\n );\n};\n","var clone = require(\"../util/clone\");\nvar newUid = require(\"../uniqueid\");\nvar trigger = require(\"../events/trigger\");\n\nmodule.exports = function(responseText, request, href, options) {\n options = clone(options || this.options);\n options.request = request;\n\n // Fail if unable to load HTML via AJAX\n if (responseText === false) {\n trigger(document, \"pjax:complete pjax:error\", options);\n\n return;\n }\n\n // push scroll position to history\n var currentState = window.history.state || {};\n window.history.replaceState(\n {\n url: currentState.url || window.location.href,\n title: currentState.title || document.title,\n uid: currentState.uid || newUid(),\n scrollPos: [\n document.documentElement.scrollLeft || document.body.scrollLeft,\n document.documentElement.scrollTop || document.body.scrollTop\n ]\n },\n document.title,\n window.location.href\n );\n\n // Check for redirects\n var oldHref = href;\n if (request.responseURL) {\n if (href !== request.responseURL) {\n href = request.responseURL;\n }\n } else if (request.getResponseHeader(\"X-PJAX-URL\")) {\n href = request.getResponseHeader(\"X-PJAX-URL\");\n } else if (request.getResponseHeader(\"X-XHR-Redirected-To\")) {\n href = request.getResponseHeader(\"X-XHR-Redirected-To\");\n }\n\n // Add back the hash if it was removed\n var a = document.createElement(\"a\");\n a.href = oldHref;\n var oldHash = a.hash;\n a.href = href;\n if (oldHash && !a.hash) {\n a.hash = oldHash;\n href = a.href;\n }\n\n this.state.href = href;\n this.state.options = options;\n\n try {\n this.loadContent(responseText, options);\n } catch (e) {\n trigger(document, \"pjax:error\", options);\n\n if (!this.options.debug) {\n if (console && console.error) {\n console.error(\"Pjax switch fail: \", e);\n }\n return this.latestChance(href);\n } else {\n throw e;\n }\n }\n};\n","module.exports = function() {\n if (this.options.debug && console) {\n if (typeof console.log === \"function\") {\n console.log.apply(console, arguments);\n }\n // IE is weird\n else if (console.log) {\n console.log(arguments);\n }\n }\n};\n","var attrState = \"data-pjax-state\";\n\nmodule.exports = function(el) {\n switch (el.tagName.toLowerCase()) {\n case \"a\":\n // only attach link if el does not already have link attached\n if (!el.hasAttribute(attrState)) {\n this.attachLink(el);\n }\n break;\n\n case \"form\":\n // only attach link if el does not already have link attached\n if (!el.hasAttribute(attrState)) {\n this.attachForm(el);\n }\n break;\n\n default:\n throw \"Pjax can only be applied on
or submit\";\n }\n};\n","var updateQueryString = require(\"./util/update-query-string\");\n\nmodule.exports = function(location, options, callback) {\n options = options || {};\n var queryString;\n var requestOptions = options.requestOptions || {};\n var requestMethod = (requestOptions.requestMethod || \"GET\").toUpperCase();\n var requestParams = requestOptions.requestParams || null;\n var formData = requestOptions.formData || null;\n var requestPayload = null;\n var request = new XMLHttpRequest();\n var timeout = options.timeout || 0;\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.status === 200) {\n callback(request.responseText, request, location, options);\n } else if (request.status !== 0) {\n callback(null, request, location, options);\n }\n }\n };\n\n request.onerror = function(e) {\n console.log(e);\n callback(null, request, location, options);\n };\n\n request.ontimeout = function() {\n callback(null, request, location, options);\n };\n\n // Prepare the request payload for forms, if available\n if (requestParams && requestParams.length) {\n // Build query string\n queryString = requestParams\n .map(function(param) {\n return param.name + \"=\" + param.value;\n })\n .join(\"&\");\n\n switch (requestMethod) {\n case \"GET\":\n // Reset query string to avoid an issue with repeat submissions where checkboxes that were\n // previously checked are incorrectly preserved\n location = location.split(\"?\")[0];\n\n // Append new query string\n location += \"?\" + queryString;\n break;\n\n case \"POST\":\n // Send query string as request payload\n requestPayload = queryString;\n break;\n }\n } else if (formData) {\n requestPayload = formData;\n }\n\n // Add a timestamp as part of the query string if cache busting is enabled\n if (options.cacheBust) {\n location = updateQueryString(location, \"t\", Date.now());\n }\n\n request.open(requestMethod, location, true);\n request.timeout = timeout;\n request.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n request.setRequestHeader(\"X-PJAX\", \"true\");\n request.setRequestHeader(\n \"X-PJAX-Selectors\",\n JSON.stringify(options.selectors)\n );\n\n // Send the proper header information for POST forms\n if (requestPayload && requestMethod === \"POST\" && !formData) {\n request.setRequestHeader(\n \"Content-Type\",\n \"application/x-www-form-urlencoded\"\n );\n }\n\n request.send(requestPayload);\n\n return request;\n};\n","var forEachEls = require(\"./foreach-els\");\n\nvar defaultSwitches = require(\"./switches\");\n\nmodule.exports = function(\n switches,\n switchesOptions,\n selectors,\n fromEl,\n toEl,\n options\n) {\n var switchesQueue = [];\n\n selectors.forEach(function(selector) {\n var newEls = fromEl.querySelectorAll(selector);\n var oldEls = toEl.querySelectorAll(selector);\n if (this.log) {\n this.log(\"Pjax switch\", selector, newEls, oldEls);\n }\n if (newEls.length !== oldEls.length) {\n throw \"DOM doesn’t look the same on new loaded page: ’\" +\n selector +\n \"’ - new \" +\n newEls.length +\n \", old \" +\n oldEls.length;\n }\n\n forEachEls(\n newEls,\n function(newEl, i) {\n var oldEl = oldEls[i];\n if (this.log) {\n this.log(\"newEl\", newEl, \"oldEl\", oldEl);\n }\n\n var callback = switches[selector]\n ? switches[selector].bind(\n this,\n oldEl,\n newEl,\n options,\n switchesOptions[selector]\n )\n : defaultSwitches.outerHTML.bind(this, oldEl, newEl, options);\n\n switchesQueue.push(callback);\n },\n this\n );\n }, this);\n\n this.state.numPendingSwitches = switchesQueue.length;\n\n switchesQueue.forEach(function(queuedSwitch) {\n queuedSwitch();\n });\n};\n","var on = require(\"./events/on\");\n\nmodule.exports = {\n outerHTML: function(oldEl, newEl) {\n oldEl.outerHTML = newEl.outerHTML;\n this.onSwitch();\n },\n\n innerHTML: function(oldEl, newEl) {\n oldEl.innerHTML = newEl.innerHTML;\n\n if (newEl.className === \"\") {\n oldEl.removeAttribute(\"class\");\n } else {\n oldEl.className = newEl.className;\n }\n\n this.onSwitch();\n },\n\n switchElementsAlt: function(oldEl, newEl) {\n oldEl.innerHTML = newEl.innerHTML;\n\n // Copy attributes from the new element to the old one\n if (newEl.hasAttributes()) {\n var attrs = newEl.attributes;\n for (var i = 0; i < attrs.length; i++) {\n oldEl.attributes.setNamedItem(attrs[i].cloneNode());\n }\n }\n\n this.onSwitch();\n },\n\n // Equivalent to outerHTML(), but doesn't require switchElementsAlt() for and \n replaceNode: function(oldEl, newEl) {\n oldEl.parentNode.replaceChild(newEl, oldEl);\n this.onSwitch();\n },\n\n sideBySide: function(oldEl, newEl, options, switchOptions) {\n var forEach = Array.prototype.forEach;\n var elsToRemove = [];\n var elsToAdd = [];\n var fragToAppend = document.createDocumentFragment();\n var animationEventNames =\n \"animationend webkitAnimationEnd MSAnimationEnd oanimationend\";\n var animatedElsNumber = 0;\n var sexyAnimationEnd = function(e) {\n if (e.target !== e.currentTarget) {\n // end triggered by an animation on a child\n return;\n }\n\n animatedElsNumber--;\n if (animatedElsNumber <= 0 && elsToRemove) {\n elsToRemove.forEach(function(el) {\n // browsing quickly can make the el\n // already removed by last page update ?\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n });\n\n elsToAdd.forEach(function(el) {\n el.className = el.className.replace(\n el.getAttribute(\"data-pjax-classes\"),\n \"\"\n );\n el.removeAttribute(\"data-pjax-classes\");\n });\n\n elsToAdd = null; // free memory\n elsToRemove = null; // free memory\n\n // this is to trigger some repaint (example: picturefill)\n this.onSwitch();\n }\n }.bind(this);\n\n switchOptions = switchOptions || {};\n\n forEach.call(oldEl.childNodes, function(el) {\n elsToRemove.push(el);\n if (el.classList && !el.classList.contains(\"js-Pjax-remove\")) {\n // for fast switch, clean element that just have been added, & not cleaned yet.\n if (el.hasAttribute(\"data-pjax-classes\")) {\n el.className = el.className.replace(\n el.getAttribute(\"data-pjax-classes\"),\n \"\"\n );\n el.removeAttribute(\"data-pjax-classes\");\n }\n el.classList.add(\"js-Pjax-remove\");\n if (switchOptions.callbacks && switchOptions.callbacks.removeElement) {\n switchOptions.callbacks.removeElement(el);\n }\n if (switchOptions.classNames) {\n el.className +=\n \" \" +\n switchOptions.classNames.remove +\n \" \" +\n (options.backward\n ? switchOptions.classNames.backward\n : switchOptions.classNames.forward);\n }\n animatedElsNumber++;\n on(el, animationEventNames, sexyAnimationEnd, true);\n }\n });\n\n forEach.call(newEl.childNodes, function(el) {\n if (el.classList) {\n var addClasses = \"\";\n if (switchOptions.classNames) {\n addClasses =\n \" js-Pjax-add \" +\n switchOptions.classNames.add +\n \" \" +\n (options.backward\n ? switchOptions.classNames.forward\n : switchOptions.classNames.backward);\n }\n if (switchOptions.callbacks && switchOptions.callbacks.addElement) {\n switchOptions.callbacks.addElement(el);\n }\n el.className += addClasses;\n el.setAttribute(\"data-pjax-classes\", addClasses);\n elsToAdd.push(el);\n fragToAppend.appendChild(el);\n animatedElsNumber++;\n on(el, animationEventNames, sexyAnimationEnd, true);\n }\n });\n\n // pass all className of the parent\n oldEl.className = newEl.className;\n oldEl.appendChild(fragToAppend);\n }\n};\n","module.exports = (function() {\n var counter = 0;\n return function() {\n var id = \"pjax\" + new Date().getTime() + \"_\" + counter;\n counter++;\n return id;\n };\n})();\n","module.exports = function(obj) {\n /* istanbul ignore if */\n if (null === obj || \"object\" !== typeof obj) {\n return obj;\n }\n var copy = obj.constructor();\n for (var attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = obj[attr];\n }\n }\n return copy;\n};\n","module.exports = function contains(doc, selectors, el) {\n for (var i = 0; i < selectors.length; i++) {\n var selectedEls = doc.querySelectorAll(selectors[i]);\n for (var j = 0; j < selectedEls.length; j++) {\n if (selectedEls[j].contains(el)) {\n return true;\n }\n }\n }\n\n return false;\n};\n","module.exports = function(target) {\n if (target == null) {\n return null;\n }\n\n var to = Object(target);\n\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source != null) {\n for (var key in source) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n to[key] = source[key];\n }\n }\n }\n }\n return to;\n};\n","module.exports = function() {};\n","module.exports = function(uri, key, value) {\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n if (uri.match(re)) {\n return uri.replace(re, \"$1\" + key + \"=\" + value + \"$2\");\n } else {\n return uri + separator + key + \"=\" + value;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lazyload = void 0;\n/**\n * default option\n */\nconst defaults = {\n src: \"data-src\",\n srcset: \"data-srcset\",\n selector: \".lazyload\",\n root: null,\n rootMargin: \"0px\",\n threshold: 0\n};\n/**\n * @class LazyLoad\n */\nclass LazyLoad {\n constructor(images, options) {\n this.observer = null;\n this.settings = Object.assign(Object.assign({}, defaults), options);\n this.images = images || document.querySelectorAll(this.settings.selector);\n this.init();\n }\n init() {\n /* Without observers load everything and bail out early. */\n if (!IntersectionObserver) {\n this.loadImages();\n return;\n }\n const self = this;\n let observerConfig = {\n root: this.settings.root,\n rootMargin: this.settings.rootMargin,\n threshold: [this.settings.threshold]\n };\n this.observer = new IntersectionObserver(function (entries) {\n Array.prototype.forEach.call(entries, function (entry) {\n if (entry.isIntersecting) {\n self.observer.unobserve(entry.target);\n let src = entry.target.getAttribute(self.settings.src);\n let srcset = entry.target.getAttribute(self.settings.srcset);\n if (\"img\" === entry.target.tagName.toLowerCase()) {\n if (src) {\n entry.target.src = src;\n }\n if (srcset) {\n entry.target.srcset = srcset;\n }\n }\n else {\n entry.target.style.backgroundImage = \"url(\" + src + \")\";\n }\n }\n });\n }, observerConfig);\n this.images.forEach((image) => {\n self.observer.observe(image);\n });\n }\n loadAndDestroy() {\n if (!this.settings) {\n return;\n }\n this.loadImages();\n this.destroy();\n }\n loadImages() {\n if (!this.settings) {\n return;\n }\n const self = this;\n Array.prototype.forEach.call(this.images, function (image) {\n let src = image.getAttribute(self.settings.src);\n let srcset = image.getAttribute(self.settings.srcset);\n if (\"img\" === image.tagName.toLowerCase()) {\n if (src) {\n image.src = src;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n }\n else {\n image.style.backgroundImage = \"url('\" + src + \"')\";\n }\n });\n }\n /**\n * Destroy Lazyload Instance\n * @returns\n */\n destroy() {\n if (!this.settings) {\n return;\n }\n this.observer.disconnect();\n this.settings = null;\n }\n}\nexports.default = LazyLoad;\nconst lazyload = (images, options) => new LazyLoad(images, options);\nexports.lazyload = lazyload;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst AddComment = {\n respondId: '',\n moveForm: function (commId, parentId, respondId) {\n const t = this, comm = document.getElementById(commId), respond = document.getElementById(respondId), cancel = document.getElementById('cancel-comment-reply-link'), parent = document.getElementById('comment_parent');\n let div;\n //post = document.getElementById('comment_post_ID');\n t.respondId = respondId;\n if (!document.getElementById('wp-temp-form-div')) {\n div = document.createElement('div');\n div.id = 'wp-temp-form-div';\n div.style.display = 'none';\n respond.parentNode.insertBefore(div, respond);\n }\n if (!comm) {\n const temp = document.getElementById('wp-temp-form-div');\n document.getElementById('comment_parent').value = '0';\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n }\n else {\n comm.parentNode.insertBefore(respond, comm.nextSibling);\n }\n const _respond = document.getElementById(\"respond\");\n window.scrollTo({\n top: _respond.getBoundingClientRect().top + window.pageYOffset - _respond.clientTop - 100,\n behavior: \"smooth\"\n });\n parent.value = parentId;\n cancel.style.display = '';\n cancel.onclick = function (e) {\n var t = AddComment, temp = document.getElementById('wp-temp-form-div'), respond = document.getElementById(t.respondId);\n document.getElementById('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp);\n }\n this.style.display = 'none';\n this.onclick = null;\n return false;\n };\n try {\n document.getElementById('comment').focus();\n }\n catch (e) { }\n return false;\n },\n clearButterbar: function () {\n const butterBar = document.getElementsByClassName(\"butterBar\");\n if (butterBar.length > 0) {\n for (let i = 0; i < butterBar.length; i++) {\n butterBar[i].remove();\n }\n }\n },\n createButterbar: function (message, showtime) {\n const t = this;\n t.clearButterbar();\n document.body.insertAdjacentHTML('beforeend', '

' + message + '

');\n setTimeout(() => { t.clearButterbar(); }, showtime > 0 ? showtime : 6000);\n }\n};\nexports.default = AddComment;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(apiPath, params = {}, nonce = true) {\n const path = new URL(apiPath);\n const { searchParams } = path;\n for (const [key, value] of Object.entries(params)) {\n searchParams.set(key, value);\n }\n if (nonce)\n searchParams.set(\"_wpnonce\", Poi.nonce);\n return path.toString();\n}\nexports.default = default_1;\n","\"use strict\";\n/**\n * sakura-app.js L943-963\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst txt = [\n \"# 商业转载请联系作者获得授权,非商业转载请注明出处。\",\n \"# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.\",\n \"# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)\",\n \"# 作者(Author):\" + mashiro_option.author_name,\n \"# 链接(URL):\" + window.location.href,\n \"# 来源(Source):\" + mashiro_option.site_name,\n];\nfunction setClipboardText(event, selectionTxt) {\n event.preventDefault();\n const htmlData = txt.join('
') + \"

\" + selectionTxt.replace(/\\r\\n/g, \"
\"), textData = txt.join('\\n') + \"\\n\\n\" + selectionTxt.toString().replace(/\\r\\n/g, \"\\n\");\n if (event.clipboardData) {\n event.clipboardData.setData(\"text/html\", htmlData);\n event.clipboardData.setData(\"text/plain\", textData);\n }\n else if (window.clipboardData) {\n //deprecate?\n return window.clipboardData.setData(\"text\", textData);\n }\n}\nfunction copytext(e) {\n const selection = window.getSelection();\n if (selection) {\n const selectionText = selection.toString();\n if (selectionText.length > 30) {\n setClipboardText(e, selectionText);\n addComment.createButterbar(\"复制成功!
Copied to clipboard successfully!\", 1000);\n }\n }\n}\n/**\n * 添加复制时的版权提示\n */\nfunction add_copyright() {\n if (mashiro_option.clipboardCopyright) {\n document.body.removeEventListener(\"copy\", copytext);\n document.body.addEventListener(\"copy\", copytext);\n }\n}\nexports.default = add_copyright;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkDarkModeSetting = exports.ifDarkmodeShouldOn = exports.turnOffDarkMode = exports.turnOnDarkMode = exports.isInDarkMode = void 0;\nconst mediaQuery = window.matchMedia('(prefers-color-scheme:dark)');\nlet inDarkMode = false;\nconst isInDarkMode = () => inDarkMode;\nexports.isInDarkMode = isInDarkMode;\nfunction informDarkModeChange(nextValue) {\n console.log(\"夜间模式\" + (nextValue ? \"开启\" : \"关闭\"));\n if (nextValue !== inDarkMode) {\n document.dispatchEvent(new CustomEvent(\"darkmode\", { detail: nextValue }));\n inDarkMode = nextValue;\n }\n}\nfunction mediaQueryCallback() {\n const dark = localStorage.getItem(\"dark\");\n //仅在深色模式不是用户主动设置时触发\n if (!dark) {\n if (mediaQuery.matches && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nif (mashiro_option.dm_strategy === 'client') {\n mediaQuery.removeEventListener('change', mediaQueryCallback);\n mediaQuery.addEventListener('change', mediaQueryCallback);\n}\nfunction saveUserSetting(value) {\n if (value == ifDarkmodeShouldOn()) {\n //用户设置与自动切换深色模式判断一致时,恢复自动切换\n localStorage.removeItem('dark');\n }\n else {\n if (value == true) {\n localStorage.setItem(\"dark\", \"1\");\n }\n else {\n localStorage.setItem(\"dark\", \"0\");\n }\n }\n localStorage.setItem(\"bgImgSetting\", \"white-bg\");\n}\nfunction turnOnDarkMode(userTriggered) {\n document.documentElement.style.background = \"#333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333\";\n document.body.classList.add(\"dark\");\n if (userTriggered)\n saveUserSetting(true);\n informDarkModeChange(true);\n}\nexports.turnOnDarkMode = turnOnDarkMode;\nfunction turnOffDarkMode(userTriggered) {\n document.documentElement.style.background = \"unset\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"rgba(255, 255, 255, .8)\";\n document.body.classList.remove(\"dark\");\n document.body.classList.remove(\"dynamic\");\n informDarkModeChange(false);\n if (userTriggered) {\n saveUserSetting(false);\n document.body.style.backgroundImage = `url(${mashiro_option.skin_bg0})`;\n }\n}\nexports.turnOffDarkMode = turnOffDarkMode;\n/**\n * 检查是否在深色模式时间\n * @returns {boolean}\n */\nfunction checkTime() {\n const today = new Date();\n return (today.getHours() > 21 || today.getHours() < 7);\n}\nfunction ifDarkmodeShouldOn() {\n switch (mashiro_option.dm_strategy) {\n case 'time':\n return checkTime();\n case 'client':\n return mediaQuery.matches;\n case 'eien':\n return true;\n default:\n return checkTime();\n }\n}\nexports.ifDarkmodeShouldOn = ifDarkmodeShouldOn;\nfunction checkDarkModeSetting() {\n const dark = localStorage.getItem(\"dark\");\n if (!dark) {\n //无用户设置时,自动切换深色模式\n if (ifDarkmodeShouldOn() && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n else {\n if (dark == '1') {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nexports.checkDarkModeSetting = checkDarkModeSetting;\n/* function mobile_dark_light() {\n if (document.body.classList.contains(\"dark\")) {\n document.documentElement.style.background = \"unset\";\n document.body.classList.remove(\"dark\");\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n setCookie(\"dark\", \"0\", 0.33);\n } else {\n document.documentElement.style.background = \"#333333\";\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33);\n }\n} */ \n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst md5_1 = __importDefault(require(\"md5\"));\n/**\n * Gravatar\n * from a6cd66c 11.third-part-functions.js\n */\nconst get_gravatar = (email, size = 80) => 'https://' + Poi.gravatar_url + '/' + md5_1.default(email) + '.jpg?s=' + size + '&d=mm';\nexports.default = get_gravatar;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pjax = void 0;\nconst pjax_1 = __importDefault(require(\"pjax\"));\nconst pjax = Poi.pjax && new pjax_1.default({\n selectors: [\"#page\", \"title\", \".footer-device\"],\n //@ts-ignore\n elements: [\n \"a:not([target='_top']):not(.comment-reply-link):not(#pagination a):not(#comments-navi a):not(.user-menu-option a):not(.header-user-avatar a):not(.emoji-item):not(.no-pjax)\",\n \".search-form\",\n \".s-search\",\n ],\n timeout: 8000,\n history: true,\n cacheBust: false,\n});\nexports.pjax = pjax;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeCookie = exports.getCookie = exports.setCookie = void 0;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nfunction setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexports.setCookie = setCookie;\nfunction getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexports.getCookie = getCookie;\nfunction removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\nexports.removeCookie = removeCookie;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksakurairo_scripts\"] = self[\"webpackChunksakurairo_scripts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","function imgError(ele, type) {\n switch (type) {\n case 1:\n ele.src = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';\n break;\n case 2:\n ele.src = 'https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g';\n break;\n default:\n ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';\n }\n}\nfunction cmt_showPopup(ele) {\n let popup = ele.querySelector(\"#thePopup\");\n popup.classList.add(\"show\");\n ele.querySelector(\"input\").onblur = () => {\n popup.classList.remove(\"show\");\n }\n}\n/*视频feature*/\nfunction coverVideo() {\n let video = document.getElementById(\"coverVideo\"),\n btn = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n video.play();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('play:coverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('pause:coverVideo()');\n }\n}\n\nfunction killCoverVideo() {\n var video = document.getElementById(\"coverVideo\");\n var btn = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n //console.info('none:killCoverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch (e) { };\n //console.info('pause:killCoverVideo()');\n }\n}\nfunction mail_me() {\n var mail = \"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain;\n window.open(mail);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nconst motionEles = [\".bili\", \".menhera\", \".tieba\"];\nfunction motionSwitch(ele) {\n for (let i = 0; i < motionEles.length; i++) {\n document.querySelector(motionEles[i] + '-bar').classList.remove('on-hover');\n document.querySelector(motionEles[i] + '-container').style.display = 'none';\n }\n document.querySelector(ele + '-bar').classList.add(\"on-hover\");\n document.querySelector(ele + '-container').style.display = 'block';\n}\nimport get_gravatar from './get_gravatar'\nwindow.get_gravatar = get_gravatar\n\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.killCoverVideo = killCoverVideo\nwindow.mail_me = mail_me\nwindow.headertop_down = headertop_down\nwindow.motionSwitch = motionSwitch","/**\n * app.js - Client script bundle for Sakurairo, a WordPress theme.\n * @author bymoye\n * @author KotoriK\n * @license GPL-v2\n * Github Repository:\n * https://github.com/Fuukei/Sakurairo_Scripts\n * https://github.com/mirai-mamori/Sakurairo source from f7db3c5 \n * \n * modified from Mashiro's work.\n * *** original header ***\n * Sakura theme application bundle\n * @author Mashiro\n * @url https://2heng.xin\n * @date 2019.8.3\n * *** ***\n */\nimport buildAPI from './api'\nimport { setCookie, getCookie, } from '../../module/cookie'\nimport add_copyright from './copyright'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport NProgress from 'nprogress'\nimport { pjax } from './pjax';\nimport './global-func'\n(() => {\n const UA = navigator.userAgent,\n version_list = { Firefox: 84, Edg: 88, Chrome: 88, Opera: 74, Version: 9 };\n let reg;\n if (UA.indexOf('Chrome') != -1) {\n reg = /(Chrome)\\/(\\d+)/i;\n } else {\n reg = /(Firefox|Chrome|Version|Opera)\\/(\\d+)/i;\n }\n const version = UA.match(reg);\n Poi.pjax = version && (version[2] >= version_list[version[1]]) && Poi.pjax;\n if (document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') === 0)\n setCookie('su_webp', 1, 114514)\n})();\n\nmashiro_global.variables = new function () {\n this.has_hls = false;\n this.skinSecter = true;\n}\nmashiro_global.ini = new function () {\n this.normalize = function () { // initial functions when page first load (首次加载页面时的初始化函数)\n lazyload();\n post_list_show_animation();\n copy_code_block();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n scrollBar();\n load_bangumi();\n sm();\n }\n this.pjax = function () { // pjax reload functions (pjax 重载函数)\n pjaxInit();\n post_list_show_animation();\n copy_code_block();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n load_bangumi();\n sm();\n }\n}\n\n/**code highlight */\n\nconst code_highlight_style = (() => {\n function gen_top_bar(pre, code_a) {\n const attributes = {\n 'autocomplete': 'off',\n 'autocorrect': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false',\n 'contenteditable': 'false',\n 'design': 'by Mashiro'\n }\n if (!pre.children[0]) return\n const ele_name = pre.children[0].className\n let lang = ele_name.substr(0, ele_name.indexOf(\" \")).replace('language-', '')\n if (lang.toLowerCase() == \"hljs\") lang = code_a.className.replace('hljs', '') ? code_a.className.replace('hljs', '') : \"text\";\n pre.classList.add(\"highlight-wrap\");\n for (const t in attributes) {\n pre.setAttribute(t, attributes[t]);\n }\n code_a.setAttribute('data-rel', lang.toUpperCase());\n }\n async function importHighlightjs() {\n try {\n if (!window.hljs) {\n window.hljs = await import('highlight.js')\n await import('highlightjs-line-numbers.js')\n }\n } catch (e) { console.warn(e) }\n }\n async function hljs_process(pre, code) {\n try {\n await importHighlightjs()\n for (let i = 0; i < code.length; i++) {\n hljs.highlightBlock(code[i]);\n }\n for (let i = 0; i < pre.length; i++) {\n gen_top_bar(pre[i], code[i]);\n }\n hljs.initLineNumbersOnLoad();\n const ec = document.querySelector(\".entry-content\");\n ec && ec.addEventListener(\"click\", function (e) {\n //类型问题\n //可以考虑换成 ec\n if (!e.target.classList.contains(\"highlight-wrap\")) return;\n e.target.classList.toggle(\"code-block-fullscreen\");\n document.documentElement.classList.toggle('code-block-fullscreen-html-scroll');\n })\n } catch (e) {\n console.warn(e)\n }\n }\n const PrismBaseUrl = mashiro_option.code_highlight_prism?.autoload_path ?? 'https://cdn.jsdelivr.net/npm/prismjs@1.23.0/'\n let current_prism_css = undefined\n const themeCSS = (() => {\n const { light, dark } = mashiro_option.code_highlight_prism?.theme ?? {}\n const theme = {\n light: light ?? 'themes/prism.min.css',\n dark: dark ?? 'themes/prism-tomorrow.min.css',\n }\n for (const theme_name in theme) {\n theme[theme_name] = new URL(theme[theme_name], PrismBaseUrl).toString()\n }\n return theme\n })()\n function loadPrismCSS(darkmodeOn) {\n const nextCSS = darkmodeOn ? themeCSS.dark : themeCSS.light\n if (current_prism_css) {\n if (current_prism_css.href !== nextCSS) {\n const nextCSSElement = loadCSS(nextCSS)\n nextCSSElement.addEventListener('load', () => {\n current_prism_css.remove()\n current_prism_css = nextCSSElement\n })\n }\n } else {\n current_prism_css = loadCSS(nextCSS)\n }\n }\n async function importPrismJS() {\n try {\n if (!window.Prism) {\n const { default: Prism } = await import('prismjs')\n window.Prism = Prism\n }\n //必备插件全家桶\n await Promise.all([\n import('prismjs/plugins/autoloader/prism-autoloader'),\n import('prismjs/plugins/previewers/prism-previewers'),\n import('prismjs/plugins/toolbar/prism-toolbar')\n .then(() => import('prismjs/plugins/show-language/prism-show-language'))\n ])\n loadCSS(new URL('plugins/toolbar/prism-toolbar.min.css', PrismBaseUrl).toString())\n loadCSS(new URL('plugins/previewers/prism-previewers.min.css', PrismBaseUrl).toString())\n\n Prism.plugins.autoloader.languages_path = new URL('components/', PrismBaseUrl).toString()\n loadPrismCSS(isInDarkMode())\n document.addEventListener('darkmode', (e) => {\n loadPrismCSS(e.detail)\n })\n } catch (reason) {\n console.warn(reason)\n }\n }\n function loadPrismPluginLineNumbers() {\n loadCSS(new URL('plugins/line-numbers/prism-line-numbers.min.css', PrismBaseUrl).toString())\n return import('prismjs/plugins/line-numbers/prism-line-numbers')\n }\n /**\n * \n * @param {NodeListOf} code document.querySelectorAll(\"pre code\")\n */\n async function prism_process(code) {\n try {\n await importPrismJS()\n if (mashiro_option.code_highlight_prism.line_number_all) {\n document.querySelector('.entry-content').classList.add('line-numbers')\n await loadPrismPluginLineNumbers()\n }\n code.forEach(async ele => {\n if (ele.parentElement.classList.contains('line-numbers')) {\n await loadPrismPluginLineNumbers()\n }\n if (ele.classList.contains('match-braces')) {\n await import('prismjs/plugins/match-braces/prism-match-braces')\n loadCSS(new URL('plugins/match-braces/prism-match-braces.min.css', PrismBaseUrl).toString())\n }\n Prism.highlightElement(ele)\n })\n Prism.plugins.fileHighlight && Prism.plugins.fileHighlight.highlight()\n } catch (error) {\n console.warn(error)\n }\n }\n\n return async function code_highlight_style() {\n //hljs.requireLanguage('javascript',await import('highlight.js/lib/languages/javascript'))\n const pre = document.getElementsByTagName(\"pre\"),\n code = document.querySelectorAll(\"pre code\");\n if (!pre.length) return;\n switch (mashiro_option.code_highlight) {\n case 'hljs':\n return hljs_process(pre, code)\n case 'prism':\n return prism_process(code)\n case 'custom': return\n default:\n console.warn(`mashiro_option.code_highlight这咋填的是个${mashiro_option.code_highlight}啊🤔`)\n }\n }\n})()\n\nfunction slideToogle(el, duration = 1000, mode = '', callback) {\n let dom = el;\n dom.status = dom.status || getComputedStyle(dom, null)['display'];\n const flag = dom.status != 'none';\n if ((flag == true && mode == \"show\") || (flag == false && mode == \"hide\")) return;\n dom.status = flag ? 'none' : 'block';\n dom.style.transition = 'height ' + duration / 1000 + 's';\n dom.style.overflow = 'hidden';\n clearTimeout(dom.tagTimer);\n dom.tagTimer = dom.tagTimer || null;\n dom.style.display = 'block';\n dom.tagHeight = dom.tagHeight || dom.clientHeight + 'px';\n dom.style.display = '';\n dom.style.height = flag ? dom.tagHeight : \"0px\";\n setTimeout(() => {\n dom.style.height = flag ? \"0px\" : dom.tagHeight\n }, 0);\n dom.tagTimer = setTimeout(() => {\n dom.style.display = flag ? 'none' : 'block';\n dom.style.transition = '';\n dom.style.overflow = '';\n dom.style.height = '';\n dom.status = dom.tagHeight = null;\n }, duration);\n if (callback) callback();\n}\n\nfunction post_list_show_animation() {\n if (document.querySelector('article') && document.querySelector('article').classList.contains(\"post-list-thumb\")) {\n const options = {\n root: null,\n threshold: [0.66]\n },\n callback = (entries) => {\n entries.forEach((article) => {\n if (!window.IntersectionObserver) {\n article.target.style.willChange = 'auto';\n if (article.target.classList.contains(\"post-list-show\") === false) {\n article.target.classList.add(\"post-list-show\");\n }\n } else {\n if (article.target.classList.contains(\"post-list-show\")) {\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n } else {\n if (article.isIntersecting) {\n article.target.classList.add(\"post-list-show\");\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n }\n }\n }\n })\n },\n io = new IntersectionObserver(callback, options),\n articles = document.getElementsByClassName('post-list-thumb');\n for (let a = 0; a < articles.length; a++) {\n io.observe(articles[a]);\n }\n }\n}\nmashiro_global.font_control = new function () {\n const cbs = document.getElementsByClassName(\"control-btn-serif\")[0],\n cbss = document.getElementsByClassName(\"control-btn-sans-serif\")[0];\n this.change_font = function () {\n if (document.body.classList.contains(\"serif\")) {\n document.body.classList.remove(\"serif\");\n cbs && cbs.classList.remove(\"selected\");\n cbss && cbss.classList.remove(\"selected\");\n setCookie(\"font_family\", \"sans-serif\", 30);\n } else {\n document.body.classList.add(\"serif\");\n cbs && cbs.classList.add(\"selected\");\n cbss && cbss.classList.remove(\"selected\");\n setCookie(\"font_family\", \"serif\", 30);\n if (document.body.clientWidth <= 860) {\n addComment.createButterbar(\"将从网络加载字体,流量请注意\");\n }\n }\n }\n this.ini = function () {\n if (document.body.clientWidth > 860) {\n if (!getCookie(\"font_family\") || getCookie(\"font_family\") == \"serif\")\n document.body.classList.add(\"serif\");\n }\n if (getCookie(\"font_family\") == \"sans-serif\") {\n document.body.classList.remove(\"sans-serif\");\n cbs && cbs.classList.remove(\"selected\");\n cbss && cbss.classList.add(\"selected\");\n }\n }\n}\nmashiro_global.font_control.ini();\n\ncode_highlight_style();\n\nconst ready = function (fn) {\n if (document.readyState === 'complete') {\n return fn();\n }\n document.addEventListener('DOMContentLoaded', fn, false);\n};\n/**\n * 上传图片提示\n */\nfunction attach_image() {\n let cached = document.getElementsByClassName(\"insert-image-tips\")[0],\n upload_img = document.getElementById('upload-img-file');\n if (!upload_img) return;\n upload_img.addEventListener(\"change\", (function () {\n if (this.files.length > 10) {\n addComment.createButterbar(\"每次上传上限为10张.
10 files max per request.\");\n return 0;\n }\n for (let i = 0; i < this.files.length; i++) {\n if (this.files[i].size >= 5242880) {\n alert('图片上传大小限制为5 MB.\\n5 MB max per file.\\n\\n「' + this.files[i].name + '」\\n\\n这张图太大啦~请重新上传噢!\\nThis image is too large~Please reupload!');\n return;\n }\n }\n for (let i = 0; i < this.files.length; i++) {\n let f = this.files[i],\n formData = new FormData(),\n xhr = new XMLHttpRequest();\n formData.append('cmt_img_file', f);\n xhr.addEventListener('loadstart', function () {\n cached.innerHTML = '';\n addComment.createButterbar(\"上传中...
Uploading...\");\n });\n xhr.open(\"POST\", buildAPI(Poi.api + 'sakura/v1/image/upload'), true);\n xhr.send(formData);\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {\n cached.innerHTML = '';\n setTimeout(function () {\n cached.innerHTML = '';\n }, 1000);\n let res = JSON.parse(xhr.responseText);\n if (res.status == 200) {\n let get_the_url = res.proxy;\n document.getElementById(\"upload-img-show\").insertAdjacentHTML('afterend', '');\n lazyload();\n addComment.createButterbar(\"图片上传成功~
Uploaded successfully~\");\n grin(get_the_url, type = 'Img');\n } else {\n addComment.createButterbar(\"上传失败!
Uploaded failed!
文件名/Filename: \" + f.name + \"
code: \" + res.status + \"
\" + res.message, 3000);\n }\n } else if (xhr.readyState == 4) {\n cached.innerHTML = '';\n alert(\"上传失败,请重试.\\nUpload failed, please try again.\");\n setTimeout(function () {\n cached.innerHTML = '';\n }, 1000);\n }\n }\n };\n }));\n}\n\n\nfunction clean_upload_images() {\n document.getElementById(\"upload-img-show\").innerHTML = '';\n}\n/**\n * 添加上传图片的提示\n */\nfunction add_upload_tips() {\n const form_submit = document.querySelector('.form-submit #submit');\n if (form_submit == null) return;\n if (!mashiro_option.comment_upload_img) {\n form_submit.style.width = '100%'\n return\n }\n form_submit.insertAdjacentHTML('afterend', '
上传图片
');\n attach_image();\n\n const file_submit = document.getElementById('upload-img-file'),\n hover = document.getElementsByClassName('insert-image-tips')[0],\n Tip = document.getElementById('uploadTipPopup');\n if (!file_submit) return;\n file_submit.addEventListener(\"mouseenter\", function () {\n hover.classList.toggle('insert-image-tips-hover');\n Tip.classList.toggle('show');\n });\n file_submit.addEventListener(\"mouseleave\", function () {\n hover.classList.toggle('insert-image-tips-hover');\n Tip.classList.toggle('show');\n });\n}\n\nfunction click_to_view_image() {\n const comment_inline = document.getElementsByClassName('comment_inline_img');\n if (!comment_inline.length) return;\n document.getElementsByClassName(\"comments-main\")[0].addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"comment_inline_img\")) {\n window.open(e.target.src);\n }\n })\n}\nclick_to_view_image();\n\n\nfunction original_emoji_click() {\n const emoji = document.getElementsByClassName('emoji-item');\n if (!emoji.length) return;\n document.querySelector(\".menhera-container\").addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"emoji-item\")) {\n grin(e.target.innerText, \"custom\", \"`\", \"` \");\n }\n })\n}\noriginal_emoji_click();\n\nfunction scrollBar() {\n if (document.body.clientWidth > 860) {\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || document.body.scrollTop,\n a = document.documentElement.scrollHeight || document.body.scrollHeight,\n b = window.innerHeight, c,\n result = parseInt(s / (a - b) * 100),\n cached = document.getElementById('bar');\n cached.style.width = result + \"%\";\n switch (true) {\n case (result <= 19): c = '#cccccc'; break;\n case (result <= 39): c = '#50bcb6'; break;\n case (result <= 59): c = '#85c440'; break;\n case (result <= 79): c = '#f2b63c'; break;\n case (result <= 99): c = '#FF0000'; break;\n case (result == 100): c = '#5aaadb'; break;\n default: c = \"orange\";\n }\n cached.style.background = c;\n let f = document.querySelector(\".toc-container\"),\n sc = document.querySelector(\".site-content\"),\n skinMenu = document.querySelector(\".skin-menu\");\n if (f && sc) {\n f.style.height = sc.getBoundingClientRect(outerHeight)[\"height\"] + \"px\";\n }\n skinMenu && skinMenu.classList.remove(\"show\");\n })\n }\n}\n\nfunction checkSkinSecter() {\n if (mashiro_global.variables.skinSecter === false) {\n const pattern = document.querySelector(\".pattern-center\"),\n headertop = document.querySelector(\".headertop-bar\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center\");\n pattern.classList.add(\"pattern-center-sakura\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar\");\n headertop.classList.add(\"headertop-bar-sakura\");\n }\n } else {\n const pattern = document.querySelector(\".pattern-center-sakura\"),\n headertop = document.querySelector(\".headertop-bar-sakura\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center-sakura\");\n pattern.classList.add(\"pattern-center\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar-sakura\");\n headertop.classList.add(\"headertop-bar\");\n }\n }\n}\nimport { checkDarkModeSetting, turnOnDarkMode, turnOffDarkMode, isInDarkMode } from './darkmode'\nfunction no_right_click() {\n const pri = document.getElementById(\"primary\");\n if (pri) pri.addEventListener(\"contextmenu\", function (e) {\n if (e.target.nodeName.toLowerCase() == \"img\") {\n e.preventDefault();\n e.stopPropagation();\n }\n })\n}\n\nno_right_click();\nfunction changeCoverBG() {\n const centerbg = document.querySelector(\".centerbg\")\n if (centerbg) {\n const type_mobile = document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true\n const cover_api = new URL(mashiro_option.cover_api)\n if (type_mobile) cover_api.searchParams.set('type', 'mobile')\n centerbg.style.backgroundImage = \"url(\" + cover_api.toString() + \")\";\n }\n}\nfunction changeBG(bgid) {\n //@sideeffect\n mashiro_global.variables.skinSecter = bgid == \"white-bg\" || bgid == \"dark-bg\";\n checkSkinSecter();\n\n let bg_url;\n switch (bgid) {\n /* case \"white-bg\":\n temp = mashiro_option.skin_bg0;\n document.body.classList.remove(\"dynamic\");\n break; */\n case \"diy1-bg\":\n bg_url = mashiro_option.skin_bg1;\n break;\n case \"diy2-bg\":\n bg_url = mashiro_option.skin_bg2;\n break;\n case \"diy3-bg\":\n bg_url = mashiro_option.skin_bg3;\n break;\n case \"diy4-bg\":\n bg_url = mashiro_option.skin_bg4;\n break;\n }\n document.body.style.backgroundImage = bg_url ? `url(${bg_url})` : '';\n}\nready(function () {\n changeCoverBG();\n //let checkskin_bg = (a) => a == \"none\" ? \"\" : a;\n\n function addChangeBackgroundListener() {\n const cached = document.querySelectorAll(\".menu-list li\");\n cached.forEach(e => {\n e.addEventListener(\"click\", function () {\n const tagid = this.id;\n if (tagid == \"dark-bg\") {\n /* document.documentElement.style.background = \"#333333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333333\";\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33); */\n turnOnDarkMode(true)\n } else if (tagid == \"white-bg\") {\n turnOffDarkMode(true)\n } else {\n turnOffDarkMode(true)\n changeBG(tagid)\n localStorage.setItem(\"bgImgSetting\", tagid)\n }\n closeSkinMenu();\n });\n });\n }\n addChangeBackgroundListener();\n function checkBgImgCookie() {\n const bgurl = localStorage.getItem(\"bgImgSetting\");\n if (bgurl) {\n changeBG(bgurl);\n }\n }\n checkBgImgCookie()\n setTimeout(function () {\n checkDarkModeSetting();\n }, 100);\n\n function closeSkinMenu() {\n document.querySelector(\".skin-menu\").classList.remove(\"show\");\n setTimeout(function () {\n if (document.querySelector(\".changeSkin-gear\") != null) {\n document.querySelector(\".changeSkin-gear\").style.visibility = \"visible\";\n }\n }, 300);\n }\n let changskin = document.querySelector(\"#changskin\"),\n close_SkinMenu = document.querySelector(\".skin-menu #close-skinMenu\");\n changskin && changskin.addEventListener(\"click\", function () {\n document.querySelector(\".skin-menu\").classList.toggle(\"show\");\n })\n close_SkinMenu && close_SkinMenu.addEventListener(\"click\", function () {\n closeSkinMenu();\n })\n add_upload_tips();\n});\nlet bgn = 1;\nfunction setBG() {\n const cover_api_url = new URL(mashiro_option.cover_api)\n if (document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true) {\n cover_api_url.searchParams.set('type', 'mobile')\n document.querySelector(\".centerbg\").style.backgroundImage = \"url(\" + cover_api_url.toString() + \"&\" + bgn + \")\";\n } else {\n document.querySelector(\".centerbg\").style.backgroundImage = \"url(\" + cover_api_url.toString() + (cover_api_url.search === '' ? \"?\" : '&') + bgn + \")\";\n }\n}\nfunction nextBG() {\n setBG()\n bgn++;\n}\n\nfunction preBG() {\n bgn--;\n setBG()\n}\nfunction bgButtonAddListener() {\n const next = document.getElementById(\"bg-next\"),\n pre = document.getElementById(\"bg-pre\");\n if (next) { next.onclick = () => { nextBG() } };\n if (pre) { pre.onclick = () => { preBG() } };\n}\nready(bgButtonAddListener);\n\nfunction topFunction() {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n}\n\nfunction timeSeriesReload(flag) {\n let archives = document.getElementById('archives');\n if (archives == null) return;\n let al_li = archives.getElementsByClassName('al_mon');\n if (flag == true) {\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToogle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n lazyload();\n } else {\n (function () {\n let al_expand_collapse = document.getElementById('al_expand_collapse');\n al_expand_collapse.style.cursor = \"s-resize\";\n for (let i = 0; i < al_li.length; i++) {\n let a = al_li[i],\n num = a.nextElementSibling.getElementsByTagName('li').length;\n a.style.cursor = \"s-resize\";\n a.querySelector('#post-num').textContent = num;\n }\n let al_post_list = archives.getElementsByClassName(\"al_post_list\"),\n al_post_list_f = al_post_list[0];\n for (let i = 0; i < al_post_list.length; i++) {\n slideToogle(al_post_list[i], 500, 'hide', function () {\n slideToogle(al_post_list_f, 500, 'show');\n })\n }\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToogle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n if (document.body.clientWidth > 860) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToogle(el, 500, 'show');\n return false;\n })\n }\n if (false) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToogle(el, 500, 'hide');\n return false;\n })\n }\n }\n let al_expand_collapse_click = 0;\n al_expand_collapse.addEventListener('click', function () {\n if (al_expand_collapse_click == 0) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToogle(el, 500, 'show');\n };\n al_expand_collapse_click++;\n } else if (al_expand_collapse_click == 1) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToogle(el, 500, 'hide');\n };\n al_expand_collapse_click--;\n }\n });\n }\n })();\n }\n}\n\ntimeSeriesReload();\n\nfunction loadHls() {\n const video = document.getElementById('coverVideo'),\n video_src = document.getElementById(\"coverVideo\").getAttribute(\"data-src\");\n if (Hls.isSupported()) {\n const hls = new Hls();\n hls.loadSource(video_src);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\n video.play();\n });\n } else if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = video_src;\n video.addEventListener('loadedmetadata', function () {\n video.play();\n });\n }\n}\n/* function loadJS(url, callback) {\n let script = document.createElement(\"script\"),\n fn = callback || function () { };\n script.type = \"text/javascript\";\n script.onload = function () {\n fn();\n };\n script.src = url;\n document.head.appendChild(script);\n} */\n\nfunction coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (mashiro_global.variables.has_hls) {\n loadHls();\n } else {\n /* //不保证可用 需测试\n loadJS(\"https://cdn.jsdelivr.net/gh/mashirozx/Sakura@3.3.3/cdn/js/src/16.hls.js\", function () {\n loadHls();\n mashiro_global.variables.has_hls = true;\n }) */\n import('hls.js')\n .then(hls => {\n //export to GLOBAL\n window.Hls = hls.default\n loadHls();\n mashiro_global.variables.has_hls = true;\n })\n .catch(reason => console.warn('Hls load failed: ', reason))\n }\n }\n}\n\nfunction copy_code_block() {\n const ele = document.querySelectorAll(\"pre code\");\n for (let j = 0; j < ele.length; j++) {\n ele[j].setAttribute('id', 'code-block-' + j);\n ele[j].insertAdjacentHTML('afterend', '
');\n };\n import('clipboard').then(({ default: ClipboardJS }) => {\n new ClipboardJS('.copy-code');\n })\n}\n\n\nfunction tableOfContentScroll(flag) {\n if (document.body.clientWidth <= 1200) {\n return;\n } else if (!document.querySelector(\"div.have-toc\") && !document.querySelector(\"div.has-toc\")) {\n let ele = document.getElementsByClassName(\"toc-container\")[0];\n if (ele) {\n ele.remove();\n ele = null;\n }\n } else {\n if (flag) {\n let id = 1,\n heading_fix = mashiro_option.entry_content_theme == \"sakura\" ? (document.querySelector(\"article.type-post\") ? (document.querySelector(\"div.pattern-attachment-img\") ? -75 : 200) : 375) : window.innerHeight / 2;\n let _els = document.querySelectorAll('.entry-content,.links');\n for (let i = 0; i < _els.length; i++) {\n let _el = _els[i].querySelectorAll('h1,h2,h3,h4,h5');\n for (let j = 0; j < _el.length; j++) {\n _el[j].id = \"toc-head-\" + id;\n id++;\n }\n }\n import('tocbot').then(({ default: tocbot }) => {\n tocbot.init({\n tocSelector: '.toc',\n contentSelector: ['.entry-content', '.links'],\n headingSelector: 'h1, h2, h3, h4, h5',\n headingsOffset: heading_fix - window.innerHeight / 2,\n });\n })\n }\n }\n}\ntableOfContentScroll(true);\nconst pjaxInit = function () {\n add_upload_tips();\n no_right_click();\n click_to_view_image();\n original_emoji_click();\n mashiro_global.font_control.ini();\n let _p = document.getElementsByTagName(\"p\");\n for (let i = 0; i < _p.length; i++) {\n _p[i].classList.remove(\"head-copyright\");\n }\n try {\n code_highlight_style();\n } catch (e) {\n console.warn(e)\n };\n try {\n getqqinfo();\n } catch (e) {\n console.warn(e)\n };\n lazyload();\n let _div = document.getElementsByTagName(\"div\"),\n tla = document.getElementById(\"to-load-aplayer\");\n tla && tla.addEventListener(\"click\", () => {\n try {\n reloadHermit();\n } catch (e) { };\n for (let i = 0; i < _div.length; i++) {\n _div[i].classList.remove(\"load-aplayer\");\n }\n });\n for (let i = 0; i < _div.length; i++) {\n if (_div[i].classList.contains(\"aplayer\")) {\n try {\n reloadHermit();\n } catch { };\n }\n }\n let iconflat = document.getElementsByClassName(\"iconflat\");\n if (iconflat.length != 0) {\n iconflat[0].style.width = '50px';\n iconflat[0].style.height = '50px';\n }\n let openNav = document.getElementsByClassName(\"openNav\");\n if (openNav.length != 0) {\n openNav[0].style.height = '50px';\n }\n bgButtonAddListener()\n smileBoxToggle();\n timeSeriesReload();\n add_copyright();\n tableOfContentScroll(true);\n}\n\nfunction sm() {\n let sm = document.getElementsByClassName('sm'),\n cm = document.querySelector(\".comments-main\");\n if (!sm.length) return;\n if (Poi.reply_link_version == 'new') {\n if (cm) cm.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"comment-reply-link\")) {\n e.preventDefault();\n e.stopPropagation();\n let data_commentid = e.target.getAttribute(\"data-commentid\");\n addComment.moveForm(\"comment-\" + data_commentid, data_commentid, \"respond\", this.getAttribute(\"data-postid\"));\n }\n })\n }\n cm && cm.addEventListener(\"click\", (e) => {\n let list = e.target.parentNode;\n if (list.classList.contains(\"sm\")) {\n let msg = \"您真的要设为私密吗?\";\n if (confirm(msg) == true) {\n if (list.classList.contains('private_now')) {\n alert('您之前已设过私密评论');\n return false;\n } else {\n list.classList.add('private_now');\n let idp = list.getAttribute(\"data-idp\"),\n actionp = list.getAttribute(\"data-actionp\"),\n rateHolderp = list.getElementsByClassName('has_set_private')[0];\n let ajax_data = \"action=siren_private&p_id=\" + idp + \"&p_action=\" + actionp;\n let request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (this.readyState == 4 && this.status == 200) {\n rateHolderp.innerHTML = request.responseText;\n }\n };\n request.open('POST', '/wp-admin/admin-ajax.php', true);\n request.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n request.send(ajax_data);\n return false;\n }\n } else {\n alert(\"已取消\");\n }\n }\n })\n}\n\nlet comt = document.getElementsByClassName(\"comt-addsmilies\");\nif (comt.length > 0) {\n Array.from(comt, (e) => {\n e.addEventListener(\"click\", () => {\n if (e.stlye.display == \"block\") {\n e.style.display = \"none\";\n } else {\n e.style.display = \"block\";\n }\n })\n })\n}\nlet comta = document.querySelectorAll(\".comt-smilies a\");\ncomta.forEach((e) => {\n e.addEventListener(\"click\", () => {\n e.parentNode.style.display = \"none\";\n })\n})\nfunction smileBoxToggle() {\n let et = document.getElementById(\"emotion-toggle\");\n et && et.addEventListener('click', function () {\n document.querySelector('.emotion-toggle-off').classList.toggle(\"emotion-hide\");\n document.querySelector('.emotion-toggle-on').classList.toggle(\"emotion-show\");\n document.querySelector('.emotion-box').classList.toggle(\"emotion-box-show\");\n })\n}\nsmileBoxToggle();\n\nfunction grin(tag, type, before, after) {\n let myField;\n switch (type) {\n case \"custom\": tag = before + tag + after; break;\n case \"Img\": tag = '[img]' + tag + '[/img]'; break;\n case \"Math\": tag = ' {{' + tag + '}} '; break;\n case \"tieba\": tag = ' ::' + tag + ':: '; break;\n default: tag = ' :' + tag + ': ';\n }\n if (document.getElementById('comment') && document.getElementById('comment').type == 'textarea') {\n myField = document.getElementById('comment');\n } else {\n return false;\n }\n if (document.selection) {\n myField.focus();\n sel = document.selection.createRange();\n sel.text = tag;\n myField.focus();\n } else if (myField.selectionStart || myField.selectionStart == '0') {\n let startPos = myField.selectionStart,\n endPos = myField.selectionEnd,\n cursorPos = endPos;\n myField.value = myField.value.substring(0, startPos) + tag + myField.value.substring(endPos, myField.value.length);\n cursorPos += tag.length;\n myField.focus();\n myField.selectionStart = cursorPos;\n myField.selectionEnd = cursorPos;\n } else {\n myField.value += tag;\n myField.focus();\n }\n}\nadd_copyright()\nready(() => {\n getqqinfo();\n});\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./AplayerInit').then(({ aplayerInit }) => aplayerInit())\n /* const { aplayerInit } = require('./AplayerInit')\n aplayerInit() */\n }\n}\n\nfunction getqqinfo() {\n let is_get_by_qq = false;\n const i_author = document.querySelector(\"input#author\"),\n i_qq = document.querySelector(\"input#qq\"),\n i_email = document.querySelector(\"input#email\"),\n i_url = document.querySelector(\"input#url\"),\n qq_check = document.querySelector(\".qq-check\"),\n gravatar_check = document.querySelector(\".gravatar-check\"),\n user_avatar_img = document.querySelector(\"div.comment-user-avatar img\");\n if (i_author == null) return;\n if (!localStorage.getItem('user_qq') && !localStorage.getItem('user_qq_email') && !localStorage.getItem('user_author')) {\n i_qq.value = i_author.value = i_email.value = i_url.value = \"\";\n }\n if (localStorage.getItem('user_avatar') && localStorage.getItem('user_qq') && localStorage.getItem('user_qq_email')) {\n user_avatar_img.setAttribute('src', localStorage.getItem('user_avatar'));\n i_author.value = localStorage.getItem('user_author');\n i_email.value = localStorage.getItem('user_qq') + '@qq.com';\n i_qq.value = localStorage.getItem('user_qq');\n if (mashiro_option.qzone_autocomplete) {\n i_url.value = 'https://user.qzone.qq.com/' + localStorage.getItem('user_qq');\n }\n if (i_qq.value) {\n qq_check.style.display = \"block\";\n gravatar_check.style.display = \"none\";\n }\n }\n let emailAddressFlag = i_email.value;\n //var emailAddressFlag = cached.filter('#email').val();\n i_author.addEventListener('blur', () => {\n // })\n //cached.filter('#author').on('blur', function () {\n const qq = i_author.value,\n reg_QQ = /^[1-9]\\d{4,9}$/;\n if (reg_QQ.test(qq)) {\n const whileFailed = () => {\n i_qq.value = '';\n qq_check.style.display = 'none';\n gravatar_check.style.display = 'block';\n user_avatar_img.setAttribute('src', get_gravatar(i_email.value, 80));\n localStorage.setItem('user_qq', '');\n localStorage.setItem('user_email', i_email.value);\n localStorage.setItem('user_avatar', get_gravatar(i_email.value, 80));\n /***/\n /* qq.value = email.value = url.value = \"\";\n if (!qq.value) {\n qq_check.style.display = 'none';\n gravatar_check.style.display = 'block';\n setCookie('user_qq', '', 30);\n user_avatar_img.setAttribute('src', get_gravatar(email.value, 80));\n setCookie('user_avatar', get_gravatar(email.value, 80), 30);\n } */\n }\n fetch(buildAPI(mashiro_option.qq_api_url, { qq: qq }))\n .then(async resp => {\n if (resp.ok) {\n //success\n try {\n const data = await resp.json()\n i_author.value = data.name;\n i_email.value = qq.trim() + '@qq.com';\n if (mashiro_option.qzone_autocomplete) {\n i_url.value = 'https://user.qzone.qq.com/' + qq.trim();\n }\n user_avatar_img.setAttribute('src', 'https://q2.qlogo.cn/headimg_dl?dst_uin=' + qq + '&spec=100');\n is_get_by_qq = true;\n i_qq.value = qq.trim();\n if (i_qq.value) {\n qq_check.style.display = 'block';\n gravatar_check.style.display = 'none';\n }\n localStorage.setItem('user_author', data.name);\n localStorage.setItem('user_qq', qq);\n localStorage.setItem('is_user_qq', 'yes');\n localStorage.setItem('user_qq_email', qq + '@qq.com');\n localStorage.setItem('user_email', qq + '@qq.com');\n emailAddressFlag = i_email.value;\n /***/\n user_avatar_img.setAttribute('src', data.avatar);\n localStorage.setItem('user_avatar', data.avatar);\n } catch (e) {\n console.warn(e)\n whileFailed()\n }\n } else {\n whileFailed()\n }\n })\n }\n });\n if (localStorage.getItem('user_avatar') && localStorage.getItem('user_email') && localStorage.getItem('is_user_qq') == 'no' && !localStorage.getItem('user_qq_email')) {\n user_avatar_img.setAttribute(\"src\", localStorage.getItem('user_avatar'));\n i_email.value = localStorage.getItem('user_mail');\n i_qq.value = '';\n if (!i_qq.value) {\n qq_check.style.display = \"none\";\n gravatar_check.style.display = \"block\";\n }\n // $('div.comment-user-avatar img').attr('src', getCookie('user_avatar'));\n // cached.filter('#email').val(getCookie('user_email'));\n // cached.filter('#qq').val('');\n // if (!cached.filter('#qq').val()) {\n // $('.qq-check').css('display', 'none');\n // $('.gravatar-check').css('display', 'block');\n // }\n }\n i_email.addEventListener(\"blur\", function () {\n //cached.filter('#email').on('blur', function () {\n let emailAddress = i_email.value;\n // var emailAddress = cached.filter('#email').val();\n if ((is_get_by_qq == false || emailAddressFlag != emailAddress) && emailAddress != '') {\n user_avatar_img.setAttribute(\"src\", get_gravatar(emailAddress, 80));\n //$('div.comment-user-avatar img').attr('src', get_gravatar(emailAddress, 80));\n localStorage.setItem('user_avatar', get_gravatar(emailAddress, 80));\n localStorage.setItem('user_email', emailAddress);\n localStorage.setItem('user_qq_email', '');\n localStorage.setItem('is_user_qq', 'no');\n i_qq.value = '';\n // cached.filter('#qq').val('');\n if (!i_qq.value) {\n qq_check.style.display = \"none\";\n gravatar_check.style.display = \"block\";\n // $('.qq-check').css('display', 'none');\n // $('.gravatar-check').css('display', 'block');\n }\n }\n });\n if (localStorage.getItem('user_url')) {\n i_url.value = localStorage.getItem(\"user_url\");\n // cached.filter('#url').val(getCookie('user_url'));\n }\n i_url.addEventListener(\"blur\", function () {\n //cached.filter('#url').on('blur', function () {\n let URL_Address = i_url.value;\n i_url.value = URL_Address;\n // var URL_Address = cached.filter('#url').val();\n // cached.filter('#url').val(URL_Address);\n localStorage.setItem('user_url', URL_Address);\n });\n if (localStorage.getItem('user_author')) {\n i_author.value = localStorage.getItem('user_author');\n // cached.filter('#author').val(getCookie('user_author'));\n }\n i_author.addEventListener(\"blur\", function () {\n // cached.filter('#author').on('blur', function () {\n let user_name = i_author.value;\n i_author.value = user_name;\n // var user_name = cached.filter('#author').val();\n // cached.filter('#author').val(user_name);\n localStorage.setItem('user_author', user_name);\n });\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\nfunction load_bangumi() {\n const sections = document.getElementsByTagName(\"section\")\n let _flag = false;\n for (let i = 0; i < sections.length; i++) {\n if (sections[i].classList.contains(\"bangumi\")) {\n _flag = true;\n break\n }\n }\n if (_flag) {\n document.addEventListener('click', function (e) {\n const target = e.target;\n if (target === document.querySelector(\"#bangumi-pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n target.classList.add(\"loading\");\n target.textContent = \"\";\n const xhr = new XMLHttpRequest();\n xhr.open('POST', target.href + \"&_wpnonce=\" + Poi.nonce, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n let html = JSON.parse(xhr.responseText),\n bfan = document.getElementById(\"bangumi-pagination\"),\n row = document.getElementsByClassName(\"row\")[0];\n bfan.remove();\n row.insertAdjacentHTML('beforeend', html);\n } else {\n target.classList.remove(\"loading\");\n target.innerHTML = ' ERROR ';\n }\n };\n xhr.send();\n }\n });\n }\n}\n\n\nmashiro_global.ini.normalize();\nloadCSS(mashiro_option.jsdelivr_css_src);\nloadCSS(mashiro_option.entry_content_style_src);\nloadCSS(\"https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css\");\n\nimport POWERMODE from 'activate-power-mode'\nfunction article_attach() {\n //收缩、展开\n /* jQuery(document).ready(\n function(jQuery){\n jQuery('.collapseButton').click(function(){\n jQuery(this).parent().parent().find('.xContent').slideToggle('slow');\n });\n }) */\n const collapseButton = document.getElementsByClassName('collapseButton')\n if (collapseButton.length > 0) {\n const collapseListener = (e) => {\n slideToogle(e.target.parentNode.parentNode.parentNode.querySelector(\".xContent\"));\n // e.parentNode.parentNode.querySelector(\".xContent\")\n }\n for (const ele of collapseButton) {\n ele.addEventListener(\"click\", collapseListener)\n }\n // import('jquery').then(({ default: jQuery }) => {\n // jQuery('.collapseButton').on(\"click\", function () {\n // jQuery(this).parent().parent().find('.xContent').slideToggle('slow');\n // })\n // })\n }\n //init lightbox\n if (mashiro_option.baguetteBoxON) {\n loadCSS('https://cdn.jsdelivr.net/npm/baguettebox.js@1.11.1/dist/baguetteBox.min.css')\n import('baguettebox.js').then(({ default: baguetteBox }) => {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n })\n } else if (mashiro_option.fancybox) {\n loadCSS('https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css')\n import('jquery').then((jQuery) => {\n window.jQuery = jQuery.default\n window.$ = jQuery.default\n import('@fancyapps/fancybox')\n })\n }\n}\nvar // s = $('#bgvideo')[0],\n s = document.getElementById(\"bgvideo\"),\n Siren = {\n MN: function () {\n let iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", function () {\n document.body.classList.toggle(\"navOpen\");\n document.getElementById(\"main-container\").classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n });\n },\n MNH: function () {\n if (document.body.classList.contains(\"navOpen\")) {\n document.body.classList.toggle(\"navOpen\");\n document.getElementById(\"main-container\").classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n }\n },\n splay: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-pause\");\n video_btn.classList.remove(\"video-play\");\n }\n try {\n video_btn.style.display = \"\";\n document.querySelector(\".video-stu\").style.bottom = \"-100px\";\n document.querySelector(\".focusinfo\").style.top = \"-999px\";\n } catch { }\n try {\n for (let i = 0; i < ap.length; i++) {\n try {\n ap[i].destroy()\n } catch { }\n }\n } catch { }\n try {\n hermitInit()\n } catch { }\n s.play();\n },\n spause: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n } catch { }\n s.pause();\n },\n liveplay: function () {\n if (s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n Siren.splay();\n }\n }\n },\n livepause: function () {\n if (s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n Siren.spause();\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.style.bottom = \"0px\";\n video_stu.innerHTML = \"已暂停 ...\";\n }\n },\n addsource: function () {\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n let t = Poi.movies.name.split(\",\"),\n _t = t[Math.floor(Math.random() * t.length)],\n bgvideo = document.getElementById(\"bgvideo\");\n bgvideo.setAttribute(\"src\", Poi.movies.url + '/' + _t + '.mp4');\n bgvideo.setAttribute(\"video-name\", _t);\n },\n LV: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n Siren.addsource();\n s.oncanplay = function () {\n Siren.splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n }\n } else {\n if (this.classList.contains(\"video-pause\")) {\n Siren.spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n } else {\n Siren.splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n s.onended = function () {\n s.setAttribute(\"src\", \"\");\n document.getElementById(\"video-add\").style.display = \"none\";\n video_btn && video_btn.classList.add(\"loadvideo\");\n video_btn && video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n });\n const video_add = document.getElementById(\"video-add\")\n if (video_add) video_add.addEventListener(\"click\", function () {\n Siren.addsource();\n });\n },\n AH: function () {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n },\n PE: function () {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == 'open') Siren.liveplay();\n } else {\n try {\n blank.style.paddingTop = \"75px\";\n } catch (e) { }\n headertop.style.height = \"0px\";\n headertop.style.display = \"none\";\n Siren.livepause();\n }\n }\n },\n CE: function () {\n let comments_hidden = document.querySelector(\".comments-hidden\");\n let comments_main = document.querySelector(\".comments-main\");\n if (comments_hidden != null) {\n comments_hidden.style.display = \"block\";\n comments_main.style.display = \"none\";\n comments_hidden.addEventListener(\"click\", function () {\n slideToogle(comments_main, 500, 'show');\n comments_hidden.style.display = \"none\";\n });\n }\n let archives = document.getElementsByClassName(\"archives\");\n if (archives.length > 0) {\n for (let i = 0; i < archives.length; i++) {\n archives[i].style.display = \"none\";\n }\n archives[0].style.display = \"\";\n let h3 = document.getElementById(\"archives-temp\").getElementsByTagName(\"h3\");\n for (let i = 0; i < h3.length; i++) {\n h3[i].addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n slideToogle(e.target.nextElementSibling, 300);\n })\n }\n }\n // $('.comments-hidden').show();\n // $('.comments-main').hide();\n // $('.comments-hidden').click(function () {\n // $('.comments-main').slideDown(500);\n // $('.comments-hidden').hide();\n // });\n // $('.archives').hide();\n // $('.archives:first').show();\n // $('#archives-temp h3').click(function () {\n // $(this).next().slideToggle('fast');\n // return false;\n // });\n /*if (mashiro_option.baguetteBoxON) {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n }*/\n article_attach()\n const callback = function () {\n //$('.js-toggle-search').toggleClass('is-active');\n document.getElementsByClassName('js-toggle-search')[0].classList.toggle('is-active')\n //$('.js-search').toggleClass('is-visible');\n document.getElementsByClassName('js-search')[0].classList.toggle('is-visible')\n //$('html').css('overflow-y', 'hidden');\n document.documentElement.style.overflowY = 'hidden'\n if (mashiro_option.live_search) {\n var QueryStorage = [];\n search_a(buildAPI(Poi.api + \"sakura/v1/cache_search/json\"));\n\n var otxt = document.getElementById(\"search-input\"),\n list = document.getElementById(\"PostlistBox\"),\n Record = list.innerHTML,\n searchFlag = null;\n otxt.oninput = function () {\n if (searchFlag == null) {\n clearTimeout(searchFlag);\n }\n searchFlag = setTimeout(function () {\n query(QueryStorage, otxt.value, Record);\n div_href();\n }, 250);\n };\n\n function search_a(val) {\n if (sessionStorage.getItem('search') != null) {\n QueryStorage = JSON.parse(sessionStorage.getItem('search'));\n query(QueryStorage, document.getElementById(\"search-input\").value, Record);\n div_href();\n } else {\n fetch(val)\n .then(async resp => {\n if (resp.ok) {\n const json = await resp.text()\n if (json != \"\") {\n sessionStorage.setItem('search', json);\n QueryStorage = JSON.parse(json);\n query(QueryStorage, otxt.value, Record);\n div_href();\n }\n } else {\n console.warn('HTTP ' + resp.status)\n }\n })\n .catch(reason => console.warn(reason))\n }\n }\n/* if (!Object.values) Object.values = function (obj) {\n if (obj !== Object(obj))\n throw new TypeError('Object.values called on a non-object');\n var val = [],\n key;\n for (key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n val.push(obj[key]);\n }\n }\n return val;\n } */\n\n function Cx(array, query) {\n query = query.replace(query, \"^(?=.*?\" + query + \").+$\").replace(/\\s/g, \")(?=.*?\");\n return array.filter(\n v => Object.values(v).some(\n v => new RegExp(query + '').test(v)\n )\n );;\n }\n\n function div_href() {\n const search_close = document.querySelector(\".search_close\")\n const Ty = document.getElementById('Ty')\n for (const ele of document.getElementsByClassName('ins-selectable')) {\n ele.addEventListener(\"click\", () => {\n Ty.href = ele.getAttribute('href')\n Ty.click()\n search_close.click()\n });\n }\n /* $(\".ins-selectable\").each(function () {\n $(this).click(function () {\n $(\"#Ty\").attr('href', $(this).attr('href'));\n $(\"#Ty\").click();\n $(\".search_close\").click();\n });\n }); */\n }\n\n function search_result(keyword, link, fa, title, iconfont, comments, text) {\n if (keyword) {\n var s = keyword.trim().split(\" \"),\n a = title.indexOf(s[s.length - 1]),\n b = text.indexOf(s[s.length - 1]);\n title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);\n title = title.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);\n text = text.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n }\n return '
' + title + ' ' + comments + '' + '

' + text + '

';\n }\n\n function query(B, A, z) {\n var x, v, s, y = \"\",\n w = \"\",\n u = \"\",\n r = \"\",\n p = \"\",\n F = \"\",\n H = \"\",\n G = '
',\n D = \"
\",\n E = \"\",\n C = Cx(B, A.trim());\n for (x = 0; x < Object.keys(C).length; x++) {\n H = C[x];\n switch (v = H.type) {\n case \"post\":\n w = w + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"tag\":\n p = p + search_result(\"\", H.link, \"tag\", H.title, \"none\", \"\", \"\");\n break;\n case \"category\":\n r = r + search_result(\"\", H.link, \"folder\", H.title, \"none\", \"\", \"\");\n break;\n case \"page\":\n u = u + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"comment\":\n F = F + search_result(A, H.link, \"comment\", H.title, \"none\", \"\", H.text);\n break\n }\n }\n w && (y = y + G + \"文章\" + E + w + D), u && (y = y + G + \"页面\" + E + u + D), r && (y = y + G + \"分类\" + E + r + D), p && (y = y + G + \"标签\" + E + p + D), F && (y = y + G + \"评论\" + E + F + D), s = document.getElementById(\"PostlistBox\"), s.innerHTML = y\n }\n }\n }\n for (const ele of document.getElementsByClassName('js-toggle-search')) {\n ele.addEventListener('click', callback);\n }\n\n const sc = document.querySelector(\".search_close\");\n sc && sc.addEventListener(\"click\", function () {\n let js_search = document.getElementsByClassName(\"js-search\")[0];\n if (js_search.classList.contains(\"is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n js_search.classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n try {\n let show_Nav = document.getElementById(\"show-nav\");\n show_Nav.addEventListener(\"click\", function () {\n if (show_Nav.classList.contains(\"showNav\")) {\n show_Nav.classList.remove(\"showNav\");\n show_Nav.classList.add(\"hideNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.add(\"navbar\");\n } else {\n show_Nav.classList.remove(\"hideNav\");\n show_Nav.classList.add(\"showNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.remove(\"navbar\");\n }\n });\n document.getElementById(\"loading\").addEventListener(\"click\", function () {\n let loading = document.getElementById(\"loading\");\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n });\n } catch (e) { }\n },\n NH: function () {\n let h1 = 0;\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || window.pageYOffset,\n cached = document.querySelector(\".site-header\");\n if (s == h1) {\n cached.classList.remove(\"yya\");\n }\n if (s > h1) {\n cached.classList.add(\"yya\");\n }\n })\n // $(window).scroll(function () {\n // var s = $(document).scrollTop(),\n // cached = $('.site-header');\n // if (s == h1) {\n // cached.removeClass('yya');\n // }\n // if (s > h1) {\n // cached.addClass('yya');\n // }\n // });\n },\n XLS: function () {\n let load_post_timer;\n const intersectionObserver = new IntersectionObserver(function (entries) {\n if (entries[0].intersectionRatio <= 0) return;\n // var page_next = $('#pagination a').attr(\"href\");\n const _page_next = document.querySelector('#pagination a')\n if (_page_next) {\n const page_next = _page_next.getAttribute(\"href\"),\n load_key = document.getElementById(\"add_post_time\");\n if (page_next != undefined && load_key) {\n const load_time = document.getElementById(\"add_post_time\").title;\n if (load_time != \"233\") {\n console.log(\"%c 自动加载时倒计时 %c\", \"background:#9a9da2; color:#ffffff; border-radius:4px;\", \"\", \"\", load_time);\n load_post_timer = setTimeout(function () {\n load_post();\n }, load_time * 1000);\n }\n }\n }\n });\n intersectionObserver.observe(\n document.querySelector('.footer-device')\n );\n document.body.addEventListener(\"click\", function (e) {\n if (e.target == document.querySelector(\"#pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n clearTimeout(load_post_timer);\n load_post();\n }\n })\n\n function load_post() {\n const pagination_a = document.querySelector('#pagination a');\n pagination_a.classList.add(\"loading\");\n pagination_a.innerText = \"\";\n // $('#pagination a').addClass(\"loading\").text(\"\");\n fetch(pagination_a.getAttribute(\"href\") + \"#main\")\n .then(resp => resp.text())\n .then(text => {\n const parser = new DOMParser(),\n DOM = parser.parseFromString(text, \"text/html\"),\n result = DOM.querySelectorAll(\"#main .post\"),\n paga = DOM.querySelector(\"#pagination a\"),\n paga_innerText = paga && paga.innerText,\n nextHref = paga && paga.getAttribute(\"href\");\n for (let i = 0; i < result.length; i++) {\n let b = result[i];\n document.getElementById(\"main\").insertAdjacentHTML('beforeend', b.outerHTML);\n }\n if (Poi.pjax) pjax.refresh(document.querySelector(\"#content\"));\n //if (resp.ok) {\n // result = $(data).find(\"#main .post\");\n // nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n // $(\"#main\").append(result.fadeIn(500));\n const dpga = document.querySelector(\"#pagination a\"),\n addps = document.querySelector(\"#add_post span\");\n if (dpga) {\n dpga.classList.remove(\"loading\");\n dpga.innerText = paga_innerText;\n }\n if (addps) {\n addps.classList.remove(\"loading\");\n addps.innerText = \"\";\n }\n // $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n // $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n pagination_a.setAttribute(\"href\", nextHref);\n // $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n let tempScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;\n // window.scrollTo(tempScrollTop);\n // $(window).scrollTop(tempScrollTop);\n window.scrollTo({\n top: tempScrollTop + 300,\n behavior: 'smooth'\n })\n // $body.animate({\n // scrollTop: tempScrollTop + 300\n //\n // }, 666)\n } else {\n document.getElementById(\"pagination\").innerHTML = \"很高兴你翻到这里,但是真的没有了...\";\n // $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n //}\n\n })\n /* $.ajax({\n type: \"POST\",\n url: $('#pagination a').attr(\"href\") + \"#main\",\n success: function (data) {\n result = $(data).find(\"#main .post\");\n nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n $(\"#main\").append(result.fadeIn(500));\n $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n var tempScrollTop = $(window).scrollTop();\n $(window).scrollTop(tempScrollTop);\n $body.animate({\n scrollTop: tempScrollTop + 300\n \n }, 666)\n } else {\n $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n }\n }); */\n return false;\n }\n },\n XCS: function () {\n const __list = 'commentwrap';\n const form = document.getElementById(\"commentform\")\n if (form) form.addEventListener('submit', function () {\n addComment.createButterbar(\"提交中(Commiting)....\")\n const form = new FormData(this)\n form.append('action', 'ajax_comment')\n fetch(Poi.ajaxurl, {\n method: this.attributes.method.value,\n body: form\n }).then(async resp => {\n const data = await resp.text()\n if (resp.ok) {\n Array.from(document.getElementsByTagName('textarea'))\n .forEach((e) => e.value = '')\n const cancel = document.getElementById('cancel-comment-reply-link'),\n temp = document.getElementById('wp-temp-form-div'),\n respond = document.getElementById(addComment.respondId),\n //post = document.getElementById('comment_post_ID').value,\n parent = document.getElementById('comment_parent').value;\n if (parent != '0') {\n //jQuery('#respond').before('
    ' + data + '
');\n document.getElementById(\"respond\").insertAdjacentHTML('beforebegin', '
    ' + data + '
');\n } else if (!document.getElementsByClassName(__list).length) {\n if (Poi.formpostion == 'bottom') {\n document.getElementById(\"respond\").insertAdjacentHTML('beforebegin', '
    ' + data + '
');\n //jQuery('#respond').before('
    ' + data + '
');\n } else {\n document.getElementById(\"respond\").insertAdjacentHTML('afterend', '
    ' + data + '
');\n //jQuery('#respond').after('
    ' + data + '
');\n }\n } else {\n if (Poi.order == 'asc') {\n document.getElementsByClassName(\"commentwrap\")[1].insertAdjacentHTML('beforeend', data);\n //jQuery('.' + __list).append(data);\n } else {\n document.getElementsByClassName(\"commentwrap\")[1].insertAdjacentHTML('afterbegin', data);\n //jQuery('.' + __list).prepend(data);\n }\n }\n addComment.createButterbar(\"提交成功(Succeed)\");\n lazyload();\n code_highlight_style();\n click_to_view_image();\n clean_upload_images();\n cancel.style.display = 'none';\n cancel.onclick = null;\n document.getElementById('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp)\n }\n } else {\n addComment.createButterbar(data ?? 'HTTP' + resp.status + ':' + resp.statusText);\n }\n }).catch(reason => {\n addComment.createButterbar(reason);\n })\n /* jQuery.ajax({\n url: Poi.ajaxurl,\n data: jQuery(this).serialize() + \"&action=ajax_comment\",\n type: jQuery(this).attr('method'),\n beforeSend: addComment.createButterbar(\"提交中(Commiting)....\"),\n error: function (request) {\n var t = addComment;\n t.createButterbar(request.responseText);\n },\n success: function (data) {\n jQuery('textarea').each(function () {\n this.value = ''\n });\n var t = addComment,\n cancel = t.I('cancel-comment-reply-link'),\n temp = t.I('wp-temp-form-div'),\n respond = t.I(t.respondId),\n post = t.I('comment_post_ID').value,\n parent = t.I('comment_parent').value;\n if (parent != '0') {\n jQuery('#respond').before('
    ' + data + '
');\n } else if (!jQuery('.' + __list).length) {\n if (Poi.formpostion == 'bottom') {\n jQuery('#respond').before('
    ' + data + '
');\n } else {\n jQuery('#respond').after('
    ' + data + '
');\n }\n } else {\n if (Poi.order == 'asc') {\n jQuery('.' + __list).append(data);\n } else {\n jQuery('.' + __list).prepend(data);\n }\n }\n t.createButterbar(\"提交成功(Succeed)\");\n lazyload();\n code_highlight_style();\n click_to_view_image();\n clean_upload_images();\n cancel.style.display = 'none';\n cancel.onclick = null;\n t.I('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp)\n }\n }\n }); */\n return false;\n })\n window.addComment = require('./AddComment').default\n },\n XCP: function () {\n document.body.addEventListener('click', function (e) {\n if (e.target.parentNode == document.getElementById(\"comments-navi\") && e.target.nodeName.toLowerCase() == \"a\") {\n e.preventDefault();\n e.stopPropagation();\n let _this = e.target,\n path = _this.pathname,\n _xhr = new XMLHttpRequest();\n _xhr.open(\"GET\", _this.getAttribute('href'), true);\n _xhr.responseType = \"document\";\n _xhr.onloadstart = () => {\n let comments_navi = document.getElementById(\"comments-navi\"),\n commentwrap = document.querySelector(\"ul.commentwrap\"),\n loading_comments = document.getElementById(\"loading-comments\"),\n comments_list = document.getElementById(\"comments-list-title\");\n comments_navi.remove();\n commentwrap.remove();\n //comments_navi.parentNode.removeChild(comments_navi);\n //commentwrap.parentNode.removeChild(commentwrap);\n loading_comments.style.display = \"block\";\n slideToogle(loading_comments, 500, \"show\");\n window.scrollTo({\n top: comments_list.getBoundingClientRect().top + window.pageYOffset - comments_list.clientTop - 65,\n behavior: \"smooth\"\n });\n }\n _xhr.onreadystatechange = function () {\n if (_xhr.readyState == 4 && _xhr.status == 200) {\n let json = _xhr.response,\n result = json.querySelector(\"ul.commentwrap\"),\n nextlink = json.getElementById(\"comments-navi\"),\n loading_comments = document.getElementById(\"loading-comments\");\n slideToogle(loading_comments, 200, \"hide\");\n document.getElementById(\"loading-comments\").insertAdjacentHTML('afterend', result.outerHTML);\n document.querySelector(\"ul.commentwrap\").insertAdjacentHTML('afterend', nextlink.outerHTML);\n lazyload();\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': path\n });\n }\n code_highlight_style();\n click_to_view_image();\n let commentwrap = document.querySelector(\"ul.commentwrap\");\n window.scrollTo({\n top: commentwrap && (commentwrap.getBoundingClientRect().top + window.pageYOffset - commentwrap.clientTop - 200),\n behavior: \"smooth\"\n });\n }\n }\n _xhr.send();\n }\n });\n },\n IA: function () {\n POWERMODE.colorful = true;\n POWERMODE.shake = false;\n document.body.addEventListener('input', POWERMODE)\n },\n GT: function () {\n let mb_to_top = document.querySelector(\"#moblieGoTop\"),\n changskin = document.querySelector(\"#changskin\");\n window.addEventListener(\"scroll\", () => {\n let scroll = document.documentElement.scrollTop || document.body.scrollTop;\n if (scroll > 20) {\n mb_to_top.style.transform = \"scale(1)\";\n changskin.style.transform = \"scale(1)\";\n } else {\n mb_to_top.style.transform = \"scale(0)\";\n changskin.style.transform = \"scale(0)\";\n }\n })\n mb_to_top.onclick = function () {\n topFunction();\n }\n }\n }\nif (Poi.pjax) {\n document.addEventListener(\"pjax:send\", () => {\n for (const element of document.getElementsByClassName(\"normal-cover-video\")) {\n element.pause();\n element.src = '';\n element.load = '';\n }\n document.getElementById(\"bar\").style.width = \"0%\";\n if (mashiro_option.NProgressON) NProgress.start();\n Siren.MNH();\n });\n document.addEventListener(\"pjax:complete\", function () {\n Siren.AH();\n Siren.PE();\n Siren.CE();\n //Siren.XLS();\n if (mashiro_option.NProgressON) NProgress.done();\n mashiro_global.ini.pjax();\n let loading = document.getElementById(\"loading\");\n if (loading) {\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n }\n //未实际使用的选项\n /* if (Poi.codelamp == 'open') {\n self.Prism.highlightAll(event)\n }; */\n if (document.querySelector(\".js-search.is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n document.getElementsByClassName(\"js-search\")[0].classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n document.addEventListener(\"pjax:success\", function () {\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': window.location.pathname\n });\n }\n });\n window.addEventListener('popstate', function (e) {\n Siren.AH();\n Siren.PE();\n Siren.CE();\n sm();\n timeSeriesReload(true);\n post_list_show_animation();\n }, false);\n}\nready(function () {\n Siren.AH();\n Siren.PE();\n Siren.NH();\n Siren.GT();\n Siren.XLS();\n Siren.XCS();\n Siren.XCP();\n Siren.CE();\n Siren.MN();\n Siren.IA();\n Siren.LV();\n console.log(\"%c Mashiro %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://2heng.xin/\");\n console.log(\"%c Github %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://github.com/mashirozx\");\n});\nlet isWebkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1,\n isOpera = navigator.userAgent.toLowerCase().indexOf('opera') > -1,\n isIe = navigator.userAgent.toLowerCase().indexOf('msie') > -1;\nif ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventListener) {\n window.addEventListener('hashchange', function () {\n let id = location.hash.substring(1),\n element;\n if (!(/^[A-z0-9_-]+$/.test(id))) {\n return;\n }\n element = document.getElementById(id);\n if (element) {\n if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) {\n element.tabIndex = -1;\n }\n element.focus();\n }\n }, false);\n}\n\nwindow.addEventListener('load', () => {\n const preload = document.getElementById(\"preload\");\n if (!preload) return;\n document.documentElement.style.overflowY = 'unset';\n if (mashiro_option.preload_blur == 0) {\n preload.classList.add('hide');\n preload.classList.remove('show');\n setTimeout(() => preload.remove(), 233);\n } else {\n preload.animate(\n [\n { filter: \"blur(0px)\", backdropFilter: \"blur(10px)\", opacity: 1 },\n { backdropFilter: \"blur(0px)grayscale(0)\", opacity: 0.1 },\n { opacity: 0, filter: \"blur(100px)\", }\n ],\n { duration: mashiro_option.preload_blur, fill: \"forwards\", easing: \"ease\" }\n ).onfinish = () => {\n preload.remove()\n }\n }\n})\n\n\nfunction web_audio() {\n if (mashiro_option.audio) {\n ready(() => {\n window.AudioContext = window.AudioContext || window.webkitAudioContext,\n function () {\n if (window.AudioContext) {\n let e = new AudioContext,\n t = \"880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880\".split(\" \"),//天空之城\n /*t = \"329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 329.628 293.665 293.665 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626 293.665 293.665 329.628 261.626 293.665 329.628 349.228 329.628 261.626 293.665 329.628 349.228 329.628 293.665 261.626 293.665 195.998 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626\".split(\" \"),欢乐颂*/\n i = 0,\n o = 1, dom,\n a = \"♪ ♩ ♫ ♬ ♭ € § ¶ ♯\".split(\" \"),\n n = !1,\n select = document.querySelectorAll(\".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li\");\n select.forEach((s) => {\n s.addEventListener(\"mouseenter\", (y) => {\n if (dom) return;\n let r = t[i]\n r || (i = 0, r = t[i]), i += o\n let c = e.createOscillator(),\n l = e.createGain();\n if (c.connect(l), l.connect(e.destination), c.type = \"sine\", c.frequency.value = r, l.gain.setValueAtTime(0, e.currentTime), l.gain.linearRampToValueAtTime(1, e.currentTime + .01), c.start(e.currentTime), l.gain.exponentialRampToValueAtTime(.001, e.currentTime + 1), c.stop(e.currentTime + 1), n = !0) {\n let d = Math.round(7 * Math.random());\n dom = document.createElement(\"b\");\n dom.textContent = a[d],\n h = y.pageX,\n p = y.pageY - 5;\n dom.style.zIndex = \"99999\";\n dom.style.top = p - 100 + \"px\";\n dom.style.left = h + \"px\";\n dom.style.position = \"absolute\";\n dom.style.color = \"#FF6EB4\";\n document.body.appendChild(dom);\n dom.animate([\n { top: p + \"px\" },\n { opacity: 0 }\n ], {\n duration: 500\n })\n setTimeout(() => {\n dom.remove();\n dom = null;\n }, 500)\n y.stopPropagation();\n }\n n = !1\n })\n })\n }\n }()\n })\n }\n}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://sakurairo-scripts/webpack/runtime/create fake namespace object","webpack://sakurairo-scripts/webpack/runtime/load script","webpack://sakurairo-scripts/./node_modules/activate-power-mode/dist/activate-power-mode.js","webpack://sakurairo-scripts/./node_modules/charenc/charenc.js","webpack://sakurairo-scripts/./node_modules/crypt/crypt.js","webpack://sakurairo-scripts/./node_modules/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/is-buffer/index.js","webpack://sakurairo-scripts/./node_modules/md5/md5.js","webpack://sakurairo-scripts/./node_modules/nprogress/nprogress.js","webpack://sakurairo-scripts/./node_modules/pjax/index.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/abort-request.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/eval-script.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/events/on.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/events/trigger.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/execute-scripts.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/foreach-els.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/foreach-selectors.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/is-supported.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/parse-options.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/attach-form.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/attach-link.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/handle-response.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/log.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/proto/parse-element.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/send-request.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/switches-selectors.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/switches.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/uniqueid.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/clone.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/contains.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/extend.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/noop.js","webpack://sakurairo-scripts/./node_modules/pjax/lib/util/update-query-string.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/AddComment.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/api.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/copyright.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/darkmode.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/get_gravatar.ts","webpack://sakurairo-scripts/./src/entries/sakura-app/pjax.ts","webpack://sakurairo-scripts/./src/module/cookie.ts","webpack://sakurairo-scripts/webpack/bootstrap","webpack://sakurairo-scripts/webpack/runtime/compat get default export","webpack://sakurairo-scripts/webpack/runtime/define property getters","webpack://sakurairo-scripts/webpack/runtime/ensure chunk","webpack://sakurairo-scripts/webpack/runtime/get javascript chunk filename","webpack://sakurairo-scripts/webpack/runtime/global","webpack://sakurairo-scripts/webpack/runtime/hasOwnProperty shorthand","webpack://sakurairo-scripts/webpack/runtime/make namespace object","webpack://sakurairo-scripts/webpack/runtime/publicPath","webpack://sakurairo-scripts/webpack/runtime/jsonp chunk loading","webpack://sakurairo-scripts/./src/entries/sakura-app/global-func.js","webpack://sakurairo-scripts/./src/entries/sakura-app/index.js"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","factory","modules","installedModules","moduleId","exports","module","id","loaded","call","m","c","p","canvas","document","createElement","width","window","innerWidth","height","innerHeight","style","cssText","addEventListener","body","appendChild","context","getContext","particles","particlePointer","rendering","getRandom","min","max","Math","random","getColor","el","POWERMODE","colorful","u","getComputedStyle","color","createParticle","x","y","alpha","velocity","caret","bcr","activeElement","tagName","getAttribute","offset","selectionEnd","getBoundingClientRect","left","top","selection","getSelection","rangeCount","range","getRangeAt","startNode","startContainer","nodeType","TEXT_NODE","parentNode","getCaret","numParticles","round","shake","intensity","marginLeft","marginTop","setTimeout","requestAnimationFrame","loop","clearRect","rendered","rect","i","length","particle","globalAlpha","fillStyle","fillRect","properties","isFirefox","mozInnerScreenX","getCaretCoordinates","element","position","options","debug","querySelector","removeChild","div","computed","currentStyle","whiteSpace","nodeName","wordWrap","visibility","forEach","prop","scrollHeight","parseInt","overflowY","overflow","textContent","value","substring","replace","span","coordinates","offsetTop","offsetLeft","backgroundColor","charenc","utf8","stringToBytes","str","bin","unescape","encodeURIComponent","bytesToString","bytes","decodeURIComponent","escape","push","charCodeAt","String","fromCharCode","join","base64map","crypt","rotl","n","b","rotr","endian","constructor","Number","randomBytes","floor","bytesToWords","words","wordsToBytes","bytesToHex","hex","toString","hexToBytes","substr","bytesToBase64","base64","triplet","j","charAt","base64ToBytes","imod4","indexOf","pow","w","loadCSS","href","before","media","attributes","ref","doc","ss","refs","getElementsByTagName","childNodes","sheets","styleSheets","attributeName","hasOwnProperty","setAttribute","rel","ready","cb","insertBefore","nextSibling","onloadcssdefined","resolvedHref","loadCB","removeEventListener","g","this","isBuffer","obj","readFloatLE","slice","isSlowBuffer","_isBuffer","md5","message","encoding","Array","prototype","isArray","Uint8Array","l","a","d","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","s","t","_blocksize","_digestsize","Error","digestbytes","asBytes","asString","initial","current","NProgress","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","clamp","toBarPerc","barPositionCSS","ease","barCSS","transform","transition","configure","key","undefined","status","set","started","isStarted","progress","render","bar","offsetWidth","queue","next","getPositioningCSS","css","opacity","remove","start","work","done","force","inc","amount","promise","$promise","state","always","fromStart","isRendered","getElementById","addClass","documentElement","innerHTML","spinner","perc","removeElement","removeClass","bodyStyle","vendorPrefix","pending","fn","shift","cssPrefixes","cssProps","camelCase","string","match","letter","toUpperCase","getVendorProp","name","vendorName","capName","getStyleProp","applyCss","args","arguments","hasClass","classList","oldList","newList","className","executeScripts","forEachEls","parseOptions","switches","newUid","on","trigger","clone","contains","extend","noop","Pjax","numPendingSwitches","log","scrollRestoration","history","maxUid","lastUid","parseDOM","st","opt","url","title","scrollPos","uid","backward","forward","loadUrl","bind","getElements","querySelectorAll","elements","parseElement","refresh","reload","location","attachLink","attachForm","forEachSelectors","DOMcontext","selectors","switchSelectors","fromEl","toEl","switchesOptions","latestChance","onSwitch","afterAllSwitches","loadContent","html","tmpEl","implementation","createHTMLDocument","matches","htmlAttrib","attr","trim","split","blur","e","abortRequest","doRequest","handleResponse","request","autofocusEl","pop","focus","selector","replaceState","pushState","analytics","hash","curtop","target","getElementsByName","offsetParent","scrollTo","isSupported","stupidPjax","readyState","onreadystatechange","abort","code","text","src","script","console","type","async","createTextNode","HTMLHeadElement","HTMLBodyElement","els","events","listener","useCapture","opts","event","createEvent","initEvent","eventName","Object","keys","domFix","dispatchEvent","evalScript","toLowerCase","HTMLCollection","NodeList","navigator","userAgent","defaultSwitches","defaultAnalytics","_gaq","ga","page","pathname","cacheBust","timeout","currentUrlFullReload","head","switchElementsAlt","attrState","formAction","isDefaultPrevented","requestOptions","requestUrl","requestMethod","virtLinkElement","attrValue","protocol","host","checkIfShouldAbort","preventDefault","enctype","formData","FormData","requestParams","formElements","checked","values","selected","disabled","hasAttribute","k","parseFormElements","triggerElement","defaultPrevented","returnValue","that","linkAction","which","metaKey","ctrlKey","shiftKey","altKey","keyCode","responseText","currentState","scrollLeft","scrollTop","oldHref","responseURL","getResponseHeader","oldHash","error","apply","updateQueryString","callback","queryString","requestPayload","XMLHttpRequest","onerror","ontimeout","map","param","Date","now","open","setRequestHeader","JSON","stringify","send","switchesQueue","newEls","oldEls","newEl","oldEl","outerHTML","queuedSwitch","removeAttribute","hasAttributes","attrs","setNamedItem","cloneNode","replaceNode","replaceChild","sideBySide","switchOptions","elsToRemove","elsToAdd","fragToAppend","createDocumentFragment","animationEventNames","animatedElsNumber","sexyAnimationEnd","currentTarget","add","callbacks","classNames","addClasses","addElement","counter","getTime","copy","selectedEls","to","source","uri","re","RegExp","separator","defaults","srcset","root","rootMargin","threshold","LazyLoad","images","observer","assign","init","IntersectionObserver","loadImages","self","observerConfig","entries","entry","isIntersecting","unobserve","backgroundImage","image","observe","destroy","disconnect","AddComment","respondId","moveForm","commId","parentId","comm","respond","cancel","display","temp","_respond","pageYOffset","clientTop","behavior","onclick","clearButterbar","butterBar","getElementsByClassName","createButterbar","showtime","insertAdjacentHTML","apiPath","params","nonce","path","URL","searchParams","Poi","txt","mashiro_option","author_name","site_name","copytext","selectionText","selectionTxt","htmlData","textData","clipboardData","setData","setClipboardText","addComment","clipboardCopyright","mediaQuery","matchMedia","inDarkMode","informDarkModeChange","nextValue","CustomEvent","detail","mediaQueryCallback","localStorage","getItem","darkmode","turnOnDarkMode","turnOffDarkMode","saveUserSetting","ifDarkmodeShouldOn","removeItem","setItem","userTriggered","background","skin_bg0","checkTime","today","getHours","dm_strategy","dark","__importDefault","mod","__esModule","defineProperty","md5_1","default","email","size","gravatar_url","pjax","pjax_1","cookie_1","UA","reg","version","Firefox","Edg","Chrome","Opera","Version","toDataURL","setCookie","_a","removeCookie","getCookie","_version_ctrl","cookie_version_control","days","expires","toUTCString","cookie","nameEQ","ca","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","getter","getPrototypeOf","mode","then","ns","create","r","def","getOwnPropertyNames","definition","o","enumerable","get","f","chunkId","Promise","all","reduce","promises","globalThis","Function","needAttach","scripts","charset","nc","onScriptComplete","prev","onload","clearTimeout","doneFns","Symbol","toStringTag","scriptUrl","importScripts","currentScript","installedChunks","143","installedChunkData","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","chunkLoadingGlobal","motionEles","get_gravatar","imgError","ele","cmt_showPopup","popup","onblur","coverVideo","video","btn","paused","play","pause","killCoverVideo","mail_me","mail","email_name","email_domain","headertop_down","coverOffset","motionSwitch","grin","tag","after","myField","sel","createRange","selectionStart","startPos","endPos","cursorPos","mashiro_global","variables","has_hls","skinSecter","ini","normalize","lazyload","post_list_show_animation","copy_code_block","web_audio","coverVideoIni","checkSkinSecter","clientWidth","result","cached","sc","skinMenu","outerHeight","load_bangumi","sm","pjaxInit","code_highlight_style","gen_top_bar","pre","code_a","children","ele_name","lang","hljs_process","hljs","warn","importHighlightjs","highlightBlock","initLineNumbersOnLoad","ec","toggle","PrismBaseUrl","code_highlight_prism","autoload_path","current_prism_css","themeCSS","light","theme","theme_name","loadPrismCSS","darkmodeOn","nextCSS","nextCSSElement","loadPrismPluginLineNumbers","prism_process","Prism","plugins","autoloader","languages_path","isInDarkMode","reason","importPrismJS","line_number_all","parentElement","highlightElement","fileHighlight","highlight","code_highlight","slideToogle","duration","dom","flag","tagTimer","tagHeight","clientHeight","io","article","willChange","articles","font_control","cbs","cbss","change_font","add_upload_tips","form_submit","comment_upload_img","upload_img","files","alert","xhr","append","buildAPI","api","res","parse","get_the_url","proxy","attach_image","file_submit","hover","Tip","click_to_view_image","original_emoji_click","innerText","pattern","headertop","no_right_click","pri","stopPropagation","changeBG","bgid","bg_url","skin_bg1","skin_bg2","skin_bg3","skin_bg4","closeSkinMenu","centerbg","type_mobile","random_graphs_mts","cover_api","changeCoverBG","tagid","bgurl","checkBgImgCookie","checkDarkModeSetting","changskin","close_SkinMenu","bgn","setBG","cover_api_url","search","bgButtonAddListener","timeSeriesReload","archives","al_li","nextElementSibling","al_expand_collapse","cursor","num","al_post_list","al_post_list_f","al_expand_collapse_click","loadHls","video_src","Hls","hls","loadSource","attachMedia","Events","MANIFEST_PARSED","canPlayType","catch","ClipboardJS","tableOfContentScroll","heading_fix","entry_content_theme","_els","_el","tocbot","tocSelector","contentSelector","headingSelector","headingsOffset","_p","getqqinfo","_div","tla","reloadHermit","iconflat","openNav","smileBoxToggle","add_copyright","cm","reply_link_version","data_commentid","list","confirm","idp","actionp","rateHolderp","ajax_data","comt","et","is_get_by_qq","i_author","i_qq","i_email","i_url","qq_check","gravatar_check","user_avatar_img","qzone_autocomplete","emailAddressFlag","qq","test","whileFailed","fetch","qq_api_url","resp","ok","json","avatar","emailAddress","URL_Address","user_name","sections","_flag","bfan","row","from","stlye","float_player_on","aplayerInit","secondary","show_hide","activate_widget","jsdelivr_css_src","entry_content_style_src","Siren","MN","MNH","splay","video_btn","bottom","ap","hermitInit","spause","liveplay","oncanplay","livepause","video_stu","addsource","movies","_t","bgvideo","LV","onended","video_add","AH","windowheight","minHeight","PE","blank","paddingTop","live","CE","comments_hidden","comments_main","h3","collapseButton","collapseListener","baguetteBoxON","baguetteBox","run","captions","alt","ignoreClass","fancybox","jQuery","$","article_attach","live_search","QueryStorage","val","sessionStorage","query","Record","div_href","otxt","searchFlag","search_close","Ty","click","search_result","keyword","link","fa","iconfont","comments","B","A","z","F","H","G","D","E","C","array","filter","v","some","Cx","oninput","js_search","show_Nav","sln","loading","NH","XLS","load_post_timer","load_post","pagination_a","DOM","DOMParser","parseFromString","paga","paga_innerText","nextHref","dpga","addps","tempScrollTop","intersectionRatio","_page_next","page_next","load_key","load_time","XCS","__list","form","ajaxurl","method","order","formpostion","statusText","require","XCP","_this","_xhr","responseType","onloadstart","comments_navi","commentwrap","loading_comments","comments_list","response","nextlink","gtag","google_analytics_id","IA","GT","mb_to_top","load","NProgressON","isWebkit","isOpera","isIe","audio","AudioContext","webkitAudioContext","ctx","select","createOscillator","createGain","connect","destination","frequency","gain","setValueAtTime","currentTime","linearRampToValueAtTime","exponentialRampToValueAtTime","stop","h","pageX","pageY","zIndex","animate","tabIndex","preload","preload_blur","backdropFilter","fill","onfinish"],"mappings":"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","file":"app.js","sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"sakurairo-scripts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"POWERMODE\"] = factory();\n\telse\n\t\troot[\"POWERMODE\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar canvas = document.createElement('canvas');\n\tcanvas.width = window.innerWidth;\n\tcanvas.height = window.innerHeight;\n\tcanvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';\n\twindow.addEventListener('resize', function () {\n\t canvas.width = window.innerWidth;\n\t canvas.height = window.innerHeight;\n\t});\n\tdocument.body.appendChild(canvas);\n\tvar context = canvas.getContext('2d');\n\tvar particles = [];\n\tvar particlePointer = 0;\n\tvar rendering = false;\n\n\tPOWERMODE.shake = true;\n\n\tfunction getRandom(min, max) {\n\t return Math.random() * (max - min) + min;\n\t}\n\n\tfunction getColor(el) {\n\t if (POWERMODE.colorful) {\n\t var u = getRandom(0, 360);\n\t return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')';\n\t } else {\n\t return window.getComputedStyle(el).color;\n\t }\n\t}\n\n\tfunction getCaret() {\n\t var el = document.activeElement;\n\t var bcr;\n\t if (el.tagName === 'TEXTAREA' ||\n\t (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {\n\t var offset = __webpack_require__(1)(el, el.selectionEnd);\n\t bcr = el.getBoundingClientRect();\n\t return {\n\t x: offset.left + bcr.left,\n\t y: offset.top + bcr.top,\n\t color: getColor(el)\n\t };\n\t }\n\t var selection = window.getSelection();\n\t if (selection.rangeCount) {\n\t var range = selection.getRangeAt(0);\n\t var startNode = range.startContainer;\n\t if (startNode.nodeType === document.TEXT_NODE) {\n\t startNode = startNode.parentNode;\n\t }\n\t bcr = range.getBoundingClientRect();\n\t return {\n\t x: bcr.left,\n\t y: bcr.top,\n\t color: getColor(startNode)\n\t };\n\t }\n\t return { x: 0, y: 0, color: 'transparent' };\n\t}\n\n\tfunction createParticle(x, y, color) {\n\t return {\n\t x: x,\n\t y: y,\n\t alpha: 1,\n\t color: color,\n\t velocity: {\n\t x: -1 + Math.random() * 2,\n\t y: -3.5 + Math.random() * 2\n\t }\n\t };\n\t}\n\n\tfunction POWERMODE() {\n\t { // spawn particles\n\t var caret = getCaret();\n\t var numParticles = 5 + Math.round(Math.random() * 10);\n\t while (numParticles--) {\n\t particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);\n\t particlePointer = (particlePointer + 1) % 500;\n\t }\n\t }\n\t { // shake screen\n\t if (POWERMODE.shake) {\n\t var intensity = 1 + 2 * Math.random();\n\t var x = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t var y = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t document.body.style.marginLeft = x + 'px';\n\t document.body.style.marginTop = y + 'px';\n\t setTimeout(function() {\n\t document.body.style.marginLeft = '';\n\t document.body.style.marginTop = '';\n\t }, 75);\n\t }\n\t }\n\t if(!rendering){\n\t requestAnimationFrame(loop);\n\t }\n\t};\n\tPOWERMODE.colorful = false;\n\n\tfunction loop() {\n\t rendering = true;\n\t context.clearRect(0, 0, canvas.width, canvas.height);\n\t var rendered = false;\n\t var rect = canvas.getBoundingClientRect();\n\t for (var i = 0; i < particles.length; ++i) {\n\t var particle = particles[i];\n\t if (particle.alpha <= 0.1) continue;\n\t particle.velocity.y += 0.075;\n\t particle.x += particle.velocity.x;\n\t particle.y += particle.velocity.y;\n\t particle.alpha *= 0.96;\n\t context.globalAlpha = particle.alpha;\n\t context.fillStyle = particle.color;\n\t context.fillRect(\n\t Math.round(particle.x - 1.5) - rect.left,\n\t Math.round(particle.y - 1.5) - rect.top,\n\t 3, 3\n\t );\n\t rendered = true;\n\t }\n\t if(rendered){\n\t requestAnimationFrame(loop);\n\t }else{\n\t rendering = false;\n\t }\n\t}\n\n\tmodule.exports = POWERMODE;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t/* jshint browser: true */\n\n\t(function () {\n\n\t// The properties that we copy into a mirrored div.\n\t// Note that some browsers, such as Firefox,\n\t// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n\t// so we have to do every single property specifically.\n\tvar properties = [\n\t 'direction', // RTL support\n\t 'boxSizing',\n\t 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n\t 'height',\n\t 'overflowX',\n\t 'overflowY', // copy the scrollbar for IE\n\n\t 'borderTopWidth',\n\t 'borderRightWidth',\n\t 'borderBottomWidth',\n\t 'borderLeftWidth',\n\t 'borderStyle',\n\n\t 'paddingTop',\n\t 'paddingRight',\n\t 'paddingBottom',\n\t 'paddingLeft',\n\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n\t 'fontStyle',\n\t 'fontVariant',\n\t 'fontWeight',\n\t 'fontStretch',\n\t 'fontSize',\n\t 'fontSizeAdjust',\n\t 'lineHeight',\n\t 'fontFamily',\n\n\t 'textAlign',\n\t 'textTransform',\n\t 'textIndent',\n\t 'textDecoration', // might not make a difference, but better be safe\n\n\t 'letterSpacing',\n\t 'wordSpacing',\n\n\t 'tabSize',\n\t 'MozTabSize'\n\n\t];\n\n\tvar isFirefox = window.mozInnerScreenX != null;\n\n\tfunction getCaretCoordinates(element, position, options) {\n\n\t var debug = options && options.debug || false;\n\t if (debug) {\n\t var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n\t if ( el ) { el.parentNode.removeChild(el); }\n\t }\n\n\t // mirrored div\n\t var div = document.createElement('div');\n\t div.id = 'input-textarea-caret-position-mirror-div';\n\t document.body.appendChild(div);\n\n\t var style = div.style;\n\t var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n\n\t // default textarea styles\n\t style.whiteSpace = 'pre-wrap';\n\t if (element.nodeName !== 'INPUT')\n\t style.wordWrap = 'break-word'; // only for textarea-s\n\n\t // position off-screen\n\t style.position = 'absolute'; // required to return coordinates properly\n\t if (!debug)\n\t style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n\t // transfer the element's properties to the div\n\t properties.forEach(function (prop) {\n\t style[prop] = computed[prop];\n\t });\n\n\t if (isFirefox) {\n\t // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n\t if (element.scrollHeight > parseInt(computed.height))\n\t style.overflowY = 'scroll';\n\t } else {\n\t style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n\t }\n\n\t div.textContent = element.value.substring(0, position);\n\t // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n\t if (element.nodeName === 'INPUT')\n\t div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n\t var span = document.createElement('span');\n\t // Wrapping must be replicated *exactly*, including when a long word gets\n\t // onto the next line, with whitespace at the end of the line before (#7).\n\t // The *only* reliable way to do that is to copy the *entire* rest of the\n\t // textarea's content into the created at the caret position.\n\t // for inputs, just '.' would be enough, but why bother?\n\t span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n\t div.appendChild(span);\n\n\t var coordinates = {\n\t top: span.offsetTop + parseInt(computed['borderTopWidth']),\n\t left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n\t };\n\n\t if (debug) {\n\t span.style.backgroundColor = '#aaa';\n\t } else {\n\t document.body.removeChild(div);\n\t }\n\n\t return coordinates;\n\t}\n\n\tif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t module.exports = getCaretCoordinates;\n\t} else {\n\t window.getCaretCoordinates = getCaretCoordinates;\n\t}\n\n\t}());\n\n/***/ })\n/******/ ])\n});\n;","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*! loadCSS. [c]2020 Filament Group, Inc. MIT License */\n(function(w){\n\t\"use strict\";\n\t/* exported loadCSS */\n\tvar loadCSS = function( href, before, media, attributes ){\n\t\t// Arguments explained:\n\t\t// `href` [REQUIRED] is the URL for your CSS file.\n\t\t// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before\n\t\t// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.\n\t\t// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'\n\t\t// `attributes` [OPTIONAL] is the Object of attribute name/attribute value pairs to set on the stylesheet's DOM Element.\n\t\tvar doc = w.document;\n\t\tvar ss = doc.createElement( \"link\" );\n\t\tvar ref;\n\t\tif( before ){\n\t\t\tref = before;\n\t\t}\n\t\telse {\n\t\t\tvar refs = ( doc.body || doc.getElementsByTagName( \"head\" )[ 0 ] ).childNodes;\n\t\t\tref = refs[ refs.length - 1];\n\t\t}\n\n\t\tvar sheets = doc.styleSheets;\n\t\t// Set any of the provided attributes to the stylesheet DOM Element.\n\t\tif( attributes ){\n\t\t\tfor( var attributeName in attributes ){\n\t\t\t\tif( attributes.hasOwnProperty( attributeName ) ){\n\t\t\t\t\tss.setAttribute( attributeName, attributes[attributeName] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tss.rel = \"stylesheet\";\n\t\tss.href = href;\n\t\t// temporarily set media to something inapplicable to ensure it'll fetch without blocking render\n\t\tss.media = \"only x\";\n\n\t\t// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.\n\t\tfunction ready( cb ){\n\t\t\tif( doc.body ){\n\t\t\t\treturn cb();\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\tready( cb );\n\t\t\t});\n\t\t}\n\t\t// Inject link\n\t\t\t// Note: the ternary preserves the existing behavior of \"before\" argument, but we could choose to change the argument to \"after\" in a later release and standardize on ref.nextSibling for all refs\n\t\t\t// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/\n\t\tready( function(){\n\t\t\tref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );\n\t\t});\n\t\t// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.\n\t\tvar onloadcssdefined = function( cb ){\n\t\t\tvar resolvedHref = ss.href;\n\t\t\tvar i = sheets.length;\n\t\t\twhile( i-- ){\n\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\treturn cb();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTimeout(function() {\n\t\t\t\tonloadcssdefined( cb );\n\t\t\t});\n\t\t};\n\n\t\tfunction loadCB(){\n\t\t\tif( ss.addEventListener ){\n\t\t\t\tss.removeEventListener( \"load\", loadCB );\n\t\t\t}\n\t\t\tss.media = media || \"all\";\n\t\t}\n\n\t\t// once loaded, set link's media back to `all` so that the stylesheet applies once it loads\n\t\tif( ss.addEventListener ){\n\t\t\tss.addEventListener( \"load\", loadCB);\n\t\t}\n\t\tss.onloadcssdefined = onloadcssdefined;\n\t\tonloadcssdefined( loadCB );\n\t\treturn ss;\n\t};\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ));\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","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '
'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","var executeScripts = require(\"./lib/execute-scripts\");\nvar forEachEls = require(\"./lib/foreach-els\");\nvar parseOptions = require(\"./lib/parse-options\");\nvar switches = require(\"./lib/switches\");\nvar newUid = require(\"./lib/uniqueid\");\n\nvar on = require(\"./lib/events/on\");\nvar trigger = require(\"./lib/events/trigger\");\n\nvar clone = require(\"./lib/util/clone\");\nvar contains = require(\"./lib/util/contains\");\nvar extend = require(\"./lib/util/extend\");\nvar noop = require(\"./lib/util/noop\");\n\nvar Pjax = function(options) {\n this.state = {\n numPendingSwitches: 0,\n href: null,\n options: null\n };\n\n this.options = parseOptions(options);\n this.log(\"Pjax options\", this.options);\n\n if (this.options.scrollRestoration && \"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\";\n }\n\n this.maxUid = this.lastUid = newUid();\n\n this.parseDOM(document);\n\n on(\n window,\n \"popstate\",\n function(st) {\n if (st.state) {\n var opt = clone(this.options);\n opt.url = st.state.url;\n opt.title = st.state.title;\n // Since state already exists, prevent it from being pushed again\n opt.history = false;\n opt.scrollPos = st.state.scrollPos;\n if (st.state.uid < this.lastUid) {\n opt.backward = true;\n } else {\n opt.forward = true;\n }\n this.lastUid = st.state.uid;\n\n // @todo implement history cache here, based on uid\n this.loadUrl(st.state.url, opt);\n }\n }.bind(this)\n );\n};\n\nPjax.switches = switches;\n\nPjax.prototype = {\n log: require(\"./lib/proto/log\"),\n\n getElements: function(el) {\n return el.querySelectorAll(this.options.elements);\n },\n\n parseDOM: function(el) {\n var parseElement = require(\"./lib/proto/parse-element\");\n forEachEls(this.getElements(el), parseElement, this);\n },\n\n refresh: function(el) {\n this.parseDOM(el || document);\n },\n\n reload: function() {\n window.location.reload();\n },\n\n attachLink: require(\"./lib/proto/attach-link\"),\n\n attachForm: require(\"./lib/proto/attach-form\"),\n\n forEachSelectors: function(cb, context, DOMcontext) {\n return require(\"./lib/foreach-selectors\").bind(this)(\n this.options.selectors,\n cb,\n context,\n DOMcontext\n );\n },\n\n switchSelectors: function(selectors, fromEl, toEl, options) {\n return require(\"./lib/switches-selectors\").bind(this)(\n this.options.switches,\n this.options.switchesOptions,\n selectors,\n fromEl,\n toEl,\n options\n );\n },\n\n latestChance: function(href) {\n window.location = href;\n },\n\n onSwitch: function() {\n trigger(window, \"resize scroll\");\n\n this.state.numPendingSwitches--;\n\n // debounce calls, so we only run this once after all switches are finished.\n if (this.state.numPendingSwitches === 0) {\n this.afterAllSwitches();\n }\n },\n\n loadContent: function(html, options) {\n if (typeof html !== \"string\") {\n trigger(document, \"pjax:complete pjax:error\", options);\n\n return;\n }\n\n var tmpEl = document.implementation.createHTMLDocument(\"pjax\");\n\n // parse HTML attributes to copy them\n // since we are forced to use documentElement.innerHTML (outerHTML can't be used for )\n var htmlRegex = /]+>/gi;\n var htmlAttribsRegex = /\\s?[a-z:]+(?:=['\"][^'\">]+['\"])*/gi;\n var matches = html.match(htmlRegex);\n if (matches && matches.length) {\n matches = matches[0].match(htmlAttribsRegex);\n if (matches.length) {\n matches.shift();\n matches.forEach(function(htmlAttrib) {\n var attr = htmlAttrib.trim().split(\"=\");\n if (attr.length === 1) {\n tmpEl.documentElement.setAttribute(attr[0], true);\n } else {\n tmpEl.documentElement.setAttribute(attr[0], attr[1].slice(1, -1));\n }\n });\n }\n }\n\n tmpEl.documentElement.innerHTML = html;\n this.log(\n \"load content\",\n tmpEl.documentElement.attributes,\n tmpEl.documentElement.innerHTML.length\n );\n\n // Clear out any focused controls before inserting new page contents.\n if (\n document.activeElement &&\n contains(document, this.options.selectors, document.activeElement)\n ) {\n try {\n document.activeElement.blur();\n } catch (e) {} // eslint-disable-line no-empty\n }\n\n this.switchSelectors(this.options.selectors, tmpEl, document, options);\n },\n\n abortRequest: require(\"./lib/abort-request\"),\n\n doRequest: require(\"./lib/send-request\"),\n\n handleResponse: require(\"./lib/proto/handle-response\"),\n\n loadUrl: function(href, options) {\n options =\n typeof options === \"object\"\n ? extend({}, this.options, options)\n : clone(this.options);\n\n this.log(\"load href\", href, options);\n\n // Abort any previous request\n this.abortRequest(this.request);\n\n trigger(document, \"pjax:send\", options);\n\n // Do the request\n this.request = this.doRequest(\n href,\n options,\n this.handleResponse.bind(this)\n );\n },\n\n afterAllSwitches: function() {\n // FF bug: Won’t autofocus fields that are inserted via JS.\n // This behavior is incorrect. So if theres no current focus, autofocus\n // the last field.\n //\n // http://www.w3.org/html/wg/drafts/html/master/forms.html\n var autofocusEl = Array.prototype.slice\n .call(document.querySelectorAll(\"[autofocus]\"))\n .pop();\n if (autofocusEl && document.activeElement !== autofocusEl) {\n autofocusEl.focus();\n }\n\n // execute scripts when DOM have been completely updated\n this.options.selectors.forEach(function(selector) {\n forEachEls(document.querySelectorAll(selector), function(el) {\n executeScripts(el);\n });\n });\n\n var state = this.state;\n\n if (state.options.history) {\n if (!window.history.state) {\n this.lastUid = this.maxUid = newUid();\n window.history.replaceState(\n {\n url: window.location.href,\n title: document.title,\n uid: this.maxUid,\n scrollPos: [0, 0]\n },\n document.title\n );\n }\n\n // Update browser history\n this.lastUid = this.maxUid = newUid();\n\n window.history.pushState(\n {\n url: state.href,\n title: state.options.title,\n uid: this.maxUid,\n scrollPos: [0, 0]\n },\n state.options.title,\n state.href\n );\n }\n\n this.forEachSelectors(function(el) {\n this.parseDOM(el);\n }, this);\n\n // Fire Events\n trigger(document, \"pjax:complete pjax:success\", state.options);\n\n if (typeof state.options.analytics === \"function\") {\n state.options.analytics();\n }\n\n if (state.options.history) {\n // First parse url and check for hash to override scroll\n var a = document.createElement(\"a\");\n a.href = this.state.href;\n if (a.hash) {\n var name = a.hash.slice(1);\n name = decodeURIComponent(name);\n\n var curtop = 0;\n var target =\n document.getElementById(name) || document.getElementsByName(name)[0];\n if (target) {\n // http://stackoverflow.com/questions/8111094/cross-browser-javascript-function-to-find-actual-position-of-an-element-in-page\n if (target.offsetParent) {\n do {\n curtop += target.offsetTop;\n\n target = target.offsetParent;\n } while (target);\n }\n }\n window.scrollTo(0, curtop);\n } else if (state.options.scrollTo !== false) {\n // Scroll page to top on new page load\n if (state.options.scrollTo.length > 1) {\n window.scrollTo(state.options.scrollTo[0], state.options.scrollTo[1]);\n } else {\n window.scrollTo(0, state.options.scrollTo);\n }\n }\n } else if (state.options.scrollRestoration && state.options.scrollPos) {\n window.scrollTo(state.options.scrollPos[0], state.options.scrollPos[1]);\n }\n\n this.state = {\n numPendingSwitches: 0,\n href: null,\n options: null\n };\n }\n};\n\nPjax.isSupported = require(\"./lib/is-supported\");\n\n// arguably could do `if( require(\"./lib/is-supported\")()) {` but that might be a little to simple\nif (Pjax.isSupported()) {\n module.exports = Pjax;\n}\n// if there isn’t required browser functions, returning stupid api\nelse {\n var stupidPjax = noop;\n for (var key in Pjax.prototype) {\n if (\n Pjax.prototype.hasOwnProperty(key) &&\n typeof Pjax.prototype[key] === \"function\"\n ) {\n stupidPjax[key] = noop;\n }\n }\n\n module.exports = stupidPjax;\n}\n","var noop = require(\"./util/noop\");\n\nmodule.exports = function(request) {\n if (request && request.readyState < 4) {\n request.onreadystatechange = noop;\n request.abort();\n }\n};\n","module.exports = function(el) {\n var code = el.text || el.textContent || el.innerHTML || \"\";\n var src = el.src || \"\";\n var parent =\n el.parentNode || document.querySelector(\"head\") || document.documentElement;\n var script = document.createElement(\"script\");\n\n if (code.match(\"document.write\")) {\n if (console && console.log) {\n console.log(\n \"Script contains document.write. Can’t be executed correctly. Code skipped \",\n el\n );\n }\n return false;\n }\n\n script.type = \"text/javascript\";\n script.id = el.id;\n\n /* istanbul ignore if */\n if (src !== \"\") {\n script.src = src;\n script.async = false; // force synchronous loading of peripheral JS\n }\n\n if (code !== \"\") {\n try {\n script.appendChild(document.createTextNode(code));\n } catch (e) {\n /* istanbul ignore next */\n // old IEs have funky script nodes\n script.text = code;\n }\n }\n\n // execute\n parent.appendChild(script);\n // avoid pollution only in head or body tags\n if (\n (parent instanceof HTMLHeadElement || parent instanceof HTMLBodyElement) &&\n parent.contains(script)\n ) {\n parent.removeChild(script);\n }\n\n return true;\n};\n","var forEachEls = require(\"../foreach-els\");\n\nmodule.exports = function(els, events, listener, useCapture) {\n events = typeof events === \"string\" ? events.split(\" \") : events;\n\n events.forEach(function(e) {\n forEachEls(els, function(el) {\n el.addEventListener(e, listener, useCapture);\n });\n });\n};\n","var forEachEls = require(\"../foreach-els\");\n\nmodule.exports = function(els, events, opts) {\n events = typeof events === \"string\" ? events.split(\" \") : events;\n\n events.forEach(function(e) {\n var event;\n event = document.createEvent(\"HTMLEvents\");\n event.initEvent(e, true, true);\n event.eventName = e;\n if (opts) {\n Object.keys(opts).forEach(function(key) {\n event[key] = opts[key];\n });\n }\n\n forEachEls(els, function(el) {\n var domFix = false;\n if (!el.parentNode && el !== document && el !== window) {\n // THANK YOU IE (9/10/11)\n // dispatchEvent doesn't work if the element is not in the DOM\n domFix = true;\n document.body.appendChild(el);\n }\n el.dispatchEvent(event);\n if (domFix) {\n el.parentNode.removeChild(el);\n }\n });\n });\n};\n","var forEachEls = require(\"./foreach-els\");\nvar evalScript = require(\"./eval-script\");\n// Finds and executes scripts (used for newly added elements)\n// Needed since innerHTML does not run scripts\nmodule.exports = function(el) {\n if (el.tagName.toLowerCase() === \"script\") {\n evalScript(el);\n }\n\n forEachEls(el.querySelectorAll(\"script\"), function(script) {\n if (!script.type || script.type.toLowerCase() === \"text/javascript\") {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n evalScript(script);\n }\n });\n};\n","/* global HTMLCollection: true */\n\nmodule.exports = function(els, fn, context) {\n if (\n els instanceof HTMLCollection ||\n els instanceof NodeList ||\n els instanceof Array\n ) {\n return Array.prototype.forEach.call(els, fn, context);\n }\n // assume simple DOM element\n return fn.call(context, els);\n};\n","var forEachEls = require(\"./foreach-els\");\n\nmodule.exports = function(selectors, cb, context, DOMcontext) {\n DOMcontext = DOMcontext || document;\n selectors.forEach(function(selector) {\n forEachEls(DOMcontext.querySelectorAll(selector), cb, context);\n });\n};\n","module.exports = function() {\n // Borrowed wholesale from https://github.com/defunkt/jquery-pjax\n return (\n window.history &&\n window.history.pushState &&\n window.history.replaceState &&\n // pushState isn’t reliable on iOS until 5.\n !navigator.userAgent.match(\n /((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/\n )\n );\n};\n","/* global _gaq: true, ga: true */\n\nvar defaultSwitches = require(\"./switches\");\n\nmodule.exports = function(options) {\n options = options || {};\n options.elements = options.elements || \"a[href], form[action]\";\n options.selectors = options.selectors || [\"title\", \".js-Pjax\"];\n options.switches = options.switches || {};\n options.switchesOptions = options.switchesOptions || {};\n options.history =\n typeof options.history === \"undefined\" ? true : options.history;\n options.analytics =\n typeof options.analytics === \"function\" || options.analytics === false\n ? options.analytics\n : defaultAnalytics;\n options.scrollTo =\n typeof options.scrollTo === \"undefined\" ? 0 : options.scrollTo;\n options.scrollRestoration =\n typeof options.scrollRestoration !== \"undefined\"\n ? options.scrollRestoration\n : true;\n options.cacheBust =\n typeof options.cacheBust === \"undefined\" ? true : options.cacheBust;\n options.debug = options.debug || false;\n options.timeout = options.timeout || 0;\n options.currentUrlFullReload =\n typeof options.currentUrlFullReload === \"undefined\"\n ? false\n : options.currentUrlFullReload;\n\n // We can’t replace body.outerHTML or head.outerHTML.\n // It creates a bug where a new body or head are created in the DOM.\n // If you set head.outerHTML, a new body tag is appended, so the DOM has 2 body nodes, and vice versa\n if (!options.switches.head) {\n options.switches.head = defaultSwitches.switchElementsAlt;\n }\n if (!options.switches.body) {\n options.switches.body = defaultSwitches.switchElementsAlt;\n }\n\n return options;\n};\n\n/* istanbul ignore next */\nfunction defaultAnalytics() {\n if (window._gaq) {\n _gaq.push([\"_trackPageview\"]);\n }\n if (window.ga) {\n ga(\"send\", \"pageview\", { page: location.pathname, title: document.title });\n }\n}\n","var on = require(\"../events/on\");\nvar clone = require(\"../util/clone\");\n\nvar attrState = \"data-pjax-state\";\n\nvar formAction = function(el, event) {\n if (isDefaultPrevented(event)) {\n return;\n }\n\n // Since loadUrl modifies options and we may add our own modifications below,\n // clone it so the changes don't persist\n var options = clone(this.options);\n\n // Initialize requestOptions\n options.requestOptions = {\n requestUrl: el.getAttribute(\"action\") || window.location.href,\n requestMethod: el.getAttribute(\"method\") || \"GET\"\n };\n\n // create a testable virtual link of the form action\n var virtLinkElement = document.createElement(\"a\");\n virtLinkElement.setAttribute(\"href\", options.requestOptions.requestUrl);\n\n var attrValue = checkIfShouldAbort(virtLinkElement, options);\n if (attrValue) {\n el.setAttribute(attrState, attrValue);\n return;\n }\n\n event.preventDefault();\n\n if (el.enctype === \"multipart/form-data\") {\n options.requestOptions.formData = new FormData(el);\n } else {\n options.requestOptions.requestParams = parseFormElements(el);\n }\n\n el.setAttribute(attrState, \"submit\");\n\n options.triggerElement = el;\n this.loadUrl(virtLinkElement.href, options);\n};\n\nfunction parseFormElements(el) {\n var requestParams = [];\n var formElements = el.elements;\n\n for (var i = 0; i < formElements.length; i++) {\n var element = formElements[i];\n var tagName = element.tagName.toLowerCase();\n // jscs:disable disallowImplicitTypeConversion\n if (\n !!element.name &&\n element.attributes !== undefined &&\n tagName !== \"button\"\n ) {\n // jscs:enable disallowImplicitTypeConversion\n var type = element.attributes.type;\n\n if (\n !type ||\n (type.value !== \"checkbox\" && type.value !== \"radio\") ||\n element.checked\n ) {\n // Build array of values to submit\n var values = [];\n\n if (tagName === \"select\") {\n var opt;\n\n for (var j = 0; j < element.options.length; j++) {\n opt = element.options[j];\n if (opt.selected && !opt.disabled) {\n values.push(opt.hasAttribute(\"value\") ? opt.value : opt.text);\n }\n }\n } else {\n values.push(element.value);\n }\n\n for (var k = 0; k < values.length; k++) {\n requestParams.push({\n name: encodeURIComponent(element.name),\n value: encodeURIComponent(values[k])\n });\n }\n }\n }\n }\n\n return requestParams;\n}\n\nfunction checkIfShouldAbort(virtLinkElement, options) {\n // Ignore external links.\n if (\n virtLinkElement.protocol !== window.location.protocol ||\n virtLinkElement.host !== window.location.host\n ) {\n return \"external\";\n }\n\n // Ignore click if we are on an anchor on the same page\n if (\n virtLinkElement.hash &&\n virtLinkElement.href.replace(virtLinkElement.hash, \"\") ===\n window.location.href.replace(location.hash, \"\")\n ) {\n return \"anchor\";\n }\n\n // Ignore empty anchor \"foo.html#\"\n if (virtLinkElement.href === window.location.href.split(\"#\")[0] + \"#\") {\n return \"anchor-empty\";\n }\n\n // if declared as a full reload, just normally submit the form\n if (\n options.currentUrlFullReload &&\n virtLinkElement.href === window.location.href.split(\"#\")[0]\n ) {\n return \"reload\";\n }\n}\n\nvar isDefaultPrevented = function(event) {\n return event.defaultPrevented || event.returnValue === false;\n};\n\nmodule.exports = function(el) {\n var that = this;\n\n el.setAttribute(attrState, \"\");\n\n on(el, \"submit\", function(event) {\n formAction.call(that, el, event);\n });\n};\n","var on = require(\"../events/on\");\nvar clone = require(\"../util/clone\");\n\nvar attrState = \"data-pjax-state\";\n\nvar linkAction = function(el, event) {\n if (isDefaultPrevented(event)) {\n return;\n }\n\n // Since loadUrl modifies options and we may add our own modifications below,\n // clone it so the changes don't persist\n var options = clone(this.options);\n\n var attrValue = checkIfShouldAbort(el, event);\n if (attrValue) {\n el.setAttribute(attrState, attrValue);\n return;\n }\n\n event.preventDefault();\n\n // don’t do \"nothing\" if user try to reload the page by clicking the same link twice\n if (\n this.options.currentUrlFullReload &&\n el.href === window.location.href.split(\"#\")[0]\n ) {\n el.setAttribute(attrState, \"reload\");\n this.reload();\n return;\n }\n\n el.setAttribute(attrState, \"load\");\n\n options.triggerElement = el;\n this.loadUrl(el.href, options);\n};\n\nfunction checkIfShouldAbort(el, event) {\n // Don’t break browser special behavior on links (like page in new window)\n if (\n event.which > 1 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey\n ) {\n return \"modifier\";\n }\n\n // we do test on href now to prevent unexpected behavior if for some reason\n // user have href that can be dynamically updated\n\n // Ignore external links.\n if (\n el.protocol !== window.location.protocol ||\n el.host !== window.location.host\n ) {\n return \"external\";\n }\n\n // Ignore anchors on the same page (keep native behavior)\n if (\n el.hash &&\n el.href.replace(el.hash, \"\") ===\n window.location.href.replace(location.hash, \"\")\n ) {\n return \"anchor\";\n }\n\n // Ignore empty anchor \"foo.html#\"\n if (el.href === window.location.href.split(\"#\")[0] + \"#\") {\n return \"anchor-empty\";\n }\n}\n\nvar isDefaultPrevented = function(event) {\n return event.defaultPrevented || event.returnValue === false;\n};\n\nmodule.exports = function(el) {\n var that = this;\n\n el.setAttribute(attrState, \"\");\n\n on(el, \"click\", function(event) {\n linkAction.call(that, el, event);\n });\n\n on(\n el,\n \"keyup\",\n function(event) {\n if (event.keyCode === 13) {\n linkAction.call(that, el, event);\n }\n }.bind(this)\n );\n};\n","var clone = require(\"../util/clone\");\nvar newUid = require(\"../uniqueid\");\nvar trigger = require(\"../events/trigger\");\n\nmodule.exports = function(responseText, request, href, options) {\n options = clone(options || this.options);\n options.request = request;\n\n // Fail if unable to load HTML via AJAX\n if (responseText === false) {\n trigger(document, \"pjax:complete pjax:error\", options);\n\n return;\n }\n\n // push scroll position to history\n var currentState = window.history.state || {};\n window.history.replaceState(\n {\n url: currentState.url || window.location.href,\n title: currentState.title || document.title,\n uid: currentState.uid || newUid(),\n scrollPos: [\n document.documentElement.scrollLeft || document.body.scrollLeft,\n document.documentElement.scrollTop || document.body.scrollTop\n ]\n },\n document.title,\n window.location.href\n );\n\n // Check for redirects\n var oldHref = href;\n if (request.responseURL) {\n if (href !== request.responseURL) {\n href = request.responseURL;\n }\n } else if (request.getResponseHeader(\"X-PJAX-URL\")) {\n href = request.getResponseHeader(\"X-PJAX-URL\");\n } else if (request.getResponseHeader(\"X-XHR-Redirected-To\")) {\n href = request.getResponseHeader(\"X-XHR-Redirected-To\");\n }\n\n // Add back the hash if it was removed\n var a = document.createElement(\"a\");\n a.href = oldHref;\n var oldHash = a.hash;\n a.href = href;\n if (oldHash && !a.hash) {\n a.hash = oldHash;\n href = a.href;\n }\n\n this.state.href = href;\n this.state.options = options;\n\n try {\n this.loadContent(responseText, options);\n } catch (e) {\n trigger(document, \"pjax:error\", options);\n\n if (!this.options.debug) {\n if (console && console.error) {\n console.error(\"Pjax switch fail: \", e);\n }\n return this.latestChance(href);\n } else {\n throw e;\n }\n }\n};\n","module.exports = function() {\n if (this.options.debug && console) {\n if (typeof console.log === \"function\") {\n console.log.apply(console, arguments);\n }\n // IE is weird\n else if (console.log) {\n console.log(arguments);\n }\n }\n};\n","var attrState = \"data-pjax-state\";\n\nmodule.exports = function(el) {\n switch (el.tagName.toLowerCase()) {\n case \"a\":\n // only attach link if el does not already have link attached\n if (!el.hasAttribute(attrState)) {\n this.attachLink(el);\n }\n break;\n\n case \"form\":\n // only attach link if el does not already have link attached\n if (!el.hasAttribute(attrState)) {\n this.attachForm(el);\n }\n break;\n\n default:\n throw \"Pjax can only be applied on
or submit\";\n }\n};\n","var updateQueryString = require(\"./util/update-query-string\");\n\nmodule.exports = function(location, options, callback) {\n options = options || {};\n var queryString;\n var requestOptions = options.requestOptions || {};\n var requestMethod = (requestOptions.requestMethod || \"GET\").toUpperCase();\n var requestParams = requestOptions.requestParams || null;\n var formData = requestOptions.formData || null;\n var requestPayload = null;\n var request = new XMLHttpRequest();\n var timeout = options.timeout || 0;\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.status === 200) {\n callback(request.responseText, request, location, options);\n } else if (request.status !== 0) {\n callback(null, request, location, options);\n }\n }\n };\n\n request.onerror = function(e) {\n console.log(e);\n callback(null, request, location, options);\n };\n\n request.ontimeout = function() {\n callback(null, request, location, options);\n };\n\n // Prepare the request payload for forms, if available\n if (requestParams && requestParams.length) {\n // Build query string\n queryString = requestParams\n .map(function(param) {\n return param.name + \"=\" + param.value;\n })\n .join(\"&\");\n\n switch (requestMethod) {\n case \"GET\":\n // Reset query string to avoid an issue with repeat submissions where checkboxes that were\n // previously checked are incorrectly preserved\n location = location.split(\"?\")[0];\n\n // Append new query string\n location += \"?\" + queryString;\n break;\n\n case \"POST\":\n // Send query string as request payload\n requestPayload = queryString;\n break;\n }\n } else if (formData) {\n requestPayload = formData;\n }\n\n // Add a timestamp as part of the query string if cache busting is enabled\n if (options.cacheBust) {\n location = updateQueryString(location, \"t\", Date.now());\n }\n\n request.open(requestMethod, location, true);\n request.timeout = timeout;\n request.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n request.setRequestHeader(\"X-PJAX\", \"true\");\n request.setRequestHeader(\n \"X-PJAX-Selectors\",\n JSON.stringify(options.selectors)\n );\n\n // Send the proper header information for POST forms\n if (requestPayload && requestMethod === \"POST\" && !formData) {\n request.setRequestHeader(\n \"Content-Type\",\n \"application/x-www-form-urlencoded\"\n );\n }\n\n request.send(requestPayload);\n\n return request;\n};\n","var forEachEls = require(\"./foreach-els\");\n\nvar defaultSwitches = require(\"./switches\");\n\nmodule.exports = function(\n switches,\n switchesOptions,\n selectors,\n fromEl,\n toEl,\n options\n) {\n var switchesQueue = [];\n\n selectors.forEach(function(selector) {\n var newEls = fromEl.querySelectorAll(selector);\n var oldEls = toEl.querySelectorAll(selector);\n if (this.log) {\n this.log(\"Pjax switch\", selector, newEls, oldEls);\n }\n if (newEls.length !== oldEls.length) {\n throw \"DOM doesn’t look the same on new loaded page: ’\" +\n selector +\n \"’ - new \" +\n newEls.length +\n \", old \" +\n oldEls.length;\n }\n\n forEachEls(\n newEls,\n function(newEl, i) {\n var oldEl = oldEls[i];\n if (this.log) {\n this.log(\"newEl\", newEl, \"oldEl\", oldEl);\n }\n\n var callback = switches[selector]\n ? switches[selector].bind(\n this,\n oldEl,\n newEl,\n options,\n switchesOptions[selector]\n )\n : defaultSwitches.outerHTML.bind(this, oldEl, newEl, options);\n\n switchesQueue.push(callback);\n },\n this\n );\n }, this);\n\n this.state.numPendingSwitches = switchesQueue.length;\n\n switchesQueue.forEach(function(queuedSwitch) {\n queuedSwitch();\n });\n};\n","var on = require(\"./events/on\");\n\nmodule.exports = {\n outerHTML: function(oldEl, newEl) {\n oldEl.outerHTML = newEl.outerHTML;\n this.onSwitch();\n },\n\n innerHTML: function(oldEl, newEl) {\n oldEl.innerHTML = newEl.innerHTML;\n\n if (newEl.className === \"\") {\n oldEl.removeAttribute(\"class\");\n } else {\n oldEl.className = newEl.className;\n }\n\n this.onSwitch();\n },\n\n switchElementsAlt: function(oldEl, newEl) {\n oldEl.innerHTML = newEl.innerHTML;\n\n // Copy attributes from the new element to the old one\n if (newEl.hasAttributes()) {\n var attrs = newEl.attributes;\n for (var i = 0; i < attrs.length; i++) {\n oldEl.attributes.setNamedItem(attrs[i].cloneNode());\n }\n }\n\n this.onSwitch();\n },\n\n // Equivalent to outerHTML(), but doesn't require switchElementsAlt() for and \n replaceNode: function(oldEl, newEl) {\n oldEl.parentNode.replaceChild(newEl, oldEl);\n this.onSwitch();\n },\n\n sideBySide: function(oldEl, newEl, options, switchOptions) {\n var forEach = Array.prototype.forEach;\n var elsToRemove = [];\n var elsToAdd = [];\n var fragToAppend = document.createDocumentFragment();\n var animationEventNames =\n \"animationend webkitAnimationEnd MSAnimationEnd oanimationend\";\n var animatedElsNumber = 0;\n var sexyAnimationEnd = function(e) {\n if (e.target !== e.currentTarget) {\n // end triggered by an animation on a child\n return;\n }\n\n animatedElsNumber--;\n if (animatedElsNumber <= 0 && elsToRemove) {\n elsToRemove.forEach(function(el) {\n // browsing quickly can make the el\n // already removed by last page update ?\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n });\n\n elsToAdd.forEach(function(el) {\n el.className = el.className.replace(\n el.getAttribute(\"data-pjax-classes\"),\n \"\"\n );\n el.removeAttribute(\"data-pjax-classes\");\n });\n\n elsToAdd = null; // free memory\n elsToRemove = null; // free memory\n\n // this is to trigger some repaint (example: picturefill)\n this.onSwitch();\n }\n }.bind(this);\n\n switchOptions = switchOptions || {};\n\n forEach.call(oldEl.childNodes, function(el) {\n elsToRemove.push(el);\n if (el.classList && !el.classList.contains(\"js-Pjax-remove\")) {\n // for fast switch, clean element that just have been added, & not cleaned yet.\n if (el.hasAttribute(\"data-pjax-classes\")) {\n el.className = el.className.replace(\n el.getAttribute(\"data-pjax-classes\"),\n \"\"\n );\n el.removeAttribute(\"data-pjax-classes\");\n }\n el.classList.add(\"js-Pjax-remove\");\n if (switchOptions.callbacks && switchOptions.callbacks.removeElement) {\n switchOptions.callbacks.removeElement(el);\n }\n if (switchOptions.classNames) {\n el.className +=\n \" \" +\n switchOptions.classNames.remove +\n \" \" +\n (options.backward\n ? switchOptions.classNames.backward\n : switchOptions.classNames.forward);\n }\n animatedElsNumber++;\n on(el, animationEventNames, sexyAnimationEnd, true);\n }\n });\n\n forEach.call(newEl.childNodes, function(el) {\n if (el.classList) {\n var addClasses = \"\";\n if (switchOptions.classNames) {\n addClasses =\n \" js-Pjax-add \" +\n switchOptions.classNames.add +\n \" \" +\n (options.backward\n ? switchOptions.classNames.forward\n : switchOptions.classNames.backward);\n }\n if (switchOptions.callbacks && switchOptions.callbacks.addElement) {\n switchOptions.callbacks.addElement(el);\n }\n el.className += addClasses;\n el.setAttribute(\"data-pjax-classes\", addClasses);\n elsToAdd.push(el);\n fragToAppend.appendChild(el);\n animatedElsNumber++;\n on(el, animationEventNames, sexyAnimationEnd, true);\n }\n });\n\n // pass all className of the parent\n oldEl.className = newEl.className;\n oldEl.appendChild(fragToAppend);\n }\n};\n","module.exports = (function() {\n var counter = 0;\n return function() {\n var id = \"pjax\" + new Date().getTime() + \"_\" + counter;\n counter++;\n return id;\n };\n})();\n","module.exports = function(obj) {\n /* istanbul ignore if */\n if (null === obj || \"object\" !== typeof obj) {\n return obj;\n }\n var copy = obj.constructor();\n for (var attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = obj[attr];\n }\n }\n return copy;\n};\n","module.exports = function contains(doc, selectors, el) {\n for (var i = 0; i < selectors.length; i++) {\n var selectedEls = doc.querySelectorAll(selectors[i]);\n for (var j = 0; j < selectedEls.length; j++) {\n if (selectedEls[j].contains(el)) {\n return true;\n }\n }\n }\n\n return false;\n};\n","module.exports = function(target) {\n if (target == null) {\n return null;\n }\n\n var to = Object(target);\n\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source != null) {\n for (var key in source) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n to[key] = source[key];\n }\n }\n }\n }\n return to;\n};\n","module.exports = function() {};\n","module.exports = function(uri, key, value) {\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n if (uri.match(re)) {\n return uri.replace(re, \"$1\" + key + \"=\" + value + \"$2\");\n } else {\n return uri + separator + key + \"=\" + value;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lazyload = void 0;\n/**\n * default option\n */\nconst defaults = {\n src: \"data-src\",\n srcset: \"data-srcset\",\n selector: \".lazyload\",\n root: null,\n rootMargin: \"0px\",\n threshold: 0\n};\n/**\n * @class LazyLoad\n */\nclass LazyLoad {\n constructor(images, options) {\n this.observer = null;\n this.settings = Object.assign(Object.assign({}, defaults), options);\n this.images = images || document.querySelectorAll(this.settings.selector);\n this.init();\n }\n init() {\n /* Without observers load everything and bail out early. */\n if (!IntersectionObserver) {\n this.loadImages();\n return;\n }\n const self = this;\n let observerConfig = {\n root: this.settings.root,\n rootMargin: this.settings.rootMargin,\n threshold: [this.settings.threshold]\n };\n this.observer = new IntersectionObserver(function (entries) {\n Array.prototype.forEach.call(entries, function (entry) {\n if (entry.isIntersecting) {\n self.observer.unobserve(entry.target);\n let src = entry.target.getAttribute(self.settings.src);\n let srcset = entry.target.getAttribute(self.settings.srcset);\n if (\"img\" === entry.target.tagName.toLowerCase()) {\n if (src) {\n entry.target.src = src;\n }\n if (srcset) {\n entry.target.srcset = srcset;\n }\n }\n else {\n entry.target.style.backgroundImage = \"url(\" + src + \")\";\n }\n }\n });\n }, observerConfig);\n this.images.forEach((image) => {\n self.observer.observe(image);\n });\n }\n loadAndDestroy() {\n if (!this.settings) {\n return;\n }\n this.loadImages();\n this.destroy();\n }\n loadImages() {\n if (!this.settings) {\n return;\n }\n const self = this;\n Array.prototype.forEach.call(this.images, function (image) {\n let src = image.getAttribute(self.settings.src);\n let srcset = image.getAttribute(self.settings.srcset);\n if (\"img\" === image.tagName.toLowerCase()) {\n if (src) {\n image.src = src;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n }\n else {\n image.style.backgroundImage = \"url('\" + src + \"')\";\n }\n });\n }\n /**\n * Destroy Lazyload Instance\n * @returns\n */\n destroy() {\n if (!this.settings) {\n return;\n }\n this.observer.disconnect();\n this.settings = null;\n }\n}\nexports.default = LazyLoad;\nconst lazyload = (images, options) => new LazyLoad(images, options);\nexports.lazyload = lazyload;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst AddComment = {\n respondId: '',\n moveForm: function (commId, parentId, respondId) {\n const t = this, comm = document.getElementById(commId), respond = document.getElementById(respondId), cancel = document.getElementById('cancel-comment-reply-link'), parent = document.getElementById('comment_parent');\n let div;\n //post = document.getElementById('comment_post_ID');\n t.respondId = respondId;\n if (!document.getElementById('wp-temp-form-div')) {\n div = document.createElement('div');\n div.id = 'wp-temp-form-div';\n div.style.display = 'none';\n respond.parentNode.insertBefore(div, respond);\n }\n if (!comm) {\n const temp = document.getElementById('wp-temp-form-div');\n document.getElementById('comment_parent').value = '0';\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n }\n else {\n comm.parentNode.insertBefore(respond, comm.nextSibling);\n }\n const _respond = document.getElementById(\"respond\");\n window.scrollTo({\n top: _respond.getBoundingClientRect().top + window.pageYOffset - _respond.clientTop - 100,\n behavior: \"smooth\"\n });\n parent.value = parentId;\n cancel.style.display = '';\n cancel.onclick = function (e) {\n var t = AddComment, temp = document.getElementById('wp-temp-form-div'), respond = document.getElementById(t.respondId);\n document.getElementById('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp);\n }\n this.style.display = 'none';\n this.onclick = null;\n return false;\n };\n try {\n document.getElementById('comment').focus();\n }\n catch (e) { }\n return false;\n },\n clearButterbar: function () {\n const butterBar = document.getElementsByClassName(\"butterBar\");\n if (butterBar.length > 0) {\n for (let i = 0; i < butterBar.length; i++) {\n butterBar[i].remove();\n }\n }\n },\n createButterbar: function (message, showtime) {\n const t = this;\n t.clearButterbar();\n document.body.insertAdjacentHTML('beforeend', '

' + message + '

');\n setTimeout(() => { t.clearButterbar(); }, showtime > 0 ? showtime : 6000);\n }\n};\nexports.default = AddComment;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(apiPath, params = {}, nonce = true) {\n const path = new URL(apiPath);\n const { searchParams } = path;\n for (const [key, value] of Object.entries(params)) {\n searchParams.set(key, value);\n }\n if (nonce)\n searchParams.set(\"_wpnonce\", Poi.nonce);\n return path.toString();\n}\nexports.default = default_1;\n","\"use strict\";\n/**\n * sakura-app.js L943-963\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst txt = [\n \"# 商业转载请联系作者获得授权,非商业转载请注明出处。\",\n \"# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.\",\n \"# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)\",\n \"# 作者(Author):\" + mashiro_option.author_name,\n \"# 链接(URL):\" + window.location.href,\n \"# 来源(Source):\" + mashiro_option.site_name,\n];\nfunction setClipboardText(event, selectionTxt) {\n event.preventDefault();\n const htmlData = txt.join('
') + \"

\" + selectionTxt.replace(/\\r\\n/g, \"
\"), textData = txt.join('\\n') + \"\\n\\n\" + selectionTxt.toString().replace(/\\r\\n/g, \"\\n\");\n if (event.clipboardData) {\n event.clipboardData.setData(\"text/html\", htmlData);\n event.clipboardData.setData(\"text/plain\", textData);\n }\n else if (window.clipboardData) {\n //deprecate?\n return window.clipboardData.setData(\"text\", textData);\n }\n}\nfunction copytext(e) {\n const selection = window.getSelection();\n if (selection) {\n const selectionText = selection.toString();\n if (selectionText.length > 30) {\n setClipboardText(e, selectionText);\n addComment.createButterbar(\"复制成功!
Copied to clipboard successfully!\", 1000);\n }\n }\n}\n/**\n * 添加复制时的版权提示\n */\nfunction add_copyright() {\n if (mashiro_option.clipboardCopyright) {\n document.body.removeEventListener(\"copy\", copytext);\n document.body.addEventListener(\"copy\", copytext);\n }\n}\nexports.default = add_copyright;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkDarkModeSetting = exports.ifDarkmodeShouldOn = exports.turnOffDarkMode = exports.turnOnDarkMode = exports.isInDarkMode = void 0;\nconst mediaQuery = window.matchMedia('(prefers-color-scheme:dark)');\nlet inDarkMode = false;\nconst isInDarkMode = () => inDarkMode;\nexports.isInDarkMode = isInDarkMode;\nfunction informDarkModeChange(nextValue) {\n console.log(\"夜间模式\" + (nextValue ? \"开启\" : \"关闭\"));\n if (nextValue !== inDarkMode) {\n document.dispatchEvent(new CustomEvent(\"darkmode\", { detail: nextValue }));\n inDarkMode = nextValue;\n }\n}\nfunction mediaQueryCallback() {\n const dark = localStorage.getItem(\"dark\");\n //仅在深色模式不是用户主动设置时触发\n if (!dark) {\n if (mediaQuery.matches && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nif (mashiro_option.dm_strategy === 'client') {\n mediaQuery.removeEventListener('change', mediaQueryCallback);\n mediaQuery.addEventListener('change', mediaQueryCallback);\n}\nfunction saveUserSetting(value) {\n if (value == ifDarkmodeShouldOn()) {\n //用户设置与自动切换深色模式判断一致时,恢复自动切换\n localStorage.removeItem('dark');\n }\n else {\n if (value == true) {\n localStorage.setItem(\"dark\", \"1\");\n }\n else {\n localStorage.setItem(\"dark\", \"0\");\n }\n }\n localStorage.setItem(\"bgImgSetting\", \"white-bg\");\n}\nfunction turnOnDarkMode(userTriggered) {\n document.documentElement.style.background = \"#333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333\";\n document.body.classList.add(\"dark\");\n if (userTriggered)\n saveUserSetting(true);\n informDarkModeChange(true);\n}\nexports.turnOnDarkMode = turnOnDarkMode;\nfunction turnOffDarkMode(userTriggered) {\n document.documentElement.style.background = \"unset\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"rgba(255, 255, 255, .8)\";\n document.body.classList.remove(\"dark\");\n document.body.classList.remove(\"dynamic\");\n informDarkModeChange(false);\n if (userTriggered) {\n saveUserSetting(false);\n document.body.style.backgroundImage = `url(${mashiro_option.skin_bg0})`;\n }\n}\nexports.turnOffDarkMode = turnOffDarkMode;\n/**\n * 检查是否在深色模式时间\n * @returns {boolean}\n */\nfunction checkTime() {\n const today = new Date();\n return (today.getHours() > 21 || today.getHours() < 7);\n}\nfunction ifDarkmodeShouldOn() {\n switch (mashiro_option.dm_strategy) {\n case 'time':\n return checkTime();\n case 'client':\n return mediaQuery.matches;\n case 'eien':\n return true;\n default:\n return checkTime();\n }\n}\nexports.ifDarkmodeShouldOn = ifDarkmodeShouldOn;\nfunction checkDarkModeSetting() {\n const dark = localStorage.getItem(\"dark\");\n if (!dark) {\n //无用户设置时,自动切换深色模式\n if (ifDarkmodeShouldOn() && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n else {\n if (dark == '1') {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nexports.checkDarkModeSetting = checkDarkModeSetting;\n/* function mobile_dark_light() {\n if (document.body.classList.contains(\"dark\")) {\n document.documentElement.style.background = \"unset\";\n document.body.classList.remove(\"dark\");\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n setCookie(\"dark\", \"0\", 0.33);\n } else {\n document.documentElement.style.background = \"#333333\";\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33);\n }\n} */ \n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst md5_1 = __importDefault(require(\"md5\"));\n/**\n * Gravatar\n * from a6cd66c 11.third-part-functions.js\n */\nconst get_gravatar = (email, size = 80) => 'https://' + Poi.gravatar_url + '/' + md5_1.default(email) + '.jpg?s=' + size + '&d=mm';\nexports.default = get_gravatar;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pjax = void 0;\nconst pjax_1 = __importDefault(require(\"pjax\"));\nconst cookie_1 = require(\"../../module/cookie\");\n//检查是否应当开启Poi.pjax\nconst UA = navigator.userAgent;\nconst version_list = { Firefox: 84, Edg: 88, Chrome: 88, Opera: 74, Version: 9 };\nconst reg = UA.indexOf('Chrome') != -1 ? /(Chrome)\\/(\\d+)/i : /(Firefox|Chrome|Version|Opera)\\/(\\d+)/i;\nconst version = UA.match(reg);\nPoi.pjax = version && (parseInt(version[2]) >= version_list[version[1]]) && Poi.pjax;\nif (document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') === 0)\n cookie_1.setCookie('su_webp', '1', 114514);\nconst pjax = Poi.pjax && new pjax_1.default({\n selectors: [\"#page\", \"title\", \".footer-device\"],\n //@ts-ignore\n elements: [\n \"a:not([target='_top']):not(.comment-reply-link):not(#pagination a):not(#comments-navi a):not(.user-menu-option a):not(.header-user-avatar a):not(.emoji-item):not(.no-pjax)\",\n \".search-form\",\n \".s-search\",\n ],\n timeout: 8000,\n history: true,\n cacheBust: false,\n});\nexports.pjax = pjax;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeCookie = exports.getCookie = exports.setCookie = void 0;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nfunction setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexports.setCookie = setCookie;\nfunction getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexports.getCookie = getCookie;\nfunction removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\nexports.removeCookie = removeCookie;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksakurairo_scripts\"] = self[\"webpackChunksakurairo_scripts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","function imgError(ele, type) {\n switch (type) {\n case 1:\n ele.src = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';\n break;\n case 2:\n ele.src = 'https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g';\n break;\n default:\n ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';\n }\n}\nfunction cmt_showPopup(ele) {\n let popup = ele.querySelector(\"#thePopup\");\n popup.classList.add(\"show\");\n ele.querySelector(\"input\").onblur = () => {\n popup.classList.remove(\"show\");\n }\n}\n/*视频feature*/\nfunction coverVideo() {\n let video = document.getElementById(\"coverVideo\"),\n btn = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n video.play();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('play:coverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('pause:coverVideo()');\n }\n}\n\nfunction killCoverVideo() {\n var video = document.getElementById(\"coverVideo\");\n var btn = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n //console.info('none:killCoverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch (e) { };\n //console.info('pause:killCoverVideo()');\n }\n}\nfunction mail_me() {\n var mail = \"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain;\n window.open(mail);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nconst motionEles = [\".bili\", \".menhera\", \".tieba\"];\nfunction motionSwitch(ele) {\n for (let i = 0; i < motionEles.length; i++) {\n document.querySelector(motionEles[i] + '-bar').classList.remove('on-hover');\n document.querySelector(motionEles[i] + '-container').style.display = 'none';\n }\n document.querySelector(ele + '-bar').classList.add(\"on-hover\");\n document.querySelector(ele + '-container').style.display = 'block';\n}\nfunction grin(tag, type, before, after) {\n let myField;\n switch (type) {\n case \"custom\": tag = before + tag + after; break;\n case \"Img\": tag = '[img]' + tag + '[/img]'; break;\n case \"Math\": tag = ' {{' + tag + '}} '; break;\n case \"tieba\": tag = ' ::' + tag + ':: '; break;\n default: tag = ' :' + tag + ': ';\n }\n if (document.getElementById('comment') && document.getElementById('comment').type == 'textarea') {\n myField = document.getElementById('comment');\n } else {\n return false;\n }\n if (document.selection) {\n myField.focus();\n sel = document.selection.createRange();\n sel.text = tag;\n myField.focus();\n } else if (myField.selectionStart || myField.selectionStart == '0') {\n let startPos = myField.selectionStart,\n endPos = myField.selectionEnd,\n cursorPos = endPos;\n myField.value = myField.value.substring(0, startPos) + tag + myField.value.substring(endPos, myField.value.length);\n cursorPos += tag.length;\n myField.focus();\n myField.selectionStart = cursorPos;\n myField.selectionEnd = cursorPos;\n } else {\n myField.value += tag;\n myField.focus();\n }\n}\nimport get_gravatar from './get_gravatar'\nwindow.get_gravatar = get_gravatar\n\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.killCoverVideo = killCoverVideo\nwindow.mail_me = mail_me\nwindow.headertop_down = headertop_down\nwindow.motionSwitch = motionSwitch\nwindow.grin = grin","/**\n * app.js - Client script bundle for Sakurairo, a WordPress theme.\n * @author bymoye\n * @author KotoriK\n * @license GPL-v2\n * Github Repository:\n * https://github.com/Fuukei/Sakurairo_Scripts\n * https://github.com/mirai-mamori/Sakurairo source from f7db3c5 \n * \n * modified from Mashiro's work.\n * *** original header ***\n * Sakura theme application bundle\n * @author Mashiro\n * @url https://2heng.xin\n * @date 2019.8.3\n * *** ***\n */\nimport buildAPI from './api'\nimport { setCookie, getCookie, } from '../../module/cookie'\nimport add_copyright from './copyright'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport NProgress from 'nprogress'\nimport { pjax } from './pjax';\nimport './global-func'\n\nmashiro_global.variables = new function () {\n this.has_hls = false;\n this.skinSecter = true;\n}\nmashiro_global.ini = new function () {\n this.normalize = function () { // initial functions when page first load (首次加载页面时的初始化函数)\n lazyload();\n post_list_show_animation();\n copy_code_block();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n scrollBar();\n load_bangumi();\n sm();\n }\n this.pjax = function () { // pjax reload functions (pjax 重载函数)\n pjaxInit();\n post_list_show_animation();\n copy_code_block();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n load_bangumi();\n sm();\n }\n}\n\n/**code highlight */\n\nconst code_highlight_style = (() => {\n function gen_top_bar(pre, code_a) {\n const attributes = {\n 'autocomplete': 'off',\n 'autocorrect': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false',\n 'contenteditable': 'false',\n 'design': 'by Mashiro'\n }\n if (!pre.children[0]) return\n const ele_name = pre.children[0].className\n let lang = ele_name.substr(0, ele_name.indexOf(\" \")).replace('language-', '')\n if (lang.toLowerCase() == \"hljs\") lang = code_a.className.replace('hljs', '') ? code_a.className.replace('hljs', '') : \"text\";\n pre.classList.add(\"highlight-wrap\");\n for (const t in attributes) {\n pre.setAttribute(t, attributes[t]);\n }\n code_a.setAttribute('data-rel', lang.toUpperCase());\n }\n async function importHighlightjs() {\n try {\n if (!window.hljs) {\n window.hljs = await import('highlight.js')\n await import('highlightjs-line-numbers.js')\n }\n } catch (e) { console.warn(e) }\n }\n async function hljs_process(pre, code) {\n try {\n await importHighlightjs()\n for (let i = 0; i < code.length; i++) {\n hljs.highlightBlock(code[i]);\n }\n for (let i = 0; i < pre.length; i++) {\n gen_top_bar(pre[i], code[i]);\n }\n hljs.initLineNumbersOnLoad();\n const ec = document.querySelector(\".entry-content\");\n ec && ec.addEventListener(\"click\", function (e) {\n //类型问题\n //可以考虑换成 ec\n if (!e.target.classList.contains(\"highlight-wrap\")) return;\n e.target.classList.toggle(\"code-block-fullscreen\");\n document.documentElement.classList.toggle('code-block-fullscreen-html-scroll');\n })\n } catch (e) {\n console.warn(e)\n }\n }\n const PrismBaseUrl = mashiro_option.code_highlight_prism?.autoload_path ?? 'https://cdn.jsdelivr.net/npm/prismjs@1.23.0/'\n let current_prism_css = undefined\n const themeCSS = (() => {\n const { light, dark } = mashiro_option.code_highlight_prism?.theme ?? {}\n const theme = {\n light: light ?? 'themes/prism.min.css',\n dark: dark ?? 'themes/prism-tomorrow.min.css',\n }\n for (const theme_name in theme) {\n theme[theme_name] = new URL(theme[theme_name], PrismBaseUrl).toString()\n }\n return theme\n })()\n function loadPrismCSS(darkmodeOn) {\n const nextCSS = darkmodeOn ? themeCSS.dark : themeCSS.light\n if (current_prism_css) {\n if (current_prism_css.href !== nextCSS) {\n const nextCSSElement = loadCSS(nextCSS)\n nextCSSElement.addEventListener('load', () => {\n current_prism_css.remove()\n current_prism_css = nextCSSElement\n })\n }\n } else {\n current_prism_css = loadCSS(nextCSS)\n }\n }\n async function importPrismJS() {\n try {\n if (!window.Prism) {\n const { default: Prism } = await import('prismjs')\n window.Prism = Prism\n }\n //必备插件全家桶\n await Promise.all([\n import('prismjs/plugins/autoloader/prism-autoloader'),\n import('prismjs/plugins/previewers/prism-previewers'),\n import('prismjs/plugins/toolbar/prism-toolbar')\n .then(() => import('prismjs/plugins/show-language/prism-show-language'))\n ])\n loadCSS(new URL('plugins/toolbar/prism-toolbar.min.css', PrismBaseUrl).toString())\n loadCSS(new URL('plugins/previewers/prism-previewers.min.css', PrismBaseUrl).toString())\n\n Prism.plugins.autoloader.languages_path = new URL('components/', PrismBaseUrl).toString()\n loadPrismCSS(isInDarkMode())\n document.addEventListener('darkmode', (e) => {\n loadPrismCSS(e.detail)\n })\n } catch (reason) {\n console.warn(reason)\n }\n }\n function loadPrismPluginLineNumbers() {\n loadCSS(new URL('plugins/line-numbers/prism-line-numbers.min.css', PrismBaseUrl).toString())\n return import('prismjs/plugins/line-numbers/prism-line-numbers')\n }\n /**\n * \n * @param {NodeListOf} code document.querySelectorAll(\"pre code\")\n */\n async function prism_process(code) {\n try {\n await importPrismJS()\n if (mashiro_option.code_highlight_prism.line_number_all) {\n document.querySelector('.entry-content').classList.add('line-numbers')\n await loadPrismPluginLineNumbers()\n }\n code.forEach(async ele => {\n if (ele.parentElement.classList.contains('line-numbers')) {\n await loadPrismPluginLineNumbers()\n }\n if (ele.classList.contains('match-braces')) {\n await import('prismjs/plugins/match-braces/prism-match-braces')\n loadCSS(new URL('plugins/match-braces/prism-match-braces.min.css', PrismBaseUrl).toString())\n }\n Prism.highlightElement(ele)\n })\n Prism.plugins.fileHighlight && Prism.plugins.fileHighlight.highlight()\n } catch (error) {\n console.warn(error)\n }\n }\n\n return async function code_highlight_style() {\n //hljs.requireLanguage('javascript',await import('highlight.js/lib/languages/javascript'))\n const pre = document.getElementsByTagName(\"pre\"),\n code = document.querySelectorAll(\"pre code\");\n if (!pre.length) return;\n switch (mashiro_option.code_highlight) {\n case 'hljs':\n return hljs_process(pre, code)\n case 'prism':\n return prism_process(code)\n case 'custom': return\n default:\n console.warn(`mashiro_option.code_highlight这咋填的是个${mashiro_option.code_highlight}啊🤔`)\n }\n }\n})()\n\nfunction slideToogle(el, duration = 1000, mode = '', callback) {\n let dom = el;\n dom.status = dom.status || getComputedStyle(dom, null)['display'];\n const flag = dom.status != 'none';\n if ((flag == true && mode == \"show\") || (flag == false && mode == \"hide\")) return;\n dom.status = flag ? 'none' : 'block';\n dom.style.transition = 'height ' + duration / 1000 + 's';\n dom.style.overflow = 'hidden';\n clearTimeout(dom.tagTimer);\n dom.tagTimer = dom.tagTimer || null;\n dom.style.display = 'block';\n dom.tagHeight = dom.tagHeight || dom.clientHeight + 'px';\n dom.style.display = '';\n dom.style.height = flag ? dom.tagHeight : \"0px\";\n setTimeout(() => {\n dom.style.height = flag ? \"0px\" : dom.tagHeight\n }, 0);\n dom.tagTimer = setTimeout(() => {\n dom.style.display = flag ? 'none' : 'block';\n dom.style.transition = '';\n dom.style.overflow = '';\n dom.style.height = '';\n dom.status = dom.tagHeight = null;\n }, duration);\n if (callback) callback();\n}\n\nfunction post_list_show_animation() {\n if (document.querySelector('article') && document.querySelector('article').classList.contains(\"post-list-thumb\")) {\n const options = {\n root: null,\n threshold: [0.66]\n },\n callback = (entries) => {\n entries.forEach((article) => {\n if (!window.IntersectionObserver) {\n article.target.style.willChange = 'auto';\n if (article.target.classList.contains(\"post-list-show\") === false) {\n article.target.classList.add(\"post-list-show\");\n }\n } else {\n if (article.target.classList.contains(\"post-list-show\")) {\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n } else {\n if (article.isIntersecting) {\n article.target.classList.add(\"post-list-show\");\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n }\n }\n }\n })\n },\n io = new IntersectionObserver(callback, options),\n articles = document.getElementsByClassName('post-list-thumb');\n for (let a = 0; a < articles.length; a++) {\n io.observe(articles[a]);\n }\n }\n}\nmashiro_global.font_control = new function () {\n const cbs = document.getElementsByClassName(\"control-btn-serif\")[0],\n cbss = document.getElementsByClassName(\"control-btn-sans-serif\")[0];\n this.change_font = function () {\n if (document.body.classList.contains(\"serif\")) {\n document.body.classList.remove(\"serif\");\n cbs && cbs.classList.remove(\"selected\");\n cbss && cbss.classList.remove(\"selected\");\n setCookie(\"font_family\", \"sans-serif\", 30);\n } else {\n document.body.classList.add(\"serif\");\n cbs && cbs.classList.add(\"selected\");\n cbss && cbss.classList.remove(\"selected\");\n setCookie(\"font_family\", \"serif\", 30);\n if (document.body.clientWidth <= 860) {\n addComment.createButterbar(\"将从网络加载字体,流量请注意\");\n }\n }\n }\n this.ini = function () {\n if (document.body.clientWidth > 860) {\n if (!getCookie(\"font_family\") || getCookie(\"font_family\") == \"serif\")\n document.body.classList.add(\"serif\");\n }\n if (getCookie(\"font_family\") == \"sans-serif\") {\n document.body.classList.remove(\"sans-serif\");\n cbs && cbs.classList.remove(\"selected\");\n cbss && cbss.classList.add(\"selected\");\n }\n }\n}\nmashiro_global.font_control.ini();\n\ncode_highlight_style();\n\nconst ready = function (fn) {\n if (document.readyState === 'complete') {\n return fn();\n }\n document.addEventListener('DOMContentLoaded', fn, false);\n};\n/**\n * 上传图片提示\n */\nfunction attach_image() {\n let cached = document.getElementsByClassName(\"insert-image-tips\")[0],\n upload_img = document.getElementById('upload-img-file');\n if (!upload_img) return;\n upload_img.addEventListener(\"change\", (function () {\n if (this.files.length > 10) {\n addComment.createButterbar(\"每次上传上限为10张.
10 files max per request.\");\n return 0;\n }\n for (let i = 0; i < this.files.length; i++) {\n if (this.files[i].size >= 5242880) {\n alert('图片上传大小限制为5 MB.\\n5 MB max per file.\\n\\n「' + this.files[i].name + '」\\n\\n这张图太大啦~请重新上传噢!\\nThis image is too large~Please reupload!');\n return;\n }\n }\n for (let i = 0; i < this.files.length; i++) {\n let f = this.files[i],\n formData = new FormData(),\n xhr = new XMLHttpRequest();\n formData.append('cmt_img_file', f);\n xhr.addEventListener('loadstart', function () {\n cached.innerHTML = '';\n addComment.createButterbar(\"上传中...
Uploading...\");\n });\n xhr.open(\"POST\", buildAPI(Poi.api + 'sakura/v1/image/upload'), true);\n xhr.send(formData);\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {\n cached.innerHTML = '';\n setTimeout(function () {\n cached.innerHTML = '';\n }, 1000);\n let res = JSON.parse(xhr.responseText);\n if (res.status == 200) {\n let get_the_url = res.proxy;\n document.getElementById(\"upload-img-show\").insertAdjacentHTML('afterend', '');\n lazyload();\n addComment.createButterbar(\"图片上传成功~
Uploaded successfully~\");\n grin(get_the_url, type = 'Img');\n } else {\n addComment.createButterbar(\"上传失败!
Uploaded failed!
文件名/Filename: \" + f.name + \"
code: \" + res.status + \"
\" + res.message, 3000);\n }\n } else if (xhr.readyState == 4) {\n cached.innerHTML = '';\n alert(\"上传失败,请重试.\\nUpload failed, please try again.\");\n setTimeout(function () {\n cached.innerHTML = '';\n }, 1000);\n }\n }\n };\n }));\n}\n\n\nfunction clean_upload_images() {\n document.getElementById(\"upload-img-show\").innerHTML = '';\n}\n/**\n * 添加上传图片的提示\n */\nfunction add_upload_tips() {\n const form_submit = document.querySelector('.form-submit #submit');\n if (form_submit == null) return;\n if (!mashiro_option.comment_upload_img) {\n form_submit.style.width = '100%'\n return\n }\n form_submit.insertAdjacentHTML('afterend', '
上传图片
');\n attach_image();\n\n const file_submit = document.getElementById('upload-img-file'),\n hover = document.getElementsByClassName('insert-image-tips')[0],\n Tip = document.getElementById('uploadTipPopup');\n if (!file_submit) return;\n file_submit.addEventListener(\"mouseenter\", function () {\n hover.classList.toggle('insert-image-tips-hover');\n Tip.classList.toggle('show');\n });\n file_submit.addEventListener(\"mouseleave\", function () {\n hover.classList.toggle('insert-image-tips-hover');\n Tip.classList.toggle('show');\n });\n}\n\nfunction click_to_view_image() {\n const comment_inline = document.getElementsByClassName('comment_inline_img');\n if (!comment_inline.length) return;\n document.getElementsByClassName(\"comments-main\")[0].addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"comment_inline_img\")) {\n window.open(e.target.src);\n }\n })\n}\nclick_to_view_image();\n\n\nfunction original_emoji_click() {\n const emoji = document.getElementsByClassName('emoji-item');\n if (!emoji.length) return;\n document.querySelector(\".menhera-container\").addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"emoji-item\")) {\n grin(e.target.innerText, \"custom\", \"`\", \"` \");\n }\n })\n}\noriginal_emoji_click();\n\nfunction scrollBar() {\n if (document.body.clientWidth > 860) {\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || document.body.scrollTop,\n a = document.documentElement.scrollHeight || document.body.scrollHeight,\n b = window.innerHeight, c,\n result = parseInt(s / (a - b) * 100),\n cached = document.getElementById('bar');\n cached.style.width = result + \"%\";\n switch (true) {\n case (result <= 19): c = '#cccccc'; break;\n case (result <= 39): c = '#50bcb6'; break;\n case (result <= 59): c = '#85c440'; break;\n case (result <= 79): c = '#f2b63c'; break;\n case (result <= 99): c = '#FF0000'; break;\n case (result == 100): c = '#5aaadb'; break;\n default: c = \"orange\";\n }\n cached.style.background = c;\n let f = document.querySelector(\".toc-container\"),\n sc = document.querySelector(\".site-content\"),\n skinMenu = document.querySelector(\".skin-menu\");\n if (f && sc) {\n f.style.height = sc.getBoundingClientRect(outerHeight)[\"height\"] + \"px\";\n }\n skinMenu && skinMenu.classList.remove(\"show\");\n })\n }\n}\n\nfunction checkSkinSecter() {\n if (mashiro_global.variables.skinSecter === false) {\n const pattern = document.querySelector(\".pattern-center\"),\n headertop = document.querySelector(\".headertop-bar\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center\");\n pattern.classList.add(\"pattern-center-sakura\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar\");\n headertop.classList.add(\"headertop-bar-sakura\");\n }\n } else {\n const pattern = document.querySelector(\".pattern-center-sakura\"),\n headertop = document.querySelector(\".headertop-bar-sakura\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center-sakura\");\n pattern.classList.add(\"pattern-center\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar-sakura\");\n headertop.classList.add(\"headertop-bar\");\n }\n }\n}\nimport { checkDarkModeSetting, turnOnDarkMode, turnOffDarkMode, isInDarkMode } from './darkmode'\nfunction no_right_click() {\n const pri = document.getElementById(\"primary\");\n if (pri) pri.addEventListener(\"contextmenu\", function (e) {\n if (e.target.nodeName.toLowerCase() == \"img\") {\n e.preventDefault();\n e.stopPropagation();\n }\n })\n}\n\nno_right_click();\nfunction changeCoverBG() {\n const centerbg = document.querySelector(\".centerbg\")\n if (centerbg) {\n const type_mobile = document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true\n const cover_api = new URL(mashiro_option.cover_api)\n if (type_mobile) cover_api.searchParams.set('type', 'mobile')\n centerbg.style.backgroundImage = \"url(\" + cover_api.toString() + \")\";\n }\n}\nfunction changeBG(bgid) {\n //@sideeffect\n mashiro_global.variables.skinSecter = bgid == \"white-bg\" || bgid == \"dark-bg\";\n checkSkinSecter();\n\n let bg_url;\n switch (bgid) {\n /* case \"white-bg\":\n temp = mashiro_option.skin_bg0;\n document.body.classList.remove(\"dynamic\");\n break; */\n case \"diy1-bg\":\n bg_url = mashiro_option.skin_bg1;\n break;\n case \"diy2-bg\":\n bg_url = mashiro_option.skin_bg2;\n break;\n case \"diy3-bg\":\n bg_url = mashiro_option.skin_bg3;\n break;\n case \"diy4-bg\":\n bg_url = mashiro_option.skin_bg4;\n break;\n }\n document.body.style.backgroundImage = bg_url ? `url(${bg_url})` : '';\n}\nready(function () {\n changeCoverBG();\n //let checkskin_bg = (a) => a == \"none\" ? \"\" : a;\n\n function addChangeBackgroundListener() {\n const cached = document.querySelectorAll(\".menu-list li\");\n cached.forEach(e => {\n e.addEventListener(\"click\", function () {\n const tagid = this.id;\n if (tagid == \"dark-bg\") {\n /* document.documentElement.style.background = \"#333333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333333\";\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33); */\n turnOnDarkMode(true)\n } else if (tagid == \"white-bg\") {\n turnOffDarkMode(true)\n } else {\n turnOffDarkMode(true)\n changeBG(tagid)\n localStorage.setItem(\"bgImgSetting\", tagid)\n }\n closeSkinMenu();\n });\n });\n }\n addChangeBackgroundListener();\n function checkBgImgCookie() {\n const bgurl = localStorage.getItem(\"bgImgSetting\");\n if (bgurl) {\n changeBG(bgurl);\n }\n }\n checkBgImgCookie()\n setTimeout(function () {\n checkDarkModeSetting();\n }, 100);\n\n function closeSkinMenu() {\n document.querySelector(\".skin-menu\").classList.remove(\"show\");\n setTimeout(function () {\n if (document.querySelector(\".changeSkin-gear\") != null) {\n document.querySelector(\".changeSkin-gear\").style.visibility = \"visible\";\n }\n }, 300);\n }\n let changskin = document.querySelector(\"#changskin\"),\n close_SkinMenu = document.querySelector(\".skin-menu #close-skinMenu\");\n changskin && changskin.addEventListener(\"click\", function () {\n document.querySelector(\".skin-menu\").classList.toggle(\"show\");\n })\n close_SkinMenu && close_SkinMenu.addEventListener(\"click\", function () {\n closeSkinMenu();\n })\n add_upload_tips();\n});\nlet bgn = 1;\nfunction setBG() {\n const cover_api_url = new URL(mashiro_option.cover_api)\n if (document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true) {\n cover_api_url.searchParams.set('type', 'mobile')\n document.querySelector(\".centerbg\").style.backgroundImage = \"url(\" + cover_api_url.toString() + \"&\" + bgn + \")\";\n } else {\n document.querySelector(\".centerbg\").style.backgroundImage = \"url(\" + cover_api_url.toString() + (cover_api_url.search === '' ? \"?\" : '&') + bgn + \")\";\n }\n}\nfunction nextBG() {\n setBG()\n bgn++;\n}\n\nfunction preBG() {\n bgn--;\n setBG()\n}\nfunction bgButtonAddListener() {\n const next = document.getElementById(\"bg-next\"),\n pre = document.getElementById(\"bg-pre\");\n if (next) { next.onclick = () => { nextBG() } };\n if (pre) { pre.onclick = () => { preBG() } };\n}\nready(bgButtonAddListener);\n\nfunction topFunction() {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n}\n\nfunction timeSeriesReload(flag) {\n let archives = document.getElementById('archives');\n if (archives == null) return;\n let al_li = archives.getElementsByClassName('al_mon');\n if (flag == true) {\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToogle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n lazyload();\n } else {\n (function () {\n let al_expand_collapse = document.getElementById('al_expand_collapse');\n al_expand_collapse.style.cursor = \"s-resize\";\n for (let i = 0; i < al_li.length; i++) {\n let a = al_li[i],\n num = a.nextElementSibling.getElementsByTagName('li').length;\n a.style.cursor = \"s-resize\";\n a.querySelector('#post-num').textContent = num;\n }\n let al_post_list = archives.getElementsByClassName(\"al_post_list\"),\n al_post_list_f = al_post_list[0];\n for (let i = 0; i < al_post_list.length; i++) {\n slideToogle(al_post_list[i], 500, 'hide', function () {\n slideToogle(al_post_list_f, 500, 'show');\n })\n }\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToogle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n if (document.body.clientWidth > 860) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToogle(el, 500, 'show');\n return false;\n })\n }\n if (false) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToogle(el, 500, 'hide');\n return false;\n })\n }\n }\n let al_expand_collapse_click = 0;\n al_expand_collapse.addEventListener('click', function () {\n if (al_expand_collapse_click == 0) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToogle(el, 500, 'show');\n };\n al_expand_collapse_click++;\n } else if (al_expand_collapse_click == 1) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToogle(el, 500, 'hide');\n };\n al_expand_collapse_click--;\n }\n });\n }\n })();\n }\n}\n\ntimeSeriesReload();\n\nfunction loadHls() {\n const video = document.getElementById('coverVideo'),\n video_src = document.getElementById(\"coverVideo\").getAttribute(\"data-src\");\n if (Hls.isSupported()) {\n const hls = new Hls();\n hls.loadSource(video_src);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\n video.play();\n });\n } else if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = video_src;\n video.addEventListener('loadedmetadata', function () {\n video.play();\n });\n }\n}\n/* function loadJS(url, callback) {\n let script = document.createElement(\"script\"),\n fn = callback || function () { };\n script.type = \"text/javascript\";\n script.onload = function () {\n fn();\n };\n script.src = url;\n document.head.appendChild(script);\n} */\n\nfunction coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (mashiro_global.variables.has_hls) {\n loadHls();\n } else {\n /* //不保证可用 需测试\n loadJS(\"https://cdn.jsdelivr.net/gh/mashirozx/Sakura@3.3.3/cdn/js/src/16.hls.js\", function () {\n loadHls();\n mashiro_global.variables.has_hls = true;\n }) */\n import('hls.js')\n .then(hls => {\n //export to GLOBAL\n window.Hls = hls.default\n loadHls();\n mashiro_global.variables.has_hls = true;\n })\n .catch(reason => console.warn('Hls load failed: ', reason))\n }\n }\n}\n\nfunction copy_code_block() {\n const ele = document.querySelectorAll(\"pre code\");\n for (let j = 0; j < ele.length; j++) {\n ele[j].setAttribute('id', 'code-block-' + j);\n ele[j].insertAdjacentHTML('afterend', '
');\n };\n import('clipboard').then(({ default: ClipboardJS }) => {\n new ClipboardJS('.copy-code');\n })\n}\n\n\nfunction tableOfContentScroll(flag) {\n if (document.body.clientWidth <= 1200) {\n return;\n } else if (!document.querySelector(\"div.have-toc\") && !document.querySelector(\"div.has-toc\")) {\n let ele = document.getElementsByClassName(\"toc-container\")[0];\n if (ele) {\n ele.remove();\n ele = null;\n }\n } else {\n if (flag) {\n let id = 1,\n heading_fix = mashiro_option.entry_content_theme == \"sakura\" ? (document.querySelector(\"article.type-post\") ? (document.querySelector(\"div.pattern-attachment-img\") ? -75 : 200) : 375) : window.innerHeight / 2;\n let _els = document.querySelectorAll('.entry-content,.links');\n for (let i = 0; i < _els.length; i++) {\n let _el = _els[i].querySelectorAll('h1,h2,h3,h4,h5');\n for (let j = 0; j < _el.length; j++) {\n _el[j].id = \"toc-head-\" + id;\n id++;\n }\n }\n import('tocbot').then(({ default: tocbot }) => {\n tocbot.init({\n tocSelector: '.toc',\n contentSelector: ['.entry-content', '.links'],\n headingSelector: 'h1, h2, h3, h4, h5',\n headingsOffset: heading_fix - window.innerHeight / 2,\n });\n })\n }\n }\n}\ntableOfContentScroll(true);\nconst pjaxInit = function () {\n add_upload_tips();\n no_right_click();\n click_to_view_image();\n original_emoji_click();\n mashiro_global.font_control.ini();\n let _p = document.getElementsByTagName(\"p\");\n for (let i = 0; i < _p.length; i++) {\n _p[i].classList.remove(\"head-copyright\");\n }\n try {\n code_highlight_style();\n } catch (e) {\n console.warn(e)\n };\n try {\n getqqinfo();\n } catch (e) {\n console.warn(e)\n };\n lazyload();\n let _div = document.getElementsByTagName(\"div\"),\n tla = document.getElementById(\"to-load-aplayer\");\n tla && tla.addEventListener(\"click\", () => {\n try {\n reloadHermit();\n } catch (e) { };\n for (let i = 0; i < _div.length; i++) {\n _div[i].classList.remove(\"load-aplayer\");\n }\n });\n for (let i = 0; i < _div.length; i++) {\n if (_div[i].classList.contains(\"aplayer\")) {\n try {\n reloadHermit();\n } catch { };\n }\n }\n let iconflat = document.getElementsByClassName(\"iconflat\");\n if (iconflat.length != 0) {\n iconflat[0].style.width = '50px';\n iconflat[0].style.height = '50px';\n }\n let openNav = document.getElementsByClassName(\"openNav\");\n if (openNav.length != 0) {\n openNav[0].style.height = '50px';\n }\n bgButtonAddListener()\n smileBoxToggle();\n timeSeriesReload();\n add_copyright();\n tableOfContentScroll(true);\n}\n\nfunction sm() {\n let sm = document.getElementsByClassName('sm'),\n cm = document.querySelector(\".comments-main\");\n if (!sm.length) return;\n if (Poi.reply_link_version == 'new') {\n if (cm) cm.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"comment-reply-link\")) {\n e.preventDefault();\n e.stopPropagation();\n let data_commentid = e.target.getAttribute(\"data-commentid\");\n addComment.moveForm(\"comment-\" + data_commentid, data_commentid, \"respond\", this.getAttribute(\"data-postid\"));\n }\n })\n }\n cm && cm.addEventListener(\"click\", (e) => {\n let list = e.target.parentNode;\n if (list.classList.contains(\"sm\")) {\n let msg = \"您真的要设为私密吗?\";\n if (confirm(msg) == true) {\n if (list.classList.contains('private_now')) {\n alert('您之前已设过私密评论');\n return false;\n } else {\n list.classList.add('private_now');\n let idp = list.getAttribute(\"data-idp\"),\n actionp = list.getAttribute(\"data-actionp\"),\n rateHolderp = list.getElementsByClassName('has_set_private')[0];\n let ajax_data = \"action=siren_private&p_id=\" + idp + \"&p_action=\" + actionp;\n let request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (this.readyState == 4 && this.status == 200) {\n rateHolderp.innerHTML = request.responseText;\n }\n };\n request.open('POST', '/wp-admin/admin-ajax.php', true);\n request.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n request.send(ajax_data);\n return false;\n }\n } else {\n alert(\"已取消\");\n }\n }\n })\n}\n\nlet comt = document.getElementsByClassName(\"comt-addsmilies\");\nif (comt.length > 0) {\n Array.from(comt, (e) => {\n e.addEventListener(\"click\", () => {\n if (e.stlye.display == \"block\") {\n e.style.display = \"none\";\n } else {\n e.style.display = \"block\";\n }\n })\n })\n}\nlet comta = document.querySelectorAll(\".comt-smilies a\");\ncomta.forEach((e) => {\n e.addEventListener(\"click\", () => {\n e.parentNode.style.display = \"none\";\n })\n})\nfunction smileBoxToggle() {\n let et = document.getElementById(\"emotion-toggle\");\n et && et.addEventListener('click', function () {\n document.querySelector('.emotion-toggle-off').classList.toggle(\"emotion-hide\");\n document.querySelector('.emotion-toggle-on').classList.toggle(\"emotion-show\");\n document.querySelector('.emotion-box').classList.toggle(\"emotion-box-show\");\n })\n}\nsmileBoxToggle();\n\nadd_copyright()\nready(() => {\n getqqinfo();\n});\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./AplayerInit').then(({ aplayerInit }) => aplayerInit())\n /* const { aplayerInit } = require('./AplayerInit')\n aplayerInit() */\n }\n}\n\nfunction getqqinfo() {\n let is_get_by_qq = false;\n const i_author = document.querySelector(\"input#author\"),\n i_qq = document.querySelector(\"input#qq\"),\n i_email = document.querySelector(\"input#email\"),\n i_url = document.querySelector(\"input#url\"),\n qq_check = document.querySelector(\".qq-check\"),\n gravatar_check = document.querySelector(\".gravatar-check\"),\n user_avatar_img = document.querySelector(\"div.comment-user-avatar img\");\n if (i_author == null) return;\n if (!localStorage.getItem('user_qq') && !localStorage.getItem('user_qq_email') && !localStorage.getItem('user_author')) {\n i_qq.value = i_author.value = i_email.value = i_url.value = \"\";\n }\n if (localStorage.getItem('user_avatar') && localStorage.getItem('user_qq') && localStorage.getItem('user_qq_email')) {\n user_avatar_img.setAttribute('src', localStorage.getItem('user_avatar'));\n i_author.value = localStorage.getItem('user_author');\n i_email.value = localStorage.getItem('user_qq') + '@qq.com';\n i_qq.value = localStorage.getItem('user_qq');\n if (mashiro_option.qzone_autocomplete) {\n i_url.value = 'https://user.qzone.qq.com/' + localStorage.getItem('user_qq');\n }\n if (i_qq.value) {\n qq_check.style.display = \"block\";\n gravatar_check.style.display = \"none\";\n }\n }\n let emailAddressFlag = i_email.value;\n //var emailAddressFlag = cached.filter('#email').val();\n i_author.addEventListener('blur', () => {\n // })\n //cached.filter('#author').on('blur', function () {\n const qq = i_author.value,\n reg_QQ = /^[1-9]\\d{4,9}$/;\n if (reg_QQ.test(qq)) {\n const whileFailed = () => {\n i_qq.value = '';\n qq_check.style.display = 'none';\n gravatar_check.style.display = 'block';\n user_avatar_img.setAttribute('src', get_gravatar(i_email.value, 80));\n localStorage.setItem('user_qq', '');\n localStorage.setItem('user_email', i_email.value);\n localStorage.setItem('user_avatar', get_gravatar(i_email.value, 80));\n /***/\n /* qq.value = email.value = url.value = \"\";\n if (!qq.value) {\n qq_check.style.display = 'none';\n gravatar_check.style.display = 'block';\n setCookie('user_qq', '', 30);\n user_avatar_img.setAttribute('src', get_gravatar(email.value, 80));\n setCookie('user_avatar', get_gravatar(email.value, 80), 30);\n } */\n }\n fetch(buildAPI(mashiro_option.qq_api_url, { qq: qq }))\n .then(async resp => {\n if (resp.ok) {\n //success\n try {\n const data = await resp.json()\n i_author.value = data.name;\n i_email.value = qq.trim() + '@qq.com';\n if (mashiro_option.qzone_autocomplete) {\n i_url.value = 'https://user.qzone.qq.com/' + qq.trim();\n }\n user_avatar_img.setAttribute('src', 'https://q2.qlogo.cn/headimg_dl?dst_uin=' + qq + '&spec=100');\n is_get_by_qq = true;\n i_qq.value = qq.trim();\n if (i_qq.value) {\n qq_check.style.display = 'block';\n gravatar_check.style.display = 'none';\n }\n localStorage.setItem('user_author', data.name);\n localStorage.setItem('user_qq', qq);\n localStorage.setItem('is_user_qq', 'yes');\n localStorage.setItem('user_qq_email', qq + '@qq.com');\n localStorage.setItem('user_email', qq + '@qq.com');\n emailAddressFlag = i_email.value;\n /***/\n user_avatar_img.setAttribute('src', data.avatar);\n localStorage.setItem('user_avatar', data.avatar);\n } catch (e) {\n console.warn(e)\n whileFailed()\n }\n } else {\n whileFailed()\n }\n })\n }\n });\n if (localStorage.getItem('user_avatar') && localStorage.getItem('user_email') && localStorage.getItem('is_user_qq') == 'no' && !localStorage.getItem('user_qq_email')) {\n user_avatar_img.setAttribute(\"src\", localStorage.getItem('user_avatar'));\n i_email.value = localStorage.getItem('user_mail');\n i_qq.value = '';\n if (!i_qq.value) {\n qq_check.style.display = \"none\";\n gravatar_check.style.display = \"block\";\n }\n // $('div.comment-user-avatar img').attr('src', getCookie('user_avatar'));\n // cached.filter('#email').val(getCookie('user_email'));\n // cached.filter('#qq').val('');\n // if (!cached.filter('#qq').val()) {\n // $('.qq-check').css('display', 'none');\n // $('.gravatar-check').css('display', 'block');\n // }\n }\n i_email.addEventListener(\"blur\", function () {\n //cached.filter('#email').on('blur', function () {\n let emailAddress = i_email.value;\n // var emailAddress = cached.filter('#email').val();\n if ((is_get_by_qq == false || emailAddressFlag != emailAddress) && emailAddress != '') {\n user_avatar_img.setAttribute(\"src\", get_gravatar(emailAddress, 80));\n //$('div.comment-user-avatar img').attr('src', get_gravatar(emailAddress, 80));\n localStorage.setItem('user_avatar', get_gravatar(emailAddress, 80));\n localStorage.setItem('user_email', emailAddress);\n localStorage.setItem('user_qq_email', '');\n localStorage.setItem('is_user_qq', 'no');\n i_qq.value = '';\n // cached.filter('#qq').val('');\n if (!i_qq.value) {\n qq_check.style.display = \"none\";\n gravatar_check.style.display = \"block\";\n // $('.qq-check').css('display', 'none');\n // $('.gravatar-check').css('display', 'block');\n }\n }\n });\n if (localStorage.getItem('user_url')) {\n i_url.value = localStorage.getItem(\"user_url\");\n // cached.filter('#url').val(getCookie('user_url'));\n }\n i_url.addEventListener(\"blur\", function () {\n //cached.filter('#url').on('blur', function () {\n let URL_Address = i_url.value;\n i_url.value = URL_Address;\n // var URL_Address = cached.filter('#url').val();\n // cached.filter('#url').val(URL_Address);\n localStorage.setItem('user_url', URL_Address);\n });\n if (localStorage.getItem('user_author')) {\n i_author.value = localStorage.getItem('user_author');\n // cached.filter('#author').val(getCookie('user_author'));\n }\n i_author.addEventListener(\"blur\", function () {\n // cached.filter('#author').on('blur', function () {\n let user_name = i_author.value;\n i_author.value = user_name;\n // var user_name = cached.filter('#author').val();\n // cached.filter('#author').val(user_name);\n localStorage.setItem('user_author', user_name);\n });\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\nfunction load_bangumi() {\n const sections = document.getElementsByTagName(\"section\")\n let _flag = false;\n for (let i = 0; i < sections.length; i++) {\n if (sections[i].classList.contains(\"bangumi\")) {\n _flag = true;\n break\n }\n }\n if (_flag) {\n document.addEventListener('click', function (e) {\n const target = e.target;\n if (target === document.querySelector(\"#bangumi-pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n target.classList.add(\"loading\");\n target.textContent = \"\";\n const xhr = new XMLHttpRequest();\n xhr.open('POST', target.href + \"&_wpnonce=\" + Poi.nonce, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n let html = JSON.parse(xhr.responseText),\n bfan = document.getElementById(\"bangumi-pagination\"),\n row = document.getElementsByClassName(\"row\")[0];\n bfan.remove();\n row.insertAdjacentHTML('beforeend', html);\n } else {\n target.classList.remove(\"loading\");\n target.innerHTML = ' ERROR ';\n }\n };\n xhr.send();\n }\n });\n }\n}\n\n\nmashiro_global.ini.normalize();\nloadCSS(mashiro_option.jsdelivr_css_src);\nloadCSS(mashiro_option.entry_content_style_src);\nloadCSS(\"https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css\");\n\nimport POWERMODE from 'activate-power-mode'\nfunction article_attach() {\n //收缩、展开\n /* jQuery(document).ready(\n function(jQuery){\n jQuery('.collapseButton').click(function(){\n jQuery(this).parent().parent().find('.xContent').slideToggle('slow');\n });\n }) */\n const collapseButton = document.getElementsByClassName('collapseButton')\n if (collapseButton.length > 0) {\n const collapseListener = (e) => {\n slideToogle(e.target.parentNode.parentNode.parentNode.querySelector(\".xContent\"));\n // e.parentNode.parentNode.querySelector(\".xContent\")\n }\n for (const ele of collapseButton) {\n ele.addEventListener(\"click\", collapseListener)\n }\n // import('jquery').then(({ default: jQuery }) => {\n // jQuery('.collapseButton').on(\"click\", function () {\n // jQuery(this).parent().parent().find('.xContent').slideToggle('slow');\n // })\n // })\n }\n //init lightbox\n if (mashiro_option.baguetteBoxON) {\n loadCSS('https://cdn.jsdelivr.net/npm/baguettebox.js@1.11.1/dist/baguetteBox.min.css')\n import('baguettebox.js').then(({ default: baguetteBox }) => {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n })\n } else if (mashiro_option.fancybox) {\n loadCSS('https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css')\n import('jquery').then((jQuery) => {\n window.jQuery = jQuery.default\n window.$ = jQuery.default\n import('@fancyapps/fancybox')\n })\n }\n}\nvar // s = $('#bgvideo')[0],\n s = document.getElementById(\"bgvideo\"),\n Siren = {\n MN: function () {\n let iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", function () {\n document.body.classList.toggle(\"navOpen\");\n document.getElementById(\"main-container\").classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n });\n },\n MNH: function () {\n if (document.body.classList.contains(\"navOpen\")) {\n document.body.classList.toggle(\"navOpen\");\n document.getElementById(\"main-container\").classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n }\n },\n splay: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-pause\");\n video_btn.classList.remove(\"video-play\");\n }\n try {\n video_btn.style.display = \"\";\n document.querySelector(\".video-stu\").style.bottom = \"-100px\";\n document.querySelector(\".focusinfo\").style.top = \"-999px\";\n } catch { }\n try {\n for (let i = 0; i < ap.length; i++) {\n try {\n ap[i].destroy()\n } catch { }\n }\n } catch { }\n try {\n hermitInit()\n } catch { }\n s.play();\n },\n spause: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n } catch { }\n s.pause();\n },\n liveplay: function () {\n if (s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n Siren.splay();\n }\n }\n },\n livepause: function () {\n if (s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n Siren.spause();\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.style.bottom = \"0px\";\n video_stu.innerHTML = \"已暂停 ...\";\n }\n },\n addsource: function () {\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n let t = Poi.movies.name.split(\",\"),\n _t = t[Math.floor(Math.random() * t.length)],\n bgvideo = document.getElementById(\"bgvideo\");\n bgvideo.setAttribute(\"src\", Poi.movies.url + '/' + _t + '.mp4');\n bgvideo.setAttribute(\"video-name\", _t);\n },\n LV: function () {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n Siren.addsource();\n s.oncanplay = function () {\n Siren.splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n }\n } else {\n if (this.classList.contains(\"video-pause\")) {\n Siren.spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n } else {\n Siren.splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n s.onended = function () {\n s.setAttribute(\"src\", \"\");\n document.getElementById(\"video-add\").style.display = \"none\";\n video_btn && video_btn.classList.add(\"loadvideo\");\n video_btn && video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n });\n const video_add = document.getElementById(\"video-add\")\n if (video_add) video_add.addEventListener(\"click\", function () {\n Siren.addsource();\n });\n },\n AH: function () {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n },\n PE: function () {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == 'open') Siren.liveplay();\n } else {\n try {\n blank.style.paddingTop = \"75px\";\n } catch (e) { }\n headertop.style.height = \"0px\";\n headertop.style.display = \"none\";\n Siren.livepause();\n }\n }\n },\n CE: function () {\n let comments_hidden = document.querySelector(\".comments-hidden\");\n let comments_main = document.querySelector(\".comments-main\");\n if (comments_hidden != null) {\n comments_hidden.style.display = \"block\";\n comments_main.style.display = \"none\";\n comments_hidden.addEventListener(\"click\", function () {\n slideToogle(comments_main, 500, 'show');\n comments_hidden.style.display = \"none\";\n });\n }\n let archives = document.getElementsByClassName(\"archives\");\n if (archives.length > 0) {\n for (let i = 0; i < archives.length; i++) {\n archives[i].style.display = \"none\";\n }\n archives[0].style.display = \"\";\n let h3 = document.getElementById(\"archives-temp\").getElementsByTagName(\"h3\");\n for (let i = 0; i < h3.length; i++) {\n h3[i].addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n slideToogle(e.target.nextElementSibling, 300);\n })\n }\n }\n // $('.comments-hidden').show();\n // $('.comments-main').hide();\n // $('.comments-hidden').click(function () {\n // $('.comments-main').slideDown(500);\n // $('.comments-hidden').hide();\n // });\n // $('.archives').hide();\n // $('.archives:first').show();\n // $('#archives-temp h3').click(function () {\n // $(this).next().slideToggle('fast');\n // return false;\n // });\n /*if (mashiro_option.baguetteBoxON) {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n }*/\n article_attach()\n const callback = function () {\n //$('.js-toggle-search').toggleClass('is-active');\n document.getElementsByClassName('js-toggle-search')[0].classList.toggle('is-active')\n //$('.js-search').toggleClass('is-visible');\n document.getElementsByClassName('js-search')[0].classList.toggle('is-visible')\n //$('html').css('overflow-y', 'hidden');\n document.documentElement.style.overflowY = 'hidden'\n if (mashiro_option.live_search) {\n var QueryStorage = [];\n search_a(buildAPI(Poi.api + \"sakura/v1/cache_search/json\"));\n\n var otxt = document.getElementById(\"search-input\"),\n list = document.getElementById(\"PostlistBox\"),\n Record = list.innerHTML,\n searchFlag = null;\n otxt.oninput = function () {\n if (searchFlag == null) {\n clearTimeout(searchFlag);\n }\n searchFlag = setTimeout(function () {\n query(QueryStorage, otxt.value, Record);\n div_href();\n }, 250);\n };\n\n function search_a(val) {\n if (sessionStorage.getItem('search') != null) {\n QueryStorage = JSON.parse(sessionStorage.getItem('search'));\n query(QueryStorage, document.getElementById(\"search-input\").value, Record);\n div_href();\n } else {\n fetch(val)\n .then(async resp => {\n if (resp.ok) {\n const json = await resp.text()\n if (json != \"\") {\n sessionStorage.setItem('search', json);\n QueryStorage = JSON.parse(json);\n query(QueryStorage, otxt.value, Record);\n div_href();\n }\n } else {\n console.warn('HTTP ' + resp.status)\n }\n })\n .catch(reason => console.warn(reason))\n }\n }\n/* if (!Object.values) Object.values = function (obj) {\n if (obj !== Object(obj))\n throw new TypeError('Object.values called on a non-object');\n var val = [],\n key;\n for (key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n val.push(obj[key]);\n }\n }\n return val;\n } */\n\n function Cx(array, query) {\n for (let s = 0;s < query.length;s++){\n if(['.','?','*'].indexOf(query[s])!= -1){\n query = query.slice(0, s) + \"\\\\\" + query.slice(s);\n s++;\n }\n }\n query = query.replace(query, \"^(?=.*?\" + query + \").+$\").replace(/\\s/g, \")(?=.*?\");\n return array.filter(\n v => Object.values(v).some(\n v => new RegExp(query + '').test(v)\n )\n );\n }\n\n function div_href() {\n const search_close = document.querySelector(\".search_close\")\n const Ty = document.getElementById('Ty')\n for (const ele of document.getElementsByClassName('ins-selectable')) {\n ele.addEventListener(\"click\", () => {\n Ty.href = ele.getAttribute('href')\n Ty.click()\n search_close.click()\n });\n }\n /* $(\".ins-selectable\").each(function () {\n $(this).click(function () {\n $(\"#Ty\").attr('href', $(this).attr('href'));\n $(\"#Ty\").click();\n $(\".search_close\").click();\n });\n }); */\n }\n\n function search_result(keyword, link, fa, title, iconfont, comments, text) {\n if (keyword) {\n var s = keyword.trim().split(\" \"),\n a = title.indexOf(s[s.length - 1]),\n b = text.indexOf(s[s.length - 1]);\n title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);\n title = title.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);\n text = text.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n }\n return '
' + title + ' ' + comments + '' + '

' + text + '

';\n }\n\n function query(B, A, z) {\n var x, v, s, y = \"\",\n w = \"\",\n u = \"\",\n r = \"\",\n p = \"\",\n F = \"\",\n H = \"\",\n G = '
',\n D = \"
\",\n E = \"\",\n C = Cx(B, A.trim());\n for (x = 0; x < Object.keys(C).length; x++) {\n H = C[x];\n switch (v = H.type) {\n case \"post\":\n w = w + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"tag\":\n p = p + search_result(\"\", H.link, \"tag\", H.title, \"none\", \"\", \"\");\n break;\n case \"category\":\n r = r + search_result(\"\", H.link, \"folder\", H.title, \"none\", \"\", \"\");\n break;\n case \"page\":\n u = u + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"comment\":\n F = F + search_result(A, H.link, \"comment\", H.title, \"none\", \"\", H.text);\n break\n }\n }\n w && (y = y + G + \"文章\" + E + w + D), u && (y = y + G + \"页面\" + E + u + D), r && (y = y + G + \"分类\" + E + r + D), p && (y = y + G + \"标签\" + E + p + D), F && (y = y + G + \"评论\" + E + F + D), s = document.getElementById(\"PostlistBox\"), s.innerHTML = y\n }\n }\n }\n for (const ele of document.getElementsByClassName('js-toggle-search')) {\n ele.addEventListener('click', callback);\n }\n\n const sc = document.querySelector(\".search_close\");\n sc && sc.addEventListener(\"click\", function () {\n let js_search = document.getElementsByClassName(\"js-search\")[0];\n if (js_search.classList.contains(\"is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n js_search.classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n try {\n let show_Nav = document.getElementById(\"show-nav\");\n show_Nav.addEventListener(\"click\", function () {\n if (show_Nav.classList.contains(\"showNav\")) {\n show_Nav.classList.remove(\"showNav\");\n show_Nav.classList.add(\"hideNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.add(\"navbar\");\n } else {\n show_Nav.classList.remove(\"hideNav\");\n show_Nav.classList.add(\"showNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.remove(\"navbar\");\n }\n });\n document.getElementById(\"loading\").addEventListener(\"click\", function () {\n let loading = document.getElementById(\"loading\");\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n });\n } catch (e) { }\n },\n NH: function () {\n let h1 = 0;\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || window.pageYOffset,\n cached = document.querySelector(\".site-header\");\n if (s == h1) {\n cached.classList.remove(\"yya\");\n }\n if (s > h1) {\n cached.classList.add(\"yya\");\n }\n })\n // $(window).scroll(function () {\n // var s = $(document).scrollTop(),\n // cached = $('.site-header');\n // if (s == h1) {\n // cached.removeClass('yya');\n // }\n // if (s > h1) {\n // cached.addClass('yya');\n // }\n // });\n },\n XLS: function () {\n let load_post_timer;\n const intersectionObserver = new IntersectionObserver(function (entries) {\n if (entries[0].intersectionRatio <= 0) return;\n // var page_next = $('#pagination a').attr(\"href\");\n const _page_next = document.querySelector('#pagination a')\n if (_page_next) {\n const page_next = _page_next.getAttribute(\"href\"),\n load_key = document.getElementById(\"add_post_time\");\n if (page_next != undefined && load_key) {\n const load_time = document.getElementById(\"add_post_time\").title;\n if (load_time != \"233\") {\n console.log(\"%c 自动加载时倒计时 %c\", \"background:#9a9da2; color:#ffffff; border-radius:4px;\", \"\", \"\", load_time);\n load_post_timer = setTimeout(function () {\n load_post();\n }, load_time * 1000);\n }\n }\n }\n });\n intersectionObserver.observe(\n document.querySelector('.footer-device')\n );\n document.body.addEventListener(\"click\", function (e) {\n if (e.target == document.querySelector(\"#pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n clearTimeout(load_post_timer);\n load_post();\n }\n })\n\n function load_post() {\n const pagination_a = document.querySelector('#pagination a');\n pagination_a.classList.add(\"loading\");\n pagination_a.innerText = \"\";\n // $('#pagination a').addClass(\"loading\").text(\"\");\n fetch(pagination_a.getAttribute(\"href\") + \"#main\")\n .then(resp => resp.text())\n .then(text => {\n const parser = new DOMParser(),\n DOM = parser.parseFromString(text, \"text/html\"),\n result = DOM.querySelectorAll(\"#main .post\"),\n paga = DOM.querySelector(\"#pagination a\"),\n paga_innerText = paga && paga.innerText,\n nextHref = paga && paga.getAttribute(\"href\");\n for (let i = 0; i < result.length; i++) {\n let b = result[i];\n document.getElementById(\"main\").insertAdjacentHTML('beforeend', b.outerHTML);\n }\n if (Poi.pjax) pjax.refresh(document.querySelector(\"#content\"));\n //if (resp.ok) {\n // result = $(data).find(\"#main .post\");\n // nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n // $(\"#main\").append(result.fadeIn(500));\n const dpga = document.querySelector(\"#pagination a\"),\n addps = document.querySelector(\"#add_post span\");\n if (dpga) {\n dpga.classList.remove(\"loading\");\n dpga.innerText = paga_innerText;\n }\n if (addps) {\n addps.classList.remove(\"loading\");\n addps.innerText = \"\";\n }\n // $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n // $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n pagination_a.setAttribute(\"href\", nextHref);\n // $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n let tempScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;\n // window.scrollTo(tempScrollTop);\n // $(window).scrollTop(tempScrollTop);\n window.scrollTo({\n top: tempScrollTop + 300,\n behavior: 'smooth'\n })\n // $body.animate({\n // scrollTop: tempScrollTop + 300\n //\n // }, 666)\n } else {\n document.getElementById(\"pagination\").innerHTML = \"很高兴你翻到这里,但是真的没有了...\";\n // $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n //}\n\n })\n /* $.ajax({\n type: \"POST\",\n url: $('#pagination a').attr(\"href\") + \"#main\",\n success: function (data) {\n result = $(data).find(\"#main .post\");\n nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n $(\"#main\").append(result.fadeIn(500));\n $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n var tempScrollTop = $(window).scrollTop();\n $(window).scrollTop(tempScrollTop);\n $body.animate({\n scrollTop: tempScrollTop + 300\n \n }, 666)\n } else {\n $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n }\n }); */\n return false;\n }\n },\n XCS: function () {\n const __list = 'commentwrap';\n const form = document.getElementById(\"commentform\")\n if (form) form.addEventListener('submit', function () {\n addComment.createButterbar(\"提交中(Commiting)....\")\n const form = new FormData(this)\n form.append('action', 'ajax_comment')\n fetch(Poi.ajaxurl, {\n method: this.attributes.method.value,\n body: form\n }).then(async resp => {\n const data = await resp.text()\n if (resp.ok) {\n Array.from(document.getElementsByTagName('textarea'))\n .forEach((e) => e.value = '')\n const cancel = document.getElementById('cancel-comment-reply-link'),\n temp = document.getElementById('wp-temp-form-div'),\n respond = document.getElementById(addComment.respondId),\n //post = document.getElementById('comment_post_ID').value,\n parent = document.getElementById('comment_parent').value;\n if (parent != '0') {\n //jQuery('#respond').before('
    ' + data + '
');\n document.getElementById(\"respond\").insertAdjacentHTML('beforebegin', '
    ' + data + '
');\n } else if (!document.getElementsByClassName(__list).length) {\n if (Poi.formpostion == 'bottom') {\n document.getElementById(\"respond\").insertAdjacentHTML('beforebegin', '
    ' + data + '
');\n //jQuery('#respond').before('
    ' + data + '
');\n } else {\n document.getElementById(\"respond\").insertAdjacentHTML('afterend', '
    ' + data + '
');\n //jQuery('#respond').after('
    ' + data + '
');\n }\n } else {\n if (Poi.order == 'asc') {\n document.getElementsByClassName(\"commentwrap\")[1].insertAdjacentHTML('beforeend', data);\n //jQuery('.' + __list).append(data);\n } else {\n document.getElementsByClassName(\"commentwrap\")[1].insertAdjacentHTML('afterbegin', data);\n //jQuery('.' + __list).prepend(data);\n }\n }\n addComment.createButterbar(\"提交成功(Succeed)\");\n lazyload();\n code_highlight_style();\n click_to_view_image();\n clean_upload_images();\n cancel.style.display = 'none';\n cancel.onclick = null;\n document.getElementById('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp)\n }\n } else {\n addComment.createButterbar(data ?? 'HTTP' + resp.status + ':' + resp.statusText);\n }\n }).catch(reason => {\n addComment.createButterbar(reason);\n })\n /* jQuery.ajax({\n url: Poi.ajaxurl,\n data: jQuery(this).serialize() + \"&action=ajax_comment\",\n type: jQuery(this).attr('method'),\n beforeSend: addComment.createButterbar(\"提交中(Commiting)....\"),\n error: function (request) {\n var t = addComment;\n t.createButterbar(request.responseText);\n },\n success: function (data) {\n jQuery('textarea').each(function () {\n this.value = ''\n });\n var t = addComment,\n cancel = t.I('cancel-comment-reply-link'),\n temp = t.I('wp-temp-form-div'),\n respond = t.I(t.respondId),\n post = t.I('comment_post_ID').value,\n parent = t.I('comment_parent').value;\n if (parent != '0') {\n jQuery('#respond').before('
    ' + data + '
');\n } else if (!jQuery('.' + __list).length) {\n if (Poi.formpostion == 'bottom') {\n jQuery('#respond').before('
    ' + data + '
');\n } else {\n jQuery('#respond').after('
    ' + data + '
');\n }\n } else {\n if (Poi.order == 'asc') {\n jQuery('.' + __list).append(data);\n } else {\n jQuery('.' + __list).prepend(data);\n }\n }\n t.createButterbar(\"提交成功(Succeed)\");\n lazyload();\n code_highlight_style();\n click_to_view_image();\n clean_upload_images();\n cancel.style.display = 'none';\n cancel.onclick = null;\n t.I('comment_parent').value = '0';\n if (temp && respond) {\n temp.parentNode.insertBefore(respond, temp);\n temp.remove();\n //temp.parentNode.removeChild(temp)\n }\n }\n }); */\n return false;\n })\n window.addComment = require('./AddComment').default\n },\n XCP: function () {\n document.body.addEventListener('click', function (e) {\n if (e.target.parentNode == document.getElementById(\"comments-navi\") && e.target.nodeName.toLowerCase() == \"a\") {\n e.preventDefault();\n e.stopPropagation();\n let _this = e.target,\n path = _this.pathname,\n _xhr = new XMLHttpRequest();\n _xhr.open(\"GET\", _this.getAttribute('href'), true);\n _xhr.responseType = \"document\";\n _xhr.onloadstart = () => {\n let comments_navi = document.getElementById(\"comments-navi\"),\n commentwrap = document.querySelector(\"ul.commentwrap\"),\n loading_comments = document.getElementById(\"loading-comments\"),\n comments_list = document.getElementById(\"comments-list-title\");\n comments_navi.remove();\n commentwrap.remove();\n //comments_navi.parentNode.removeChild(comments_navi);\n //commentwrap.parentNode.removeChild(commentwrap);\n loading_comments.style.display = \"block\";\n slideToogle(loading_comments, 500, \"show\");\n window.scrollTo({\n top: comments_list.getBoundingClientRect().top + window.pageYOffset - comments_list.clientTop - 65,\n behavior: \"smooth\"\n });\n }\n _xhr.onreadystatechange = function () {\n if (_xhr.readyState == 4 && _xhr.status == 200) {\n let json = _xhr.response,\n result = json.querySelector(\"ul.commentwrap\"),\n nextlink = json.getElementById(\"comments-navi\"),\n loading_comments = document.getElementById(\"loading-comments\");\n slideToogle(loading_comments, 200, \"hide\");\n document.getElementById(\"loading-comments\").insertAdjacentHTML('afterend', result.outerHTML);\n document.querySelector(\"ul.commentwrap\").insertAdjacentHTML('afterend', nextlink.outerHTML);\n lazyload();\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': path\n });\n }\n code_highlight_style();\n click_to_view_image();\n let commentwrap = document.querySelector(\"ul.commentwrap\");\n window.scrollTo({\n top: commentwrap && (commentwrap.getBoundingClientRect().top + window.pageYOffset - commentwrap.clientTop - 200),\n behavior: \"smooth\"\n });\n }\n }\n _xhr.send();\n }\n });\n },\n IA: function () {\n POWERMODE.colorful = true;\n POWERMODE.shake = false;\n document.body.addEventListener('input', POWERMODE)\n },\n GT: function () {\n let mb_to_top = document.querySelector(\"#moblieGoTop\"),\n changskin = document.querySelector(\"#changskin\");\n window.addEventListener(\"scroll\", () => {\n let scroll = document.documentElement.scrollTop || document.body.scrollTop;\n if (scroll > 20) {\n mb_to_top.style.transform = \"scale(1)\";\n changskin.style.transform = \"scale(1)\";\n } else {\n mb_to_top.style.transform = \"scale(0)\";\n changskin.style.transform = \"scale(0)\";\n }\n })\n mb_to_top.onclick = function () {\n topFunction();\n }\n }\n }\nif (Poi.pjax) {\n document.addEventListener(\"pjax:send\", () => {\n for (const element of document.getElementsByClassName(\"normal-cover-video\")) {\n element.pause();\n element.src = '';\n element.load = '';\n }\n document.getElementById(\"bar\").style.width = \"0%\";\n if (mashiro_option.NProgressON) NProgress.start();\n Siren.MNH();\n });\n document.addEventListener(\"pjax:complete\", function () {\n Siren.AH();\n Siren.PE();\n Siren.CE();\n //Siren.XLS();\n if (mashiro_option.NProgressON) NProgress.done();\n mashiro_global.ini.pjax();\n let loading = document.getElementById(\"loading\");\n if (loading) {\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n }\n //未实际使用的选项\n /* if (Poi.codelamp == 'open') {\n self.Prism.highlightAll(event)\n }; */\n if (document.querySelector(\".js-search.is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n document.getElementsByClassName(\"js-search\")[0].classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n document.addEventListener(\"pjax:success\", function () {\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': window.location.pathname\n });\n }\n });\n window.addEventListener('popstate', function (e) {\n Siren.AH();\n Siren.PE();\n Siren.CE();\n sm();\n timeSeriesReload(true);\n post_list_show_animation();\n }, false);\n}\nready(function () {\n Siren.AH();\n Siren.PE();\n Siren.NH();\n Siren.GT();\n Siren.XLS();\n Siren.XCS();\n Siren.XCP();\n Siren.CE();\n Siren.MN();\n Siren.IA();\n Siren.LV();\n console.log(\"%c Mashiro %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://2heng.xin/\");\n console.log(\"%c Github %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://github.com/mashirozx\");\n});\nlet isWebkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1,\n isOpera = navigator.userAgent.toLowerCase().indexOf('opera') > -1,\n isIe = navigator.userAgent.toLowerCase().indexOf('msie') > -1;\nif ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventListener) {\n window.addEventListener('hashchange', function () {\n let id = location.hash.substring(1),\n element;\n if (!(/^[A-z0-9_-]+$/.test(id))) {\n return;\n }\n element = document.getElementById(id);\n if (element) {\n if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) {\n element.tabIndex = -1;\n }\n element.focus();\n }\n }, false);\n}\n\nwindow.addEventListener('load', () => {\n const preload = document.getElementById(\"preload\");\n if (!preload) return;\n document.documentElement.style.overflowY = 'unset';\n if (mashiro_option.preload_blur == 0) {\n preload.classList.add('hide');\n preload.classList.remove('show');\n setTimeout(() => preload.remove(), 233);\n } else {\n preload.animate(\n [\n { filter: \"blur(0px)\", backdropFilter: \"blur(10px)\", opacity: 1 },\n { backdropFilter: \"blur(0px)grayscale(0)\", opacity: 0.1 },\n { opacity: 0, filter: \"blur(100px)\", }\n ],\n { duration: mashiro_option.preload_blur, fill: \"forwards\", easing: \"ease\" }\n ).onfinish = () => {\n preload.remove()\n }\n }\n})\n\n\nfunction web_audio() {\n if (mashiro_option.audio) {\n ready(() => {\n window.AudioContext = window.AudioContext || window.webkitAudioContext,\n function () {\n if (window.AudioContext) {\n let ctx = new AudioContext,\n t = \"880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880\".split(\" \"),//天空之城\n /*t = \"329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 329.628 293.665 293.665 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626 293.665 293.665 329.628 261.626 293.665 329.628 349.228 329.628 261.626 293.665 329.628 349.228 329.628 293.665 261.626 293.665 195.998 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626\".split(\" \"),欢乐颂*/\n i = 0,\n o = 1,\n dom,\n a = \"♪ ♩ ♫ ♬ ♭ € § ¶ ♯\".split(\" \"),\n selects = document.querySelectorAll(\".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li\");\n selects.forEach((select) => {\n select.addEventListener(\"mouseenter\", (e) => {\n if (dom) return;\n let r = t[i]\n if (!r) {\n (i = 0, r = t[i])\n }\n i += o\n const c = ctx.createOscillator(),\n l = ctx.createGain();\n c.connect(l)\n l.connect(ctx.destination)\n c.type = \"sine\"\n c.frequency.value = r\n l.gain.setValueAtTime(0, ctx.currentTime)\n l.gain.linearRampToValueAtTime(1, ctx.currentTime + .01)\n c.start(ctx.currentTime)\n l.gain.exponentialRampToValueAtTime(.001, ctx.currentTime + 1)\n c.stop(ctx.currentTime + 1)\n const d = Math.round(7 * Math.random());\n const h = e.pageX\n const p = e.pageY - 5\n dom = document.createElement(\"b\");\n dom.textContent = a[d]\n dom.style.zIndex = \"99999\";\n dom.style.top = p - 100 + \"px\";\n dom.style.left = h + \"px\";\n dom.style.position = \"absolute\";\n dom.style.color = \"#FF6EB4\";\n document.body.appendChild(dom);\n dom.animate([\n { top: p + \"px\" },\n { opacity: 0 }\n ], {\n duration: 500\n })\n setTimeout(() => {\n dom.remove();\n dom = null;\n }, 500)\n e.stopPropagation();\n\n })\n })\n }\n }()\n })\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/opt/options/theme-options.php b/opt/options/theme-options.php index 9f16c92c..421c939a 100644 --- a/opt/options/theme-options.php +++ b/opt/options/theme-options.php @@ -1105,6 +1105,15 @@ 'default' => true ), + array( + 'id' => 'cover_half_screen_curve', + 'type' => 'switcher', + 'dependency'=>array( 'cover_full_screen', '==', 'false' ), + 'title' => '封面下方弧形遮挡', + 'label' => '开启之后封面下方将出现弧形遮挡', + 'default' => false + ), + array( 'id' => 'cover_radius', 'type' => 'slider', diff --git a/style.css b/style.css index 3e8f26fd..e3d68355 100644 --- a/style.css +++ b/style.css @@ -6,7 +6,7 @@ Theme URI: https://github.com/mirai-mamori/Sakurairo Author: Created by Fuukei Author URI: https://iro.tw/ Description: A colorful, Easy-to-use, Perfect Experience, and Powerful Customizable WordPress Theme (Based on Theme Sakura) -Version: 2.1.0.1 +Version: 2.1.0.2 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: sakurairo @@ -1157,7 +1157,7 @@ a:hover { .site-top ul li a { padding: 10px 0; display: inline-block; - color: #505050 + color: var(--theme-skin) } .site-top ul li a:hover { @@ -3730,18 +3730,6 @@ li.feature-2 { } } -.headertop-bar::after { - content: ''; - width: 150%; - height: 4.375rem; - background: #fff; - left: -25%; - bottom: -2.875rem; - border-radius: 100%; - position: absolute; - z-index: 4 -} - #centerbg { width: 100%; height: 550px; @@ -3785,7 +3773,7 @@ li.feature-2 { transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); text-align: center; - z-index: 99; + z-index: 5; -webkit-transition: .4s ease all; -moz-transition: .4s ease all; -o-transition: .4s ease all; @@ -4335,13 +4323,18 @@ body.dark .ins-section .fa { } .sorry li a { - color: #505050 + color: var(--theme-skin) +} +body.dark .sorry li a{ + color:#CCC; } - .sorry { - color: #505050; + color: var(--theme-skin); margin-bottom: 80px } +body.dark .sorry{ + color:#CCC; +} .sorry li { padding: 10px 0 @@ -4353,7 +4346,7 @@ body.dark .ins-section .fa { .sorry-inner { padding: 20px; - border: 1px solid #505050 + border: 1px solid var(--theme-skin) } .error-img { @@ -5200,9 +5193,10 @@ i.iconfont.down { height: 50px; position: fixed; top: 0; - z-index: 99999; + z-index: 9999; display: block; - background: 0 0 + background: 0 0; + padding-right:20px; } .iconflat { background: 0 0; @@ -5297,10 +5291,12 @@ i.iconfont.down { border-radius: 3px; outline: 0 } - #mo-nav ul { - width: 200px; - height: auto; - margin: 10px 9px + #mo-nav .menu{ + display: flex; + flex-direction: column; + align-items: center; + padding: 0; + margin: 0; } #mo-nav ul:hover li { color: rgba(255, 255, 255, .5) @@ -5311,7 +5307,7 @@ i.iconfont.down { padding: 6px 0px; color: #fff; letter-spacing: .02em; - text-align: left + text-align: center; } #mo-nav ul li a { color: #505050; @@ -5320,9 +5316,10 @@ i.iconfont.down { #mo-nav li ul { width: 250px; margin: 10px 0; + padding: 0; } #mo-nav li ul li { - padding: 5px 0px + padding: 0; } #mo-nav li ul li a { font-size: 14px; @@ -7615,11 +7612,14 @@ a.toc-link { } @media (max-width:625px) { + .cmt-info-container { + position: relative; + } .comment-user-avatar { padding-top: 10px; width: 45px; height: 55px; - right: 11% + right: 2%; } .comment-user-avatar .socila-check { width: 1.5em; @@ -8472,17 +8472,6 @@ h6[id*=toc-head]::before { } /* 首页下拉箭头 */ -.headertop-bar::after { - content: ''; - width: 150%; - height: 4.375rem; - background: #fff; - left: -25%; - bottom: -2.875rem; - border-radius: 100%; - position: absolute; - z-index: 4; -} .headertop-down { position: absolute; bottom: 50px;