From cb4468e18ada4e6d9374de6245b4d1b8016e9bd4 Mon Sep 17 00:00:00 2001 From: xiazeyu_2011 Date: Sat, 4 Nov 2017 16:44:24 +0800 Subject: [PATCH] Refix #26 --- dist/bundle.js | 39 ++------------------------------------ dist/bundle.js.map | 2 +- dist/index.html | 2 +- index.js | 1 + package-lock.json | 2 +- src/lib/Live2DFramework.js | 3 +++ 6 files changed, 9 insertions(+), 40 deletions(-) diff --git a/dist/bundle.js b/dist/bundle.js index ae569b0..3e77dee 100755 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1,37 +1,2 @@ -!function(a){function t(T){if(n[T])return n[T].exports;var l=n[T]={i:T,l:!1,exports:{}};return a[T].call(l.exports,l,l.exports,t),l.l=!0,l.exports}var n={};t.m=a,t.c=n,t.i=function(a){return a},t.d=function(a,n,T){t.o(a,n)||Object.defineProperty(a,n,{configurable:!1,enumerable:!0,get:T})},t.n=function(a){var n=a&&a.__esModule?function(){return a.default}:function(){return a};return t.d(n,"a",n),n},t.o=function(a,t){return Object.prototype.hasOwnProperty.call(a,t)},t.p="",t(t.s=11)}([/*!************************************!*\ - !*** ./src/lib/Live2DFramework.js ***! - \************************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\n/**\r\n * EYHN 基于 live2d 官方 Live2DFramework.js 修改\r\n * \r\n * Copyright © 2016 - 2017 EYHN\r\n */\n//============================================================\n//============================================================\n// class L2DBaseModel \n//============================================================\n//============================================================\nfunction L2DBaseModel() {\n this.live2DModel = null; // ALive2DModel\n this.modelMatrix = null; // L2DModelMatrix\n this.eyeBlink = null; // L2DEyeBlink\n this.physics = null; // L2DPhysics\n this.pose = null; // L2DPose\n this.debugMode = false;\n this.initialized = false;\n this.updating = false;\n this.alpha = 1;\n this.accAlpha = 0;\n this.lipSync = false;\n this.lipSyncValue = 0;\n this.accelX = 0;\n this.accelY = 0;\n this.accelZ = 0;\n this.dragX = 0;\n this.dragY = 0;\n this.startTimeMSec = null;\n this.mainMotionManager = new L2DMotionManager(); //L2DMotionManager\n this.expressionManager = new L2DMotionManager(); //L2DMotionManager\n this.motions = {};\n this.expressions = {};\n\n this.isTexLoaded = false;\n}\n\nvar texCounter = 0;\n\n//============================================================\n// L2DBaseModel # getModelMatrix()\n//============================================================\nL2DBaseModel.prototype.getModelMatrix = function () {\n return this.modelMatrix;\n};\n\n//============================================================\n// L2DBaseModel # setAlpha()\n//============================================================\nL2DBaseModel.prototype.setAlpha = function (a /*float*/) {\n if (a > 0.999) a = 1;\n if (a < 0.001) a = 0;\n this.alpha = a;\n};\n\n//============================================================\n// L2DBaseModel # getAlpha()\n//============================================================\nL2DBaseModel.prototype.getAlpha = function () {\n return this.alpha;\n};\n\n//============================================================\n// L2DBaseModel # isInitialized()\n//============================================================\nL2DBaseModel.prototype.isInitialized = function () {\n return this.initialized;\n};\n\n//============================================================\n// L2DBaseModel # setInitialized()\n//============================================================\nL2DBaseModel.prototype.setInitialized = function (v /*boolean*/) {\n this.initialized = v;\n};\n\n//============================================================\n// L2DBaseModel # isUpdating()\n//============================================================\nL2DBaseModel.prototype.isUpdating = function () {\n return this.updating;\n};\n\n//============================================================\n// L2DBaseModel # setUpdating()\n//============================================================\nL2DBaseModel.prototype.setUpdating = function (v /*boolean*/) {\n this.updating = v;\n};\n\n//============================================================\n// L2DBaseModel # getLive2DModel()\n//============================================================\nL2DBaseModel.prototype.getLive2DModel = function () {\n return this.live2DModel;\n};\n\n//============================================================\n// L2DBaseModel # setLipSync()\n//============================================================\nL2DBaseModel.prototype.setLipSync = function (v /*boolean*/) {\n this.lipSync = v;\n};\n\n//============================================================\n// L2DBaseModel # setLipSyncValue()\n//============================================================\nL2DBaseModel.prototype.setLipSyncValue = function (v /*float*/) {\n this.lipSyncValue = v;\n};\n\n//============================================================\n// L2DBaseModel # setAccel()\n//============================================================\nL2DBaseModel.prototype.setAccel = function (x /*float*/, y /*float*/, z /*float*/) {\n this.accelX = x;\n this.accelY = y;\n this.accelZ = z;\n};\n\n//============================================================\n// L2DBaseModel # setDrag()\n//============================================================\nL2DBaseModel.prototype.setDrag = function (x /*float*/, y /*float*/) {\n this.dragX = x;\n this.dragY = y;\n};\n\n//============================================================\n// L2DBaseModel # getMainMotionManager()\n//============================================================\nL2DBaseModel.prototype.getMainMotionManager = function () {\n return this.mainMotionManager;\n};\n\n//============================================================\n// L2DBaseModel # getExpressionManager()\n//============================================================\nL2DBaseModel.prototype.getExpressionManager = function () {\n return this.expressionManager;\n};\n\n//============================================================\n// L2DBaseModel # loadModelData()\n//============================================================\nL2DBaseModel.prototype.loadModelData = function (path /*String*/, callback) {\n /*\r\n if( this.live2DModel != null ) {\r\n this.live2DModel.deleteTextures();\r\n }\r\n */\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log("Load model : " + path);\n\n var thisRef = this;\n pm.loadLive2DModel(path, function (l2dModel) {\n thisRef.live2DModel = l2dModel;\n thisRef.live2DModel.saveParam();\n\n var _err = Live2D.getError();\n\n if (_err != 0) {\n console.error("Error : Failed to loadModelData().");\n return;\n }\n\n thisRef.modelMatrix = new L2DModelMatrix(thisRef.live2DModel.getCanvasWidth(), thisRef.live2DModel.getCanvasHeight()); //L2DModelMatrix\n thisRef.modelMatrix.setWidth(2);\n thisRef.modelMatrix.setCenterPosition(0, 0);\n\n callback(thisRef.live2DModel);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadTexture()\n//============================================================\nL2DBaseModel.prototype.loadTexture = function (no /*int*/, path /*String*/, callback) {\n texCounter++;\n\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log("Load Texture : " + path);\n\n var thisRef = this;\n pm.loadTexture(this.live2DModel, no, path, function () {\n texCounter--;\n if (texCounter == 0) thisRef.isTexLoaded = true;\n if (typeof callback == "function") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadMotion()\n//============================================================\nL2DBaseModel.prototype.loadMotion = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log("Load Motion : " + path);\n\n var motion = null; //Live2DMotion\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n motion = Live2DMotion.loadMotion(buf);\n if (name != null) {\n thisRef.motions[name] = motion;\n }\n callback(motion);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadExpression()\n//============================================================\nL2DBaseModel.prototype.loadExpression = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log("Load Expression : " + path);\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n if (name != null) {\n thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf);\n }\n if (typeof callback == "function") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadPose()\n//============================================================\nL2DBaseModel.prototype.loadPose = function (path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log("Load Pose : " + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.pose = L2DPose.load(buf);\n if (typeof callback == "function") callback();\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # loadPhysics()\n//============================================================\nL2DBaseModel.prototype.loadPhysics = function (path /*String*/) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log("Load Physics : " + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.physics = L2DPhysics.load(buf);\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # hitTestSimple()\n//============================================================\nL2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) {\n var drawIndex = this.live2DModel.getDrawDataIndex(drawID);\n\n if (drawIndex < 0) return false;\n\n var points = this.live2DModel.getTransformedPoints(drawIndex);\n var left = this.live2DModel.getCanvasWidth();\n var right = 0;\n var top = this.live2DModel.getCanvasHeight();\n var bottom = 0;\n\n for (var j = 0; j < points.length; j = j + 2) {\n var x = points[j];\n var y = points[j + 1];\n\n if (x < left) left = x;\n if (x > right) right = x;\n if (y < top) top = y;\n if (y > bottom) bottom = y;\n }\n var tx = this.modelMatrix.invertTransformX(testX);\n var ty = this.modelMatrix.invertTransformY(testY);\n\n return left <= tx && tx <= right && top <= ty && ty <= bottom;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DExpressionMotion extends AMotion\n//============================================================\n//============================================================\nfunction L2DExpressionMotion() {\n AMotion.prototype.constructor.call(this);\n this.paramList = new Array(); //ArrayList\n}\n\nL2DExpressionMotion.prototype = new AMotion(); // L2DExpressionMotion extends AMotion\n\n//============================================================\nL2DExpressionMotion.EXPRESSION_DEFAULT = "DEFAULT";\nL2DExpressionMotion.TYPE_SET = 0;\nL2DExpressionMotion.TYPE_ADD = 1;\nL2DExpressionMotion.TYPE_MULT = 2;\n\n//============================================================\n// static L2DExpressionMotion.loadJson()\n//============================================================\nL2DExpressionMotion.loadJson = function (buf) {\n var ret = new L2DExpressionMotion();\n\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n\n ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);\n ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);\n\n if (json.params == null) {\n return ret;\n }\n\n var params = json.params;\n var paramNum = params.length;\n ret.paramList = []; //ArrayList\n for (var i = 0; i < paramNum; i++) {\n var param = params[i];\n var paramID = param.id.toString();\n var value = parseFloat(param.val);\n var calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n var calc = param.calc != null ? param.calc.toString() : "add";\n if (calc === "add") {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n } else if (calc === "mult") {\n calcTypeInt = L2DExpressionMotion.TYPE_MULT;\n } else if (calc === "set") {\n calcTypeInt = L2DExpressionMotion.TYPE_SET;\n } else {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n }\n if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {\n var defaultValue = param.def == null ? 0 : parseFloat(param.def);\n value = value - defaultValue;\n } else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {\n var defaultValue = param.def == null ? 1 : parseFloat(param.def);\n if (defaultValue == 0) defaultValue = 1;\n value = value / defaultValue;\n }\n\n var item = new L2DExpressionParam();\n item.id = paramID;\n item.type = calcTypeInt;\n item.value = value;\n\n ret.paramList.push(item);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DExpressionMotion # updateParamExe()\n//============================================================\nL2DExpressionMotion.prototype.updateParamExe = function (model /*ALive2DModel*/, timeMSec /*long*/, weight /*float*/, motionQueueEnt /*MotionQueueEnt*/) {\n for (var i = this.paramList.length - 1; i >= 0; --i) {\n var param = this.paramList[i]; //L2DExpressionParam\n // if (!param || !param.type) continue;\n if (param.type == L2DExpressionMotion.TYPE_ADD) {\n model.addToParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_MULT) {\n model.multParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_SET) {\n model.setParamFloat(param.id, param.value, weight);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DExpressionParam \n//============================================================\n//============================================================\nfunction L2DExpressionParam() {\n this.id = "";\n this.type = -1;\n this.value = null;\n}\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DEyeBlink \n//============================================================\n//============================================================\nfunction L2DEyeBlink() {\n this.nextBlinkTime = null /* TODO NOT INIT */; // \n this.stateStartTime = null /* TODO NOT INIT */; // \n this.blinkIntervalMsec = null /* TODO NOT INIT */; // \n this.eyeState = EYE_STATE.STATE_FIRST;\n this.blinkIntervalMsec = 4000;\n this.closingMotionMsec = 100;\n this.closedMotionMsec = 50;\n this.openingMotionMsec = 150;\n this.closeIfZero = true;\n this.eyeID_L = "PARAM_EYE_L_OPEN";\n this.eyeID_R = "PARAM_EYE_R_OPEN";\n}\n\n//============================================================\n// L2DEyeBlink # calcNextBlink()\n//============================================================\nL2DEyeBlink.prototype.calcNextBlink = function () {\n var time /*long*/ = UtSystem.getUserTimeMSec();\n var r /*Number*/ = Math.random();\n return (/*(long)*/time + r * (2 * this.blinkIntervalMsec - 1)\n );\n};\n\n//============================================================\n// L2DEyeBlink # setInterval()\n//============================================================\nL2DEyeBlink.prototype.setInterval = function (blinkIntervalMsec /*int*/) {\n this.blinkIntervalMsec = blinkIntervalMsec;\n};\n\n//============================================================\n// L2DEyeBlink # setEyeMotion()\n//============================================================\nL2DEyeBlink.prototype.setEyeMotion = function (closingMotionMsec /*int*/, closedMotionMsec /*int*/, openingMotionMsec /*int*/) {\n this.closingMotionMsec = closingMotionMsec;\n this.closedMotionMsec = closedMotionMsec;\n this.openingMotionMsec = openingMotionMsec;\n};\n\n//============================================================\n// L2DEyeBlink # updateParam()\n//============================================================\nL2DEyeBlink.prototype.updateParam = function (model /*ALive2DModel*/) {\n var time /*:long*/ = UtSystem.getUserTimeMSec();\n var eyeParamValue /*:Number*/;\n var t /*:Number*/ = 0;\n switch (this.eyeState) {\n case EYE_STATE.STATE_CLOSING:\n t = (time - this.stateStartTime) / this.closingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_CLOSED;\n this.stateStartTime = time;\n }\n eyeParamValue = 1 - t;\n break;\n case EYE_STATE.STATE_CLOSED:\n t = (time - this.stateStartTime) / this.closedMotionMsec;\n if (t >= 1) {\n this.eyeState = EYE_STATE.STATE_OPENING;\n this.stateStartTime = time;\n }\n eyeParamValue = 0;\n break;\n case EYE_STATE.STATE_OPENING:\n t = (time - this.stateStartTime) / this.openingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n }\n eyeParamValue = t;\n break;\n case EYE_STATE.STATE_INTERVAL:\n if (this.nextBlinkTime < time) {\n this.eyeState = EYE_STATE.STATE_CLOSING;\n this.stateStartTime = time;\n }\n eyeParamValue = 1;\n break;\n case EYE_STATE.STATE_FIRST:\n default:\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n eyeParamValue = 1;\n break;\n }\n if (!this.closeIfZero) eyeParamValue = -eyeParamValue;\n model.setParamFloat(this.eyeID_L, eyeParamValue);\n model.setParamFloat(this.eyeID_R, eyeParamValue);\n};\n\n//== enum EYE_STATE ==\nvar EYE_STATE = function EYE_STATE() {};\n\nEYE_STATE.STATE_FIRST = "STATE_FIRST";\nEYE_STATE.STATE_INTERVAL = "STATE_INTERVAL";\nEYE_STATE.STATE_CLOSING = "STATE_CLOSING";\nEYE_STATE.STATE_CLOSED = "STATE_CLOSED";\nEYE_STATE.STATE_OPENING = "STATE_OPENING";\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMatrix44 \n//============================================================\n//============================================================\nfunction L2DMatrix44() {\n this.tr = new Float32Array(16); // \n this.identity();\n}\n\n//============================================================\n// static L2DMatrix44.mul()\n//============================================================\nL2DMatrix44.mul = function (a /*float[]*/, b /*float[]*/, dst /*float[]*/) {\n var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var n = 4;\n var i, j, k;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n for (k = 0; k < n; k++) {\n c[i + j * 4] += a[i + k * 4] * b[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n dst[i] = c[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # identity()\n//============================================================\nL2DMatrix44.prototype.identity = function () {\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\n//============================================================\n// L2DMatrix44 # getArray()\n//============================================================\nL2DMatrix44.prototype.getArray = function () {\n return this.tr;\n};\n\n//============================================================\n// L2DMatrix44 # getCopyMatrix()\n//============================================================\nL2DMatrix44.prototype.getCopyMatrix = function () {\n return new Float32Array(this.tr); // this.tr.clone();\n};\n\n//============================================================\n// L2DMatrix44 # setMatrix()\n//============================================================\nL2DMatrix44.prototype.setMatrix = function (tr /*float[]*/) {\n if (this.tr == null || this.tr.length != this.tr.length) return;\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = tr[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # getScaleX()\n//============================================================\nL2DMatrix44.prototype.getScaleX = function () {\n return this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # getScaleY()\n//============================================================\nL2DMatrix44.prototype.getScaleY = function () {\n return this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # transformX()\n//============================================================\nL2DMatrix44.prototype.transformX = function (src /*float*/) {\n return this.tr[0] * src + this.tr[12];\n};\n\n//============================================================\n// L2DMatrix44 # transformY()\n//============================================================\nL2DMatrix44.prototype.transformY = function (src /*float*/) {\n return this.tr[5] * src + this.tr[13];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformX()\n//============================================================\nL2DMatrix44.prototype.invertTransformX = function (src /*float*/) {\n return (src - this.tr[12]) / this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformY()\n//============================================================\nL2DMatrix44.prototype.invertTransformY = function (src /*float*/) {\n return (src - this.tr[13]) / this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # multTranslate()\n//============================================================\nL2DMatrix44.prototype.multTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # translate()\n//============================================================\nL2DMatrix44.prototype.translate = function (x /*float*/, y /*float*/) {\n this.tr[12] = x;\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # translateX()\n//============================================================\nL2DMatrix44.prototype.translateX = function (x /*float*/) {\n this.tr[12] = x;\n};\n\n//============================================================\n// L2DMatrix44 # translateY()\n//============================================================\nL2DMatrix44.prototype.translateY = function (y /*float*/) {\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # multScale()\n//============================================================\nL2DMatrix44.prototype.multScale = function (scaleX /*float*/, scaleY /*float*/) {\n var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # scale()\n//============================================================\nL2DMatrix44.prototype.scale = function (scaleX /*float*/, scaleY /*float*/) {\n this.tr[0] = scaleX;\n this.tr[5] = scaleY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DModelMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DModelMatrix(w /*float*/, h /*float*/) {\n L2DMatrix44.prototype.constructor.call(this);\n this.width = w;\n this.height = h;\n}\n\n//L2DModelMatrix extends L2DMatrix44\nL2DModelMatrix.prototype = new L2DMatrix44();\n\n//============================================================\n// L2DModelMatrix # setPosition()\n//============================================================\nL2DModelMatrix.prototype.setPosition = function (x /*float*/, y /*float*/) {\n this.translate(x, y);\n};\n\n//============================================================\n// L2DModelMatrix # setCenterPosition()\n//============================================================\nL2DModelMatrix.prototype.setCenterPosition = function (x /*float*/, y /*float*/) {\n var w = this.width * this.getScaleX();\n var h = this.height * this.getScaleY();\n this.translate(x - w / 2, y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # top()\n//============================================================\nL2DModelMatrix.prototype.top = function (y /*float*/) {\n this.setY(y);\n};\n\n//============================================================\n// L2DModelMatrix # bottom()\n//============================================================\nL2DModelMatrix.prototype.bottom = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h);\n};\n\n//============================================================\n// L2DModelMatrix # left()\n//============================================================\nL2DModelMatrix.prototype.left = function (x /*float*/) {\n this.setX(x);\n};\n\n//============================================================\n// L2DModelMatrix # right()\n//============================================================\nL2DModelMatrix.prototype.right = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w);\n};\n\n//============================================================\n// L2DModelMatrix # centerX()\n//============================================================\nL2DModelMatrix.prototype.centerX = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w / 2);\n};\n\n//============================================================\n// L2DModelMatrix # centerY()\n//============================================================\nL2DModelMatrix.prototype.centerY = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # setX()\n//============================================================\nL2DModelMatrix.prototype.setX = function (x /*float*/) {\n this.translateX(x);\n};\n\n//============================================================\n// L2DModelMatrix # setY()\n//============================================================\nL2DModelMatrix.prototype.setY = function (y /*float*/) {\n this.translateY(y);\n};\n\n//============================================================\n// L2DModelMatrix # setHeight()\n//============================================================\nL2DModelMatrix.prototype.setHeight = function (h /*float*/) {\n var scaleX = h / this.height;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n//============================================================\n// L2DModelMatrix # setWidth()\n//============================================================\nL2DModelMatrix.prototype.setWidth = function (w /*float*/) {\n var scaleX = w / this.width;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMotionManager extends MotionQueueManager\n//============================================================\n//============================================================\nfunction L2DMotionManager() {\n MotionQueueManager.prototype.constructor.call(this);\n this.currentPriority = null;\n this.reservePriority = null;\n\n this.super = MotionQueueManager.prototype;\n}\n\nL2DMotionManager.prototype = new MotionQueueManager();\n\n//============================================================\n// L2DMotionManager # getCurrentPriority()\n//============================================================\nL2DMotionManager.prototype.getCurrentPriority = function () {\n return this.currentPriority;\n};\n\n//============================================================\n// L2DMotionManager # getReservePriority()\n//============================================================\nL2DMotionManager.prototype.getReservePriority = function () {\n return this.reservePriority;\n};\n\n//============================================================\n// L2DMotionManager # reserveMotion()\n//============================================================\nL2DMotionManager.prototype.reserveMotion = function (priority /*int*/) {\n if (this.reservePriority >= priority) {\n return false;\n }\n if (this.currentPriority >= priority) {\n return false;\n }\n\n this.reservePriority = priority;\n\n return true;\n};\n\n//============================================================\n// L2DMotionManager # setReservePriority()\n//============================================================\nL2DMotionManager.prototype.setReservePriority = function (val /*int*/) {\n this.reservePriority = val;\n};\n\n//============================================================\n// L2DMotionManager # updateParam()\n//============================================================\nL2DMotionManager.prototype.updateParam = function (model /*ALive2DModel*/) {\n var updated = MotionQueueManager.prototype.updateParam.call(this, model);\n\n if (this.isFinished()) {\n this.currentPriority = 0;\n }\n\n return updated;\n};\n\n//============================================================\n// L2DMotionManager # startMotionPrio()\n//============================================================\nL2DMotionManager.prototype.startMotionPrio = function (motion /*AMotion*/, priority /*int*/) {\n if (priority == this.reservePriority) {\n this.reservePriority = 0;\n }\n this.currentPriority = priority;\n return this.startMotion(motion, false);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPhysics \n//============================================================\n//============================================================\nfunction L2DPhysics() {\n this.physicsList = new Array(); //ArrayList\n this.startTimeMSec = UtSystem.getUserTimeMSec();\n}\n\n//============================================================\n// static L2DPhysics.load()\n//============================================================\nL2DPhysics.load = function (buf /*byte[]*/) {\n var ret = new L2DPhysics(); //L2DPhysicsL2DPhysics\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var params = json.physics_hair;\n var paramNum = params.length;\n for (var i = 0; i < paramNum; i++) {\n var param = params[i]; //Value\n var physics = new PhysicsHair(); //PhysicsHairPhysicsHair\n var setup = param.setup; //Value\n var length = parseFloat(setup.length);\n var resist = parseFloat(setup.regist);\n var mass = parseFloat(setup.mass);\n physics.setup(length, resist, mass);\n var srcList = param.src; //Value\n var srcNum = srcList.length;\n for (var j = 0; j < srcNum; j++) {\n var src = srcList[j]; //Value\n var id = src.id; //String\n var type = PhysicsHair.Src.SRC_TO_X;\n var typeStr = src.ptype; //String\n if (typeStr === "x") {\n type = PhysicsHair.Src.SRC_TO_X;\n } else if (typeStr === "y") {\n type = PhysicsHair.Src.SRC_TO_Y;\n } else if (typeStr === "angle") {\n type = PhysicsHair.Src.SRC_TO_G_ANGLE;\n } else {\n UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Src");\n }\n var scale = parseFloat(src.scale);\n var weight = parseFloat(src.weight);\n physics.addSrcParam(type, id, scale, weight);\n }\n var targetList = param.targets; //Value\n var targetNum = targetList.length;\n for (var j = 0; j < targetNum; j++) {\n var target = targetList[j]; //Value\n var id = target.id; //String\n var type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n var typeStr = target.ptype; //String\n if (typeStr === "angle") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n } else if (typeStr === "angle_v") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE_V;\n } else {\n UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Target");\n }\n var scale = parseFloat(target.scale);\n var weight = parseFloat(target.weight);\n physics.addTargetParam(type, id, scale, weight);\n }\n ret.physicsList.push(physics);\n }\n return ret;\n};\n\n//============================================================\n// L2DPhysics # updateParam()\n//============================================================\nL2DPhysics.prototype.updateParam = function (model /*ALive2DModel*/) {\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n for (var i = 0; i < this.physicsList.length; i++) {\n this.physicsList[i].update(model, timeMSec);\n }\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPose \n//============================================================\n//============================================================\nfunction L2DPose() {\n this.lastTime = 0;\n this.lastModel = null; //ALive2DModel\n this.partsGroups = new Array(); //ArrayList\n}\n\n//============================================================\n// static L2DPose.load()\n//============================================================\nL2DPose.load = function (buf /*byte[]*/) {\n var ret = new L2DPose(); //L2DPose\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var poseListInfo = json.parts_visible; //Value\n var poseNum = poseListInfo.length;\n for (var i_pose = 0; i_pose < poseNum; i_pose++) {\n var poseInfo = poseListInfo[i_pose]; //Value\n var idListInfo = poseInfo.group; //Value\n var idNum = idListInfo.length;\n var partsGroup /*L2DPartsParam*/ = new Array();\n for (var i_group = 0; i_group < idNum; i_group++) {\n var partsInfo = idListInfo[i_group]; //Value\n var parts = new L2DPartsParam(partsInfo.id); //L2DPartsParamL2DPartsParam\n partsGroup[i_group] = parts;\n if (partsInfo.link == null) continue;\n var linkListInfo = partsInfo.link; //Value\n var linkNum = linkListInfo.length;\n parts.link = new Array(); //ArrayList\n for (var i_link = 0; i_link < linkNum; i_link++) {\n var linkParts = new L2DPartsParam(linkListInfo[i_link]); //L2DPartsParamL2DPartsParam\n parts.link.push(linkParts);\n }\n }\n ret.partsGroups.push(partsGroup);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DPose # updateParam()\n//============================================================\nL2DPose.prototype.updateParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n\n if (!(model == this.lastModel)) {\n this.initParam(model);\n }\n this.lastModel = model;\n\n var curTime = UtSystem.getUserTimeMSec();\n var deltaTimeSec = this.lastTime == 0 ? 0 : (curTime - this.lastTime) / 1000.0;\n this.lastTime = curTime;\n if (deltaTimeSec < 0) deltaTimeSec = 0;\n for (var i = 0; i < this.partsGroups.length; i++) {\n this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);\n this.copyOpacityOtherParts(model, this.partsGroups[i]);\n }\n};\n\n//============================================================\n// L2DPose # initParam()\n//============================================================\nL2DPose.prototype.initParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n for (var i = 0; i < this.partsGroups.length; i++) {\n var partsGroup = this.partsGroups[i]; //L2DPartsParam\n for (var j = 0; j < partsGroup.length; j++) {\n partsGroup[j].initIndex(model);\n var partsIndex = partsGroup[j].partsIndex;\n var paramIndex = partsGroup[j].paramIndex;\n if (partsIndex < 0) continue;\n var v /*:Boolean*/ = model.getParamFloat(paramIndex) != 0;\n model.setPartsOpacity(partsIndex, v ? 1.0 : 0.0);\n model.setParamFloat(paramIndex, v ? 1.0 : 0.0);\n if (partsGroup[j].link == null) continue;\n for (var k = 0; k < partsGroup[j].link.length; k++) {\n partsGroup[j].link[k].initIndex(model);\n }\n }\n }\n};\n\n//============================================================\n// L2DPose # normalizePartsOpacityGroup()\n//============================================================\nL2DPose.prototype.normalizePartsOpacityGroup = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/, deltaTimeSec /*float*/) {\n var visibleParts = -1;\n var visibleOpacity = 1.0;\n var CLEAR_TIME_SEC = 0.5;\n var phi = 0.5;\n var maxBackOpacity = 0.15;\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n var paramIndex = partsGroup[i].paramIndex;\n if (partsIndex < 0) continue;if (model.getParamFloat(paramIndex) != 0) {\n if (visibleParts >= 0) {\n break;\n }\n visibleParts = i;\n visibleOpacity = model.getPartsOpacity(partsIndex);\n visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;\n if (visibleOpacity > 1) {\n visibleOpacity = 1;\n }\n }\n }\n if (visibleParts < 0) {\n visibleParts = 0;\n visibleOpacity = 1;\n }\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n if (partsIndex < 0) continue;if (visibleParts == i) {\n model.setPartsOpacity(partsIndex, visibleOpacity);\n } else {\n var opacity = model.getPartsOpacity(partsIndex);\n var a1;\n if (visibleOpacity < phi) {\n a1 = visibleOpacity * (phi - 1) / phi + 1;\n } else {\n a1 = (1 - visibleOpacity) * phi / (1 - phi);\n }\n var backOp = (1 - a1) * (1 - visibleOpacity);\n if (backOp > maxBackOpacity) {\n a1 = 1 - maxBackOpacity / (1 - visibleOpacity);\n }\n if (opacity > a1) {\n opacity = a1;\n }\n model.setPartsOpacity(partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n// L2DPose # copyOpacityOtherParts()\n//============================================================\nL2DPose.prototype.copyOpacityOtherParts = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/) {\n for (var i_group = 0; i_group < partsGroup.length; i_group++) {\n var partsParam = partsGroup[i_group]; //L2DPartsParam\n if (partsParam.link == null) continue;\n if (partsParam.partsIndex < 0) continue;\n var opacity = model.getPartsOpacity(partsParam.partsIndex);\n for (var i_link = 0; i_link < partsParam.link.length; i_link++) {\n var linkParts = partsParam.link[i_link]; //L2DPartsParam\n if (linkParts.partsIndex < 0) continue;\n model.setPartsOpacity(linkParts.partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DPartsParam \n//============================================================\n//============================================================\nfunction L2DPartsParam(id /*String*/) {\n this.paramIndex = -1;\n this.partsIndex = -1;\n this.link = null; // ArrayList\n this.id = id;\n}\n\n//============================================================\n// L2DPartsParam # initIndex()\n//============================================================\nL2DPartsParam.prototype.initIndex = function (model /*ALive2DModel*/) {\n this.paramIndex = model.getParamIndex("VISIBLE:" + this.id);\n this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));\n model.setParamFloat(this.paramIndex, 1);\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DTargetPoint \n//============================================================\n//============================================================\nfunction L2DTargetPoint() {\n this.EPSILON = 0.01; // 変化の最小値(この値以下は無視される)\n this.faceTargetX = 0;\n this.faceTargetY = 0;\n this.faceX = 0;\n this.faceY = 0;\n this.faceVX = 0;\n this.faceVY = 0;\n this.lastTimeSec = 0;\n}\n\n//============================================================\nL2DTargetPoint.FRAME_RATE = 30;\n\n//============================================================\n// L2DTargetPoint # set()\n//============================================================\nL2DTargetPoint.prototype.setPoint = function (x /*float*/, y /*float*/) {\n this.faceTargetX = x;\n this.faceTargetY = y;\n};\n\n//============================================================\n// L2DTargetPoint # getX()\n//============================================================\nL2DTargetPoint.prototype.getX = function () {\n return this.faceX;\n};\n\n//============================================================\n// L2DTargetPoint # getY()\n//============================================================\nL2DTargetPoint.prototype.getY = function () {\n return this.faceY;\n};\n\n//============================================================\n// L2DTargetPoint # update()\n//============================================================\nL2DTargetPoint.prototype.update = function () {\n var TIME_TO_MAX_SPEED = 0.15;\n var FACE_PARAM_MAX_V = 40.0 / 7.5;\n var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;\n if (this.lastTimeSec == 0) {\n this.lastTimeSec = UtSystem.getUserTimeMSec();\n return;\n }\n var curTimeSec = UtSystem.getUserTimeMSec();\n var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;\n this.lastTimeSec = curTimeSec;\n var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;\n var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;\n var dx = this.faceTargetX - this.faceX;\n var dy = this.faceTargetY - this.faceY;\n // if(dx == 0 && dy == 0) return;\n if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;\n var d = Math.sqrt(dx * dx + dy * dy);\n var vx = MAX_V * dx / d;\n var vy = MAX_V * dy / d;\n var ax = vx - this.faceVX;\n var ay = vy - this.faceVY;\n var a = Math.sqrt(ax * ax + ay * ay);\n if (a < -MAX_A || a > MAX_A) {\n ax *= MAX_A / a;\n ay *= MAX_A / a;\n a = MAX_A;\n }\n this.faceVX += ax;\n this.faceVY += ay;\n {\n var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);\n var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);\n if (cur_v > max_v) {\n this.faceVX *= max_v / cur_v;\n this.faceVY *= max_v / cur_v;\n }\n }\n this.faceX += this.faceVX;\n this.faceY += this.faceVY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DViewMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DViewMatrix() {\n L2DMatrix44.prototype.constructor.call(this);\n this.screenLeft = null;\n this.screenRight = null;\n this.screenTop = null;\n this.screenBottom = null;\n this.maxLeft = null;\n this.maxRight = null;\n this.maxTop = null;\n this.maxBottom = null;\n this.max = Number.MAX_VALUE;\n this.min = 0;\n}\n\nL2DViewMatrix.prototype = new L2DMatrix44(); //L2DViewMatrix extends L2DMatrix44\n\n//============================================================\n// L2DViewMatrix # getMaxScale()\n//============================================================\nL2DViewMatrix.prototype.getMaxScale = function () {\n return this.max;\n};\n\n//============================================================\n// L2DViewMatrix # getMinScale()\n//============================================================\nL2DViewMatrix.prototype.getMinScale = function () {\n return this.min;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScale()\n//============================================================\nL2DViewMatrix.prototype.setMaxScale = function (v /*float*/) {\n this.max = v;\n};\n\n//============================================================\n// L2DViewMatrix # setMinScale()\n//============================================================\nL2DViewMatrix.prototype.setMinScale = function (v /*float*/) {\n this.min = v;\n};\n\n//============================================================\n// L2DViewMatrix # isMaxScale()\n//============================================================\nL2DViewMatrix.prototype.isMaxScale = function () {\n return this.getScaleX() == this.max;\n};\n\n//============================================================\n// L2DViewMatrix # isMinScale()\n//============================================================\nL2DViewMatrix.prototype.isMinScale = function () {\n return this.getScaleX() == this.min;\n};\n\n//============================================================\n// L2DViewMatrix # adjustTranslate()\n//============================================================\nL2DViewMatrix.prototype.adjustTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft) shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];\n if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight) shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];\n if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop) shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];\n if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom) shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];\n\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # adjustScale()\n//============================================================\nL2DViewMatrix.prototype.adjustScale = function (cx /*float*/, cy /*float*/, scale /*float*/) {\n var targetScale = scale * this.tr[0];\n if (targetScale < this.min) {\n if (this.tr[0] > 0) scale = this.min / this.tr[0];\n } else if (targetScale > this.max) {\n if (this.tr[0] > 0) scale = this.max / this.tr[0];\n }\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, cx, cy, 0, 1];\n var tr2 = [scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n var tr3 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -cx, -cy, 0, 1];\n L2DMatrix44.mul(tr3, this.tr, this.tr);\n L2DMatrix44.mul(tr2, this.tr, this.tr);\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # setScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.screenLeft = left;\n this.screenRight = right;\n this.screenTop = top;\n this.screenBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setMaxScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.maxLeft = left;\n this.maxRight = right;\n this.maxTop = top;\n this.maxBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenLeft()\n//============================================================\nL2DViewMatrix.prototype.getScreenLeft = function () {\n return this.screenLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenRight()\n//============================================================\nL2DViewMatrix.prototype.getScreenRight = function () {\n return this.screenRight;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenBottom()\n//============================================================\nL2DViewMatrix.prototype.getScreenBottom = function () {\n return this.screenBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenTop()\n//============================================================\nL2DViewMatrix.prototype.getScreenTop = function () {\n return this.screenTop;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxLeft()\n//============================================================\nL2DViewMatrix.prototype.getMaxLeft = function () {\n return this.maxLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxRight()\n//============================================================\nL2DViewMatrix.prototype.getMaxRight = function () {\n return this.maxRight;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxBottom()\n//============================================================\nL2DViewMatrix.prototype.getMaxBottom = function () {\n return this.maxBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxTop()\n//============================================================\nL2DViewMatrix.prototype.getMaxTop = function () {\n return this.maxTop;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class Live2DFramework \n//============================================================\n//============================================================\nfunction Live2DFramework() {}\n\n//============================================================\nLive2DFramework.platformManager = null;\n\n//============================================================\n// static Live2DFramework.getPlatformManager()\n//============================================================\nLive2DFramework.getPlatformManager = function () {\n return Live2DFramework.platformManager;\n};\n\n//============================================================\n// static Live2DFramework.setPlatformManager()\n//============================================================\nLive2DFramework.setPlatformManager = function (platformManager /*IPlatformManager*/) {\n Live2DFramework.platformManager = platformManager;\n};\n\nmodule.exports = {\n L2DTargetPoint: L2DTargetPoint,\n Live2DFramework: Live2DFramework,\n L2DViewMatrix: L2DViewMatrix,\n L2DPose: L2DPose,\n L2DPartsParam: L2DPartsParam,\n L2DPhysics: L2DPhysics,\n L2DMotionManager: L2DMotionManager,\n L2DModelMatrix: L2DModelMatrix,\n L2DMatrix44: L2DMatrix44,\n EYE_STATE: EYE_STATE,\n L2DEyeBlink: L2DEyeBlink,\n L2DExpressionParam: L2DExpressionParam,\n L2DExpressionMotion: L2DExpressionMotion,\n L2DBaseModel: L2DBaseModel\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvbGliL0xpdmUyREZyYW1ld29yay5qcz9mOTA1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBFWUhOIOWfuuS6jiBsaXZlMmQg5a6Y5pa5IExpdmUyREZyYW1ld29yay5qcyDkv67mlLlcclxuICogXHJcbiAqIENvcHlyaWdodCDCqSAyMDE2IC0gMjAxNyBFWUhOXHJcbiAqL1xyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgY2xhc3MgTDJEQmFzZU1vZGVsICAgICAgICAgXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyREJhc2VNb2RlbCgpIHtcclxuICAgIHRoaXMubGl2ZTJETW9kZWwgPSBudWxsOyAvLyBBTGl2ZTJETW9kZWxcclxuICAgIHRoaXMubW9kZWxNYXRyaXggPSBudWxsOyAvLyBMMkRNb2RlbE1hdHJpeFxyXG4gICAgdGhpcy5leWVCbGluayA9IG51bGw7IC8vIEwyREV5ZUJsaW5rXHJcbiAgICB0aGlzLnBoeXNpY3MgPSBudWxsOyAvLyBMMkRQaHlzaWNzXHJcbiAgICB0aGlzLnBvc2UgPSBudWxsOyAvLyBMMkRQb3NlXHJcbiAgICB0aGlzLmRlYnVnTW9kZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51cGRhdGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5hbHBoYSA9IDE7XHJcbiAgICB0aGlzLmFjY0FscGhhID0gMDtcclxuICAgIHRoaXMubGlwU3luYyA9IGZhbHNlO1xyXG4gICAgdGhpcy5saXBTeW5jVmFsdWUgPSAwO1xyXG4gICAgdGhpcy5hY2NlbFggPSAwO1xyXG4gICAgdGhpcy5hY2NlbFkgPSAwO1xyXG4gICAgdGhpcy5hY2NlbFogPSAwO1xyXG4gICAgdGhpcy5kcmFnWCA9IDA7XHJcbiAgICB0aGlzLmRyYWdZID0gMDtcclxuICAgIHRoaXMuc3RhcnRUaW1lTVNlYyA9IG51bGw7XHJcbiAgICB0aGlzLm1haW5Nb3Rpb25NYW5hZ2VyID0gbmV3IEwyRE1vdGlvbk1hbmFnZXIoKTsgLy9MMkRNb3Rpb25NYW5hZ2VyXHJcbiAgICB0aGlzLmV4cHJlc3Npb25NYW5hZ2VyID0gbmV3IEwyRE1vdGlvbk1hbmFnZXIoKTsgLy9MMkRNb3Rpb25NYW5hZ2VyXHJcbiAgICB0aGlzLm1vdGlvbnMgPSB7fTtcclxuICAgIHRoaXMuZXhwcmVzc2lvbnMgPSB7fTtcclxuXHJcbiAgICB0aGlzLmlzVGV4TG9hZGVkID0gZmFsc2U7XHJcbn1cclxuXHJcbnZhciB0ZXhDb3VudGVyID0gMDtcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIGdldE1vZGVsTWF0cml4KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5nZXRNb2RlbE1hdHJpeCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsTWF0cml4O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBzZXRBbHBoYSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuc2V0QWxwaGEgPSBmdW5jdGlvbiAoYS8qZmxvYXQqLykge1xyXG4gICAgaWYgKGEgPiAwLjk5OSkgYSA9IDE7XHJcbiAgICBpZiAoYSA8IDAuMDAxKSBhID0gMDtcclxuICAgIHRoaXMuYWxwaGEgPSBhO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBnZXRBbHBoYSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuZ2V0QWxwaGEgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hbHBoYTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgaXNJbml0aWFsaXplZCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuaXNJbml0aWFsaXplZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBzZXRJbml0aWFsaXplZCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuc2V0SW5pdGlhbGl6ZWQgPSBmdW5jdGlvbiAodi8qYm9vbGVhbiovKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdjtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgaXNVcGRhdGluZygpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuaXNVcGRhdGluZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLnVwZGF0aW5nO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBzZXRVcGRhdGluZygpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUuc2V0VXBkYXRpbmcgPSBmdW5jdGlvbiAodi8qYm9vbGVhbiovKSB7XHJcbiAgICB0aGlzLnVwZGF0aW5nID0gdjtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgZ2V0TGl2ZTJETW9kZWwoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLmdldExpdmUyRE1vZGVsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGl2ZTJETW9kZWw7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIHNldExpcFN5bmMoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLnNldExpcFN5bmMgPSBmdW5jdGlvbiAodi8qYm9vbGVhbiovKSB7XHJcbiAgICB0aGlzLmxpcFN5bmMgPSB2O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBzZXRMaXBTeW5jVmFsdWUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLnNldExpcFN5bmNWYWx1ZSA9IGZ1bmN0aW9uICh2LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLmxpcFN5bmNWYWx1ZSA9IHY7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIHNldEFjY2VsKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5zZXRBY2NlbCA9IGZ1bmN0aW9uICh4LypmbG9hdCovLCB5LypmbG9hdCovLCB6LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLmFjY2VsWCA9IHg7XHJcbiAgICB0aGlzLmFjY2VsWSA9IHk7XHJcbiAgICB0aGlzLmFjY2VsWiA9IHo7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIHNldERyYWcoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLnNldERyYWcgPSBmdW5jdGlvbiAoeC8qZmxvYXQqLywgeS8qZmxvYXQqLykge1xyXG4gICAgdGhpcy5kcmFnWCA9IHg7XHJcbiAgICB0aGlzLmRyYWdZID0geTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgZ2V0TWFpbk1vdGlvbk1hbmFnZXIoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLmdldE1haW5Nb3Rpb25NYW5hZ2VyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFpbk1vdGlvbk1hbmFnZXI7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIGdldEV4cHJlc3Npb25NYW5hZ2VyKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5nZXRFeHByZXNzaW9uTWFuYWdlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25NYW5hZ2VyO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBsb2FkTW9kZWxEYXRhKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5sb2FkTW9kZWxEYXRhID0gZnVuY3Rpb24gKHBhdGgvKlN0cmluZyovLCBjYWxsYmFjaykge1xyXG4gICAgLypcclxuICAgIGlmKCB0aGlzLmxpdmUyRE1vZGVsICE9IG51bGwgKSB7XHJcbiAgICAgICAgdGhpcy5saXZlMkRNb2RlbC5kZWxldGVUZXh0dXJlcygpO1xyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIHZhciBwbSA9IExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKTsgLy9JUGxhdGZvcm1NYW5hZ2VyXHJcbiAgICBpZiAodGhpcy5kZWJ1Z01vZGUpIHBtLmxvZyhcIkxvYWQgbW9kZWwgOiBcIiArIHBhdGgpO1xyXG5cclxuICAgIHZhciB0aGlzUmVmID0gdGhpcztcclxuICAgIHBtLmxvYWRMaXZlMkRNb2RlbChwYXRoLCBmdW5jdGlvbiAobDJkTW9kZWwpIHtcclxuICAgICAgICB0aGlzUmVmLmxpdmUyRE1vZGVsID0gbDJkTW9kZWw7XHJcbiAgICAgICAgdGhpc1JlZi5saXZlMkRNb2RlbC5zYXZlUGFyYW0oKTtcclxuXHJcbiAgICAgICAgdmFyIF9lcnIgPSBMaXZlMkQuZ2V0RXJyb3IoKTtcclxuXHJcbiAgICAgICAgaWYgKF9lcnIgIT0gMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgOiBGYWlsZWQgdG8gbG9hZE1vZGVsRGF0YSgpLlwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpc1JlZi5tb2RlbE1hdHJpeCA9IG5ldyBMMkRNb2RlbE1hdHJpeChcclxuICAgICAgICAgICAgdGhpc1JlZi5saXZlMkRNb2RlbC5nZXRDYW52YXNXaWR0aCgpLFxyXG4gICAgICAgICAgICB0aGlzUmVmLmxpdmUyRE1vZGVsLmdldENhbnZhc0hlaWdodCgpKTsgLy9MMkRNb2RlbE1hdHJpeFxyXG4gICAgICAgIHRoaXNSZWYubW9kZWxNYXRyaXguc2V0V2lkdGgoMik7XHJcbiAgICAgICAgdGhpc1JlZi5tb2RlbE1hdHJpeC5zZXRDZW50ZXJQb3NpdGlvbigwLCAwKTtcclxuXHJcbiAgICAgICAgY2FsbGJhY2sodGhpc1JlZi5saXZlMkRNb2RlbCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIGxvYWRUZXh0dXJlKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5sb2FkVGV4dHVyZSA9IGZ1bmN0aW9uIChuby8qaW50Ki8sIHBhdGgvKlN0cmluZyovLCBjYWxsYmFjaykge1xyXG4gICAgdGV4Q291bnRlcisrO1xyXG5cclxuICAgIHZhciBwbSA9IExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKTsgLy9JUGxhdGZvcm1NYW5hZ2VyXHJcblxyXG4gICAgaWYgKHRoaXMuZGVidWdNb2RlKSBwbS5sb2coXCJMb2FkIFRleHR1cmUgOiBcIiArIHBhdGgpO1xyXG5cclxuICAgIHZhciB0aGlzUmVmID0gdGhpcztcclxuICAgIHBtLmxvYWRUZXh0dXJlKHRoaXMubGl2ZTJETW9kZWwsIG5vLCBwYXRoLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGV4Q291bnRlci0tO1xyXG4gICAgICAgIGlmICh0ZXhDb3VudGVyID09IDApIHRoaXNSZWYuaXNUZXhMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gXCJmdW5jdGlvblwiKSBjYWxsYmFjaygpO1xyXG4gICAgfSk7XHJcblxyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBsb2FkTW90aW9uKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEQmFzZU1vZGVsLnByb3RvdHlwZS5sb2FkTW90aW9uID0gZnVuY3Rpb24gKG5hbWUvKlN0cmluZyovLCBwYXRoIC8qU3RyaW5nKi8sIGNhbGxiYWNrKSB7XHJcbiAgICB2YXIgcG0gPSBMaXZlMkRGcmFtZXdvcmsuZ2V0UGxhdGZvcm1NYW5hZ2VyKCk7IC8vSVBsYXRmb3JtTWFuYWdlclxyXG5cclxuICAgIGlmICh0aGlzLmRlYnVnTW9kZSkgcG0ubG9nKFwiTG9hZCBNb3Rpb24gOiBcIiArIHBhdGgpO1xyXG5cclxuICAgIHZhciBtb3Rpb24gPSBudWxsOyAvL0xpdmUyRE1vdGlvblxyXG5cclxuICAgIHZhciB0aGlzUmVmID0gdGhpcztcclxuICAgIHBtLmxvYWRCeXRlcyhwYXRoLCBmdW5jdGlvbiAoYnVmKSB7XHJcbiAgICAgICAgbW90aW9uID0gTGl2ZTJETW90aW9uLmxvYWRNb3Rpb24oYnVmKTtcclxuICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXNSZWYubW90aW9uc1tuYW1lXSA9IG1vdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FsbGJhY2sobW90aW9uKTtcclxuICAgIH0pO1xyXG5cclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgbG9hZEV4cHJlc3Npb24oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLmxvYWRFeHByZXNzaW9uID0gZnVuY3Rpb24gKG5hbWUvKlN0cmluZyovLCBwYXRoIC8qU3RyaW5nKi8sIGNhbGxiYWNrKSB7XHJcbiAgICB2YXIgcG0gPSBMaXZlMkRGcmFtZXdvcmsuZ2V0UGxhdGZvcm1NYW5hZ2VyKCk7IC8vSVBsYXRmb3JtTWFuYWdlclxyXG5cclxuICAgIGlmICh0aGlzLmRlYnVnTW9kZSkgcG0ubG9nKFwiTG9hZCBFeHByZXNzaW9uIDogXCIgKyBwYXRoKTtcclxuXHJcbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XHJcbiAgICBwbS5sb2FkQnl0ZXMocGF0aCwgZnVuY3Rpb24gKGJ1Zikge1xyXG4gICAgICAgIGlmIChuYW1lICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpc1JlZi5leHByZXNzaW9uc1tuYW1lXSA9IEwyREV4cHJlc3Npb25Nb3Rpb24ubG9hZEpzb24oYnVmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSBcImZ1bmN0aW9uXCIpIGNhbGxiYWNrKCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEQmFzZU1vZGVsICMgbG9hZFBvc2UoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLmxvYWRQb3NlID0gZnVuY3Rpb24gKHBhdGggLypTdHJpbmcqLywgY2FsbGJhY2spIHtcclxuICAgIHZhciBwbSA9IExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKTsgLy9JUGxhdGZvcm1NYW5hZ2VyXHJcbiAgICBpZiAodGhpcy5kZWJ1Z01vZGUpIHBtLmxvZyhcIkxvYWQgUG9zZSA6IFwiICsgcGF0aCk7XHJcbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHBtLmxvYWRCeXRlcyhwYXRoLCBmdW5jdGlvbiAoYnVmKSB7XHJcbiAgICAgICAgICAgIHRoaXNSZWYucG9zZSA9IEwyRFBvc2UubG9hZChidWYpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09IFwiZnVuY3Rpb25cIikgY2FsbGJhY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKGUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRCYXNlTW9kZWwgIyBsb2FkUGh5c2ljcygpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREJhc2VNb2RlbC5wcm90b3R5cGUubG9hZFBoeXNpY3MgPSBmdW5jdGlvbiAocGF0aC8qU3RyaW5nKi8pIHtcclxuICAgIHZhciBwbSA9IExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKTsgLy9JUGxhdGZvcm1NYW5hZ2VyXHJcbiAgICBpZiAodGhpcy5kZWJ1Z01vZGUpIHBtLmxvZyhcIkxvYWQgUGh5c2ljcyA6IFwiICsgcGF0aCk7XHJcbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHBtLmxvYWRCeXRlcyhwYXRoLCBmdW5jdGlvbiAoYnVmKSB7XHJcbiAgICAgICAgICAgIHRoaXNSZWYucGh5c2ljcyA9IEwyRFBoeXNpY3MubG9hZChidWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREJhc2VNb2RlbCAjIGhpdFRlc3RTaW1wbGUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRCYXNlTW9kZWwucHJvdG90eXBlLmhpdFRlc3RTaW1wbGUgPSBmdW5jdGlvbiAoZHJhd0lELCB0ZXN0WCwgdGVzdFkpIHtcclxuICAgIHZhciBkcmF3SW5kZXggPSB0aGlzLmxpdmUyRE1vZGVsLmdldERyYXdEYXRhSW5kZXgoZHJhd0lEKTtcclxuXHJcbiAgICBpZiAoZHJhd0luZGV4IDwgMCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHZhciBwb2ludHMgPSB0aGlzLmxpdmUyRE1vZGVsLmdldFRyYW5zZm9ybWVkUG9pbnRzKGRyYXdJbmRleCk7XHJcbiAgICB2YXIgbGVmdCA9IHRoaXMubGl2ZTJETW9kZWwuZ2V0Q2FudmFzV2lkdGgoKTtcclxuICAgIHZhciByaWdodCA9IDA7XHJcbiAgICB2YXIgdG9wID0gdGhpcy5saXZlMkRNb2RlbC5nZXRDYW52YXNIZWlnaHQoKTtcclxuICAgIHZhciBib3R0b20gPSAwO1xyXG5cclxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaiA9IGogKyAyKSB7XHJcbiAgICAgICAgdmFyIHggPSBwb2ludHNbal07XHJcbiAgICAgICAgdmFyIHkgPSBwb2ludHNbaiArIDFdO1xyXG5cclxuICAgICAgICBpZiAoeCA8IGxlZnQpIGxlZnQgPSB4O1xyXG4gICAgICAgIGlmICh4ID4gcmlnaHQpIHJpZ2h0ID0geDtcclxuICAgICAgICBpZiAoeSA8IHRvcCkgdG9wID0geTtcclxuICAgICAgICBpZiAoeSA+IGJvdHRvbSkgYm90dG9tID0geTtcclxuICAgIH1cclxuICAgIHZhciB0eCA9IHRoaXMubW9kZWxNYXRyaXguaW52ZXJ0VHJhbnNmb3JtWCh0ZXN0WCk7XHJcbiAgICB2YXIgdHkgPSB0aGlzLm1vZGVsTWF0cml4LmludmVydFRyYW5zZm9ybVkodGVzdFkpO1xyXG5cclxuICAgIHJldHVybiAobGVmdCA8PSB0eCAmJiB0eCA8PSByaWdodCAmJiB0b3AgPD0gdHkgJiYgdHkgPD0gYm90dG9tKTtcclxufVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqICBZb3UgY2FuIG1vZGlmeSBhbmQgdXNlIHRoaXMgc291cmNlIGZyZWVseVxyXG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxyXG4gKlxyXG4gKiAgKGMpIExpdmUyRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIEwyREV4cHJlc3Npb25Nb3Rpb24gIGV4dGVuZHMgICAgIEFNb3Rpb25cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZnVuY3Rpb24gTDJERXhwcmVzc2lvbk1vdGlvbigpIHtcclxuICAgIEFNb3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7XHJcbiAgICB0aGlzLnBhcmFtTGlzdCA9IG5ldyBBcnJheSgpOyAvL0FycmF5TGlzdDxMMkRFeHByZXNzaW9uUGFyYW0+XHJcbn1cclxuXHJcbkwyREV4cHJlc3Npb25Nb3Rpb24ucHJvdG90eXBlID0gbmV3IEFNb3Rpb24oKTsgLy8gTDJERXhwcmVzc2lvbk1vdGlvbiBleHRlbmRzIEFNb3Rpb25cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREV4cHJlc3Npb25Nb3Rpb24uRVhQUkVTU0lPTl9ERUZBVUxUID0gXCJERUZBVUxUXCI7XHJcbkwyREV4cHJlc3Npb25Nb3Rpb24uVFlQRV9TRVQgPSAwO1xyXG5MMkRFeHByZXNzaW9uTW90aW9uLlRZUEVfQUREID0gMTtcclxuTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX01VTFQgPSAyO1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgc3RhdGljIEwyREV4cHJlc3Npb25Nb3Rpb24ubG9hZEpzb24oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRFeHByZXNzaW9uTW90aW9uLmxvYWRKc29uID0gZnVuY3Rpb24gKGJ1Zikge1xyXG4gICAgdmFyIHJldCA9IG5ldyBMMkRFeHByZXNzaW9uTW90aW9uKCk7XHJcblxyXG4gICAgdmFyIHBtID0gTGl2ZTJERnJhbWV3b3JrLmdldFBsYXRmb3JtTWFuYWdlcigpO1xyXG4gICAgdmFyIGpzb24gPSBwbS5qc29uUGFyc2VGcm9tQnl0ZXMoYnVmKTtcclxuXHJcbiAgICByZXQuc2V0RmFkZUluKHBhcnNlSW50KGpzb24uZmFkZV9pbikgPiAwID8gcGFyc2VJbnQoanNvbi5mYWRlX2luKSA6IDEwMDApO1xyXG4gICAgcmV0LnNldEZhZGVPdXQocGFyc2VJbnQoanNvbi5mYWRlX291dCkgPiAwID8gcGFyc2VJbnQoanNvbi5mYWRlX291dCkgOiAxMDAwKTtcclxuXHJcbiAgICBpZiAoanNvbi5wYXJhbXMgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHBhcmFtcyA9IGpzb24ucGFyYW1zO1xyXG4gICAgdmFyIHBhcmFtTnVtID0gcGFyYW1zLmxlbmd0aDtcclxuICAgIHJldC5wYXJhbUxpc3QgPSBbXTsgLy9BcnJheUxpc3Q8TDJERXhwcmVzc2lvblBhcmFtPlxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbU51bTsgaSsrKSB7XHJcbiAgICAgICAgdmFyIHBhcmFtID0gcGFyYW1zW2ldO1xyXG4gICAgICAgIHZhciBwYXJhbUlEID0gcGFyYW0uaWQudG9TdHJpbmcoKTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBwYXJzZUZsb2F0KHBhcmFtLnZhbCk7XHJcbiAgICAgICAgdmFyIGNhbGNUeXBlSW50ID0gTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX0FERDtcclxuICAgICAgICB2YXIgY2FsYyA9IHBhcmFtLmNhbGMgIT0gbnVsbCA/IHBhcmFtLmNhbGMudG9TdHJpbmcoKSA6IFwiYWRkXCI7XHJcbiAgICAgICAgaWYgKGNhbGMgPT09IFwiYWRkXCIpIHtcclxuICAgICAgICAgICAgY2FsY1R5cGVJbnQgPSBMMkRFeHByZXNzaW9uTW90aW9uLlRZUEVfQUREO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjYWxjID09PSBcIm11bHRcIikge1xyXG4gICAgICAgICAgICBjYWxjVHlwZUludCA9IEwyREV4cHJlc3Npb25Nb3Rpb24uVFlQRV9NVUxUO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjYWxjID09PSBcInNldFwiKSB7XHJcbiAgICAgICAgICAgIGNhbGNUeXBlSW50ID0gTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX1NFVDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNhbGNUeXBlSW50ID0gTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX0FERDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNhbGNUeXBlSW50ID09IEwyREV4cHJlc3Npb25Nb3Rpb24uVFlQRV9BREQpIHtcclxuICAgICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHBhcmFtLmRlZiA9PSBudWxsID8gMCA6IHBhcnNlRmxvYXQocGFyYW0uZGVmKTtcclxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAtIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY2FsY1R5cGVJbnQgPT0gTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX01VTFQpIHtcclxuICAgICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHBhcmFtLmRlZiA9PSBudWxsID8gMSA6IHBhcnNlRmxvYXQocGFyYW0uZGVmKTtcclxuICAgICAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSAwKSBkZWZhdWx0VmFsdWUgPSAxO1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlIC8gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGl0ZW0gPSBuZXcgTDJERXhwcmVzc2lvblBhcmFtKCk7XHJcbiAgICAgICAgaXRlbS5pZCA9IHBhcmFtSUQ7XHJcbiAgICAgICAgaXRlbS50eXBlID0gY2FsY1R5cGVJbnQ7XHJcbiAgICAgICAgaXRlbS52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXQucGFyYW1MaXN0LnB1c2goaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldDtcclxufVxyXG5cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREV4cHJlc3Npb25Nb3Rpb24gIyB1cGRhdGVQYXJhbUV4ZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREV4cHJlc3Npb25Nb3Rpb24ucHJvdG90eXBlLnVwZGF0ZVBhcmFtRXhlID0gZnVuY3Rpb24gKG1vZGVsIC8qQUxpdmUyRE1vZGVsKi8sIHRpbWVNU2VjLypsb25nKi8sIHdlaWdodCAvKmZsb2F0Ki8sIG1vdGlvblF1ZXVlRW50IC8qTW90aW9uUXVldWVFbnQqLykge1xyXG4gICAgZm9yICh2YXIgaSA9IHRoaXMucGFyYW1MaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XHJcbiAgICAgICAgdmFyIHBhcmFtID0gdGhpcy5wYXJhbUxpc3RbaV07IC8vTDJERXhwcmVzc2lvblBhcmFtXHJcbiAgICAgICAgLy8gaWYgKCFwYXJhbSB8fCAhcGFyYW0udHlwZSkgY29udGludWU7XHJcbiAgICAgICAgaWYgKHBhcmFtLnR5cGUgPT0gTDJERXhwcmVzc2lvbk1vdGlvbi5UWVBFX0FERCkge1xyXG4gICAgICAgICAgICBtb2RlbC5hZGRUb1BhcmFtRmxvYXQocGFyYW0uaWQsIHBhcmFtLnZhbHVlLCB3ZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwYXJhbS50eXBlID09IEwyREV4cHJlc3Npb25Nb3Rpb24uVFlQRV9NVUxUKSB7XHJcbiAgICAgICAgICAgIG1vZGVsLm11bHRQYXJhbUZsb2F0KHBhcmFtLmlkLCBwYXJhbS52YWx1ZSwgd2VpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocGFyYW0udHlwZSA9PSBMMkRFeHByZXNzaW9uTW90aW9uLlRZUEVfU0VUKSB7XHJcbiAgICAgICAgICAgIG1vZGVsLnNldFBhcmFtRmxvYXQocGFyYW0uaWQsIHBhcmFtLnZhbHVlLCB3ZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIEwyREV4cHJlc3Npb25QYXJhbSAgIFxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5mdW5jdGlvbiBMMkRFeHByZXNzaW9uUGFyYW0oKSB7XHJcbiAgICB0aGlzLmlkID0gXCJcIjtcclxuICAgIHRoaXMudHlwZSA9IC0xO1xyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiAgWW91IGNhbiBtb2RpZnkgYW5kIHVzZSB0aGlzIHNvdXJjZSBmcmVlbHlcclxuICogIG9ubHkgZm9yIHRoZSBkZXZlbG9wbWVudCBvZiBhcHBsaWNhdGlvbiByZWxhdGVkIExpdmUyRC5cclxuICpcclxuICogIChjKSBMaXZlMkQgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKi9cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICBjbGFzcyBMMkRFeWVCbGluayAgICAgICAgICBcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZnVuY3Rpb24gTDJERXllQmxpbmsoKSB7XHJcbiAgICB0aGlzLm5leHRCbGlua1RpbWUgPSBudWxsIC8qIFRPRE8gTk9UIElOSVQgKi87IC8vIFxyXG4gICAgdGhpcy5zdGF0ZVN0YXJ0VGltZSA9IG51bGwgLyogVE9ETyBOT1QgSU5JVCAqLzsgLy8gXHJcbiAgICB0aGlzLmJsaW5rSW50ZXJ2YWxNc2VjID0gbnVsbCAvKiBUT0RPIE5PVCBJTklUICovOyAvLyBcclxuICAgIHRoaXMuZXllU3RhdGUgPSBFWUVfU1RBVEUuU1RBVEVfRklSU1Q7XHJcbiAgICB0aGlzLmJsaW5rSW50ZXJ2YWxNc2VjID0gNDAwMDtcclxuICAgIHRoaXMuY2xvc2luZ01vdGlvbk1zZWMgPSAxMDA7XHJcbiAgICB0aGlzLmNsb3NlZE1vdGlvbk1zZWMgPSA1MDtcclxuICAgIHRoaXMub3BlbmluZ01vdGlvbk1zZWMgPSAxNTA7XHJcbiAgICB0aGlzLmNsb3NlSWZaZXJvID0gdHJ1ZTtcclxuICAgIHRoaXMuZXllSURfTCA9IFwiUEFSQU1fRVlFX0xfT1BFTlwiO1xyXG4gICAgdGhpcy5leWVJRF9SID0gXCJQQVJBTV9FWUVfUl9PUEVOXCI7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREV5ZUJsaW5rICMgY2FsY05leHRCbGluaygpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREV5ZUJsaW5rLnByb3RvdHlwZS5jYWxjTmV4dEJsaW5rID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHRpbWUgLypsb25nKi8gPSBVdFN5c3RlbS5nZXRVc2VyVGltZU1TZWMoKTtcclxuICAgIHZhciByIC8qTnVtYmVyKi8gPSBNYXRoLnJhbmRvbSgpO1xyXG4gICAgcmV0dXJuICAvKihsb25nKSovICh0aW1lICsgciAqICgyICogdGhpcy5ibGlua0ludGVydmFsTXNlYyAtIDEpKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJERXllQmxpbmsgIyBzZXRJbnRlcnZhbCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyREV5ZUJsaW5rLnByb3RvdHlwZS5zZXRJbnRlcnZhbCA9IGZ1bmN0aW9uIChibGlua0ludGVydmFsTXNlYyAvKmludCovKSB7XHJcbiAgICB0aGlzLmJsaW5rSW50ZXJ2YWxNc2VjID0gYmxpbmtJbnRlcnZhbE1zZWM7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREV5ZUJsaW5rICMgc2V0RXllTW90aW9uKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJERXllQmxpbmsucHJvdG90eXBlLnNldEV5ZU1vdGlvbiA9IGZ1bmN0aW9uIChjbG9zaW5nTW90aW9uTXNlYy8qaW50Ki8sIGNsb3NlZE1vdGlvbk1zZWMvKmludCovLCBvcGVuaW5nTW90aW9uTXNlYy8qaW50Ki8pIHtcclxuICAgIHRoaXMuY2xvc2luZ01vdGlvbk1zZWMgPSBjbG9zaW5nTW90aW9uTXNlYztcclxuICAgIHRoaXMuY2xvc2VkTW90aW9uTXNlYyA9IGNsb3NlZE1vdGlvbk1zZWM7XHJcbiAgICB0aGlzLm9wZW5pbmdNb3Rpb25Nc2VjID0gb3BlbmluZ01vdGlvbk1zZWM7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyREV5ZUJsaW5rICMgdXBkYXRlUGFyYW0oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRFeWVCbGluay5wcm90b3R5cGUudXBkYXRlUGFyYW0gPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovKSB7XHJcbiAgICB2YXIgdGltZSAvKjpsb25nKi8gPSBVdFN5c3RlbS5nZXRVc2VyVGltZU1TZWMoKTtcclxuICAgIHZhciBleWVQYXJhbVZhbHVlIC8qOk51bWJlciovO1xyXG4gICAgdmFyIHQgLyo6TnVtYmVyKi8gPSAwO1xyXG4gICAgc3dpdGNoICh0aGlzLmV5ZVN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSBFWUVfU1RBVEUuU1RBVEVfQ0xPU0lORzpcclxuICAgICAgICAgICAgdCA9ICh0aW1lIC0gdGhpcy5zdGF0ZVN0YXJ0VGltZSkgLyB0aGlzLmNsb3NpbmdNb3Rpb25Nc2VjO1xyXG4gICAgICAgICAgICBpZiAodCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0ID0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXllU3RhdGUgPSBFWUVfU1RBVEUuU1RBVEVfQ0xPU0VEO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVN0YXJ0VGltZSA9IHRpbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZXllUGFyYW1WYWx1ZSA9IDEgLSB0O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEVZRV9TVEFURS5TVEFURV9DTE9TRUQ6XHJcbiAgICAgICAgICAgIHQgPSAodGltZSAtIHRoaXMuc3RhdGVTdGFydFRpbWUpIC8gdGhpcy5jbG9zZWRNb3Rpb25Nc2VjO1xyXG4gICAgICAgICAgICBpZiAodCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV5ZVN0YXRlID0gRVlFX1NUQVRFLlNUQVRFX09QRU5JTkc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlU3RhcnRUaW1lID0gdGltZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBleWVQYXJhbVZhbHVlID0gMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFWUVfU1RBVEUuU1RBVEVfT1BFTklORzpcclxuICAgICAgICAgICAgdCA9ICh0aW1lIC0gdGhpcy5zdGF0ZVN0YXJ0VGltZSkgLyB0aGlzLm9wZW5pbmdNb3Rpb25Nc2VjO1xyXG4gICAgICAgICAgICBpZiAodCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0ID0gMTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXllU3RhdGUgPSBFWUVfU1RBVEUuU1RBVEVfSU5URVJWQUw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5leHRCbGlua1RpbWUgPSB0aGlzLmNhbGNOZXh0QmxpbmsoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBleWVQYXJhbVZhbHVlID0gdDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFWUVfU1RBVEUuU1RBVEVfSU5URVJWQUw6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5leHRCbGlua1RpbWUgPCB0aW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV5ZVN0YXRlID0gRVlFX1NUQVRFLlNUQVRFX0NMT1NJTkc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlU3RhcnRUaW1lID0gdGltZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBleWVQYXJhbVZhbHVlID0gMTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFWUVfU1RBVEUuU1RBVEVfRklSU1Q6XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhpcy5leWVTdGF0ZSA9IEVZRV9TVEFURS5TVEFURV9JTlRFUlZBTDtcclxuICAgICAgICAgICAgdGhpcy5uZXh0QmxpbmtUaW1lID0gdGhpcy5jYWxjTmV4dEJsaW5rKCk7XHJcbiAgICAgICAgICAgIGV5ZVBhcmFtVmFsdWUgPSAxO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jbG9zZUlmWmVybykgZXllUGFyYW1WYWx1ZSA9IC1leWVQYXJhbVZhbHVlO1xyXG4gICAgbW9kZWwuc2V0UGFyYW1GbG9hdCh0aGlzLmV5ZUlEX0wsIGV5ZVBhcmFtVmFsdWUpO1xyXG4gICAgbW9kZWwuc2V0UGFyYW1GbG9hdCh0aGlzLmV5ZUlEX1IsIGV5ZVBhcmFtVmFsdWUpO1xyXG59XHJcblxyXG4vLz09IGVudW0gRVlFX1NUQVRFID09XHJcbnZhciBFWUVfU1RBVEUgPSBmdW5jdGlvbiAoKSB7IH07XHJcblxyXG5FWUVfU1RBVEUuU1RBVEVfRklSU1QgPSBcIlNUQVRFX0ZJUlNUXCJcclxuRVlFX1NUQVRFLlNUQVRFX0lOVEVSVkFMID0gXCJTVEFURV9JTlRFUlZBTFwiXHJcbkVZRV9TVEFURS5TVEFURV9DTE9TSU5HID0gXCJTVEFURV9DTE9TSU5HXCJcclxuRVlFX1NUQVRFLlNUQVRFX0NMT1NFRCA9IFwiU1RBVEVfQ0xPU0VEXCJcclxuRVlFX1NUQVRFLlNUQVRFX09QRU5JTkcgPSBcIlNUQVRFX09QRU5JTkdcIlxyXG4vKipcclxuICpcclxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XHJcbiAqICBvbmx5IGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgYXBwbGljYXRpb24gcmVsYXRlZCBMaXZlMkQuXHJcbiAqXHJcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgY2xhc3MgTDJETWF0cml4NDQgICAgICAgICAgXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRE1hdHJpeDQ0KCkge1xyXG4gICAgdGhpcy50ciA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpOyAvLyBcclxuICAgIHRoaXMuaWRlbnRpdHkoKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgc3RhdGljIEwyRE1hdHJpeDQ0Lm11bCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1hdHJpeDQ0Lm11bCA9IGZ1bmN0aW9uIChhLypmbG9hdFtdKi8sIGIvKmZsb2F0W10qLywgZHN0LypmbG9hdFtdKi8pIHtcclxuICAgIHZhciBjID0gWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdO1xyXG4gICAgdmFyIG4gPSA0O1xyXG4gICAgdmFyIGksIGosIGs7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IG47IGorKykge1xyXG4gICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbjsgaysrKSB7XHJcbiAgICAgICAgICAgICAgICBjW2kgKyBqICogNF0gKz0gYVtpICsgayAqIDRdICogYltrICsgaiAqIDRdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHtcclxuICAgICAgICBkc3RbaV0gPSBjW2ldO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNYXRyaXg0NCAjIGlkZW50aXR5KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLmlkZW50aXR5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgZm9yICh2YXIgaS8qOmludCovID0gMDsgaSA8IDE2OyBpKyspXHJcbiAgICAgICAgdGhpcy50cltpXSA9ICgoaSAlIDUpID09IDApID8gMSA6IDA7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1hdHJpeDQ0ICMgZ2V0QXJyYXkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUuZ2V0QXJyYXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cjtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyBnZXRDb3B5TWF0cml4KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLmdldENvcHlNYXRyaXggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gbmV3IEZsb2F0MzJBcnJheSh0aGlzLnRyKTsgLy8gdGhpcy50ci5jbG9uZSgpO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNYXRyaXg0NCAjIHNldE1hdHJpeCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1hdHJpeDQ0LnByb3RvdHlwZS5zZXRNYXRyaXggPSBmdW5jdGlvbiAodHIvKmZsb2F0W10qLykge1xyXG4gICAgaWYgKHRoaXMudHIgPT0gbnVsbCB8fCB0aGlzLnRyLmxlbmd0aCAhPSB0aGlzLnRyLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgZm9yICh2YXIgaS8qOmludCovID0gMDsgaSA8IDE2OyBpKyspIHRoaXMudHJbaV0gPSB0cltpXTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyBnZXRTY2FsZVgoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUuZ2V0U2NhbGVYID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJbMF07XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1hdHJpeDQ0ICMgZ2V0U2NhbGVZKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLmdldFNjYWxlWSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyWzVdO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNYXRyaXg0NCAjIHRyYW5zZm9ybVgoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUudHJhbnNmb3JtWCA9IGZ1bmN0aW9uIChzcmMvKmZsb2F0Ki8pIHtcclxuICAgIHJldHVybiB0aGlzLnRyWzBdICogc3JjICsgdGhpcy50clsxMl07XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1hdHJpeDQ0ICMgdHJhbnNmb3JtWSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1hdHJpeDQ0LnByb3RvdHlwZS50cmFuc2Zvcm1ZID0gZnVuY3Rpb24gKHNyYy8qZmxvYXQqLykge1xyXG4gICAgcmV0dXJuIHRoaXMudHJbNV0gKiBzcmMgKyB0aGlzLnRyWzEzXTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyBpbnZlcnRUcmFuc2Zvcm1YKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLmludmVydFRyYW5zZm9ybVggPSBmdW5jdGlvbiAoc3JjLypmbG9hdCovKSB7XHJcbiAgICByZXR1cm4gKHNyYyAtIHRoaXMudHJbMTJdKSAvIHRoaXMudHJbMF07XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1hdHJpeDQ0ICMgaW52ZXJ0VHJhbnNmb3JtWSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1hdHJpeDQ0LnByb3RvdHlwZS5pbnZlcnRUcmFuc2Zvcm1ZID0gZnVuY3Rpb24gKHNyYy8qZmxvYXQqLykge1xyXG4gICAgcmV0dXJuIChzcmMgLSB0aGlzLnRyWzEzXSkgLyB0aGlzLnRyWzVdO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNYXRyaXg0NCAjIG11bHRUcmFuc2xhdGUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUubXVsdFRyYW5zbGF0ZSA9IGZ1bmN0aW9uIChzaGlmdFgvKmZsb2F0Ki8sIHNoaWZ0WS8qZmxvYXQqLykge1xyXG4gICAgdmFyIHRyMSA9IFsxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCBzaGlmdFgsIHNoaWZ0WSwgMCwgMV07XHJcbiAgICBMMkRNYXRyaXg0NC5tdWwodHIxLCB0aGlzLnRyLCB0aGlzLnRyKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyB0cmFuc2xhdGUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUudHJhbnNsYXRlID0gZnVuY3Rpb24gKHgvKmZsb2F0Ki8sIHkvKmZsb2F0Ki8pIHtcclxuICAgIHRoaXMudHJbMTJdID0geDtcclxuICAgIHRoaXMudHJbMTNdID0geTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyB0cmFuc2xhdGVYKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLnRyYW5zbGF0ZVggPSBmdW5jdGlvbiAoeC8qZmxvYXQqLykge1xyXG4gICAgdGhpcy50clsxMl0gPSB4O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNYXRyaXg0NCAjIHRyYW5zbGF0ZVkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNYXRyaXg0NC5wcm90b3R5cGUudHJhbnNsYXRlWSA9IGZ1bmN0aW9uICh5LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLnRyWzEzXSA9IHk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1hdHJpeDQ0ICMgbXVsdFNjYWxlKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETWF0cml4NDQucHJvdG90eXBlLm11bHRTY2FsZSA9IGZ1bmN0aW9uIChzY2FsZVgvKmZsb2F0Ki8sIHNjYWxlWS8qZmxvYXQqLykge1xyXG4gICAgdmFyIHRyMSA9IFtzY2FsZVgsIDAsIDAsIDAsIDAsIHNjYWxlWSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMV07XHJcbiAgICBMMkRNYXRyaXg0NC5tdWwodHIxLCB0aGlzLnRyLCB0aGlzLnRyKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETWF0cml4NDQgIyBzY2FsZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1hdHJpeDQ0LnByb3RvdHlwZS5zY2FsZSA9IGZ1bmN0aW9uIChzY2FsZVgvKmZsb2F0Ki8sIHNjYWxlWS8qZmxvYXQqLykge1xyXG4gICAgdGhpcy50clswXSA9IHNjYWxlWDtcclxuICAgIHRoaXMudHJbNV0gPSBzY2FsZVk7XHJcbn1cclxuLyoqXHJcbiAqXHJcbiAqICBZb3UgY2FuIG1vZGlmeSBhbmQgdXNlIHRoaXMgc291cmNlIGZyZWVseVxyXG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxyXG4gKlxyXG4gKiAgKGMpIExpdmUyRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIEwyRE1vZGVsTWF0cml4ICAgICAgIGV4dGVuZHMgICAgIEwyRE1hdHJpeDQ0XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRE1vZGVsTWF0cml4KHcvKmZsb2F0Ki8sIGgvKmZsb2F0Ki8pIHtcclxuICAgIEwyRE1hdHJpeDQ0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMpO1xyXG4gICAgdGhpcy53aWR0aCA9IHc7XHJcbiAgICB0aGlzLmhlaWdodCA9IGg7XHJcbn1cclxuXHJcbi8vTDJETW9kZWxNYXRyaXggZXh0ZW5kcyBMMkRNYXRyaXg0NFxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUgPSBuZXcgTDJETWF0cml4NDQoKTtcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vZGVsTWF0cml4ICMgc2V0UG9zaXRpb24oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUuc2V0UG9zaXRpb24gPSBmdW5jdGlvbiAoeC8qZmxvYXQqLywgeS8qZmxvYXQqLykge1xyXG4gICAgdGhpcy50cmFuc2xhdGUoeCwgeSk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vZGVsTWF0cml4ICMgc2V0Q2VudGVyUG9zaXRpb24oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUuc2V0Q2VudGVyUG9zaXRpb24gPSBmdW5jdGlvbiAoeC8qZmxvYXQqLywgeS8qZmxvYXQqLykge1xyXG4gICAgdmFyIHcgPSB0aGlzLndpZHRoICogdGhpcy5nZXRTY2FsZVgoKTtcclxuICAgIHZhciBoID0gdGhpcy5oZWlnaHQgKiB0aGlzLmdldFNjYWxlWSgpO1xyXG4gICAgdGhpcy50cmFuc2xhdGUoeCAtIHcgLyAyLCB5IC0gaCAvIDIpO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb2RlbE1hdHJpeCAjIHRvcCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1vZGVsTWF0cml4LnByb3RvdHlwZS50b3AgPSBmdW5jdGlvbiAoeS8qZmxvYXQqLykge1xyXG4gICAgdGhpcy5zZXRZKHkpO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb2RlbE1hdHJpeCAjIGJvdHRvbSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1vZGVsTWF0cml4LnByb3RvdHlwZS5ib3R0b20gPSBmdW5jdGlvbiAoeS8qZmxvYXQqLykge1xyXG4gICAgdmFyIGggPSB0aGlzLmhlaWdodCAqIHRoaXMuZ2V0U2NhbGVZKCk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVkoeSAtIGgpO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb2RlbE1hdHJpeCAjIGxlZnQoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUubGVmdCA9IGZ1bmN0aW9uICh4LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLnNldFgoeCk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vZGVsTWF0cml4ICMgcmlnaHQoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUucmlnaHQgPSBmdW5jdGlvbiAoeC8qZmxvYXQqLykge1xyXG4gICAgdmFyIHcgPSB0aGlzLndpZHRoICogdGhpcy5nZXRTY2FsZVgoKTtcclxuICAgIHRoaXMudHJhbnNsYXRlWCh4IC0gdyk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vZGVsTWF0cml4ICMgY2VudGVyWCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1vZGVsTWF0cml4LnByb3RvdHlwZS5jZW50ZXJYID0gZnVuY3Rpb24gKHgvKmZsb2F0Ki8pIHtcclxuICAgIHZhciB3ID0gdGhpcy53aWR0aCAqIHRoaXMuZ2V0U2NhbGVYKCk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVgoeCAtIHcgLyAyKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETW9kZWxNYXRyaXggIyBjZW50ZXJZKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETW9kZWxNYXRyaXgucHJvdG90eXBlLmNlbnRlclkgPSBmdW5jdGlvbiAoeS8qZmxvYXQqLykge1xyXG4gICAgdmFyIGggPSB0aGlzLmhlaWdodCAqIHRoaXMuZ2V0U2NhbGVZKCk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVkoeSAtIGggLyAyKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETW9kZWxNYXRyaXggIyBzZXRYKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETW9kZWxNYXRyaXgucHJvdG90eXBlLnNldFggPSBmdW5jdGlvbiAoeC8qZmxvYXQqLykge1xyXG4gICAgdGhpcy50cmFuc2xhdGVYKHgpO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb2RlbE1hdHJpeCAjIHNldFkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb2RlbE1hdHJpeC5wcm90b3R5cGUuc2V0WSA9IGZ1bmN0aW9uICh5LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVkoeSk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vZGVsTWF0cml4ICMgc2V0SGVpZ2h0KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETW9kZWxNYXRyaXgucHJvdG90eXBlLnNldEhlaWdodCA9IGZ1bmN0aW9uIChoLypmbG9hdCovKSB7XHJcbiAgICB2YXIgc2NhbGVYID0gaCAvIHRoaXMuaGVpZ2h0O1xyXG4gICAgdmFyIHNjYWxlWSA9IC1zY2FsZVg7XHJcbiAgICB0aGlzLnNjYWxlKHNjYWxlWCwgc2NhbGVZKTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJETW9kZWxNYXRyaXggIyBzZXRXaWR0aCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRE1vZGVsTWF0cml4LnByb3RvdHlwZS5zZXRXaWR0aCA9IGZ1bmN0aW9uICh3LypmbG9hdCovKSB7XHJcbiAgICB2YXIgc2NhbGVYID0gdyAvIHRoaXMud2lkdGg7XHJcbiAgICB2YXIgc2NhbGVZID0gLXNjYWxlWDtcclxuICAgIHRoaXMuc2NhbGUoc2NhbGVYLCBzY2FsZVkpO1xyXG59XHJcblxyXG4vKipcclxuICpcclxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XHJcbiAqICBvbmx5IGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgYXBwbGljYXRpb24gcmVsYXRlZCBMaXZlMkQuXHJcbiAqXHJcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgY2xhc3MgTDJETW90aW9uTWFuYWdlciAgICAgZXh0ZW5kcyAgICAgTW90aW9uUXVldWVNYW5hZ2VyXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRE1vdGlvbk1hbmFnZXIoKSB7XHJcbiAgICBNb3Rpb25RdWV1ZU1hbmFnZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7XHJcbiAgICB0aGlzLmN1cnJlbnRQcmlvcml0eSA9IG51bGw7XHJcbiAgICB0aGlzLnJlc2VydmVQcmlvcml0eSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zdXBlciA9IE1vdGlvblF1ZXVlTWFuYWdlci5wcm90b3R5cGU7XHJcbn1cclxuXHJcblxyXG5MMkRNb3Rpb25NYW5hZ2VyLnByb3RvdHlwZSA9IG5ldyBNb3Rpb25RdWV1ZU1hbmFnZXIoKTtcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vdGlvbk1hbmFnZXIgIyBnZXRDdXJyZW50UHJpb3JpdHkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb3Rpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXRDdXJyZW50UHJpb3JpdHkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UHJpb3JpdHk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vdGlvbk1hbmFnZXIgIyBnZXRSZXNlcnZlUHJpb3JpdHkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb3Rpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXRSZXNlcnZlUHJpb3JpdHkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNlcnZlUHJpb3JpdHk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vdGlvbk1hbmFnZXIgIyByZXNlcnZlTW90aW9uKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETW90aW9uTWFuYWdlci5wcm90b3R5cGUucmVzZXJ2ZU1vdGlvbiA9IGZ1bmN0aW9uIChwcmlvcml0eS8qaW50Ki8pIHtcclxuICAgIGlmICh0aGlzLnJlc2VydmVQcmlvcml0eSA+PSBwcmlvcml0eSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRQcmlvcml0eSA+PSBwcmlvcml0eSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlc2VydmVQcmlvcml0eSA9IHByaW9yaXR5O1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb3Rpb25NYW5hZ2VyICMgc2V0UmVzZXJ2ZVByaW9yaXR5KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJETW90aW9uTWFuYWdlci5wcm90b3R5cGUuc2V0UmVzZXJ2ZVByaW9yaXR5ID0gZnVuY3Rpb24gKHZhbC8qaW50Ki8pIHtcclxuICAgIHRoaXMucmVzZXJ2ZVByaW9yaXR5ID0gdmFsO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRNb3Rpb25NYW5hZ2VyICMgdXBkYXRlUGFyYW0oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb3Rpb25NYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVQYXJhbSA9IGZ1bmN0aW9uIChtb2RlbC8qQUxpdmUyRE1vZGVsKi8pIHtcclxuICAgIHZhciB1cGRhdGVkID0gTW90aW9uUXVldWVNYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVQYXJhbS5jYWxsKHRoaXMsIG1vZGVsKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0ZpbmlzaGVkKCkpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQcmlvcml0eSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVwZGF0ZWQ7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRE1vdGlvbk1hbmFnZXIgIyBzdGFydE1vdGlvblByaW8oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRNb3Rpb25NYW5hZ2VyLnByb3RvdHlwZS5zdGFydE1vdGlvblByaW8gPSBmdW5jdGlvbiAobW90aW9uLypBTW90aW9uKi8sIHByaW9yaXR5LyppbnQqLykge1xyXG4gICAgaWYgKHByaW9yaXR5ID09IHRoaXMucmVzZXJ2ZVByaW9yaXR5KSB7XHJcbiAgICAgICAgdGhpcy5yZXNlcnZlUHJpb3JpdHkgPSAwO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50UHJpb3JpdHkgPSBwcmlvcml0eTtcclxuICAgIHJldHVybiB0aGlzLnN0YXJ0TW90aW9uKG1vdGlvbiwgZmFsc2UpO1xyXG59XHJcblxyXG4vKipcclxuICpcclxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XHJcbiAqICBvbmx5IGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgYXBwbGljYXRpb24gcmVsYXRlZCBMaXZlMkQuXHJcbiAqXHJcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgY2xhc3MgTDJEUGh5c2ljcyAgICAgICAgICAgXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRFBoeXNpY3MoKSB7XHJcbiAgICB0aGlzLnBoeXNpY3NMaXN0ID0gbmV3IEFycmF5KCk7IC8vQXJyYXlMaXN0PFBoeXNpY3NIYWlyPlxyXG4gICAgdGhpcy5zdGFydFRpbWVNU2VjID0gVXRTeXN0ZW0uZ2V0VXNlclRpbWVNU2VjKCk7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIHN0YXRpYyBMMkRQaHlzaWNzLmxvYWQoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRQaHlzaWNzLmxvYWQgPSBmdW5jdGlvbiAoYnVmIC8qYnl0ZVtdKi8pIHtcclxuICAgIHZhciByZXQgPSBuZXcgTDJEUGh5c2ljcygpOyAvL0wyRFBoeXNpY3NMMkRQaHlzaWNzXHJcbiAgICB2YXIgcG0gPSBMaXZlMkRGcmFtZXdvcmsuZ2V0UGxhdGZvcm1NYW5hZ2VyKCk7XHJcbiAgICB2YXIganNvbiA9IHBtLmpzb25QYXJzZUZyb21CeXRlcyhidWYpO1xyXG4gICAgdmFyIHBhcmFtcyA9IGpzb24ucGh5c2ljc19oYWlyO1xyXG4gICAgdmFyIHBhcmFtTnVtID0gcGFyYW1zLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1OdW07IGkrKykge1xyXG4gICAgICAgIHZhciBwYXJhbSA9IHBhcmFtc1tpXTsgLy9WYWx1ZVxyXG4gICAgICAgIHZhciBwaHlzaWNzID0gbmV3IFBoeXNpY3NIYWlyKCk7IC8vUGh5c2ljc0hhaXJQaHlzaWNzSGFpclxyXG4gICAgICAgIHZhciBzZXR1cCA9IHBhcmFtLnNldHVwOyAvL1ZhbHVlXHJcbiAgICAgICAgdmFyIGxlbmd0aCA9IHBhcnNlRmxvYXQoc2V0dXAubGVuZ3RoKTtcclxuICAgICAgICB2YXIgcmVzaXN0ID0gcGFyc2VGbG9hdChzZXR1cC5yZWdpc3QpO1xyXG4gICAgICAgIHZhciBtYXNzID0gcGFyc2VGbG9hdChzZXR1cC5tYXNzKTtcclxuICAgICAgICBwaHlzaWNzLnNldHVwKGxlbmd0aCwgcmVzaXN0LCBtYXNzKTtcclxuICAgICAgICB2YXIgc3JjTGlzdCA9IHBhcmFtLnNyYzsgLy9WYWx1ZVxyXG4gICAgICAgIHZhciBzcmNOdW0gPSBzcmNMaXN0Lmxlbmd0aDtcclxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNyY051bTsgaisrKSB7XHJcbiAgICAgICAgICAgIHZhciBzcmMgPSBzcmNMaXN0W2pdOyAvL1ZhbHVlXHJcbiAgICAgICAgICAgIHZhciBpZCA9IHNyYy5pZDsgLy9TdHJpbmdcclxuICAgICAgICAgICAgdmFyIHR5cGUgPSBQaHlzaWNzSGFpci5TcmMuU1JDX1RPX1g7XHJcbiAgICAgICAgICAgIHZhciB0eXBlU3RyID0gc3JjLnB0eXBlOyAvL1N0cmluZ1xyXG4gICAgICAgICAgICBpZiAodHlwZVN0ciA9PT0gXCJ4XCIpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSBQaHlzaWNzSGFpci5TcmMuU1JDX1RPX1g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZVN0ciA9PT0gXCJ5XCIpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSBQaHlzaWNzSGFpci5TcmMuU1JDX1RPX1k7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZVN0ciA9PT0gXCJhbmdsZVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gUGh5c2ljc0hhaXIuU3JjLlNSQ19UT19HX0FOR0xFO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgVXREZWJ1Zy5lcnJvcihcImxpdmUyZFwiLCBcIkludmFsaWQgcGFyYW1ldGVyOlBoeXNpY3NIYWlyLlNyY1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgc2NhbGUgPSBwYXJzZUZsb2F0KHNyYy5zY2FsZSk7XHJcbiAgICAgICAgICAgIHZhciB3ZWlnaHQgPSBwYXJzZUZsb2F0KHNyYy53ZWlnaHQpO1xyXG4gICAgICAgICAgICBwaHlzaWNzLmFkZFNyY1BhcmFtKHR5cGUsIGlkLCBzY2FsZSwgd2VpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldExpc3QgPSBwYXJhbS50YXJnZXRzOyAvL1ZhbHVlXHJcbiAgICAgICAgdmFyIHRhcmdldE51bSA9IHRhcmdldExpc3QubGVuZ3RoO1xyXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGFyZ2V0TnVtOyBqKyspIHtcclxuICAgICAgICAgICAgdmFyIHRhcmdldCA9IHRhcmdldExpc3Rbal07IC8vVmFsdWVcclxuICAgICAgICAgICAgdmFyIGlkID0gdGFyZ2V0LmlkOyAvL1N0cmluZ1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IFBoeXNpY3NIYWlyLlRhcmdldC5UQVJHRVRfRlJPTV9BTkdMRTtcclxuICAgICAgICAgICAgdmFyIHR5cGVTdHIgPSB0YXJnZXQucHR5cGU7IC8vU3RyaW5nXHJcbiAgICAgICAgICAgIGlmICh0eXBlU3RyID09PSBcImFuZ2xlXCIpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSBQaHlzaWNzSGFpci5UYXJnZXQuVEFSR0VUX0ZST01fQU5HTEU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZVN0ciA9PT0gXCJhbmdsZV92XCIpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSBQaHlzaWNzSGFpci5UYXJnZXQuVEFSR0VUX0ZST01fQU5HTEVfVjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIFV0RGVidWcuZXJyb3IoXCJsaXZlMmRcIiwgXCJJbnZhbGlkIHBhcmFtZXRlcjpQaHlzaWNzSGFpci5UYXJnZXRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHNjYWxlID0gcGFyc2VGbG9hdCh0YXJnZXQuc2NhbGUpO1xyXG4gICAgICAgICAgICB2YXIgd2VpZ2h0ID0gcGFyc2VGbG9hdCh0YXJnZXQud2VpZ2h0KTtcclxuICAgICAgICAgICAgcGh5c2ljcy5hZGRUYXJnZXRQYXJhbSh0eXBlLCBpZCwgc2NhbGUsIHdlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldC5waHlzaWNzTGlzdC5wdXNoKHBoeXNpY3MpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJldDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEUGh5c2ljcyAjIHVwZGF0ZVBhcmFtKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEUGh5c2ljcy5wcm90b3R5cGUudXBkYXRlUGFyYW0gPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovKSB7XHJcbiAgICB2YXIgdGltZU1TZWMgPSBVdFN5c3RlbS5nZXRVc2VyVGltZU1TZWMoKSAtIHRoaXMuc3RhcnRUaW1lTVNlYztcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5waHlzaWNzTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMucGh5c2ljc0xpc3RbaV0udXBkYXRlKG1vZGVsLCB0aW1lTVNlYyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiAgWW91IGNhbiBtb2RpZnkgYW5kIHVzZSB0aGlzIHNvdXJjZSBmcmVlbHlcclxuICogIG9ubHkgZm9yIHRoZSBkZXZlbG9wbWVudCBvZiBhcHBsaWNhdGlvbiByZWxhdGVkIExpdmUyRC5cclxuICpcclxuICogIChjKSBMaXZlMkQgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKi9cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICBjbGFzcyBMMkRQb3NlICAgICAgICAgICAgICBcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZnVuY3Rpb24gTDJEUG9zZSgpIHtcclxuICAgIHRoaXMubGFzdFRpbWUgPSAwO1xyXG4gICAgdGhpcy5sYXN0TW9kZWwgPSBudWxsOyAvL0FMaXZlMkRNb2RlbFxyXG4gICAgdGhpcy5wYXJ0c0dyb3VwcyA9IG5ldyBBcnJheSgpOyAvL0FycmF5TGlzdDxMMkRQYXJ0c1BhcmFtW10+XHJcbn1cclxuXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBzdGF0aWMgTDJEUG9zZS5sb2FkKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEUG9zZS5sb2FkID0gZnVuY3Rpb24gKGJ1Zi8qYnl0ZVtdKi8pIHtcclxuICAgIHZhciByZXQgPSBuZXcgTDJEUG9zZSgpOyAvL0wyRFBvc2VcclxuICAgIHZhciBwbSA9IExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKTtcclxuICAgIHZhciBqc29uID0gcG0uanNvblBhcnNlRnJvbUJ5dGVzKGJ1Zik7XHJcbiAgICB2YXIgcG9zZUxpc3RJbmZvID0ganNvbi5wYXJ0c192aXNpYmxlOyAvL1ZhbHVlXHJcbiAgICB2YXIgcG9zZU51bSA9IHBvc2VMaXN0SW5mby5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciBpX3Bvc2UgPSAwOyBpX3Bvc2UgPCBwb3NlTnVtOyBpX3Bvc2UrKykge1xyXG4gICAgICAgIHZhciBwb3NlSW5mbyA9IHBvc2VMaXN0SW5mb1tpX3Bvc2VdOyAvL1ZhbHVlXHJcbiAgICAgICAgdmFyIGlkTGlzdEluZm8gPSBwb3NlSW5mby5ncm91cDsgLy9WYWx1ZVxyXG4gICAgICAgIHZhciBpZE51bSA9IGlkTGlzdEluZm8ubGVuZ3RoO1xyXG4gICAgICAgIHZhciBwYXJ0c0dyb3VwLypMMkRQYXJ0c1BhcmFtKi8gPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICBmb3IgKHZhciBpX2dyb3VwID0gMDsgaV9ncm91cCA8IGlkTnVtOyBpX2dyb3VwKyspIHtcclxuICAgICAgICAgICAgdmFyIHBhcnRzSW5mbyA9IGlkTGlzdEluZm9baV9ncm91cF07IC8vVmFsdWVcclxuICAgICAgICAgICAgdmFyIHBhcnRzID0gbmV3IEwyRFBhcnRzUGFyYW0ocGFydHNJbmZvLmlkKTsgLy9MMkRQYXJ0c1BhcmFtTDJEUGFydHNQYXJhbVxyXG4gICAgICAgICAgICBwYXJ0c0dyb3VwW2lfZ3JvdXBdID0gcGFydHM7XHJcbiAgICAgICAgICAgIGlmIChwYXJ0c0luZm8ubGluayA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgICAgICAgdmFyIGxpbmtMaXN0SW5mbyA9IHBhcnRzSW5mby5saW5rOyAvL1ZhbHVlXHJcbiAgICAgICAgICAgIHZhciBsaW5rTnVtID0gbGlua0xpc3RJbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgcGFydHMubGluayA9IG5ldyBBcnJheSgpOyAvL0FycmF5TGlzdDxMMkRQYXJ0c1BhcmFtPlxyXG4gICAgICAgICAgICBmb3IgKHZhciBpX2xpbmsgPSAwOyBpX2xpbmsgPCBsaW5rTnVtOyBpX2xpbmsrKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGxpbmtQYXJ0cyA9IG5ldyBMMkRQYXJ0c1BhcmFtKGxpbmtMaXN0SW5mb1tpX2xpbmtdKTsgLy9MMkRQYXJ0c1BhcmFtTDJEUGFydHNQYXJhbVxyXG4gICAgICAgICAgICAgICAgcGFydHMubGluay5wdXNoKGxpbmtQYXJ0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0LnBhcnRzR3JvdXBzLnB1c2gocGFydHNHcm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEUG9zZSAjIHVwZGF0ZVBhcmFtKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEUG9zZS5wcm90b3R5cGUudXBkYXRlUGFyYW0gPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovKSB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkgcmV0dXJuO1xyXG5cclxuICAgIGlmICghKG1vZGVsID09IHRoaXMubGFzdE1vZGVsKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdFBhcmFtKG1vZGVsKTtcclxuICAgIH1cclxuICAgIHRoaXMubGFzdE1vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgdmFyIGN1clRpbWUgPSBVdFN5c3RlbS5nZXRVc2VyVGltZU1TZWMoKTtcclxuICAgIHZhciBkZWx0YVRpbWVTZWMgPSAoKHRoaXMubGFzdFRpbWUgPT0gMCkgPyAwIDogKGN1clRpbWUgLSB0aGlzLmxhc3RUaW1lKSAvIDEwMDAuMCk7XHJcbiAgICB0aGlzLmxhc3RUaW1lID0gY3VyVGltZTtcclxuICAgIGlmIChkZWx0YVRpbWVTZWMgPCAwKSBkZWx0YVRpbWVTZWMgPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhcnRzR3JvdXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5ub3JtYWxpemVQYXJ0c09wYWNpdHlHcm91cChtb2RlbCwgdGhpcy5wYXJ0c0dyb3Vwc1tpXSwgZGVsdGFUaW1lU2VjKTtcclxuICAgICAgICB0aGlzLmNvcHlPcGFjaXR5T3RoZXJQYXJ0cyhtb2RlbCwgdGhpcy5wYXJ0c0dyb3Vwc1tpXSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFBvc2UgIyBpbml0UGFyYW0oKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRQb3NlLnByb3RvdHlwZS5pbml0UGFyYW0gPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovKSB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhcnRzR3JvdXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIHBhcnRzR3JvdXAgPSB0aGlzLnBhcnRzR3JvdXBzW2ldOyAvL0wyRFBhcnRzUGFyYW1cclxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcnRzR3JvdXAubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgcGFydHNHcm91cFtqXS5pbml0SW5kZXgobW9kZWwpO1xyXG4gICAgICAgICAgICB2YXIgcGFydHNJbmRleCA9IHBhcnRzR3JvdXBbal0ucGFydHNJbmRleDtcclxuICAgICAgICAgICAgdmFyIHBhcmFtSW5kZXggPSBwYXJ0c0dyb3VwW2pdLnBhcmFtSW5kZXg7XHJcbiAgICAgICAgICAgIGlmIChwYXJ0c0luZGV4IDwgMCkgY29udGludWU7XHJcbiAgICAgICAgICAgIHZhciB2Lyo6Qm9vbGVhbiovID0gKG1vZGVsLmdldFBhcmFtRmxvYXQocGFyYW1JbmRleCkgIT0gMCk7XHJcbiAgICAgICAgICAgIG1vZGVsLnNldFBhcnRzT3BhY2l0eShwYXJ0c0luZGV4LCAodiA/IDEuMCA6IDAuMCkpO1xyXG4gICAgICAgICAgICBtb2RlbC5zZXRQYXJhbUZsb2F0KHBhcmFtSW5kZXgsICh2ID8gMS4wIDogMC4wKSk7XHJcbiAgICAgICAgICAgIGlmIChwYXJ0c0dyb3VwW2pdLmxpbmsgPT0gbnVsbCkgY29udGludWU7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcGFydHNHcm91cFtqXS5saW5rLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJ0c0dyb3VwW2pdLmxpbmtba10uaW5pdEluZGV4KG1vZGVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEUG9zZSAjIG5vcm1hbGl6ZVBhcnRzT3BhY2l0eUdyb3VwKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEUG9zZS5wcm90b3R5cGUubm9ybWFsaXplUGFydHNPcGFjaXR5R3JvdXAgPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovLCBwYXJ0c0dyb3VwLypMMkRQYXJ0c1BhcmFtW10qLywgZGVsdGFUaW1lU2VjLypmbG9hdCovKSB7XHJcbiAgICB2YXIgdmlzaWJsZVBhcnRzID0gLTE7XHJcbiAgICB2YXIgdmlzaWJsZU9wYWNpdHkgPSAxLjA7XHJcbiAgICB2YXIgQ0xFQVJfVElNRV9TRUMgPSAwLjU7XHJcbiAgICB2YXIgcGhpID0gMC41O1xyXG4gICAgdmFyIG1heEJhY2tPcGFjaXR5ID0gMC4xNTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHNHcm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBwYXJ0c0luZGV4ID0gcGFydHNHcm91cFtpXS5wYXJ0c0luZGV4O1xyXG4gICAgICAgIHZhciBwYXJhbUluZGV4ID0gcGFydHNHcm91cFtpXS5wYXJhbUluZGV4O1xyXG4gICAgICAgIGlmIChwYXJ0c0luZGV4IDwgMCkgY29udGludWU7IGlmIChtb2RlbC5nZXRQYXJhbUZsb2F0KHBhcmFtSW5kZXgpICE9IDApIHtcclxuICAgICAgICAgICAgaWYgKHZpc2libGVQYXJ0cyA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2aXNpYmxlUGFydHMgPSBpO1xyXG4gICAgICAgICAgICB2aXNpYmxlT3BhY2l0eSA9IG1vZGVsLmdldFBhcnRzT3BhY2l0eShwYXJ0c0luZGV4KTtcclxuICAgICAgICAgICAgdmlzaWJsZU9wYWNpdHkgKz0gZGVsdGFUaW1lU2VjIC8gQ0xFQVJfVElNRV9TRUM7XHJcbiAgICAgICAgICAgIGlmICh2aXNpYmxlT3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgICAgIHZpc2libGVPcGFjaXR5ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh2aXNpYmxlUGFydHMgPCAwKSB7XHJcbiAgICAgICAgdmlzaWJsZVBhcnRzID0gMDtcclxuICAgICAgICB2aXNpYmxlT3BhY2l0eSA9IDE7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzR3JvdXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgcGFydHNJbmRleCA9IHBhcnRzR3JvdXBbaV0ucGFydHNJbmRleDtcclxuICAgICAgICBpZiAocGFydHNJbmRleCA8IDApIGNvbnRpbnVlOyBpZiAodmlzaWJsZVBhcnRzID09IGkpIHtcclxuICAgICAgICAgICAgbW9kZWwuc2V0UGFydHNPcGFjaXR5KHBhcnRzSW5kZXgsIHZpc2libGVPcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBvcGFjaXR5ID0gbW9kZWwuZ2V0UGFydHNPcGFjaXR5KHBhcnRzSW5kZXgpO1xyXG4gICAgICAgICAgICB2YXIgYTE7XHJcbiAgICAgICAgICAgIGlmICh2aXNpYmxlT3BhY2l0eSA8IHBoaSkge1xyXG4gICAgICAgICAgICAgICAgYTEgPSB2aXNpYmxlT3BhY2l0eSAqIChwaGkgLSAxKSAvIHBoaSArIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhMSA9ICgxIC0gdmlzaWJsZU9wYWNpdHkpICogcGhpIC8gKDEgLSBwaGkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBiYWNrT3AgPSAoMSAtIGExKSAqICgxIC0gdmlzaWJsZU9wYWNpdHkpO1xyXG4gICAgICAgICAgICBpZiAoYmFja09wID4gbWF4QmFja09wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIGExID0gMSAtIG1heEJhY2tPcGFjaXR5IC8gKDEgLSB2aXNpYmxlT3BhY2l0eSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG9wYWNpdHkgPiBhMSkge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eSA9IGExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1vZGVsLnNldFBhcnRzT3BhY2l0eShwYXJ0c0luZGV4LCBvcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFBvc2UgIyBjb3B5T3BhY2l0eU90aGVyUGFydHMoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRQb3NlLnByb3RvdHlwZS5jb3B5T3BhY2l0eU90aGVyUGFydHMgPSBmdW5jdGlvbiAobW9kZWwvKkFMaXZlMkRNb2RlbCovLCBwYXJ0c0dyb3VwLypMMkRQYXJ0c1BhcmFtW10qLykge1xyXG4gICAgZm9yICh2YXIgaV9ncm91cCA9IDA7IGlfZ3JvdXAgPCBwYXJ0c0dyb3VwLmxlbmd0aDsgaV9ncm91cCsrKSB7XHJcbiAgICAgICAgdmFyIHBhcnRzUGFyYW0gPSBwYXJ0c0dyb3VwW2lfZ3JvdXBdOyAvL0wyRFBhcnRzUGFyYW1cclxuICAgICAgICBpZiAocGFydHNQYXJhbS5saW5rID09IG51bGwpIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmIChwYXJ0c1BhcmFtLnBhcnRzSW5kZXggPCAwKSBjb250aW51ZTtcclxuICAgICAgICB2YXIgb3BhY2l0eSA9IG1vZGVsLmdldFBhcnRzT3BhY2l0eShwYXJ0c1BhcmFtLnBhcnRzSW5kZXgpO1xyXG4gICAgICAgIGZvciAodmFyIGlfbGluayA9IDA7IGlfbGluayA8IHBhcnRzUGFyYW0ubGluay5sZW5ndGg7IGlfbGluaysrKSB7XHJcbiAgICAgICAgICAgIHZhciBsaW5rUGFydHMgPSBwYXJ0c1BhcmFtLmxpbmtbaV9saW5rXTsgLy9MMkRQYXJ0c1BhcmFtXHJcbiAgICAgICAgICAgIGlmIChsaW5rUGFydHMucGFydHNJbmRleCA8IDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBtb2RlbC5zZXRQYXJ0c09wYWNpdHkobGlua1BhcnRzLnBhcnRzSW5kZXgsIG9wYWNpdHkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIEwyRFBhcnRzUGFyYW0gICAgICAgIFxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5mdW5jdGlvbiBMMkRQYXJ0c1BhcmFtKGlkLypTdHJpbmcqLykge1xyXG4gICAgdGhpcy5wYXJhbUluZGV4ID0gLTE7XHJcbiAgICB0aGlzLnBhcnRzSW5kZXggPSAtMTtcclxuICAgIHRoaXMubGluayA9IG51bGw7IC8vIEFycmF5TGlzdDxMMkRQYXJ0c1BhcmFtPlxyXG4gICAgdGhpcy5pZCA9IGlkO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRQYXJ0c1BhcmFtICMgaW5pdEluZGV4KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEUGFydHNQYXJhbS5wcm90b3R5cGUuaW5pdEluZGV4ID0gZnVuY3Rpb24gKG1vZGVsLypBTGl2ZTJETW9kZWwqLykge1xyXG4gICAgdGhpcy5wYXJhbUluZGV4ID0gbW9kZWwuZ2V0UGFyYW1JbmRleChcIlZJU0lCTEU6XCIgKyB0aGlzLmlkKTtcclxuICAgIHRoaXMucGFydHNJbmRleCA9IG1vZGVsLmdldFBhcnRzRGF0YUluZGV4KFBhcnRzRGF0YUlELmdldElEKHRoaXMuaWQpKTtcclxuICAgIG1vZGVsLnNldFBhcmFtRmxvYXQodGhpcy5wYXJhbUluZGV4LCAxKTtcclxufVxyXG4vKipcclxuICpcclxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XHJcbiAqICBvbmx5IGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgYXBwbGljYXRpb24gcmVsYXRlZCBMaXZlMkQuXHJcbiAqXHJcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgY2xhc3MgTDJEVGFyZ2V0UG9pbnQgICAgICAgXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRFRhcmdldFBvaW50KCkge1xyXG4gICAgdGhpcy5FUFNJTE9OID0gMC4wMTsgLy8g5aSJ5YyW44Gu5pyA5bCP5YCk77yI44GT44Gu5YCk5Lul5LiL44Gv54Sh6KaW44GV44KM44KL77yJXHJcbiAgICB0aGlzLmZhY2VUYXJnZXRYID0gMDtcclxuICAgIHRoaXMuZmFjZVRhcmdldFkgPSAwO1xyXG4gICAgdGhpcy5mYWNlWCA9IDA7XHJcbiAgICB0aGlzLmZhY2VZID0gMDtcclxuICAgIHRoaXMuZmFjZVZYID0gMDtcclxuICAgIHRoaXMuZmFjZVZZID0gMDtcclxuICAgIHRoaXMubGFzdFRpbWVTZWMgPSAwO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRUYXJnZXRQb2ludC5GUkFNRV9SQVRFID0gMzA7XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRUYXJnZXRQb2ludCAjIHNldCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFRhcmdldFBvaW50LnByb3RvdHlwZS5zZXRQb2ludCA9IGZ1bmN0aW9uICh4LypmbG9hdCovLCB5LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLmZhY2VUYXJnZXRYID0geDtcclxuICAgIHRoaXMuZmFjZVRhcmdldFkgPSB5O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRUYXJnZXRQb2ludCAjIGdldFgoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRUYXJnZXRQb2ludC5wcm90b3R5cGUuZ2V0WCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLmZhY2VYO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRUYXJnZXRQb2ludCAjIGdldFkoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRUYXJnZXRQb2ludC5wcm90b3R5cGUuZ2V0WSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLmZhY2VZO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRUYXJnZXRQb2ludCAjIHVwZGF0ZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFRhcmdldFBvaW50LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgVElNRV9UT19NQVhfU1BFRUQgPSAwLjE1O1xyXG4gICAgdmFyIEZBQ0VfUEFSQU1fTUFYX1YgPSA0MC4wIC8gNy41O1xyXG4gICAgdmFyIE1BWF9WID0gRkFDRV9QQVJBTV9NQVhfViAvIEwyRFRhcmdldFBvaW50LkZSQU1FX1JBVEU7XHJcbiAgICBpZiAodGhpcy5sYXN0VGltZVNlYyA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5sYXN0VGltZVNlYyA9IFV0U3lzdGVtLmdldFVzZXJUaW1lTVNlYygpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHZhciBjdXJUaW1lU2VjID0gVXRTeXN0ZW0uZ2V0VXNlclRpbWVNU2VjKCk7XHJcbiAgICB2YXIgZGVsdGFUaW1lV2VpZ2h0ID0gKGN1clRpbWVTZWMgLSB0aGlzLmxhc3RUaW1lU2VjKSAqIEwyRFRhcmdldFBvaW50LkZSQU1FX1JBVEUgLyAxMDAwLjA7XHJcbiAgICB0aGlzLmxhc3RUaW1lU2VjID0gY3VyVGltZVNlYztcclxuICAgIHZhciBGUkFNRV9UT19NQVhfU1BFRUQgPSBUSU1FX1RPX01BWF9TUEVFRCAqIEwyRFRhcmdldFBvaW50LkZSQU1FX1JBVEU7XHJcbiAgICB2YXIgTUFYX0EgPSBkZWx0YVRpbWVXZWlnaHQgKiBNQVhfViAvIEZSQU1FX1RPX01BWF9TUEVFRDtcclxuICAgIHZhciBkeCA9ICh0aGlzLmZhY2VUYXJnZXRYIC0gdGhpcy5mYWNlWCk7XHJcbiAgICB2YXIgZHkgPSAodGhpcy5mYWNlVGFyZ2V0WSAtIHRoaXMuZmFjZVkpO1xyXG4gICAgLy8gaWYoZHggPT0gMCAmJiBkeSA9PSAwKSByZXR1cm47XHJcbiAgICBpZiAoTWF0aC5hYnMoZHgpIDw9IHRoaXMuRVBTSUxPTiAmJiBNYXRoLmFicyhkeSkgPD0gdGhpcy5FUFNJTE9OKSByZXR1cm47XHJcbiAgICB2YXIgZCA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XHJcbiAgICB2YXIgdnggPSBNQVhfViAqIGR4IC8gZDtcclxuICAgIHZhciB2eSA9IE1BWF9WICogZHkgLyBkO1xyXG4gICAgdmFyIGF4ID0gdnggLSB0aGlzLmZhY2VWWDtcclxuICAgIHZhciBheSA9IHZ5IC0gdGhpcy5mYWNlVlk7XHJcbiAgICB2YXIgYSA9IE1hdGguc3FydChheCAqIGF4ICsgYXkgKiBheSk7XHJcbiAgICBpZiAoYSA8IC1NQVhfQSB8fCBhID4gTUFYX0EpIHtcclxuICAgICAgICBheCAqPSBNQVhfQSAvIGE7XHJcbiAgICAgICAgYXkgKj0gTUFYX0EgLyBhO1xyXG4gICAgICAgIGEgPSBNQVhfQTtcclxuICAgIH1cclxuICAgIHRoaXMuZmFjZVZYICs9IGF4O1xyXG4gICAgdGhpcy5mYWNlVlkgKz0gYXk7XHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1heF92ID0gMC41ICogKE1hdGguc3FydChNQVhfQSAqIE1BWF9BICsgMTYgKiBNQVhfQSAqIGQgLSA4ICogTUFYX0EgKiBkKSAtIE1BWF9BKTtcclxuICAgICAgICB2YXIgY3VyX3YgPSBNYXRoLnNxcnQodGhpcy5mYWNlVlggKiB0aGlzLmZhY2VWWCArIHRoaXMuZmFjZVZZICogdGhpcy5mYWNlVlkpO1xyXG4gICAgICAgIGlmIChjdXJfdiA+IG1heF92KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFjZVZYICo9IG1heF92IC8gY3VyX3Y7XHJcbiAgICAgICAgICAgIHRoaXMuZmFjZVZZICo9IG1heF92IC8gY3VyX3Y7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5mYWNlWCArPSB0aGlzLmZhY2VWWDtcclxuICAgIHRoaXMuZmFjZVkgKz0gdGhpcy5mYWNlVlk7XHJcbn1cclxuLyoqXHJcbiAqXHJcbiAqICBZb3UgY2FuIG1vZGlmeSBhbmQgdXNlIHRoaXMgc291cmNlIGZyZWVseVxyXG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxyXG4gKlxyXG4gKiAgKGMpIExpdmUyRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIEwyRFZpZXdNYXRyaXggICAgICAgIGV4dGVuZHMgICAgIEwyRE1hdHJpeDQ0XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmZ1bmN0aW9uIEwyRFZpZXdNYXRyaXgoKSB7XHJcbiAgICBMMkRNYXRyaXg0NC5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzKTtcclxuICAgIHRoaXMuc2NyZWVuTGVmdCA9IG51bGw7XHJcbiAgICB0aGlzLnNjcmVlblJpZ2h0ID0gbnVsbDtcclxuICAgIHRoaXMuc2NyZWVuVG9wID0gbnVsbDtcclxuICAgIHRoaXMuc2NyZWVuQm90dG9tID0gbnVsbDtcclxuICAgIHRoaXMubWF4TGVmdCA9IG51bGw7XHJcbiAgICB0aGlzLm1heFJpZ2h0ID0gbnVsbDtcclxuICAgIHRoaXMubWF4VG9wID0gbnVsbDtcclxuICAgIHRoaXMubWF4Qm90dG9tID0gbnVsbDtcclxuICAgIHRoaXMubWF4ID0gTnVtYmVyLk1BWF9WQUxVRTtcclxuICAgIHRoaXMubWluID0gMDtcclxufVxyXG5cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUgPSBuZXcgTDJETWF0cml4NDQoKTsgLy9MMkRWaWV3TWF0cml4IGV4dGVuZHMgTDJETWF0cml4NDRcclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFZpZXdNYXRyaXggIyBnZXRNYXhTY2FsZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmdldE1heFNjYWxlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRWaWV3TWF0cml4ICMgZ2V0TWluU2NhbGUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRWaWV3TWF0cml4LnByb3RvdHlwZS5nZXRNaW5TY2FsZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLm1pbjtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIHNldE1heFNjYWxlKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUuc2V0TWF4U2NhbGUgPSBmdW5jdGlvbiAodi8qZmxvYXQqLykge1xyXG4gICAgdGhpcy5tYXggPSB2O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRWaWV3TWF0cml4ICMgc2V0TWluU2NhbGUoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRWaWV3TWF0cml4LnByb3RvdHlwZS5zZXRNaW5TY2FsZSA9IGZ1bmN0aW9uICh2LypmbG9hdCovKSB7XHJcbiAgICB0aGlzLm1pbiA9IHY7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFZpZXdNYXRyaXggIyBpc01heFNjYWxlKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUuaXNNYXhTY2FsZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFNjYWxlWCgpID09IHRoaXMubWF4O1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRWaWV3TWF0cml4ICMgaXNNaW5TY2FsZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmlzTWluU2NhbGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTY2FsZVgoKSA9PSB0aGlzLm1pbjtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGFkanVzdFRyYW5zbGF0ZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmFkanVzdFRyYW5zbGF0ZSA9IGZ1bmN0aW9uIChzaGlmdFgvKmZsb2F0Ki8sIHNoaWZ0WS8qZmxvYXQqLykge1xyXG4gICAgaWYgKHRoaXMudHJbMF0gKiB0aGlzLm1heExlZnQgKyAodGhpcy50clsxMl0gKyBzaGlmdFgpID4gdGhpcy5zY3JlZW5MZWZ0KVxyXG4gICAgICAgIHNoaWZ0WCA9IHRoaXMuc2NyZWVuTGVmdCAtIHRoaXMudHJbMF0gKiB0aGlzLm1heExlZnQgLSB0aGlzLnRyWzEyXTtcclxuICAgIGlmICh0aGlzLnRyWzBdICogdGhpcy5tYXhSaWdodCArICh0aGlzLnRyWzEyXSArIHNoaWZ0WCkgPCB0aGlzLnNjcmVlblJpZ2h0KVxyXG4gICAgICAgIHNoaWZ0WCA9IHRoaXMuc2NyZWVuUmlnaHQgLSB0aGlzLnRyWzBdICogdGhpcy5tYXhSaWdodCAtIHRoaXMudHJbMTJdO1xyXG4gICAgaWYgKHRoaXMudHJbNV0gKiB0aGlzLm1heFRvcCArICh0aGlzLnRyWzEzXSArIHNoaWZ0WSkgPCB0aGlzLnNjcmVlblRvcClcclxuICAgICAgICBzaGlmdFkgPSB0aGlzLnNjcmVlblRvcCAtIHRoaXMudHJbNV0gKiB0aGlzLm1heFRvcCAtIHRoaXMudHJbMTNdO1xyXG4gICAgaWYgKHRoaXMudHJbNV0gKiB0aGlzLm1heEJvdHRvbSArICh0aGlzLnRyWzEzXSArIHNoaWZ0WSkgPiB0aGlzLnNjcmVlbkJvdHRvbSlcclxuICAgICAgICBzaGlmdFkgPSB0aGlzLnNjcmVlbkJvdHRvbSAtIHRoaXMudHJbNV0gKiB0aGlzLm1heEJvdHRvbSAtIHRoaXMudHJbMTNdO1xyXG5cclxuICAgIHZhciB0cjEgPSBbMSwgMCwgMCwgMCxcclxuICAgICAgICAwLCAxLCAwLCAwLFxyXG4gICAgICAgIDAsIDAsIDEsIDAsXHJcbiAgICAgICAgc2hpZnRYLCBzaGlmdFksIDAsIDFdO1xyXG4gICAgTDJETWF0cml4NDQubXVsKHRyMSwgdGhpcy50ciwgdGhpcy50cik7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFZpZXdNYXRyaXggIyBhZGp1c3RTY2FsZSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmFkanVzdFNjYWxlID0gZnVuY3Rpb24gKGN4LypmbG9hdCovLCBjeS8qZmxvYXQqLywgc2NhbGUvKmZsb2F0Ki8pIHtcclxuICAgIHZhciB0YXJnZXRTY2FsZSA9IHNjYWxlICogdGhpcy50clswXTtcclxuICAgIGlmICh0YXJnZXRTY2FsZSA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJbMF0gPiAwKSBzY2FsZSA9IHRoaXMubWluIC8gdGhpcy50clswXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRhcmdldFNjYWxlID4gdGhpcy5tYXgpIHtcclxuICAgICAgICBpZiAodGhpcy50clswXSA+IDApIHNjYWxlID0gdGhpcy5tYXggLyB0aGlzLnRyWzBdO1xyXG4gICAgfVxyXG4gICAgdmFyIHRyMSA9IFsxLCAwLCAwLCAwLFxyXG4gICAgICAgIDAsIDEsIDAsIDAsXHJcbiAgICAgICAgMCwgMCwgMSwgMCxcclxuICAgICAgICBjeCwgY3ksIDAsIDFdO1xyXG4gICAgdmFyIHRyMiA9IFtzY2FsZSwgMCwgMCwgMCxcclxuICAgICAgICAwLCBzY2FsZSwgMCwgMCxcclxuICAgICAgICAwLCAwLCAxLCAwLFxyXG4gICAgICAgIDAsIDAsIDAsIDFdO1xyXG4gICAgdmFyIHRyMyA9IFsxLCAwLCAwLCAwLFxyXG4gICAgICAgIDAsIDEsIDAsIDAsXHJcbiAgICAgICAgMCwgMCwgMSwgMCxcclxuICAgICAgICAtY3gsIC1jeSwgMCwgMV07XHJcbiAgICBMMkRNYXRyaXg0NC5tdWwodHIzLCB0aGlzLnRyLCB0aGlzLnRyKTtcclxuICAgIEwyRE1hdHJpeDQ0Lm11bCh0cjIsIHRoaXMudHIsIHRoaXMudHIpO1xyXG4gICAgTDJETWF0cml4NDQubXVsKHRyMSwgdGhpcy50ciwgdGhpcy50cik7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIEwyRFZpZXdNYXRyaXggIyBzZXRTY3JlZW5SZWN0KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUuc2V0U2NyZWVuUmVjdCA9IGZ1bmN0aW9uIChsZWZ0LypmbG9hdCovLCByaWdodC8qZmxvYXQqLywgYm90dG9tLypmbG9hdCovLCB0b3AvKmZsb2F0Ki8pIHtcclxuICAgIHRoaXMuc2NyZWVuTGVmdCA9IGxlZnQ7XHJcbiAgICB0aGlzLnNjcmVlblJpZ2h0ID0gcmlnaHQ7XHJcbiAgICB0aGlzLnNjcmVlblRvcCA9IHRvcDtcclxuICAgIHRoaXMuc2NyZWVuQm90dG9tID0gYm90dG9tO1xyXG59XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICBMMkRWaWV3TWF0cml4ICMgc2V0TWF4U2NyZWVuUmVjdCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLnNldE1heFNjcmVlblJlY3QgPSBmdW5jdGlvbiAobGVmdC8qZmxvYXQqLywgcmlnaHQvKmZsb2F0Ki8sIGJvdHRvbS8qZmxvYXQqLywgdG9wLypmbG9hdCovKSB7XHJcbiAgICB0aGlzLm1heExlZnQgPSBsZWZ0O1xyXG4gICAgdGhpcy5tYXhSaWdodCA9IHJpZ2h0O1xyXG4gICAgdGhpcy5tYXhUb3AgPSB0b3A7XHJcbiAgICB0aGlzLm1heEJvdHRvbSA9IGJvdHRvbTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldFNjcmVlbkxlZnQoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRWaWV3TWF0cml4LnByb3RvdHlwZS5nZXRTY3JlZW5MZWZ0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NyZWVuTGVmdDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldFNjcmVlblJpZ2h0KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUuZ2V0U2NyZWVuUmlnaHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JlZW5SaWdodDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldFNjcmVlbkJvdHRvbSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmdldFNjcmVlbkJvdHRvbSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcmVlbkJvdHRvbTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldFNjcmVlblRvcCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmdldFNjcmVlblRvcCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcmVlblRvcDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldE1heExlZnQoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MMkRWaWV3TWF0cml4LnByb3RvdHlwZS5nZXRNYXhMZWZ0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4TGVmdDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldE1heFJpZ2h0KClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTDJEVmlld01hdHJpeC5wcm90b3R5cGUuZ2V0TWF4UmlnaHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXhSaWdodDtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldE1heEJvdHRvbSgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmdldE1heEJvdHRvbSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLm1heEJvdHRvbTtcclxufVxyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgTDJEVmlld01hdHJpeCAjIGdldE1heFRvcCgpXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkwyRFZpZXdNYXRyaXgucHJvdG90eXBlLmdldE1heFRvcCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLm1heFRvcDtcclxufVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqICBZb3UgY2FuIG1vZGlmeSBhbmQgdXNlIHRoaXMgc291cmNlIGZyZWVseVxyXG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxyXG4gKlxyXG4gKiAgKGMpIExpdmUyRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gIGNsYXNzIExpdmUyREZyYW1ld29yayAgICAgIFxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5mdW5jdGlvbiBMaXZlMkRGcmFtZXdvcmsoKSB7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkxpdmUyREZyYW1ld29yay5wbGF0Zm9ybU1hbmFnZXIgPSBudWxsO1xyXG5cclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgc3RhdGljIExpdmUyREZyYW1ld29yay5nZXRQbGF0Zm9ybU1hbmFnZXIoKVxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5MaXZlMkRGcmFtZXdvcmsuZ2V0UGxhdGZvcm1NYW5hZ2VyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIExpdmUyREZyYW1ld29yay5wbGF0Zm9ybU1hbmFnZXI7XHJcbn1cclxuXHJcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgIHN0YXRpYyBMaXZlMkRGcmFtZXdvcmsuc2V0UGxhdGZvcm1NYW5hZ2VyKClcclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuTGl2ZTJERnJhbWV3b3JrLnNldFBsYXRmb3JtTWFuYWdlciA9IGZ1bmN0aW9uIChwbGF0Zm9ybU1hbmFnZXIgLypJUGxhdGZvcm1NYW5hZ2VyKi8pIHtcclxuICAgIExpdmUyREZyYW1ld29yay5wbGF0Zm9ybU1hbmFnZXIgPSBwbGF0Zm9ybU1hbmFnZXI7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgTDJEVGFyZ2V0UG9pbnQ6IEwyRFRhcmdldFBvaW50LFxyXG4gICAgTGl2ZTJERnJhbWV3b3JrOiBMaXZlMkRGcmFtZXdvcmssXHJcbiAgICBMMkRWaWV3TWF0cml4OiBMMkRWaWV3TWF0cml4LFxyXG4gICAgTDJEUG9zZTogTDJEUG9zZSxcclxuICAgIEwyRFBhcnRzUGFyYW06IEwyRFBhcnRzUGFyYW0sXHJcbiAgICBMMkRQaHlzaWNzOiBMMkRQaHlzaWNzLFxyXG4gICAgTDJETW90aW9uTWFuYWdlcjogTDJETW90aW9uTWFuYWdlcixcclxuICAgIEwyRE1vZGVsTWF0cml4OiBMMkRNb2RlbE1hdHJpeCxcclxuICAgIEwyRE1hdHJpeDQ0OiBMMkRNYXRyaXg0NCxcclxuICAgIEVZRV9TVEFURTogRVlFX1NUQVRFLFxyXG4gICAgTDJERXllQmxpbms6IEwyREV5ZUJsaW5rLFxyXG4gICAgTDJERXhwcmVzc2lvblBhcmFtOiBMMkRFeHByZXNzaW9uUGFyYW0sXHJcbiAgICBMMkRFeHByZXNzaW9uTW90aW9uOiBMMkRFeHByZXNzaW9uTW90aW9uLFxyXG4gICAgTDJEQmFzZU1vZGVsOiBMMkRCYXNlTW9kZWxcclxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvbGliL0xpdmUyREZyYW1ld29yay5qcyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdkNBO0FBeUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n')},/*!***************************!*\ - !*** ./src/LAppDefine.js ***! - \***************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nvar LAppDefine = {\n\n DEBUG_LOG: false,\n DEBUG_MOUSE_LOG: false,\n // DEBUG_DRAW_HIT_AREA : false, \n // DEBUG_DRAW_ALPHA_MODEL : false, \n\n\n VIEW_MAX_SCALE: 2,\n VIEW_MIN_SCALE: 0.8,\n\n VIEW_LOGICAL_LEFT: -1,\n VIEW_LOGICAL_RIGHT: 1,\n\n VIEW_LOGICAL_MAX_LEFT: -2,\n VIEW_LOGICAL_MAX_RIGHT: 2,\n VIEW_LOGICAL_MAX_BOTTOM: -2,\n VIEW_LOGICAL_MAX_TOP: 2,\n\n PRIORITY_NONE: 0,\n PRIORITY_IDLE: 1,\n PRIORITY_NORMAL: 2,\n PRIORITY_FORCE: 3,\n\n MOTION_GROUP_IDLE: "idle",\n MOTION_GROUP_TAP_BODY: "tap_body",\n MOTION_GROUP_FLICK_HEAD: "flick_head",\n MOTION_GROUP_PINCH_IN: "pinch_in",\n MOTION_GROUP_PINCH_OUT: "pinch_out",\n MOTION_GROUP_SHAKE: "shake",\n\n HIT_AREA_HEAD: "head",\n HIT_AREA_BODY: "body"\n\n};\n\nmodule.exports = LAppDefine;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvTEFwcERlZmluZS5qcz85MWEyIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBMQXBwRGVmaW5lID0ge1xuICAgIFxuICAgIFxuICAgIERFQlVHX0xPRyA6IGZhbHNlLFxuICAgIERFQlVHX01PVVNFX0xPRyA6IGZhbHNlLCBcbiAgICAvLyBERUJVR19EUkFXX0hJVF9BUkVBIDogZmFsc2UsIFxuICAgIC8vIERFQlVHX0RSQVdfQUxQSEFfTU9ERUwgOiBmYWxzZSwgXG4gICAgXG4gICAgXG4gICAgXG4gICAgXG4gICAgVklFV19NQVhfU0NBTEUgOiAyLFxuICAgIFZJRVdfTUlOX1NDQUxFIDogMC44LFxuXG4gICAgVklFV19MT0dJQ0FMX0xFRlQgOiAtMSxcbiAgICBWSUVXX0xPR0lDQUxfUklHSFQgOiAxLFxuXG4gICAgVklFV19MT0dJQ0FMX01BWF9MRUZUIDogLTIsXG4gICAgVklFV19MT0dJQ0FMX01BWF9SSUdIVCA6IDIsXG4gICAgVklFV19MT0dJQ0FMX01BWF9CT1RUT00gOiAtMixcbiAgICBWSUVXX0xPR0lDQUxfTUFYX1RPUCA6IDIsXG4gICAgXG4gICAgXG4gICAgUFJJT1JJVFlfTk9ORSA6IDAsXG4gICAgUFJJT1JJVFlfSURMRSA6IDEsXG4gICAgUFJJT1JJVFlfTk9STUFMIDogMixcbiAgICBQUklPUklUWV9GT1JDRSA6IDMsXG5cbiAgICBNT1RJT05fR1JPVVBfSURMRSA6IFwiaWRsZVwiLCBcbiAgICBNT1RJT05fR1JPVVBfVEFQX0JPRFkgOiBcInRhcF9ib2R5XCIsIFxuICAgIE1PVElPTl9HUk9VUF9GTElDS19IRUFEIDogXCJmbGlja19oZWFkXCIsIFxuICAgIE1PVElPTl9HUk9VUF9QSU5DSF9JTiA6IFwicGluY2hfaW5cIiwgXG4gICAgTU9USU9OX0dST1VQX1BJTkNIX09VVCA6IFwicGluY2hfb3V0XCIsIFxuICAgIE1PVElPTl9HUk9VUF9TSEFLRSA6IFwic2hha2VcIiwgXG5cbiAgICBcbiAgICBISVRfQVJFQV9IRUFEIDogXCJoZWFkXCIsXG4gICAgSElUX0FSRUFfQk9EWSA6IFwiYm9keVwiXG4gICAgXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IExBcHBEZWZpbmU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9MQXBwRGVmaW5lLmpzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBdENBO0FBQ0E7QUF3Q0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n')},/*!********************************!*\ - !*** ./src/lib/MatrixStack.js ***! - \********************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\n/**\n * EYHN 修改\n * \n * Copyright © 2016 - 2017 EYHN\n */\n\nfunction MatrixStack() {}\n\nMatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.depth = 0;\n\nMatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.tmp = new Array(16);\n\nMatrixStack.reset = function () {\n this.depth = 0;\n};\n\nMatrixStack.loadIdentity = function () {\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\nMatrixStack.push = function () {\n var offset = this.depth * 16;\n var nextOffset = (this.depth + 1) * 16;\n\n if (this.matrixStack.length < nextOffset + 16) {\n this.matrixStack.length = nextOffset + 16;\n }\n\n for (var i = 0; i < 16; i++) {\n this.matrixStack[nextOffset + i] = this.currentMatrix[i];\n }\n\n this.depth++;\n};\n\nMatrixStack.pop = function () {\n this.depth--;\n if (this.depth < 0) {\n myError("Invalid matrix stack.");\n this.depth = 0;\n }\n\n var offset = this.depth * 16;\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.matrixStack[offset + i];\n }\n};\n\nMatrixStack.getMatrix = function () {\n return this.currentMatrix;\n};\n\nMatrixStack.multMatrix = function (matNew) {\n var i, j, k;\n\n for (i = 0; i < 16; i++) {\n this.tmp[i] = 0;\n }\n\n for (i = 0; i < 4; i++) {\n for (j = 0; j < 4; j++) {\n for (k = 0; k < 4; k++) {\n this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.tmp[i];\n }\n};\n\nmodule.exports = MatrixStack;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvbGliL01hdHJpeFN0YWNrLmpzPzRmY2YiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxuICpcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuLyoqXG4gKiBFWUhOIOS/ruaUuVxuICogXG4gKiBDb3B5cmlnaHQgwqkgMjAxNiAtIDIwMTcgRVlITlxuICovXG5cbmZ1bmN0aW9uIE1hdHJpeFN0YWNrKCkge31cblxuXG5NYXRyaXhTdGFjay5tYXRyaXhTdGFjayA9IFsxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxXTtcblxuXG5NYXRyaXhTdGFjay5kZXB0aCA9IDA7XG5cblxuTWF0cml4U3RhY2suY3VycmVudE1hdHJpeCA9IFsxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxXTtcblxuXG5NYXRyaXhTdGFjay50bXAgPSBuZXcgQXJyYXkoMTYpO1xuXG5cblxuTWF0cml4U3RhY2sucmVzZXQgPSBmdW5jdGlvbigpXG57XG4gICAgdGhpcy5kZXB0aCA9IDA7XG59XG5cblxuXG5NYXRyaXhTdGFjay5sb2FkSWRlbnRpdHkgPSBmdW5jdGlvbigpXG57XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKVxuICAgIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF0cml4W2ldID0gKGkgJSA1ID09IDApID8gMSA6IDA7XG4gICAgfVxufVxuXG5cblxuTWF0cml4U3RhY2sucHVzaCA9IGZ1bmN0aW9uKClcbnsgICAgXG4gICAgdmFyIG9mZnNldCA9IHRoaXMuZGVwdGggKiAxNjtcbiAgICB2YXIgbmV4dE9mZnNldCA9ICh0aGlzLmRlcHRoICsgMSkgKiAxNjtcbiAgICBcbiAgICBpZiAodGhpcy5tYXRyaXhTdGFjay5sZW5ndGggPCBuZXh0T2Zmc2V0ICsgMTYpXG4gICAge1xuICAgICAgICB0aGlzLm1hdHJpeFN0YWNrLmxlbmd0aCA9IG5leHRPZmZzZXQgKyAxNjtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE2OyBpKyspXG4gICAge1xuICAgICAgICB0aGlzLm1hdHJpeFN0YWNrW25leHRPZmZzZXQgKyBpXSA9IHRoaXMuY3VycmVudE1hdHJpeFtpXTtcbiAgICB9XG5cbiAgICB0aGlzLmRlcHRoKys7XG59XG5cblxuXG5NYXRyaXhTdGFjay5wb3AgPSBmdW5jdGlvbigpXG57XG4gICAgdGhpcy5kZXB0aC0tO1xuICAgIGlmICh0aGlzLmRlcHRoIDwgMClcbiAgICB7XG4gICAgICAgIG15RXJyb3IoXCJJbnZhbGlkIG1hdHJpeCBzdGFjay5cIik7XG4gICAgICAgIHRoaXMuZGVwdGggPSAwO1xuICAgIH1cblxuICAgIHZhciBvZmZzZXQgPSB0aGlzLmRlcHRoICogMTY7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKVxuICAgIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF0cml4W2ldID0gdGhpcy5tYXRyaXhTdGFja1tvZmZzZXQgKyBpXTtcbiAgICB9XG59XG5cblxuXG5NYXRyaXhTdGFjay5nZXRNYXRyaXggPSBmdW5jdGlvbigpXG57XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudE1hdHJpeDtcbn1cblxuXG5cbk1hdHJpeFN0YWNrLm11bHRNYXRyaXggPSBmdW5jdGlvbihtYXROZXcpXG57XG4gICAgdmFyIGksIGosIGs7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKylcbiAgICB7XG4gICAgICAgIHRoaXMudG1wW2ldID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKVxuICAgIHtcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IDQ7IGorKylcbiAgICAgICAge1xuICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IDQ7IGsrKylcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRtcFtpICsgaiAqIDRdICs9IHRoaXMuY3VycmVudE1hdHJpeFtpICsgayAqIDRdICogbWF0TmV3W2sgKyBqICogNF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspXG4gICAge1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXRyaXhbaV0gPSB0aGlzLnRtcFtpXTtcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gTWF0cml4U3RhY2s7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9saWIvTWF0cml4U3RhY2suanMiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7QUFPQTs7Ozs7O0FBTUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2\n')},/*!*****************************!*\ - !*** ./src/webglcontext.js ***! - \*****************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.setContext = setContext;\nexports.getContext = getContext;\n\nvar context = undefined;\n\nfunction setContext(webglContext) {\n context = webglContext;\n}\n\nfunction getContext() {\n return context;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvd2ViZ2xjb250ZXh0LmpzP2M0NzMiXSwic291cmNlc0NvbnRlbnQiOlsiXHJcbnZhciBjb250ZXh0ID0gdW5kZWZpbmVkO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldENvbnRleHQod2ViZ2xDb250ZXh0KSB7XHJcbiAgY29udGV4dCA9IHdlYmdsQ29udGV4dDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRleHQoKSB7XHJcbiAgcmV0dXJuIGNvbnRleHQ7XHJcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL3dlYmdsY29udGV4dC5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQTtBQUlBO0FBQ0E7QUFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n')},/*!*********************!*\ - !*** ./src/main.js ***! - \*********************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\n__webpack_require__(/*! ./lib/live2d.min */ 9);\n\nvar _Live2DFramework = __webpack_require__(/*! ./lib/Live2DFramework */ 0);\n\nvar _LAppLive2DManager = __webpack_require__(/*! ./LAppLive2DManager */ 5);\n\nvar _LAppLive2DManager2 = _interopRequireDefault(_LAppLive2DManager);\n\nvar _LAppDefine = __webpack_require__(/*! ./LAppDefine */ 1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(/*! ./lib/MatrixStack */ 2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nvar _webglcontext = __webpack_require__(/*! ./webglcontext */ 3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// window.onerror = function (msg, url, line, col, error) {\n// let errmsg = "file:" + url + "
line:" + line + " " + msg;\n// console.error(errmsg);\n// }\n\nvar platform = window.navigator.platform.toLowerCase();\n\nvar live2DMgr = new _LAppLive2DManager2.default();\n\nvar isDrawStart = false;\n\nvar gl = null;\n\nvar canvas = null;\n\nvar dragMgr = null;\n\nvar viewMatrix = null;\n\nvar projMatrix = null;\n\nvar deviceToScreen = null;\n\nvar drag = false;\n\nvar oldLen = 0;\n\nvar lastMouseX = 0;\n\nvar lastMouseY = 0;\n\nvar isModelShown = 0;\n\nvar modelurl = "";\n\nvar head_pos = 0.5;\n\nfunction initL2dCanvas(canvasId) {\n canvas = document.getElementById(canvasId);\n if (canvas.addEventListener) {\n //canvas.addEventListener("mousewheel", mouseEvent);\n window.addEventListener("click", mouseEvent);\n window.addEventListener("mousedown", mouseEvent);\n window.addEventListener("mousemove", mouseEvent);\n window.addEventListener("mouseup", mouseEvent);\n document.addEventListener("mouseleave", mouseEvent);\n //canvas.addEventListener("contextmenu", mouseEvent);\n window.addEventListener("touchstart", touchEvent);\n window.addEventListener("touchend", touchEvent);\n window.addEventListener("touchmove", touchEvent);\n }\n}\n\nfunction init(modelurl) {\n var width = canvas.width;\n var height = canvas.height;\n\n dragMgr = new _Live2DFramework.L2DTargetPoint();\n\n var ratio = height / width;\n var left = _LAppDefine2.default.VIEW_LOGICAL_LEFT;\n var right = _LAppDefine2.default.VIEW_LOGICAL_RIGHT;\n var bottom = -ratio;\n var top = ratio;\n\n viewMatrix = new _Live2DFramework.L2DViewMatrix();\n\n viewMatrix.setScreenRect(left, right, bottom, top);\n\n viewMatrix.setMaxScreenRect(_LAppDefine2.default.VIEW_LOGICAL_MAX_LEFT, _LAppDefine2.default.VIEW_LOGICAL_MAX_RIGHT, _LAppDefine2.default.VIEW_LOGICAL_MAX_BOTTOM, _LAppDefine2.default.VIEW_LOGICAL_MAX_TOP);\n\n viewMatrix.setMaxScale(_LAppDefine2.default.VIEW_MAX_SCALE);\n viewMatrix.setMinScale(_LAppDefine2.default.VIEW_MIN_SCALE);\n\n projMatrix = new _Live2DFramework.L2DMatrix44();\n projMatrix.multScale(1, width / height);\n\n deviceToScreen = new _Live2DFramework.L2DMatrix44();\n deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);\n deviceToScreen.multScale(2 / width, -2 / width);\n\n gl = getWebGLContext();\n (0, _webglcontext.setContext)(gl);\n if (!gl) {\n console.error("Failed to create WebGL context.");\n return;\n }\n window.Live2D.setGL(gl);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n changeModel(modelurl);\n startDraw();\n}\n\nfunction startDraw() {\n if (!isDrawStart) {\n isDrawStart = true;\n (function tick() {\n draw();\n var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;\n\n requestAnimationFrame(tick, canvas);\n })();\n }\n}\n\nfunction draw() {\n _MatrixStack2.default.reset();\n _MatrixStack2.default.loadIdentity();\n dragMgr.update();\n live2DMgr.setDrag(dragMgr.getX(), dragMgr.getY());\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n _MatrixStack2.default.multMatrix(projMatrix.getArray());\n _MatrixStack2.default.multMatrix(viewMatrix.getArray());\n _MatrixStack2.default.push();\n\n for (var i = 0; i < live2DMgr.numModels(); i++) {\n var model = live2DMgr.getModel(i);\n\n if (model == null) return;\n\n if (model.initialized && !model.updating) {\n model.update();\n model.draw(gl);\n }\n }\n _MatrixStack2.default.pop();\n}\n\nfunction changeModel(modelurl) {\n live2DMgr.reloadFlg = true;\n live2DMgr.count++;\n live2DMgr.changeModel(gl, modelurl);\n}\n\nfunction modelScaling(scale) {\n var isMaxScale = viewMatrix.isMaxScale();\n var isMinScale = viewMatrix.isMinScale();\n\n viewMatrix.adjustScale(0, 0, scale);\n\n if (!isMaxScale) {\n if (viewMatrix.isMaxScale()) {\n live2DMgr.maxScaleEvent();\n }\n }\n\n if (!isMinScale) {\n if (viewMatrix.isMinScale()) {\n live2DMgr.minScaleEvent();\n }\n }\n}\n\nfunction transformRange(center, transform, range) {\n var a = {\n x: transform.x - center.x,\n y: transform.y - center.y\n };\n var r = Math.sqrt(Math.pow(a.x, 2) + Math.pow(a.y, 2));\n if (r > range) {\n a = {\n x: a.x / r * range + center.x,\n y: a.y / r * range + center.y\n };\n return a;\n } else {\n return transform;\n }\n}\n\nfunction dot(A, B) {\n return A.x * B.x + A.y * B.y;\n}\n\nfunction normalize(x, y) {\n var length = Math.sqrt(x * x + y * y);\n return {\n x: x / length,\n y: y / length\n };\n}\n\nfunction transformRect(center, transform, rect) {\n if (transform.x < rect.left + rect.width && transform.y < rect.top + rect.height && transform.x > rect.left && transform.y > rect.top) return transform;\n var Len_X = center.x - transform.x;\n var Len_Y = center.y - transform.y;\n\n function angle(Len_X, Len_Y) {\n return Math.acos(dot({\n x: 0,\n y: 1\n }, normalize(Len_X, Len_Y))) * 180 / Math.PI;\n }\n\n var angleTarget = angle(Len_X, Len_Y);\n if (transform.x < center.x) angleTarget = 360 - angleTarget;\n var angleLeftTop = 360 - angle(rect.left - center.x, (rect.top - center.y) * -1);\n var angleLeftBottom = 360 - angle(rect.left - center.x, (rect.top + rect.height - center.y) * -1);\n var angleRightTop = angle(rect.left + rect.width - center.x, (rect.top - center.y) * -1);\n var angleRightBottom = angle(rect.left + rect.width - center.x, (rect.top + rect.height - center.y) * -1);\n var scale = Len_Y / Len_X;\n var res = {};\n\n if (angleTarget < angleRightTop) {\n var y3 = rect.top - center.y;\n var x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n };\n } else if (angleTarget < angleRightBottom) {\n var _x = rect.left + rect.width - center.x;\n var _y = _x * scale;\n res = {\n y: center.y + _y,\n x: center.x + _x\n };\n } else if (angleTarget < angleLeftBottom) {\n var _y2 = rect.top + rect.height - center.y;\n var _x2 = _y2 / scale;\n res = {\n y: center.y + _y2,\n x: center.x + _x2\n };\n } else if (angleTarget < angleLeftTop) {\n var _x3 = center.x - rect.left;\n var _y3 = _x3 * scale;\n res = {\n y: center.y - _y3,\n x: center.x - _x3\n };\n } else {\n var _y4 = rect.top - center.y;\n var _x4 = _y4 / scale;\n res = {\n y: center.y + _y4,\n x: center.x + _x4\n };\n }\n\n return res;\n}\n\nfunction modelTurnHead(event) {\n drag = true;\n\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log("onMouseDown device( x:" + event.clientX + " y:" + event.clientY + " ) view( x:" + vx + " y:" + vy + ")");\n\n lastMouseX = sx;\n lastMouseY = sy;\n\n dragMgr.setPoint(vx, vy);\n\n live2DMgr.tapEvent(vx, vy);\n}\n\nfunction followPointer(event) {\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log("onMouseMove device( x:" + event.clientX + " y:" + event.clientY + " ) view( x:" + vx + " y:" + vy + ")");\n\n if (drag) {\n lastMouseX = sx;\n lastMouseY = sy;\n dragMgr.setPoint(vx, vy);\n }\n}\n\nfunction lookFront() {\n if (drag) {\n drag = false;\n }\n dragMgr.setPoint(0, 0);\n}\n\nfunction mouseEvent(e) {\n //e.preventDefault();\n if (e.type == "mousewheel") {\n // if (e.clientX < 0 || canvas.clientWidth < e.clientX || \n // e.clientY < 0 || canvas.clientHeight < e.clientY)\n // {\n // return;\n // }\n // if (e.wheelDelta > 0) modelScaling(1.1); \n // else modelScaling(0.9); \n } else if (e.type == "mousedown") {\n if ("button" in e && e.button != 0) return;\n // modelTurnHead(e);\n } else if (e.type == "mousemove") {\n modelTurnHead(e);\n } else if (e.type == "mouseup") {\n if ("button" in e && e.button != 0) return;\n // lookFront();\n } else if (e.type == "mouseleave") {\n lookFront();\n }\n}\n\nfunction touchEvent(e) {\n var touch = e.touches[0];\n if (e.type == "touchstart") {\n if (e.touches.length == 1) modelTurnHead(touch);\n // onClick(touch);\n } else if (e.type == "touchmove") {\n followPointer(touch);\n } else if (e.type == "touchend") {\n lookFront();\n }\n}\n\nfunction transformViewX(deviceX) {\n var screenX = deviceToScreen.transformX(deviceX);\n return viewMatrix.invertTransformX(screenX);\n}\n\nfunction transformViewY(deviceY) {\n var screenY = deviceToScreen.transformY(deviceY);\n return viewMatrix.invertTransformY(screenY);\n}\n\nfunction transformScreenX(deviceX) {\n return deviceToScreen.transformX(deviceX);\n}\n\nfunction transformScreenY(deviceY) {\n return deviceToScreen.transformY(deviceY);\n}\n\nfunction getWebGLContext() {\n var NAMES = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};\n\nfunction loadlive2d(id, modelurl, headPos) {\n head_pos = typeof headPos === \'undefined\' ? 0.5 : headPos;\n initL2dCanvas(id);\n init(modelurl);\n}\n\nwindow.loadlive2d = loadlive2d;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvbWFpbi5qcz8xYzkwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vbGliL2xpdmUyZC5taW5cIjtcblxuaW1wb3J0IHsgTDJEVGFyZ2V0UG9pbnQsIEwyRFZpZXdNYXRyaXgsIEwyRE1hdHJpeDQ0IH0gZnJvbSBcIi4vbGliL0xpdmUyREZyYW1ld29ya1wiO1xuXG5pbXBvcnQgTEFwcExpdmUyRE1hbmFnZXIgZnJvbSBcIi4vTEFwcExpdmUyRE1hbmFnZXJcIlxuXG5pbXBvcnQgTEFwcERlZmluZSBmcm9tIFwiLi9MQXBwRGVmaW5lXCJcblxuaW1wb3J0IE1hdHJpeFN0YWNrIGZyb20gXCIuL2xpYi9NYXRyaXhTdGFja1wiXG5cbmltcG9ydCB7c2V0Q29udGV4dH0gZnJvbSBcIi4vd2ViZ2xjb250ZXh0XCJcblxuLy8gd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAobXNnLCB1cmwsIGxpbmUsIGNvbCwgZXJyb3IpIHtcbi8vICAgbGV0IGVycm1zZyA9IFwiZmlsZTpcIiArIHVybCArIFwiPGJyPmxpbmU6XCIgKyBsaW5lICsgXCIgXCIgKyBtc2c7XG4vLyAgIGNvbnNvbGUuZXJyb3IoZXJybXNnKTtcbi8vIH1cblxuY29uc3QgcGxhdGZvcm0gPSB3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLnRvTG93ZXJDYXNlKCk7XG5cbmNvbnN0IGxpdmUyRE1nciA9IG5ldyBMQXBwTGl2ZTJETWFuYWdlcigpO1xuXG5sZXQgaXNEcmF3U3RhcnQgPSBmYWxzZTtcblxubGV0IGdsID0gbnVsbDtcblxubGV0IGNhbnZhcyA9IG51bGw7XG5cbmxldCBkcmFnTWdyID0gbnVsbDtcblxubGV0IHZpZXdNYXRyaXggPSBudWxsO1xuXG5sZXQgcHJvak1hdHJpeCA9IG51bGw7XG5cbmxldCBkZXZpY2VUb1NjcmVlbiA9IG51bGw7XG5cbmxldCBkcmFnID0gZmFsc2U7XG5cbmxldCBvbGRMZW4gPSAwO1xuXG5sZXQgbGFzdE1vdXNlWCA9IDA7XG5cbmxldCBsYXN0TW91c2VZID0gMDtcblxubGV0IGlzTW9kZWxTaG93biA9IDA7XG5cbmxldCBtb2RlbHVybCA9IFwiXCI7XG5cbmxldCBoZWFkX3BvcyA9IDAuNTtcblxuZnVuY3Rpb24gaW5pdEwyZENhbnZhcyhjYW52YXNJZCkge1xuICBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNJZCk7XG4gIGlmIChjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIC8vY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXdoZWVsXCIsIG1vdXNlRXZlbnQpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgbW91c2VFdmVudCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgbW91c2VFdmVudCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgbW91c2VFdmVudCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIG1vdXNlRXZlbnQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIG1vdXNlRXZlbnQpO1xuICAgIC8vY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLCBtb3VzZUV2ZW50KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgdG91Y2hFdmVudCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0b3VjaEV2ZW50KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaEV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0KG1vZGVsdXJsKSB7XG4gIGxldCB3aWR0aCA9IGNhbnZhcy53aWR0aDtcbiAgbGV0IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7XG5cbiAgZHJhZ01nciA9IG5ldyBMMkRUYXJnZXRQb2ludCgpO1xuXG4gIGxldCByYXRpbyA9IGhlaWdodCAvIHdpZHRoO1xuICBsZXQgbGVmdCA9IExBcHBEZWZpbmUuVklFV19MT0dJQ0FMX0xFRlQ7XG4gIGxldCByaWdodCA9IExBcHBEZWZpbmUuVklFV19MT0dJQ0FMX1JJR0hUO1xuICBsZXQgYm90dG9tID0gLXJhdGlvO1xuICBsZXQgdG9wID0gcmF0aW87XG5cbiAgdmlld01hdHJpeCA9IG5ldyBMMkRWaWV3TWF0cml4KCk7XG5cblxuICB2aWV3TWF0cml4LnNldFNjcmVlblJlY3QobGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wKTtcblxuICB2aWV3TWF0cml4LnNldE1heFNjcmVlblJlY3QoTEFwcERlZmluZS5WSUVXX0xPR0lDQUxfTUFYX0xFRlQsXG4gICAgTEFwcERlZmluZS5WSUVXX0xPR0lDQUxfTUFYX1JJR0hULFxuICAgIExBcHBEZWZpbmUuVklFV19MT0dJQ0FMX01BWF9CT1RUT00sXG4gICAgTEFwcERlZmluZS5WSUVXX0xPR0lDQUxfTUFYX1RPUCk7XG5cbiAgdmlld01hdHJpeC5zZXRNYXhTY2FsZShMQXBwRGVmaW5lLlZJRVdfTUFYX1NDQUxFKTtcbiAgdmlld01hdHJpeC5zZXRNaW5TY2FsZShMQXBwRGVmaW5lLlZJRVdfTUlOX1NDQUxFKTtcblxuICBwcm9qTWF0cml4ID0gbmV3IEwyRE1hdHJpeDQ0KCk7XG4gIHByb2pNYXRyaXgubXVsdFNjYWxlKDEsICh3aWR0aCAvIGhlaWdodCkpO1xuXG4gIGRldmljZVRvU2NyZWVuID0gbmV3IEwyRE1hdHJpeDQ0KCk7XG4gIGRldmljZVRvU2NyZWVuLm11bHRUcmFuc2xhdGUoLXdpZHRoIC8gMi4wLCAtaGVpZ2h0IC8gMi4wKTtcbiAgZGV2aWNlVG9TY3JlZW4ubXVsdFNjYWxlKDIgLyB3aWR0aCwgLTIgLyB3aWR0aCk7XG5cbiAgZ2wgPSBnZXRXZWJHTENvbnRleHQoKTtcbiAgc2V0Q29udGV4dChnbCk7XG4gIGlmICghZ2wpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBXZWJHTCBjb250ZXh0LlwiKTtcbiAgICByZXR1cm47XG4gIH1cbiAgd2luZG93LkxpdmUyRC5zZXRHTChnbCk7XG4gIGdsLmNsZWFyQ29sb3IoMC4wLCAwLjAsIDAuMCwgMC4wKTtcbiAgY2hhbmdlTW9kZWwobW9kZWx1cmwpO1xuICBzdGFydERyYXcoKTtcbn1cblxuZnVuY3Rpb24gc3RhcnREcmF3KCkge1xuICBpZiAoIWlzRHJhd1N0YXJ0KSB7XG4gICAgaXNEcmF3U3RhcnQgPSB0cnVlO1xuICAgIChmdW5jdGlvbiB0aWNrKCkge1xuICAgICAgZHJhdygpO1xuICAgICAgbGV0IHJlcXVlc3RBbmltYXRpb25GcmFtZSA9XG4gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgd2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuICAgICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgIHdpbmRvdy5tc1JlcXVlc3RBbmltYXRpb25GcmFtZTtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2ssIGNhbnZhcyk7XG4gICAgfSkoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkcmF3KClcbntcbiAgICBNYXRyaXhTdGFjay5yZXNldCgpO1xuICAgIE1hdHJpeFN0YWNrLmxvYWRJZGVudGl0eSgpO1xuICAgIGRyYWdNZ3IudXBkYXRlKCk7IFxuICAgIGxpdmUyRE1nci5zZXREcmFnKGRyYWdNZ3IuZ2V0WCgpLCBkcmFnTWdyLmdldFkoKSk7XG4gICAgXG4gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7XG4gICAgXG4gICAgTWF0cml4U3RhY2subXVsdE1hdHJpeChwcm9qTWF0cml4LmdldEFycmF5KCkpO1xuICAgIE1hdHJpeFN0YWNrLm11bHRNYXRyaXgodmlld01hdHJpeC5nZXRBcnJheSgpKTtcbiAgICBNYXRyaXhTdGFjay5wdXNoKCk7XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXZlMkRNZ3IubnVtTW9kZWxzKCk7IGkrKylcbiAgICB7XG4gICAgICAgIGxldCBtb2RlbCA9IGxpdmUyRE1nci5nZXRNb2RlbChpKTtcblxuICAgICAgICBpZihtb2RlbCA9PSBudWxsKSByZXR1cm47XG4gICAgICAgIFxuICAgICAgICBpZiAobW9kZWwuaW5pdGlhbGl6ZWQgJiYgIW1vZGVsLnVwZGF0aW5nKVxuICAgICAgICB7XG4gICAgICAgICAgICBtb2RlbC51cGRhdGUoKTtcbiAgICAgICAgICAgIG1vZGVsLmRyYXcoZ2wpO1xuICAgICAgICB9XG4gICAgfVxuICAgIE1hdHJpeFN0YWNrLnBvcCgpO1xufVxuXG5mdW5jdGlvbiBjaGFuZ2VNb2RlbChtb2RlbHVybClcbntcbiAgICBsaXZlMkRNZ3IucmVsb2FkRmxnID0gdHJ1ZTtcbiAgICBsaXZlMkRNZ3IuY291bnQrKztcbiAgICBsaXZlMkRNZ3IuY2hhbmdlTW9kZWwoZ2wsbW9kZWx1cmwpO1xufVxuXG5mdW5jdGlvbiBtb2RlbFNjYWxpbmcoc2NhbGUpXG57XG4gICAgbGV0IGlzTWF4U2NhbGUgPSB2aWV3TWF0cml4LmlzTWF4U2NhbGUoKTtcbiAgICBsZXQgaXNNaW5TY2FsZSA9IHZpZXdNYXRyaXguaXNNaW5TY2FsZSgpO1xuICAgIFxuICAgIHZpZXdNYXRyaXguYWRqdXN0U2NhbGUoMCwgMCwgc2NhbGUpO1xuXG4gICAgaWYgKCFpc01heFNjYWxlKVxuICAgIHtcbiAgICAgICAgaWYgKHZpZXdNYXRyaXguaXNNYXhTY2FsZSgpKVxuICAgICAgICB7XG4gICAgICAgICAgICBsaXZlMkRNZ3IubWF4U2NhbGVFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIGlmICghaXNNaW5TY2FsZSlcbiAgICB7XG4gICAgICAgIGlmICh2aWV3TWF0cml4LmlzTWluU2NhbGUoKSlcbiAgICAgICAge1xuICAgICAgICAgICAgbGl2ZTJETWdyLm1pblNjYWxlRXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtUmFuZ2UoY2VudGVyLCB0cmFuc2Zvcm0sIHJhbmdlKVxue1xuICAgIGxldCBhID0ge1xuICAgICAgICB4OiB0cmFuc2Zvcm0ueCAtIGNlbnRlci54LFxuICAgICAgICB5OiB0cmFuc2Zvcm0ueSAtIGNlbnRlci55XG4gICAgfVxuICAgIGxldCByID0gTWF0aC5zcXJ0KE1hdGgucG93KGEueCwyKSArIE1hdGgucG93KGEueSwyKSk7XG4gICAgaWYgKHIgPiByYW5nZSkge1xuICAgICAgICBhID0ge1xuICAgICAgICAgICAgeDogYS54IC8gciAqIHJhbmdlICsgY2VudGVyLngsXG4gICAgICAgICAgICB5OiBhLnkgLyByICogcmFuZ2UgKyBjZW50ZXIueVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZG90KEEsQilcbntcbiAgICByZXR1cm4gQS54ICogQi54ICsgQS55ICogQi55O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemUoeCx5KVxue1xuICAgIGxldCBsZW5ndGggPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSlcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiB4IC8gbGVuZ3RoLFxuICAgICAgICB5OiB5IC8gbGVuZ3RoXG4gICAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1SZWN0KGNlbnRlciwgdHJhbnNmb3JtLCByZWN0KVxue1xuICAgIGlmICh0cmFuc2Zvcm0ueCA8IHJlY3QubGVmdCArIHJlY3Qud2lkdGggJiYgdHJhbnNmb3JtLnkgPCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0ICYmXG4gICAgICAgIHRyYW5zZm9ybS54ID4gcmVjdC5sZWZ0ICYmIHRyYW5zZm9ybS55ID4gcmVjdC50b3ApIHJldHVybiB0cmFuc2Zvcm07XG4gICAgbGV0IExlbl9YID0gY2VudGVyLnggLSB0cmFuc2Zvcm0ueDtcbiAgICBsZXQgTGVuX1kgPSBjZW50ZXIueSAtIHRyYW5zZm9ybS55O1xuXG4gICAgZnVuY3Rpb24gYW5nbGUoTGVuX1gsIExlbl9ZKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWNvcyhkb3Qoe1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDFcbiAgICAgICAgfSwgbm9ybWFsaXplKExlbl9YLCBMZW5fWSkpKSAqIDE4MCAvIE1hdGguUElcbiAgICB9XG5cbiAgICBsZXQgYW5nbGVUYXJnZXQgPSBhbmdsZShMZW5fWCwgTGVuX1kpO1xuICAgIGlmICh0cmFuc2Zvcm0ueCA8IGNlbnRlci54KSBhbmdsZVRhcmdldCA9IDM2MCAtIGFuZ2xlVGFyZ2V0O1xuICAgIGxldCBhbmdsZUxlZnRUb3AgPSAzNjAgLSBhbmdsZShyZWN0LmxlZnQgLSBjZW50ZXIueCwgKHJlY3QudG9wIC0gY2VudGVyLnkpICogLTEpO1xuICAgIGxldCBhbmdsZUxlZnRCb3R0b20gPSAzNjAgLSBhbmdsZShyZWN0LmxlZnQgLSBjZW50ZXIueCwgKHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLSBjZW50ZXIueSkgKiAtMSk7XG4gICAgbGV0IGFuZ2xlUmlnaHRUb3AgPSBhbmdsZShyZWN0LmxlZnQgKyByZWN0LndpZHRoIC0gY2VudGVyLngsIChyZWN0LnRvcCAtIGNlbnRlci55KSAqIC0xKTtcbiAgICBsZXQgYW5nbGVSaWdodEJvdHRvbSA9IGFuZ2xlKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLSBjZW50ZXIueCwgKHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLSBjZW50ZXIueSkgKiAtMSk7XG4gICAgbGV0IHNjYWxlID0gTGVuX1kgLyBMZW5fWDtcbiAgICBsZXQgcmVzID0ge307XG5cbiAgICBpZiAoYW5nbGVUYXJnZXQgPCBhbmdsZVJpZ2h0VG9wKSB7XG4gICAgICAgIGxldCB5MyA9IHJlY3QudG9wIC0gY2VudGVyLnk7XG4gICAgICAgIGxldCB4MyA9IHkzIC8gc2NhbGU7XG4gICAgICAgIHJlcyA9IHtcbiAgICAgICAgICAgIHk6IGNlbnRlci55ICsgeTMsXG4gICAgICAgICAgICB4OiBjZW50ZXIueCArIHgzXG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYoYW5nbGVUYXJnZXQgPCBhbmdsZVJpZ2h0Qm90dG9tKSB7XG4gICAgICAgIGxldCB4MyA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLSBjZW50ZXIueDtcbiAgICAgICAgbGV0IHkzID0geDMgKiBzY2FsZTtcbiAgICAgICAgcmVzID0ge1xuICAgICAgICAgICAgeTogY2VudGVyLnkgKyB5MyxcbiAgICAgICAgICAgIHg6IGNlbnRlci54ICsgeDNcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYW5nbGVUYXJnZXQgPCBhbmdsZUxlZnRCb3R0b20pIHtcbiAgICAgICAgbGV0IHkzID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAtIGNlbnRlci55O1xuICAgICAgICBsZXQgeDMgPSB5MyAvIHNjYWxlO1xuICAgICAgICByZXMgPSB7XG4gICAgICAgICAgICB5OiBjZW50ZXIueSArIHkzLFxuICAgICAgICAgICAgeDogY2VudGVyLnggKyB4M1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChhbmdsZVRhcmdldCA8IGFuZ2xlTGVmdFRvcCkge1xuICAgICAgICBsZXQgeDMgPSBjZW50ZXIueCAtIHJlY3QubGVmdDtcbiAgICAgICAgbGV0IHkzID0geDMgKiBzY2FsZTtcbiAgICAgICAgcmVzID0ge1xuICAgICAgICAgICAgeTogY2VudGVyLnkgLSB5MyxcbiAgICAgICAgICAgIHg6IGNlbnRlci54IC0geDNcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCB5MyA9IHJlY3QudG9wIC0gY2VudGVyLnk7XG4gICAgICAgIGxldCB4MyA9IHkzIC8gc2NhbGU7XG4gICAgICAgIHJlcyA9IHtcbiAgICAgICAgICAgIHk6IGNlbnRlci55ICsgeTMsXG4gICAgICAgICAgICB4OiBjZW50ZXIueCArIHgzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBtb2RlbFR1cm5IZWFkKGV2ZW50KVxue1xuICAgIGRyYWcgPSB0cnVlO1xuICAgIFxuICAgIGxldCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIFxuICAgIGxldCBzeCA9IHRyYW5zZm9ybVNjcmVlblgoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCk7XG4gICAgbGV0IHN5ID0gdHJhbnNmb3JtU2NyZWVuWShldmVudC5jbGllbnRZIC0gcmVjdC50b3ApO1xuICAgIGxldCB0YXJnZXQgPSB0cmFuc2Zvcm1SZWN0KHtcbiAgICAgICAgeDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgICAgIHk6IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgKiBoZWFkX3Bvc1xuICAgIH0sIHtcbiAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgeTogZXZlbnQuY2xpZW50WVxuICAgIH0sIHJlY3QpXG4gICAgbGV0IHZ4ID0gdHJhbnNmb3JtVmlld1godGFyZ2V0LnggLSByZWN0LmxlZnQpO1xuICAgIGxldCB2eSA9IHRyYW5zZm9ybVZpZXdZKHRhcmdldC55IC0gcmVjdC50b3ApO1xuXG4gICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTU9VU0VfTE9HKVxuICAgICAgICBjb25zb2xlLmxvZyhcIm9uTW91c2VEb3duIGRldmljZSggeDpcIiArIGV2ZW50LmNsaWVudFggKyBcIiB5OlwiICsgZXZlbnQuY2xpZW50WSArIFwiICkgdmlldyggeDpcIiArIHZ4ICsgXCIgeTpcIiArIHZ5ICsgXCIpXCIpO1xuXG4gICAgbGFzdE1vdXNlWCA9IHN4O1xuICAgIGxhc3RNb3VzZVkgPSBzeTtcblxuICAgIGRyYWdNZ3Iuc2V0UG9pbnQodngsIHZ5KTsgXG4gICAgXG4gICAgbGl2ZTJETWdyLnRhcEV2ZW50KHZ4LCB2eSk7XG59XG5cbmZ1bmN0aW9uIGZvbGxvd1BvaW50ZXIoZXZlbnQpXG57ICAgIFxuICAgIGxldCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIFxuICAgIGxldCBzeCA9IHRyYW5zZm9ybVNjcmVlblgoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCk7XG4gICAgbGV0IHN5ID0gdHJhbnNmb3JtU2NyZWVuWShldmVudC5jbGllbnRZIC0gcmVjdC50b3ApO1xuICAgIGxldCB0YXJnZXQgPSB0cmFuc2Zvcm1SZWN0KHtcbiAgICAgICAgeDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgICAgIHk6IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgKiBoZWFkX3Bvc1xuICAgIH0sIHtcbiAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgeTogZXZlbnQuY2xpZW50WVxuICAgIH0sIHJlY3QpXG4gICAgbGV0IHZ4ID0gdHJhbnNmb3JtVmlld1godGFyZ2V0LnggLSByZWN0LmxlZnQpO1xuICAgIGxldCB2eSA9IHRyYW5zZm9ybVZpZXdZKHRhcmdldC55IC0gcmVjdC50b3ApO1xuXG4gICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTU9VU0VfTE9HKVxuICAgICAgICBjb25zb2xlLmxvZyhcIm9uTW91c2VNb3ZlIGRldmljZSggeDpcIiArIGV2ZW50LmNsaWVudFggKyBcIiB5OlwiICsgZXZlbnQuY2xpZW50WSArIFwiICkgdmlldyggeDpcIiArIHZ4ICsgXCIgeTpcIiArIHZ5ICsgXCIpXCIpO1xuXG4gICAgaWYgKGRyYWcpXG4gICAge1xuICAgICAgICBsYXN0TW91c2VYID0gc3g7XG4gICAgICAgIGxhc3RNb3VzZVkgPSBzeTtcbiAgICAgICAgZHJhZ01nci5zZXRQb2ludCh2eCwgdnkpOyBcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvb2tGcm9udCgpXG57ICAgXG4gICAgaWYgKGRyYWcpXG4gICAge1xuICAgICAgICBkcmFnID0gZmFsc2U7XG4gICAgfVxuICAgIGRyYWdNZ3Iuc2V0UG9pbnQoMCwgMCk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlRXZlbnQoZSlcbntcbiAgICAvL2UucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoZS50eXBlID09IFwibW91c2V3aGVlbFwiKSB7XG4gICAgICAgIC8vIGlmIChlLmNsaWVudFggPCAwIHx8IGNhbnZhcy5jbGllbnRXaWR0aCA8IGUuY2xpZW50WCB8fCBcbiAgICAgICAgLy8gZS5jbGllbnRZIDwgMCB8fCBjYW52YXMuY2xpZW50SGVpZ2h0IDwgZS5jbGllbnRZKVxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICByZXR1cm47XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKGUud2hlZWxEZWx0YSA+IDApIG1vZGVsU2NhbGluZygxLjEpOyBcbiAgICAgICAgLy8gZWxzZSBtb2RlbFNjYWxpbmcoMC45KTsgXG4gICAgfSBlbHNlIGlmIChlLnR5cGUgPT0gXCJtb3VzZWRvd25cIikge1xuICAgICAgICBpZihcImJ1dHRvblwiIGluIGUgJiYgZS5idXR0b24gIT0gMCkgcmV0dXJuO1xuICAgICAgICAvLyBtb2RlbFR1cm5IZWFkKGUpO1xuICAgIH0gZWxzZSBpZiAoZS50eXBlID09IFwibW91c2Vtb3ZlXCIpIHtcbiAgICAgICAgbW9kZWxUdXJuSGVhZChlKTtcbiAgICB9IGVsc2UgaWYgKGUudHlwZSA9PSBcIm1vdXNldXBcIikge1xuICAgICAgICBpZihcImJ1dHRvblwiIGluIGUgJiYgZS5idXR0b24gIT0gMCkgcmV0dXJuO1xuICAgICAgICAvLyBsb29rRnJvbnQoKTtcbiAgICB9IGVsc2UgaWYgKGUudHlwZSA9PSBcIm1vdXNlbGVhdmVcIikge1xuICAgICAgICBsb29rRnJvbnQoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvdWNoRXZlbnQoZSlcbntcbiAgICB2YXIgdG91Y2ggPSBlLnRvdWNoZXNbMF07XG4gICAgaWYgKGUudHlwZSA9PSBcInRvdWNoc3RhcnRcIikge1xuICAgICAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA9PSAxKSBtb2RlbFR1cm5IZWFkKHRvdWNoKTtcbiAgICAgICAgLy8gb25DbGljayh0b3VjaCk7XG4gICAgfSBlbHNlIGlmIChlLnR5cGUgPT0gXCJ0b3VjaG1vdmVcIikge1xuICAgICAgICBmb2xsb3dQb2ludGVyKHRvdWNoKTtcbiAgICB9IGVsc2UgaWYgKGUudHlwZSA9PSBcInRvdWNoZW5kXCIpIHtcbiAgICAgICAgbG9va0Zyb250KCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1WaWV3WChkZXZpY2VYKVxue1xuICAgIHZhciBzY3JlZW5YID0gZGV2aWNlVG9TY3JlZW4udHJhbnNmb3JtWChkZXZpY2VYKTsgXG4gICAgcmV0dXJuIHZpZXdNYXRyaXguaW52ZXJ0VHJhbnNmb3JtWChzY3JlZW5YKTsgXG59XG5cblxuZnVuY3Rpb24gdHJhbnNmb3JtVmlld1koZGV2aWNlWSlcbntcbiAgICB2YXIgc2NyZWVuWSA9IGRldmljZVRvU2NyZWVuLnRyYW5zZm9ybVkoZGV2aWNlWSk7IFxuICAgIHJldHVybiB2aWV3TWF0cml4LmludmVydFRyYW5zZm9ybVkoc2NyZWVuWSk7IFxufVxuXG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNjcmVlblgoZGV2aWNlWClcbntcbiAgICByZXR1cm4gZGV2aWNlVG9TY3JlZW4udHJhbnNmb3JtWChkZXZpY2VYKTtcbn1cblxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TY3JlZW5ZKGRldmljZVkpXG57XG4gICAgcmV0dXJuIGRldmljZVRvU2NyZWVuLnRyYW5zZm9ybVkoZGV2aWNlWSk7XG59XG5cbmZ1bmN0aW9uIGdldFdlYkdMQ29udGV4dCgpXG57XG4gICAgdmFyIE5BTUVTID0gWyBcIndlYmdsXCIgLCBcImV4cGVyaW1lbnRhbC13ZWJnbFwiICwgXCJ3ZWJraXQtM2RcIiAsIFwibW96LXdlYmdsXCJdO1xuICAgIGZvciggdmFyIGkgPSAwOyBpIDwgTkFNRVMubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgdHJ5e1xuICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KE5BTUVTW2ldLCB7cHJlbXVsdGlwbGllZEFscGhhIDogdHJ1ZX0pO1xuICAgICAgICAgICAgaWYoY3R4KSByZXR1cm4gY3R4O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoKGUpe31cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5mdW5jdGlvbiBsb2FkbGl2ZTJkKGlkLG1vZGVsdXJsLGhlYWRQb3MpIHtcbiAgICBoZWFkX3BvcyA9IHR5cGVvZiBoZWFkUG9zID09PSAndW5kZWZpbmVkJyA/IDAuNSA6IGhlYWRQb3M7XG4gICAgaW5pdEwyZENhbnZhcyhpZCk7XG4gICAgaW5pdChtb2RlbHVybCk7XG59XG5cbndpbmRvdy5sb2FkbGl2ZTJkID0gbG9hZGxpdmUyZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvbWFpbi5qcyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n')},/*!**********************************!*\ - !*** ./src/LAppLive2DManager.js ***! - \**********************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.default = LAppLive2DManager;\n\nvar _Live2DFramework = __webpack_require__(/*! ./lib/Live2DFramework.js */ 0);\n\nvar _PlatformManager = __webpack_require__(/*! ./PlatformManager */ 7);\n\nvar _PlatformManager2 = _interopRequireDefault(_PlatformManager);\n\nvar _LAppModel = __webpack_require__(/*! ./LAppModel */ 6);\n\nvar _LAppModel2 = _interopRequireDefault(_LAppModel);\n\nvar _LAppDefine = __webpack_require__(/*! ./LAppDefine */ 1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction LAppLive2DManager() {\n // console.log("--\x3e LAppLive2DManager()");\n\n\n this.models = [];\n\n this.count = -1;\n this.reloadFlg = false;\n\n Live2D.init();\n _Live2DFramework.Live2DFramework.setPlatformManager(new _PlatformManager2.default());\n}\n\nLAppLive2DManager.prototype.createModel = function () {\n\n var model = new _LAppModel2.default();\n this.models.push(model);\n\n return model;\n};\n\nLAppLive2DManager.prototype.changeModel = function (gl, modelurl) {\n // console.log("--\x3e LAppLive2DManager.update(gl)");\n\n if (this.reloadFlg) {\n\n this.reloadFlg = false;\n\n var thisRef = this;\n this.releaseModel(0, gl);\n this.createModel();\n this.models[0].load(gl, modelurl);\n }\n};\n\nLAppLive2DManager.prototype.getModel = function (no) {\n // console.log("--\x3e LAppLive2DManager.getModel(" + no + ")");\n\n if (no >= this.models.length) return null;\n\n return this.models[no];\n};\n\nLAppLive2DManager.prototype.releaseModel = function (no, gl) {\n // console.log("--\x3e LAppLive2DManager.releaseModel(" + no + ")");\n\n if (this.models.length <= no) return;\n\n this.models[no].release(gl);\n\n delete this.models[no];\n this.models.splice(no, 1);\n};\n\nLAppLive2DManager.prototype.numModels = function () {\n return this.models.length;\n};\n\nLAppLive2DManager.prototype.setDrag = function (x, y) {\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].setDrag(x, y);\n }\n};\n\nLAppLive2DManager.prototype.maxScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Max scale event.");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_IN, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.minScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Min scale event.");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_OUT, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.tapEvent = function (x, y) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log("tapEvent view x:" + x + " y:" + y);\n\n for (var i = 0; i < this.models.length; i++) {\n\n if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_HEAD, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Tap face.");\n\n this.models[i].setRandomExpression();\n } else if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_BODY, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Tap body." + " models[" + i + "]");\n\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_TAP_BODY, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n }\n\n return true;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvTEFwcExpdmUyRE1hbmFnZXIuanM/ZTlkNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXZlMkRGcmFtZXdvcmsgfSBmcm9tIFwiLi9saWIvTGl2ZTJERnJhbWV3b3JrLmpzXCJcbmltcG9ydCBQbGF0Zm9ybU1hbmFnZXIgZnJvbSBcIi4vUGxhdGZvcm1NYW5hZ2VyXCJcbmltcG9ydCBMQXBwTW9kZWwgZnJvbSBcIi4vTEFwcE1vZGVsXCJcbmltcG9ydCBMQXBwRGVmaW5lIGZyb20gXCIuL0xBcHBEZWZpbmVcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMQXBwTGl2ZTJETWFuYWdlcigpIHtcbiAgLy8gY29uc29sZS5sb2coXCItLT4gTEFwcExpdmUyRE1hbmFnZXIoKVwiKTtcblxuXG4gIHRoaXMubW9kZWxzID0gW107XG5cblxuICB0aGlzLmNvdW50ID0gLTE7XG4gIHRoaXMucmVsb2FkRmxnID0gZmFsc2U7XG5cbiAgTGl2ZTJELmluaXQoKTtcbiAgTGl2ZTJERnJhbWV3b3JrLnNldFBsYXRmb3JtTWFuYWdlcihuZXcgUGxhdGZvcm1NYW5hZ2VyKTtcblxufVxuXG5MQXBwTGl2ZTJETWFuYWdlci5wcm90b3R5cGUuY3JlYXRlTW9kZWwgPSBmdW5jdGlvbiAoKSB7XG5cblxuICB2YXIgbW9kZWwgPSBuZXcgTEFwcE1vZGVsKCk7XG4gIHRoaXMubW9kZWxzLnB1c2gobW9kZWwpO1xuXG4gIHJldHVybiBtb2RlbDtcbn1cblxuXG5MQXBwTGl2ZTJETWFuYWdlci5wcm90b3R5cGUuY2hhbmdlTW9kZWwgPSBmdW5jdGlvbiAoZ2wsIG1vZGVsdXJsKSB7XG4gIC8vIGNvbnNvbGUubG9nKFwiLS0+IExBcHBMaXZlMkRNYW5hZ2VyLnVwZGF0ZShnbClcIik7XG5cbiAgaWYgKHRoaXMucmVsb2FkRmxnKSB7XG5cbiAgICB0aGlzLnJlbG9hZEZsZyA9IGZhbHNlO1xuXG4gICAgdmFyIHRoaXNSZWYgPSB0aGlzO1xuICAgIHRoaXMucmVsZWFzZU1vZGVsKDAsIGdsKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGVsKCk7XG4gICAgdGhpcy5tb2RlbHNbMF0ubG9hZChnbCwgbW9kZWx1cmwpO1xuICB9XG59O1xuXG5cbkxBcHBMaXZlMkRNYW5hZ2VyLnByb3RvdHlwZS5nZXRNb2RlbCA9IGZ1bmN0aW9uIChubykge1xuICAvLyBjb25zb2xlLmxvZyhcIi0tPiBMQXBwTGl2ZTJETWFuYWdlci5nZXRNb2RlbChcIiArIG5vICsgXCIpXCIpO1xuXG4gIGlmIChubyA+PSB0aGlzLm1vZGVscy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiB0aGlzLm1vZGVsc1tub107XG59O1xuXG5cblxuTEFwcExpdmUyRE1hbmFnZXIucHJvdG90eXBlLnJlbGVhc2VNb2RlbCA9IGZ1bmN0aW9uIChubywgZ2wpIHtcbiAgLy8gY29uc29sZS5sb2coXCItLT4gTEFwcExpdmUyRE1hbmFnZXIucmVsZWFzZU1vZGVsKFwiICsgbm8gKyBcIilcIik7XG5cbiAgaWYgKHRoaXMubW9kZWxzLmxlbmd0aCA8PSBubykgcmV0dXJuO1xuXG4gIHRoaXMubW9kZWxzW25vXS5yZWxlYXNlKGdsKTtcblxuICBkZWxldGUgdGhpcy5tb2RlbHNbbm9dO1xuICB0aGlzLm1vZGVscy5zcGxpY2Uobm8sIDEpO1xufTtcblxuXG5cbkxBcHBMaXZlMkRNYW5hZ2VyLnByb3RvdHlwZS5udW1Nb2RlbHMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLm1vZGVscy5sZW5ndGg7XG59O1xuXG5cblxuTEFwcExpdmUyRE1hbmFnZXIucHJvdG90eXBlLnNldERyYWcgPSBmdW5jdGlvbiAoeCwgeSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubW9kZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgdGhpcy5tb2RlbHNbaV0uc2V0RHJhZyh4LCB5KTtcbiAgfVxufVxuXG5cblxuTEFwcExpdmUyRE1hbmFnZXIucHJvdG90eXBlLm1heFNjYWxlRXZlbnQgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChMQXBwRGVmaW5lLkRFQlVHX0xPRylcbiAgICBjb25zb2xlLmxvZyhcIk1heCBzY2FsZSBldmVudC5cIik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5tb2RlbHMubGVuZ3RoOyBpKyspIHtcbiAgICB0aGlzLm1vZGVsc1tpXS5zdGFydFJhbmRvbU1vdGlvbihMQXBwRGVmaW5lLk1PVElPTl9HUk9VUF9QSU5DSF9JTixcbiAgICAgIExBcHBEZWZpbmUuUFJJT1JJVFlfTk9STUFMKTtcbiAgfVxufVxuXG5cblxuTEFwcExpdmUyRE1hbmFnZXIucHJvdG90eXBlLm1pblNjYWxlRXZlbnQgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChMQXBwRGVmaW5lLkRFQlVHX0xPRylcbiAgICBjb25zb2xlLmxvZyhcIk1pbiBzY2FsZSBldmVudC5cIik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5tb2RlbHMubGVuZ3RoOyBpKyspIHtcbiAgICB0aGlzLm1vZGVsc1tpXS5zdGFydFJhbmRvbU1vdGlvbihMQXBwRGVmaW5lLk1PVElPTl9HUk9VUF9QSU5DSF9PVVQsXG4gICAgICBMQXBwRGVmaW5lLlBSSU9SSVRZX05PUk1BTCk7XG4gIH1cbn1cblxuXG5cbkxBcHBMaXZlMkRNYW5hZ2VyLnByb3RvdHlwZS50YXBFdmVudCA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gIGlmIChMQXBwRGVmaW5lLkRFQlVHX0xPRylcbiAgICBjb25zb2xlLmxvZyhcInRhcEV2ZW50IHZpZXcgeDpcIiArIHggKyBcIiB5OlwiICsgeSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1vZGVscy5sZW5ndGg7IGkrKykge1xuXG4gICAgaWYgKHRoaXMubW9kZWxzW2ldLmhpdFRlc3QoTEFwcERlZmluZS5ISVRfQVJFQV9IRUFELCB4LCB5KSkge1xuXG4gICAgICBpZiAoTEFwcERlZmluZS5ERUJVR19MT0cpXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVGFwIGZhY2UuXCIpO1xuXG4gICAgICB0aGlzLm1vZGVsc1tpXS5zZXRSYW5kb21FeHByZXNzaW9uKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMubW9kZWxzW2ldLmhpdFRlc3QoTEFwcERlZmluZS5ISVRfQVJFQV9CT0RZLCB4LCB5KSkge1xuXG4gICAgICBpZiAoTEFwcERlZmluZS5ERUJVR19MT0cpXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVGFwIGJvZHkuXCIgKyBcIiBtb2RlbHNbXCIgKyBpICsgXCJdXCIpO1xuXG4gICAgICB0aGlzLm1vZGVsc1tpXS5zdGFydFJhbmRvbU1vdGlvbihMQXBwRGVmaW5lLk1PVElPTl9HUk9VUF9UQVBfQk9EWSxcbiAgICAgICAgTEFwcERlZmluZS5QUklPUklUWV9OT1JNQUwpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL0xBcHBMaXZlMkRNYW5hZ2VyLmpzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBO0FBQ0E7QUFOQTtBQUNBO0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n')},/*!**************************!*\ - !*** ./src/LAppModel.js ***! - \**************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.default = LAppModel;\n\nvar _Live2DFramework = __webpack_require__(/*! ./lib/Live2DFramework */ 0);\n\nvar _ModelSettingJson = __webpack_require__(/*! ./lib/ModelSettingJson */ 8);\n\nvar _ModelSettingJson2 = _interopRequireDefault(_ModelSettingJson);\n\nvar _LAppDefine = __webpack_require__(/*! ./LAppDefine */ 1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(/*! ./lib/MatrixStack */ 2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//============================================================\n//============================================================\n// class LAppModel extends L2DBaseModel \n//============================================================\n//============================================================\nfunction LAppModel() {\n //L2DBaseModel.apply(this, arguments);\n _Live2DFramework.L2DBaseModel.prototype.constructor.call(this);\n\n this.modelHomeDir = "";\n this.modelSetting = null;\n this.tmpMatrix = [];\n}\n\nLAppModel.prototype = new _Live2DFramework.L2DBaseModel();\n\nLAppModel.prototype.load = function (gl, modelSettingPath, callback) {\n this.setUpdating(true);\n this.setInitialized(false);\n\n this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf("/") + 1);\n\n this.modelSetting = new _ModelSettingJson2.default();\n\n var thisRef = this;\n\n this.modelSetting.loadModelSetting(modelSettingPath, function () {\n\n var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();\n thisRef.loadModelData(path, function (model) {\n\n for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++) {\n\n var texPaths = thisRef.modelHomeDir + thisRef.modelSetting.getTextureFile(i);\n\n thisRef.loadTexture(i, texPaths, function () {\n\n if (thisRef.isTexLoaded) {\n\n if (thisRef.modelSetting.getExpressionNum() > 0) {\n\n thisRef.expressions = {};\n\n for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++) {\n var expName = thisRef.modelSetting.getExpressionName(j);\n var expFilePath = thisRef.modelHomeDir + thisRef.modelSetting.getExpressionFile(j);\n\n thisRef.loadExpression(expName, expFilePath);\n }\n } else {\n thisRef.expressionManager = null;\n thisRef.expressions = {};\n }\n\n if (thisRef.eyeBlink == null) {\n thisRef.eyeBlink = new _Live2DFramework.L2DEyeBlink();\n }\n\n if (thisRef.modelSetting.getPhysicsFile() != null) {\n thisRef.loadPhysics(thisRef.modelHomeDir + thisRef.modelSetting.getPhysicsFile());\n } else {\n thisRef.physics = null;\n }\n\n if (thisRef.modelSetting.getPoseFile() != null) {\n thisRef.loadPose(thisRef.modelHomeDir + thisRef.modelSetting.getPoseFile(), function () {\n thisRef.pose.updateParam(thisRef.live2DModel);\n });\n } else {\n thisRef.pose = null;\n }\n\n if (thisRef.modelSetting.getLayout() != null) {\n var layout = thisRef.modelSetting.getLayout();\n if (layout["width"] != null) thisRef.modelMatrix.setWidth(layout["width"]);\n if (layout["height"] != null) thisRef.modelMatrix.setHeight(layout["height"]);\n\n if (layout["x"] != null) thisRef.modelMatrix.setX(layout["x"]);\n if (layout["y"] != null) thisRef.modelMatrix.setY(layout["y"]);\n if (layout["center_x"] != null) thisRef.modelMatrix.centerX(layout["center_x"]);\n if (layout["center_y"] != null) thisRef.modelMatrix.centerY(layout["center_y"]);\n if (layout["top"] != null) thisRef.modelMatrix.top(layout["top"]);\n if (layout["bottom"] != null) thisRef.modelMatrix.bottom(layout["bottom"]);\n if (layout["left"] != null) thisRef.modelMatrix.left(layout["left"]);\n if (layout["right"] != null) thisRef.modelMatrix.right(layout["right"]);\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++) {\n\n thisRef.live2DModel.setParamFloat(thisRef.modelSetting.getInitParamID(j), thisRef.modelSetting.getInitParamValue(j));\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++) {\n\n thisRef.live2DModel.setPartsOpacity(thisRef.modelSetting.getInitPartsVisibleID(j), thisRef.modelSetting.getInitPartsVisibleValue(j));\n }\n\n thisRef.live2DModel.saveParam();\n // thisRef.live2DModel.setGL(gl);\n\n\n thisRef.preloadMotionGroup(_LAppDefine2.default.MOTION_GROUP_IDLE);\n thisRef.mainMotionManager.stopAllMotions();\n\n thisRef.setUpdating(false);\n thisRef.setInitialized(true);\n\n if (typeof callback == "function") callback();\n }\n });\n }\n });\n });\n};\n\nLAppModel.prototype.release = function (gl) {\n // this.live2DModel.deleteTextures();\n var pm = Live2DFramework.getPlatformManager();\n\n gl.deleteTexture(pm.texture);\n};\n\nLAppModel.prototype.preloadMotionGroup = function (name) {\n var thisRef = this;\n\n for (var i = 0; i < this.modelSetting.getMotionNum(name); i++) {\n var file = this.modelSetting.getMotionFile(name, i);\n this.loadMotion(file, this.modelHomeDir + file, function (motion) {\n motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));\n motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i));\n });\n }\n};\n\nLAppModel.prototype.update = function () {\n // console.log("--\x3e LAppModel.update()");\n\n if (this.live2DModel == null) {\n if (_LAppDefine2.default.DEBUG_LOG) console.error("Failed to update.");\n\n return;\n }\n\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n var timeSec = timeMSec / 1000.0;\n var t = timeSec * 2 * Math.PI;\n\n if (this.mainMotionManager.isFinished()) {\n\n this.startRandomMotion(_LAppDefine2.default.MOTION_GROUP_IDLE, _LAppDefine2.default.PRIORITY_IDLE);\n }\n\n //-----------------------------------------------------------------\t\t\n\n\n this.live2DModel.loadParam();\n\n var update = this.mainMotionManager.updateParam(this.live2DModel);\n if (!update) {\n\n if (this.eyeBlink != null) {\n this.eyeBlink.updateParam(this.live2DModel);\n }\n }\n\n this.live2DModel.saveParam();\n\n //-----------------------------------------------------------------\t\t\n\n\n if (this.expressionManager != null && this.expressions != null && !this.expressionManager.isFinished()) {\n this.expressionManager.updateParam(this.live2DModel);\n }\n\n this.live2DModel.addToParamFloat("PARAM_ANGLE_X", this.dragX * 30, 1);\n this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", this.dragY * 30, 1);\n this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", this.dragX * this.dragY * -30, 1);\n\n this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", this.dragX * 10, 1);\n\n this.live2DModel.addToParamFloat("PARAM_EYE_BALL_X", this.dragX, 1);\n this.live2DModel.addToParamFloat("PARAM_EYE_BALL_Y", this.dragY, 1);\n\n this.live2DModel.addToParamFloat("PARAM_ANGLE_X", Number(15 * Math.sin(t / 6.5345)), 0.5);\n this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", Number(8 * Math.sin(t / 3.5345)), 0.5);\n this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", Number(10 * Math.sin(t / 5.5345)), 0.5);\n this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", Number(4 * Math.sin(t / 15.5345)), 0.5);\n this.live2DModel.setParamFloat("PARAM_BREATH", Number(0.5 + 0.5 * Math.sin(t / 3.2345)), 1);\n\n if (this.physics != null) {\n this.physics.updateParam(this.live2DModel);\n }\n\n if (this.lipSync == null) {\n this.live2DModel.setParamFloat("PARAM_MOUTH_OPEN_Y", this.lipSyncValue);\n }\n\n if (this.pose != null) {\n this.pose.updateParam(this.live2DModel);\n }\n\n this.live2DModel.update();\n};\n\nLAppModel.prototype.setRandomExpression = function () {\n var tmp = [];\n for (var name in this.expressions) {\n tmp.push(name);\n }\n\n var no = parseInt(Math.random() * tmp.length);\n\n this.setExpression(tmp[no]);\n};\n\nLAppModel.prototype.startRandomMotion = function (name, priority) {\n var max = this.modelSetting.getMotionNum(name);\n var no = parseInt(Math.random() * max);\n this.startMotion(name, no, priority);\n};\n\nLAppModel.prototype.startMotion = function (name, no, priority) {\n // console.log("startMotion : " + name + " " + no + " " + priority);\n\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n if (motionName == null || motionName == "") {\n if (_LAppDefine2.default.DEBUG_LOG) console.error("Failed to motion.");\n return;\n }\n\n if (priority == _LAppDefine2.default.PRIORITY_FORCE) {\n this.mainMotionManager.setReservePriority(priority);\n } else if (!this.mainMotionManager.reserveMotion(priority)) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Motion is running.");\n return;\n }\n\n var thisRef = this;\n var motion;\n\n if (this.motions[name] == null) {\n this.loadMotion(null, this.modelHomeDir + motionName, function (mtn) {\n motion = mtn;\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n });\n } else {\n motion = this.motions[name];\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n }\n};\n\nLAppModel.prototype.setFadeInFadeOut = function (name, no, priority, motion) {\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));\n motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Start motion : " + motionName);\n\n if (this.modelSetting.getMotionSound(name, no) == null) {\n this.mainMotionManager.startMotionPrio(motion, priority);\n } else {\n var soundName = this.modelSetting.getMotionSound(name, no);\n // var player = new Sound(this.modelHomeDir + soundName);\n\n var snd = document.createElement("audio");\n snd.src = this.modelHomeDir + soundName;\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Start sound : " + soundName);\n\n snd.play();\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n};\n\nLAppModel.prototype.setExpression = function (name) {\n var motion = this.expressions[name];\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log("Expression : " + name);\n\n this.expressionManager.startMotion(motion, false);\n};\n\nLAppModel.prototype.draw = function (gl) {\n //console.log("--\x3e LAppModel.draw()");\n\n // if(this.live2DModel == null) return;\n\n\n _MatrixStack2.default.push();\n\n _MatrixStack2.default.multMatrix(this.modelMatrix.getArray());\n\n this.tmpMatrix = _MatrixStack2.default.getMatrix();\n this.live2DModel.setMatrix(this.tmpMatrix);\n this.live2DModel.draw();\n\n _MatrixStack2.default.pop();\n};\n\nLAppModel.prototype.hitTest = function (id, testX, testY) {\n var len = this.modelSetting.getHitAreaNum();\n for (var i = 0; i < len; i++) {\n if (id == this.modelSetting.getHitAreaName(i)) {\n var drawID = this.modelSetting.getHitAreaID(i);\n\n return this.hitTestSimple(drawID, testX, testY);\n }\n }\n\n return false;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvTEFwcE1vZGVsLmpzPzYxMTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMMkRCYXNlTW9kZWwsIEwyREV5ZUJsaW5rfSBmcm9tIFwiLi9saWIvTGl2ZTJERnJhbWV3b3JrXCJcbmltcG9ydCBNb2RlbFNldHRpbmdKc29uIGZyb20gXCIuL2xpYi9Nb2RlbFNldHRpbmdKc29uXCJcbmltcG9ydCBMQXBwRGVmaW5lIGZyb20gXCIuL0xBcHBEZWZpbmVcIlxuaW1wb3J0IE1hdHJpeFN0YWNrIGZyb20gXCIuL2xpYi9NYXRyaXhTdGFja1wiXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIGNsYXNzIExBcHBNb2RlbCAgICAgZXh0ZW5kcyBMMkRCYXNlTW9kZWwgICAgICAgICBcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTEFwcE1vZGVsKClcbntcbiAgICAvL0wyREJhc2VNb2RlbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIEwyREJhc2VNb2RlbC5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzKTtcbiAgICBcbiAgICB0aGlzLm1vZGVsSG9tZURpciA9IFwiXCI7XG4gICAgdGhpcy5tb2RlbFNldHRpbmcgPSBudWxsO1xuICAgIHRoaXMudG1wTWF0cml4ID0gW107XG59XG5cbkxBcHBNb2RlbC5wcm90b3R5cGUgPSBuZXcgTDJEQmFzZU1vZGVsKCk7XG5cblxuTEFwcE1vZGVsLnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24oZ2wsIG1vZGVsU2V0dGluZ1BhdGgsIGNhbGxiYWNrKVxue1xuICAgIHRoaXMuc2V0VXBkYXRpbmcodHJ1ZSk7XG4gICAgdGhpcy5zZXRJbml0aWFsaXplZChmYWxzZSk7XG5cbiAgICB0aGlzLm1vZGVsSG9tZURpciA9IG1vZGVsU2V0dGluZ1BhdGguc3Vic3RyaW5nKDAsIG1vZGVsU2V0dGluZ1BhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7IFxuXG4gICAgdGhpcy5tb2RlbFNldHRpbmcgPSBuZXcgTW9kZWxTZXR0aW5nSnNvbigpO1xuICAgIFxuICAgIHZhciB0aGlzUmVmID0gdGhpcztcbiAgICBcbiAgICB0aGlzLm1vZGVsU2V0dGluZy5sb2FkTW9kZWxTZXR0aW5nKG1vZGVsU2V0dGluZ1BhdGgsIGZ1bmN0aW9uKCl7XG4gICAgICAgIFxuICAgICAgICB2YXIgcGF0aCA9IHRoaXNSZWYubW9kZWxIb21lRGlyICsgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0TW9kZWxGaWxlKCk7XG4gICAgICAgIHRoaXNSZWYubG9hZE1vZGVsRGF0YShwYXRoLCBmdW5jdGlvbihtb2RlbCl7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0VGV4dHVyZU51bSgpOyBpKyspXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFyIHRleFBhdGhzID0gdGhpc1JlZi5tb2RlbEhvbWVEaXIgKyBcbiAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0VGV4dHVyZUZpbGUoaSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdGhpc1JlZi5sb2FkVGV4dHVyZShpLCB0ZXhQYXRocywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiggdGhpc1JlZi5pc1RleExvYWRlZCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldEV4cHJlc3Npb25OdW0oKSA+IDApXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5leHByZXNzaW9ucyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0RXhwcmVzc2lvbk51bSgpOyBqKyspXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXhwTmFtZSA9IHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldEV4cHJlc3Npb25OYW1lKGopO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXhwRmlsZVBhdGggPSB0aGlzUmVmLm1vZGVsSG9tZURpciArIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0RXhwcmVzc2lvbkZpbGUoaik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLmxvYWRFeHByZXNzaW9uKGV4cE5hbWUsIGV4cEZpbGVQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5leHByZXNzaW9uTWFuYWdlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5leHByZXNzaW9ucyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNSZWYuZXllQmxpbmsgPT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLmV5ZUJsaW5rID0gbmV3IEwyREV5ZUJsaW5rKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldFBoeXNpY3NGaWxlKCkgIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLmxvYWRQaHlzaWNzKHRoaXNSZWYubW9kZWxIb21lRGlyICsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsU2V0dGluZy5nZXRQaHlzaWNzRmlsZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLnBoeXNpY3MgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldFBvc2VGaWxlKCkgIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLmxvYWRQb3NlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsSG9tZURpciArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldFBvc2VGaWxlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5wb3NlLnVwZGF0ZVBhcmFtKHRoaXNSZWYubGl2ZTJETW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLnBvc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldExheW91dCgpICE9IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxheW91dCA9IHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldExheW91dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRbXCJ3aWR0aFwiXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsTWF0cml4LnNldFdpZHRoKGxheW91dFtcIndpZHRoXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0W1wiaGVpZ2h0XCJdICE9IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYubW9kZWxNYXRyaXguc2V0SGVpZ2h0KGxheW91dFtcImhlaWdodFwiXSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0W1wieFwiXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsTWF0cml4LnNldFgobGF5b3V0W1wieFwiXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheW91dFtcInlcIl0gIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbE1hdHJpeC5zZXRZKGxheW91dFtcInlcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRbXCJjZW50ZXJfeFwiXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsTWF0cml4LmNlbnRlclgobGF5b3V0W1wiY2VudGVyX3hcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRbXCJjZW50ZXJfeVwiXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsTWF0cml4LmNlbnRlclkobGF5b3V0W1wiY2VudGVyX3lcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRbXCJ0b3BcIl0gIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbE1hdHJpeC50b3AobGF5b3V0W1widG9wXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0W1wiYm90dG9tXCJdICE9IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYubW9kZWxNYXRyaXguYm90dG9tKGxheW91dFtcImJvdHRvbVwiXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheW91dFtcImxlZnRcIl0gIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbE1hdHJpeC5sZWZ0KGxheW91dFtcImxlZnRcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRbXCJyaWdodFwiXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsTWF0cml4LnJpZ2h0KGxheW91dFtcInJpZ2h0XCJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzUmVmLm1vZGVsU2V0dGluZy5nZXRJbml0UGFyYW1OdW0oKTsgaisrKVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYubGl2ZTJETW9kZWwuc2V0UGFyYW1GbG9hdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0SW5pdFBhcmFtSUQoaiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldEluaXRQYXJhbVZhbHVlKGopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzUmVmLm1vZGVsU2V0dGluZy5nZXRJbml0UGFydHNWaXNpYmxlTnVtKCk7IGorKylcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLmxpdmUyRE1vZGVsLnNldFBhcnRzT3BhY2l0eShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tb2RlbFNldHRpbmcuZ2V0SW5pdFBhcnRzVmlzaWJsZUlEKGopLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLm1vZGVsU2V0dGluZy5nZXRJbml0UGFydHNWaXNpYmxlVmFsdWUoailcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5saXZlMkRNb2RlbC5zYXZlUGFyYW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXNSZWYubGl2ZTJETW9kZWwuc2V0R0woZ2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNSZWYucHJlbG9hZE1vdGlvbkdyb3VwKExBcHBEZWZpbmUuTU9USU9OX0dST1VQX0lETEUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1JlZi5tYWluTW90aW9uTWFuYWdlci5zdG9wQWxsTW90aW9ucygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLnNldFVwZGF0aW5nKGZhbHNlKTsgXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzUmVmLnNldEluaXRpYWxpemVkKHRydWUpOyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSBcImZ1bmN0aW9uXCIpIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cblxuXG5MQXBwTW9kZWwucHJvdG90eXBlLnJlbGVhc2UgPSBmdW5jdGlvbihnbClcbntcbiAgICAvLyB0aGlzLmxpdmUyRE1vZGVsLmRlbGV0ZVRleHR1cmVzKCk7XG4gICAgdmFyIHBtID0gTGl2ZTJERnJhbWV3b3JrLmdldFBsYXRmb3JtTWFuYWdlcigpO1xuXG4gICAgZ2wuZGVsZXRlVGV4dHVyZShwbS50ZXh0dXJlKTtcbn1cblxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUucHJlbG9hZE1vdGlvbkdyb3VwID0gZnVuY3Rpb24obmFtZSlcbntcbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XG4gICAgXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1vZGVsU2V0dGluZy5nZXRNb3Rpb25OdW0obmFtZSk7IGkrKylcbiAgICB7XG4gICAgICAgIHZhciBmaWxlID0gdGhpcy5tb2RlbFNldHRpbmcuZ2V0TW90aW9uRmlsZShuYW1lLCBpKTtcbiAgICAgICAgdGhpcy5sb2FkTW90aW9uKGZpbGUsIHRoaXMubW9kZWxIb21lRGlyICsgZmlsZSwgZnVuY3Rpb24obW90aW9uKSB7XG4gICAgICAgICAgICBtb3Rpb24uc2V0RmFkZUluKHRoaXNSZWYubW9kZWxTZXR0aW5nLmdldE1vdGlvbkZhZGVJbihuYW1lLCBpKSk7XG4gICAgICAgICAgICBtb3Rpb24uc2V0RmFkZU91dCh0aGlzUmVmLm1vZGVsU2V0dGluZy5nZXRNb3Rpb25GYWRlT3V0KG5hbWUsIGkpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgIH1cbn1cblxuXG5MQXBwTW9kZWwucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKClcbntcbiAgICAvLyBjb25zb2xlLmxvZyhcIi0tPiBMQXBwTW9kZWwudXBkYXRlKClcIik7XG5cbiAgICBpZih0aGlzLmxpdmUyRE1vZGVsID09IG51bGwpIFxuICAgIHtcbiAgICAgICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTE9HKSBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHVwZGF0ZS5cIik7XG4gICAgICAgIFxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHZhciB0aW1lTVNlYyA9IFV0U3lzdGVtLmdldFVzZXJUaW1lTVNlYygpIC0gdGhpcy5zdGFydFRpbWVNU2VjO1xuICAgIHZhciB0aW1lU2VjID0gdGltZU1TZWMgLyAxMDAwLjA7XG4gICAgdmFyIHQgPSB0aW1lU2VjICogMiAqIE1hdGguUEk7IFxuICAgIFxuICAgIFxuICAgIGlmICh0aGlzLm1haW5Nb3Rpb25NYW5hZ2VyLmlzRmluaXNoZWQoKSlcbiAgICB7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnN0YXJ0UmFuZG9tTW90aW9uKExBcHBEZWZpbmUuTU9USU9OX0dST1VQX0lETEUsIExBcHBEZWZpbmUuUFJJT1JJVFlfSURMRSk7XG4gICAgfVxuICAgIFxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cdFx0XG4gICAgXG4gICAgXG4gICAgdGhpcy5saXZlMkRNb2RlbC5sb2FkUGFyYW0oKTtcbiAgICBcbiAgICBcbiAgICBcbiAgICB2YXIgdXBkYXRlID0gdGhpcy5tYWluTW90aW9uTWFuYWdlci51cGRhdGVQYXJhbSh0aGlzLmxpdmUyRE1vZGVsKTsgXG4gICAgaWYgKCF1cGRhdGUpIHtcbiAgICAgICAgXG4gICAgICAgIGlmKHRoaXMuZXllQmxpbmsgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5leWVCbGluay51cGRhdGVQYXJhbSh0aGlzLmxpdmUyRE1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuICAgIHRoaXMubGl2ZTJETW9kZWwuc2F2ZVBhcmFtKCk7XG4gICAgXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0XHRcbiAgICBcbiAgICBcbiAgICBpZiAodGhpcy5leHByZXNzaW9uTWFuYWdlciAhPSBudWxsICYmIFxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zICE9IG51bGwgJiYgXG4gICAgICAgICF0aGlzLmV4cHJlc3Npb25NYW5hZ2VyLmlzRmluaXNoZWQoKSlcbiAgICB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbk1hbmFnZXIudXBkYXRlUGFyYW0odGhpcy5saXZlMkRNb2RlbCk7IFxuICAgIH1cblxuICAgIFxuICAgIFxuICAgIHRoaXMubGl2ZTJETW9kZWwuYWRkVG9QYXJhbUZsb2F0KFwiUEFSQU1fQU5HTEVfWFwiLCB0aGlzLmRyYWdYICogMzAsIDEpOyBcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmFkZFRvUGFyYW1GbG9hdChcIlBBUkFNX0FOR0xFX1lcIiwgdGhpcy5kcmFnWSAqIDMwLCAxKTtcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmFkZFRvUGFyYW1GbG9hdChcIlBBUkFNX0FOR0xFX1pcIiwgKHRoaXMuZHJhZ1ggKiB0aGlzLmRyYWdZKSAqIC0zMCwgMSk7XG5cbiAgICBcbiAgICBcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmFkZFRvUGFyYW1GbG9hdChcIlBBUkFNX0JPRFlfQU5HTEVfWFwiLCB0aGlzLmRyYWdYKjEwLCAxKTsgXG5cbiAgICBcbiAgICBcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmFkZFRvUGFyYW1GbG9hdChcIlBBUkFNX0VZRV9CQUxMX1hcIiwgdGhpcy5kcmFnWCwgMSk7IFxuICAgIHRoaXMubGl2ZTJETW9kZWwuYWRkVG9QYXJhbUZsb2F0KFwiUEFSQU1fRVlFX0JBTExfWVwiLCB0aGlzLmRyYWdZLCAxKTtcblxuXG4gICAgXG4gICAgdGhpcy5saXZlMkRNb2RlbC5hZGRUb1BhcmFtRmxvYXQoXCJQQVJBTV9BTkdMRV9YXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlcigoMTUgKiBNYXRoLnNpbih0IC8gNi41MzQ1KSkpLCAwLjUpO1xuICAgIHRoaXMubGl2ZTJETW9kZWwuYWRkVG9QYXJhbUZsb2F0KFwiUEFSQU1fQU5HTEVfWVwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIoKDggKiBNYXRoLnNpbih0IC8gMy41MzQ1KSkpLCAwLjUpO1xuICAgIHRoaXMubGl2ZTJETW9kZWwuYWRkVG9QYXJhbUZsb2F0KFwiUEFSQU1fQU5HTEVfWlwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIoKDEwICogTWF0aC5zaW4odCAvIDUuNTM0NSkpKSwgMC41KTtcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmFkZFRvUGFyYW1GbG9hdChcIlBBUkFNX0JPRFlfQU5HTEVfWFwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIoKDQgKiBNYXRoLnNpbih0IC8gMTUuNTM0NSkpKSwgMC41KTtcbiAgICB0aGlzLmxpdmUyRE1vZGVsLnNldFBhcmFtRmxvYXQoXCJQQVJBTV9CUkVBVEhcIiwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlcigoMC41ICsgMC41ICogTWF0aC5zaW4odCAvIDMuMjM0NSkpKSwgMSk7XG4gICAgXG4gICAgXG4gICAgaWYgKHRoaXMucGh5c2ljcyAhPSBudWxsKVxuICAgIHtcbiAgICAgICAgdGhpcy5waHlzaWNzLnVwZGF0ZVBhcmFtKHRoaXMubGl2ZTJETW9kZWwpOyBcbiAgICB9XG4gICAgXG4gICAgXG4gICAgaWYgKHRoaXMubGlwU3luYyA9PSBudWxsKVxuICAgIHtcbiAgICAgICAgdGhpcy5saXZlMkRNb2RlbC5zZXRQYXJhbUZsb2F0KFwiUEFSQU1fTU9VVEhfT1BFTl9ZXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpcFN5bmNWYWx1ZSk7XG4gICAgfVxuICAgIFxuICAgIFxuICAgIGlmKCB0aGlzLnBvc2UgIT0gbnVsbCApIHtcbiAgICAgICAgdGhpcy5wb3NlLnVwZGF0ZVBhcmFtKHRoaXMubGl2ZTJETW9kZWwpO1xuICAgIH1cbiAgICAgICAgXG4gICAgdGhpcy5saXZlMkRNb2RlbC51cGRhdGUoKTtcbn07XG5cblxuXG5MQXBwTW9kZWwucHJvdG90eXBlLnNldFJhbmRvbUV4cHJlc3Npb24gPSBmdW5jdGlvbigpXG57XG4gICAgdmFyIHRtcCA9IFtdO1xuICAgIGZvciAodmFyIG5hbWUgaW4gdGhpcy5leHByZXNzaW9ucylcbiAgICB7XG4gICAgICAgIHRtcC5wdXNoKG5hbWUpO1xuICAgIH1cblxuICAgIHZhciBubyA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkgKiB0bXAubGVuZ3RoKTtcblxuICAgIHRoaXMuc2V0RXhwcmVzc2lvbih0bXBbbm9dKTtcbn1cblxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUuc3RhcnRSYW5kb21Nb3Rpb24gPSBmdW5jdGlvbihuYW1lLCBwcmlvcml0eSlcbntcbiAgICB2YXIgbWF4ID0gdGhpcy5tb2RlbFNldHRpbmcuZ2V0TW90aW9uTnVtKG5hbWUpO1xuICAgIHZhciBubyA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkgKiBtYXgpO1xuICAgIHRoaXMuc3RhcnRNb3Rpb24obmFtZSwgbm8sIHByaW9yaXR5KTtcbn1cblxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUuc3RhcnRNb3Rpb24gPSBmdW5jdGlvbihuYW1lLCBubywgcHJpb3JpdHkpXG57XG4gICAgLy8gY29uc29sZS5sb2coXCJzdGFydE1vdGlvbiA6IFwiICsgbmFtZSArIFwiIFwiICsgbm8gKyBcIiBcIiArIHByaW9yaXR5KTtcbiAgICBcbiAgICB2YXIgbW90aW9uTmFtZSA9IHRoaXMubW9kZWxTZXR0aW5nLmdldE1vdGlvbkZpbGUobmFtZSwgbm8pO1xuICAgIFxuICAgIGlmIChtb3Rpb25OYW1lID09IG51bGwgfHwgbW90aW9uTmFtZSA9PSBcIlwiKVxuICAgIHtcbiAgICAgICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTE9HKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBtb3Rpb24uXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByaW9yaXR5ID09IExBcHBEZWZpbmUuUFJJT1JJVFlfRk9SQ0UpIFxuICAgIHtcbiAgICAgICAgdGhpcy5tYWluTW90aW9uTWFuYWdlci5zZXRSZXNlcnZlUHJpb3JpdHkocHJpb3JpdHkpO1xuICAgIH1cbiAgICBlbHNlIGlmICghdGhpcy5tYWluTW90aW9uTWFuYWdlci5yZXNlcnZlTW90aW9uKHByaW9yaXR5KSlcbiAgICB7XG4gICAgICAgIGlmIChMQXBwRGVmaW5lLkRFQlVHX0xPRylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTW90aW9uIGlzIHJ1bm5pbmcuXCIpXG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XG4gICAgdmFyIG1vdGlvbjtcblxuICAgIGlmICh0aGlzLm1vdGlvbnNbbmFtZV0gPT0gbnVsbCkgXG4gICAge1xuICAgICAgICB0aGlzLmxvYWRNb3Rpb24obnVsbCwgdGhpcy5tb2RlbEhvbWVEaXIgKyBtb3Rpb25OYW1lLCBmdW5jdGlvbihtdG4pIHtcbiAgICAgICAgICAgIG1vdGlvbiA9IG10bjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzUmVmLnNldEZhZGVJbkZhZGVPdXQobmFtZSwgbm8sIHByaW9yaXR5LCBtb3Rpb24pO1xuICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIFxuICAgIHtcbiAgICAgICAgbW90aW9uID0gdGhpcy5tb3Rpb25zW25hbWVdO1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIHRoaXNSZWYuc2V0RmFkZUluRmFkZU91dChuYW1lLCBubywgcHJpb3JpdHksIG1vdGlvbik7XG4gICAgfVxufVxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUuc2V0RmFkZUluRmFkZU91dCA9IGZ1bmN0aW9uKG5hbWUsIG5vLCBwcmlvcml0eSwgbW90aW9uKVxue1xuICAgIHZhciBtb3Rpb25OYW1lID0gdGhpcy5tb2RlbFNldHRpbmcuZ2V0TW90aW9uRmlsZShuYW1lLCBubyk7XG4gICAgXG4gICAgbW90aW9uLnNldEZhZGVJbih0aGlzLm1vZGVsU2V0dGluZy5nZXRNb3Rpb25GYWRlSW4obmFtZSwgbm8pKTtcbiAgICBtb3Rpb24uc2V0RmFkZU91dCh0aGlzLm1vZGVsU2V0dGluZy5nZXRNb3Rpb25GYWRlT3V0KG5hbWUsIG5vKSk7XG4gICAgXG4gICAgXG4gICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTE9HKVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJTdGFydCBtb3Rpb24gOiBcIiArIG1vdGlvbk5hbWUpO1xuXG4gICAgaWYgKHRoaXMubW9kZWxTZXR0aW5nLmdldE1vdGlvblNvdW5kKG5hbWUsIG5vKSA9PSBudWxsKVxuICAgIHtcbiAgICAgICAgdGhpcy5tYWluTW90aW9uTWFuYWdlci5zdGFydE1vdGlvblByaW8obW90aW9uLCBwcmlvcml0eSk7XG4gICAgfVxuICAgIGVsc2VcbiAgICB7XG4gICAgICAgIHZhciBzb3VuZE5hbWUgPSB0aGlzLm1vZGVsU2V0dGluZy5nZXRNb3Rpb25Tb3VuZChuYW1lLCBubyk7XG4gICAgICAgIC8vIHZhciBwbGF5ZXIgPSBuZXcgU291bmQodGhpcy5tb2RlbEhvbWVEaXIgKyBzb3VuZE5hbWUpO1xuICAgICAgICBcbiAgICAgICAgdmFyIHNuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhdWRpb1wiKTtcbiAgICAgICAgc25kLnNyYyA9IHRoaXMubW9kZWxIb21lRGlyICsgc291bmROYW1lO1xuICAgICAgICBcbiAgICAgICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTE9HKVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJTdGFydCBzb3VuZCA6IFwiICsgc291bmROYW1lKTtcbiAgICAgICAgXG4gICAgICAgIHNuZC5wbGF5KCk7XG4gICAgICAgIHRoaXMubWFpbk1vdGlvbk1hbmFnZXIuc3RhcnRNb3Rpb25QcmlvKG1vdGlvbiwgcHJpb3JpdHkpO1xuICAgIH1cbn1cblxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUuc2V0RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKG5hbWUpXG57XG4gICAgdmFyIG1vdGlvbiA9IHRoaXMuZXhwcmVzc2lvbnNbbmFtZV07XG4gICAgXG4gICAgaWYgKExBcHBEZWZpbmUuREVCVUdfTE9HKVxuICAgICAgICBjb25zb2xlLmxvZyhcIkV4cHJlc3Npb24gOiBcIiArIG5hbWUpO1xuICAgICAgICBcbiAgICB0aGlzLmV4cHJlc3Npb25NYW5hZ2VyLnN0YXJ0TW90aW9uKG1vdGlvbiwgZmFsc2UpO1xufVxuXG5cblxuTEFwcE1vZGVsLnByb3RvdHlwZS5kcmF3ID0gZnVuY3Rpb24oZ2wpXG57XG4gICAgLy9jb25zb2xlLmxvZyhcIi0tPiBMQXBwTW9kZWwuZHJhdygpXCIpO1xuICAgIFxuICAgIC8vIGlmKHRoaXMubGl2ZTJETW9kZWwgPT0gbnVsbCkgcmV0dXJuO1xuICAgIFxuICAgIFxuICAgIE1hdHJpeFN0YWNrLnB1c2goKTtcbiAgICBcbiAgICBNYXRyaXhTdGFjay5tdWx0TWF0cml4KHRoaXMubW9kZWxNYXRyaXguZ2V0QXJyYXkoKSk7XG4gICAgXG4gICAgdGhpcy50bXBNYXRyaXggPSBNYXRyaXhTdGFjay5nZXRNYXRyaXgoKVxuICAgIHRoaXMubGl2ZTJETW9kZWwuc2V0TWF0cml4KHRoaXMudG1wTWF0cml4KTtcbiAgICB0aGlzLmxpdmUyRE1vZGVsLmRyYXcoKTtcbiAgICBcbiAgICBNYXRyaXhTdGFjay5wb3AoKTtcbiAgICBcbn07XG4gICAgICAgIFxuXG5cbkxBcHBNb2RlbC5wcm90b3R5cGUuaGl0VGVzdCA9IGZ1bmN0aW9uKGlkLCB0ZXN0WCwgdGVzdFkpXG57XG4gICAgdmFyIGxlbiA9IHRoaXMubW9kZWxTZXR0aW5nLmdldEhpdEFyZWFOdW0oKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKVxuICAgIHsgICAgICAgIFxuICAgICAgICBpZiAoaWQgPT0gdGhpcy5tb2RlbFNldHRpbmcuZ2V0SGl0QXJlYU5hbWUoaSkpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhciBkcmF3SUQgPSB0aGlzLm1vZGVsU2V0dGluZy5nZXRIaXRBcmVhSUQoaSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpdFRlc3RTaW1wbGUoZHJhd0lELCB0ZXN0WCwgdGVzdFkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBmYWxzZTsgXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9MQXBwTW9kZWwuanMiXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUE7QUFDQTtBQVhBO0FBQ0E7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUlBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n')},/*!********************************!*\ - !*** ./src/PlatformManager.js ***! - \********************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.default = PlatformManager;\n\nvar _webglcontext = __webpack_require__(/*! ./webglcontext */ 3);\n\n//============================================================\n//============================================================\n// class PlatformManager extend IPlatformManager\n//============================================================\n//============================================================\nfunction PlatformManager() {}\n\n//============================================================\n// PlatformManager # loadBytes()\n//============================================================\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\nPlatformManager.prototype.loadBytes = function (path /*String*/, callback) {\n var request = new XMLHttpRequest();\n request.open("GET", path, true);\n request.responseType = "arraybuffer";\n request.onload = function () {\n switch (request.status) {\n case 200:\n callback(request.response);\n break;\n default:\n console.error("Failed to load (" + request.status + ") : " + path);\n break;\n }\n };\n request.send(null);\n //return request;\n};\n\n//============================================================\n// PlatformManager # loadString()\n//============================================================\nPlatformManager.prototype.loadString = function (path /*String*/) {\n\n this.loadBytes(path, function (buf) {\n return buf;\n });\n};\n\n//============================================================\n// PlatformManager # loadLive2DModel()\n//============================================================\nPlatformManager.prototype.loadLive2DModel = function (path /*String*/, callback) {\n var model = null;\n\n // load moc\n this.loadBytes(path, function (buf) {\n model = Live2DModelWebGL.loadModel(buf);\n callback(model);\n });\n};\n\n//============================================================\n// PlatformManager # loadTexture()\n//============================================================\nPlatformManager.prototype.loadTexture = function (model /*ALive2DModel*/, no /*int*/, path /*String*/, callback) {\n // load textures\n var loadedImage = new Image();\n loadedImage.src = path;\n\n var thisRef = this;\n loadedImage.onload = function () {\n // create texture\n var gl = (0, _webglcontext.getContext)();\n var texture = gl.createTexture();\n if (!texture) {\n console.error("Failed to generate gl texture name.");return -1;\n }\n\n if (model.isPremultipliedAlpha() == false) {\n // 乗算済アルファテクスチャ以外の場合\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n }\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, loadedImage);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n model.setTexture(no, texture);\n\n // テクスチャオブジェクトを解放\n texture = null;\n\n if (typeof callback == "function") callback();\n };\n\n loadedImage.onerror = function () {\n console.error("Failed to load image : " + path);\n };\n};\n\n//============================================================\n// PlatformManager # parseFromBytes(buf)\n\n//============================================================\nPlatformManager.prototype.jsonParseFromBytes = function (buf) {\n\n var jsonStr;\n\n var bomCode = new Uint8Array(buf, 0, 3);\n if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3));\n } else {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n\n var jsonObj = JSON.parse(jsonStr);\n\n return jsonObj;\n};\n\n//============================================================\n// PlatformManager # log()\n//============================================================\nPlatformManager.prototype.log = function (txt /*String*/) {\n //console.log(txt);\n};\n\nfunction getWebGLContext(canvas) {\n var NAMES = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvUGxhdGZvcm1NYW5hZ2VyLmpzP2IzOGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogIFlvdSBjYW4gbW9kaWZ5IGFuZCB1c2UgdGhpcyBzb3VyY2UgZnJlZWx5XG4gKiAgb25seSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIGFwcGxpY2F0aW9uIHJlbGF0ZWQgTGl2ZTJELlxuICpcbiAqICAoYykgTGl2ZTJEIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHtnZXRDb250ZXh0fSBmcm9tIFwiLi93ZWJnbGNvbnRleHRcIlxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBjbGFzcyBQbGF0Zm9ybU1hbmFnZXIgICAgIGV4dGVuZCBJUGxhdGZvcm1NYW5hZ2VyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsYXRmb3JtTWFuYWdlcigpXG57XG5cbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgIFBsYXRmb3JtTWFuYWdlciAjIGxvYWRCeXRlcygpXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUGxhdGZvcm1NYW5hZ2VyLnByb3RvdHlwZS5sb2FkQnl0ZXMgICAgICAgPSBmdW5jdGlvbihwYXRoLypTdHJpbmcqLywgY2FsbGJhY2spXG57XG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICByZXF1ZXN0Lm9wZW4oXCJHRVRcIiwgcGF0aCwgdHJ1ZSk7XG4gICAgcmVxdWVzdC5yZXNwb25zZVR5cGUgPSBcImFycmF5YnVmZmVyXCI7XG4gICAgcmVxdWVzdC5vbmxvYWQgPSBmdW5jdGlvbigpe1xuICAgICAgICBzd2l0Y2gocmVxdWVzdC5zdGF0dXMpe1xuICAgICAgICBjYXNlIDIwMDpcbiAgICAgICAgICAgIGNhbGxiYWNrKHJlcXVlc3QucmVzcG9uc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGxvYWQgKFwiICsgcmVxdWVzdC5zdGF0dXMgKyBcIikgOiBcIiArIHBhdGgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVxdWVzdC5zZW5kKG51bGwpO1xuICAgIC8vcmV0dXJuIHJlcXVlc3Q7XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICBQbGF0Zm9ybU1hbmFnZXIgIyBsb2FkU3RyaW5nKClcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5QbGF0Zm9ybU1hbmFnZXIucHJvdG90eXBlLmxvYWRTdHJpbmcgICAgICA9IGZ1bmN0aW9uKHBhdGgvKlN0cmluZyovKVxue1xuICAgIFxuICAgIHRoaXMubG9hZEJ5dGVzKHBhdGgsIGZ1bmN0aW9uKGJ1ZikgeyAgICAgICAgXG4gICAgICAgIHJldHVybiBidWY7XG4gICAgfSk7XG4gICAgXG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICBQbGF0Zm9ybU1hbmFnZXIgIyBsb2FkTGl2ZTJETW9kZWwoKVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBsYXRmb3JtTWFuYWdlci5wcm90b3R5cGUubG9hZExpdmUyRE1vZGVsID0gZnVuY3Rpb24ocGF0aC8qU3RyaW5nKi8sIGNhbGxiYWNrKVxue1xuICAgIHZhciBtb2RlbCA9IG51bGw7XG4gICAgXG4gICAgLy8gbG9hZCBtb2NcbiAgICB0aGlzLmxvYWRCeXRlcyhwYXRoLCBmdW5jdGlvbihidWYpe1xuICAgICAgICBtb2RlbCA9IExpdmUyRE1vZGVsV2ViR0wubG9hZE1vZGVsKGJ1Zik7XG4gICAgICAgIGNhbGxiYWNrKG1vZGVsKTtcbiAgICB9KTtcblxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAgUGxhdGZvcm1NYW5hZ2VyICMgbG9hZFRleHR1cmUoKVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBsYXRmb3JtTWFuYWdlci5wcm90b3R5cGUubG9hZFRleHR1cmUgICAgID0gZnVuY3Rpb24obW9kZWwvKkFMaXZlMkRNb2RlbCovLCBuby8qaW50Ki8sIHBhdGgvKlN0cmluZyovLCBjYWxsYmFjaylcbnsgXG4gICAgLy8gbG9hZCB0ZXh0dXJlc1xuICAgIHZhciBsb2FkZWRJbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGxvYWRlZEltYWdlLnNyYyA9IHBhdGg7XG4gICAgICAgIFxuICAgIHZhciB0aGlzUmVmID0gdGhpcztcbiAgICBsb2FkZWRJbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gY3JlYXRlIHRleHR1cmVcbiAgICAgICAgdmFyIGdsID0gZ2V0Q29udGV4dCgpO1xuICAgICAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTtcdCBcbiAgICAgICAgaWYgKCF0ZXh0dXJlKXsgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBnZW5lcmF0ZSBnbCB0ZXh0dXJlIG5hbWUuXCIpOyByZXR1cm4gLTE7IH1cblxuICAgICAgICBpZihtb2RlbC5pc1ByZW11bHRpcGxpZWRBbHBoYSgpID09IGZhbHNlKXtcbiAgICAgICAgICAgIC8vIOS5l+eul+a4iOOCouODq+ODleOCoeODhuOCr+OCueODgeODo+S7peWkluOBruWgtOWQiFxuICAgICAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCAxKTtcbiAgICAgICAgfVxuICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCAxKTtcdFxuICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKTtcbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7XG4gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgXG4gICAgICAgICAgICAgICAgICAgICAgZ2wuVU5TSUdORURfQllURSwgbG9hZGVkSW1hZ2UpO1xuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTtcbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCk7XG4gICAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpO1xuXG5cbiAgICAgICAgXG4gICAgICAgIG1vZGVsLnNldFRleHR1cmUobm8sIHRleHR1cmUpO1xuICAgICAgICBcbiAgICAgICAgLy8g44OG44Kv44K544OB44Oj44Kq44OW44K444Kn44Kv44OI44KS6Kej5pS+XG4gICAgICAgIHRleHR1cmUgPSBudWxsO1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSBcImZ1bmN0aW9uXCIpIGNhbGxiYWNrKCk7XG4gICAgfTtcbiAgICBcbiAgICBsb2FkZWRJbWFnZS5vbmVycm9yID0gZnVuY3Rpb24oKSB7IFxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgOiBcIiArIHBhdGgpOyBcbiAgICB9XG59XG5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgIFBsYXRmb3JtTWFuYWdlciAjIHBhcnNlRnJvbUJ5dGVzKGJ1ZilcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBsYXRmb3JtTWFuYWdlci5wcm90b3R5cGUuanNvblBhcnNlRnJvbUJ5dGVzID0gZnVuY3Rpb24oYnVmKXtcbiAgICBcbiAgICB2YXIganNvblN0cjtcbiAgICBcbiAgICBcbiAgICBcbiAgICB2YXIgYm9tQ29kZSA9IG5ldyBVaW50OEFycmF5KGJ1ZiwgMCwgMyk7XG4gICAgaWYgKGJvbUNvZGVbMF0gPT0gMjM5ICYmIGJvbUNvZGVbMV0gPT0gMTg3ICYmIGJvbUNvZGVbMl0gPT0gMTkxKSB7XG4gICAgICAgIGpzb25TdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGJ1ZiwgMykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGpzb25TdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGJ1ZikpO1xuICAgIH1cbiAgICBcbiAgICB2YXIganNvbk9iaiA9IEpTT04ucGFyc2UoanNvblN0cik7XG4gICAgXG4gICAgcmV0dXJuIGpzb25PYmo7XG59O1xuXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICBQbGF0Zm9ybU1hbmFnZXIgIyBsb2coKVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBsYXRmb3JtTWFuYWdlci5wcm90b3R5cGUubG9nICAgICAgICAgICAgID0gZnVuY3Rpb24odHh0LypTdHJpbmcqLylcbntcbiAgICAvL2NvbnNvbGUubG9nKHR4dCk7XG59XG5cbmZ1bmN0aW9uIGdldFdlYkdMQ29udGV4dChjYW52YXMpXG57XG4gICAgdmFyIE5BTUVTID0gWyBcIndlYmdsXCIgLCBcImV4cGVyaW1lbnRhbC13ZWJnbFwiICwgXCJ3ZWJraXQtM2RcIiAsIFwibW96LXdlYmdsXCJdO1xuICAgIGZvciggdmFyIGkgPSAwOyBpIDwgTkFNRVMubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgdHJ5e1xuICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KE5BTUVTW2ldLCB7cHJlbXVsdGlwbGllZEFscGhhIDogdHJ1ZX0pO1xuICAgICAgICAgICAgaWYoY3R4KSByZXR1cm4gY3R4O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoKGUpe31cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvUGxhdGZvcm1NYW5hZ2VyLmpzIl0sIm1hcHBpbmdzIjoiOzs7OztBQWNBO0FBQ0E7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFyQkE7Ozs7Ozs7QUFzQkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n')},/*!*************************************!*\ - !*** ./src/lib/ModelSettingJson.js ***! - \*************************************/ -function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.default = ModelSettingJson;\n\nvar _Live2DFramework = __webpack_require__(/*! ./Live2DFramework */ 0);\n\nfunction ModelSettingJson() {\n this.NAME = "name";\n this.ID = "id";\n this.MODEL = "model";\n this.TEXTURES = "textures";\n this.HIT_AREAS = "hit_areas";\n this.PHYSICS = "physics";\n this.POSE = "pose";\n this.EXPRESSIONS = "expressions";\n this.MOTION_GROUPS = "motions";\n this.SOUND = "sound";\n this.FADE_IN = "fade_in";\n this.FADE_OUT = "fade_out";\n this.LAYOUT = "layout";\n this.INIT_PARAM = "init_param";\n this.INIT_PARTS_VISIBLE = "init_parts_visible";\n this.VALUE = "val";\n this.FILE = "file";\n\n this.json = {};\n}\n\nModelSettingJson.prototype.loadModelSetting = function (path, callback) {\n var thisRef = this;\n var pm = _Live2DFramework.Live2DFramework.getPlatformManager();\n pm.loadBytes(path, function (buf) {\n var str = String.fromCharCode.apply(null, new Uint8Array(buf));\n thisRef.json = JSON.parse(str);\n callback();\n });\n};\n\nModelSettingJson.prototype.getTextureFile = function (n) {\n if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null) return null;\n\n return this.json[this.TEXTURES][n];\n};\n\nModelSettingJson.prototype.getModelFile = function () {\n return this.json[this.MODEL];\n};\n\nModelSettingJson.prototype.getTextureNum = function () {\n if (this.json[this.TEXTURES] == null) return 0;\n\n return this.json[this.TEXTURES].length;\n};\n\nModelSettingJson.prototype.getHitAreaNum = function () {\n if (this.json[this.HIT_AREAS] == null) return 0;\n\n return this.json[this.HIT_AREAS].length;\n};\n\nModelSettingJson.prototype.getHitAreaID = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.ID];\n};\n\nModelSettingJson.prototype.getHitAreaName = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getPhysicsFile = function () {\n return this.json[this.PHYSICS];\n};\n\nModelSettingJson.prototype.getPoseFile = function () {\n return this.json[this.POSE];\n};\n\nModelSettingJson.prototype.getExpressionNum = function () {\n return this.json[this.EXPRESSIONS] == null ? 0 : this.json[this.EXPRESSIONS].length;\n};\n\nModelSettingJson.prototype.getExpressionFile = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.FILE];\n};\n\nModelSettingJson.prototype.getExpressionName = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getLayout = function () {\n return this.json[this.LAYOUT];\n};\n\nModelSettingJson.prototype.getInitParamNum = function () {\n return this.json[this.INIT_PARAM] == null ? 0 : this.json[this.INIT_PARAM].length;\n};\n\nModelSettingJson.prototype.getMotionNum = function (name) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null) return 0;\n\n return this.json[this.MOTION_GROUPS][name].length;\n};\n\nModelSettingJson.prototype.getMotionFile = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FILE];\n};\n\nModelSettingJson.prototype.getMotionSound = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.SOUND];\n};\n\nModelSettingJson.prototype.getMotionFadeIn = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN];\n};\n\nModelSettingJson.prototype.getMotionFadeOut = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT];\n};\n\nModelSettingJson.prototype.getInitParamID = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return null;\n\n return this.json[this.INIT_PARAM][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitParamValue = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return NaN;\n\n return this.json[this.INIT_PARAM][n][this.VALUE];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleNum = function () {\n return this.json[this.INIT_PARTS_VISIBLE] == null ? 0 : this.json[this.INIT_PARTS_VISIBLE].length;\n};\n\nModelSettingJson.prototype.getInitPartsVisibleID = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return null;\n return this.json[this.INIT_PARTS_VISIBLE][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleValue = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return NaN;\n\n return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvbGliL01vZGVsU2V0dGluZ0pzb24uanM/NzdjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpdmUyREZyYW1ld29ya30gZnJvbSBcIi4vTGl2ZTJERnJhbWV3b3JrXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW9kZWxTZXR0aW5nSnNvbigpXG57ICAgIFxuICAgIHRoaXMuTkFNRSA9IFwibmFtZVwiO1xuICAgIHRoaXMuSUQgPSBcImlkXCI7XG4gICAgdGhpcy5NT0RFTCA9IFwibW9kZWxcIjtcbiAgICB0aGlzLlRFWFRVUkVTID0gXCJ0ZXh0dXJlc1wiO1xuICAgIHRoaXMuSElUX0FSRUFTID0gXCJoaXRfYXJlYXNcIjtcbiAgICB0aGlzLlBIWVNJQ1MgPSBcInBoeXNpY3NcIjtcbiAgICB0aGlzLlBPU0UgPSBcInBvc2VcIjtcbiAgICB0aGlzLkVYUFJFU1NJT05TID0gXCJleHByZXNzaW9uc1wiO1xuICAgIHRoaXMuTU9USU9OX0dST1VQUyA9IFwibW90aW9uc1wiO1xuICAgIHRoaXMuU09VTkQgPSBcInNvdW5kXCI7XG4gICAgdGhpcy5GQURFX0lOID0gXCJmYWRlX2luXCI7XG4gICAgdGhpcy5GQURFX09VVCA9IFwiZmFkZV9vdXRcIjtcbiAgICB0aGlzLkxBWU9VVCA9IFwibGF5b3V0XCI7XG4gICAgdGhpcy5JTklUX1BBUkFNID0gXCJpbml0X3BhcmFtXCI7XG4gICAgdGhpcy5JTklUX1BBUlRTX1ZJU0lCTEUgPSBcImluaXRfcGFydHNfdmlzaWJsZVwiO1xuICAgIHRoaXMuVkFMVUUgPSBcInZhbFwiO1xuICAgIHRoaXMuRklMRSA9IFwiZmlsZVwiO1xuXG4gICAgdGhpcy5qc29uID0ge307XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUubG9hZE1vZGVsU2V0dGluZyA9IGZ1bmN0aW9uKHBhdGgsIGNhbGxiYWNrKVxueyAgICBcbiAgICB2YXIgdGhpc1JlZiA9IHRoaXM7XG4gICAgdmFyIHBtID0gTGl2ZTJERnJhbWV3b3JrLmdldFBsYXRmb3JtTWFuYWdlcigpO1xuICAgIHBtLmxvYWRCeXRlcyhwYXRoLCBmdW5jdGlvbihidWYpIHtcbiAgICAgICAgdmFyIHN0ciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheShidWYpKTtcbiAgICAgICAgdGhpc1JlZi5qc29uID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgIH0pO1xufTtcblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRUZXh0dXJlRmlsZSA9IGZ1bmN0aW9uKG4pXG57ICAgIFxuICAgIGlmICh0aGlzLmpzb25bdGhpcy5URVhUVVJFU10gPT0gbnVsbCB8fCB0aGlzLmpzb25bdGhpcy5URVhUVVJFU11bbl0gPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuanNvblt0aGlzLlRFWFRVUkVTXVtuXTtcbn1cblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRNb2RlbEZpbGUgPSBmdW5jdGlvbigpXG57ICAgICAgICBcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuTU9ERUxdO1xufTtcblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRUZXh0dXJlTnVtID0gZnVuY3Rpb24oKVxueyAgICBcbiAgICBpZiAodGhpcy5qc29uW3RoaXMuVEVYVFVSRVNdID09IG51bGwpIHJldHVybiAwO1xuICAgIFxuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5URVhUVVJFU10ubGVuZ3RoO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEhpdEFyZWFOdW0gPSBmdW5jdGlvbigpXG57XG4gICAgaWYgKHRoaXMuanNvblt0aGlzLkhJVF9BUkVBU10gPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIDA7XG5cbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuSElUX0FSRUFTXS5sZW5ndGg7XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0SGl0QXJlYUlEID0gZnVuY3Rpb24obilcbntcbiAgICBpZiAodGhpcy5qc29uW3RoaXMuSElUX0FSRUFTXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5ISVRfQVJFQVNdW25dID09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuanNvblt0aGlzLkhJVF9BUkVBU11bbl1bdGhpcy5JRF07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0SGl0QXJlYU5hbWUgPSBmdW5jdGlvbihuKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5ISVRfQVJFQVNdID09IG51bGwgfHwgXG4gICAgICAgIHRoaXMuanNvblt0aGlzLkhJVF9BUkVBU11bbl0gPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuSElUX0FSRUFTXVtuXVt0aGlzLk5BTUVdO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldFBoeXNpY3NGaWxlID0gZnVuY3Rpb24oKVxue1xuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5QSFlTSUNTXTtcbn1cblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRQb3NlRmlsZSA9IGZ1bmN0aW9uKClcbntcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuUE9TRV07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0RXhwcmVzc2lvbk51bSA9IGZ1bmN0aW9uKClcbntcbiAgICByZXR1cm4gKHRoaXMuanNvblt0aGlzLkVYUFJFU1NJT05TXSA9PSBudWxsKSA/IDAgOiB0aGlzLmpzb25bdGhpcy5FWFBSRVNTSU9OU10ubGVuZ3RoO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEV4cHJlc3Npb25GaWxlID0gZnVuY3Rpb24obilcbntcbiAgICBpZiAodGhpcy5qc29uW3RoaXMuRVhQUkVTU0lPTlNdID09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5FWFBSRVNTSU9OU11bbl1bdGhpcy5GSUxFXTtcbn1cblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRFeHByZXNzaW9uTmFtZSA9IGZ1bmN0aW9uKG4pXG57XG4gICAgaWYgKHRoaXMuanNvblt0aGlzLkVYUFJFU1NJT05TXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuRVhQUkVTU0lPTlNdW25dW3RoaXMuTkFNRV07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0TGF5b3V0ID0gZnVuY3Rpb24oKVxue1xuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5MQVlPVVRdO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEluaXRQYXJhbU51bSA9IGZ1bmN0aW9uKClcbntcbiAgICByZXR1cm4gKHRoaXMuanNvblt0aGlzLklOSVRfUEFSQU1dID09IG51bGwpID8gMCA6IHRoaXMuanNvblt0aGlzLklOSVRfUEFSQU1dLmxlbmd0aDtcbn1cblxuXG5Nb2RlbFNldHRpbmdKc29uLnByb3RvdHlwZS5nZXRNb3Rpb25OdW0gPSBmdW5jdGlvbihuYW1lKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gMDtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV0ubGVuZ3RoO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldE1vdGlvbkZpbGUgPSBmdW5jdGlvbihuYW1lLCBuKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXVtuXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXVtuXVt0aGlzLkZJTEVdO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldE1vdGlvblNvdW5kID0gZnVuY3Rpb24obmFtZSwgbilcbntcbiAgICBpZiAodGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU10gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV0gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl0gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl1bdGhpcy5TT1VORF0gPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl1bdGhpcy5TT1VORF07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0TW90aW9uRmFkZUluID0gZnVuY3Rpb24obmFtZSwgbilcbntcbiAgICBpZiAodGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU10gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV0gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl0gPT0gbnVsbCB8fCBcbiAgICAgICAgdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl1bdGhpcy5GQURFX0lOXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gMTAwMDtcblxuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXVtuXVt0aGlzLkZBREVfSU5dO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldE1vdGlvbkZhZGVPdXQgPSBmdW5jdGlvbihuYW1lLCBuKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXVtuXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5NT1RJT05fR1JPVVBTXVtuYW1lXVtuXVt0aGlzLkZBREVfT1VUXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gMTAwMDtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuTU9USU9OX0dST1VQU11bbmFtZV1bbl1bdGhpcy5GQURFX09VVF07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0SW5pdFBhcmFtSUQgPSBmdW5jdGlvbihuKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5JTklUX1BBUkFNXSA9PSBudWxsIHx8IFxuICAgICAgICB0aGlzLmpzb25bdGhpcy5JTklUX1BBUkFNXVtuXSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5qc29uW3RoaXMuSU5JVF9QQVJBTV1bbl1bdGhpcy5JRF07XG59XG5cblxuTW9kZWxTZXR0aW5nSnNvbi5wcm90b3R5cGUuZ2V0SW5pdFBhcmFtVmFsdWUgPSBmdW5jdGlvbihuKVxue1xuICAgIGlmICh0aGlzLmpzb25bdGhpcy5JTklUX1BBUkFNXSA9PSBudWxsIHx8IHRoaXMuanNvblt0aGlzLklOSVRfUEFSQU1dW25dID09IG51bGwpXG4gICAgICAgIHJldHVybiBOYU47XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuanNvblt0aGlzLklOSVRfUEFSQU1dW25dW3RoaXMuVkFMVUVdO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEluaXRQYXJ0c1Zpc2libGVOdW0gPSBmdW5jdGlvbigpXG57XG4gICAgcmV0dXJuICh0aGlzLmpzb25bdGhpcy5JTklUX1BBUlRTX1ZJU0lCTEVdID09IG51bGwpID8gMCA6IHRoaXMuanNvblt0aGlzLklOSVRfUEFSVFNfVklTSUJMRV0ubGVuZ3RoO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEluaXRQYXJ0c1Zpc2libGVJRCA9IGZ1bmN0aW9uKG4pXG57XG4gICAgaWYgKHRoaXMuanNvblt0aGlzLklOSVRfUEFSVFNfVklTSUJMRV0gPT0gbnVsbCB8fCB0aGlzLmpzb25bdGhpcy5JTklUX1BBUlRTX1ZJU0lCTEVdW25dID09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmpzb25bdGhpcy5JTklUX1BBUlRTX1ZJU0lCTEVdW25dW3RoaXMuSURdO1xufVxuXG5cbk1vZGVsU2V0dGluZ0pzb24ucHJvdG90eXBlLmdldEluaXRQYXJ0c1Zpc2libGVWYWx1ZSA9IGZ1bmN0aW9uKG4pXG57XG4gICAgaWYgKHRoaXMuanNvblt0aGlzLklOSVRfUEFSVFNfVklTSUJMRV0gPT0gbnVsbCB8fCB0aGlzLmpzb25bdGhpcy5JTklUX1BBUlRTX1ZJU0lCTEVdW25dID09IG51bGwpXG4gICAgICAgIHJldHVybiBOYU47XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuanNvblt0aGlzLklOSVRfUEFSVFNfVklTSUJMRV1bbl1bdGhpcy5WQUxVRV07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9saWIvTW9kZWxTZXR0aW5nSnNvbi5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTtBQUNBO0FBSEE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8\n')},/*!*******************************!*\ - !*** ./src/lib/live2d.min.js ***! - \*******************************/ -function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(System) {\n\n(function () {\n var j = true;function aa() {\n if (j) {\n return;\n }this._$MT = null;this._$5S = null;this._$NP = 0;aa._$42++;this._$5S = new y(this);\n }aa._$0s = 1;aa._$4s = 2;aa._$42 = 0;aa._$62 = function (aQ, aU) {\n try {\n if (aU instanceof ArrayBuffer) {\n aU = new DataView(aU);\n }if (!(aU instanceof DataView)) {\n throw new J("_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer");\n }var aS = new K(aU);var aM = aS._$ST();var aK = aS._$ST();var aJ = aS._$ST();var aN;if (aM == 109 && aK == 111 && aJ == 99) {\n aN = aS._$ST();\n } else {\n throw new J("_$gi _$C _$li , _$Q0 _$P0.");\n }aS._$gr(aN);if (aN > ay._$T7) {\n aQ._$NP |= aa._$4s;var aR = ay._$T7;var aI = "_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : " + aR + " < _$f0 : " + aN + " )@_$SS#loadModel()\\n";throw new J(aI);\n }var aL = aS._$nP();if (aN >= ay._$s7) {\n var aH = aS._$9T();var aT = aS._$9T();if (aH != -30584 || aT != -30584) {\n aQ._$NP |= aa._$0s;throw new J("_$gi _$C _$li , _$0 _$6 _$Ui.");\n }\n }aQ._$KS(aL);var aP = aQ.getModelContext();aP.setDrawParam(aQ.getDrawParam());aP.init();\n } catch (aO) {\n q._$Rb(aO);\n }\n };aa.prototype._$KS = function (aH) {\n this._$MT = aH;\n };aa.prototype.getModelImpl = function () {\n if (this._$MT == null) {\n this._$MT = new w();this._$MT._$zP();\n }return this._$MT;\n };aa.prototype.getCanvasWidth = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasWidth();\n };aa.prototype.getCanvasHeight = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasHeight();\n };aa.prototype.getParamFloat = function (aH) {\n if (typeof aH != "number") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }return this._$5S.getParamFloat(aH);\n };aa.prototype.setParamFloat = function (aH, aJ, aI) {\n if (typeof aH != "number") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 - aI) + aJ * aI);\n };aa.prototype.addToParamFloat = function (aH, aJ, aI) {\n if (typeof aH != "number") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) + aJ * aI);\n };aa.prototype.multParamFloat = function (aH, aJ, aI) {\n if (typeof aH != "number") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 + (aJ - 1) * aI));\n };aa.prototype.getParamIndex = function (aH) {\n return this._$5S.getParamIndex(z.getID(aH));\n };aa.prototype.loadParam = function () {\n this._$5S.loadParam();\n };aa.prototype.saveParam = function () {\n this._$5S.saveParam();\n };aa.prototype.init = function () {\n this._$5S.init();\n };aa.prototype.update = function () {\n this._$5S.update();\n };aa.prototype._$Rs = function () {\n q._$li("_$60 _$PT _$Rs()");return -1;\n };aa.prototype._$Ds = function (aH) {\n q._$li("_$60 _$PT _$SS#_$Ds() \\n");\n };aa.prototype._$K2 = function () {};aa.prototype.draw = function () {};aa.prototype.getModelContext = function () {\n return this._$5S;\n };aa.prototype._$s2 = function () {\n return this._$NP;\n };aa.prototype._$P7 = function (aK, aR, aH, a0) {\n var aU = -1;var aY = 0;var aM = this;var aJ = 0.5;var aI = 0.15;var aX = true;if (aH == 0) {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aO = aR[aV];var aS = aM.getParamFloat(aP) != 0;aM.setPartsOpacity(aO, aS ? 1 : 0);\n }return;\n } else {\n if (aK.length == 1) {\n var aP = aK[0];var aT = aM.getParamFloat(aP) != 0;var aO = aR[0];var aQ = aM.getPartsOpacity(aO);var aW = aH / a0;if (aT) {\n aQ += aW;if (aQ > 1) {\n aQ = 1;\n }\n } else {\n aQ -= aW;if (aQ < 0) {\n aQ = 0;\n }\n }aM.setPartsOpacity(aO, aQ);\n } else {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aS = aM.getParamFloat(aP) != 0;if (aS) {\n if (aU >= 0) {\n break;\n }aU = aV;var aO = aR[aV];aY = aM.getPartsOpacity(aO);aY += aH / a0;if (aY > 1) {\n aY = 1;\n }\n }\n }if (aU < 0) {\n console.log("No _$wi _$q0/ _$U default[%s]", aK[0]);aU = 0;aY = 1;aM.loadParam();aM.setParamFloat(aK[aU], aY);aM.saveParam();\n }for (var aV = 0; aV < aK.length; aV++) {\n var aO = aR[aV];if (aU == aV) {\n aM.setPartsOpacity(aO, aY);\n } else {\n var aL = aM.getPartsOpacity(aO);var aZ;if (aY < aJ) {\n aZ = aY * (aJ - 1) / aJ + 1;\n } else {\n aZ = (1 - aY) * aJ / (1 - aJ);\n }if (aX) {\n var aN = (1 - aZ) * (1 - aY);if (aN > aI) {\n aZ = 1 - aI / (1 - aY);\n }\n }if (aL > aZ) {\n aL = aZ;\n }aM.setPartsOpacity(aO, aL);\n }\n }\n }\n }\n };aa.prototype.setPartsOpacity = function (aI, aH) {\n if (typeof aI != "number") {\n aI = this._$5S.getPartsDataIndex(i.getID(aI));\n }this._$5S.setPartsOpacity(aI, aH);\n };aa.prototype.getPartsDataIndex = function (aH) {\n if (!(aH instanceof i)) {\n aH = i.getID(aH);\n }return this._$5S.getPartsDataIndex(aH);\n };aa.prototype.getPartsOpacity = function (aH) {\n if (typeof aH != "number") {\n aH = this._$5S.getPartsDataIndex(i.getID(aH));\n }if (aH < 0) {\n return 0;\n }return this._$5S.getPartsOpacity(aH);\n };aa.prototype.getDrawParam = function () {};aa.prototype.getDrawDataIndex = function (aH) {\n return this._$5S.getDrawDataIndex(Z.getID(aH));\n };aa.prototype.getDrawData = function (aH) {\n return this._$5S.getDrawData(aH);\n };aa.prototype.getTransformedPoints = function (aH) {\n var aI = this._$5S._$C2(aH);if (aI instanceof ag) {\n return aI.getTransformedPoints();\n }return null;\n };aa.prototype.getIndexArray = function (aI) {\n if (aI < 0 || aI >= this._$5S._$aS.length) {\n return null;\n }var aH = this._$5S._$aS[aI];if (aH != null && aH.getType() == a._$wb) {\n if (aH instanceof b) {\n return aH.getIndexArray();\n }\n }return null;\n };function W(aJ) {\n if (j) {\n return;\n }this.clipContextList = new Array();this.glcontext = aJ.gl;this.dp_webgl = aJ;this.curFrameNo = 0;this.firstError_clipInNotUpdate = true;this.colorBuffer = 0;this.isInitGLFBFunc = false;this.tmpBoundsOnModel = new av();if (Q.glContext.length > Q.frameBuffers.length) {\n this.curFrameNo = this.getMaskRenderTexture();\n } else {}this.tmpModelToViewMatrix = new ac();this.tmpMatrix2 = new ac();this.tmpMatrixForMask = new ac();this.tmpMatrixForDraw = new ac();this.CHANNEL_COLORS = new Array();var aI = new o();aI = new o();aI.r = 0;aI.g = 0;aI.b = 0;aI.a = 1;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 1;aI.g = 0;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 1;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 0;aI.b = 1;aI.a = 0;this.CHANNEL_COLORS.push(aI);for (var aH = 0; aH < this.CHANNEL_COLORS.length; aH++) {\n this.dp_webgl.setChannelFlagAsColor(aH, this.CHANNEL_COLORS[aH]);\n }\n }W.CHANNEL_COUNT = 4;W.RENDER_TEXTURE_USE_MIPMAP = false;W.NOT_USED_FRAME = -100;W.prototype._$L7 = function () {\n if (this.tmpModelToViewMatrix) {\n this.tmpModelToViewMatrix = null;\n }if (this.tmpMatrix2) {\n this.tmpMatrix2 = null;\n }if (this.tmpMatrixForMask) {\n this.tmpMatrixForMask = null;\n }if (this.tmpMatrixForDraw) {\n this.tmpMatrixForDraw = null;\n }if (this.tmpBoundsOnModel) {\n this.tmpBoundsOnModel = null;\n }if (this.CHANNEL_COLORS) {\n for (var aH = this.CHANNEL_COLORS.length - 1; aH >= 0; --aH) {\n this.CHANNEL_COLORS.splice(aH, 1);\n }this.CHANNEL_COLORS = [];\n }this.releaseShader();\n };W.prototype.releaseShader = function () {\n var aI = Q.frameBuffers.length;for (var aH = 0; aH < aI; aH++) {\n this.gl.deleteFramebuffer(Q.frameBuffers[aH].framebuffer);\n }Q.frameBuffers = [];Q.glContext = [];\n };W.prototype.init = function (aO, aN, aL) {\n for (var aM = 0; aM < aN.length; aM++) {\n var aH = aN[aM].getClipIDList();if (aH == null) {\n continue;\n }var aJ = this.findSameClip(aH);if (aJ == null) {\n aJ = new U(this, aO, aH);this.clipContextList.push(aJ);\n }var aI = aN[aM].getDrawDataID();var aK = aO.getDrawDataIndex(aI);aJ.addClippedDrawData(aI, aK);var aP = aL[aM];aP.clipBufPre_clipContext = aJ;\n }\n };W.prototype.getMaskRenderTexture = function () {\n var aH = null;aH = this.dp_webgl.createFramebuffer();Q.frameBuffers[this.dp_webgl.glno] = aH;return this.dp_webgl.glno;\n };W.prototype.setupClip = function (a1, aQ) {\n var aK = 0;for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];this.calcClippedDrawTotalBounds(a1, aP);if (aP.isUsing) {\n aK++;\n }\n }if (aK > 0) {\n var aM = aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);var aW = new Array(4);aW[0] = 0;aW[1] = 0;aW[2] = aQ.gl.canvas.width;aW[3] = aQ.gl.canvas.height;aQ.gl.viewport(0, 0, Q.clippingMaskBufferSize, Q.clippingMaskBufferSize);this.setupLayoutBounds(aK);aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, Q.frameBuffers[this.curFrameNo].framebuffer);aQ.gl.clearColor(0, 0, 0, 0);aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];var aT = aP.allClippedDrawRect;var aN = aP.layoutChannelNo;var aV = aP.layoutBounds;var aJ = 0.05;this.tmpBoundsOnModel._$jL(aT);this.tmpBoundsOnModel.expand(aT.width * aJ, aT.height * aJ);var aZ = aV.width / this.tmpBoundsOnModel.width;var aY = aV.height / this.tmpBoundsOnModel.height;this.tmpMatrix2.identity();this.tmpMatrix2.translate(-1, -1, 0);this.tmpMatrix2.scale(2, 2, 1);this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m);this.tmpMatrix2.identity();this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);var aH = this.tmpMatrixForMask.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForMask[aX] = aH[aX];\n }var a0 = this.tmpMatrixForDraw.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForDraw[aX] = a0[aX];\n }var aS = aP.clippingMaskDrawIndexList.length;for (var aU = 0; aU < aS; aU++) {\n var aR = aP.clippingMaskDrawIndexList[aU];var aI = a1.getDrawData(aR);var aL = a1._$C2(aR);aQ.setClipBufPre_clipContextForMask(aP);aI.draw(aQ, a1, aL);\n }\n }aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, aM);aQ.setClipBufPre_clipContextForMask(null);aQ.gl.viewport(aW[0], aW[1], aW[2], aW[3]);\n }\n };W.prototype.getColorBuffer = function () {\n return this.colorBuffer;\n };W.prototype.findSameClip = function (aK) {\n for (var aN = 0; aN < this.clipContextList.length; aN++) {\n var aO = this.clipContextList[aN];var aH = aO.clipIDList.length;if (aH != aK.length) {\n continue;\n }var aI = 0;for (var aM = 0; aM < aH; aM++) {\n var aL = aO.clipIDList[aM];for (var aJ = 0; aJ < aH; aJ++) {\n if (aK[aJ] == aL) {\n aI++;break;\n }\n }\n }if (aI == aH) {\n return aO;\n }\n }return null;\n };W.prototype.calcClippedDrawTotalBounds = function (a6, aV) {\n var aU = a6._$Ri.getModelImpl().getCanvasWidth();var a5 = a6._$Ri.getModelImpl().getCanvasHeight();var aJ = aU > a5 ? aU : a5;var aT = aJ;var aR = aJ;var aS = 0;var aP = 0;var aL = aV.clippedDrawContextList.length;for (var aM = 0; aM < aL; aM++) {\n var aW = aV.clippedDrawContextList[aM];var aN = aW.drawDataIndex;var aK = a6._$C2(aN);if (aK._$yo()) {\n var aX = aK.getTransformedPoints();var a4 = aX.length;var aI = [];var aH = [];var aO = 0;for (var a3 = aw._$i2; a3 < a4; a3 += aw._$No) {\n aI[aO] = aX[a3];aH[aO] = aX[a3 + 1];aO++;\n }var a2 = Math.min.apply(null, aI);var a1 = Math.min.apply(null, aH);var a0 = Math.max.apply(null, aI);var aZ = Math.max.apply(null, aH);if (a2 < aT) {\n aT = a2;\n }if (a1 < aR) {\n aR = a1;\n }if (a0 > aS) {\n aS = a0;\n }if (aZ > aP) {\n aP = aZ;\n }\n }\n }if (aT == aJ) {\n aV.allClippedDrawRect.x = 0;aV.allClippedDrawRect.y = 0;aV.allClippedDrawRect.width = 0;aV.allClippedDrawRect.height = 0;aV.isUsing = false;\n } else {\n var aQ = aS - aT;var aY = aP - aR;aV.allClippedDrawRect.x = aT;aV.allClippedDrawRect.y = aR;aV.allClippedDrawRect.width = aQ;aV.allClippedDrawRect.height = aY;aV.isUsing = true;\n }\n };W.prototype.setupLayoutBounds = function (aQ) {\n var aI = aQ / W.CHANNEL_COUNT;var aP = aQ % W.CHANNEL_COUNT;aI = ~~aI;aP = ~~aP;var aH = 0;for (var aJ = 0; aJ < W.CHANNEL_COUNT; aJ++) {\n var aM = aI + (aJ < aP ? 1 : 0);if (aM == 0) {} else {\n if (aM == 1) {\n var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = 0;aL.layoutBounds.y = 0;aL.layoutBounds.width = 1;aL.layoutBounds.height = 1;\n } else {\n if (aM == 2) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = 0;aN = ~~aN;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = 0;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 1;\n }\n } else {\n if (aM <= 4) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = aO / 2;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = aK * 0.5;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 0.5;\n }\n } else {\n if (aM <= 9) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 3;var aK = aO / 3;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN / 3;aL.layoutBounds.y = aK / 3;aL.layoutBounds.width = 1 / 3;aL.layoutBounds.height = 1 / 3;\n }\n } else {\n q._$li("_$6 _$0P mask count : %d", aM);\n }\n }\n }\n }\n }\n }\n };function U(aH, aK, aI) {\n this.clipIDList = new Array();this.clipIDList = aI;this.clippingMaskDrawIndexList = new Array();for (var aJ = 0; aJ < aI.length; aJ++) {\n this.clippingMaskDrawIndexList.push(aK.getDrawDataIndex(aI[aJ]));\n }this.clippedDrawContextList = new Array();this.isUsing = true;this.layoutChannelNo = 0;this.layoutBounds = new av();this.allClippedDrawRect = new av();this.matrixForMask = new Float32Array(16);this.matrixForDraw = new Float32Array(16);this.owner = aH;\n }U.prototype.addClippedDrawData = function (aJ, aI) {\n var aH = new R(aJ, aI);this.clippedDrawContextList.push(aH);\n };function R(aI, aH) {\n this._$gP = aI;this.drawDataIndex = aH;\n }function I() {\n if (j) {\n return;\n }this.color = null;\n }function ah() {\n if (j) {\n return;\n }this._$dP = null;this._$eo = null;this._$V0 = null;this._$dP = 1000;this._$eo = 1000;this._$V0 = 1;this._$a0();\n }ah._$JT = function (aP, aN, aO) {\n var aQ = aP / aN;var a1 = aO / aN;var aU = a1;var aZ = 1 / 3;var aR = 2 / 3;var a0 = 1 - (1 - a1) * (1 - a1);var a2 = 1 - (1 - aU) * (1 - aU);var aM = 0;var aL = (1 - a1) * aZ * a0 + (aU * aR + (1 - aU) * aZ) * (1 - a0);var aK = (aU + (1 - aU) * aR) * a2 + (a1 * aZ + (1 - a1) * aR) * (1 - a2);var aJ = 1;var aY = aJ - 3 * aK + 3 * aL - aM;var aX = 3 * aK - 6 * aL + 3 * aM;var aW = 3 * aL - 3 * aM;var aV = aM;if (aQ <= 0) {\n return 0;\n } else {\n if (aQ >= 1) {\n return 1;\n }\n }var aS = aQ;var aI = aS * aS;var aH = aS * aI;var aT = aY * aH + aX * aI + aW * aS + aV;return aT;\n };ah.prototype._$a0 = function () {};ah.prototype.setFadeIn = function (aH) {\n this._$dP = aH;\n };ah.prototype.setFadeOut = function (aH) {\n this._$eo = aH;\n };ah.prototype._$pT = function (aH) {\n this._$V0 = aH;\n };ah.prototype.getFadeOut = function () {\n return this._$eo;\n };ah.prototype._$4T = function () {\n return this._$eo;\n };ah.prototype._$mT = function () {\n return this._$V0;\n };ah.prototype.getDurationMSec = function () {\n return -1;\n };ah.prototype.getLoopDurationMSec = function () {\n return -1;\n };ah.prototype.updateParam = function (aJ, aN) {\n if (!aN._$AT || aN._$9L) {\n return;\n }var aL = P.getUserTimeMSec();if (aN._$z2 < 0) {\n aN._$z2 = aL;aN._$bs = aL;var aM = this.getDurationMSec();if (aN._$Do < 0) {\n aN._$Do = aM <= 0 ? -1 : aN._$z2 + aM;\n }\n }var aI = this._$V0;var aH = this._$dP == 0 ? 1 : A._$r2((aL - aN._$bs) / this._$dP);var aK = this._$eo == 0 || aN._$Do < 0 ? 1 : A._$r2((aN._$Do - aL) / this._$eo);aI = aI * aH * aK;if (!(0 <= aI && aI <= 1)) {\n console.log("### assert!! ### ");\n }this.updateParamExe(aJ, aL, aI, aN);if (aN._$Do > 0 && aN._$Do < aL) {\n aN._$9L = true;\n }\n };ah.prototype.updateParamExe = function (aH, aI, aJ, aK) {};function q() {}q._$8s = 0;q._$fT = new Object();q.start = function (aI) {\n var aH = q._$fT[aI];if (aH == null) {\n aH = new af();aH._$r = aI;q._$fT[aI] = aH;\n }aH._$0S = P.getSystemTimeMSec();\n };q.dump = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();var aK = aI - aH._$0S;console.log(aJ + " : " + aK + "ms");return aK;\n } else {\n return -1;\n }\n };q.end = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();return aI - aH._$0S;\n } else {\n return -1;\n }\n };q._$li = function (aI, aH) {\n console.log("_$li : " + aI + "\\n", aH);\n };q._$Ji = function (aI, aH) {\n console.log(aI, aH);\n };q._$dL = function (aI, aH) {\n console.log(aI, aH);console.log("\\n");\n };q._$KL = function (aJ, aI) {\n for (var aH = 0; aH < aI; aH++) {\n if (aH % 16 == 0 && aH > 0) {\n console.log("\\n");\n } else {\n if (aH % 8 == 0 && aH > 0) {\n console.log(" ");\n }\n }console.log("%02X ", aJ[aH] & 255);\n }console.log("\\n");\n };q._$nr = function (aL, aI, aK) {\n console.log("%s\\n", aL);var aH = aI.length;for (var aJ = 0; aJ < aH; ++aJ) {\n console.log("%5d", aI[aJ]);console.log("%s\\n", aK);console.log(",");\n }console.log("\\n");\n };q._$Rb = function (aH) {\n console.log("dump exception : " + aH);console.log("stack :: " + aH.stack);\n };function af() {\n this._$r = null;this._$0S = null;\n }function F() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }F.prototype._$8P = function () {\n return 0.5 * (this.x + this.x + this.width);\n };F.prototype._$6P = function () {\n return 0.5 * (this.y + this.y + this.height);\n };F.prototype._$EL = function () {\n return this.x + this.width;\n };F.prototype._$5T = function () {\n return this.y + this.height;\n };F.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };F.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };function i(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }i.prototype = new ak();i._$tP = new Object();i._$27 = function () {\n i._$tP.clear();\n };i.getID = function (aH) {\n var aI = i._$tP[aH];if (aI == null) {\n aI = new i(aH);i._$tP[aH] = aI;\n }return aI;\n };i.prototype._$3s = function () {\n return new i();\n };function S() {}function z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }z.prototype = new ak();z._$tP = new Object();z._$27 = function () {\n z._$tP.clear();\n };z.getID = function (aH) {\n var aI = z._$tP[aH];if (aI == null) {\n aI = new z(aH);z._$tP[aH] = aI;\n }return aI;\n };z.prototype._$3s = function () {\n return new z();\n };function w() {\n if (j) {\n return;\n }this._$vo = null;this._$F2 = null;this._$ao = 400;this._$1S = 400;w._$42++;\n }w._$42 = 0;w.prototype._$zP = function () {\n if (this._$vo == null) {\n this._$vo = new an();\n }if (this._$F2 == null) {\n this._$F2 = new Array();\n }\n };w.prototype.getCanvasWidth = function () {\n return this._$ao;\n };w.prototype.getCanvasHeight = function () {\n return this._$1S;\n };w.prototype._$F0 = function (aH) {\n this._$vo = aH._$nP();this._$F2 = aH._$nP();this._$ao = aH._$6L();this._$1S = aH._$6L();\n };w.prototype._$6S = function (aH) {\n this._$F2.push(aH);\n };w.prototype._$Xr = function () {\n return this._$F2;\n };w.prototype._$E2 = function () {\n return this._$vo;\n };function u() {\n if (j) {\n return;\n }this.p1 = new N();this.p2 = new N();this._$Fo = 0;this._$Db = 0;this._$L2 = 0;this._$M2 = 0;this._$ks = 0;this._$9b = 0;this._$iP = 0;this._$iT = 0;this._$lL = new Array();this._$qP = new Array();this.setup(0.3, 0.5, 0.1);\n }u.prototype.setup = function (aJ, aI, aH) {\n this._$ks = this._$Yb();this.p2._$xT();if (arguments.length == 3) {\n this._$Fo = aJ;this._$L2 = aI;this.p1._$p = aH;this.p2._$p = aH;this.p2.y = aJ;this.setup();\n }\n };u.prototype.getPhysicsPoint1 = function () {\n return this.p1;\n };u.prototype.getPhysicsPoint2 = function () {\n return this.p2;\n };u.prototype._$qr = function () {\n return this._$Db;\n };u.prototype._$pr = function (aH) {\n this._$Db = aH;\n };u.prototype._$5r = function () {\n return this._$M2;\n };u.prototype._$Cs = function () {\n return this._$9b;\n };u.prototype._$Yb = function () {\n return -180 * Math.atan2(this.p1.x - this.p2.x, -(this.p1.y - this.p2.y)) / Math.PI;\n };u.prototype.addSrcParam = function (aJ, aH, aL, aI) {\n var aK = new h(aJ, aH, aL, aI);this._$lL.push(aK);\n };u.prototype.addTargetParam = function (aJ, aH, aK, aI) {\n var aL = new aF(aJ, aH, aK, aI);this._$qP.push(aL);\n };u.prototype.update = function (aI, aL) {\n if (this._$iP == 0) {\n this._$iP = this._$iT = aL;this._$Fo = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));return;\n }var aK = (aL - this._$iT) / 1000;if (aK != 0) {\n for (var aJ = this._$lL.length - 1; aJ >= 0; --aJ) {\n var aM = this._$lL[aJ];aM._$oP(aI, this);\n }this._$oo(aI, aK);this._$M2 = this._$Yb();this._$9b = (this._$M2 - this._$ks) / aK;this._$ks = this._$M2;\n }for (var aJ = this._$qP.length - 1; aJ >= 0; --aJ) {\n var aH = this._$qP[aJ];aH._$YS(aI, this);\n }this._$iT = aL;\n };u.prototype._$oo = function (aN, aI) {\n if (aI < 0.033) {\n aI = 0.033;\n }var aU = 1 / aI;this.p1.vx = (this.p1.x - this.p1._$s0) * aU;this.p1.vy = (this.p1.y - this.p1._$70) * aU;this.p1.ax = (this.p1.vx - this.p1._$7L) * aU;this.p1.ay = (this.p1.vy - this.p1._$HL) * aU;this.p1.fx = this.p1.ax * this.p1._$p;this.p1.fy = this.p1.ay * this.p1._$p;this.p1._$xT();var aM = -Math.atan2(this.p1.y - this.p2.y, this.p1.x - this.p2.x);var aL;var aV;var aR = Math.cos(aM);var aH = Math.sin(aM);var aW = 9.8 * this.p2._$p;var aQ = this._$Db * aC._$bS;var aP = aW * Math.cos(aM - aQ);aL = aP * aH;aV = aP * aR;var aK = -this.p1.fx * aH * aH;var aT = -this.p1.fy * aH * aR;var aJ = -this.p2.vx * this._$L2;var aS = -this.p2.vy * this._$L2;this.p2.fx = aL + aK + aJ;this.p2.fy = aV + aT + aS;this.p2.ax = this.p2.fx / this.p2._$p;this.p2.ay = this.p2.fy / this.p2._$p;this.p2.vx += this.p2.ax * aI;this.p2.vy += this.p2.ay * aI;this.p2.x += this.p2.vx * aI;this.p2.y += this.p2.vy * aI;var aO = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));this.p2.x = this.p1.x + this._$Fo * (this.p2.x - this.p1.x) / aO;this.p2.y = this.p1.y + this._$Fo * (this.p2.y - this.p1.y) / aO;this.p2.vx = (this.p2.x - this.p2._$s0) * aU;this.p2.vy = (this.p2.y - this.p2._$70) * aU;this.p2._$xT();\n };function N() {\n this._$p = 1;this.x = 0;this.y = 0;this.vx = 0;this.vy = 0;this.ax = 0;this.ay = 0;this.fx = 0;this.fy = 0;this._$s0 = 0;this._$70 = 0;this._$7L = 0;this._$HL = 0;\n }N.prototype._$xT = function () {\n this._$s0 = this.x;this._$70 = this.y;this._$7L = this.vx;this._$HL = this.vy;\n };function at(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }at.prototype._$oP = function (aI, aH) {};function h(aJ, aK, aI, aH) {\n at.prototype.constructor.call(this, aK, aI, aH);this._$tL = null;this._$tL = aJ;\n }h.prototype = new at();h.prototype._$oP = function (aJ, aH) {\n var aK = this.scale * aJ.getParamFloat(this._$wL);var aL = aH.getPhysicsPoint1();switch (this._$tL) {default:case u.Src.SRC_TO_X:\n aL.x = aL.x + (aK - aL.x) * this._$V0;break;case u.Src.SRC_TO_Y:\n aL.y = aL.y + (aK - aL.y) * this._$V0;break;case u.Src.SRC_TO_G_ANGLE:\n var aI = aH._$qr();aI = aI + (aK - aI) * this._$V0;aH._$pr(aI);break;}\n };function d(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }d.prototype._$YS = function (aI, aH) {};function aF(aI, aK, aJ, aH) {\n d.prototype.constructor.call(this, aK, aJ, aH);this._$YP = null;this._$YP = aI;\n }aF.prototype = new d();aF.prototype._$YS = function (aI, aH) {\n switch (this._$YP) {default:case u.Target.TARGET_FROM_ANGLE:\n aI.setParamFloat(this._$wL, this.scale * aH._$5r(), this._$V0);break;case u.Target.TARGET_FROM_ANGLE_V:\n aI.setParamFloat(this._$wL, this.scale * aH._$Cs(), this._$V0);break;}\n };u.Src = function () {};u.Src.SRC_TO_X = "SRC_TO_X";u.Src.SRC_TO_Y = "SRC_TO_Y";u.Src.SRC_TO_G_ANGLE = "SRC_TO_G_ANGLE";u.Target = function () {};u.Target.TARGET_FROM_ANGLE = "TARGET_FROM_ANGLE";u.Target.TARGET_FROM_ANGLE_V = "TARGET_FROM_ANGLE_V";function X() {\n if (j) {\n return;\n }this._$fL = 0;this._$gL = 0;this._$B0 = 1;this._$z0 = 1;this._$qT = 0;this.reflectX = false;this.reflectY = false;\n }X.prototype.init = function (aH) {\n this._$fL = aH._$fL;this._$gL = aH._$gL;this._$B0 = aH._$B0;this._$z0 = aH._$z0;this._$qT = aH._$qT;this.reflectX = aH.reflectX;this.reflectY = aH.reflectY;\n };X.prototype._$F0 = function (aH) {\n this._$fL = aH._$_T();this._$gL = aH._$_T();this._$B0 = aH._$_T();this._$z0 = aH._$_T();this._$qT = aH._$_T();if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this.reflectX = aH._$po();this.reflectY = aH._$po();\n }\n };X.prototype._$e = function () {};var ad = function ad() {};ad._$ni = function (aL, aJ, aR, aQ, aK, aI, aH, aS, aN) {\n var aM = aH * aI - aS * aK;if (aM == 0) {\n return null;\n } else {\n var aO = ((aL - aR) * aI - (aJ - aQ) * aK) / aM;var aP;if (aK != 0) {\n aP = (aL - aR - aO * aH) / aK;\n } else {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n aP = (aL - aR - aO * aH) / aK;if (isNaN(aP)) {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n console.log("a is NaN @UtVector#_$ni() ");console.log("v1x : " + aK);console.log("v1x != 0 ? " + (aK != 0));\n }\n }if (aN == null) {\n return new Array(aP, aO);\n } else {\n aN[0] = aP;aN[1] = aO;return aN;\n }\n }\n };function av() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }av.prototype._$8P = function () {\n return this.x + 0.5 * this.width;\n };av.prototype._$6P = function () {\n return this.y + 0.5 * this.height;\n };av.prototype._$EL = function () {\n return this.x + this.width;\n };av.prototype._$5T = function () {\n return this.y + this.height;\n };av.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };av.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };av.prototype.contains = function (aH, aI) {\n return this.x <= this.x && this.y <= this.y && this.x <= this.x + this.width && this.y <= this.y + this.height;\n };av.prototype.expand = function (aH, aI) {\n this.x -= aH;this.y -= aI;this.width += aH * 2;this.height += aI * 2;\n };function aG() {}aG._$Z2 = function (bb, bo, bp, a2) {\n var a1 = bo._$Q2(bb, bp);var a3 = bb._$vs();var ba = bb._$Tr();bo._$zr(a3, ba, a1);if (a1 <= 0) {\n return a2[a3[0]];\n } else {\n if (a1 == 1) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a9 = ba[0];return bj + (bi - bj) * a9 | 0;\n } else {\n if (a1 == 2) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a0 = a2[a3[2]];var aZ = a2[a3[3]];var a9 = ba[0];var a8 = ba[1];var br = bj + (bi - bj) * a9 | 0;var bq = a0 + (aZ - a0) * a9 | 0;return br + (bq - br) * a8 | 0;\n } else {\n if (a1 == 3) {\n var aP = a2[a3[0]];var aO = a2[a3[1]];var bn = a2[a3[2]];var bm = a2[a3[3]];var aK = a2[a3[4]];var aJ = a2[a3[5]];var bg = a2[a3[6]];var bf = a2[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bj = aP + (aO - aP) * a9 | 0;var bi = bn + (bm - bn) * a9 | 0;var a0 = aK + (aJ - aK) * a9 | 0;var aZ = bg + (bf - bg) * a9 | 0;var br = bj + (bi - bj) * a8 | 0;var bq = a0 + (aZ - a0) * a8 | 0;return br + (bq - br) * a6 | 0;\n } else {\n if (a1 == 4) {\n var aT = a2[a3[0]];var aS = a2[a3[1]];var bu = a2[a3[2]];var bt = a2[a3[3]];var aN = a2[a3[4]];var aM = a2[a3[5]];var bl = a2[a3[6]];var bk = a2[a3[7]];var be = a2[a3[8]];var bc = a2[a3[9]];var aX = a2[a3[10]];var aW = a2[a3[11]];var a7 = a2[a3[12]];var a5 = a2[a3[13]];var aR = a2[a3[14]];var aQ = a2[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var aP = aT + (aS - aT) * a9 | 0;var aO = bu + (bt - bu) * a9 | 0;var bn = aN + (aM - aN) * a9 | 0;var bm = bl + (bk - bl) * a9 | 0;var aK = be + (bc - be) * a9 | 0;var aJ = aX + (aW - aX) * a9 | 0;var bg = a7 + (a5 - a7) * a9 | 0;var bf = aR + (aQ - aR) * a9 | 0;var bj = aP + (aO - aP) * a8 | 0;var bi = bn + (bm - bn) * a8 | 0;var a0 = aK + (aJ - aK) * a8 | 0;var aZ = bg + (bf - bg) * a8 | 0;var br = bj + (bi - bj) * a6 | 0;var bq = a0 + (aZ - a0) * a6 | 0;return br + (bq - br) * a4 | 0;\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aY[bh] = aH;\n }var bs = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bs[aU] = a2[a3[aU]];\n }var bd = 0;for (var aU = 0; aU < aV; aU++) {\n bd += aY[aU] * bs[aU];\n }return bd + 0.5 | 0;\n }\n }\n }\n }\n }\n };aG._$br = function (ba, bo, bp, bg) {\n var a1 = bo._$Q2(ba, bp);var a2 = ba._$vs();var a9 = ba._$Tr();bo._$zr(a2, a9, a1);if (a1 <= 0) {\n return bg[a2[0]];\n } else {\n if (a1 == 1) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a8 = a9[0];return bj + (bi - bj) * a8;\n } else {\n if (a1 == 2) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a0 = bg[a2[2]];var aZ = bg[a2[3]];var a8 = a9[0];var a7 = a9[1];return (1 - a7) * (bj + (bi - bj) * a8) + a7 * (a0 + (aZ - a0) * a8);\n } else {\n if (a1 == 3) {\n var aP = bg[a2[0]];var aO = bg[a2[1]];var bn = bg[a2[2]];var bm = bg[a2[3]];var aK = bg[a2[4]];var aJ = bg[a2[5]];var bf = bg[a2[6]];var be = bg[a2[7]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];return (1 - a5) * ((1 - a7) * (aP + (aO - aP) * a8) + a7 * (bn + (bm - bn) * a8)) + a5 * ((1 - a7) * (aK + (aJ - aK) * a8) + a7 * (bf + (be - bf) * a8));\n } else {\n if (a1 == 4) {\n var aT = bg[a2[0]];var aS = bg[a2[1]];var bs = bg[a2[2]];var br = bg[a2[3]];var aN = bg[a2[4]];var aM = bg[a2[5]];var bl = bg[a2[6]];var bk = bg[a2[7]];var bd = bg[a2[8]];var bb = bg[a2[9]];var aX = bg[a2[10]];var aW = bg[a2[11]];var a6 = bg[a2[12]];var a4 = bg[a2[13]];var aR = bg[a2[14]];var aQ = bg[a2[15]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];var a3 = a9[3];return (1 - a3) * ((1 - a5) * ((1 - a7) * (aT + (aS - aT) * a8) + a7 * (bs + (br - bs) * a8)) + a5 * ((1 - a7) * (aN + (aM - aN) * a8) + a7 * (bl + (bk - bl) * a8))) + a3 * ((1 - a5) * ((1 - a7) * (bd + (bb - bd) * a8) + a7 * (aX + (aW - aX) * a8)) + a5 * ((1 - a7) * (a6 + (a4 - a6) * a8) + a7 * (aR + (aQ - aR) * a8)));\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - a9[aL] : a9[aL];aI /= 2;\n }aY[bh] = aH;\n }var bq = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bq[aU] = bg[a2[aU]];\n }var bc = 0;for (var aU = 0; aU < aV; aU++) {\n bc += aY[aU] * bq[aU];\n }return bc;\n }\n }\n }\n }\n }\n };aG._$Vr = function (bV, bW, a5, aI, bC, a3, bX, bH) {\n var aN = bW._$Q2(bV, a5);var bw = bV._$vs();var a2 = bV._$Tr();bW._$zr(bw, a2, aN);var aJ = aI * 2;var aQ = bX;if (aN <= 0) {\n var bI = bw[0];var bq = bC[bI];if (bH == 2 && bX == 0) {\n P._$jT(bq, 0, a3, 0, aJ);\n } else {\n for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt++];a3[aQ + 1] = bq[bt++];aQ += bH;\n }\n }\n } else {\n if (aN == 1) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var b3 = a2[0];var bT = 1 - b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt] * bT + bp[bt] * b3;++bt;a3[aQ + 1] = bq[bt] * bT + bp[bt] * b3;++bt;aQ += bH;\n }\n } else {\n if (aN == 2) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var aZ = bC[bw[2]];var aY = bC[bw[3]];var b3 = a2[0];var b1 = a2[1];var bT = 1 - b3;var bP = 1 - b1;var b2 = bP * bT;var b0 = bP * b3;var bM = b1 * bT;var bL = b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;a3[aQ + 1] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 3) {\n var ba = bC[bw[0]];var a9 = bC[bw[1]];var aP = bC[bw[2]];var aO = bC[bw[3]];var a6 = bC[bw[4]];var a4 = bC[bw[5]];var aL = bC[bw[6]];var aK = bC[bw[7]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var b8 = bN * bP * bT;var b7 = bN * bP * b3;var bU = bN * b1 * bT;var bS = bN * b1 * b3;var b6 = bZ * bP * bT;var b5 = bZ * bP * b3;var bQ = bZ * b1 * bT;var bO = bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;a3[aQ + 1] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 4) {\n var bD = bC[bw[0]];var bB = bC[bw[1]];var bo = bC[bw[2]];var bm = bC[bw[3]];var by = bC[bw[4]];var bx = bC[bw[5]];var be = bC[bw[6]];var bd = bC[bw[7]];var bG = bC[bw[8]];var bE = bC[bw[9]];var bv = bC[bw[10]];var bu = bC[bw[11]];var bA = bC[bw[12]];var bz = bC[bw[13]];var bn = bC[bw[14]];var bl = bC[bw[15]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bY = a2[3];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var bK = 1 - bY;var bk = bK * bN * bP * bT;var bi = bK * bN * bP * b3;var aW = bK * bN * b1 * bT;var aV = bK * bN * b1 * b3;var bc = bK * bZ * bP * bT;var bb = bK * bZ * bP * b3;var aS = bK * bZ * b1 * bT;var aR = bK * bZ * b1 * b3;var bs = bY * bN * bP * bT;var br = bY * bN * bP * b3;var a1 = bY * bN * b1 * bT;var a0 = bY * bN * b1 * b3;var bh = bY * bZ * bP * bT;var bf = bY * bZ * bP * b3;var aU = bY * bZ * b1 * bT;var aT = bY * bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;a3[aQ + 1] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;aQ += bH;\n }\n } else {\n var b4 = 1 << aN;var bJ = new Float32Array(b4);for (var bj = 0; bj < b4; bj++) {\n var aH = bj;var aM = 1;for (var bF = 0; bF < aN; bF++) {\n aM *= aH % 2 == 0 ? 1 - a2[bF] : a2[bF];aH /= 2;\n }bJ[bj] = aM;\n }var bg = new Float32Array(b4);for (var aX = 0; aX < b4; aX++) {\n bg[aX] = bC[bw[aX]];\n }for (var bt = 0; bt < aJ;) {\n var a8 = 0,\n a7 = 0;var bR = bt + 1;for (var aX = 0; aX < b4; aX++) {\n a8 += bJ[aX] * bg[aX][bt];a7 += bJ[aX] * bg[aX][bR];\n }bt += 2;a3[aQ] = a8;a3[aQ + 1] = a7;aQ += bH;\n }\n }\n }\n }\n }\n }\n };function e() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }e.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };e.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };function ae() {\n if (j) {\n return;\n }this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;this.clipID = null;this.clipIDList = new Array();\n }ae._$ur = -2;ae._$ES = 500;ae._$wb = 2;ae._$8S = 3;ae._$52 = ae._$ES;ae._$R2 = ae._$ES;ae._$or = function () {\n return ae._$52;\n };ae._$Pr = function () {\n return ae._$R2;\n };ae.prototype.convertClipIDForV2_11 = function (aI) {\n var aH = [];if (aI == null) {\n return null;\n }if (aI.length == 0) {\n return null;\n }if (!/,/.test(aI)) {\n aH.push(aI.id);return aH;\n }aH = aI.id.split(",");return aH;\n };ae.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = [];\n }this._$MS(this._$Lb);\n };ae.prototype.getClipIDList = function () {\n return this.clipIDList;\n };ae.prototype.init = function (aH) {};ae.prototype._$Nr = function (aH, aI) {\n aI._$IS[0] = false;aI._$Us = aG._$Z2(aH, this._$GS, aI._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aI._$IS[0]) {\n return;\n }\n }aI._$7s = aG._$br(aH, this._$GS, aI._$IS, this._$mS);\n };ae.prototype._$2b = function (aH, aI) {};ae.prototype.getDrawDataID = function () {\n return this._$gP;\n };ae.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };ae.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };ae.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };ae.prototype._$MS = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < ae._$52) {\n ae._$52 = aH;\n } else {\n if (aH > ae._$R2) {\n ae._$R2 = aH;\n }\n }\n }\n };ae.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };ae.prototype._$gs = function (aH) {\n this._$dr = aH;\n };ae.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };ae.prototype.preDraw = function (aJ, aH, aI) {};ae.prototype.draw = function (aJ, aH, aI) {};ae.prototype.getType = function () {};ae.prototype._$B2 = function (aI, aH, aJ) {};function ax() {\n if (j) {\n return;\n }this._$Eb = ax._$ps;this._$lT = 1;this._$C0 = 1;this._$tT = 1;this._$WL = 1;this.culling = false;this.matrix4x4 = new Float32Array(16);this.premultipliedAlpha = false;this.anisotropy = 0;this.clippingProcess = ax.CLIPPING_PROCESS_NONE;this.clipBufPre_clipContextMask = null;this.clipBufPre_clipContextDraw = null;this.CHANNEL_COLORS = new Array();\n }ax._$ps = 32;ax.CLIPPING_PROCESS_NONE = 0;ax.CLIPPING_PROCESS_OVERWRITE_ALPHA = 1;ax.CLIPPING_PROCESS_MULTIPLY_ALPHA = 2;ax.CLIPPING_PROCESS_DRAW = 3;ax.CLIPPING_PROCESS_CLEAR_ALPHA = 4;ax.prototype.setChannelFlagAsColor = function (aH, aI) {\n this.CHANNEL_COLORS[aH] = aI;\n };ax.prototype.getChannelFlagAsColor = function (aH) {\n return this.CHANNEL_COLORS[aH];\n };ax.prototype._$ZT = function () {};ax.prototype._$Uo = function (aM, aK, aJ, aL, aN, aI, aH) {};ax.prototype._$Rs = function () {\n return -1;\n };ax.prototype._$Ds = function (aH) {};ax.prototype.setBaseColor = function (aK, aJ, aI, aH) {\n if (aK < 0) {\n aK = 0;\n } else {\n if (aK > 1) {\n aK = 1;\n }\n }if (aJ < 0) {\n aJ = 0;\n } else {\n if (aJ > 1) {\n aJ = 1;\n }\n }if (aI < 0) {\n aI = 0;\n } else {\n if (aI > 1) {\n aI = 1;\n }\n }if (aH < 0) {\n aH = 0;\n } else {\n if (aH > 1) {\n aH = 1;\n }\n }this._$lT = aK;this._$C0 = aJ;this._$tT = aI;this._$WL = aH;\n };ax.prototype._$WP = function (aH) {\n this.culling = aH;\n };ax.prototype.setMatrix = function (aH) {\n for (var aI = 0; aI < 16; aI++) {\n this.matrix4x4[aI] = aH[aI];\n }\n };ax.prototype._$IT = function () {\n return this.matrix4x4;\n };ax.prototype.setPremultipliedAlpha = function (aH) {\n this.premultipliedAlpha = aH;\n };ax.prototype.isPremultipliedAlpha = function () {\n return this.premultipliedAlpha;\n };ax.prototype.setAnisotropy = function (aH) {\n this.anisotropy = aH;\n };ax.prototype.getAnisotropy = function () {\n return this.anisotropy;\n };ax.prototype.getClippingProcess = function () {\n return this.clippingProcess;\n };ax.prototype.setClippingProcess = function (aH) {\n this.clippingProcess = aH;\n };ax.prototype.setClipBufPre_clipContextForMask = function (aH) {\n this.clipBufPre_clipContextMask = aH;\n };ax.prototype.getClipBufPre_clipContextMask = function () {\n return this.clipBufPre_clipContextMask;\n };ax.prototype.setClipBufPre_clipContextForDraw = function (aH) {\n this.clipBufPre_clipContextDraw = aH;\n };ax.prototype.getClipBufPre_clipContextDraw = function () {\n return this.clipBufPre_clipContextDraw;\n };function o() {\n if (j) {\n return;\n }this.a = 1;this.r = 1;this.g = 1;this.b = 1;this.scale = 1;this._$ho = 1;this.blendMode = Q.L2D_COLOR_BLEND_MODE_MULT;\n }function c() {\n if (j) {\n return;\n }this._$kP = null;this._$dr = null;this._$Ai = true;this._$mS = null;\n }c._$ur = -2;c._$c2 = 1;c._$_b = 2;c.prototype._$F0 = function (aH) {\n this._$kP = aH._$nP();this._$dr = aH._$nP();\n };c.prototype.readV2_opacity = function (aH) {\n if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this._$mS = aH._$Tb();\n }\n };c.prototype.init = function (aH) {};c.prototype._$Nr = function (aI, aH) {};c.prototype.interpolateOpacity = function (aJ, aK, aI, aH) {\n if (this._$mS == null) {\n aI.setInterpolatedOpacity(1);\n } else {\n aI.setInterpolatedOpacity(aG._$br(aJ, aK, aH, this._$mS));\n }\n };c.prototype._$2b = function (aI, aH) {};c.prototype._$nb = function (aL, aK, aM, aH, aI, aJ, aN) {};c.prototype.getType = function () {};c.prototype._$gs = function (aH) {\n this._$dr = aH;\n };c.prototype._$a2 = function (aH) {\n this._$kP = aH;\n };c.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };c.prototype.getBaseDataID = function () {\n return this._$kP;\n };c.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };function P() {}P._$W2 = 0;P._$CS = P._$W2;P._$Mo = function () {\n return true;\n };P._$XP = function (aI) {\n try {\n var aJ = getTimeMSec();while (getTimeMSec() - aJ < aI) {}\n } catch (aH) {\n aH._$Rb();\n }\n };P.getUserTimeMSec = function () {\n return P._$CS == P._$W2 ? P.getSystemTimeMSec() : P._$CS;\n };P.setUserTimeMSec = function (aH) {\n P._$CS = aH;\n };P.updateUserTimeMSec = function () {\n return P._$CS = P.getSystemTimeMSec();\n };P.getTimeMSec = function () {\n return new Date().getTime();\n };P.getSystemTimeMSec = function () {\n return new Date().getTime();\n };P._$Q = function (aH) {};P._$jT = function (aM, aJ, aI, aL, aH) {\n for (var aK = 0; aK < aH; aK++) {\n aI[aL + aK] = aM[aJ + aK];\n }\n };function aA() {\n if (j) {\n return;\n }this._$VP = 0;this._$wL = null;this._$GP = null;this._$8o = aA._$ds;this._$2r = -1;this._$O2 = 0;this._$ri = 0;\n }aA._$ds = -2;aA.prototype._$F0 = function (aH) {\n this._$wL = aH._$nP();this._$VP = aH._$6L();this._$GP = aH._$nP();\n };aA.prototype.getParamIndex = function (aH) {\n if (this._$2r != aH) {\n this._$8o = aA._$ds;\n }return this._$8o;\n };aA.prototype._$Pb = function (aI, aH) {\n this._$8o = aI;this._$2r = aH;\n };aA.prototype.getParamID = function () {\n return this._$wL;\n };aA.prototype._$yP = function (aH) {\n this._$wL = aH;\n };aA.prototype._$N2 = function () {\n return this._$VP;\n };aA.prototype._$d2 = function () {\n return this._$GP;\n };aA.prototype._$t2 = function (aI, aH) {\n this._$VP = aI;this._$GP = aH;\n };aA.prototype._$Lr = function () {\n return this._$O2;\n };aA.prototype._$wr = function (aH) {\n this._$O2 = aH;\n };aA.prototype._$SL = function () {\n return this._$ri;\n };aA.prototype._$AL = function (aH) {\n this._$ri = aH;\n };function G() {}G.startsWith = function (aJ, aL, aK) {\n var aH = aL + aK.length;if (aH >= aJ.length) {\n return false;\n }for (var aI = aL; aI < aH; aI++) {\n if (G.getChar(aJ, aI) != aK.charAt(aI - aL)) {\n return false;\n }\n }return true;\n };G.getChar = function (aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n };G.createString = function (aM, aL, aJ) {\n var aH = new ArrayBuffer(aJ * 2);var aK = new Uint16Array(aH);for (var aI = 0; aI < aJ; aI++) {\n aK[aI] = aM.getUint8(aL + aI);\n }return String.fromCharCode.apply(null, aK);\n };G._$LS = function (aP, aM, aR, aK) {\n if (aP instanceof ArrayBuffer) {\n aP = new DataView(aP);\n }var aL = aR;var aJ = false;var aQ = false;var aS = 0;var aO = G.getChar(aP, aL);if (aO == "-") {\n aJ = true;aL++;\n }var aN = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case "0":\n aS = aS * 10;break;case "1":\n aS = aS * 10 + 1;break;case "2":\n aS = aS * 10 + 2;break;case "3":\n aS = aS * 10 + 3;break;case "4":\n aS = aS * 10 + 4;break;case "5":\n aS = aS * 10 + 5;break;case "6":\n aS = aS * 10 + 6;break;case "7":\n aS = aS * 10 + 7;break;case "8":\n aS = aS * 10 + 8;break;case "9":\n aS = aS * 10 + 9;break;case ".":\n aQ = true;aL++;aN = true;break;default:\n aN = true;break;}if (aN) {\n break;\n }\n }if (aQ) {\n var aI = 0.1;var aH = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case "0":\n break;case "1":\n aS += aI * 1;break;case "2":\n aS += aI * 2;break;case "3":\n aS += aI * 3;break;case "4":\n aS += aI * 4;break;case "5":\n aS += aI * 5;break;case "6":\n aS += aI * 6;break;case "7":\n aS += aI * 7;break;case "8":\n aS += aI * 8;break;case "9":\n aS += aI * 9;break;default:\n aH = true;break;}aI *= 0.1;if (aH) {\n break;\n }\n }\n }if (aJ) {\n aS = -aS;\n }aK[0] = aL;return aS;\n };function g() {\n if (j) {\n return;\n }this._$Ob = null;\n }g.prototype._$zP = function () {\n this._$Ob = new Array();\n };g.prototype._$F0 = function (aH) {\n this._$Ob = aH._$nP();\n };g.prototype._$Ur = function (aK) {\n if (aK._$WS()) {\n return true;\n }var aH = aK._$v2();for (var aJ = this._$Ob.length - 1; aJ >= 0; --aJ) {\n var aI = this._$Ob[aJ].getParamIndex(aH);if (aI == aA._$ds) {\n aI = aK.getParamIndex(this._$Ob[aJ].getParamID());\n }if (aK._$Xb(aI)) {\n return true;\n }\n }return false;\n };g.prototype._$Q2 = function (aL, aV) {\n var aX = this._$Ob.length;var aJ = aL._$v2();var aN = 0;var aI;var aQ;for (var aK = 0; aK < aX; aK++) {\n var aH = this._$Ob[aK];aI = aH.getParamIndex(aJ);if (aI == aA._$ds) {\n aI = aL.getParamIndex(aH.getParamID());aH._$Pb(aI, aJ);\n }if (aI < 0) {\n throw new Exception("err 23242 : " + aH.getParamID());\n }var aU = aI < 0 ? 0 : aL.getParamFloat(aI);aQ = aH._$N2();var aM = aH._$d2();var aP = -1;var aT = 0;var aS;var aR;if (aQ < 1) {} else {\n if (aQ == 1) {\n aS = aM[0];if (aS - aw._$J < aU && aU < aS + aw._$J) {\n aP = 0;aT = 0;\n } else {\n aP = 0;aV[0] = true;\n }\n } else {\n aS = aM[0];if (aU < aS - aw._$J) {\n aP = 0;aV[0] = true;\n } else {\n if (aU < aS + aw._$J) {\n aP = 0;\n } else {\n var aW = false;for (var aO = 1; aO < aQ; ++aO) {\n aR = aM[aO];if (aU < aR + aw._$J) {\n if (aR - aw._$J < aU) {\n aP = aO;\n } else {\n aP = aO - 1;aT = (aU - aS) / (aR - aS);aN++;\n }aW = true;break;\n }aS = aR;\n }if (!aW) {\n aP = aQ - 1;aT = 0;aV[0] = true;\n }\n }\n }\n }\n }aH._$wr(aP);aH._$AL(aT);\n }return aN;\n };g.prototype._$zr = function (aN, aT, aP) {\n var aR = 1 << aP;if (aR + 1 > aw._$Qb) {\n console.log("err 23245\\n");\n }var aS = this._$Ob.length;var aK = 1;var aH = 1;var aJ = 0;for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] = 0;\n }for (var aL = 0; aL < aS; ++aL) {\n var aI = this._$Ob[aL];if (aI._$SL() == 0) {\n var aO = aI._$Lr() * aK;if (aO < 0 && Q._$3T) {\n throw new Exception("err 23246");\n }for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += aO;\n }\n } else {\n var aO = aK * aI._$Lr();var aM = aK * (aI._$Lr() + 1);for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += (aQ / aH | 0) % 2 == 0 ? aO : aM;\n }aT[aJ++] = aI._$SL();aH *= 2;\n }aK *= aI._$N2();\n }aN[aR] = 65535;aT[aJ] = -1;\n };g.prototype._$h2 = function (aJ, aH, aK) {\n var aM = new Float32Array(aH);for (var aL = 0; aL < aH; ++aL) {\n aM[aL] = aK[aL];\n }var aI = new aA();aI._$yP(aJ);aI._$t2(aH, aM);this._$Ob.push(aI);\n };g.prototype._$J2 = function (aO) {\n var aN = aO;var aM = this._$Ob.length;for (var aK = 0; aK < aM; ++aK) {\n var aI = this._$Ob[aK];var aH = aI._$N2();var aJ = aN % aI._$N2();var aL = aI._$d2()[aJ];console.log("%s[%d]=%7.2f / ", aI.getParamID(), aJ, aL);aN /= aH;\n }console.log("\\n");\n };g.prototype.getParamCount = function () {\n return this._$Ob.length;\n };g.prototype._$zs = function () {\n return this._$Ob;\n };function ac() {\n this.m = new Float32Array(16);this.identity();\n }ac.prototype.identity = function () {\n for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aH % 5 == 0 ? 1 : 0;\n }\n };ac.prototype.getArray = function () {\n return this.m;\n };ac.prototype.getCopyMatrix = function () {\n return new Float32Array(this.m);\n };ac.prototype.setMatrix = function (aI) {\n if (aI == null || aI.length != 16) {\n return;\n }for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aI[aH];\n }\n };ac.prototype.mult = function (aH, aJ, aI) {\n if (aJ == null) {\n return null;\n }if (this == aJ) {\n this.mult_safe(this.m, aH.m, aJ.m, aI);\n } else {\n this.mult_fast(this.m, aH.m, aJ.m, aI);\n }return aJ;\n };ac.prototype.mult_safe = function (aI, aH, aM, aJ) {\n if (aI == aM) {\n var aL = new Array(16);this.mult_fast(aI, aH, aL, aJ);for (var aK = 15; aK >= 0; --aK) {\n aM[aK] = aL[aK];\n }\n } else {\n this.mult_fast(aI, aH, aM, aJ);\n }\n };ac.prototype.mult_fast = function (aI, aH, aK, aJ) {\n if (aJ) {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14];aK[3] = aK[7] = aK[11] = 0;aK[15] = 1;\n } else {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2] + aI[12] * aH[3];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6] + aI[12] * aH[7];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10] + aI[12] * aH[11];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12] * aH[15];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2] + aI[13] * aH[3];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6] + aI[13] * aH[7];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10] + aI[13] * aH[11];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13] * aH[15];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2] + aI[14] * aH[3];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6] + aI[14] * aH[7];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10] + aI[14] * aH[11];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14] * aH[15];aK[3] = aI[3] * aH[0] + aI[7] * aH[1] + aI[11] * aH[2] + aI[15] * aH[3];aK[7] = aI[3] * aH[4] + aI[7] * aH[5] + aI[11] * aH[6] + aI[15] * aH[7];aK[11] = aI[3] * aH[8] + aI[7] * aH[9] + aI[11] * aH[10] + aI[15] * aH[11];aK[15] = aI[3] * aH[12] + aI[7] * aH[13] + aI[11] * aH[14] + aI[15] * aH[15];\n }\n };ac.prototype.translate = function (aH, aJ, aI) {\n this.m[12] = this.m[0] * aH + this.m[4] * aJ + this.m[8] * aI + this.m[12];this.m[13] = this.m[1] * aH + this.m[5] * aJ + this.m[9] * aI + this.m[13];this.m[14] = this.m[2] * aH + this.m[6] * aJ + this.m[10] * aI + this.m[14];this.m[15] = this.m[3] * aH + this.m[7] * aJ + this.m[11] * aI + this.m[15];\n };ac.prototype.scale = function (aJ, aI, aH) {\n this.m[0] *= aJ;this.m[4] *= aI;this.m[8] *= aH;this.m[1] *= aJ;this.m[5] *= aI;this.m[9] *= aH;this.m[2] *= aJ;this.m[6] *= aI;this.m[10] *= aH;this.m[3] *= aJ;this.m[7] *= aI;this.m[11] *= aH;\n };ac.prototype.rotateX = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[4];this.m[4] = aI * aK + this.m[8] * aJ;this.m[8] = aI * -aJ + this.m[8] * aK;aI = this.m[5];this.m[5] = aI * aK + this.m[9] * aJ;this.m[9] = aI * -aJ + this.m[9] * aK;aI = this.m[6];this.m[6] = aI * aK + this.m[10] * aJ;this.m[10] = aI * -aJ + this.m[10] * aK;aI = this.m[7];this.m[7] = aI * aK + this.m[11] * aJ;this.m[11] = aI * -aJ + this.m[11] * aK;\n };ac.prototype.rotateY = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[8] * -aJ;this.m[8] = aI * aJ + this.m[8] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[9] * -aJ;this.m[9] = aI * aJ + this.m[9] * aK;aI = m[2];this.m[2] = aI * aK + this.m[10] * -aJ;this.m[10] = aI * aJ + this.m[10] * aK;aI = m[3];this.m[3] = aI * aK + this.m[11] * -aJ;this.m[11] = aI * aJ + this.m[11] * aK;\n };ac.prototype.rotateZ = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[4] * aJ;this.m[4] = aI * -aJ + this.m[4] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[5] * aJ;this.m[5] = aI * -aJ + this.m[5] * aK;aI = this.m[2];this.m[2] = aI * aK + this.m[6] * aJ;this.m[6] = aI * -aJ + this.m[6] * aK;aI = this.m[3];this.m[3] = aI * aK + this.m[7] * aJ;this.m[7] = aI * -aJ + this.m[7] * aK;\n };function Z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }Z.prototype = new ak();Z._$tP = new Object();Z._$27 = function () {\n Z._$tP.clear();\n };Z.getID = function (aH) {\n var aI = Z._$tP[aH];if (aI == null) {\n aI = new Z(aH);Z._$tP[aH] = aI;\n }return aI;\n };Z.prototype._$3s = function () {\n return new Z();\n };function aD() {\n if (j) {\n return;\n }this._$7 = 1;this._$f = 0;this._$H = 0;this._$g = 1;this._$k = 0;this._$w = 0;this._$hi = STATE_IDENTITY;this._$Z = _$pS;\n }aD._$kS = -1;aD._$pS = 0;aD._$hb = 1;aD.STATE_IDENTITY = 0;aD._$gb = 1;aD._$fo = 2;aD._$go = 4;aD.prototype.transform = function (aK, aI, aH) {\n var aT, aS, aR, aM, aL, aJ;var aQ = 0;var aN = 0;switch (this._$hi) {default:\n return;case aD._$go | aD._$fo | aD._$gb:\n aT = this._$7;aS = this._$H;aR = this._$k;aM = this._$f;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO + aR;aI[aN++] = aM * aP + aL * aO + aJ;\n }return;case aD._$go | aD._$fo:\n aT = this._$7;aS = this._$H;aM = this._$f;aL = this._$g;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO;aI[aN++] = aM * aP + aL * aO;\n }return;case aD._$go | aD._$gb:\n aS = this._$H;aR = this._$k;aM = this._$f;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++] + aR;aI[aN++] = aM * aP + aJ;\n }return;case aD._$go:\n aS = this._$H;aM = this._$f;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++];aI[aN++] = aM * aP;\n }return;case aD._$fo | aD._$gb:\n aT = this._$7;aR = this._$k;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++] + aR;aI[aN++] = aL * aK[aQ++] + aJ;\n }return;case aD._$fo:\n aT = this._$7;aL = this._$g;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++];aI[aN++] = aL * aK[aQ++];\n }return;case aD._$gb:\n aR = this._$k;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aK[aQ++] + aR;aI[aN++] = aK[aQ++] + aJ;\n }return;case aD.STATE_IDENTITY:\n if (aK != aI || aQ != aN) {\n P._$jT(aK, aQ, aI, aN, aH * 2);\n }return;}\n };aD.prototype.update = function () {\n if (this._$H == 0 && this._$f == 0) {\n if (this._$7 == 1 && this._$g == 1) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD.STATE_IDENTITY;this._$Z = aD._$pS;\n } else {\n this._$hi = aD._$gb;this._$Z = aD._$hb;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n } else {\n if (this._$7 == 0 && this._$g == 0) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$gb;this._$Z = aD._$kS;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go | aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n }\n };aD.prototype._$RT = function (aK) {\n this._$IT(aK);var aJ = aK[0];var aH = aK[2];var aN = aK[1];var aM = aK[3];var aI = Math.sqrt(aJ * aJ + aN * aN);var aL = aJ * aM - aH * aN;if (aI == 0) {\n if (Q._$so) {\n console.log("affine._$RT() / rt==0");\n }\n } else {\n aK[0] = aI;aK[1] = aL / aI;aK[2] = (aN * aM + aJ * aH) / aL;aK[3] = Math.atan2(aN, aJ);\n }\n };aD.prototype._$ho = function (aN, aM, aI, aH) {\n var aL = new Float32Array(6);var aK = new Float32Array(6);aN._$RT(aL);aM._$RT(aK);var aJ = new Float32Array(6);aJ[0] = aL[0] + (aK[0] - aL[0]) * aI;aJ[1] = aL[1] + (aK[1] - aL[1]) * aI;aJ[2] = aL[2] + (aK[2] - aL[2]) * aI;aJ[3] = aL[3] + (aK[3] - aL[3]) * aI;aJ[4] = aL[4] + (aK[4] - aL[4]) * aI;aJ[5] = aL[5] + (aK[5] - aL[5]) * aI;aH._$CT(aJ);\n };aD.prototype._$CT = function (aJ) {\n var aI = Math.cos(aJ[3]);var aH = Math.sin(aJ[3]);this._$7 = aJ[0] * aI;this._$f = aJ[0] * aH;this._$H = aJ[1] * (aJ[2] * aI - aH);this._$g = aJ[1] * (aJ[2] * aH + aI);this._$k = aJ[4];this._$w = aJ[5];this.update();\n };aD.prototype._$IT = function (aH) {\n aH[0] = this._$7;aH[1] = this._$f;aH[2] = this._$H;aH[3] = this._$g;aH[4] = this._$k;aH[5] = this._$w;\n };function Y() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$7r = null;this._$7r = Y._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = true;this.loopFadeIn = true;this._$AS = -1;_$a0();\n }Y.prototype = new ah();Y._$cs = "VISIBLE:";Y._$ar = "LAYOUT:";Y._$Co = 0;Y._$D2 = [];Y._$1T = 1;Y.loadMotion = function (aR) {\n var aM = new Y();var aI = [0];var aP = aR.length;aM._$yT = 0;for (var aJ = 0; aJ < aP; ++aJ) {\n var aQ = aR[aJ] & 255;if (aQ == "\\n" || aQ == "\\r") {\n continue;\n }if (aQ == "#") {\n for (; aJ < aP; ++aJ) {\n if (aR[aJ] == "\\n" || aR[aJ] == "\\r") {\n break;\n }\n }continue;\n }if (aQ == "$") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == "\\r" || aQ == "\\n") {\n break;\n }if (aQ == "=") {\n aK = aJ;break;\n }\n }var aO = false;if (aK >= 0) {\n if (aK == aT + 4 && aR[aT + 1] == "f" && aR[aT + 2] == "p" && aR[aT + 3] == "s") {\n aO = true;\n }for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == "\\r" || aQ == "\\n") {\n break;\n }if (aQ == "," || aQ == " " || aQ == "\\t") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n if (aO && 5 < aL && aL < 121) {\n aM._$D0 = aL;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aP; ++aJ) {\n if (aR[aJ] == "\\n" || aR[aJ] == "\\r") {\n break;\n }\n }continue;\n }if ("a" <= aQ && aQ <= "z" || "A" <= aQ && aQ <= "Z" || aQ == "_") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == "\\r" || aQ == "\\n") {\n break;\n }if (aQ == "=") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aN = new t();if (G.startsWith(aR, aT, Y._$cs)) {\n aN._$RP = t._$hs;aN._$4P = new String(aR, aT, aK - aT);\n } else {\n if (G.startsWith(aR, aT, Y._$ar)) {\n aN._$4P = new String(aR, aT + 7, aK - aT - 7);if (G.startsWith(aR, aT + 7, "ANCHOR_X")) {\n aN._$RP = t._$xs;\n } else {\n if (G.startsWith(aR, aT + 7, "ANCHOR_Y")) {\n aN._$RP = t._$us;\n } else {\n if (G.startsWith(aR, aT + 7, "SCALE_X")) {\n aN._$RP = t._$qs;\n } else {\n if (G.startsWith(aR, aT + 7, "SCALE_Y")) {\n aN._$RP = t._$Ys;\n } else {\n if (G.startsWith(aR, aT + 7, "X")) {\n aN._$RP = t._$ws;\n } else {\n if (G.startsWith(aR, aT + 7, "Y")) {\n aN._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aN._$RP = t._$Fr;aN._$4P = new String(aR, aT, aK - aT);\n }\n }aM.motions.push(aN);var aS = 0;Y._$D2.clear();for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == "\\r" || aQ == "\\n") {\n break;\n }if (aQ == "," || aQ == " " || aQ == "\\t") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n Y._$D2.push(aL);aS++;var aH = aI[0];if (aH < aJ) {\n console.log("_$n0 _$hi . @Live2DMotion loadMotion()\\n");break;\n }aJ = aH;\n }\n }aN._$I0 = Y._$D2._$BL();if (aS > aM._$yT) {\n aM._$yT = aS;\n }\n }\n }\n }aM._$AS = 1000 * aM._$yT / aM._$D0 | 0;return aM;\n };Y.prototype.getDurationMSec = function () {\n return this._$AS;\n };Y.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log("_$wL[%s] [%d]. ", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log("%5.2f ,", aH._$I0[aI]);\n }console.log("\\n");\n }\n };Y.prototype.updateParamExe = function (aH, aL, aO, aX) {\n var aM = aL - aX._$z2;var aV = aM * this._$D0 / 1000;var aJ = aV | 0;var aP = aV - aJ;for (var aU = 0; aU < this.motions.length; aU++) {\n var aS = this.motions[aU];var aK = aS._$I0.length;var aQ = aS._$4P;if (aS._$RP == t._$hs) {\n var aT = aS._$I0[aJ >= aK ? aK - 1 : aJ];aH.setParamFloat(aQ, aT);\n } else {\n if (t._$ws <= aS._$RP && aS._$RP <= t._$Ys) {} else {\n var aR = aH.getParamFloat(aQ);var aY = aS._$I0[aJ >= aK ? aK - 1 : aJ];var aW = aS._$I0[aJ + 1 >= aK ? aK - 1 : aJ + 1];var aI = aY + (aW - aY) * aP;var aN = aR + (aI - aR) * aO;aH.setParamFloat(aQ, aN);\n }\n }\n }if (aJ >= this._$yT) {\n if (this._$E) {\n aX._$z2 = aL;if (this.loopFadeIn) {\n aX._$bs = aL;\n }\n } else {\n aX._$9L = true;\n }\n }\n };Y.prototype._$r0 = function () {\n return this._$E;\n };Y.prototype._$aL = function (aH) {\n this._$E = aH;\n };Y.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };Y.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function aw() {}aw._$Ms = 1;aw._$Qs = 2;aw._$i2 = 0;aw._$No = 2;aw._$do = aw._$Ms;aw._$Ls = true;aw._$1r = 5;aw._$Qb = 65;aw._$J = 0.0001;aw._$FT = 0.001;aw._$Ss = 3;function ay() {}ay._$o7 = 6;ay._$S7 = 7;ay._$s7 = 8;ay._$77 = 9;ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2 = 10;ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1 = 11;ay._$T7 = ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;ay._$Is = -2004318072;ay._$h0 = 0;ay._$4L = 23;ay._$7P = 33;ay._$uT = function (aH) {\n console.log("_$bo :: _$6 _$mo _$E0 : %d\\n", aH);\n };ay._$9o = function (aH) {\n if (aH < 40) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 50) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 60) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 100) {\n switch (aH) {case 65:\n return new E();case 66:\n return new g();case 67:\n return new aA();case 68:\n return new ab();case 69:\n return new X();case 70:\n return new b();default:\n ay._$uT(aH);return null;}\n } else {\n if (aH < 150) {\n switch (aH) {case 131:\n return new f();case 133:\n return new s();case 136:\n return new w();case 137:\n return new an();case 142:\n return new aq();}\n }\n }\n }\n }\n }ay._$uT(aH);return null;\n };function y(aH) {\n if (j) {\n return;\n }this._$QT = true;this._$co = -1;this._$qo = 0;this._$pb = new Array(y._$is);this._$_2 = new Float32Array(y._$is);this._$vr = new Float32Array(y._$is);this._$Rr = new Float32Array(y._$is);this._$Or = new Float32Array(y._$is);this._$fs = new Float32Array(y._$is);this._$Js = new Array(y._$is);this._$3S = new Array();this._$aS = new Array();this._$Bo = null;this._$F2 = new Array();this._$db = new Array();this._$8b = new Array();this._$Hr = new Array();this._$Ws = null;this._$Vs = null;this._$Er = null;this._$Es = new Int16Array(aw._$Qb);this._$ZP = new Float32Array(aw._$1r * 2);this._$Ri = aH;this._$b0 = y._$HP++;this.clipManager = null;this.dp_webgl = null;\n }y._$HP = 0;y._$_0 = true;y._$V2 = -1;y._$W0 = -1;y._$jr = false;y._$ZS = true;y._$tr = -1000000;y._$lr = 1000000;y._$is = 32;y._$e = false;y.prototype.getDrawDataIndex = function (aI) {\n for (var aH = this._$aS.length - 1; aH >= 0; --aH) {\n if (this._$aS[aH] != null && this._$aS[aH].getDrawDataID() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype.getDrawData = function (aH) {\n if (aH instanceof Z) {\n if (this._$Bo == null) {\n this._$Bo = new Object();var aJ = this._$aS.length;for (var aI = 0; aI < aJ; aI++) {\n var aL = this._$aS[aI];var aK = aL.getDrawDataID();if (aK == null) {\n continue;\n }this._$Bo[aK] = aL;\n }\n }return this._$Bo[id];\n } else {\n if (aH < this._$aS.length) {\n return this._$aS[aH];\n } else {\n return null;\n }\n }\n };y.prototype.release = function () {\n this._$3S.clear();this._$aS.clear();this._$F2.clear();if (this._$Bo != null) {\n this._$Bo.clear();\n }this._$db.clear();this._$8b.clear();this._$Hr.clear();\n };y.prototype.init = function () {\n this._$co++;if (this._$F2.length > 0) {\n this.release();\n }var aO = this._$Ri.getModelImpl();var aT = aO._$Xr();var aS = aT.length;var aH = new Array();var a3 = new Array();for (var aV = 0; aV < aS; ++aV) {\n var a4 = aT[aV];this._$F2.push(a4);this._$Hr.push(a4.init(this));var aK = a4.getBaseData();var aR = aK.length;for (var aU = 0; aU < aR; ++aU) {\n aH.push(aK[aU]);\n }for (var aU = 0; aU < aR; ++aU) {\n var aM = aK[aU].init(this);aM._$l2(aV);a3.push(aM);\n }var a1 = a4.getDrawData();var aP = a1.length;for (var aU = 0; aU < aP; ++aU) {\n var aZ = a1[aU];var a0 = aZ.init(this);a0._$IP = aV;this._$aS.push(aZ);this._$8b.push(a0);\n }\n }var aY = aH.length;var aN = n._$2o();while (true) {\n var aX = false;for (var aV = 0; aV < aY; ++aV) {\n var aL = aH[aV];if (aL == null) {\n continue;\n }var a2 = aL.getTargetBaseDataID();if (a2 == null || a2 == aN || this.getBaseDataIndex(a2) >= 0) {\n this._$3S.push(aL);this._$db.push(a3[aV]);aH[aV] = null;aX = true;\n }\n }if (!aX) {\n break;\n }\n }var aI = aO._$E2();if (aI != null) {\n var aJ = aI._$1s();if (aJ != null) {\n var aW = aJ.length;for (var aV = 0; aV < aW; ++aV) {\n var aQ = aJ[aV];if (aQ == null) {\n continue;\n }this._$02(aQ.getParamID(), aQ.getDefaultValue(), aQ.getMinValue(), aQ.getMaxValue());\n }\n }\n }this.clipManager = new W(this.dp_webgl);this.clipManager.init(this, this._$aS, this._$8b);this._$QT = true;\n };y.prototype.update = function () {\n if (y._$e) {\n q.start("_$zL");\n }var aK = this._$_2.length;for (var aW = 0; aW < aK; aW++) {\n if (this._$_2[aW] != this._$vr[aW]) {\n this._$Js[aW] = y._$ZS;this._$vr[aW] = this._$_2[aW];\n }\n }var aX = false;var aQ = this._$3S.length;var aN = this._$aS.length;var aS = a._$or();var aZ = a._$Pr();var aU = aZ - aS + 1;if (this._$Ws == null || this._$Ws.length < aU) {\n this._$Ws = new Int16Array(aU);this._$Vs = new Int16Array(aU);\n }for (var aW = 0; aW < aU; aW++) {\n this._$Ws[aW] = y._$V2;this._$Vs[aW] = y._$V2;\n }if (this._$Er == null || this._$Er.length < aN) {\n this._$Er = new Int16Array(aN);\n }for (var aW = 0; aW < aN; aW++) {\n this._$Er[aW] = y._$W0;\n }if (y._$e) {\n q.dump("_$zL");\n }if (y._$e) {\n q.start("_$UL");\n }var aL = null;for (var aV = 0; aV < aQ; ++aV) {\n var aJ = this._$3S[aV];var aH = this._$db[aV];try {\n aJ._$Nr(this, aH);aJ._$2b(this, aH);\n } catch (aY) {\n if (aL == null) {\n aL = aY;\n }\n }\n }if (aL != null) {\n if (y._$_0) {\n q._$Rb(aL);\n }\n }if (y._$e) {\n q.dump("_$UL");\n }if (y._$e) {\n q.start("_$DL");\n }var aR = null;for (var aO = 0; aO < aN; ++aO) {\n var aM = this._$aS[aO];var aI = this._$8b[aO];try {\n aM._$Nr(this, aI);if (aI._$u2()) {\n continue;\n }aM._$2b(this, aI);var aT = Math.floor(aM._$zS(this, aI) - aS);var aP;try {\n aP = this._$Vs[aT];\n } catch (aY) {\n console.log("_$li :: %s / %s \t\t\t\t@@_$fS\\n", aY.toString(), aM.getDrawDataID().toString());aT = Math.floor(aM._$zS(this, aI) - aS);continue;\n }if (aP == y._$V2) {\n this._$Ws[aT] = aO;\n } else {\n this._$Er[aP] = aO;\n }this._$Vs[aT] = aO;\n } catch (aY) {\n if (aR == null) {\n aR = aY;Q._$sT(Q._$H7);\n }\n }\n }if (aR != null) {\n if (y._$_0) {\n q._$Rb(aR);\n }\n }if (y._$e) {\n q.dump("_$DL");\n }if (y._$e) {\n q.start("_$eL");\n }for (var aW = this._$Js.length - 1; aW >= 0; aW--) {\n this._$Js[aW] = y._$jr;\n }this._$QT = false;if (y._$e) {\n q.dump("_$eL");\n }return aX;\n };y.prototype.preDraw = function (aH) {\n if (this.clipManager != null) {\n aH._$ZT();this.clipManager.setupClip(this, aH);\n }\n };y.prototype.draw = function (aM) {\n if (this._$Ws == null) {\n q._$li("call _$Ri.update() before _$Ri.draw() ");return;\n }var aP = this._$Ws.length;aM._$ZT();for (var aK = 0; aK < aP; ++aK) {\n var aN = this._$Ws[aK];if (aN == y._$V2) {\n continue;\n }do {\n var aH = this._$aS[aN];var aI = this._$8b[aN];if (aI._$yo()) {\n var aJ = aI._$IP;var aL = this._$Hr[aJ];aI._$VS = aL.getPartsOpacity();aH.draw(aM, this, aI);\n }var aO = this._$Er[aN];if (aO <= aN || aO == y._$W0) {\n break;\n }aN = aO;\n } while (true);\n }\n };y.prototype.getParamIndex = function (aH) {\n for (var aI = this._$pb.length - 1; aI >= 0; --aI) {\n if (this._$pb[aI] == aH) {\n return aI;\n }\n }return this._$02(aH, 0, y._$tr, y._$lr);\n };y.prototype._$BS = function (aH) {\n return this.getBaseDataIndex(aH);\n };y.prototype.getBaseDataIndex = function (aH) {\n for (var aI = this._$3S.length - 1; aI >= 0; --aI) {\n if (this._$3S[aI] != null && this._$3S[aI].getBaseDataID() == aH) {\n return aI;\n }\n }return -1;\n };y.prototype._$UT = function (aJ, aH) {\n var aI = new Float32Array(aH);P._$jT(aJ, 0, aI, 0, aJ.length);return aI;\n };y.prototype._$02 = function (aN, aM, aL, aH) {\n if (this._$qo >= this._$pb.length) {\n var aK = this._$pb.length;var aJ = new Array(aK * 2);P._$jT(this._$pb, 0, aJ, 0, aK);this._$pb = aJ;this._$_2 = this._$UT(this._$_2, aK * 2);this._$vr = this._$UT(this._$vr, aK * 2);this._$Rr = this._$UT(this._$Rr, aK * 2);this._$Or = this._$UT(this._$Or, aK * 2);var aI = new Array();P._$jT(this._$Js, 0, aI, 0, aK);this._$Js = aI;\n }this._$pb[this._$qo] = aN;this._$_2[this._$qo] = aM;this._$vr[this._$qo] = aM;this._$Rr[this._$qo] = aL;this._$Or[this._$qo] = aH;this._$Js[this._$qo] = y._$ZS;return this._$qo++;\n };y.prototype._$Zo = function (aI, aH) {\n this._$3S[aI] = aH;\n };y.prototype.setParamFloat = function (aH, aI) {\n if (aI < this._$Rr[aH]) {\n aI = this._$Rr[aH];\n }if (aI > this._$Or[aH]) {\n aI = this._$Or[aH];\n }this._$_2[aH] = aI;\n };y.prototype.loadParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n aH = this._$fs.length;\n }P._$jT(this._$fs, 0, this._$_2, 0, aH);\n };y.prototype.saveParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n this._$fs = new Float32Array(aH);\n }P._$jT(this._$_2, 0, this._$fs, 0, aH);\n };y.prototype._$v2 = function () {\n return this._$co;\n };y.prototype._$WS = function () {\n return this._$QT;\n };y.prototype._$Xb = function (aH) {\n return this._$Js[aH] == y._$ZS;\n };y.prototype._$vs = function () {\n return this._$Es;\n };y.prototype._$Tr = function () {\n return this._$ZP;\n };y.prototype.getBaseData = function (aH) {\n return this._$3S[aH];\n };y.prototype.getParamFloat = function (aH) {\n return this._$_2[aH];\n };y.prototype.getParamMax = function (aH) {\n return this._$Or[aH];\n };y.prototype.getParamMin = function (aH) {\n return this._$Rr[aH];\n };y.prototype.setPartsOpacity = function (aJ, aH) {\n var aI = this._$Hr[aJ];aI.setPartsOpacity(aH);\n };y.prototype.getPartsOpacity = function (aI) {\n var aH = this._$Hr[aI];return aH.getPartsOpacity();\n };y.prototype.getPartsDataIndex = function (aI) {\n for (var aH = this._$F2.length - 1; aH >= 0; --aH) {\n if (this._$F2[aH] != null && this._$F2[aH]._$p2() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype._$q2 = function (aH) {\n return this._$db[aH];\n };y.prototype._$C2 = function (aH) {\n return this._$8b[aH];\n };y.prototype._$Bb = function (aH) {\n return this._$Hr[aH];\n };y.prototype._$5s = function (aO, aK) {\n var aJ = this._$Ws.length;var aN = aO;for (var aL = 0; aL < aJ; ++aL) {\n var aI = this._$Ws[aL];if (aI == y._$V2) {\n continue;\n }do {\n var aM = this._$8b[aI];if (aM._$yo()) {\n aM._$GT()._$B2(this, aM, aN);aN += aK;\n }var aH = this._$Er[aI];if (aH <= aI || aH == y._$W0) {\n break;\n }aI = aH;\n } while (true);\n }\n };y.prototype.setDrawParam = function (aH) {\n this.dp_webgl = aH;\n };y.prototype.getDrawParam = function () {\n return this.dp_webgl;\n };function ap() {}ap._$0T = function (aH) {\n return ap._$0T(new _$5(aH));\n };ap._$0T = function (aJ) {\n if (!aJ.exists()) {\n throw new _$ls(aJ._$3b());\n }var aH = aJ.length();var aI = new Int8Array(aH);var aM = new _$Xs(new _$kb(aJ), 8192);var aK;var aL = 0;while ((aK = aM.read(aI, aL, aH - aL)) > 0) {\n aL += aK;\n }return aI;\n };ap._$C = function (aJ) {\n var aI = null;var aL = null;try {\n aI = aJ instanceof Array ? aJ : new _$Xs(aJ, 8192);aL = new _$js();var aM = 1000;var aK;var aH = new Int8Array(aM);while ((aK = aI.read(aH)) > 0) {\n aL.write(aH, 0, aK);\n }return aL._$TS();\n } finally {\n if (aJ != null) {\n aJ.close();\n }if (aL != null) {\n aL.flush();aL.close();\n }\n }\n };function ar() {\n if (j) {\n return;\n }this._$12 = null;this._$bb = null;this._$_L = null;this._$jo = null;this._$iL = null;this._$0L = null;this._$Br = null;this._$Dr = null;this._$Cb = null;this._$mr = null;this._$_L = az.STATE_FIRST;this._$Br = 4000;this._$Dr = 100;this._$Cb = 50;this._$mr = 150;this._$jo = true;this._$iL = "PARAM_EYE_L_OPEN";this._$0L = "PARAM_EYE_R_OPEN";\n }ar.prototype._$T2 = function () {\n var aI = P.getUserTimeMSec();var aH = Math._$10();return aI + aH * (2 * this._$Br - 1);\n };ar.prototype._$uo = function (aH) {\n this._$Br = aH;\n };ar.prototype._$QS = function (aI, aH, aJ) {\n this._$Dr = aI;this._$Cb = aH;this._$mr = aJ;\n };ar.prototype._$7T = function (aI) {\n var aK = P.getUserTimeMSec();var aH;var aJ = 0;switch (this._$_L) {case STATE_CLOSING:\n aJ = (aK - this._$bb) / this._$Dr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_CLOSED;this._$bb = aK;\n }aH = 1 - aJ;break;case STATE_CLOSED:\n aJ = (aK - this._$bb) / this._$Cb;if (aJ >= 1) {\n this._$_L = az.STATE_OPENING;this._$bb = aK;\n }aH = 0;break;case STATE_OPENING:\n aJ = (aK - this._$bb) / this._$mr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();\n }aH = aJ;break;case STATE_INTERVAL:\n if (this._$12 < aK) {\n this._$_L = az.STATE_CLOSING;this._$bb = aK;\n }aH = 1;break;case STATE_FIRST:default:\n this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();aH = 1;break;}if (!this._$jo) {\n aH = -aH;\n }aI.setParamFloat(this._$iL, aH);aI.setParamFloat(this._$0L, aH);\n };var az = function az() {};az.STATE_FIRST = "STATE_FIRST";az.STATE_INTERVAL = "STATE_INTERVAL";az.STATE_CLOSING = "STATE_CLOSING";az.STATE_CLOSED = "STATE_CLOSED";az.STATE_OPENING = "STATE_OPENING";function x() {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this._$sb = new Int32Array(x._$As);this._$U2 = new Array();this.transform = null;this.gl = null;if (x._$NT == null) {\n x._$NT = x._$9r(256);x._$vS = x._$9r(256);x._$no = x._$vb(256);\n }\n }x.prototype = new ax();x._$As = 32;x._$Gr = false;x._$NT = null;x._$vS = null;x._$no = null;x._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };x._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };x._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$Hs = function () {\n return x._$Gr;\n };x._$as = function (aH) {\n x._$Gr = aH;\n };x.prototype.setGL = function (aH) {\n this.gl = aH;\n };x.prototype.setTransform = function (aH) {\n this.transform = aH;\n };x.prototype._$ZT = function () {};x.prototype._$Uo = function (aO, aH, aP, aI, aQ, aM, aK, aJ) {\n if (aM < 0.01) {\n return;\n }var aL = this._$U2[aO];var aN = aM > 0.9 ? Q.EXPAND_W : 0;this.gl.drawElements(aL, aP, aI, aQ, aM, aN, this.transform, aJ);\n };x.prototype._$Rs = function () {\n throw new Error("_$Rs");\n };x.prototype._$Ds = function (aH) {\n throw new Error("_$Ds");\n };x.prototype._$K2 = function () {\n for (var aH = 0; aH < this._$sb.length; aH++) {\n var aI = this._$sb[aH];if (aI != 0) {\n this.gl._$Sr(1, this._$sb, aH);this._$sb[aH] = 0;\n }\n }\n };x.prototype.setTexture = function (aI, aH) {\n if (this._$sb.length < aI + 1) {\n this._$nS(aI);\n }this._$sb[aI] = aH;\n };x.prototype.setTexture = function (aH, aI) {\n if (this._$sb.length < aH + 1) {\n this._$nS(aH);\n }this._$U2[aH] = aI;\n };x.prototype._$nS = function (aH) {\n var aK = Math.max(this._$sb.length * 2, aH + 1 + 10);var aI = new Int32Array(aK);P._$jT(this._$sb, 0, aI, 0, this._$sb.length);this._$sb = aI;var aJ = new Array();P._$jT(this._$U2, 0, aJ, 0, this._$U2.length);this._$U2 = aJ;\n };function ab() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$GS = null;this._$Y0 = null;\n }ab.prototype = new c();ab._$Xo = new Float32Array(2);ab._$io = new Float32Array(2);ab._$0o = new Float32Array(2);ab._$Lo = new Float32Array(2);ab._$To = new Float32Array(2);ab._$Po = new Float32Array(2);ab._$gT = new Array();ab.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();this._$Y0 = new Array();\n };ab.prototype.getType = function () {\n return c._$c2;\n };ab.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$GS = aH._$nP();this._$Y0 = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };ab.prototype.init = function (aH) {\n var aI = new al(this);aI._$Yr = new X();if (this._$32()) {\n aI._$Wr = new X();\n }return aI;\n };ab.prototype._$Nr = function (bf, bx) {\n if (!(this == bx._$GT())) {\n console.log("### assert!! ### ");\n }var bm = bx;if (!this._$GS._$Ur(bf)) {\n return;\n }var bw = ab._$gT;bw[0] = false;var a2 = this._$GS._$Q2(bf, bw);bx._$Ib(bw[0]);this.interpolateOpacity(bf, this._$GS, bx, bw);var a3 = bf._$vs();var ba = bf._$Tr();this._$GS._$zr(a3, ba, a2);if (a2 <= 0) {\n var bn = this._$Y0[a3[0]];bm._$Yr.init(bn);\n } else {\n if (a2 == 1) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a9 = ba[0];bm._$Yr._$fL = bn._$fL + (bl._$fL - bn._$fL) * a9;bm._$Yr._$gL = bn._$gL + (bl._$gL - bn._$gL) * a9;bm._$Yr._$B0 = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bm._$Yr._$z0 = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bm._$Yr._$qT = bn._$qT + (bl._$qT - bn._$qT) * a9;\n } else {\n if (a2 == 2) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a1 = this._$Y0[a3[2]];var a0 = this._$Y0[a3[3]];var a9 = ba[0];var a8 = ba[1];var bC = bn._$fL + (bl._$fL - bn._$fL) * a9;var bB = a1._$fL + (a0._$fL - a1._$fL) * a9;bm._$Yr._$fL = bC + (bB - bC) * a8;bC = bn._$gL + (bl._$gL - bn._$gL) * a9;bB = a1._$gL + (a0._$gL - a1._$gL) * a9;bm._$Yr._$gL = bC + (bB - bC) * a8;bC = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bB = a1._$B0 + (a0._$B0 - a1._$B0) * a9;bm._$Yr._$B0 = bC + (bB - bC) * a8;bC = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bB = a1._$z0 + (a0._$z0 - a1._$z0) * a9;bm._$Yr._$z0 = bC + (bB - bC) * a8;bC = bn._$qT + (bl._$qT - bn._$qT) * a9;bB = a1._$qT + (a0._$qT - a1._$qT) * a9;bm._$Yr._$qT = bC + (bB - bC) * a8;\n } else {\n if (a2 == 3) {\n var aP = this._$Y0[a3[0]];var aO = this._$Y0[a3[1]];var bu = this._$Y0[a3[2]];var bs = this._$Y0[a3[3]];var aK = this._$Y0[a3[4]];var aJ = this._$Y0[a3[5]];var bj = this._$Y0[a3[6]];var bi = this._$Y0[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bC = aP._$fL + (aO._$fL - aP._$fL) * a9;var bB = bu._$fL + (bs._$fL - bu._$fL) * a9;var bz = aK._$fL + (aJ._$fL - aK._$fL) * a9;var by = bj._$fL + (bi._$fL - bj._$fL) * a9;bm._$Yr._$fL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$gL + (aO._$gL - aP._$gL) * a9;bB = bu._$gL + (bs._$gL - bu._$gL) * a9;bz = aK._$gL + (aJ._$gL - aK._$gL) * a9;by = bj._$gL + (bi._$gL - bj._$gL) * a9;bm._$Yr._$gL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$B0 + (aO._$B0 - aP._$B0) * a9;bB = bu._$B0 + (bs._$B0 - bu._$B0) * a9;bz = aK._$B0 + (aJ._$B0 - aK._$B0) * a9;by = bj._$B0 + (bi._$B0 - bj._$B0) * a9;bm._$Yr._$B0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$z0 + (aO._$z0 - aP._$z0) * a9;bB = bu._$z0 + (bs._$z0 - bu._$z0) * a9;bz = aK._$z0 + (aJ._$z0 - aK._$z0) * a9;by = bj._$z0 + (bi._$z0 - bj._$z0) * a9;bm._$Yr._$z0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$qT + (aO._$qT - aP._$qT) * a9;bB = bu._$qT + (bs._$qT - bu._$qT) * a9;bz = aK._$qT + (aJ._$qT - aK._$qT) * a9;by = bj._$qT + (bi._$qT - bj._$qT) * a9;bm._$Yr._$qT = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);\n } else {\n if (a2 == 4) {\n var aT = this._$Y0[a3[0]];var aS = this._$Y0[a3[1]];var bE = this._$Y0[a3[2]];var bD = this._$Y0[a3[3]];var aN = this._$Y0[a3[4]];var aM = this._$Y0[a3[5]];var bp = this._$Y0[a3[6]];var bo = this._$Y0[a3[7]];var bh = this._$Y0[a3[8]];var bg = this._$Y0[a3[9]];var aY = this._$Y0[a3[10]];var aW = this._$Y0[a3[11]];var a7 = this._$Y0[a3[12]];var a5 = this._$Y0[a3[13]];var aR = this._$Y0[a3[14]];var aQ = this._$Y0[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var bC = aT._$fL + (aS._$fL - aT._$fL) * a9;var bB = bE._$fL + (bD._$fL - bE._$fL) * a9;var bz = aN._$fL + (aM._$fL - aN._$fL) * a9;var by = bp._$fL + (bo._$fL - bp._$fL) * a9;var bv = bh._$fL + (bg._$fL - bh._$fL) * a9;var bt = aY._$fL + (aW._$fL - aY._$fL) * a9;var br = a7._$fL + (a5._$fL - a7._$fL) * a9;var bq = aR._$fL + (aQ._$fL - aR._$fL) * a9;bm._$Yr._$fL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$gL + (aS._$gL - aT._$gL) * a9;bB = bE._$gL + (bD._$gL - bE._$gL) * a9;bz = aN._$gL + (aM._$gL - aN._$gL) * a9;by = bp._$gL + (bo._$gL - bp._$gL) * a9;bv = bh._$gL + (bg._$gL - bh._$gL) * a9;bt = aY._$gL + (aW._$gL - aY._$gL) * a9;br = a7._$gL + (a5._$gL - a7._$gL) * a9;bq = aR._$gL + (aQ._$gL - aR._$gL) * a9;bm._$Yr._$gL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$B0 + (aS._$B0 - aT._$B0) * a9;bB = bE._$B0 + (bD._$B0 - bE._$B0) * a9;bz = aN._$B0 + (aM._$B0 - aN._$B0) * a9;by = bp._$B0 + (bo._$B0 - bp._$B0) * a9;bv = bh._$B0 + (bg._$B0 - bh._$B0) * a9;bt = aY._$B0 + (aW._$B0 - aY._$B0) * a9;br = a7._$B0 + (a5._$B0 - a7._$B0) * a9;bq = aR._$B0 + (aQ._$B0 - aR._$B0) * a9;bm._$Yr._$B0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$z0 + (aS._$z0 - aT._$z0) * a9;bB = bE._$z0 + (bD._$z0 - bE._$z0) * a9;bz = aN._$z0 + (aM._$z0 - aN._$z0) * a9;by = bp._$z0 + (bo._$z0 - bp._$z0) * a9;bv = bh._$z0 + (bg._$z0 - bh._$z0) * a9;bt = aY._$z0 + (aW._$z0 - aY._$z0) * a9;br = a7._$z0 + (a5._$z0 - a7._$z0) * a9;bq = aR._$z0 + (aQ._$z0 - aR._$z0) * a9;bm._$Yr._$z0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$qT + (aS._$qT - aT._$qT) * a9;bB = bE._$qT + (bD._$qT - bE._$qT) * a9;bz = aN._$qT + (aM._$qT - aN._$qT) * a9;by = bp._$qT + (bo._$qT - bp._$qT) * a9;bv = bh._$qT + (bg._$qT - bh._$qT) * a9;bt = aY._$qT + (aW._$qT - aY._$qT) * a9;br = a7._$qT + (a5._$qT - a7._$qT) * a9;bq = aR._$qT + (aQ._$qT - aR._$qT) * a9;bm._$Yr._$qT = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));\n } else {\n var aV = Math.pow(2, a2) | 0;var aZ = new Float32Array(aV);for (var bk = 0; bk < aV; bk++) {\n var aI = bk;var aH = 1;for (var aL = 0; aL < a2; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aZ[bk] = aH;\n }var bA = new Array();for (var aU = 0; aU < aV; aU++) {\n bA[aU] = this._$Y0[a3[aU]];\n }var be = 0,\n bc = 0,\n bd = 0,\n bb = 0,\n aX = 0;for (var aU = 0; aU < aV; aU++) {\n be += aZ[aU] * bA[aU]._$fL;bc += aZ[aU] * bA[aU]._$gL;bd += aZ[aU] * bA[aU]._$B0;bb += aZ[aU] * bA[aU]._$z0;aX += aZ[aU] * bA[aU]._$qT;\n }bm._$Yr._$fL = be;bm._$Yr._$gL = bc;bm._$Yr._$B0 = bd;bm._$Yr._$z0 = bb;bm._$Yr._$qT = aX;\n }\n }\n }\n }\n }var bn = this._$Y0[a3[0]];bm._$Yr.reflectX = bn.reflectX;bm._$Yr.reflectY = bn.reflectY;\n };ab.prototype._$2b = function (aM, aH) {\n if (!(this == aH._$GT())) {\n console.log("### assert!! ### ");\n }var aR = aH;aR._$hS(true);if (!this._$32()) {\n aR.setTotalScale_notForClient(aR._$Yr._$B0);aR.setTotalOpacity(aR.getInterpolatedOpacity());\n } else {\n var aT = this.getTargetBaseDataID();if (aR._$8r == c._$ur) {\n aR._$8r = aM.getBaseDataIndex(aT);\n }if (aR._$8r < 0) {\n if (Q._$so) {\n q._$li("_$L _$0P _$G :: %s", aT);\n }aR._$hS(false);\n } else {\n var aI = aM.getBaseData(aR._$8r);if (aI != null) {\n var aL = aM._$q2(aR._$8r);var aS = ab._$Xo;aS[0] = aR._$Yr._$fL;aS[1] = aR._$Yr._$gL;var aJ = ab._$io;aJ[0] = 0;aJ[1] = -0.1;var aO = aL._$GT().getType();if (aO == c._$c2) {\n aJ[1] = -10;\n } else {\n aJ[1] = -0.1;\n }var aQ = ab._$0o;this._$Jr(aM, aI, aL, aS, aJ, aQ);var aP = aC._$92(aJ, aQ);aI._$nb(aM, aL, aS, aS, 1, 0, 2);aR._$Wr._$fL = aS[0];aR._$Wr._$gL = aS[1];aR._$Wr._$B0 = aR._$Yr._$B0;aR._$Wr._$z0 = aR._$Yr._$z0;aR._$Wr._$qT = aR._$Yr._$qT - aP * aC._$NS;var aK = aL.getTotalScale();aR.setTotalScale_notForClient(aK * aR._$Wr._$B0);var aN = aL.getTotalOpacity();aR.setTotalOpacity(aN * aR.getInterpolatedOpacity());aR._$Wr.reflectX = aR._$Yr.reflectX;aR._$Wr.reflectY = aR._$Yr.reflectY;aR._$hS(aL._$yo());\n } else {\n aR._$hS(false);\n }\n }\n }\n };ab.prototype._$nb = function (aJ, aR, aL, a4, aT, aO, a2) {\n if (!(this == aR._$GT())) {\n console.log("### assert!! ### ");\n }var aH = aR;var aU = aH._$Wr != null ? aH._$Wr : aH._$Yr;var a0 = Math.sin(aC._$bS * aU._$qT);var aP = Math.cos(aC._$bS * aU._$qT);var a3 = aH.getTotalScale();var aW = aU.reflectX ? -1 : 1;var aV = aU.reflectY ? -1 : 1;var aS = aP * a3 * aW;var aQ = -a0 * a3 * aV;var a1 = a0 * a3 * aW;var aZ = aP * a3 * aV;var aY = aU._$fL;var aX = aU._$gL;var aN, aM;var aI = aT * a2;for (var aK = aO; aK < aI; aK += a2) {\n aN = aL[aK];aM = aL[aK + 1];a4[aK] = aS * aN + aQ * aM + aY;a4[aK + 1] = a1 * aN + aZ * aM + aX;\n }\n };ab.prototype._$Jr = function (aP, aK, aI, aR, aQ, aH) {\n if (!(aK == aI._$GT())) {\n console.log("### assert!! ### ");\n }var aO = ab._$Lo;ab._$Lo[0] = aR[0];ab._$Lo[1] = aR[1];aK._$nb(aP, aI, aO, aO, 1, 0, 2);var aL = ab._$To;var aS = ab._$Po;var aN = 10;var aJ = 1;for (var aM = 0; aM < aN; aM++) {\n aS[0] = aR[0] + aJ * aQ[0];aS[1] = aR[1] + aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aH[0] = aL[0];aH[1] = aL[1];return;\n }aS[0] = aR[0] - aJ * aQ[0];aS[1] = aR[1] - aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aL[0] = -aL[0];aL[0] = -aL[0];aH[0] = aL[0];aH[1] = aL[1];return;\n }aJ *= 0.1;\n }if (Q._$so) {\n console.log("_$L0 to transform _$SP\\n");\n }\n };function al(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Yr = null;this._$Wr = null;\n }al.prototype = new B();function a() {\n if (j) {\n return;\n }ae.prototype.constructor.call(this);this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;\n }a.prototype = new ae();a._$ur = -2;a._$ES = 500;a._$wb = 2;a._$8S = 3;a._$os = 4;a._$52 = a._$ES;a._$R2 = a._$ES;a._$Sb = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < a._$52) {\n a._$52 = aH;\n } else {\n if (aH > a._$R2) {\n a._$R2 = aH;\n }\n }\n }\n };a._$or = function () {\n return a._$52;\n };a._$Pr = function () {\n return a._$R2;\n };a.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = null;\n }a._$Sb(this._$Lb);\n };a.prototype.getClipIDList = function () {\n return this.clipIDList;\n };a.prototype._$Nr = function (aI, aH) {\n aH._$IS[0] = false;aH._$Us = aG._$Z2(aI, this._$GS, aH._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aH._$IS[0]) {\n return;\n }\n }aH._$7s = aG._$br(aI, this._$GS, aH._$IS, this._$mS);\n };a.prototype._$2b = function (aH) {};a.prototype.getDrawDataID = function () {\n return this._$gP;\n };a.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };a.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };a.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };a.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };a.prototype._$gs = function (aH) {\n this._$dr = aH;\n };a.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };a.prototype.getType = function () {};function aq() {\n if (j) {\n return;\n }this._$NL = null;this._$3S = null;this._$aS = null;aq._$42++;\n }aq._$42 = 0;aq.prototype._$1b = function () {\n return this._$3S;\n };aq.prototype.getDrawDataList = function () {\n return this._$aS;\n };aq.prototype._$F0 = function (aH) {\n this._$NL = aH._$nP();this._$aS = aH._$nP();this._$3S = aH._$nP();\n };aq.prototype._$kr = function (aH) {\n aH._$Zo(this._$3S);aH._$xo(this._$aS);this._$3S = null;this._$aS = null;\n };function v() {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this._$zo = new x();\n }v.prototype = new aa();v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v._$to = function () {\n var aH = new v();return aH;\n };v._$er = function (aM) {\n var aJ = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");if (aJ.exists() == false) {\n throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aJ._$PL());\n }var aH = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"];var aK = v.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };v.prototype.setGL = function (aH) {\n this._$zo.setGL(aH);\n };v.prototype.setTransform = function (aH) {\n this._$zo.setTransform(aH);\n };v.prototype.draw = function () {\n this._$5S.draw(this._$zo);\n };v.prototype._$K2 = function () {\n this._$zo._$K2();\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!");\n }this._$zo.setTexture(aI, aH);\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!");\n }this._$zo.setTexture(aI, aH);\n };v.prototype._$Rs = function () {\n return this._$zo._$Rs();\n };v.prototype._$Ds = function (aH) {\n this._$zo._$Ds(aH);\n };v.prototype.getDrawParam = function () {\n return this._$zo;\n };function ao() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$o2 = null;this._$7r = ao._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = false;this.loopFadeIn = true;this._$rr = -1;this._$eP = 0;\n }ao.prototype = new ah();ao._$cs = "VISIBLE:";ao._$ar = "LAYOUT:";ao.MTN_PREFIX_FADEIN = "FADEIN:";ao.MTN_PREFIX_FADEOUT = "FADEOUT:";ao._$Co = 0;ao._$1T = 1;ao.loadMotion = function (aJ) {\n var aI = ap._$C(aJ);var aH = ao.loadMotion(aI);return aH;\n };function p(aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n }ao.loadMotion = function (aT) {\n if (aT instanceof ArrayBuffer) {\n aT = new DataView(aT);\n }var aN = new ao();var aI = [0];var aQ = aT.byteLength;aN._$yT = 0;for (var aJ = 0; aJ < aQ; ++aJ) {\n var aS = p(aT, aJ);var aL = aS.charCodeAt(0);if (aS == "\\n" || aS == "\\r") {\n continue;\n }if (aS == "#") {\n for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == "\\n" || p(aT, aJ) == "\\r") {\n break;\n }\n }continue;\n }if (aS == "$") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == "\\r" || aS == "\\n") {\n break;\n }if (aS == "=") {\n aK = aJ;break;\n }\n }var aP = false;if (aK >= 0) {\n if (aK == aV + 4 && p(aT, aV + 1) == "f" && p(aT, aV + 2) == "p" && p(aT, aV + 3) == "s") {\n aP = true;\n }for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == "\\r" || aS == "\\n") {\n break;\n }if (aS == "," || aS == " " || aS == "\\t") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n if (aP && 5 < aM && aM < 121) {\n aN._$D0 = aM;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == "\\n" || p(aT, aJ) == "\\r") {\n break;\n }\n }continue;\n }if (97 <= aL && aL <= 122 || 65 <= aL && aL <= 90 || aS == "_") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == "\\r" || aS == "\\n") {\n break;\n }if (aS == "=") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aO = new t();if (G.startsWith(aT, aV, ao._$cs)) {\n aO._$RP = t._$hs;aO._$4P = G.createString(aT, aV, aK - aV);\n } else {\n if (G.startsWith(aT, aV, ao._$ar)) {\n aO._$4P = G.createString(aT, aV + 7, aK - aV - 7);if (G.startsWith(aT, aV + 7, "ANCHOR_X")) {\n aO._$RP = t._$xs;\n } else {\n if (G.startsWith(aT, aV + 7, "ANCHOR_Y")) {\n aO._$RP = t._$us;\n } else {\n if (G.startsWith(aT, aV + 7, "SCALE_X")) {\n aO._$RP = t._$qs;\n } else {\n if (G.startsWith(aT, aV + 7, "SCALE_Y")) {\n aO._$RP = t._$Ys;\n } else {\n if (G.startsWith(aT, aV + 7, "X")) {\n aO._$RP = t._$ws;\n } else {\n if (G.startsWith(aT, aV + 7, "Y")) {\n aO._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aO._$RP = t._$Fr;aO._$4P = G.createString(aT, aV, aK - aV);\n }\n }aN.motions.push(aO);var aU = 0;var aR = [];for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == "\\r" || aS == "\\n") {\n break;\n }if (aS == "," || aS == " " || aS == "\\t") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n aR.push(aM);aU++;var aH = aI[0];if (aH < aJ) {\n console.log("_$n0 _$hi . @Live2DMotion loadMotion()\\n");break;\n }aJ = aH - 1;\n }\n }aO._$I0 = new Float32Array(aR);if (aU > aN._$yT) {\n aN._$yT = aU;\n }\n }\n }\n }aN._$rr = 1000 * aN._$yT / aN._$D0 | 0;return aN;\n };ao.prototype.getDurationMSec = function () {\n return this._$E ? -1 : this._$rr;\n };ao.prototype.getLoopDurationMSec = function () {\n return this._$rr;\n };ao.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log("_$wL[%s] [%d]. ", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log("%5.2f ,", aH._$I0[aI]);\n }console.log("\\n");\n }\n };ao.prototype.updateParamExe = function (aJ, aN, aQ, a3) {\n var aO = aN - a3._$z2;var a0 = aO * this._$D0 / 1000;var aK = a0 | 0;var aR = a0 - aK;for (var aZ = 0; aZ < this.motions.length; aZ++) {\n var aV = this.motions[aZ];var aL = aV._$I0.length;var aT = aV._$4P;if (aV._$RP == t._$hs) {\n var aX = aV._$I0[aK >= aL ? aL - 1 : aK];aJ.setParamFloat(aT, aX);\n } else {\n if (t._$ws <= aV._$RP && aV._$RP <= t._$Ys) {} else {\n var aH = aJ.getParamIndex(aT);var a4 = aJ.getModelContext();var aY = a4.getParamMax(aH);var aW = a4.getParamMin(aH);var aM = 0.4;var aS = aM * (aY - aW);var aU = a4.getParamFloat(aH);var a2 = aV._$I0[aK >= aL ? aL - 1 : aK];var a1 = aV._$I0[aK + 1 >= aL ? aL - 1 : aK + 1];var aI;if (a2 < a1 && a1 - a2 > aS || a2 > a1 && a2 - a1 > aS) {\n aI = a2;\n } else {\n aI = a2 + (a1 - a2) * aR;\n }var aP = aU + (aI - aU) * aQ;aJ.setParamFloat(aT, aP);\n }\n }\n }if (aK >= this._$yT) {\n if (this._$E) {\n a3._$z2 = aN;if (this.loopFadeIn) {\n a3._$bs = aN;\n }\n } else {\n a3._$9L = true;\n }\n }this._$eP = aQ;\n };ao.prototype._$r0 = function () {\n return this._$E;\n };ao.prototype._$aL = function (aH) {\n this._$E = aH;\n };ao.prototype._$S0 = function () {\n return this._$D0;\n };ao.prototype._$U0 = function (aH) {\n this._$D0 = aH;\n };ao.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };ao.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function E() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$o = 0;this._$A = 0;this._$GS = null;this._$Eo = null;\n }E.prototype = new c();E._$gT = new Array();E.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };E.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$A = aH._$6L();this._$o = aH._$6L();this._$GS = aH._$nP();this._$Eo = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };E.prototype.init = function (aH) {\n var aI = new H(this);var aJ = (this._$o + 1) * (this._$A + 1);if (aI._$Cr != null) {\n aI._$Cr = null;\n }aI._$Cr = new Float32Array(aJ * 2);if (aI._$hr != null) {\n aI._$hr = null;\n }if (this._$32()) {\n aI._$hr = new Float32Array(aJ * 2);\n } else {\n aI._$hr = null;\n }return aI;\n };E.prototype._$Nr = function (aJ, aI) {\n var aK = aI;if (!this._$GS._$Ur(aJ)) {\n return;\n }var aL = this._$VT();var aH = E._$gT;aH[0] = false;aG._$Vr(aJ, this._$GS, aH, aL, this._$Eo, aK._$Cr, 0, 2);aI._$Ib(aH[0]);this.interpolateOpacity(aJ, this._$GS, aI, aH);\n };E.prototype._$2b = function (aK, aJ) {\n var aL = aJ;aL._$hS(true);if (!this._$32()) {\n aL.setTotalOpacity(aL.getInterpolatedOpacity());\n } else {\n var aH = this.getTargetBaseDataID();if (aL._$8r == c._$ur) {\n aL._$8r = aK.getBaseDataIndex(aH);\n }if (aL._$8r < 0) {\n if (Q._$so) {\n q._$li("_$L _$0P _$G :: %s", aH);\n }aL._$hS(false);\n } else {\n var aN = aK.getBaseData(aL._$8r);var aI = aK._$q2(aL._$8r);if (aN != null && aI._$yo()) {\n var aM = aI.getTotalScale();aL.setTotalScale_notForClient(aM);var aO = aI.getTotalOpacity();aL.setTotalOpacity(aO * aL.getInterpolatedOpacity());aN._$nb(aK, aI, aL._$Cr, aL._$hr, this._$VT(), 0, 2);aL._$hS(true);\n } else {\n aL._$hS(false);\n }\n }\n }\n };E.prototype._$nb = function (aL, aI, aH, aM, aO, aK, aJ) {\n if (true) {\n var aN = aI;var aP = aN._$hr != null ? aN._$hr : aN._$Cr;E.transformPoints_sdk2(aH, aM, aO, aK, aJ, aP, this._$o, this._$A);\n } else {\n this.transformPoints_sdk1(aL, aI, aH, aM, aO, aK, aJ);\n }\n };E.transformPoints_sdk2 = function (a0, bc, a5, aP, aI, aR, aQ, aU) {\n var aW = a5 * aI;var aV;var bn, bm;var aT = 0;var aS = 0;var bl = 0;var bk = 0;var bf = 0;var be = 0;var aZ = false;for (var ba = aP; ba < aW; ba += aI) {\n var bd, a7, a4, aX;a4 = a0[ba];aX = a0[ba + 1];bd = a4 * aQ;a7 = aX * aU;if (bd < 0 || a7 < 0 || aQ <= bd || aU <= a7) {\n var a1 = aQ + 1;if (!aZ) {\n aZ = true;aT = 0.25 * (aR[(0 + 0 * a1) * 2] + aR[(aQ + 0 * a1) * 2] + aR[(0 + aU * a1) * 2] + aR[(aQ + aU * a1) * 2]);aS = 0.25 * (aR[(0 + 0 * a1) * 2 + 1] + aR[(aQ + 0 * a1) * 2 + 1] + aR[(0 + aU * a1) * 2 + 1] + aR[(aQ + aU * a1) * 2 + 1]);var aM = aR[(aQ + aU * a1) * 2] - aR[(0 + 0 * a1) * 2];var aL = aR[(aQ + aU * a1) * 2 + 1] - aR[(0 + 0 * a1) * 2 + 1];var bh = aR[(aQ + 0 * a1) * 2] - aR[(0 + aU * a1) * 2];var bg = aR[(aQ + 0 * a1) * 2 + 1] - aR[(0 + aU * a1) * 2 + 1];bl = (aM + bh) * 0.5;bk = (aL + bg) * 0.5;bf = (aM - bh) * 0.5;be = (aL - bg) * 0.5;if (bl == 0 && bk == 0) {}if (bf == 0 && be == 0) {}aT -= 0.5 * (bl + bf);aS -= 0.5 * (bk + be);\n }if (-2 < a4 && a4 < 3 && -2 < aX && aX < 3) {\n if (a4 <= 0) {\n if (aX <= 0) {\n var a3 = aR[(0 + 0 * a1) * 2];var a2 = aR[(0 + 0 * a1) * 2 + 1];var a8 = aT - 2 * bl;var a6 = aS - 2 * bk;var aK = aT - 2 * bf;var aJ = aS - 2 * be;var aO = aT - 2 * bl - 2 * bf;var aN = aS - 2 * bk - 2 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aK = aR[(0 + aU * a1) * 2];var aJ = aR[(0 + aU * a1) * 2 + 1];var aO = aT - 2 * bl + 1 * bf;var aN = aS - 2 * bk + 1 * be;var a3 = aT + 3 * bf;var a2 = aS + 3 * be;var a8 = aT - 2 * bl + 3 * bf;var a6 = aS - 2 * bk + 3 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - -2);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aK = aR[(0 + aH * a1) * 2];var aJ = aR[(0 + aH * a1) * 2 + 1];var a3 = aR[(0 + (aH + 1) * a1) * 2];var a2 = aR[(0 + (aH + 1) * a1) * 2 + 1];var aO = aT - 2 * bl + bb * bf;var aN = aS - 2 * bk + bb * be;var a8 = aT - 2 * bl + a9 * bf;var a6 = aS - 2 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (1 <= a4) {\n if (aX <= 0) {\n var a8 = aR[(aQ + 0 * a1) * 2];var a6 = aR[(aQ + 0 * a1) * 2 + 1];var a3 = aT + 3 * bl;var a2 = aS + 3 * bk;var aO = aT + 1 * bl - 2 * bf;var aN = aS + 1 * bk - 2 * be;var aK = aT + 3 * bl - 2 * bf;var aJ = aS + 3 * bk - 2 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aO = aR[(aQ + aU * a1) * 2];var aN = aR[(aQ + aU * a1) * 2 + 1];var aK = aT + 3 * bl + 1 * bf;var aJ = aS + 3 * bk + 1 * be;var a8 = aT + 1 * bl + 3 * bf;var a6 = aS + 1 * bk + 3 * be;var a3 = aT + 3 * bl + 3 * bf;var a2 = aS + 3 * bk + 3 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - 1);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aO = aR[(aQ + aH * a1) * 2];var aN = aR[(aQ + aH * a1) * 2 + 1];var a8 = aR[(aQ + (aH + 1) * a1) * 2];var a6 = aR[(aQ + (aH + 1) * a1) * 2 + 1];var aK = aT + 3 * bl + bb * bf;var aJ = aS + 3 * bk + bb * be;var a3 = aT + 3 * bl + a9 * bf;var a2 = aS + 3 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (aX <= 0) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - -2);var bp = aY / aQ;var bo = (aY + 1) / aQ;var a8 = aR[(aY + 0 * a1) * 2];var a6 = aR[(aY + 0 * a1) * 2 + 1];var a3 = aR[(aY + 1 + 0 * a1) * 2];var a2 = aR[(aY + 1 + 0 * a1) * 2 + 1];var aO = aT + bp * bl - 2 * bf;var aN = aS + bp * bk - 2 * be;var aK = aT + bo * bl - 2 * bf;var aJ = aS + bo * bk - 2 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - 1);var bp = aY / aQ;var bo = (aY + 1) / aQ;var aO = aR[(aY + aU * a1) * 2];var aN = aR[(aY + aU * a1) * 2 + 1];var aK = aR[(aY + 1 + aU * a1) * 2];var aJ = aR[(aY + 1 + aU * a1) * 2 + 1];var a8 = aT + bp * bl + 3 * bf;var a6 = aS + bp * bk + 3 * be;var a3 = aT + bo * bl + 3 * bf;var a2 = aS + bo * bk + 3 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n System.err.printf("_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\\n", a4, aX);\n }\n }\n }\n }\n } else {\n bc[ba] = aT + a4 * bl + aX * bf;bc[ba + 1] = aS + a4 * bk + aX * be;\n }\n } else {\n bn = bd - (bd | 0);bm = a7 - (a7 | 0);aV = 2 * ((bd | 0) + (a7 | 0) * (aQ + 1));if (bn + bm < 1) {\n bc[ba] = aR[aV] * (1 - bn - bm) + aR[aV + 2] * bn + aR[aV + 2 * (aQ + 1)] * bm;bc[ba + 1] = aR[aV + 1] * (1 - bn - bm) + aR[aV + 3] * bn + aR[aV + 2 * (aQ + 1) + 1] * bm;\n } else {\n bc[ba] = aR[aV + 2 * (aQ + 1) + 2] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1)] * (1 - bn) + aR[aV + 2] * (1 - bm);bc[ba + 1] = aR[aV + 2 * (aQ + 1) + 3] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1) + 1] * (1 - bn) + aR[aV + 3] * (1 - bm);\n }\n }\n }\n };E.prototype.transformPoints_sdk1 = function (aJ, aR, aL, a0, aU, aP, aZ) {\n var aH = aR;var aO, aN;var aM = this._$o;var aQ = this._$A;var aI = aU * aZ;var aS, aY;var aV;var aX, aW;var aT = aH._$hr != null ? aH._$hr : aH._$Cr;for (var aK = aP; aK < aI; aK += aZ) {\n if (Q._$ts) {\n aO = aL[aK];aN = aL[aK + 1];if (aO < 0) {\n aO = 0;\n } else {\n if (aO > 1) {\n aO = 1;\n }\n }if (aN < 0) {\n aN = 0;\n } else {\n if (aN > 1) {\n aN = 1;\n }\n }aO *= aM;aN *= aQ;aS = aO | 0;aY = aN | 0;if (aS > aM - 1) {\n aS = aM - 1;\n }if (aY > aQ - 1) {\n aY = aQ - 1;\n }aX = aO - aS;aW = aN - aY;aV = 2 * (aS + aY * (aM + 1));\n } else {\n aO = aL[aK] * aM;aN = aL[aK + 1] * aQ;aX = aO - (aO | 0);aW = aN - (aN | 0);aV = 2 * ((aO | 0) + (aN | 0) * (aM + 1));\n }if (aX + aW < 1) {\n a0[aK] = aT[aV] * (1 - aX - aW) + aT[aV + 2] * aX + aT[aV + 2 * (aM + 1)] * aW;a0[aK + 1] = aT[aV + 1] * (1 - aX - aW) + aT[aV + 3] * aX + aT[aV + 2 * (aM + 1) + 1] * aW;\n } else {\n a0[aK] = aT[aV + 2 * (aM + 1) + 2] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1)] * (1 - aX) + aT[aV + 2] * (1 - aW);a0[aK + 1] = aT[aV + 2 * (aM + 1) + 3] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1) + 1] * (1 - aX) + aT[aV + 3] * (1 - aW);\n }\n }\n };E.prototype._$VT = function () {\n return (this._$o + 1) * (this._$A + 1);\n };E.prototype.getType = function () {\n return c._$_b;\n };function H(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Cr = null;this._$hr = null;\n }H.prototype = new B();function s() {\n if (j) {\n return;\n }this.visible = true;this._$g0 = false;this._$NL = null;this._$3S = null;this._$aS = null;s._$42++;\n }s._$42 = 0;s.prototype._$zP = function () {\n this._$3S = new Array();this._$aS = new Array();\n };s.prototype._$F0 = function (aH) {\n this._$g0 = aH._$8L();this.visible = aH._$8L();this._$NL = aH._$nP();this._$3S = aH._$nP();this._$aS = aH._$nP();\n };s.prototype.init = function (aI) {\n var aH = new aj(this);aH.setPartsOpacity(this.isVisible() ? 1 : 0);return aH;\n };s.prototype._$6o = function (aH) {\n if (this._$3S == null) {\n throw new Error("_$3S _$6 _$Wo@_$6o");\n }this._$3S.push(aH);\n };s.prototype._$3o = function (aH) {\n if (this._$aS == null) {\n throw new Error("_$aS _$6 _$Wo@_$3o");\n }this._$aS.push(aH);\n };s.prototype._$Zo = function (aH) {\n this._$3S = aH;\n };s.prototype._$xo = function (aH) {\n this._$aS = aH;\n };s.prototype.isVisible = function () {\n return this.visible;\n };s.prototype._$uL = function () {\n return this._$g0;\n };s.prototype._$KP = function (aH) {\n this.visible = aH;\n };s.prototype._$ET = function (aH) {\n this._$g0 = aH;\n };s.prototype.getBaseData = function () {\n return this._$3S;\n };s.prototype.getDrawData = function () {\n return this._$aS;\n };s.prototype._$p2 = function () {\n return this._$NL;\n };s.prototype._$ob = function (aH) {\n this._$NL = aH;\n };s.prototype.getPartsID = function () {\n return this._$NL;\n };s.prototype._$MP = function (aH) {\n this._$NL = aH;\n };function aj(aH) {\n this._$VS = null;this._$e0 = null;this._$e0 = aH;\n }aj.prototype = new S();aj.prototype.getPartsOpacity = function () {\n return this._$VS;\n };aj.prototype.setPartsOpacity = function (aH) {\n this._$VS = aH;\n };function ak(aH) {\n if (j) {\n return;\n }this.id = aH;\n }ak._$L7 = function () {\n z._$27();n._$27();Z._$27();i._$27();\n };ak.prototype.toString = function () {\n return this.id;\n };function D() {}D.prototype._$F0 = function (aH) {};function an() {\n if (j) {\n return;\n }this._$4S = null;\n }an.prototype._$1s = function () {\n return this._$4S;\n };an.prototype._$zP = function () {\n this._$4S = new Array();\n };an.prototype._$F0 = function (aH) {\n this._$4S = aH._$nP();\n };an.prototype._$Ks = function (aH) {\n this._$4S.push(aH);\n };function au(aH, aI) {\n this.canvas = aH;this.context = aI;this.viewport = new Array(0, 0, aH.width, aH.height);this._$6r = 1;this._$xP = 0;this._$3r = 1;this._$uP = 0;this._$Qo = -1;this.cacheImages = {};\n }au.tr = new am();au._$50 = new am();au._$Ti = new Array(0, 0);au._$Pi = new Array(0, 0);au._$B = new Array(0, 0);au.prototype._$lP = function (aI, aK, aJ, aH) {\n this.viewport = new Array(aI, aK, aJ, aH);\n };au.prototype._$bL = function () {\n this.context.save();var aH = this.viewport;if (aH != null) {\n this.context.beginPath();this.context._$Li(aH[0], aH[1], aH[2], aH[3]);this.context.clip();\n }\n };au.prototype._$ei = function () {\n this.context.restore();\n };au.prototype.drawElements = function (bc, bm, aX, aJ, bA, aM, bl, bz) {\n try {\n if (bA != this._$Qo) {\n this._$Qo = bA;this.context.globalAlpha = bA;\n }var a2 = bm.length;var aP = bc.width;var a5 = bc.height;var bE = this.context;var a7 = this._$xP;var a6 = this._$uP;var a1 = this._$6r;var aZ = this._$3r;var bD = au.tr;var aI = au._$Ti;var aH = au._$Pi;var bu = au._$B;for (var by = 0; by < a2; by += 3) {\n bE.save();var aW = bm[by];var aV = bm[by + 1];var aT = bm[by + 2];var aL = a7 + a1 * aX[aW * 2];var aK = a6 + aZ * aX[aW * 2 + 1];var br = a7 + a1 * aX[aV * 2];var bp = a6 + aZ * aX[aV * 2 + 1];var bh = a7 + a1 * aX[aT * 2];var bf = a6 + aZ * aX[aT * 2 + 1];if (bl) {\n bl._$PS(aL, aK, bu);aL = bu[0];aK = bu[1];bl._$PS(br, bp, bu);br = bu[0];bp = bu[1];bl._$PS(bh, bf, bu);bh = bu[0];bf = bu[1];\n }var aS = aP * aJ[aW * 2];var aQ = a5 - a5 * aJ[aW * 2 + 1];var bx = aP * aJ[aV * 2];var bw = a5 - a5 * aJ[aV * 2 + 1];var bk = aP * aJ[aT * 2];var bj = a5 - a5 * aJ[aT * 2 + 1];var a3 = Math.atan2(bw - aQ, bx - aS);var a0 = Math.atan2(bp - aK, br - aL);var aO = br - aL;var aN = bp - aK;var bi = Math.sqrt(aO * aO + aN * aN);var aU = bx - aS;var aR = bw - aQ;var bt = Math.sqrt(aU * aU + aR * aR);var bv = bi / bt;ad._$ni(bk, bj, aS, aQ, bx - aS, bw - aQ, -(bw - aQ), bx - aS, aI);ad._$ni(bh, bf, aL, aK, br - aL, bp - aK, -(bp - aK), br - aL, aH);var aY = (aH[0] - aI[0]) / aI[1];var bs = Math.min(aS, bx, bk);var bg = Math.max(aS, bx, bk);var bq = Math.min(aQ, bw, bj);var be = Math.max(aQ, bw, bj);var bo = Math.floor(bs);var bb = Math.floor(bq);var a4 = Math.ceil(bg);var bC = Math.ceil(be);bD.identity();bD.translate(aL, aK);bD.rotate(a0);bD.scale(1, aH[1] / aI[1]);bD.shear(aY, 0);bD.scale(bv, bv);bD.rotate(-a3);bD.translate(-aS, -aQ);bD.setContext(bE);var a8 = true;var a9 = 1.2;if (!aM) {\n aM = a8 ? a9 : 0;\n }if (Q.IGNORE_EXPAND) {\n aM = 0;\n }if (Q.USE_CACHED_POLYGON_IMAGE) {\n var bd = bz._$e0;bd.gl_cacheImage = bd.gl_cacheImage || {};if (!bd.gl_cacheImage[by]) {\n var bn = au.createCanvas(a4 - bo, bC - bb);Q.DEBUG_DATA.LDGL_CANVAS_MB = Q.DEBUG_DATA.LDGL_CANVAS_MB || 0;Q.DEBUG_DATA.LDGL_CANVAS_MB += (a4 - bo) * (bC - bb) * 4;var ba = bn.getContext("2d");ba.translate(-bo, -bb);au.clip(ba, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);ba.drawImage(bc, 0, 0);bd.gl_cacheImage[by] = { cacheCanvas: bn, cacheContext: ba };\n }bE.drawImage(bd.gl_cacheImage[by]["cacheCanvas"], bo, bb);\n } else {\n if (!Q.IGNORE_CLIP) {\n au.clip(bE, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);\n }if (Q.USE_ADJUST_TRANSLATION) {\n bs = 0;bg = aP;bq = 0;be = a5;\n }bE.drawImage(bc, bs, bq, bg - bs, be - bq, bs, bq, bg - bs, be - bq);\n }bE.restore();\n }\n } catch (bB) {\n q._$Rb(bB);\n }\n };au.clip = function (aK, aJ, aV, aI, aM, aL, aU, aT, aQ, aP, aO, aN, aH, aW, aS, aR) {\n if (aV > 0.02) {\n au.expandClip(aK, aJ, aV, aI, aO, aN, aH, aW, aS, aR);\n } else {\n au.clipWithTransform(aK, null, aM, aL, aU, aT, aQ, aP);\n }\n };au.expandClip = function (aV, bg, aK, a3, aJ, aI, be, ba, aZ, aX) {\n var aP = be - aJ;var aO = ba - aI;var bi = aZ - aJ;var bh = aX - aI;var bj = aP * bh - aO * bi > 0 ? aK : -aK;var aL = -aO;var aH = aP;var bc = aZ - be;var a8 = aX - ba;var a7 = -a8;var a6 = bc;var aQ = Math.sqrt(bc * bc + a8 * a8);var bf = -bh;var bb = bi;var a2 = Math.sqrt(bi * bi + bh * bh);var bd = aJ - bj * aL / a3;var a9 = aI - bj * aH / a3;var aY = be - bj * aL / a3;var aW = ba - bj * aH / a3;var a5 = be - bj * a7 / aQ;var a4 = ba - bj * a6 / aQ;var aS = aZ - bj * a7 / aQ;var aR = aX - bj * a6 / aQ;var aN = aJ + bj * bf / a2;var aM = aI + bj * bb / a2;var a1 = aZ + bj * bf / a2;var a0 = aX + bj * bb / a2;var aU = au._$50;var aT = bg._$P2(aU);if (aT == null) {\n return false;\n }au.clipWithTransform(aV, aU, bd, a9, aY, aW, a5, a4, aS, aR, a1, a0, aN, aM);return true;\n };au.clipWithTransform = function (aH, aI, aS, aN, aQ, aK, aP, aJ) {\n if (arguments.length < 1 + 3 * 2) {\n q._$li("err : @LDGL.clip()");return;\n }if (!(arguments[1] instanceof am)) {\n q._$li("err : a[0] is _$6 LDTransform @LDGL.clip()");return;\n }var aM = au._$B;var aO = aI;var aR = arguments;aH.beginPath();if (aO) {\n aO._$PS(aR[2], aR[3], aM);aH.moveTo(aM[0], aM[1]);for (var aL = 4; aL < aR.length; aL += 2) {\n aO._$PS(aR[aL], aR[aL + 1], aM);aH.lineTo(aM[0], aM[1]);\n }\n } else {\n aH.moveTo(aR[2], aR[3]);for (var aL = 4; aL < aR.length; aL += 2) {\n aH.lineTo(aR[aL], aR[aL + 1]);\n }\n }aH.clip();\n };au.createCanvas = function (aH, aJ) {\n var aI = document.createElement("canvas");aI.setAttribute("width", aH);aI.setAttribute("height", aJ);if (!aI) {\n q._$li("err : " + aI);\n }return aI;\n };au.dumpValues = function () {\n var aI = "";for (var aH = 0; aH < arguments.length; aH++) {\n aI += "[" + aH + "]= " + arguments[aH].toFixed(3) + " , ";\n }console.log(aI);\n };function f() {\n if (j) {\n return;\n }this._$TT = null;this._$LT = null;this._$FS = null;this._$wL = null;\n }f.prototype._$F0 = function (aH) {\n this._$TT = aH._$_T();this._$LT = aH._$_T();this._$FS = aH._$_T();this._$wL = aH._$nP();\n };f.prototype.getMinValue = function () {\n return this._$TT;\n };f.prototype.getMaxValue = function () {\n return this._$LT;\n };f.prototype.getDefaultValue = function () {\n return this._$FS;\n };f.prototype.getParamID = function () {\n return this._$wL;\n };function B(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$JS = false;this._$AT = true;this._$e0 = aH;this.totalScale = 1;this._$7s = 1;this.totalOpacity = 1;\n }B.prototype._$yo = function () {\n return this._$AT && !this._$JS;\n };B.prototype._$hS = function (aH) {\n this._$AT = aH;\n };B.prototype._$GT = function () {\n return this._$e0;\n };B.prototype._$l2 = function (aH) {\n this._$IP = aH;\n };B.prototype.getPartsIndex = function () {\n return this._$IP;\n };B.prototype._$x2 = function () {\n return this._$JS;\n };B.prototype._$Ib = function (aH) {\n this._$JS = aH;\n };B.prototype.getTotalScale = function () {\n return this.totalScale;\n };B.prototype.setTotalScale_notForClient = function (aH) {\n this.totalScale = aH;\n };B.prototype.getInterpolatedOpacity = function () {\n return this._$7s;\n };B.prototype.setInterpolatedOpacity = function (aH) {\n this._$7s = aH;\n };B.prototype.getTotalOpacity = function (aH) {\n return this.totalOpacity;\n };B.prototype.setTotalOpacity = function (aH) {\n this.totalOpacity = aH;\n };function Q() {}Q._$2s = "2.1.00_1";Q._$Kr = 201001000;Q._$sP = true;Q._$so = true;Q._$cb = false;Q._$3T = true;Q._$Ts = true;Q._$fb = true;Q._$ts = true;Q.L2D_DEFORMER_EXTEND = true;Q._$Wb = false;Q._$yr = false;Q._$Zs = false;Q.L2D_NO_ERROR = 0;Q._$i7 = 1000;Q._$9s = 1001;Q._$es = 1100;Q._$r7 = 2000;Q._$07 = 2001;Q._$b7 = 2002;Q._$H7 = 4000;Q.L2D_COLOR_BLEND_MODE_MULT = 0;Q.L2D_COLOR_BLEND_MODE_ADD = 1;Q.L2D_COLOR_BLEND_MODE_INTERPOLATE = 2;Q._$6b = true;Q._$cT = 0;Q.clippingMaskBufferSize = 256;Q.glContext = new Array();Q.frameBuffers = new Array();Q.fTexture = new Array();Q.IGNORE_CLIP = false;Q.IGNORE_EXPAND = false;Q.EXPAND_W = 2;Q.USE_ADJUST_TRANSLATION = true;Q.USE_CANVAS_TRANSFORM = true;Q.USE_CACHED_POLYGON_IMAGE = false;Q.DEBUG_DATA = {};Q.PROFILE_IOS_SPEED = { PROFILE_NAME: "iOS Speed", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: true, EXPAND_W: 4 };Q.PROFILE_IOS_QUALITY = { PROFILE_NAME: "iOS HiQ", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_IOS_DEFAULT = Q.PROFILE_IOS_QUALITY;Q.PROFILE_ANDROID = { PROFILE_NAME: "Android", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_DESKTOP = { PROFILE_NAME: "Desktop", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.initProfile = function () {\n if (r.isIOS()) {\n Q.setupProfile(Q.PROFILE_IOS_DEFAULT);\n } else {\n if (r.isAndroid()) {\n Q.setupProfile(Q.PROFILE_ANDROID);\n } else {\n Q.setupProfile(Q.PROFILE_DESKTOP);\n }\n }\n };Q.setupProfile = function (aI, aJ) {\n if (typeof aI == "number") {\n switch (aI) {case 9901:\n aI = Q.PROFILE_IOS_SPEED;break;case 9902:\n aI = Q.PROFILE_IOS_QUALITY;break;case 9903:\n aI = Q.PROFILE_IOS_DEFAULT;break;case 9904:\n aI = Q.PROFILE_ANDROID;break;case 9905:\n aI = Q.PROFILE_DESKTOP;break;default:\n alert("profile _$6 _$Ui : " + aI);break;}\n }if (arguments.length < 2) {\n aJ = true;\n }if (aJ) {\n console.log("profile : " + aI.PROFILE_NAME);\n }for (var aH in aI) {\n Q[aH] = aI[aH];if (aJ) {\n console.log(" [" + aH + "] = " + aI[aH]);\n }\n }\n };Q.init = function () {\n if (Q._$6b) {\n console.log("Live2D %s", Q._$2s);Q._$6b = false;var aH = false;aH = true;Q.initProfile();\n }\n };Q.getVersionStr = function () {\n return Q._$2s;\n };Q.getVersionNo = function () {\n return Q._$Kr;\n };Q._$sT = function (aH) {\n Q._$cT = aH;\n };Q.getError = function () {\n var aH = Q._$cT;Q._$cT = 0;return aH;\n };Q.dispose = function () {\n Q.glContext = [];Q.frameBuffers = [];Q.fTexture = [];\n };Q.setGL = function (aJ, aI) {\n var aH = aI || 0;Q.glContext[aH] = aJ;\n };Q.getGL = function (aH) {\n return Q.glContext[aH];\n };Q.setClippingMaskBufferSize = function (aH) {\n Q.clippingMaskBufferSize = aH;\n };Q.getClippingMaskBufferSize = function () {\n return Q.clippingMaskBufferSize;\n };Q.deleteBuffer = function (aI) {\n var aH = Q.getGL(aI);aH.deleteFramebuffer(Q.frameBuffers[aI].framebuffer);delete Q.frameBuffers[aI];delete Q.glContext[aI];\n };function A() {}A._$r2 = function (aH) {\n if (aH < 0) {\n return 0;\n } else {\n if (aH > 1) {\n return 1;\n }\n }return 0.5 - 0.5 * Math.cos(aH * aC.PI_F);\n };function J(aH) {\n if (j) {\n return;\n }this._$ib = aH;\n }J._$fr = -1;J.prototype.toString = function () {\n return this._$ib;\n };function b() {\n if (j) {\n return;\n }a.prototype.constructor.call(this);this._$LP = -1;this._$d0 = 0;this._$Yo = 0;this._$JP = null;this._$5P = null;this._$BP = null;this._$Eo = null;this._$Qi = null;this._$6s = b._$ms;this.culling = true;this.gl_cacheImage = null;this.instanceNo = b._$42++;\n }b.prototype = new a();b._$42 = 0;b._$Os = 30;b._$ms = 0;b._$ns = 1;b._$_s = 2;b._$gT = new Array();b.prototype._$_S = function (aH) {\n this._$LP = aH;\n };b.prototype.getTextureNo = function () {\n return this._$LP;\n };b.prototype._$ZL = function () {\n return this._$Qi;\n };b.prototype._$H2 = function () {\n return this._$JP;\n };b.prototype.getNumPoints = function () {\n return this._$d0;\n };b.prototype.getType = function () {\n return a._$wb;\n };b.prototype._$B2 = function (aL, aH, aO) {\n var aM = aH;var aN = aM._$hr != null ? aM._$hr : aM._$Cr;var aK = aw._$do;switch (aK) {default:case aw._$Ms:\n throw new Error("_$L _$ro ");case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aI = aJ * aw._$No;aN[aI + 4] = aO;\n }break;}\n };b.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };b.prototype._$F0 = function (aK) {\n a.prototype._$F0.call(this, aK);this._$LP = aK._$6L();this._$d0 = aK._$6L();this._$Yo = aK._$6L();var aH = aK._$nP();this._$BP = new Int16Array(this._$Yo * 3);for (var aJ = this._$Yo * 3 - 1; aJ >= 0; --aJ) {\n this._$BP[aJ] = aH[aJ];\n }this._$Eo = aK._$nP();this._$Qi = aK._$nP();if (aK.getFormatVersion() >= ay._$s7) {\n this._$JP = aK._$6L();if (this._$JP != 0) {\n if ((this._$JP & 1) != 0) {\n var aI = aK._$6L();if (this._$5P == null) {\n this._$5P = new Object();\n }this._$5P._$Hb = parseInt(aI);\n }if ((this._$JP & b._$Os) != 0) {\n this._$6s = (this._$JP & b._$Os) >> 1;\n } else {\n this._$6s = b._$ms;\n }if ((this._$JP & 32) != 0) {\n this.culling = false;\n }\n }\n } else {\n this._$JP = 0;\n }\n };b.prototype.init = function (aL) {\n var aN = new ag(this);var aI = this._$d0 * aw._$No;var aH = this._$32();if (aN._$Cr != null) {\n aN._$Cr = null;\n }aN._$Cr = new Float32Array(aI);if (aN._$hr != null) {\n aN._$hr = null;\n }aN._$hr = aH ? new Float32Array(aI) : null;var aM = aw._$do;switch (aM) {default:case aw._$Ms:\n if (aw._$Ls) {\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;this._$Qi[aO + 1] = 1 - this._$Qi[aO + 1];\n }\n }break;case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;var aK = aJ * aw._$No;var aQ = this._$Qi[aO];var aP = this._$Qi[aO + 1];aN._$Cr[aK] = aQ;aN._$Cr[aK + 1] = aP;aN._$Cr[aK + 4] = 0;if (aH) {\n aN._$hr[aK] = aQ;aN._$hr[aK + 1] = aP;aN._$hr[aK + 4] = 0;\n }\n }break;}return aN;\n };b.prototype._$Nr = function (aJ, aH) {\n var aK = aH;if (!(this == aK._$GT())) {\n console.log("### assert!! ### ");\n }if (!this._$GS._$Ur(aJ)) {\n return;\n }a.prototype._$Nr.call(this, aJ, aK);if (aK._$IS[0]) {\n return;\n }var aI = b._$gT;aI[0] = false;aG._$Vr(aJ, this._$GS, aI, this._$d0, this._$Eo, aK._$Cr, aw._$i2, aw._$No);\n };b.prototype._$2b = function (aK, aI) {\n try {\n if (!(this == aI._$GT())) {\n console.log("### assert!! ### ");\n }var aL = false;if (aI._$IS[0]) {\n aL = true;\n }var aM = aI;if (!aL) {\n a.prototype._$2b.call(this, aK);if (this._$32()) {\n var aH = this.getTargetBaseDataID();if (aM._$8r == a._$ur) {\n aM._$8r = aK.getBaseDataIndex(aH);\n }if (aM._$8r < 0) {\n if (Q._$so) {\n q._$li("_$L _$0P _$G :: %s", aH);\n }\n } else {\n var aO = aK.getBaseData(aM._$8r);var aJ = aK._$q2(aM._$8r);if (aO != null && !aJ._$x2()) {\n aO._$nb(aK, aJ, aM._$Cr, aM._$hr, this._$d0, aw._$i2, aw._$No);aM._$AT = true;\n } else {\n aM._$AT = false;\n }aM.baseOpacity = aJ.getTotalOpacity();\n }\n }\n }\n } catch (aN) {\n throw aN;\n }\n };b.prototype.draw = function (aN, aK, aI) {\n if (!(this == aI._$GT())) {\n console.log("### assert!! ### ");\n }if (aI._$IS[0]) {\n return;\n }var aL = aI;var aJ = this._$LP;if (aJ < 0) {\n aJ = 1;\n }var aH = this.getOpacity(aK, aL) * aI._$VS * aI.baseOpacity;var aM = aL._$hr != null ? aL._$hr : aL._$Cr;aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);aN._$WP(this.culling);aN._$Uo(aJ, 3 * this._$Yo, this._$BP, aM, this._$Qi, aH, this._$6s, aL);\n };b.prototype.dump = function () {\n console.log(" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n", this._$LP, this._$d0, this._$Yo);console.log(" _$Oi _$di = { ");for (var aJ = 0; aJ < this._$BP.length; aJ++) {\n console.log("%5d ,", this._$BP[aJ]);\n }console.log("\\n _$5i _$30");for (var aJ = 0; aJ < this._$Eo.length; aJ++) {\n console.log("\\n _$30[%d] = ", aJ);var aH = this._$Eo[aJ];for (var aI = 0; aI < aH.length; aI++) {\n console.log("%6.2f, ", aH[aI]);\n }\n }console.log("\\n");\n };b.prototype._$72 = function (aH) {\n if (this._$5P == null) {\n return null;\n }return this._$5P[aH];\n };b.prototype.getIndexArray = function () {\n return this._$BP;\n };function ag(aH) {\n aB.prototype.constructor.call(this, aH);this._$8r = a._$ur;this._$Cr = null;this._$hr = null;\n }ag.prototype = new aB();ag.prototype.getTransformedPoints = function () {\n return this._$hr != null ? this._$hr : this._$Cr;\n };function k() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }k.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };k.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };function l(aH) {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this.drawParamWebGL = new C(aH);this.drawParamWebGL.setGL(Q.getGL(aH));\n }l.prototype = new aa();l.loadModel = function (aI) {\n var aH = new l();aa._$62(aH, aI);return aH;\n };l.loadModel = function (aI, aK) {\n var aJ = aK || 0;var aH = new l(aJ);aa._$62(aH, aI);return aH;\n };l._$to = function () {\n var aH = new l();return aH;\n };l._$er = function (aM) {\n var aJ = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");if (aJ.exists() == false) {\n throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aJ._$PL());\n }var aH = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"];var aK = l.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };l.prototype.setGL = function (aH) {\n Q.setGL(aH);\n };l.prototype.setTransform = function (aH) {\n this.drawParamWebGL.setTransform(aH);\n };l.prototype.update = function () {\n this._$5S.update();this._$5S.preDraw(this.drawParamWebGL);\n };l.prototype.draw = function () {\n this._$5S.draw(this.drawParamWebGL);\n };l.prototype._$K2 = function () {\n this.drawParamWebGL._$K2();\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype._$Rs = function () {\n return this.drawParamWebGL._$Rs();\n };l.prototype._$Ds = function (aH) {\n this.drawParamWebGL._$Ds(aH);\n };l.prototype.getDrawParam = function () {\n return this.drawParamWebGL;\n };l.prototype.setMatrix = function (aH) {\n this.drawParamWebGL.setMatrix(aH);\n };l.prototype.setPremultipliedAlpha = function (aH) {\n this.drawParamWebGL.setPremultipliedAlpha(aH);\n };l.prototype.isPremultipliedAlpha = function () {\n return this.drawParamWebGL.isPremultipliedAlpha();\n };l.prototype.setAnisotropy = function (aH) {\n this.drawParamWebGL.setAnisotropy(aH);\n };l.prototype.getAnisotropy = function () {\n return this.drawParamWebGL.getAnisotropy();\n };function V() {\n if (j) {\n return;\n }this.motions = null;this._$eb = false;this.motions = new Array();\n }V.prototype._$tb = function () {\n return this.motions;\n };V.prototype.startMotion = function (aJ, aI) {\n var aM = null;var aL = null;var aH = this.motions.length;for (var aK = 0; aK < aH; ++aK) {\n aL = this.motions[aK];if (aL == null) {\n continue;\n }aL._$qS(aL._$w0.getFadeOut());if (this._$eb) {\n q._$Ji("MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\\n", aH, aL._$sr);\n }\n }if (aJ == null) {\n return -1;\n }aL = new M();aL._$w0 = aJ;this.motions.push(aL);var aN = aL._$sr;if (this._$eb) {\n q._$Ji("MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n", aH, aN);\n }return aN;\n };V.prototype.updateParam = function (aJ) {\n try {\n var aI = false;for (var aK = 0; aK < this.motions.length; aK++) {\n var aL = this.motions[aK];if (aL == null) {\n this.motions.splice(aK, 1);aK--;continue;\n }var aH = aL._$w0;if (aH == null) {\n this.motions = this.motions.splice(aK, 1);aK--;continue;\n }aH.updateParam(aJ, aL);aI = true;if (aL.isFinished()) {\n if (this._$eb) {\n q._$Ji("MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\\n", this.motions.length - 1, aL._$sr);\n }this.motions.splice(aK, 1);aK--;\n } else {}\n }return aI;\n } catch (aM) {\n q._$li(aM);return true;\n }\n };V.prototype.isFinished = function (aK) {\n if (arguments.length >= 1) {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n continue;\n }if (aJ._$sr == aK && !aJ.isFinished()) {\n return false;\n }\n }return true;\n } else {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (!aJ.isFinished()) {\n return false;\n }\n }return true;\n }\n };V.prototype.stopAllMotions = function () {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (true) {\n this.motions.splice(aI, 1);aI--;\n }\n }\n };V.prototype._$Zr = function (aH) {\n this._$eb = aH;\n };V.prototype._$e = function () {\n console.log("-- _$R --\\n");for (var aH = 0; aH < this.motions.length; aH++) {\n var aI = this.motions[aH];var aJ = aI._$w0;console.log("MotionQueueEnt[%d] :: %s\\n", this.motions.length, aJ.toString());\n }\n };function M() {\n this._$w0 = null;this._$AT = true;this._$9L = false;this._$z2 = -1;this._$bs = -1;this._$Do = -1;this._$sr = null;this._$sr = M._$Gs++;\n }M._$Gs = 0;M.prototype.isFinished = function () {\n return this._$9L;\n };M.prototype._$qS = function (aJ) {\n var aI = P.getUserTimeMSec();var aH = aI + aJ;if (this._$Do < 0 || aH < this._$Do) {\n this._$Do = aH;\n }\n };M.prototype._$Bs = function () {\n return this._$sr;\n };function am() {\n this.m = new Array(1, 0, 0, 0, 1, 0, 0, 0, 1);\n }am.prototype.setContext = function (aI) {\n var aH = this.m;aI.transform(aH[0], aH[1], aH[3], aH[4], aH[6], aH[7]);\n };am.prototype.toString = function () {\n var aI = "LDTransform { ";for (var aH = 0; aH < 9; aH++) {\n aI += this.m[aH].toFixed(2) + " ,";\n }aI += " }";return aI;\n };am.prototype.identity = function () {\n var aH = this.m;aH[0] = aH[4] = aH[8] = 1;aH[1] = aH[2] = aH[3] = aH[5] = aH[6] = aH[7] = 0;\n };am.prototype._$PS = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype._$P2 = function (aK) {\n if (!aK) {\n aK = new am();\n }var aI = this.m;var aT = aI[0];var aS = aI[1];var aR = aI[2];var aQ = aI[3];var aP = aI[4];var aO = aI[5];var aN = aI[6];var aM = aI[7];var aL = aI[8];var aJ = aT * aP * aL + aS * aO * aN + aR * aQ * aM - aT * aO * aM - aR * aP * aN - aS * aQ * aL;if (aJ == 0) {\n return null;\n } else {\n var aH = 1 / aJ;aK.m[0] = aH * (aP * aL - aM * aO);aK.m[1] = aH * (aM * aR - aS * aL);aK.m[2] = aH * (aS * aO - aP * aR);aK.m[3] = aH * (aN * aO - aQ * aL);aK.m[4] = aH * (aT * aL - aN * aR);aK.m[5] = aH * (aQ * aR - aT * aO);aK.m[6] = aH * (aQ * aM - aN * aP);aK.m[7] = aH * (aN * aS - aT * aM);aK.m[8] = aH * (aT * aP - aQ * aS);return aK;\n }\n };am.prototype.transform = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype.translate = function (aI, aJ) {\n var aH = this.m;aH[6] = aH[0] * aI + aH[3] * aJ + aH[6];aH[7] = aH[1] * aI + aH[4] * aJ + aH[7];aH[8] = aH[2] * aI + aH[5] * aJ + aH[8];\n };am.prototype.scale = function (aJ, aI) {\n var aH = this.m;aH[0] *= aJ;aH[1] *= aJ;aH[2] *= aJ;aH[3] *= aI;aH[4] *= aI;aH[5] *= aI;\n };am.prototype.shear = function (aM, aL) {\n var aH = this.m;var aK = aH[0] + aH[3] * aL;var aJ = aH[1] + aH[4] * aL;var aI = aH[2] + aH[5] * aL;aH[3] = aH[0] * aM + aH[3];aH[4] = aH[1] * aM + aH[4];aH[5] = aH[2] * aM + aH[5];aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.rotate = function (aM) {\n var aH = this.m;var aN = Math.cos(aM);var aL = Math.sin(aM);var aK = aH[0] * aN + aH[3] * aL;var aJ = aH[1] * aN + aH[4] * aL;var aI = aH[2] * aN + aH[5] * aL;aH[3] = -aH[0] * aL + aH[3] * aN;aH[4] = -aH[1] * aL + aH[4] * aN;aH[5] = -aH[2] * aL + aH[5] * aN;aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.concatenate = function (aL) {\n var aO = this.m;var aM = aL.m;var aS = aO[0] * aM[0] + aO[3] * aM[1] + aO[6] * aM[2];var aR = aO[1] * aM[0] + aO[4] * aM[1] + aO[7] * aM[2];var aQ = aO[2] * aM[0] + aO[5] * aM[1] + aO[8] * aM[2];var aP = aO[0] * aM[3] + aO[3] * aM[4] + aO[6] * aM[5];var aN = aO[1] * aM[3] + aO[4] * aM[4] + aO[7] * aM[5];var aK = aO[2] * aM[3] + aO[5] * aM[4] + aO[8] * aM[5];var aJ = aO[0] * aM[6] + aO[3] * aM[7] + aO[6] * aM[8];var aI = aO[1] * aM[6] + aO[4] * aM[7] + aO[7] * aM[8];var aH = aO[2] * aM[6] + aO[5] * aM[7] + aO[8] * aM[8];m[0] = aS;m[1] = aR;m[2] = aQ;m[3] = aP;m[4] = aN;m[5] = aK;m[6] = aJ;m[7] = aI;m[8] = aH;\n };function n(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }n.prototype = new ak();n._$eT = null;n._$tP = new Object();n._$2o = function () {\n if (n._$eT == null) {\n n._$eT = n.getID("DST_BASE");\n }return n._$eT;\n };n._$27 = function () {\n n._$tP.clear();n._$eT = null;\n };n.getID = function (aH) {\n var aI = n._$tP[aH];if (aI == null) {\n aI = new n(aH);n._$tP[aH] = aI;\n }return aI;\n };n.prototype._$3s = function () {\n return new n();\n };function C(aH) {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this.textures = new Array();this.transform = null;this.gl = null;this.glno = aH;this.firstDraw = true;this.anisotropyExt = null;this.maxAnisotropy = 0;this._$As = 32;this._$Gr = false;this._$NT = null;this._$vS = null;this._$no = null;this.vertShader = null;this.fragShader = null;this.vertShaderOff = null;this.fragShaderOff = null;\n }C.prototype = new ax();C._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };C._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };C._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$Hs = function () {\n return this._$Gr;\n };C._$as = function (aH) {\n this._$Gr = aH;\n };C.prototype.getGL = function () {\n return this.gl;\n };C.prototype.setGL = function (aH) {\n this.gl = aH;\n };C.prototype.setTransform = function (aH) {\n this.transform = aH;\n };C.prototype._$ZT = function () {\n var aH = this.gl;if (this.firstDraw) {\n this.initShader();this.firstDraw = false;this.anisotropyExt = aH.getExtension("EXT_texture_filter_anisotropic") || aH.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || aH.getExtension("MOZ_EXT_texture_filter_anisotropic");if (this.anisotropyExt) {\n this.maxAnisotropy = aH.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n }aH.disable(aH.SCISSOR_TEST);aH.disable(aH.STENCIL_TEST);aH.disable(aH.DEPTH_TEST);aH.frontFace(aH.CW);aH.enable(aH.BLEND);aH.colorMask(1, 1, 1, 1);aH.bindBuffer(aH.ARRAY_BUFFER, null);aH.bindBuffer(aH.ELEMENT_ARRAY_BUFFER, null);\n };C.prototype._$Uo = function (aS, aT, aL, aU, aV, aN, aM, aO) {\n if (aN < 0.01 && this.clipBufPre_clipContextMask == null) {\n return;\n }var aH = aN > 0.9 ? Q.EXPAND_W : 0;var a0 = this.gl;if (this.gl == null) {\n throw new Error("gl is null");\n }var a1 = false;var aQ = 1;var aP = 1;var a3 = 1;var aZ = 1;var aW = this._$C0 * aP * aN;var a2 = this._$tT * a3 * aN;var a5 = this._$WL * aZ * aN;var a7 = this._$lT * aN;if (this.clipBufPre_clipContextMask != null) {\n a0.frontFace(a0.CCW);a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.getClipBufPre_clipContextMask().matrixForMask);var aY = this.getClipBufPre_clipContextMask().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag, a4.r, a4.g, a4.b, a4.a);var aI = this.getClipBufPre_clipContextMask().layoutBounds;a0.uniform4f(this.u_baseColor_Loc, aI.x * 2 - 1, aI.y * 2 - 1, aI._$EL() * 2 - 1, aI._$5T() * 2 - 1);a0.uniform1i(this.u_maskFlag_Loc, true);\n } else {\n a1 = this.getClipBufPre_clipContextDraw() != null;if (a1) {\n a0.useProgram(this.shaderProgramOff);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc_Off);a0.vertexAttribPointer(this.a_position_Loc_Off, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc_Off, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);a0.vertexAttribPointer(this.a_texCoord_Loc_Off, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off, false, this.getClipBufPre_clipContextDraw().matrixForDraw);a0.uniformMatrix4fv(this.u_matrix_Loc_Off, false, this.matrix4x4);a0.activeTexture(a0.TEXTURE2);a0.bindTexture(a0.TEXTURE_2D, Q.fTexture[this.glno]);a0.uniform1i(this.s_texture1_Loc_Off, 2);var aY = this.getClipBufPre_clipContextDraw().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag_Loc_Off, a4.r, a4.g, a4.b, a4.a);a0.uniform4f(this.u_baseColor_Loc_Off, aW, a2, a5, a7);\n } else {\n a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.matrix4x4);a0.uniform4f(this.u_baseColor_Loc, aW, a2, a5, a7);a0.uniform1i(this.u_maskFlag_Loc, false);\n }\n }if (this.culling) {\n this.gl.enable(a0.CULL_FACE);\n } else {\n this.gl.disable(a0.CULL_FACE);\n }this.gl.enable(a0.BLEND);var a6;var aX;var aR;var aK;if (this.clipBufPre_clipContextMask != null) {\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;\n } else {\n switch (aM) {case b._$ms:\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;break;case b._$ns:\n a6 = a0.ONE;aX = a0.ONE;aR = a0.ZERO;aK = a0.ONE;break;case b._$_s:\n a6 = a0.DST_COLOR;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ZERO;aK = a0.ONE;break;}\n }a0.blendEquationSeparate(a0.FUNC_ADD, a0.FUNC_ADD);a0.blendFuncSeparate(a6, aX, aR, aK);if (this.anisotropyExt) {\n a0.texParameteri(a0.TEXTURE_2D, this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT, this.maxAnisotropy);\n }var aJ = aL.length;a0.drawElements(a0.TRIANGLES, aJ, a0.UNSIGNED_SHORT, 0);a0.bindTexture(a0.TEXTURE_2D, null);\n };function T(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ARRAY_BUFFER, aH);aJ.bufferData(aJ.ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }function L(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER, aH);aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }C.prototype._$Rs = function () {\n throw new Error("_$Rs");\n };C.prototype._$Ds = function (aH) {\n throw new Error("_$Ds");\n };C.prototype._$K2 = function () {\n for (var aH = 0; aH < this.textures.length; aH++) {\n var aI = this.textures[aH];if (aI != 0) {\n this.gl._$K2(1, this.textures, aH);this.textures[aH] = null;\n }\n }\n };C.prototype.setTexture = function (aH, aI) {\n this.textures[aH] = aI;\n };C.prototype.initShader = function () {\n var aH = this.gl;this.loadShaders2();this.a_position_Loc = aH.getAttribLocation(this.shaderProgram, "a_position");this.a_texCoord_Loc = aH.getAttribLocation(this.shaderProgram, "a_texCoord");this.u_matrix_Loc = aH.getUniformLocation(this.shaderProgram, "u_mvpMatrix");this.s_texture0_Loc = aH.getUniformLocation(this.shaderProgram, "s_texture0");this.u_channelFlag = aH.getUniformLocation(this.shaderProgram, "u_channelFlag");this.u_baseColor_Loc = aH.getUniformLocation(this.shaderProgram, "u_baseColor");this.u_maskFlag_Loc = aH.getUniformLocation(this.shaderProgram, "u_maskFlag");this.a_position_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, "a_position");this.a_texCoord_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, "a_texCoord");this.u_matrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_mvpMatrix");this.u_clipMatrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_ClipMatrix");this.s_texture0_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "s_texture0");this.s_texture1_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "s_texture1");this.u_channelFlag_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_channelFlag");this.u_baseColor_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_baseColor");\n };C.prototype.disposeShader = function () {\n var aH = this.gl;if (this.shaderProgram) {\n aH.deleteProgram(this.shaderProgram);this.shaderProgram = null;\n }if (this.shaderProgramOff) {\n aH.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = null;\n }\n };C.prototype.compileShader = function (aJ, aN) {\n var aM = this.gl;var aH;var aL = aN;var aK = aM.createShader(aJ);if (aK == null) {\n q._$Ji("_$L0 to create shader");return null;\n }aM.shaderSource(aK, aL);aM.compileShader(aK);var aH = aM.getShaderParameter(aK, aM.COMPILE_STATUS);if (!aH) {\n var aI = aM.getShaderInfoLog(aK);q._$Ji("_$L0 to compile shader : " + aI);aM.deleteShader(aK);return null;\n }return aK;\n };C.prototype.loadShaders2 = function () {\n var aN = this.gl;this.shaderProgram = aN.createProgram();if (!this.shaderProgram) {\n return false;\n }this.shaderProgramOff = aN.createProgram();if (!this.shaderProgramOff) {\n return false;\n }var aK = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_mvpMatrix * a_position; v_texCoord = a_texCoord;}";var aM = "precision mediump float;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;uniform bool u_maskFlag;void main(){ vec4 smpColor; if(u_maskFlag){ float isInside = step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w) * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w) * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z) * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w); smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside; }else{ smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor; } gl_FragColor = smpColor;}";var aL = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;uniform mat4 u_ClipMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_ClipMatrix * a_position; v_texCoord = a_texCoord ;}";var aJ = "precision mediump float ;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor ;void main(){ vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor; vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}";this.vertShader = this.compileShader(aN.VERTEX_SHADER, aK);if (!this.vertShader) {\n q._$Ji("Vertex shader compile _$li!");return false;\n }this.vertShaderOff = this.compileShader(aN.VERTEX_SHADER, aL);if (!this.vertShaderOff) {\n q._$Ji("OffVertex shader compile _$li!");return false;\n }this.fragShader = this.compileShader(aN.FRAGMENT_SHADER, aM);if (!this.fragShader) {\n q._$Ji("Fragment shader compile _$li!");return false;\n }this.fragShaderOff = this.compileShader(aN.FRAGMENT_SHADER, aJ);if (!this.fragShaderOff) {\n q._$Ji("OffFragment shader compile _$li!");return false;\n }aN.attachShader(this.shaderProgram, this.vertShader);aN.attachShader(this.shaderProgram, this.fragShader);aN.attachShader(this.shaderProgramOff, this.vertShaderOff);aN.attachShader(this.shaderProgramOff, this.fragShaderOff);aN.linkProgram(this.shaderProgram);aN.linkProgram(this.shaderProgramOff);var aH = aN.getProgramParameter(this.shaderProgram, aN.LINK_STATUS);if (!aH) {\n var aI = aN.getProgramInfoLog(this.shaderProgram);q._$Ji("_$L0 to link program: " + aI);if (this.vertShader) {\n aN.deleteShader(this.vertShader);this.vertShader = 0;\n }if (this.fragShader) {\n aN.deleteShader(this.fragShader);this.fragShader = 0;\n }if (this.shaderProgram) {\n aN.deleteProgram(this.shaderProgram);this.shaderProgram = 0;\n }if (this.vertShaderOff) {\n aN.deleteShader(this.vertShaderOff);this.vertShaderOff = 0;\n }if (this.fragShaderOff) {\n aN.deleteShader(this.fragShaderOff);this.fragShaderOff = 0;\n }if (this.shaderProgramOff) {\n aN.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = 0;\n }return false;\n }return true;\n };C.prototype.createFramebuffer = function () {\n var aL = this.gl;var aK = Q.clippingMaskBufferSize;var aJ = aL.createFramebuffer();aL.bindFramebuffer(aL.FRAMEBUFFER, aJ);var aH = aL.createRenderbuffer();aL.bindRenderbuffer(aL.RENDERBUFFER, aH);aL.renderbufferStorage(aL.RENDERBUFFER, aL.RGBA4, aK, aK);aL.framebufferRenderbuffer(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.RENDERBUFFER, aH);var aI = aL.createTexture();aL.bindTexture(aL.TEXTURE_2D, aI);aL.texImage2D(aL.TEXTURE_2D, 0, aL.RGBA, aK, aK, 0, aL.RGBA, aL.UNSIGNED_BYTE, null);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MIN_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MAG_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_S, aL.CLAMP_TO_EDGE);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_T, aL.CLAMP_TO_EDGE);aL.framebufferTexture2D(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.TEXTURE_2D, aI, 0);aL.bindTexture(aL.TEXTURE_2D, null);aL.bindRenderbuffer(aL.RENDERBUFFER, null);aL.bindFramebuffer(aL.FRAMEBUFFER, null);Q.fTexture[this.glno] = aI;return { framebuffer: aJ, renderbuffer: aH, texture: Q.fTexture[this.glno] };\n };function K(aH) {\n if (j) {\n return;\n }this._$P = new Int8Array(8);this._$R0 = new DataView(this._$P.buffer);this._$3i = new Int8Array(1000);this._$hL = 0;this._$v0 = 0;this._$S2 = 0;this._$Ko = new Array();this._$T = aH;this._$F = 0;\n }K.prototype._$fP = function () {\n var aK = this._$ST();var aJ, aI, aH;if ((aK & 128) == 0) {\n return aK & 255;\n } else {\n if (((aJ = this._$ST()) & 128) == 0) {\n return (aK & 127) << 7 | aJ & 127;\n } else {\n if (((aI = this._$ST()) & 128) == 0) {\n return (aK & 127) << 14 | (aJ & 127) << 7 | aI & 255;\n } else {\n if (((aH = this._$ST()) & 128) == 0) {\n return (aK & 127) << 21 | (aJ & 127) << 14 | (aI & 127) << 7 | aH & 255;\n } else {\n throw new J("_$L _$0P _");\n }\n }\n }\n }\n };K.prototype.getFormatVersion = function () {\n return this._$S2;\n };K.prototype._$gr = function (aH) {\n this._$S2 = aH;\n };K.prototype._$3L = function () {\n return this._$fP();\n };K.prototype._$mP = function () {\n this._$zT();this._$F += 8;return this._$T.getFloat64(this._$F - 8);\n };K.prototype._$_T = function () {\n this._$zT();this._$F += 4;return this._$T.getFloat32(this._$F - 4);\n };K.prototype._$6L = function () {\n this._$zT();this._$F += 4;return this._$T.getInt32(this._$F - 4);\n };K.prototype._$ST = function () {\n this._$zT();return this._$T.getInt8(this._$F++);\n };K.prototype._$9T = function () {\n this._$zT();this._$F += 2;return this._$T.getInt16(this._$F - 2);\n };K.prototype._$2T = function () {\n this._$zT();this._$F += 8;throw new J("_$L _$q read long");\n };K.prototype._$po = function () {\n this._$zT();return this._$T.getInt8(this._$F++) != 0;\n };var O = true;K.prototype._$bT = function () {\n this._$zT();var aH = this._$3L();var aK = null;if (O) {\n try {\n var aM = new ArrayBuffer(aH * 2);aK = new Uint16Array(aM);for (var aJ = 0; aJ < aH; ++aJ) {\n aK[aJ] = this._$T.getUint8(this._$F++);\n }return String.fromCharCode.apply(null, aK);\n } catch (aL) {\n O = false;\n }\n }try {\n var aI = new Array();if (aK == null) {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = this._$T.getUint8(this._$F++);\n }\n } else {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = aK[aJ];\n }\n }return String.fromCharCode.apply(null, aI);\n } catch (aL) {\n console.log("read utf8 / _$rT _$L0 !! : " + aL);\n }\n };K.prototype._$cS = function () {\n this._$zT();var aI = this._$3L();var aH = new Int32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getInt32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$Tb = function () {\n this._$zT();var aI = this._$3L();var aH = new Float32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$5b = function () {\n this._$zT();var aI = this._$3L();var aH = new Float64Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat64(this._$F);this._$F += 8;\n }return aH;\n };K.prototype._$nP = function () {\n return this._$Jb(-1);\n };K.prototype._$Jb = function (aJ) {\n this._$zT();if (aJ < 0) {\n aJ = this._$3L();\n }if (aJ == ay._$7P) {\n var aH = this._$6L();if (0 <= aH && aH < this._$Ko.length) {\n return this._$Ko[aH];\n } else {\n throw new J("_$sL _$4i @_$m0");\n }\n } else {\n var aI = this._$4b(aJ);this._$Ko.push(aI);return aI;\n }\n };K.prototype._$4b = function (aN) {\n if (aN == 0) {\n return null;\n }if (aN == 50) {\n var aK = this._$bT();var aI = Z.getID(aK);return aI;\n } else {\n if (aN == 51) {\n var aK = this._$bT();var aI = n.getID(aK);return aI;\n } else {\n if (aN == 134) {\n var aK = this._$bT();var aI = i.getID(aK);return aI;\n } else {\n if (aN == 60) {\n var aK = this._$bT();var aI = z.getID(aK);return aI;\n }\n }\n }\n }if (aN >= 48) {\n var aL = ay._$9o(aN);if (aL != null) {\n aL._$F0(this);return aL;\n } else {\n return null;\n }\n }switch (aN) {case 1:\n return this._$bT();case 10:\n var aM = this._$6L();return new I(aM, true);case 11:\n return new av(this._$mP(), this._$mP(), this._$mP(), this._$mP());case 12:\n return new av(this._$_T(), this._$_T(), this._$_T(), this._$_T());case 13:\n return new e(this._$mP(), this._$mP());case 14:\n return new e(this._$_T(), this._$_T());case 15:\n var aH = this._$3L();var aI = new Array(aH);for (var aJ = 0; aJ < aH; aJ++) {\n aI[aJ] = this._$nP();\n }return aI;case 17:\n var aI = new aD(this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP());return aI;case 21:\n return new F(this._$6L(), this._$6L(), this._$6L(), this._$6L());case 22:\n return new k(this._$6L(), this._$6L());case 23:\n throw new Error("_$L _$ro ");case 16:case 25:\n return this._$cS();case 26:\n return this._$5b();case 27:\n return this._$Tb();case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 18:case 19:case 20:case 24:case 28:\n throw new J("_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : " + aN);default:\n throw new J("_$6 _$q : _$nP() NO _$i : " + aN);}\n };K.prototype._$8L = function () {\n if (this._$hL == 0) {\n this._$v0 = this._$ST();\n } else {\n if (this._$hL == 8) {\n this._$v0 = this._$ST();this._$hL = 0;\n }\n }return (this._$v0 >> 7 - this._$hL++ & 1) == 1;\n };K.prototype._$zT = function () {\n if (this._$hL != 0) {\n this._$hL = 0;\n }\n };function ai() {}ai.prototype._$wP = function (aM, aI, aK) {\n for (var aL = 0; aL < aK; aL++) {\n for (var aH = 0; aH < aI; aH++) {\n var aJ = 2 * (aH + aL * aI);console.log("(% 7.3f , % 7.3f) , ", aM[aJ], aM[aJ + 1]);\n }console.log("\\n");\n }console.log("\\n");\n };function aC() {}aC._$2S = Math.PI / 180;aC._$bS = Math.PI / 180;aC._$wS = 180 / Math.PI;aC._$NS = 180 / Math.PI;aC.PI_F = Math.PI;aC._$kT = [0, 0.012368, 0.024734, 0.037097, 0.049454, 0.061803, 0.074143, 0.086471, 0.098786, 0.111087, 0.12337, 0.135634, 0.147877, 0.160098, 0.172295, 0.184465, 0.196606, 0.208718, 0.220798, 0.232844, 0.244854, 0.256827, 0.268761, 0.280654, 0.292503, 0.304308, 0.316066, 0.327776, 0.339436, 0.351044, 0.362598, 0.374097, 0.385538, 0.396921, 0.408243, 0.419502, 0.430697, 0.441826, 0.452888, 0.463881, 0.474802, 0.485651, 0.496425, 0.507124, 0.517745, 0.528287, 0.538748, 0.549126, 0.559421, 0.56963, 0.579752, 0.589785, 0.599728, 0.609579, 0.619337, 0.629, 0.638567, 0.648036, 0.657406, 0.666676, 0.675843, 0.684908, 0.693867, 0.70272, 0.711466, 0.720103, 0.72863, 0.737045, 0.745348, 0.753536, 0.76161, 0.769566, 0.777405, 0.785125, 0.792725, 0.800204, 0.807561, 0.814793, 0.821901, 0.828884, 0.835739, 0.842467, 0.849066, 0.855535, 0.861873, 0.868079, 0.874153, 0.880093, 0.885898, 0.891567, 0.897101, 0.902497, 0.907754, 0.912873, 0.917853, 0.922692, 0.92739, 0.931946, 0.936359, 0.940629, 0.944755, 0.948737, 0.952574, 0.956265, 0.959809, 0.963207, 0.966457, 0.96956, 0.972514, 0.97532, 0.977976, 0.980482, 0.982839, 0.985045, 0.987101, 0.989006, 0.990759, 0.992361, 0.993811, 0.995109, 0.996254, 0.997248, 0.998088, 0.998776, 0.999312, 0.999694, 0.999924, 1];aC._$92 = function (aK, aI) {\n var aH = Math.atan2(aK[1], aK[0]);var aJ = Math.atan2(aI[1], aI[0]);return aC._$tS(aH, aJ);\n };aC._$tS = function (aI, aH) {\n var aJ = aI - aH;while (aJ < -Math.PI) {\n aJ += 2 * Math.PI;\n }while (aJ > Math.PI) {\n aJ -= 2 * Math.PI;\n }return aJ;\n };aC._$9 = function (aH) {\n return Math.sin(aH);\n };aC.fcos = function (aH) {\n return Math.cos(aH);\n };function aB(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$Us = null;this._$7s = null;this._$IS = [false];this._$VS = null;this._$AT = true;this.baseOpacity = 1;this.clipBufPre_clipContext = null;this._$e0 = aH;\n }aB.prototype._$u2 = function () {\n return this._$IS[0];\n };aB.prototype._$yo = function () {\n return this._$AT && !this._$IS[0];\n };aB.prototype._$GT = function () {\n return this._$e0;\n };function r() {}r._$W2 = 0;r.SYSTEM_INFO = null;r.USER_AGENT = navigator.userAgent;r.isIPhone = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone;\n };r.isIOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad;\n };r.isAndroid = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isAndroid;\n };r.getOSVersion = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO.version;\n };r.getOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }if (r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad) {\n return "iOS";\n }if (r.SYSTEM_INFO._isAndroid) {\n return "Android";\n } else {\n return "_$Q0 OS";\n }\n };r.setup = function () {\n var aK = r.USER_AGENT;function aI(aO, aR) {\n var aN = aO.substring(aR).split(/[ _,;\\.]/);var aQ = 0;for (var aM = 0; aM <= 2; aM++) {\n if (isNaN(aN[aM])) {\n break;\n }var aP = parseInt(aN[aM]);if (aP < 0 || aP > 999) {\n q._$li("err : " + aP + " @UtHtml5.setup()");aQ = 0;break;\n }aQ += aP * Math.pow(1000, 2 - aM);\n }return aQ;\n }var aL;var aH;var aJ = r.SYSTEM_INFO = { userAgent: aK };if ((aL = aK.indexOf("iPhone OS ")) >= 0) {\n aJ.os = "iPhone";aJ._isIPhone = true;aJ.version = aI(aK, aL + "iPhone OS ".length);\n } else {\n if ((aL = aK.indexOf("iPad")) >= 0) {\n aL = aK.indexOf("CPU OS");if (aL < 0) {\n q._$li(" err : " + aK + " @UtHtml5.setup()");return;\n }aJ.os = "iPad";aJ._isIPad = true;aJ.version = aI(aK, aL + "CPU OS ".length);\n } else {\n if ((aL = aK.indexOf("Android")) >= 0) {\n aJ.os = "Android";aJ._isAndroid = true;aJ.version = aI(aK, aL + "Android ".length);\n } else {\n aJ.os = "-";aJ.version = -1;\n }\n }\n }\n };window.UtSystem = P;window.UtDebug = q;window.LDTransform = am;window.LDGL = au;window.Live2D = Q;window.Live2DModelWebGL = l;window.Live2DModelJS = v;window.Live2DMotion = ao;window.MotionQueueManager = V;window.PhysicsHair = u;window.AMotion = ah;window.PartsDataID = i;window.DrawDataID = Z;window.BaseDataID = n;window.ParamID = z;Q.init();var j = false;\n})();\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../~/webpack/buildin/system.js */ 10)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zcmMvbGliL2xpdmUyZC5taW4uanM/MDI5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcclxuKGZ1bmN0aW9uKCl7dmFyIGo9dHJ1ZTtmdW5jdGlvbiBhYSgpe2lmKGope3JldHVybjt9dGhpcy5fJE1UPW51bGw7dGhpcy5fJDVTPW51bGw7dGhpcy5fJE5QPTA7YWEuXyQ0MisrO3RoaXMuXyQ1Uz1uZXcgeSh0aGlzKTt9YWEuXyQwcz0xO2FhLl8kNHM9MjthYS5fJDQyPTA7YWEuXyQ2Mj1mdW5jdGlvbihhUSxhVSl7dHJ5e2lmKGFVIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe2FVPW5ldyBEYXRhVmlldyhhVSk7fWlmKCEoYVUgaW5zdGFuY2VvZiBEYXRhVmlldykpe3Rocm93IG5ldyBKKFwiXyRTUyNsb2FkTW9kZWwoYikgLyBiIF8keCBiZSBEYXRhVmlldyBvciBBcnJheUJ1ZmZlclwiKTt9dmFyIGFTPW5ldyBLKGFVKTt2YXIgYU09YVMuXyRTVCgpO3ZhciBhSz1hUy5fJFNUKCk7dmFyIGFKPWFTLl8kU1QoKTt2YXIgYU47aWYoYU09PTEwOSYmYUs9PTExMSYmYUo9PTk5KXthTj1hUy5fJFNUKCk7fWVsc2V7dGhyb3cgbmV3IEooXCJfJGdpIF8kQyBfJGxpICwgXyRRMCBfJFAwLlwiKTt9YVMuXyRncihhTik7aWYoYU4+YXkuXyRUNyl7YVEuXyROUHw9YWEuXyQ0czt2YXIgYVI9YXkuXyRUNzt2YXIgYUk9XCJfJGdpIF8kQyBfJGxpICwgXyRuMCBfJF8gdmVyc2lvbiBfJGxpICggU0RLIDogXCIrYVIrXCIgPCBfJGYwIDogXCIrYU4rXCIgKUBfJFNTI2xvYWRNb2RlbCgpXFxuXCI7dGhyb3cgbmV3IEooYUkpO312YXIgYUw9YVMuXyRuUCgpO2lmKGFOPj1heS5fJHM3KXt2YXIgYUg9YVMuXyQ5VCgpO3ZhciBhVD1hUy5fJDlUKCk7aWYoYUghPS0zMDU4NHx8YVQhPS0zMDU4NCl7YVEuXyROUHw9YWEuXyQwczt0aHJvdyBuZXcgSihcIl8kZ2kgXyRDIF8kbGkgLCBfJDAgXyQ2IF8kVWkuXCIpO319YVEuXyRLUyhhTCk7dmFyIGFQPWFRLmdldE1vZGVsQ29udGV4dCgpO2FQLnNldERyYXdQYXJhbShhUS5nZXREcmF3UGFyYW0oKSk7YVAuaW5pdCgpO31jYXRjaChhTyl7cS5fJFJiKGFPKTt9fTthYS5wcm90b3R5cGUuXyRLUz1mdW5jdGlvbihhSCl7dGhpcy5fJE1UPWFIO307YWEucHJvdG90eXBlLmdldE1vZGVsSW1wbD1mdW5jdGlvbigpe2lmKHRoaXMuXyRNVD09bnVsbCl7dGhpcy5fJE1UPW5ldyB3KCk7dGhpcy5fJE1ULl8kelAoKTt9cmV0dXJuIHRoaXMuXyRNVDt9O2FhLnByb3RvdHlwZS5nZXRDYW52YXNXaWR0aD1mdW5jdGlvbigpe2lmKHRoaXMuXyRNVD09bnVsbCl7cmV0dXJuIDA7fXJldHVybiB0aGlzLl8kTVQuZ2V0Q2FudmFzV2lkdGgoKTt9O2FhLnByb3RvdHlwZS5nZXRDYW52YXNIZWlnaHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl8kTVQ9PW51bGwpe3JldHVybiAwO31yZXR1cm4gdGhpcy5fJE1ULmdldENhbnZhc0hlaWdodCgpO307YWEucHJvdG90eXBlLmdldFBhcmFtRmxvYXQ9ZnVuY3Rpb24oYUgpe2lmKHR5cGVvZiBhSCE9XCJudW1iZXJcIil7YUg9dGhpcy5fJDVTLmdldFBhcmFtSW5kZXgoei5nZXRJRChhSCkpO31yZXR1cm4gdGhpcy5fJDVTLmdldFBhcmFtRmxvYXQoYUgpO307YWEucHJvdG90eXBlLnNldFBhcmFtRmxvYXQ9ZnVuY3Rpb24oYUgsYUosYUkpe2lmKHR5cGVvZiBhSCE9XCJudW1iZXJcIil7YUg9dGhpcy5fJDVTLmdldFBhcmFtSW5kZXgoei5nZXRJRChhSCkpO31pZihhcmd1bWVudHMubGVuZ3RoPDMpe2FJPTE7fXRoaXMuXyQ1Uy5zZXRQYXJhbUZsb2F0KGFILHRoaXMuXyQ1Uy5nZXRQYXJhbUZsb2F0KGFIKSooMS1hSSkrYUoqYUkpO307YWEucHJvdG90eXBlLmFkZFRvUGFyYW1GbG9hdD1mdW5jdGlvbihhSCxhSixhSSl7aWYodHlwZW9mIGFIIT1cIm51bWJlclwiKXthSD10aGlzLl8kNVMuZ2V0UGFyYW1JbmRleCh6LmdldElEKGFIKSk7fWlmKGFyZ3VtZW50cy5sZW5ndGg8Myl7YUk9MTt9dGhpcy5fJDVTLnNldFBhcmFtRmxvYXQoYUgsdGhpcy5fJDVTLmdldFBhcmFtRmxvYXQoYUgpK2FKKmFJKTt9O2FhLnByb3RvdHlwZS5tdWx0UGFyYW1GbG9hdD1mdW5jdGlvbihhSCxhSixhSSl7aWYodHlwZW9mIGFIIT1cIm51bWJlclwiKXthSD10aGlzLl8kNVMuZ2V0UGFyYW1JbmRleCh6LmdldElEKGFIKSk7fWlmKGFyZ3VtZW50cy5sZW5ndGg8Myl7YUk9MTt9dGhpcy5fJDVTLnNldFBhcmFtRmxvYXQoYUgsdGhpcy5fJDVTLmdldFBhcmFtRmxvYXQoYUgpKigxKyhhSi0xKSphSSkpO307YWEucHJvdG90eXBlLmdldFBhcmFtSW5kZXg9ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLl8kNVMuZ2V0UGFyYW1JbmRleCh6LmdldElEKGFIKSk7fTthYS5wcm90b3R5cGUubG9hZFBhcmFtPWZ1bmN0aW9uKCl7dGhpcy5fJDVTLmxvYWRQYXJhbSgpO307YWEucHJvdG90eXBlLnNhdmVQYXJhbT1mdW5jdGlvbigpe3RoaXMuXyQ1Uy5zYXZlUGFyYW0oKTt9O2FhLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5fJDVTLmluaXQoKTt9O2FhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl8kNVMudXBkYXRlKCk7fTthYS5wcm90b3R5cGUuXyRScz1mdW5jdGlvbigpe3EuXyRsaShcIl8kNjAgXyRQVCBfJFJzKClcIik7cmV0dXJuIC0xO307YWEucHJvdG90eXBlLl8kRHM9ZnVuY3Rpb24oYUgpe3EuXyRsaShcIl8kNjAgXyRQVCBfJFNTI18kRHMoKSBcXG5cIik7fTthYS5wcm90b3R5cGUuXyRLMj1mdW5jdGlvbigpe307YWEucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXt9O2FhLnByb3RvdHlwZS5nZXRNb2RlbENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDVTO307YWEucHJvdG90eXBlLl8kczI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJE5QO307YWEucHJvdG90eXBlLl8kUDc9ZnVuY3Rpb24oYUssYVIsYUgsYTApe3ZhciBhVT0tMTt2YXIgYVk9MDt2YXIgYU09dGhpczt2YXIgYUo9MC41O3ZhciBhST0wLjE1O3ZhciBhWD10cnVlO2lmKGFIPT0wKXtmb3IodmFyIGFWPTA7YVY8YUsubGVuZ3RoO2FWKyspe3ZhciBhUD1hS1thVl07dmFyIGFPPWFSW2FWXTt2YXIgYVM9KGFNLmdldFBhcmFtRmxvYXQoYVApIT0wKTthTS5zZXRQYXJ0c09wYWNpdHkoYU8sKGFTPzE6MCkpO31yZXR1cm47fWVsc2V7aWYoYUsubGVuZ3RoPT0xKXt2YXIgYVA9YUtbMF07dmFyIGFUPShhTS5nZXRQYXJhbUZsb2F0KGFQKSE9MCk7dmFyIGFPPWFSWzBdO3ZhciBhUT1hTS5nZXRQYXJ0c09wYWNpdHkoYU8pO3ZhciBhVz1hSC9hMDtpZihhVCl7YVErPWFXO2lmKGFRPjEpe2FRPTE7fX1lbHNle2FRLT1hVztpZihhUTwwKXthUT0wO319YU0uc2V0UGFydHNPcGFjaXR5KGFPLGFRKTt9ZWxzZXtmb3IodmFyIGFWPTA7YVY8YUsubGVuZ3RoO2FWKyspe3ZhciBhUD1hS1thVl07dmFyIGFTPShhTS5nZXRQYXJhbUZsb2F0KGFQKSE9MCk7aWYoYVMpe2lmKGFVPj0wKXticmVhazt9YVU9YVY7dmFyIGFPPWFSW2FWXTthWT1hTS5nZXRQYXJ0c09wYWNpdHkoYU8pO2FZKz1hSC9hMDtpZihhWT4xKXthWT0xO319fWlmKGFVPDApe2NvbnNvbGUubG9nKFwiTm8gXyR3aSBfJHEwLyBfJFUgZGVmYXVsdFslc11cIixhS1swXSk7YVU9MDthWT0xO2FNLmxvYWRQYXJhbSgpO2FNLnNldFBhcmFtRmxvYXQoYUtbYVVdLGFZKTthTS5zYXZlUGFyYW0oKTt9Zm9yKHZhciBhVj0wO2FWPGFLLmxlbmd0aDthVisrKXt2YXIgYU89YVJbYVZdO2lmKGFVPT1hVil7YU0uc2V0UGFydHNPcGFjaXR5KGFPLGFZKTt9ZWxzZXt2YXIgYUw9YU0uZ2V0UGFydHNPcGFjaXR5KGFPKTt2YXIgYVo7aWYoYVk8YUope2FaPWFZKihhSi0xKS9hSisxO31lbHNle2FaPSgxLWFZKSphSi8oMS1hSik7fWlmKGFYKXt2YXIgYU49KDEtYVopKigxLWFZKTtpZihhTj5hSSl7YVo9MS1hSS8oMS1hWSk7fX1pZihhTD5hWil7YUw9YVo7fWFNLnNldFBhcnRzT3BhY2l0eShhTyxhTCk7fX19fX07YWEucHJvdG90eXBlLnNldFBhcnRzT3BhY2l0eT1mdW5jdGlvbihhSSxhSCl7aWYodHlwZW9mIGFJIT1cIm51bWJlclwiKXthST10aGlzLl8kNVMuZ2V0UGFydHNEYXRhSW5kZXgoaS5nZXRJRChhSSkpO310aGlzLl8kNVMuc2V0UGFydHNPcGFjaXR5KGFJLGFIKTt9O2FhLnByb3RvdHlwZS5nZXRQYXJ0c0RhdGFJbmRleD1mdW5jdGlvbihhSCl7aWYoIShhSCBpbnN0YW5jZW9mIGkpKXthSD1pLmdldElEKGFIKTt9cmV0dXJuIHRoaXMuXyQ1Uy5nZXRQYXJ0c0RhdGFJbmRleChhSCk7fTthYS5wcm90b3R5cGUuZ2V0UGFydHNPcGFjaXR5PWZ1bmN0aW9uKGFIKXtpZih0eXBlb2YgYUghPVwibnVtYmVyXCIpe2FIPXRoaXMuXyQ1Uy5nZXRQYXJ0c0RhdGFJbmRleChpLmdldElEKGFIKSk7fWlmKGFIPDApe3JldHVybiAwO31yZXR1cm4gdGhpcy5fJDVTLmdldFBhcnRzT3BhY2l0eShhSCk7fTthYS5wcm90b3R5cGUuZ2V0RHJhd1BhcmFtPWZ1bmN0aW9uKCl7fTthYS5wcm90b3R5cGUuZ2V0RHJhd0RhdGFJbmRleD1mdW5jdGlvbihhSCl7cmV0dXJuIHRoaXMuXyQ1Uy5nZXREcmF3RGF0YUluZGV4KFouZ2V0SUQoYUgpKTt9O2FhLnByb3RvdHlwZS5nZXREcmF3RGF0YT1mdW5jdGlvbihhSCl7cmV0dXJuIHRoaXMuXyQ1Uy5nZXREcmF3RGF0YShhSCk7fTthYS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtZWRQb2ludHM9ZnVuY3Rpb24oYUgpe3ZhciBhST10aGlzLl8kNVMuXyRDMihhSCk7aWYoYUkgaW5zdGFuY2VvZiBhZyl7cmV0dXJuKGFJKS5nZXRUcmFuc2Zvcm1lZFBvaW50cygpO31yZXR1cm4gbnVsbDt9O2FhLnByb3RvdHlwZS5nZXRJbmRleEFycmF5PWZ1bmN0aW9uKGFJKXtpZihhSTwwfHxhST49dGhpcy5fJDVTLl8kYVMubGVuZ3RoKXtyZXR1cm4gbnVsbDt9dmFyIGFIPXRoaXMuXyQ1Uy5fJGFTW2FJXTtpZihhSCE9bnVsbCYmYUguZ2V0VHlwZSgpPT1hLl8kd2Ipe2lmKGFIIGluc3RhbmNlb2YgYil7cmV0dXJuIGFILmdldEluZGV4QXJyYXkoKTt9fXJldHVybiBudWxsO307ZnVuY3Rpb24gVyhhSil7aWYoail7cmV0dXJuO310aGlzLmNsaXBDb250ZXh0TGlzdD1uZXcgQXJyYXkoKTt0aGlzLmdsY29udGV4dD1hSi5nbDt0aGlzLmRwX3dlYmdsPWFKO3RoaXMuY3VyRnJhbWVObz0wO3RoaXMuZmlyc3RFcnJvcl9jbGlwSW5Ob3RVcGRhdGU9dHJ1ZTt0aGlzLmNvbG9yQnVmZmVyPTA7dGhpcy5pc0luaXRHTEZCRnVuYz1mYWxzZTt0aGlzLnRtcEJvdW5kc09uTW9kZWw9bmV3IGF2KCk7aWYoUS5nbENvbnRleHQubGVuZ3RoPlEuZnJhbWVCdWZmZXJzLmxlbmd0aCl7dGhpcy5jdXJGcmFtZU5vPXRoaXMuZ2V0TWFza1JlbmRlclRleHR1cmUoKTt9ZWxzZXt9dGhpcy50bXBNb2RlbFRvVmlld01hdHJpeD1uZXcgYWMoKTt0aGlzLnRtcE1hdHJpeDI9bmV3IGFjKCk7dGhpcy50bXBNYXRyaXhGb3JNYXNrPW5ldyBhYygpO3RoaXMudG1wTWF0cml4Rm9yRHJhdz1uZXcgYWMoKTt0aGlzLkNIQU5ORUxfQ09MT1JTPW5ldyBBcnJheSgpO3ZhciBhST1uZXcgbygpO2FJPW5ldyBvKCk7YUkucj0wO2FJLmc9MDthSS5iPTA7YUkuYT0xO3RoaXMuQ0hBTk5FTF9DT0xPUlMucHVzaChhSSk7YUk9bmV3IG8oKTthSS5yPTE7YUkuZz0wO2FJLmI9MDthSS5hPTA7dGhpcy5DSEFOTkVMX0NPTE9SUy5wdXNoKGFJKTthST1uZXcgbygpO2FJLnI9MDthSS5nPTE7YUkuYj0wO2FJLmE9MDt0aGlzLkNIQU5ORUxfQ09MT1JTLnB1c2goYUkpO2FJPW5ldyBvKCk7YUkucj0wO2FJLmc9MDthSS5iPTE7YUkuYT0wO3RoaXMuQ0hBTk5FTF9DT0xPUlMucHVzaChhSSk7Zm9yKHZhciBhSD0wO2FIPHRoaXMuQ0hBTk5FTF9DT0xPUlMubGVuZ3RoO2FIKyspe3RoaXMuZHBfd2ViZ2wuc2V0Q2hhbm5lbEZsYWdBc0NvbG9yKGFILHRoaXMuQ0hBTk5FTF9DT0xPUlNbYUhdKTt9fVcuQ0hBTk5FTF9DT1VOVD00O1cuUkVOREVSX1RFWFRVUkVfVVNFX01JUE1BUD1mYWxzZTtXLk5PVF9VU0VEX0ZSQU1FPS0xMDA7Vy5wcm90b3R5cGUuXyRMNz1mdW5jdGlvbigpe2lmKHRoaXMudG1wTW9kZWxUb1ZpZXdNYXRyaXgpe3RoaXMudG1wTW9kZWxUb1ZpZXdNYXRyaXg9bnVsbDt9aWYodGhpcy50bXBNYXRyaXgyKXt0aGlzLnRtcE1hdHJpeDI9bnVsbDt9aWYodGhpcy50bXBNYXRyaXhGb3JNYXNrKXt0aGlzLnRtcE1hdHJpeEZvck1hc2s9bnVsbDt9aWYodGhpcy50bXBNYXRyaXhGb3JEcmF3KXt0aGlzLnRtcE1hdHJpeEZvckRyYXc9bnVsbDt9aWYodGhpcy50bXBCb3VuZHNPbk1vZGVsKXt0aGlzLnRtcEJvdW5kc09uTW9kZWw9bnVsbDt9aWYodGhpcy5DSEFOTkVMX0NPTE9SUyl7Zm9yKHZhciBhSD10aGlzLkNIQU5ORUxfQ09MT1JTLmxlbmd0aC0xO2FIPj0wOy0tYUgpe3RoaXMuQ0hBTk5FTF9DT0xPUlMuc3BsaWNlKGFILDEpO310aGlzLkNIQU5ORUxfQ09MT1JTPVtdO310aGlzLnJlbGVhc2VTaGFkZXIoKTt9O1cucHJvdG90eXBlLnJlbGVhc2VTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgYUk9US5mcmFtZUJ1ZmZlcnMubGVuZ3RoO2Zvcih2YXIgYUg9MDthSDxhSTthSCsrKXt0aGlzLmdsLmRlbGV0ZUZyYW1lYnVmZmVyKFEuZnJhbWVCdWZmZXJzW2FIXS5mcmFtZWJ1ZmZlcik7fVEuZnJhbWVCdWZmZXJzPVtdO1EuZ2xDb250ZXh0PVtdO307Vy5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhTyxhTixhTCl7Zm9yKHZhciBhTT0wO2FNPGFOLmxlbmd0aDthTSsrKXt2YXIgYUg9YU5bYU1dLmdldENsaXBJRExpc3QoKTtpZihhSD09bnVsbCl7Y29udGludWU7fXZhciBhSj10aGlzLmZpbmRTYW1lQ2xpcChhSCk7aWYoYUo9PW51bGwpe2FKPW5ldyBVKHRoaXMsYU8sYUgpO3RoaXMuY2xpcENvbnRleHRMaXN0LnB1c2goYUopO312YXIgYUk9YU5bYU1dLmdldERyYXdEYXRhSUQoKTt2YXIgYUs9YU8uZ2V0RHJhd0RhdGFJbmRleChhSSk7YUouYWRkQ2xpcHBlZERyYXdEYXRhKGFJLGFLKTt2YXIgYVA9YUxbYU1dO2FQLmNsaXBCdWZQcmVfY2xpcENvbnRleHQ9YUo7fX07Vy5wcm90b3R5cGUuZ2V0TWFza1JlbmRlclRleHR1cmU9ZnVuY3Rpb24oKXt2YXIgYUg9bnVsbDthSD10aGlzLmRwX3dlYmdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7US5mcmFtZUJ1ZmZlcnNbdGhpcy5kcF93ZWJnbC5nbG5vXT1hSDtyZXR1cm4gdGhpcy5kcF93ZWJnbC5nbG5vO307Vy5wcm90b3R5cGUuc2V0dXBDbGlwPWZ1bmN0aW9uKGExLGFRKXt2YXIgYUs9MDtmb3IodmFyIGFPPTA7YU88dGhpcy5jbGlwQ29udGV4dExpc3QubGVuZ3RoO2FPKyspe3ZhciBhUD10aGlzLmNsaXBDb250ZXh0TGlzdFthT107dGhpcy5jYWxjQ2xpcHBlZERyYXdUb3RhbEJvdW5kcyhhMSxhUCk7aWYoYVAuaXNVc2luZyl7YUsrKzt9fWlmKGFLPjApe3ZhciBhTT1hUS5nbC5nZXRQYXJhbWV0ZXIoYVEuZ2wuRlJBTUVCVUZGRVJfQklORElORyk7dmFyIGFXPW5ldyBBcnJheSg0KTthV1swXT0wO2FXWzFdPTA7YVdbMl09YVEuZ2wuY2FudmFzLndpZHRoO2FXWzNdPWFRLmdsLmNhbnZhcy5oZWlnaHQ7YVEuZ2wudmlld3BvcnQoMCwwLFEuY2xpcHBpbmdNYXNrQnVmZmVyU2l6ZSxRLmNsaXBwaW5nTWFza0J1ZmZlclNpemUpO3RoaXMuc2V0dXBMYXlvdXRCb3VuZHMoYUspO2FRLmdsLmJpbmRGcmFtZWJ1ZmZlcihhUS5nbC5GUkFNRUJVRkZFUixRLmZyYW1lQnVmZmVyc1t0aGlzLmN1ckZyYW1lTm9dLmZyYW1lYnVmZmVyKTthUS5nbC5jbGVhckNvbG9yKDAsMCwwLDApO2FRLmdsLmNsZWFyKGFRLmdsLkNPTE9SX0JVRkZFUl9CSVQpO2Zvcih2YXIgYU89MDthTzx0aGlzLmNsaXBDb250ZXh0TGlzdC5sZW5ndGg7YU8rKyl7dmFyIGFQPXRoaXMuY2xpcENvbnRleHRMaXN0W2FPXTt2YXIgYVQ9YVAuYWxsQ2xpcHBlZERyYXdSZWN0O3ZhciBhTj1hUC5sYXlvdXRDaGFubmVsTm87dmFyIGFWPWFQLmxheW91dEJvdW5kczt2YXIgYUo9MC4wNTt0aGlzLnRtcEJvdW5kc09uTW9kZWwuXyRqTChhVCk7dGhpcy50bXBCb3VuZHNPbk1vZGVsLmV4cGFuZChhVC53aWR0aCphSixhVC5oZWlnaHQqYUopO3ZhciBhWj1hVi53aWR0aC90aGlzLnRtcEJvdW5kc09uTW9kZWwud2lkdGg7dmFyIGFZPWFWLmhlaWdodC90aGlzLnRtcEJvdW5kc09uTW9kZWwuaGVpZ2h0O3RoaXMudG1wTWF0cml4Mi5pZGVudGl0eSgpO3RoaXMudG1wTWF0cml4Mi50cmFuc2xhdGUoLTEsLTEsMCk7dGhpcy50bXBNYXRyaXgyLnNjYWxlKDIsMiwxKTt0aGlzLnRtcE1hdHJpeDIudHJhbnNsYXRlKGFWLngsYVYueSwwKTt0aGlzLnRtcE1hdHJpeDIuc2NhbGUoYVosYVksMSk7dGhpcy50bXBNYXRyaXgyLnRyYW5zbGF0ZSgtdGhpcy50bXBCb3VuZHNPbk1vZGVsLngsLXRoaXMudG1wQm91bmRzT25Nb2RlbC55LDApO3RoaXMudG1wTWF0cml4Rm9yTWFzay5zZXRNYXRyaXgodGhpcy50bXBNYXRyaXgyLm0pO3RoaXMudG1wTWF0cml4Mi5pZGVudGl0eSgpO3RoaXMudG1wTWF0cml4Mi50cmFuc2xhdGUoYVYueCxhVi55LDApO3RoaXMudG1wTWF0cml4Mi5zY2FsZShhWixhWSwxKTt0aGlzLnRtcE1hdHJpeDIudHJhbnNsYXRlKC10aGlzLnRtcEJvdW5kc09uTW9kZWwueCwtdGhpcy50bXBCb3VuZHNPbk1vZGVsLnksMCk7dGhpcy50bXBNYXRyaXhGb3JEcmF3LnNldE1hdHJpeCh0aGlzLnRtcE1hdHJpeDIubSk7dmFyIGFIPXRoaXMudG1wTWF0cml4Rm9yTWFzay5nZXRBcnJheSgpO2Zvcih2YXIgYVg9MDthWDwxNjthWCsrKXthUC5tYXRyaXhGb3JNYXNrW2FYXT1hSFthWF07fXZhciBhMD10aGlzLnRtcE1hdHJpeEZvckRyYXcuZ2V0QXJyYXkoKTtmb3IodmFyIGFYPTA7YVg8MTY7YVgrKyl7YVAubWF0cml4Rm9yRHJhd1thWF09YTBbYVhdO312YXIgYVM9YVAuY2xpcHBpbmdNYXNrRHJhd0luZGV4TGlzdC5sZW5ndGg7Zm9yKHZhciBhVT0wO2FVPGFTO2FVKyspe3ZhciBhUj1hUC5jbGlwcGluZ01hc2tEcmF3SW5kZXhMaXN0W2FVXTt2YXIgYUk9YTEuZ2V0RHJhd0RhdGEoYVIpO3ZhciBhTD1hMS5fJEMyKGFSKTthUS5zZXRDbGlwQnVmUHJlX2NsaXBDb250ZXh0Rm9yTWFzayhhUCk7YUkuZHJhdyhhUSxhMSxhTCk7fX1hUS5nbC5iaW5kRnJhbWVidWZmZXIoYVEuZ2wuRlJBTUVCVUZGRVIsYU0pO2FRLnNldENsaXBCdWZQcmVfY2xpcENvbnRleHRGb3JNYXNrKG51bGwpO2FRLmdsLnZpZXdwb3J0KGFXWzBdLGFXWzFdLGFXWzJdLGFXWzNdKTt9fTtXLnByb3RvdHlwZS5nZXRDb2xvckJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yQnVmZmVyO307Vy5wcm90b3R5cGUuZmluZFNhbWVDbGlwPWZ1bmN0aW9uKGFLKXtmb3IodmFyIGFOPTA7YU48dGhpcy5jbGlwQ29udGV4dExpc3QubGVuZ3RoO2FOKyspe3ZhciBhTz10aGlzLmNsaXBDb250ZXh0TGlzdFthTl07dmFyIGFIPWFPLmNsaXBJRExpc3QubGVuZ3RoO2lmKGFIIT1hSy5sZW5ndGgpe2NvbnRpbnVlO312YXIgYUk9MDtmb3IodmFyIGFNPTA7YU08YUg7YU0rKyl7dmFyIGFMPWFPLmNsaXBJRExpc3RbYU1dO2Zvcih2YXIgYUo9MDthSjxhSDthSisrKXtpZihhS1thSl09PWFMKXthSSsrO2JyZWFrO319fWlmKGFJPT1hSCl7cmV0dXJuIGFPO319cmV0dXJuIG51bGw7fTtXLnByb3RvdHlwZS5jYWxjQ2xpcHBlZERyYXdUb3RhbEJvdW5kcz1mdW5jdGlvbihhNixhVil7dmFyIGFVPWE2Ll8kUmkuZ2V0TW9kZWxJbXBsKCkuZ2V0Q2FudmFzV2lkdGgoKTt2YXIgYTU9YTYuXyRSaS5nZXRNb2RlbEltcGwoKS5nZXRDYW52YXNIZWlnaHQoKTt2YXIgYUo9YVU+YTU/YVU6YTU7dmFyIGFUPWFKO3ZhciBhUj1hSjt2YXIgYVM9MDt2YXIgYVA9MDt2YXIgYUw9YVYuY2xpcHBlZERyYXdDb250ZXh0TGlzdC5sZW5ndGg7Zm9yKHZhciBhTT0wO2FNPGFMO2FNKyspe3ZhciBhVz1hVi5jbGlwcGVkRHJhd0NvbnRleHRMaXN0W2FNXTt2YXIgYU49YVcuZHJhd0RhdGFJbmRleDt2YXIgYUs9YTYuXyRDMihhTik7aWYoYUsuXyR5bygpKXt2YXIgYVg9YUsuZ2V0VHJhbnNmb3JtZWRQb2ludHMoKTt2YXIgYTQ9YVgubGVuZ3RoO3ZhciBhST1bXTt2YXIgYUg9W107dmFyIGFPPTA7Zm9yKHZhciBhMz1hdy5fJGkyO2EzPGE0O2EzKz1hdy5fJE5vKXthSVthT109YVhbYTNdO2FIW2FPXT1hWFthMysxXTthTysrO312YXIgYTI9TWF0aC5taW4uYXBwbHkobnVsbCxhSSk7dmFyIGExPU1hdGgubWluLmFwcGx5KG51bGwsYUgpO3ZhciBhMD1NYXRoLm1heC5hcHBseShudWxsLGFJKTt2YXIgYVo9TWF0aC5tYXguYXBwbHkobnVsbCxhSCk7aWYoYTI8YVQpe2FUPWEyO31pZihhMTxhUil7YVI9YTE7fWlmKGEwPmFTKXthUz1hMDt9aWYoYVo+YVApe2FQPWFaO319fWlmKGFUPT1hSil7YVYuYWxsQ2xpcHBlZERyYXdSZWN0Lng9MDthVi5hbGxDbGlwcGVkRHJhd1JlY3QueT0wO2FWLmFsbENsaXBwZWREcmF3UmVjdC53aWR0aD0wO2FWLmFsbENsaXBwZWREcmF3UmVjdC5oZWlnaHQ9MDthVi5pc1VzaW5nPWZhbHNlO31lbHNle3ZhciBhUT1hUy1hVDt2YXIgYVk9YVAtYVI7YVYuYWxsQ2xpcHBlZERyYXdSZWN0Lng9YVQ7YVYuYWxsQ2xpcHBlZERyYXdSZWN0Lnk9YVI7YVYuYWxsQ2xpcHBlZERyYXdSZWN0LndpZHRoPWFRO2FWLmFsbENsaXBwZWREcmF3UmVjdC5oZWlnaHQ9YVk7YVYuaXNVc2luZz10cnVlO319O1cucHJvdG90eXBlLnNldHVwTGF5b3V0Qm91bmRzPWZ1bmN0aW9uKGFRKXt2YXIgYUk9YVEvVy5DSEFOTkVMX0NPVU5UO3ZhciBhUD1hUSVXLkNIQU5ORUxfQ09VTlQ7YUk9fn5hSTthUD1+fmFQO3ZhciBhSD0wO2Zvcih2YXIgYUo9MDthSjxXLkNIQU5ORUxfQ09VTlQ7YUorKyl7dmFyIGFNPWFJKyhhSjxhUD8xOjApO2lmKGFNPT0wKXt9ZWxzZXtpZihhTT09MSl7dmFyIGFMPXRoaXMuY2xpcENvbnRleHRMaXN0W2FIKytdO2FMLmxheW91dENoYW5uZWxObz1hSjthTC5sYXlvdXRCb3VuZHMueD0wO2FMLmxheW91dEJvdW5kcy55PTA7YUwubGF5b3V0Qm91bmRzLndpZHRoPTE7YUwubGF5b3V0Qm91bmRzLmhlaWdodD0xO31lbHNle2lmKGFNPT0yKXtmb3IodmFyIGFPPTA7YU88YU07YU8rKyl7dmFyIGFOPWFPJTI7dmFyIGFLPTA7YU49fn5hTjt2YXIgYUw9dGhpcy5jbGlwQ29udGV4dExpc3RbYUgrK107YUwubGF5b3V0Q2hhbm5lbE5vPWFKO2FMLmxheW91dEJvdW5kcy54PWFOKjAuNTthTC5sYXlvdXRCb3VuZHMueT0wO2FMLmxheW91dEJvdW5kcy53aWR0aD0wLjU7YUwubGF5b3V0Qm91bmRzLmhlaWdodD0xO319ZWxzZXtpZihhTTw9NCl7Zm9yKHZhciBhTz0wO2FPPGFNO2FPKyspe3ZhciBhTj1hTyUyO3ZhciBhSz1hTy8yO2FOPX5+YU47YUs9fn5hSzt2YXIgYUw9dGhpcy5jbGlwQ29udGV4dExpc3RbYUgrK107YUwubGF5b3V0Q2hhbm5lbE5vPWFKO2FMLmxheW91dEJvdW5kcy54PWFOKjAuNTthTC5sYXlvdXRCb3VuZHMueT1hSyowLjU7YUwubGF5b3V0Qm91bmRzLndpZHRoPTAuNTthTC5sYXlvdXRCb3VuZHMuaGVpZ2h0PTAuNTt9fWVsc2V7aWYoYU08PTkpe2Zvcih2YXIgYU89MDthTzxhTTthTysrKXt2YXIgYU49YU8lMzt2YXIgYUs9YU8vMzthTj1+fmFOO2FLPX5+YUs7dmFyIGFMPXRoaXMuY2xpcENvbnRleHRMaXN0W2FIKytdO2FMLmxheW91dENoYW5uZWxObz1hSjthTC5sYXlvdXRCb3VuZHMueD1hTi8zO2FMLmxheW91dEJvdW5kcy55PWFLLzM7YUwubGF5b3V0Qm91bmRzLndpZHRoPTEvMzthTC5sYXlvdXRCb3VuZHMuaGVpZ2h0PTEvMzt9fWVsc2V7cS5fJGxpKFwiXyQ2IF8kMFAgbWFzayBjb3VudCA6ICVkXCIsYU0pO319fX19fX07ZnVuY3Rpb24gVShhSCxhSyxhSSl7dGhpcy5jbGlwSURMaXN0PW5ldyBBcnJheSgpO3RoaXMuY2xpcElETGlzdD1hSTt0aGlzLmNsaXBwaW5nTWFza0RyYXdJbmRleExpc3Q9bmV3IEFycmF5KCk7Zm9yKHZhciBhSj0wO2FKPGFJLmxlbmd0aDthSisrKXt0aGlzLmNsaXBwaW5nTWFza0RyYXdJbmRleExpc3QucHVzaChhSy5nZXREcmF3RGF0YUluZGV4KGFJW2FKXSkpO310aGlzLmNsaXBwZWREcmF3Q29udGV4dExpc3Q9bmV3IEFycmF5KCk7dGhpcy5pc1VzaW5nPXRydWU7dGhpcy5sYXlvdXRDaGFubmVsTm89MDt0aGlzLmxheW91dEJvdW5kcz1uZXcgYXYoKTt0aGlzLmFsbENsaXBwZWREcmF3UmVjdD1uZXcgYXYoKTt0aGlzLm1hdHJpeEZvck1hc2s9bmV3IEZsb2F0MzJBcnJheSgxNik7dGhpcy5tYXRyaXhGb3JEcmF3PW5ldyBGbG9hdDMyQXJyYXkoMTYpO3RoaXMub3duZXI9YUg7fVUucHJvdG90eXBlLmFkZENsaXBwZWREcmF3RGF0YT1mdW5jdGlvbihhSixhSSl7dmFyIGFIPW5ldyBSKGFKLGFJKTt0aGlzLmNsaXBwZWREcmF3Q29udGV4dExpc3QucHVzaChhSCk7fTtmdW5jdGlvbiBSKGFJLGFIKXt0aGlzLl8kZ1A9YUk7dGhpcy5kcmF3RGF0YUluZGV4PWFIO31mdW5jdGlvbiBJKCl7aWYoail7cmV0dXJuO310aGlzLmNvbG9yPW51bGw7fWZ1bmN0aW9uIGFoKCl7aWYoail7cmV0dXJuO310aGlzLl8kZFA9bnVsbDt0aGlzLl8kZW89bnVsbDt0aGlzLl8kVjA9bnVsbDt0aGlzLl8kZFA9MTAwMDt0aGlzLl8kZW89MTAwMDt0aGlzLl8kVjA9MTt0aGlzLl8kYTAoKTt9YWguXyRKVD1mdW5jdGlvbihhUCxhTixhTyl7dmFyIGFRPWFQL2FOO3ZhciBhMT1hTy9hTjt2YXIgYVU9YTE7dmFyIGFaPTEvMzt2YXIgYVI9Mi8zO3ZhciBhMD0xLSgxLWExKSooMS1hMSk7dmFyIGEyPTEtKDEtYVUpKigxLWFVKTt2YXIgYU09MDt2YXIgYUw9KCgxLWExKSphWikqYTArKGFVKmFSKygxLWFVKSphWikqKDEtYTApO3ZhciBhSz0oYVUrKDEtYVUpKmFSKSphMisoYTEqYVorKDEtYTEpKmFSKSooMS1hMik7dmFyIGFKPTE7dmFyIGFZPWFKLTMqYUsrMyphTC1hTTt2YXIgYVg9MyphSy02KmFMKzMqYU07dmFyIGFXPTMqYUwtMyphTTt2YXIgYVY9YU07aWYoYVE8PTApe3JldHVybiAwO31lbHNle2lmKGFRPj0xKXtyZXR1cm4gMTt9fXZhciBhUz1hUTt2YXIgYUk9YVMqYVM7dmFyIGFIPWFTKmFJO3ZhciBhVD1hWSphSCthWCphSSthVyphUythVjtyZXR1cm4gYVQ7fTthaC5wcm90b3R5cGUuXyRhMD1mdW5jdGlvbigpe307YWgucHJvdG90eXBlLnNldEZhZGVJbj1mdW5jdGlvbihhSCl7dGhpcy5fJGRQPWFIO307YWgucHJvdG90eXBlLnNldEZhZGVPdXQ9ZnVuY3Rpb24oYUgpe3RoaXMuXyRlbz1hSDt9O2FoLnByb3RvdHlwZS5fJHBUPWZ1bmN0aW9uKGFIKXt0aGlzLl8kVjA9YUg7fTthaC5wcm90b3R5cGUuZ2V0RmFkZU91dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kZW87fTthaC5wcm90b3R5cGUuXyQ0VD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kZW87fTthaC5wcm90b3R5cGUuXyRtVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kVjA7fTthaC5wcm90b3R5cGUuZ2V0RHVyYXRpb25NU2VjPWZ1bmN0aW9uKCl7cmV0dXJuIC0xO307YWgucHJvdG90eXBlLmdldExvb3BEdXJhdGlvbk1TZWM9ZnVuY3Rpb24oKXtyZXR1cm4gLTE7fTthaC5wcm90b3R5cGUudXBkYXRlUGFyYW09ZnVuY3Rpb24oYUosYU4pe2lmKCFhTi5fJEFUfHxhTi5fJDlMKXtyZXR1cm47fXZhciBhTD1QLmdldFVzZXJUaW1lTVNlYygpO2lmKGFOLl8kejI8MCl7YU4uXyR6Mj1hTDthTi5fJGJzPWFMO3ZhciBhTT10aGlzLmdldER1cmF0aW9uTVNlYygpO2lmKGFOLl8kRG88MCl7YU4uXyREbz0oYU08PTApPy0xOmFOLl8kejIrYU07fX12YXIgYUk9dGhpcy5fJFYwO3ZhciBhSD0odGhpcy5fJGRQPT0wKT8xOkEuXyRyMigoKGFMLWFOLl8kYnMpLyh0aGlzLl8kZFApKSk7dmFyIGFLPSh0aGlzLl8kZW89PTB8fGFOLl8kRG88MCk/MTpBLl8kcjIoKChhTi5fJERvLWFMKS8odGhpcy5fJGVvKSkpO2FJPWFJKmFIKmFLO2lmKCEoKDA8PWFJJiZhSTw9MSkpKXtjb25zb2xlLmxvZyhcIiMjIyBhc3NlcnQhISAjIyMgXCIpO310aGlzLnVwZGF0ZVBhcmFtRXhlKGFKLGFMLGFJLGFOKTtpZihhTi5fJERvPjAmJmFOLl8kRG88YUwpe2FOLl8kOUw9dHJ1ZTt9fTthaC5wcm90b3R5cGUudXBkYXRlUGFyYW1FeGU9ZnVuY3Rpb24oYUgsYUksYUosYUspe307ZnVuY3Rpb24gcSgpe31xLl8kOHM9MDtxLl8kZlQ9bmV3IE9iamVjdCgpO3Euc3RhcnQ9ZnVuY3Rpb24oYUkpe3ZhciBhSD1xLl8kZlRbYUldO2lmKGFIPT1udWxsKXthSD1uZXcgYWYoKTthSC5fJHI9YUk7cS5fJGZUW2FJXT1hSDt9YUguXyQwUz1QLmdldFN5c3RlbVRpbWVNU2VjKCk7fTtxLmR1bXA9ZnVuY3Rpb24oYUope3ZhciBhSD1xLl8kZlRbYUpdO2lmKGFIIT1udWxsKXt2YXIgYUk9UC5nZXRTeXN0ZW1UaW1lTVNlYygpO3ZhciBhSz1hSS1hSC5fJDBTO2NvbnNvbGUubG9nKGFKK1wiIDogXCIrYUsrXCJtc1wiKTtyZXR1cm4gYUs7fWVsc2V7cmV0dXJuIC0xO319O3EuZW5kPWZ1bmN0aW9uKGFKKXt2YXIgYUg9cS5fJGZUW2FKXTtpZihhSCE9bnVsbCl7dmFyIGFJPVAuZ2V0U3lzdGVtVGltZU1TZWMoKTtyZXR1cm4gYUktYUguXyQwUzt9ZWxzZXtyZXR1cm4gLTE7fX07cS5fJGxpPWZ1bmN0aW9uKGFJLGFIKXtjb25zb2xlLmxvZyhcIl8kbGkgOiBcIithSStcIlxcblwiLGFIKTt9O3EuXyRKaT1mdW5jdGlvbihhSSxhSCl7Y29uc29sZS5sb2coYUksYUgpO307cS5fJGRMPWZ1bmN0aW9uKGFJLGFIKXtjb25zb2xlLmxvZyhhSSxhSCk7Y29uc29sZS5sb2coXCJcXG5cIik7fTtxLl8kS0w9ZnVuY3Rpb24oYUosYUkpe2Zvcih2YXIgYUg9MDthSDxhSTthSCsrKXtpZihhSCUxNj09MCYmYUg+MCl7Y29uc29sZS5sb2coXCJcXG5cIik7fWVsc2V7aWYoYUglOD09MCYmYUg+MCl7Y29uc29sZS5sb2coXCIgIFwiKTt9fWNvbnNvbGUubG9nKFwiJTAyWCBcIiwoYUpbYUhdJjI1NSkpO31jb25zb2xlLmxvZyhcIlxcblwiKTt9O3EuXyRucj1mdW5jdGlvbihhTCxhSSxhSyl7Y29uc29sZS5sb2coXCIlc1xcblwiLGFMKTt2YXIgYUg9YUkubGVuZ3RoO2Zvcih2YXIgYUo9MDthSjxhSDsrK2FKKXtjb25zb2xlLmxvZyhcIiU1ZFwiLGFJW2FKXSk7Y29uc29sZS5sb2coXCIlc1xcblwiLGFLKTtjb25zb2xlLmxvZyhcIixcIik7fWNvbnNvbGUubG9nKFwiXFxuXCIpO307cS5fJFJiPWZ1bmN0aW9uKGFIKXtjb25zb2xlLmxvZyhcImR1bXAgZXhjZXB0aW9uIDogXCIrYUgpO2NvbnNvbGUubG9nKFwic3RhY2sgOjogXCIrYUguc3RhY2spO307ZnVuY3Rpb24gYWYoKXt0aGlzLl8kcj1udWxsO3RoaXMuXyQwUz1udWxsO31mdW5jdGlvbiBGKCl7aWYoail7cmV0dXJuO310aGlzLng9bnVsbDt0aGlzLnk9bnVsbDt0aGlzLndpZHRoPW51bGw7dGhpcy5oZWlnaHQ9bnVsbDt9Ri5wcm90b3R5cGUuXyQ4UD1mdW5jdGlvbigpe3JldHVybiAwLjUqKHRoaXMueCt0aGlzLngrdGhpcy53aWR0aCk7fTtGLnByb3RvdHlwZS5fJDZQPWZ1bmN0aW9uKCl7cmV0dXJuIDAuNSoodGhpcy55K3RoaXMueSt0aGlzLmhlaWdodCk7fTtGLnByb3RvdHlwZS5fJEVMPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueCt0aGlzLndpZHRoO307Ri5wcm90b3R5cGUuXyQ1VD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnkrdGhpcy5oZWlnaHQ7fTtGLnByb3RvdHlwZS5fJGpMPWZ1bmN0aW9uKGFJLGFLLGFKLGFIKXt0aGlzLng9YUk7dGhpcy55PWFLO3RoaXMud2lkdGg9YUo7dGhpcy5oZWlnaHQ9YUg7fTtGLnByb3RvdHlwZS5fJGpMPWZ1bmN0aW9uKGFIKXt0aGlzLng9YUgueDt0aGlzLnk9YUgueTt0aGlzLndpZHRoPWFILndpZHRoO3RoaXMuaGVpZ2h0PWFILmhlaWdodDt9O2Z1bmN0aW9uIGkoYUgpe2lmKGope3JldHVybjt9YWsucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxhSCk7fWkucHJvdG90eXBlPW5ldyBhaygpO2kuXyR0UD1uZXcgT2JqZWN0KCk7aS5fJDI3PWZ1bmN0aW9uKCl7aS5fJHRQLmNsZWFyKCk7fTtpLmdldElEPWZ1bmN0aW9uKGFIKXt2YXIgYUk9aS5fJHRQW2FIXTtpZihhST09bnVsbCl7YUk9bmV3IGkoYUgpO2kuXyR0UFthSF09YUk7fXJldHVybiBhSTt9O2kucHJvdG90eXBlLl8kM3M9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkoKTt9O2Z1bmN0aW9uIFMoKXt9ZnVuY3Rpb24geihhSCl7aWYoail7cmV0dXJuO31hay5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzLGFIKTt9ei5wcm90b3R5cGU9bmV3IGFrKCk7ei5fJHRQPW5ldyBPYmplY3QoKTt6Ll8kMjc9ZnVuY3Rpb24oKXt6Ll8kdFAuY2xlYXIoKTt9O3ouZ2V0SUQ9ZnVuY3Rpb24oYUgpe3ZhciBhST16Ll8kdFBbYUhdO2lmKGFJPT1udWxsKXthST1uZXcgeihhSCk7ei5fJHRQW2FIXT1hSTt9cmV0dXJuIGFJO307ei5wcm90b3R5cGUuXyQzcz1mdW5jdGlvbigpe3JldHVybiBuZXcgeigpO307ZnVuY3Rpb24gdygpe2lmKGope3JldHVybjt9dGhpcy5fJHZvPW51bGw7dGhpcy5fJEYyPW51bGw7dGhpcy5fJGFvPTQwMDt0aGlzLl8kMVM9NDAwO3cuXyQ0MisrO313Ll8kNDI9MDt3LnByb3RvdHlwZS5fJHpQPWZ1bmN0aW9uKCl7aWYodGhpcy5fJHZvPT1udWxsKXt0aGlzLl8kdm89bmV3IGFuKCk7fWlmKHRoaXMuXyRGMj09bnVsbCl7dGhpcy5fJEYyPW5ldyBBcnJheSgpO319O3cucHJvdG90eXBlLmdldENhbnZhc1dpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRhbzt9O3cucHJvdG90eXBlLmdldENhbnZhc0hlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kMVM7fTt3LnByb3RvdHlwZS5fJEYwPWZ1bmN0aW9uKGFIKXt0aGlzLl8kdm89YUguXyRuUCgpO3RoaXMuXyRGMj1hSC5fJG5QKCk7dGhpcy5fJGFvPWFILl8kNkwoKTt0aGlzLl8kMVM9YUguXyQ2TCgpO307dy5wcm90b3R5cGUuXyQ2Uz1mdW5jdGlvbihhSCl7dGhpcy5fJEYyLnB1c2goYUgpO307dy5wcm90b3R5cGUuXyRYcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kRjI7fTt3LnByb3RvdHlwZS5fJEUyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyR2bzt9O2Z1bmN0aW9uIHUoKXtpZihqKXtyZXR1cm47fXRoaXMucDE9bmV3IE4oKTt0aGlzLnAyPW5ldyBOKCk7dGhpcy5fJEZvPTA7dGhpcy5fJERiPTA7dGhpcy5fJEwyPTA7dGhpcy5fJE0yPTA7dGhpcy5fJGtzPTA7dGhpcy5fJDliPTA7dGhpcy5fJGlQPTA7dGhpcy5fJGlUPTA7dGhpcy5fJGxMPW5ldyBBcnJheSgpO3RoaXMuXyRxUD1uZXcgQXJyYXkoKTt0aGlzLnNldHVwKDAuMywwLjUsMC4xKTt9dS5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oYUosYUksYUgpe3RoaXMuXyRrcz10aGlzLl8kWWIoKTt0aGlzLnAyLl8keFQoKTtpZihhcmd1bWVudHMubGVuZ3RoPT0zKXt0aGlzLl8kRm89YUo7dGhpcy5fJEwyPWFJO3RoaXMucDEuXyRwPWFIO3RoaXMucDIuXyRwPWFIO3RoaXMucDIueT1hSjt0aGlzLnNldHVwKCk7fX07dS5wcm90b3R5cGUuZ2V0UGh5c2ljc1BvaW50MT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnAxO307dS5wcm90b3R5cGUuZ2V0UGh5c2ljc1BvaW50Mj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnAyO307dS5wcm90b3R5cGUuXyRxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kRGI7fTt1LnByb3RvdHlwZS5fJHByPWZ1bmN0aW9uKGFIKXt0aGlzLl8kRGI9YUg7fTt1LnByb3RvdHlwZS5fJDVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRNMjt9O3UucHJvdG90eXBlLl8kQ3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDliO307dS5wcm90b3R5cGUuXyRZYj1mdW5jdGlvbigpe3JldHVybigtMTgwKihNYXRoLmF0YW4yKHRoaXMucDEueC10aGlzLnAyLngsLSh0aGlzLnAxLnktdGhpcy5wMi55KSkpL01hdGguUEkpO307dS5wcm90b3R5cGUuYWRkU3JjUGFyYW09ZnVuY3Rpb24oYUosYUgsYUwsYUkpe3ZhciBhSz1uZXcgaChhSixhSCxhTCxhSSk7dGhpcy5fJGxMLnB1c2goYUspO307dS5wcm90b3R5cGUuYWRkVGFyZ2V0UGFyYW09ZnVuY3Rpb24oYUosYUgsYUssYUkpe3ZhciBhTD1uZXcgYUYoYUosYUgsYUssYUkpO3RoaXMuXyRxUC5wdXNoKGFMKTt9O3UucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhSSxhTCl7aWYodGhpcy5fJGlQPT0wKXt0aGlzLl8kaVA9dGhpcy5fJGlUPWFMO3RoaXMuXyRGbz0oTWF0aC5zcXJ0KCh0aGlzLnAxLngtdGhpcy5wMi54KSoodGhpcy5wMS54LXRoaXMucDIueCkrKHRoaXMucDEueS10aGlzLnAyLnkpKih0aGlzLnAxLnktdGhpcy5wMi55KSkpO3JldHVybjt9dmFyIGFLPShhTC10aGlzLl8kaVQpLzEwMDA7aWYoYUshPTApe2Zvcih2YXIgYUo9dGhpcy5fJGxMLmxlbmd0aC0xO2FKPj0wOy0tYUope3ZhciBhTT10aGlzLl8kbExbYUpdO2FNLl8kb1AoYUksdGhpcyk7fXRoaXMuXyRvbyhhSSxhSyk7dGhpcy5fJE0yPXRoaXMuXyRZYigpO3RoaXMuXyQ5Yj0odGhpcy5fJE0yLXRoaXMuXyRrcykvYUs7dGhpcy5fJGtzPXRoaXMuXyRNMjt9Zm9yKHZhciBhSj10aGlzLl8kcVAubGVuZ3RoLTE7YUo+PTA7LS1hSil7dmFyIGFIPXRoaXMuXyRxUFthSl07YUguXyRZUyhhSSx0aGlzKTt9dGhpcy5fJGlUPWFMO307dS5wcm90b3R5cGUuXyRvbz1mdW5jdGlvbihhTixhSSl7aWYoYUk8MC4wMzMpe2FJPTAuMDMzO312YXIgYVU9MS9hSTt0aGlzLnAxLnZ4PSh0aGlzLnAxLngtdGhpcy5wMS5fJHMwKSphVTt0aGlzLnAxLnZ5PSh0aGlzLnAxLnktdGhpcy5wMS5fJDcwKSphVTt0aGlzLnAxLmF4PSh0aGlzLnAxLnZ4LXRoaXMucDEuXyQ3TCkqYVU7dGhpcy5wMS5heT0odGhpcy5wMS52eS10aGlzLnAxLl8kSEwpKmFVO3RoaXMucDEuZng9dGhpcy5wMS5heCp0aGlzLnAxLl8kcDt0aGlzLnAxLmZ5PXRoaXMucDEuYXkqdGhpcy5wMS5fJHA7dGhpcy5wMS5fJHhUKCk7dmFyIGFNPS0oTWF0aC5hdGFuMigodGhpcy5wMS55LXRoaXMucDIueSksdGhpcy5wMS54LXRoaXMucDIueCkpO3ZhciBhTDt2YXIgYVY7dmFyIGFSPU1hdGguY29zKGFNKTt2YXIgYUg9TWF0aC5zaW4oYU0pO3ZhciBhVz05LjgqdGhpcy5wMi5fJHA7dmFyIGFRPSh0aGlzLl8kRGIqYUMuXyRiUyk7dmFyIGFQPShhVypNYXRoLmNvcyhhTS1hUSkpO2FMPShhUCphSCk7YVY9KGFQKmFSKTt2YXIgYUs9KC10aGlzLnAxLmZ4KmFIKmFIKTt2YXIgYVQ9KC10aGlzLnAxLmZ5KmFIKmFSKTt2YXIgYUo9KCgtdGhpcy5wMi52eCp0aGlzLl8kTDIpKTt2YXIgYVM9KCgtdGhpcy5wMi52eSp0aGlzLl8kTDIpKTt0aGlzLnAyLmZ4PSgoYUwrYUsrYUopKTt0aGlzLnAyLmZ5PSgoYVYrYVQrYVMpKTt0aGlzLnAyLmF4PXRoaXMucDIuZngvdGhpcy5wMi5fJHA7dGhpcy5wMi5heT10aGlzLnAyLmZ5L3RoaXMucDIuXyRwO3RoaXMucDIudngrPXRoaXMucDIuYXgqYUk7dGhpcy5wMi52eSs9dGhpcy5wMi5heSphSTt0aGlzLnAyLngrPXRoaXMucDIudngqYUk7dGhpcy5wMi55Kz10aGlzLnAyLnZ5KmFJO3ZhciBhTz0oTWF0aC5zcXJ0KCh0aGlzLnAxLngtdGhpcy5wMi54KSoodGhpcy5wMS54LXRoaXMucDIueCkrKHRoaXMucDEueS10aGlzLnAyLnkpKih0aGlzLnAxLnktdGhpcy5wMi55KSkpO3RoaXMucDIueD10aGlzLnAxLngrdGhpcy5fJEZvKih0aGlzLnAyLngtdGhpcy5wMS54KS9hTzt0aGlzLnAyLnk9dGhpcy5wMS55K3RoaXMuXyRGbyoodGhpcy5wMi55LXRoaXMucDEueSkvYU87dGhpcy5wMi52eD0odGhpcy5wMi54LXRoaXMucDIuXyRzMCkqYVU7dGhpcy5wMi52eT0odGhpcy5wMi55LXRoaXMucDIuXyQ3MCkqYVU7dGhpcy5wMi5fJHhUKCk7fTtmdW5jdGlvbiBOKCl7dGhpcy5fJHA9MTt0aGlzLng9MDt0aGlzLnk9MDt0aGlzLnZ4PTA7dGhpcy52eT0wO3RoaXMuYXg9MDt0aGlzLmF5PTA7dGhpcy5meD0wO3RoaXMuZnk9MDt0aGlzLl8kczA9MDt0aGlzLl8kNzA9MDt0aGlzLl8kN0w9MDt0aGlzLl8kSEw9MDt9Ti5wcm90b3R5cGUuXyR4VD1mdW5jdGlvbigpe3RoaXMuXyRzMD10aGlzLng7dGhpcy5fJDcwPXRoaXMueTt0aGlzLl8kN0w9dGhpcy52eDt0aGlzLl8kSEw9dGhpcy52eTt9O2Z1bmN0aW9uIGF0KGFKLGFJLGFIKXt0aGlzLl8kd0w9bnVsbDt0aGlzLnNjYWxlPW51bGw7dGhpcy5fJFYwPW51bGw7dGhpcy5fJHdMPWFKO3RoaXMuc2NhbGU9YUk7dGhpcy5fJFYwPWFIO31hdC5wcm90b3R5cGUuXyRvUD1mdW5jdGlvbihhSSxhSCl7fTtmdW5jdGlvbiBoKGFKLGFLLGFJLGFIKXthdC5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzLGFLLGFJLGFIKTt0aGlzLl8kdEw9bnVsbDt0aGlzLl8kdEw9YUo7fWgucHJvdG90eXBlPW5ldyBhdCgpO2gucHJvdG90eXBlLl8kb1A9ZnVuY3Rpb24oYUosYUgpe3ZhciBhSz10aGlzLnNjYWxlKmFKLmdldFBhcmFtRmxvYXQodGhpcy5fJHdMKTt2YXIgYUw9YUguZ2V0UGh5c2ljc1BvaW50MSgpO3N3aXRjaCh0aGlzLl8kdEwpe2RlZmF1bHQ6Y2FzZSB1LlNyYy5TUkNfVE9fWDphTC54PWFMLngrKGFLLWFMLngpKnRoaXMuXyRWMDticmVhaztjYXNlIHUuU3JjLlNSQ19UT19ZOmFMLnk9YUwueSsoYUstYUwueSkqdGhpcy5fJFYwO2JyZWFrO2Nhc2UgdS5TcmMuU1JDX1RPX0dfQU5HTEU6dmFyIGFJPWFILl8kcXIoKTthST1hSSsoYUstYUkpKnRoaXMuXyRWMDthSC5fJHByKGFJKTticmVhazt9fTtmdW5jdGlvbiBkKGFKLGFJLGFIKXt0aGlzLl8kd0w9bnVsbDt0aGlzLnNjYWxlPW51bGw7dGhpcy5fJFYwPW51bGw7dGhpcy5fJHdMPWFKO3RoaXMuc2NhbGU9YUk7dGhpcy5fJFYwPWFIO31kLnByb3RvdHlwZS5fJFlTPWZ1bmN0aW9uKGFJLGFIKXt9O2Z1bmN0aW9uIGFGKGFJLGFLLGFKLGFIKXtkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsYUssYUosYUgpO3RoaXMuXyRZUD1udWxsO3RoaXMuXyRZUD1hSTt9YUYucHJvdG90eXBlPW5ldyBkKCk7YUYucHJvdG90eXBlLl8kWVM9ZnVuY3Rpb24oYUksYUgpe3N3aXRjaCh0aGlzLl8kWVApe2RlZmF1bHQ6Y2FzZSB1LlRhcmdldC5UQVJHRVRfRlJPTV9BTkdMRTphSS5zZXRQYXJhbUZsb2F0KHRoaXMuXyR3TCx0aGlzLnNjYWxlKmFILl8kNXIoKSx0aGlzLl8kVjApO2JyZWFrO2Nhc2UgdS5UYXJnZXQuVEFSR0VUX0ZST01fQU5HTEVfVjphSS5zZXRQYXJhbUZsb2F0KHRoaXMuXyR3TCx0aGlzLnNjYWxlKmFILl8kQ3MoKSx0aGlzLl8kVjApO2JyZWFrO319O3UuU3JjPWZ1bmN0aW9uKCl7fTt1LlNyYy5TUkNfVE9fWD1cIlNSQ19UT19YXCI7dS5TcmMuU1JDX1RPX1k9XCJTUkNfVE9fWVwiO3UuU3JjLlNSQ19UT19HX0FOR0xFPVwiU1JDX1RPX0dfQU5HTEVcIjt1LlRhcmdldD1mdW5jdGlvbigpe307dS5UYXJnZXQuVEFSR0VUX0ZST01fQU5HTEU9XCJUQVJHRVRfRlJPTV9BTkdMRVwiO3UuVGFyZ2V0LlRBUkdFVF9GUk9NX0FOR0xFX1Y9XCJUQVJHRVRfRlJPTV9BTkdMRV9WXCI7ZnVuY3Rpb24gWCgpe2lmKGope3JldHVybjt9dGhpcy5fJGZMPTA7dGhpcy5fJGdMPTA7dGhpcy5fJEIwPTE7dGhpcy5fJHowPTE7dGhpcy5fJHFUPTA7dGhpcy5yZWZsZWN0WD1mYWxzZTt0aGlzLnJlZmxlY3RZPWZhbHNlO31YLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGFIKXt0aGlzLl8kZkw9YUguXyRmTDt0aGlzLl8kZ0w9YUguXyRnTDt0aGlzLl8kQjA9YUguXyRCMDt0aGlzLl8kejA9YUguXyR6MDt0aGlzLl8kcVQ9YUguXyRxVDt0aGlzLnJlZmxlY3RYPWFILnJlZmxlY3RYO3RoaXMucmVmbGVjdFk9YUgucmVmbGVjdFk7fTtYLnByb3RvdHlwZS5fJEYwPWZ1bmN0aW9uKGFIKXt0aGlzLl8kZkw9YUguXyRfVCgpO3RoaXMuXyRnTD1hSC5fJF9UKCk7dGhpcy5fJEIwPWFILl8kX1QoKTt0aGlzLl8kejA9YUguXyRfVCgpO3RoaXMuXyRxVD1hSC5fJF9UKCk7aWYoYUguZ2V0Rm9ybWF0VmVyc2lvbigpPj1heS5MSVZFMkRfRk9STUFUX1ZFUlNJT05fVjJfMTBfU0RLMil7dGhpcy5yZWZsZWN0WD1hSC5fJHBvKCk7dGhpcy5yZWZsZWN0WT1hSC5fJHBvKCk7fX07WC5wcm90b3R5cGUuXyRlPWZ1bmN0aW9uKCl7fTt2YXIgYWQ9ZnVuY3Rpb24oKXt9O2FkLl8kbmk9ZnVuY3Rpb24oYUwsYUosYVIsYVEsYUssYUksYUgsYVMsYU4pe3ZhciBhTT0oYUgqYUktYVMqYUspO2lmKGFNPT0wKXtyZXR1cm4gbnVsbDt9ZWxzZXt2YXIgYU89KChhTC1hUikqYUktKGFKLWFRKSphSykvYU07dmFyIGFQO2lmKGFLIT0wKXthUD0oYUwtYVItYU8qYUgpL2FLO31lbHNle2FQPShhSi1hUS1hTyphUykvYUk7fWlmKGlzTmFOKGFQKSl7YVA9KGFMLWFSLWFPKmFIKS9hSztpZihpc05hTihhUCkpe2FQPShhSi1hUS1hTyphUykvYUk7fWlmKGlzTmFOKGFQKSl7Y29uc29sZS5sb2coXCJhIGlzIE5hTiBAVXRWZWN0b3IjXyRuaSgpIFwiKTtjb25zb2xlLmxvZyhcInYxeCA6IFwiK2FLKTtjb25zb2xlLmxvZyhcInYxeCAhPSAwID8gXCIrKGFLIT0wKSk7fX1pZihhTj09bnVsbCl7cmV0dXJuIG5ldyBBcnJheShhUCxhTyk7fWVsc2V7YU5bMF09YVA7YU5bMV09YU87cmV0dXJuIGFOO319fTtmdW5jdGlvbiBhdigpe2lmKGope3JldHVybjt9dGhpcy54PW51bGw7dGhpcy55PW51bGw7dGhpcy53aWR0aD1udWxsO3RoaXMuaGVpZ2h0PW51bGw7fWF2LnByb3RvdHlwZS5fJDhQPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueCswLjUqdGhpcy53aWR0aDt9O2F2LnByb3RvdHlwZS5fJDZQPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueSswLjUqdGhpcy5oZWlnaHQ7fTthdi5wcm90b3R5cGUuXyRFTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLngrdGhpcy53aWR0aDt9O2F2LnByb3RvdHlwZS5fJDVUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueSt0aGlzLmhlaWdodDt9O2F2LnByb3RvdHlwZS5fJGpMPWZ1bmN0aW9uKGFJLGFLLGFKLGFIKXt0aGlzLng9YUk7dGhpcy55PWFLO3RoaXMud2lkdGg9YUo7dGhpcy5oZWlnaHQ9YUg7fTthdi5wcm90b3R5cGUuXyRqTD1mdW5jdGlvbihhSCl7dGhpcy54PWFILng7dGhpcy55PWFILnk7dGhpcy53aWR0aD1hSC53aWR0aDt0aGlzLmhlaWdodD1hSC5oZWlnaHQ7fTthdi5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYUgsYUkpe3JldHVybiB0aGlzLng8PXRoaXMueCYmdGhpcy55PD10aGlzLnkmJih0aGlzLng8PXRoaXMueCt0aGlzLndpZHRoKSYmKHRoaXMueTw9dGhpcy55K3RoaXMuaGVpZ2h0KTt9O2F2LnByb3RvdHlwZS5leHBhbmQ9ZnVuY3Rpb24oYUgsYUkpe3RoaXMueC09YUg7dGhpcy55LT1hSTt0aGlzLndpZHRoKz1hSCoyO3RoaXMuaGVpZ2h0Kz1hSSoyO307ZnVuY3Rpb24gYUcoKXt9YUcuXyRaMj1mdW5jdGlvbihiYixibyxicCxhMil7dmFyIGExPWJvLl8kUTIoYmIsYnApO3ZhciBhMz1iYi5fJHZzKCk7dmFyIGJhPWJiLl8kVHIoKTtiby5fJHpyKGEzLGJhLGExKTtpZihhMTw9MCl7cmV0dXJuIGEyW2EzWzBdXTt9ZWxzZXtpZihhMT09MSl7dmFyIGJqPWEyW2EzWzBdXTt2YXIgYmk9YTJbYTNbMV1dO3ZhciBhOT1iYVswXTtyZXR1cm4oYmorKGJpLWJqKSphOSl8MDt9ZWxzZXtpZihhMT09Mil7dmFyIGJqPWEyW2EzWzBdXTt2YXIgYmk9YTJbYTNbMV1dO3ZhciBhMD1hMlthM1syXV07dmFyIGFaPWEyW2EzWzNdXTt2YXIgYTk9YmFbMF07dmFyIGE4PWJhWzFdO3ZhciBicj0oYmorKGJpLWJqKSphOSl8MDt2YXIgYnE9KGEwKyhhWi1hMCkqYTkpfDA7cmV0dXJuKGJyKyhicS1icikqYTgpfDA7fWVsc2V7aWYoYTE9PTMpe3ZhciBhUD1hMlthM1swXV07dmFyIGFPPWEyW2EzWzFdXTt2YXIgYm49YTJbYTNbMl1dO3ZhciBibT1hMlthM1szXV07dmFyIGFLPWEyW2EzWzRdXTt2YXIgYUo9YTJbYTNbNV1dO3ZhciBiZz1hMlthM1s2XV07dmFyIGJmPWEyW2EzWzddXTt2YXIgYTk9YmFbMF07dmFyIGE4PWJhWzFdO3ZhciBhNj1iYVsyXTt2YXIgYmo9KGFQKyhhTy1hUCkqYTkpfDA7dmFyIGJpPShibisoYm0tYm4pKmE5KXwwO3ZhciBhMD0oYUsrKGFKLWFLKSphOSl8MDt2YXIgYVo9KGJnKyhiZi1iZykqYTkpfDA7dmFyIGJyPShiaisoYmktYmopKmE4KXwwO3ZhciBicT0oYTArKGFaLWEwKSphOCl8MDtyZXR1cm4oYnIrKGJxLWJyKSphNil8MDt9ZWxzZXtpZihhMT09NCl7dmFyIGFUPWEyW2EzWzBdXTt2YXIgYVM9YTJbYTNbMV1dO3ZhciBidT1hMlthM1syXV07dmFyIGJ0PWEyW2EzWzNdXTt2YXIgYU49YTJbYTNbNF1dO3ZhciBhTT1hMlthM1s1XV07dmFyIGJsPWEyW2EzWzZdXTt2YXIgYms9YTJbYTNbN11dO3ZhciBiZT1hMlthM1s4XV07dmFyIGJjPWEyW2EzWzldXTt2YXIgYVg9YTJbYTNbMTBdXTt2YXIgYVc9YTJbYTNbMTFdXTt2YXIgYTc9YTJbYTNbMTJdXTt2YXIgYTU9YTJbYTNbMTNdXTt2YXIgYVI9YTJbYTNbMTRdXTt2YXIgYVE9YTJbYTNbMTVdXTt2YXIgYTk9YmFbMF07dmFyIGE4PWJhWzFdO3ZhciBhNj1iYVsyXTt2YXIgYTQ9YmFbM107dmFyIGFQPShhVCsoYVMtYVQpKmE5KXwwO3ZhciBhTz0oYnUrKGJ0LWJ1KSphOSl8MDt2YXIgYm49KGFOKyhhTS1hTikqYTkpfDA7dmFyIGJtPShibCsoYmstYmwpKmE5KXwwO3ZhciBhSz0oYmUrKGJjLWJlKSphOSl8MDt2YXIgYUo9KGFYKyhhVy1hWCkqYTkpfDA7dmFyIGJnPShhNysoYTUtYTcpKmE5KXwwO3ZhciBiZj0oYVIrKGFRLWFSKSphOSl8MDt2YXIgYmo9KGFQKyhhTy1hUCkqYTgpfDA7dmFyIGJpPShibisoYm0tYm4pKmE4KXwwO3ZhciBhMD0oYUsrKGFKLWFLKSphOCl8MDt2YXIgYVo9KGJnKyhiZi1iZykqYTgpfDA7dmFyIGJyPShiaisoYmktYmopKmE2KXwwO3ZhciBicT0oYTArKGFaLWEwKSphNil8MDtyZXR1cm4oYnIrKGJxLWJyKSphNCl8MDt9ZWxzZXt2YXIgYVY9MTw8YTE7dmFyIGFZPW5ldyBGbG9hdDMyQXJyYXkoYVYpO2Zvcih2YXIgYmg9MDtiaDxhVjtiaCsrKXt2YXIgYUk9Ymg7dmFyIGFIPTE7Zm9yKHZhciBhTD0wO2FMPGExO2FMKyspe2FIKj0oYUklMj09MCk/KDEtYmFbYUxdKTpiYVthTF07YUkvPTI7fWFZW2JoXT1hSDt9dmFyIGJzPW5ldyBGbG9hdDMyQXJyYXkoYVYpO2Zvcih2YXIgYVU9MDthVTxhVjthVSsrKXtic1thVV09YTJbYTNbYVVdXTt9dmFyIGJkPTA7Zm9yKHZhciBhVT0wO2FVPGFWO2FVKyspe2JkKz1hWVthVV0qYnNbYVVdO31yZXR1cm4oYmQrMC41KXwwO319fX19fTthRy5fJGJyPWZ1bmN0aW9uKGJhLGJvLGJwLGJnKXt2YXIgYTE9Ym8uXyRRMihiYSxicCk7dmFyIGEyPWJhLl8kdnMoKTt2YXIgYTk9YmEuXyRUcigpO2JvLl8kenIoYTIsYTksYTEpO2lmKGExPD0wKXtyZXR1cm4gYmdbYTJbMF1dO31lbHNle2lmKGExPT0xKXt2YXIgYmo9YmdbYTJbMF1dO3ZhciBiaT1iZ1thMlsxXV07dmFyIGE4PWE5WzBdO3JldHVybiBiaisoYmktYmopKmE4O31lbHNle2lmKGExPT0yKXt2YXIgYmo9YmdbYTJbMF1dO3ZhciBiaT1iZ1thMlsxXV07dmFyIGEwPWJnW2EyWzJdXTt2YXIgYVo9YmdbYTJbM11dO3ZhciBhOD1hOVswXTt2YXIgYTc9YTlbMV07cmV0dXJuKDEtYTcpKihiaisoYmktYmopKmE4KSthNyooYTArKGFaLWEwKSphOCk7fWVsc2V7aWYoYTE9PTMpe3ZhciBhUD1iZ1thMlswXV07dmFyIGFPPWJnW2EyWzFdXTt2YXIgYm49YmdbYTJbMl1dO3ZhciBibT1iZ1thMlszXV07dmFyIGFLPWJnW2EyWzRdXTt2YXIgYUo9YmdbYTJbNV1dO3ZhciBiZj1iZ1thMls2XV07dmFyIGJlPWJnW2EyWzddXTt2YXIgYTg9YTlbMF07dmFyIGE3PWE5WzFdO3ZhciBhNT1hOVsyXTtyZXR1cm4oMS1hNSkqKCgxLWE3KSooYVArKGFPLWFQKSphOCkrYTcqKGJuKyhibS1ibikqYTgpKSthNSooKDEtYTcpKihhSysoYUotYUspKmE4KSthNyooYmYrKGJlLWJmKSphOCkpO31lbHNle2lmKGExPT00KXt2YXIgYVQ9YmdbYTJbMF1dO3ZhciBhUz1iZ1thMlsxXV07dmFyIGJzPWJnW2EyWzJdXTt2YXIgYnI9YmdbYTJbM11dO3ZhciBhTj1iZ1thMls0XV07dmFyIGFNPWJnW2EyWzVdXTt2YXIgYmw9YmdbYTJbNl1dO3ZhciBiaz1iZ1thMls3XV07dmFyIGJkPWJnW2EyWzhdXTt2YXIgYmI9YmdbYTJbOV1dO3ZhciBhWD1iZ1thMlsxMF1dO3ZhciBhVz1iZ1thMlsxMV1dO3ZhciBhNj1iZ1thMlsxMl1dO3ZhciBhND1iZ1thMlsxM11dO3ZhciBhUj1iZ1thMlsxNF1dO3ZhciBhUT1iZ1thMlsxNV1dO3ZhciBhOD1hOVswXTt2YXIgYTc9YTlbMV07dmFyIGE1PWE5WzJdO3ZhciBhMz1hOVszXTtyZXR1cm4oMS1hMykqKCgxLWE1KSooKDEtYTcpKihhVCsoYVMtYVQpKmE4KSthNyooYnMrKGJyLWJzKSphOCkpK2E1KigoMS1hNykqKGFOKyhhTS1hTikqYTgpK2E3KihibCsoYmstYmwpKmE4KSkpK2EzKigoMS1hNSkqKCgxLWE3KSooYmQrKGJiLWJkKSphOCkrYTcqKGFYKyhhVy1hWCkqYTgpKSthNSooKDEtYTcpKihhNisoYTQtYTYpKmE4KSthNyooYVIrKGFRLWFSKSphOCkpKTt9ZWxzZXt2YXIgYVY9MTw8YTE7dmFyIGFZPW5ldyBGbG9hdDMyQXJyYXkoYVYpO2Zvcih2YXIgYmg9MDtiaDxhVjtiaCsrKXt2YXIgYUk9Ymg7dmFyIGFIPTE7Zm9yKHZhciBhTD0wO2FMPGExO2FMKyspe2FIKj0oYUklMj09MCk/KDEtYTlbYUxdKTphOVthTF07YUkvPTI7fWFZW2JoXT1hSDt9dmFyIGJxPW5ldyBGbG9hdDMyQXJyYXkoYVYpO2Zvcih2YXIgYVU9MDthVTxhVjthVSsrKXticVthVV09YmdbYTJbYVVdXTt9dmFyIGJjPTA7Zm9yKHZhciBhVT0wO2FVPGFWO2FVKyspe2JjKz1hWVthVV0qYnFbYVVdO31yZXR1cm4gYmM7fX19fX19O2FHLl8kVnI9ZnVuY3Rpb24oYlYsYlcsYTUsYUksYkMsYTMsYlgsYkgpe3ZhciBhTj1iVy5fJFEyKGJWLGE1KTt2YXIgYnc9YlYuXyR2cygpO3ZhciBhMj1iVi5fJFRyKCk7YlcuXyR6cihidyxhMixhTik7dmFyIGFKPWFJKjI7dmFyIGFRPWJYO2lmKGFOPD0wKXt2YXIgYkk9YndbMF07dmFyIGJxPWJDW2JJXTtpZihiSD09MiYmYlg9PTApe1AuXyRqVChicSwwLGEzLDAsYUopO31lbHNle2Zvcih2YXIgYnQ9MDtidDxhSjspe2EzW2FRXT1icVtidCsrXTthM1thUSsxXT1icVtidCsrXTthUSs9Ykg7fX19ZWxzZXtpZihhTj09MSl7dmFyIGJxPWJDW2J3WzBdXTt2YXIgYnA9YkNbYndbMV1dO3ZhciBiMz1hMlswXTt2YXIgYlQ9MS1iMztmb3IodmFyIGJ0PTA7YnQ8YUo7KXthM1thUV09YnFbYnRdKmJUK2JwW2J0XSpiMzsrK2J0O2EzW2FRKzFdPWJxW2J0XSpiVCticFtidF0qYjM7KytidDthUSs9Ykg7fX1lbHNle2lmKGFOPT0yKXt2YXIgYnE9YkNbYndbMF1dO3ZhciBicD1iQ1tid1sxXV07dmFyIGFaPWJDW2J3WzJdXTt2YXIgYVk9YkNbYndbM11dO3ZhciBiMz1hMlswXTt2YXIgYjE9YTJbMV07dmFyIGJUPTEtYjM7dmFyIGJQPTEtYjE7dmFyIGIyPWJQKmJUO3ZhciBiMD1iUCpiMzt2YXIgYk09YjEqYlQ7dmFyIGJMPWIxKmIzO2Zvcih2YXIgYnQ9MDtidDxhSjspe2EzW2FRXT1iMipicVtidF0rYjAqYnBbYnRdK2JNKmFaW2J0XStiTCphWVtidF07KytidDthM1thUSsxXT1iMipicVtidF0rYjAqYnBbYnRdK2JNKmFaW2J0XStiTCphWVtidF07KytidDthUSs9Ykg7fX1lbHNle2lmKGFOPT0zKXt2YXIgYmE9YkNbYndbMF1dO3ZhciBhOT1iQ1tid1sxXV07dmFyIGFQPWJDW2J3WzJdXTt2YXIgYU89YkNbYndbM11dO3ZhciBhNj1iQ1tid1s0XV07dmFyIGE0PWJDW2J3WzVdXTt2YXIgYUw9YkNbYndbNl1dO3ZhciBhSz1iQ1tid1s3XV07dmFyIGIzPWEyWzBdO3ZhciBiMT1hMlsxXTt2YXIgYlo9YTJbMl07dmFyIGJUPTEtYjM7dmFyIGJQPTEtYjE7dmFyIGJOPTEtYlo7dmFyIGI4PWJOKmJQKmJUO3ZhciBiNz1iTipiUCpiMzt2YXIgYlU9Yk4qYjEqYlQ7dmFyIGJTPWJOKmIxKmIzO3ZhciBiNj1iWipiUCpiVDt2YXIgYjU9YloqYlAqYjM7dmFyIGJRPWJaKmIxKmJUO3ZhciBiTz1iWipiMSpiMztmb3IodmFyIGJ0PTA7YnQ8YUo7KXthM1thUV09YjgqYmFbYnRdK2I3KmE5W2J0XStiVSphUFtidF0rYlMqYU9bYnRdK2I2KmE2W2J0XStiNSphNFtidF0rYlEqYUxbYnRdK2JPKmFLW2J0XTsrK2J0O2EzW2FRKzFdPWI4KmJhW2J0XStiNyphOVtidF0rYlUqYVBbYnRdK2JTKmFPW2J0XStiNiphNltidF0rYjUqYTRbYnRdK2JRKmFMW2J0XStiTyphS1tidF07KytidDthUSs9Ykg7fX1lbHNle2lmKGFOPT00KXt2YXIgYkQ9YkNbYndbMF1dO3ZhciBiQj1iQ1tid1sxXV07dmFyIGJvPWJDW2J3WzJdXTt2YXIgYm09YkNbYndbM11dO3ZhciBieT1iQ1tid1s0XV07dmFyIGJ4PWJDW2J3WzVdXTt2YXIgYmU9YkNbYndbNl1dO3ZhciBiZD1iQ1tid1s3XV07dmFyIGJHPWJDW2J3WzhdXTt2YXIgYkU9YkNbYndbOV1dO3ZhciBidj1iQ1tid1sxMF1dO3ZhciBidT1iQ1tid1sxMV1dO3ZhciBiQT1iQ1tid1sxMl1dO3ZhciBiej1iQ1tid1sxM11dO3ZhciBibj1iQ1tid1sxNF1dO3ZhciBibD1iQ1tid1sxNV1dO3ZhciBiMz1hMlswXTt2YXIgYjE9YTJbMV07dmFyIGJaPWEyWzJdO3ZhciBiWT1hMlszXTt2YXIgYlQ9MS1iMzt2YXIgYlA9MS1iMTt2YXIgYk49MS1iWjt2YXIgYks9MS1iWTt2YXIgYms9YksqYk4qYlAqYlQ7dmFyIGJpPWJLKmJOKmJQKmIzO3ZhciBhVz1iSypiTipiMSpiVDt2YXIgYVY9YksqYk4qYjEqYjM7dmFyIGJjPWJLKmJaKmJQKmJUO3ZhciBiYj1iSypiWipiUCpiMzt2YXIgYVM9YksqYloqYjEqYlQ7dmFyIGFSPWJLKmJaKmIxKmIzO3ZhciBicz1iWSpiTipiUCpiVDt2YXIgYnI9YlkqYk4qYlAqYjM7dmFyIGExPWJZKmJOKmIxKmJUO3ZhciBhMD1iWSpiTipiMSpiMzt2YXIgYmg9YlkqYloqYlAqYlQ7dmFyIGJmPWJZKmJaKmJQKmIzO3ZhciBhVT1iWSpiWipiMSpiVDt2YXIgYVQ9YlkqYloqYjEqYjM7Zm9yKHZhciBidD0wO2J0PGFKOyl7YTNbYVFdPWJrKmJEW2J0XStiaSpiQltidF0rYVcqYm9bYnRdK2FWKmJtW2J0XStiYypieVtidF0rYmIqYnhbYnRdK2FTKmJlW2J0XSthUipiZFtidF0rYnMqYkdbYnRdK2JyKmJFW2J0XSthMSpidltidF0rYTAqYnVbYnRdK2JoKmJBW2J0XStiZipieltidF0rYVUqYm5bYnRdK2FUKmJsW2J0XTsrK2J0O2EzW2FRKzFdPWJrKmJEW2J0XStiaSpiQltidF0rYVcqYm9bYnRdK2FWKmJtW2J0XStiYypieVtidF0rYmIqYnhbYnRdK2FTKmJlW2J0XSthUipiZFtidF0rYnMqYkdbYnRdK2JyKmJFW2J0XSthMSpidltidF0rYTAqYnVbYnRdK2JoKmJBW2J0XStiZipieltidF0rYVUqYm5bYnRdK2FUKmJsW2J0XTsrK2J0O2FRKz1iSDt9fWVsc2V7dmFyIGI0PTE8PGFOO3ZhciBiSj1uZXcgRmxvYXQzMkFycmF5KGI0KTtmb3IodmFyIGJqPTA7Ymo8YjQ7YmorKyl7dmFyIGFIPWJqO3ZhciBhTT0xO2Zvcih2YXIgYkY9MDtiRjxhTjtiRisrKXthTSo9KGFIJTI9PTApPygxLWEyW2JGXSk6YTJbYkZdO2FILz0yO31iSltial09YU07fXZhciBiZz1uZXcgRmxvYXQzMkFycmF5KGI0KTtmb3IodmFyIGFYPTA7YVg8YjQ7YVgrKyl7YmdbYVhdPWJDW2J3W2FYXV07fWZvcih2YXIgYnQ9MDtidDxhSjspe3ZhciBhOD0wLGE3PTA7dmFyIGJSPWJ0KzE7Zm9yKHZhciBhWD0wO2FYPGI0O2FYKyspe2E4Kz1iSlthWF0qYmdbYVhdW2J0XTthNys9YkpbYVhdKmJnW2FYXVtiUl07fWJ0Kz0yO2EzW2FRXT1hODthM1thUSsxXT1hNzthUSs9Ykg7fX19fX19fTtmdW5jdGlvbiBlKCl7aWYoail7cmV0dXJuO310aGlzLng9bnVsbDt0aGlzLnk9bnVsbDt9ZS5wcm90b3R5cGUuXyRIVD1mdW5jdGlvbihhSCxhSSl7dGhpcy54PWFIO3RoaXMueT1hSTt9O2UucHJvdG90eXBlLl8kSFQ9ZnVuY3Rpb24oYUgpe3RoaXMueD1hSC54O3RoaXMueT1hSC55O307ZnVuY3Rpb24gYWUoKXtpZihqKXtyZXR1cm47fXRoaXMuXyRnUD1udWxsO3RoaXMuXyRkcj1udWxsO3RoaXMuXyRHUz1udWxsO3RoaXMuXyRxYj1udWxsO3RoaXMuXyRMYj1udWxsO3RoaXMuXyRtUz1udWxsO3RoaXMuY2xpcElEPW51bGw7dGhpcy5jbGlwSURMaXN0PW5ldyBBcnJheSgpO31hZS5fJHVyPS0yO2FlLl8kRVM9NTAwO2FlLl8kd2I9MjthZS5fJDhTPTM7YWUuXyQ1Mj1hZS5fJEVTO2FlLl8kUjI9YWUuXyRFUzthZS5fJG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGFlLl8kNTI7fTthZS5fJFByPWZ1bmN0aW9uKCl7cmV0dXJuIGFlLl8kUjI7fTthZS5wcm90b3R5cGUuY29udmVydENsaXBJREZvclYyXzExPWZ1bmN0aW9uKGFJKXt2YXIgYUg9W107aWYoYUk9PW51bGwpe3JldHVybiBudWxsO31pZihhSS5sZW5ndGg9PTApe3JldHVybiBudWxsO31pZighLywvLnRlc3QoYUkpKXthSC5wdXNoKGFJLmlkKTtyZXR1cm4gYUg7fWFIPWFJLmlkLnNwbGl0KFwiLFwiKTtyZXR1cm4gYUg7fTthZS5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSCl7dGhpcy5fJGdQPWFILl8kblAoKTt0aGlzLl8kZHI9YUguXyRuUCgpO3RoaXMuXyRHUz1hSC5fJG5QKCk7dGhpcy5fJHFiPWFILl8kNkwoKTt0aGlzLl8kTGI9YUguXyRjUygpO3RoaXMuXyRtUz1hSC5fJFRiKCk7aWYoYUguZ2V0Rm9ybWF0VmVyc2lvbigpPj1heS5fJFQ3KXt0aGlzLmNsaXBJRD1hSC5fJG5QKCk7dGhpcy5jbGlwSURMaXN0PXRoaXMuY29udmVydENsaXBJREZvclYyXzExKHRoaXMuY2xpcElEKTt9ZWxzZXt0aGlzLmNsaXBJRExpc3Q9W107fXRoaXMuXyRNUyh0aGlzLl8kTGIpO307YWUucHJvdG90eXBlLmdldENsaXBJRExpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGlwSURMaXN0O307YWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYUgpe307YWUucHJvdG90eXBlLl8kTnI9ZnVuY3Rpb24oYUgsYUkpe2FJLl8kSVNbMF09ZmFsc2U7YUkuXyRVcz1hRy5fJFoyKGFILHRoaXMuXyRHUyxhSS5fJElTLHRoaXMuXyRMYik7aWYoUS5fJFpzKXt9ZWxzZXtpZihhSS5fJElTWzBdKXtyZXR1cm47fX1hSS5fJDdzPWFHLl8kYnIoYUgsdGhpcy5fJEdTLGFJLl8kSVMsdGhpcy5fJG1TKTt9O2FlLnByb3RvdHlwZS5fJDJiPWZ1bmN0aW9uKGFILGFJKXt9O2FlLnByb3RvdHlwZS5nZXREcmF3RGF0YUlEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRnUDt9O2FlLnByb3RvdHlwZS5fJGoyPWZ1bmN0aW9uKGFIKXt0aGlzLl8kZ1A9YUg7fTthZS5wcm90b3R5cGUuZ2V0T3BhY2l0eT1mdW5jdGlvbihhSCxhSSl7cmV0dXJuIGFJLl8kN3M7fTthZS5wcm90b3R5cGUuXyR6Uz1mdW5jdGlvbihhSCxhSSl7cmV0dXJuIGFJLl8kVXM7fTthZS5wcm90b3R5cGUuXyRNUz1mdW5jdGlvbihhSil7Zm9yKHZhciBhST1hSi5sZW5ndGgtMTthST49MDstLWFJKXt2YXIgYUg9YUpbYUldO2lmKGFIPGFlLl8kNTIpe2FlLl8kNTI9YUg7fWVsc2V7aWYoYUg+YWUuXyRSMil7YWUuXyRSMj1hSDt9fX19O2FlLnByb3RvdHlwZS5nZXRUYXJnZXRCYXNlRGF0YUlEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRkcjt9O2FlLnByb3RvdHlwZS5fJGdzPWZ1bmN0aW9uKGFIKXt0aGlzLl8kZHI9YUg7fTthZS5wcm90b3R5cGUuXyQzMj1mdW5jdGlvbigpe3JldHVybih0aGlzLl8kZHIhPW51bGwmJih0aGlzLl8kZHIhPW4uXyQybygpKSk7fTthZS5wcm90b3R5cGUucHJlRHJhdz1mdW5jdGlvbihhSixhSCxhSSl7fTthZS5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbihhSixhSCxhSSl7fTthZS5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe307YWUucHJvdG90eXBlLl8kQjI9ZnVuY3Rpb24oYUksYUgsYUope307ZnVuY3Rpb24gYXgoKXtpZihqKXtyZXR1cm47fXRoaXMuXyRFYj1heC5fJHBzO3RoaXMuXyRsVD0xO3RoaXMuXyRDMD0xO3RoaXMuXyR0VD0xO3RoaXMuXyRXTD0xO3RoaXMuY3VsbGluZz1mYWxzZTt0aGlzLm1hdHJpeDR4ND1uZXcgRmxvYXQzMkFycmF5KDE2KTt0aGlzLnByZW11bHRpcGxpZWRBbHBoYT1mYWxzZTt0aGlzLmFuaXNvdHJvcHk9MDt0aGlzLmNsaXBwaW5nUHJvY2Vzcz1heC5DTElQUElOR19QUk9DRVNTX05PTkU7dGhpcy5jbGlwQnVmUHJlX2NsaXBDb250ZXh0TWFzaz1udWxsO3RoaXMuY2xpcEJ1ZlByZV9jbGlwQ29udGV4dERyYXc9bnVsbDt0aGlzLkNIQU5ORUxfQ09MT1JTPW5ldyBBcnJheSgpO31heC5fJHBzPTMyO2F4LkNMSVBQSU5HX1BST0NFU1NfTk9ORT0wO2F4LkNMSVBQSU5HX1BST0NFU1NfT1ZFUldSSVRFX0FMUEhBPTE7YXguQ0xJUFBJTkdfUFJPQ0VTU19NVUxUSVBMWV9BTFBIQT0yO2F4LkNMSVBQSU5HX1BST0NFU1NfRFJBVz0zO2F4LkNMSVBQSU5HX1BST0NFU1NfQ0xFQVJfQUxQSEE9NDtheC5wcm90b3R5cGUuc2V0Q2hhbm5lbEZsYWdBc0NvbG9yPWZ1bmN0aW9uKGFILGFJKXt0aGlzLkNIQU5ORUxfQ09MT1JTW2FIXT1hSTt9O2F4LnByb3RvdHlwZS5nZXRDaGFubmVsRmxhZ0FzQ29sb3I9ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLkNIQU5ORUxfQ09MT1JTW2FIXTt9O2F4LnByb3RvdHlwZS5fJFpUPWZ1bmN0aW9uKCl7fTtheC5wcm90b3R5cGUuXyRVbz1mdW5jdGlvbihhTSxhSyxhSixhTCxhTixhSSxhSCl7fTtheC5wcm90b3R5cGUuXyRScz1mdW5jdGlvbigpe3JldHVybiAtMTt9O2F4LnByb3RvdHlwZS5fJERzPWZ1bmN0aW9uKGFIKXt9O2F4LnByb3RvdHlwZS5zZXRCYXNlQ29sb3I9ZnVuY3Rpb24oYUssYUosYUksYUgpe2lmKGFLPDApe2FLPTA7fWVsc2V7aWYoYUs+MSl7YUs9MTt9fWlmKGFKPDApe2FKPTA7fWVsc2V7aWYoYUo+MSl7YUo9MTt9fWlmKGFJPDApe2FJPTA7fWVsc2V7aWYoYUk+MSl7YUk9MTt9fWlmKGFIPDApe2FIPTA7fWVsc2V7aWYoYUg+MSl7YUg9MTt9fXRoaXMuXyRsVD1hSzt0aGlzLl8kQzA9YUo7dGhpcy5fJHRUPWFJO3RoaXMuXyRXTD1hSDt9O2F4LnByb3RvdHlwZS5fJFdQPWZ1bmN0aW9uKGFIKXt0aGlzLmN1bGxpbmc9YUg7fTtheC5wcm90b3R5cGUuc2V0TWF0cml4PWZ1bmN0aW9uKGFIKXtmb3IodmFyIGFJPTA7YUk8MTY7YUkrKyl7dGhpcy5tYXRyaXg0eDRbYUldPWFIW2FJXTt9fTtheC5wcm90b3R5cGUuXyRJVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdHJpeDR4NDt9O2F4LnByb3RvdHlwZS5zZXRQcmVtdWx0aXBsaWVkQWxwaGE9ZnVuY3Rpb24oYUgpe3RoaXMucHJlbXVsdGlwbGllZEFscGhhPWFIO307YXgucHJvdG90eXBlLmlzUHJlbXVsdGlwbGllZEFscGhhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJlbXVsdGlwbGllZEFscGhhO307YXgucHJvdG90eXBlLnNldEFuaXNvdHJvcHk9ZnVuY3Rpb24oYUgpe3RoaXMuYW5pc290cm9weT1hSDt9O2F4LnByb3RvdHlwZS5nZXRBbmlzb3Ryb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pc290cm9weTt9O2F4LnByb3RvdHlwZS5nZXRDbGlwcGluZ1Byb2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGlwcGluZ1Byb2Nlc3M7fTtheC5wcm90b3R5cGUuc2V0Q2xpcHBpbmdQcm9jZXNzPWZ1bmN0aW9uKGFIKXt0aGlzLmNsaXBwaW5nUHJvY2Vzcz1hSDt9O2F4LnByb3RvdHlwZS5zZXRDbGlwQnVmUHJlX2NsaXBDb250ZXh0Rm9yTWFzaz1mdW5jdGlvbihhSCl7dGhpcy5jbGlwQnVmUHJlX2NsaXBDb250ZXh0TWFzaz1hSDt9O2F4LnByb3RvdHlwZS5nZXRDbGlwQnVmUHJlX2NsaXBDb250ZXh0TWFzaz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsaXBCdWZQcmVfY2xpcENvbnRleHRNYXNrO307YXgucHJvdG90eXBlLnNldENsaXBCdWZQcmVfY2xpcENvbnRleHRGb3JEcmF3PWZ1bmN0aW9uKGFIKXt0aGlzLmNsaXBCdWZQcmVfY2xpcENvbnRleHREcmF3PWFIO307YXgucHJvdG90eXBlLmdldENsaXBCdWZQcmVfY2xpcENvbnRleHREcmF3PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xpcEJ1ZlByZV9jbGlwQ29udGV4dERyYXc7fTtmdW5jdGlvbiBvKCl7aWYoail7cmV0dXJuO310aGlzLmE9MTt0aGlzLnI9MTt0aGlzLmc9MTt0aGlzLmI9MTt0aGlzLnNjYWxlPTE7dGhpcy5fJGhvPTE7dGhpcy5ibGVuZE1vZGU9US5MMkRfQ09MT1JfQkxFTkRfTU9ERV9NVUxUO31mdW5jdGlvbiBjKCl7aWYoail7cmV0dXJuO310aGlzLl8ka1A9bnVsbDt0aGlzLl8kZHI9bnVsbDt0aGlzLl8kQWk9dHJ1ZTt0aGlzLl8kbVM9bnVsbDt9Yy5fJHVyPS0yO2MuXyRjMj0xO2MuXyRfYj0yO2MucHJvdG90eXBlLl8kRjA9ZnVuY3Rpb24oYUgpe3RoaXMuXyRrUD1hSC5fJG5QKCk7dGhpcy5fJGRyPWFILl8kblAoKTt9O2MucHJvdG90eXBlLnJlYWRWMl9vcGFjaXR5PWZ1bmN0aW9uKGFIKXtpZihhSC5nZXRGb3JtYXRWZXJzaW9uKCk+PWF5LkxJVkUyRF9GT1JNQVRfVkVSU0lPTl9WMl8xMF9TREsyKXt0aGlzLl8kbVM9YUguXyRUYigpO319O2MucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYUgpe307Yy5wcm90b3R5cGUuXyROcj1mdW5jdGlvbihhSSxhSCl7fTtjLnByb3RvdHlwZS5pbnRlcnBvbGF0ZU9wYWNpdHk9ZnVuY3Rpb24oYUosYUssYUksYUgpe2lmKHRoaXMuXyRtUz09bnVsbCl7YUkuc2V0SW50ZXJwb2xhdGVkT3BhY2l0eSgxKTt9ZWxzZXthSS5zZXRJbnRlcnBvbGF0ZWRPcGFjaXR5KGFHLl8kYnIoYUosYUssYUgsdGhpcy5fJG1TKSk7fX07Yy5wcm90b3R5cGUuXyQyYj1mdW5jdGlvbihhSSxhSCl7fTtjLnByb3RvdHlwZS5fJG5iPWZ1bmN0aW9uKGFMLGFLLGFNLGFILGFJLGFKLGFOKXt9O2MucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlLl8kZ3M9ZnVuY3Rpb24oYUgpe3RoaXMuXyRkcj1hSDt9O2MucHJvdG90eXBlLl8kYTI9ZnVuY3Rpb24oYUgpe3RoaXMuXyRrUD1hSDt9O2MucHJvdG90eXBlLmdldFRhcmdldEJhc2VEYXRhSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGRyO307Yy5wcm90b3R5cGUuZ2V0QmFzZURhdGFJRD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8ka1A7fTtjLnByb3RvdHlwZS5fJDMyPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuXyRkciE9bnVsbCYmKHRoaXMuXyRkciE9bi5fJDJvKCkpKTt9O2Z1bmN0aW9uIFAoKXt9UC5fJFcyPTA7UC5fJENTPVAuXyRXMjtQLl8kTW89ZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZTt9O1AuXyRYUD1mdW5jdGlvbihhSSl7dHJ5e3ZhciBhSj1nZXRUaW1lTVNlYygpO3doaWxlKGdldFRpbWVNU2VjKCktYUo8YUkpe319Y2F0Y2goYUgpe2FILl8kUmIoKTt9fTtQLmdldFVzZXJUaW1lTVNlYz1mdW5jdGlvbigpe3JldHVybihQLl8kQ1M9PVAuXyRXMik/UC5nZXRTeXN0ZW1UaW1lTVNlYygpOlAuXyRDUzt9O1Auc2V0VXNlclRpbWVNU2VjPWZ1bmN0aW9uKGFIKXtQLl8kQ1M9YUg7fTtQLnVwZGF0ZVVzZXJUaW1lTVNlYz1mdW5jdGlvbigpe3JldHVybihQLl8kQ1M9UC5nZXRTeXN0ZW1UaW1lTVNlYygpKTt9O1AuZ2V0VGltZU1TZWM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7fTtQLmdldFN5c3RlbVRpbWVNU2VjPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO307UC5fJFE9ZnVuY3Rpb24oYUgpe307UC5fJGpUPWZ1bmN0aW9uKGFNLGFKLGFJLGFMLGFIKXtmb3IodmFyIGFLPTA7YUs8YUg7YUsrKyl7YUlbYUwrYUtdPWFNW2FKK2FLXTt9fTtmdW5jdGlvbiBhQSgpe2lmKGope3JldHVybjt9dGhpcy5fJFZQPTA7dGhpcy5fJHdMPW51bGw7dGhpcy5fJEdQPW51bGw7dGhpcy5fJDhvPWFBLl8kZHM7dGhpcy5fJDJyPS0xO3RoaXMuXyRPMj0wO3RoaXMuXyRyaT0wO31hQS5fJGRzPS0yO2FBLnByb3RvdHlwZS5fJEYwPWZ1bmN0aW9uKGFIKXt0aGlzLl8kd0w9YUguXyRuUCgpO3RoaXMuXyRWUD1hSC5fJDZMKCk7dGhpcy5fJEdQPWFILl8kblAoKTt9O2FBLnByb3RvdHlwZS5nZXRQYXJhbUluZGV4PWZ1bmN0aW9uKGFIKXtpZih0aGlzLl8kMnIhPWFIKXt0aGlzLl8kOG89YUEuXyRkczt9cmV0dXJuIHRoaXMuXyQ4bzt9O2FBLnByb3RvdHlwZS5fJFBiPWZ1bmN0aW9uKGFJLGFIKXt0aGlzLl8kOG89YUk7dGhpcy5fJDJyPWFIO307YUEucHJvdG90eXBlLmdldFBhcmFtSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJHdMO307YUEucHJvdG90eXBlLl8keVA9ZnVuY3Rpb24oYUgpe3RoaXMuXyR3TD1hSDt9O2FBLnByb3RvdHlwZS5fJE4yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRWUDt9O2FBLnByb3RvdHlwZS5fJGQyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRHUDt9O2FBLnByb3RvdHlwZS5fJHQyPWZ1bmN0aW9uKGFJLGFIKXt0aGlzLl8kVlA9YUk7dGhpcy5fJEdQPWFIO307YUEucHJvdG90eXBlLl8kTHI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJE8yO307YUEucHJvdG90eXBlLl8kd3I9ZnVuY3Rpb24oYUgpe3RoaXMuXyRPMj1hSDt9O2FBLnByb3RvdHlwZS5fJFNMPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRyaTt9O2FBLnByb3RvdHlwZS5fJEFMPWZ1bmN0aW9uKGFIKXt0aGlzLl8kcmk9YUg7fTtmdW5jdGlvbiBHKCl7fUcuc3RhcnRzV2l0aD1mdW5jdGlvbihhSixhTCxhSyl7dmFyIGFIPWFMK2FLLmxlbmd0aDtpZihhSD49YUoubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fWZvcih2YXIgYUk9YUw7YUk8YUg7YUkrKyl7aWYoRy5nZXRDaGFyKGFKLGFJKSE9YUsuY2hhckF0KGFJLWFMKSl7cmV0dXJuIGZhbHNlO319cmV0dXJuIHRydWU7fTtHLmdldENoYXI9ZnVuY3Rpb24oYUksYUgpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGFJLmdldFVpbnQ4KGFIKSk7fTtHLmNyZWF0ZVN0cmluZz1mdW5jdGlvbihhTSxhTCxhSil7dmFyIGFIPW5ldyBBcnJheUJ1ZmZlcihhSioyKTt2YXIgYUs9bmV3IFVpbnQxNkFycmF5KGFIKTtmb3IodmFyIGFJPTA7YUk8YUo7YUkrKyl7YUtbYUldPWFNLmdldFVpbnQ4KGFMK2FJKTt9cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhSyk7fTtHLl8kTFM9ZnVuY3Rpb24oYVAsYU0sYVIsYUspe2lmKGFQIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe2FQPW5ldyBEYXRhVmlldyhhUCk7fXZhciBhTD1hUjt2YXIgYUo9ZmFsc2U7dmFyIGFRPWZhbHNlO3ZhciBhUz0wO3ZhciBhTz1HLmdldENoYXIoYVAsYUwpO2lmKGFPPT1cIi1cIil7YUo9dHJ1ZTthTCsrO312YXIgYU49ZmFsc2U7Zm9yKDthTDxhTTthTCsrKXthTz1HLmdldENoYXIoYVAsYUwpO3N3aXRjaChhTyl7Y2FzZVwiMFwiOmFTPWFTKjEwO2JyZWFrO2Nhc2VcIjFcIjphUz1hUyoxMCsxO2JyZWFrO2Nhc2VcIjJcIjphUz1hUyoxMCsyO2JyZWFrO2Nhc2VcIjNcIjphUz1hUyoxMCszO2JyZWFrO2Nhc2VcIjRcIjphUz1hUyoxMCs0O2JyZWFrO2Nhc2VcIjVcIjphUz1hUyoxMCs1O2JyZWFrO2Nhc2VcIjZcIjphUz1hUyoxMCs2O2JyZWFrO2Nhc2VcIjdcIjphUz1hUyoxMCs3O2JyZWFrO2Nhc2VcIjhcIjphUz1hUyoxMCs4O2JyZWFrO2Nhc2VcIjlcIjphUz1hUyoxMCs5O2JyZWFrO2Nhc2VcIi5cIjphUT10cnVlO2FMKys7YU49dHJ1ZTticmVhaztkZWZhdWx0OmFOPXRydWU7YnJlYWs7fWlmKGFOKXticmVhazt9fWlmKGFRKXt2YXIgYUk9MC4xO3ZhciBhSD1mYWxzZTtmb3IoO2FMPGFNO2FMKyspe2FPPUcuZ2V0Q2hhcihhUCxhTCk7c3dpdGNoKGFPKXtjYXNlXCIwXCI6YnJlYWs7Y2FzZVwiMVwiOmFTKz1hSSoxO2JyZWFrO2Nhc2VcIjJcIjphUys9YUkqMjticmVhaztjYXNlXCIzXCI6YVMrPWFJKjM7YnJlYWs7Y2FzZVwiNFwiOmFTKz1hSSo0O2JyZWFrO2Nhc2VcIjVcIjphUys9YUkqNTticmVhaztjYXNlXCI2XCI6YVMrPWFJKjY7YnJlYWs7Y2FzZVwiN1wiOmFTKz1hSSo3O2JyZWFrO2Nhc2VcIjhcIjphUys9YUkqODticmVhaztjYXNlXCI5XCI6YVMrPWFJKjk7YnJlYWs7ZGVmYXVsdDphSD10cnVlO2JyZWFrO31hSSo9MC4xO2lmKGFIKXticmVhazt9fX1pZihhSil7YVM9LWFTO31hS1swXT1hTDtyZXR1cm4gYVM7fTtmdW5jdGlvbiBnKCl7aWYoail7cmV0dXJuO310aGlzLl8kT2I9bnVsbDt9Zy5wcm90b3R5cGUuXyR6UD1mdW5jdGlvbigpe3RoaXMuXyRPYj1uZXcgQXJyYXkoKTt9O2cucHJvdG90eXBlLl8kRjA9ZnVuY3Rpb24oYUgpe3RoaXMuXyRPYj1hSC5fJG5QKCk7fTtnLnByb3RvdHlwZS5fJFVyPWZ1bmN0aW9uKGFLKXtpZihhSy5fJFdTKCkpe3JldHVybiB0cnVlO312YXIgYUg9YUsuXyR2MigpO2Zvcih2YXIgYUo9dGhpcy5fJE9iLmxlbmd0aC0xO2FKPj0wOy0tYUope3ZhciBhST10aGlzLl8kT2JbYUpdLmdldFBhcmFtSW5kZXgoYUgpO2lmKGFJPT1hQS5fJGRzKXthST1hSy5nZXRQYXJhbUluZGV4KHRoaXMuXyRPYlthSl0uZ2V0UGFyYW1JRCgpKTt9aWYoYUsuXyRYYihhSSkpe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO307Zy5wcm90b3R5cGUuXyRRMj1mdW5jdGlvbihhTCxhVil7dmFyIGFYPXRoaXMuXyRPYi5sZW5ndGg7dmFyIGFKPWFMLl8kdjIoKTt2YXIgYU49MDt2YXIgYUk7dmFyIGFRO2Zvcih2YXIgYUs9MDthSzxhWDthSysrKXt2YXIgYUg9dGhpcy5fJE9iW2FLXTthST1hSC5nZXRQYXJhbUluZGV4KGFKKTtpZihhST09YUEuXyRkcyl7YUk9YUwuZ2V0UGFyYW1JbmRleChhSC5nZXRQYXJhbUlEKCkpO2FILl8kUGIoYUksYUopO31pZihhSTwwKXt0aHJvdyBuZXcgRXhjZXB0aW9uKFwiZXJyIDIzMjQyIDogXCIrYUguZ2V0UGFyYW1JRCgpKTt9dmFyIGFVPWFJPDA/MDphTC5nZXRQYXJhbUZsb2F0KGFJKTthUT1hSC5fJE4yKCk7dmFyIGFNPWFILl8kZDIoKTt2YXIgYVA9LTE7dmFyIGFUPTA7dmFyIGFTO3ZhciBhUjtpZihhUTwxKXt9ZWxzZXtpZihhUT09MSl7YVM9YU1bMF07aWYoYVMtYXcuXyRKPGFVJiZhVTxhUythdy5fJEope2FQPTA7YVQ9MDt9ZWxzZXthUD0wO2FWWzBdPXRydWU7fX1lbHNle2FTPWFNWzBdO2lmKGFVPGFTLWF3Ll8kSil7YVA9MDthVlswXT10cnVlO31lbHNle2lmKGFVPGFTK2F3Ll8kSil7YVA9MDt9ZWxzZXt2YXIgYVc9ZmFsc2U7Zm9yKHZhciBhTz0xO2FPPGFROysrYU8pe2FSPWFNW2FPXTtpZihhVTxhUithdy5fJEope2lmKGFSLWF3Ll8kSjxhVSl7YVA9YU87fWVsc2V7YVA9YU8tMTthVD0oYVUtYVMpLyhhUi1hUyk7YU4rKzt9YVc9dHJ1ZTticmVhazt9YVM9YVI7fWlmKCFhVyl7YVA9YVEtMTthVD0wO2FWWzBdPXRydWU7fX19fX1hSC5fJHdyKGFQKTthSC5fJEFMKGFUKTt9cmV0dXJuIGFOO307Zy5wcm90b3R5cGUuXyR6cj1mdW5jdGlvbihhTixhVCxhUCl7dmFyIGFSPTE8PGFQO2lmKGFSKzE+YXcuXyRRYil7Y29uc29sZS5sb2coXCJlcnIgMjMyNDVcXG5cIik7fXZhciBhUz10aGlzLl8kT2IubGVuZ3RoO3ZhciBhSz0xO3ZhciBhSD0xO3ZhciBhSj0wO2Zvcih2YXIgYVE9MDthUTxhUjsrK2FRKXthTlthUV09MDt9Zm9yKHZhciBhTD0wO2FMPGFTOysrYUwpe3ZhciBhST10aGlzLl8kT2JbYUxdO2lmKGFJLl8kU0woKT09MCl7dmFyIGFPPWFJLl8kTHIoKSphSztpZihhTzwwJiZRLl8kM1Qpe3Rocm93IG5ldyBFeGNlcHRpb24oXCJlcnIgMjMyNDZcIik7fWZvcih2YXIgYVE9MDthUTxhUjsrK2FRKXthTlthUV0rPWFPO319ZWxzZXt2YXIgYU89YUsqYUkuXyRMcigpO3ZhciBhTT1hSyooYUkuXyRMcigpKzEpO2Zvcih2YXIgYVE9MDthUTxhUjsrK2FRKXthTlthUV0rPSgoYVEvYUh8MCklMj09MCk/YU86YU07fWFUW2FKKytdPWFJLl8kU0woKTthSCo9Mjt9YUsqPWFJLl8kTjIoKTt9YU5bYVJdPTY1NTM1O2FUW2FKXT0tMTt9O2cucHJvdG90eXBlLl8kaDI9ZnVuY3Rpb24oYUosYUgsYUspe3ZhciBhTT1uZXcgRmxvYXQzMkFycmF5KGFIKTtmb3IodmFyIGFMPTA7YUw8YUg7KythTCl7YU1bYUxdPWFLW2FMXTt9dmFyIGFJPW5ldyBhQSgpO2FJLl8keVAoYUopO2FJLl8kdDIoYUgsYU0pO3RoaXMuXyRPYi5wdXNoKGFJKTt9O2cucHJvdG90eXBlLl8kSjI9ZnVuY3Rpb24oYU8pe3ZhciBhTj1hTzt2YXIgYU09dGhpcy5fJE9iLmxlbmd0aDtmb3IodmFyIGFLPTA7YUs8YU07KythSyl7dmFyIGFJPXRoaXMuXyRPYlthS107dmFyIGFIPWFJLl8kTjIoKTt2YXIgYUo9YU4lYUkuXyROMigpO3ZhciBhTD1hSS5fJGQyKClbYUpdO2NvbnNvbGUubG9nKFwiJXNbJWRdPSU3LjJmIC8gXCIsYUkuZ2V0UGFyYW1JRCgpLGFKLGFMKTthTi89YUg7fWNvbnNvbGUubG9nKFwiXFxuXCIpO307Zy5wcm90b3R5cGUuZ2V0UGFyYW1Db3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kT2IubGVuZ3RoO307Zy5wcm90b3R5cGUuXyR6cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kT2I7fTtmdW5jdGlvbiBhYygpe3RoaXMubT1uZXcgRmxvYXQzMkFycmF5KDE2KTt0aGlzLmlkZW50aXR5KCk7fWFjLnByb3RvdHlwZS5pZGVudGl0eT1mdW5jdGlvbigpe2Zvcih2YXIgYUg9MDthSDwxNjthSCsrKXt0aGlzLm1bYUhdPSgoYUglNSk9PTApPzE6MDt9fTthYy5wcm90b3R5cGUuZ2V0QXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tO307YWMucHJvdG90eXBlLmdldENvcHlNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZsb2F0MzJBcnJheSh0aGlzLm0pO307YWMucHJvdG90eXBlLnNldE1hdHJpeD1mdW5jdGlvbihhSSl7aWYoYUk9PW51bGx8fGFJLmxlbmd0aCE9MTYpe3JldHVybjt9Zm9yKHZhciBhSD0wO2FIPDE2O2FIKyspe3RoaXMubVthSF09YUlbYUhdO319O2FjLnByb3RvdHlwZS5tdWx0PWZ1bmN0aW9uKGFILGFKLGFJKXtpZihhSj09bnVsbCl7cmV0dXJuIG51bGw7fWlmKHRoaXM9PWFKKXt0aGlzLm11bHRfc2FmZSh0aGlzLm0sYUgubSxhSi5tLGFJKTt9ZWxzZXt0aGlzLm11bHRfZmFzdCh0aGlzLm0sYUgubSxhSi5tLGFJKTt9cmV0dXJuIGFKO307YWMucHJvdG90eXBlLm11bHRfc2FmZT1mdW5jdGlvbihhSSxhSCxhTSxhSil7aWYoYUk9PWFNKXt2YXIgYUw9bmV3IEFycmF5KDE2KTt0aGlzLm11bHRfZmFzdChhSSxhSCxhTCxhSik7Zm9yKHZhciBhSz0xNTthSz49MDstLWFLKXthTVthS109YUxbYUtdO319ZWxzZXt0aGlzLm11bHRfZmFzdChhSSxhSCxhTSxhSik7fX07YWMucHJvdG90eXBlLm11bHRfZmFzdD1mdW5jdGlvbihhSSxhSCxhSyxhSil7aWYoYUope2FLWzBdPWFJWzBdKmFIWzBdK2FJWzRdKmFIWzFdK2FJWzhdKmFIWzJdO2FLWzRdPWFJWzBdKmFIWzRdK2FJWzRdKmFIWzVdK2FJWzhdKmFIWzZdO2FLWzhdPWFJWzBdKmFIWzhdK2FJWzRdKmFIWzldK2FJWzhdKmFIWzEwXTthS1sxMl09YUlbMF0qYUhbMTJdK2FJWzRdKmFIWzEzXSthSVs4XSphSFsxNF0rYUlbMTJdO2FLWzFdPWFJWzFdKmFIWzBdK2FJWzVdKmFIWzFdK2FJWzldKmFIWzJdO2FLWzVdPWFJWzFdKmFIWzRdK2FJWzVdKmFIWzVdK2FJWzldKmFIWzZdO2FLWzldPWFJWzFdKmFIWzhdK2FJWzVdKmFIWzldK2FJWzldKmFIWzEwXTthS1sxM109YUlbMV0qYUhbMTJdK2FJWzVdKmFIWzEzXSthSVs5XSphSFsxNF0rYUlbMTNdO2FLWzJdPWFJWzJdKmFIWzBdK2FJWzZdKmFIWzFdK2FJWzEwXSphSFsyXTthS1s2XT1hSVsyXSphSFs0XSthSVs2XSphSFs1XSthSVsxMF0qYUhbNl07YUtbMTBdPWFJWzJdKmFIWzhdK2FJWzZdKmFIWzldK2FJWzEwXSphSFsxMF07YUtbMTRdPWFJWzJdKmFIWzEyXSthSVs2XSphSFsxM10rYUlbMTBdKmFIWzE0XSthSVsxNF07YUtbM109YUtbN109YUtbMTFdPTA7YUtbMTVdPTE7fWVsc2V7YUtbMF09YUlbMF0qYUhbMF0rYUlbNF0qYUhbMV0rYUlbOF0qYUhbMl0rYUlbMTJdKmFIWzNdO2FLWzRdPWFJWzBdKmFIWzRdK2FJWzRdKmFIWzVdK2FJWzhdKmFIWzZdK2FJWzEyXSphSFs3XTthS1s4XT1hSVswXSphSFs4XSthSVs0XSphSFs5XSthSVs4XSphSFsxMF0rYUlbMTJdKmFIWzExXTthS1sxMl09YUlbMF0qYUhbMTJdK2FJWzRdKmFIWzEzXSthSVs4XSphSFsxNF0rYUlbMTJdKmFIWzE1XTthS1sxXT1hSVsxXSphSFswXSthSVs1XSphSFsxXSthSVs5XSphSFsyXSthSVsxM10qYUhbM107YUtbNV09YUlbMV0qYUhbNF0rYUlbNV0qYUhbNV0rYUlbOV0qYUhbNl0rYUlbMTNdKmFIWzddO2FLWzldPWFJWzFdKmFIWzhdK2FJWzVdKmFIWzldK2FJWzldKmFIWzEwXSthSVsxM10qYUhbMTFdO2FLWzEzXT1hSVsxXSphSFsxMl0rYUlbNV0qYUhbMTNdK2FJWzldKmFIWzE0XSthSVsxM10qYUhbMTVdO2FLWzJdPWFJWzJdKmFIWzBdK2FJWzZdKmFIWzFdK2FJWzEwXSphSFsyXSthSVsxNF0qYUhbM107YUtbNl09YUlbMl0qYUhbNF0rYUlbNl0qYUhbNV0rYUlbMTBdKmFIWzZdK2FJWzE0XSphSFs3XTthS1sxMF09YUlbMl0qYUhbOF0rYUlbNl0qYUhbOV0rYUlbMTBdKmFIWzEwXSthSVsxNF0qYUhbMTFdO2FLWzE0XT1hSVsyXSphSFsxMl0rYUlbNl0qYUhbMTNdK2FJWzEwXSphSFsxNF0rYUlbMTRdKmFIWzE1XTthS1szXT1hSVszXSphSFswXSthSVs3XSphSFsxXSthSVsxMV0qYUhbMl0rYUlbMTVdKmFIWzNdO2FLWzddPWFJWzNdKmFIWzRdK2FJWzddKmFIWzVdK2FJWzExXSphSFs2XSthSVsxNV0qYUhbN107YUtbMTFdPWFJWzNdKmFIWzhdK2FJWzddKmFIWzldK2FJWzExXSphSFsxMF0rYUlbMTVdKmFIWzExXTthS1sxNV09YUlbM10qYUhbMTJdK2FJWzddKmFIWzEzXSthSVsxMV0qYUhbMTRdK2FJWzE1XSphSFsxNV07fX07YWMucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihhSCxhSixhSSl7dGhpcy5tWzEyXT10aGlzLm1bMF0qYUgrdGhpcy5tWzRdKmFKK3RoaXMubVs4XSphSSt0aGlzLm1bMTJdO3RoaXMubVsxM109dGhpcy5tWzFdKmFIK3RoaXMubVs1XSphSit0aGlzLm1bOV0qYUkrdGhpcy5tWzEzXTt0aGlzLm1bMTRdPXRoaXMubVsyXSphSCt0aGlzLm1bNl0qYUordGhpcy5tWzEwXSphSSt0aGlzLm1bMTRdO3RoaXMubVsxNV09dGhpcy5tWzNdKmFIK3RoaXMubVs3XSphSit0aGlzLm1bMTFdKmFJK3RoaXMubVsxNV07fTthYy5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24oYUosYUksYUgpe3RoaXMubVswXSo9YUo7dGhpcy5tWzRdKj1hSTt0aGlzLm1bOF0qPWFIO3RoaXMubVsxXSo9YUo7dGhpcy5tWzVdKj1hSTt0aGlzLm1bOV0qPWFIO3RoaXMubVsyXSo9YUo7dGhpcy5tWzZdKj1hSTt0aGlzLm1bMTBdKj1hSDt0aGlzLm1bM10qPWFKO3RoaXMubVs3XSo9YUk7dGhpcy5tWzExXSo9YUg7fTthYy5wcm90b3R5cGUucm90YXRlWD1mdW5jdGlvbihhSCl7dmFyIGFLPWFDLmZjb3MoYUgpO3ZhciBhSj1hQy5fJDkoYUgpO3ZhciBhST10aGlzLm1bNF07dGhpcy5tWzRdPWFJKmFLK3RoaXMubVs4XSphSjt0aGlzLm1bOF09YUkqLWFKK3RoaXMubVs4XSphSzthST10aGlzLm1bNV07dGhpcy5tWzVdPWFJKmFLK3RoaXMubVs5XSphSjt0aGlzLm1bOV09YUkqLWFKK3RoaXMubVs5XSphSzthST10aGlzLm1bNl07dGhpcy5tWzZdPWFJKmFLK3RoaXMubVsxMF0qYUo7dGhpcy5tWzEwXT1hSSotYUordGhpcy5tWzEwXSphSzthST10aGlzLm1bN107dGhpcy5tWzddPWFJKmFLK3RoaXMubVsxMV0qYUo7dGhpcy5tWzExXT1hSSotYUordGhpcy5tWzExXSphSzt9O2FjLnByb3RvdHlwZS5yb3RhdGVZPWZ1bmN0aW9uKGFIKXt2YXIgYUs9YUMuZmNvcyhhSCk7dmFyIGFKPWFDLl8kOShhSCk7dmFyIGFJPXRoaXMubVswXTt0aGlzLm1bMF09YUkqYUsrdGhpcy5tWzhdKi1hSjt0aGlzLm1bOF09YUkqYUordGhpcy5tWzhdKmFLO2FJPXRoaXMubVsxXTt0aGlzLm1bMV09YUkqYUsrdGhpcy5tWzldKi1hSjt0aGlzLm1bOV09YUkqYUordGhpcy5tWzldKmFLO2FJPW1bMl07dGhpcy5tWzJdPWFJKmFLK3RoaXMubVsxMF0qLWFKO3RoaXMubVsxMF09YUkqYUordGhpcy5tWzEwXSphSzthST1tWzNdO3RoaXMubVszXT1hSSphSyt0aGlzLm1bMTFdKi1hSjt0aGlzLm1bMTFdPWFJKmFKK3RoaXMubVsxMV0qYUs7fTthYy5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbihhSCl7dmFyIGFLPWFDLmZjb3MoYUgpO3ZhciBhSj1hQy5fJDkoYUgpO3ZhciBhST10aGlzLm1bMF07dGhpcy5tWzBdPWFJKmFLK3RoaXMubVs0XSphSjt0aGlzLm1bNF09YUkqLWFKK3RoaXMubVs0XSphSzthST10aGlzLm1bMV07dGhpcy5tWzFdPWFJKmFLK3RoaXMubVs1XSphSjt0aGlzLm1bNV09YUkqLWFKK3RoaXMubVs1XSphSzthST10aGlzLm1bMl07dGhpcy5tWzJdPWFJKmFLK3RoaXMubVs2XSphSjt0aGlzLm1bNl09YUkqLWFKK3RoaXMubVs2XSphSzthST10aGlzLm1bM107dGhpcy5tWzNdPWFJKmFLK3RoaXMubVs3XSphSjt0aGlzLm1bN109YUkqLWFKK3RoaXMubVs3XSphSzt9O2Z1bmN0aW9uIFooYUgpe2lmKGope3JldHVybjt9YWsucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxhSCk7fVoucHJvdG90eXBlPW5ldyBhaygpO1ouXyR0UD1uZXcgT2JqZWN0KCk7Wi5fJDI3PWZ1bmN0aW9uKCl7Wi5fJHRQLmNsZWFyKCk7fTtaLmdldElEPWZ1bmN0aW9uKGFIKXt2YXIgYUk9Wi5fJHRQW2FIXTtpZihhST09bnVsbCl7YUk9bmV3IFooYUgpO1ouXyR0UFthSF09YUk7fXJldHVybiBhSTt9O1oucHJvdG90eXBlLl8kM3M9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFooKTt9O2Z1bmN0aW9uIGFEKCl7aWYoail7cmV0dXJuO310aGlzLl8kNz0xO3RoaXMuXyRmPTA7dGhpcy5fJEg9MDt0aGlzLl8kZz0xO3RoaXMuXyRrPTA7dGhpcy5fJHc9MDt0aGlzLl8kaGk9U1RBVEVfSURFTlRJVFk7dGhpcy5fJFo9XyRwUzt9YUQuXyRrUz0tMTthRC5fJHBTPTA7YUQuXyRoYj0xO2FELlNUQVRFX0lERU5USVRZPTA7YUQuXyRnYj0xO2FELl8kZm89MjthRC5fJGdvPTQ7YUQucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihhSyxhSSxhSCl7dmFyIGFULGFTLGFSLGFNLGFMLGFKO3ZhciBhUT0wO3ZhciBhTj0wO3N3aXRjaCh0aGlzLl8kaGkpe2RlZmF1bHQ6cmV0dXJuO2Nhc2UgKGFELl8kZ298YUQuXyRmb3xhRC5fJGdiKTphVD10aGlzLl8kNzthUz10aGlzLl8kSDthUj10aGlzLl8kazthTT10aGlzLl8kZjthTD10aGlzLl8kZzthSj10aGlzLl8kdzt3aGlsZSgtLWFIPj0wKXt2YXIgYVA9YUtbYVErK107dmFyIGFPPWFLW2FRKytdO2FJW2FOKytdPShhVCphUCthUyphTythUik7YUlbYU4rK109KGFNKmFQK2FMKmFPK2FKKTt9cmV0dXJuO2Nhc2UgKGFELl8kZ298YUQuXyRmbyk6YVQ9dGhpcy5fJDc7YVM9dGhpcy5fJEg7YU09dGhpcy5fJGY7YUw9dGhpcy5fJGc7d2hpbGUoLS1hSD49MCl7dmFyIGFQPWFLW2FRKytdO3ZhciBhTz1hS1thUSsrXTthSVthTisrXT0oYVQqYVArYVMqYU8pO2FJW2FOKytdPShhTSphUCthTCphTyk7fXJldHVybjtjYXNlIChhRC5fJGdvfGFELl8kZ2IpOmFTPXRoaXMuXyRIO2FSPXRoaXMuXyRrO2FNPXRoaXMuXyRmO2FKPXRoaXMuXyR3O3doaWxlKC0tYUg+PTApe3ZhciBhUD1hS1thUSsrXTthSVthTisrXT0oYVMqYUtbYVErK10rYVIpO2FJW2FOKytdPShhTSphUCthSik7fXJldHVybjtjYXNlIChhRC5fJGdvKTphUz10aGlzLl8kSDthTT10aGlzLl8kZjt3aGlsZSgtLWFIPj0wKXt2YXIgYVA9YUtbYVErK107YUlbYU4rK109KGFTKmFLW2FRKytdKTthSVthTisrXT0oYU0qYVApO31yZXR1cm47Y2FzZSAoYUQuXyRmb3xhRC5fJGdiKTphVD10aGlzLl8kNzthUj10aGlzLl8kazthTD10aGlzLl8kZzthSj10aGlzLl8kdzt3aGlsZSgtLWFIPj0wKXthSVthTisrXT0oYVQqYUtbYVErK10rYVIpO2FJW2FOKytdPShhTCphS1thUSsrXSthSik7fXJldHVybjtjYXNlIChhRC5fJGZvKTphVD10aGlzLl8kNzthTD10aGlzLl8kZzt3aGlsZSgtLWFIPj0wKXthSVthTisrXT0oYVQqYUtbYVErK10pO2FJW2FOKytdPShhTCphS1thUSsrXSk7fXJldHVybjtjYXNlIChhRC5fJGdiKTphUj10aGlzLl8kazthSj10aGlzLl8kdzt3aGlsZSgtLWFIPj0wKXthSVthTisrXT0oYUtbYVErK10rYVIpO2FJW2FOKytdPShhS1thUSsrXSthSik7fXJldHVybjtjYXNlIChhRC5TVEFURV9JREVOVElUWSk6aWYoYUshPWFJfHxhUSE9YU4pe1AuXyRqVChhSyxhUSxhSSxhTixhSCoyKTt9cmV0dXJuO319O2FELnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtpZih0aGlzLl8kSD09MCYmdGhpcy5fJGY9PTApe2lmKHRoaXMuXyQ3PT0xJiZ0aGlzLl8kZz09MSl7aWYodGhpcy5fJGs9PTAmJnRoaXMuXyR3PT0wKXt0aGlzLl8kaGk9YUQuU1RBVEVfSURFTlRJVFk7dGhpcy5fJFo9YUQuXyRwUzt9ZWxzZXt0aGlzLl8kaGk9YUQuXyRnYjt0aGlzLl8kWj1hRC5fJGhiO319ZWxzZXtpZih0aGlzLl8kaz09MCYmdGhpcy5fJHc9PTApe3RoaXMuXyRoaT1hRC5fJGZvO3RoaXMuXyRaPWFELl8ka1M7fWVsc2V7dGhpcy5fJGhpPShhRC5fJGZvfGFELl8kZ2IpO3RoaXMuXyRaPWFELl8ka1M7fX19ZWxzZXtpZih0aGlzLl8kNz09MCYmdGhpcy5fJGc9PTApe2lmKHRoaXMuXyRrPT0wJiZ0aGlzLl8kdz09MCl7dGhpcy5fJGhpPWFELl8kZ287dGhpcy5fJFo9YUQuXyRrUzt9ZWxzZXt0aGlzLl8kaGk9KGFELl8kZ298YUQuXyRnYik7dGhpcy5fJFo9YUQuXyRrUzt9fWVsc2V7aWYodGhpcy5fJGs9PTAmJnRoaXMuXyR3PT0wKXt0aGlzLl8kaGk9KGFELl8kZ298YUQuXyRmbyk7dGhpcy5fJFo9YUQuXyRrUzt9ZWxzZXt0aGlzLl8kaGk9KGFELl8kZ298YUQuXyRmb3xhRC5fJGdiKTt0aGlzLl8kWj1hRC5fJGtTO319fX07YUQucHJvdG90eXBlLl8kUlQ9ZnVuY3Rpb24oYUspe3RoaXMuXyRJVChhSyk7dmFyIGFKPWFLWzBdO3ZhciBhSD1hS1syXTt2YXIgYU49YUtbMV07dmFyIGFNPWFLWzNdO3ZhciBhST1NYXRoLnNxcnQoYUoqYUorYU4qYU4pO3ZhciBhTD1hSiphTS1hSCphTjtpZihhST09MCl7aWYoUS5fJHNvKXtjb25zb2xlLmxvZyhcImFmZmluZS5fJFJUKCkgLyBydD09MFwiKTt9fWVsc2V7YUtbMF09YUk7YUtbMV09YUwvYUk7YUtbMl09KGFOKmFNK2FKKmFIKS9hTDthS1szXT1NYXRoLmF0YW4yKGFOLGFKKTt9fTthRC5wcm90b3R5cGUuXyRobz1mdW5jdGlvbihhTixhTSxhSSxhSCl7dmFyIGFMPW5ldyBGbG9hdDMyQXJyYXkoNik7dmFyIGFLPW5ldyBGbG9hdDMyQXJyYXkoNik7YU4uXyRSVChhTCk7YU0uXyRSVChhSyk7dmFyIGFKPW5ldyBGbG9hdDMyQXJyYXkoNik7YUpbMF09YUxbMF0rKGFLWzBdLWFMWzBdKSphSTthSlsxXT1hTFsxXSsoYUtbMV0tYUxbMV0pKmFJO2FKWzJdPWFMWzJdKyhhS1syXS1hTFsyXSkqYUk7YUpbM109YUxbM10rKGFLWzNdLWFMWzNdKSphSTthSls0XT1hTFs0XSsoYUtbNF0tYUxbNF0pKmFJO2FKWzVdPWFMWzVdKyhhS1s1XS1hTFs1XSkqYUk7YUguXyRDVChhSik7fTthRC5wcm90b3R5cGUuXyRDVD1mdW5jdGlvbihhSil7dmFyIGFJPU1hdGguY29zKGFKWzNdKTt2YXIgYUg9TWF0aC5zaW4oYUpbM10pO3RoaXMuXyQ3PWFKWzBdKmFJO3RoaXMuXyRmPWFKWzBdKmFIO3RoaXMuXyRIPWFKWzFdKihhSlsyXSphSS1hSCk7dGhpcy5fJGc9YUpbMV0qKGFKWzJdKmFIK2FJKTt0aGlzLl8kaz1hSls0XTt0aGlzLl8kdz1hSls1XTt0aGlzLnVwZGF0ZSgpO307YUQucHJvdG90eXBlLl8kSVQ9ZnVuY3Rpb24oYUgpe2FIWzBdPXRoaXMuXyQ3O2FIWzFdPXRoaXMuXyRmO2FIWzJdPXRoaXMuXyRIO2FIWzNdPXRoaXMuXyRnO2FIWzRdPXRoaXMuXyRrO2FIWzVdPXRoaXMuXyR3O307ZnVuY3Rpb24gWSgpe2lmKGope3JldHVybjt9YWgucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy5tb3Rpb25zPW5ldyBBcnJheSgpO3RoaXMuXyQ3cj1udWxsO3RoaXMuXyQ3cj1ZLl8kQ28rKzt0aGlzLl8kRDA9MzA7dGhpcy5fJHlUPTA7dGhpcy5fJEU9dHJ1ZTt0aGlzLmxvb3BGYWRlSW49dHJ1ZTt0aGlzLl8kQVM9LTE7XyRhMCgpO31ZLnByb3RvdHlwZT1uZXcgYWgoKTtZLl8kY3M9XCJWSVNJQkxFOlwiO1kuXyRhcj1cIkxBWU9VVDpcIjtZLl8kQ289MDtZLl8kRDI9W107WS5fJDFUPTE7WS5sb2FkTW90aW9uPWZ1bmN0aW9uKGFSKXt2YXIgYU09bmV3IFkoKTt2YXIgYUk9WzBdO3ZhciBhUD1hUi5sZW5ndGg7YU0uXyR5VD0wO2Zvcih2YXIgYUo9MDthSjxhUDsrK2FKKXt2YXIgYVE9KGFSW2FKXSYyNTUpO2lmKGFRPT1cIlxcblwifHxhUT09XCJcXHJcIil7Y29udGludWU7fWlmKGFRPT1cIiNcIil7Zm9yKDthSjxhUDsrK2FKKXtpZihhUlthSl09PVwiXFxuXCJ8fGFSW2FKXT09XCJcXHJcIil7YnJlYWs7fX1jb250aW51ZTt9aWYoYVE9PVwiJFwiKXt2YXIgYVQ9YUo7dmFyIGFLPS0xO2Zvcig7YUo8YVA7KythSil7YVE9KGFSW2FKXSYyNTUpO2lmKGFRPT1cIlxcclwifHxhUT09XCJcXG5cIil7YnJlYWs7fWlmKGFRPT1cIj1cIil7YUs9YUo7YnJlYWs7fX12YXIgYU89ZmFsc2U7aWYoYUs+PTApe2lmKGFLPT1hVCs0JiZhUlthVCsxXT09XCJmXCImJmFSW2FUKzJdPT1cInBcIiYmYVJbYVQrM109PVwic1wiKXthTz10cnVlO31mb3IoYUo9YUsrMTthSjxhUDsrK2FKKXthUT0oYVJbYUpdJjI1NSk7aWYoYVE9PVwiXFxyXCJ8fGFRPT1cIlxcblwiKXticmVhazt9aWYoYVE9PVwiLFwifHxhUT09XCIgXCJ8fGFRPT1cIlxcdFwiKXtjb250aW51ZTt9dmFyIGFMPUcuXyRMUyhhUixhUCxhSixhSSk7aWYoYUlbMF0+MCl7aWYoYU8mJjU8YUwmJmFMPDEyMSl7YU0uXyREMD1hTDt9fWFKPWFJWzBdO319Zm9yKDthSjxhUDsrK2FKKXtpZihhUlthSl09PVwiXFxuXCJ8fGFSW2FKXT09XCJcXHJcIil7YnJlYWs7fX1jb250aW51ZTt9aWYoKFwiYVwiPD1hUSYmYVE8PVwielwiKXx8KFwiQVwiPD1hUSYmYVE8PVwiWlwiKXx8YVE9PVwiX1wiKXt2YXIgYVQ9YUo7dmFyIGFLPS0xO2Zvcig7YUo8YVA7KythSil7YVE9KGFSW2FKXSYyNTUpO2lmKGFRPT1cIlxcclwifHxhUT09XCJcXG5cIil7YnJlYWs7fWlmKGFRPT1cIj1cIil7YUs9YUo7YnJlYWs7fX1pZihhSz49MCl7dmFyIGFOPW5ldyB0KCk7aWYoRy5zdGFydHNXaXRoKGFSLGFULFkuXyRjcykpe2FOLl8kUlA9dC5fJGhzO2FOLl8kNFA9bmV3IFN0cmluZyhhUixhVCxhSy1hVCk7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFSLGFULFkuXyRhcikpe2FOLl8kNFA9bmV3IFN0cmluZyhhUixhVCs3LGFLLWFULTcpO2lmKEcuc3RhcnRzV2l0aChhUixhVCs3LFwiQU5DSE9SX1hcIikpe2FOLl8kUlA9dC5fJHhzO31lbHNle2lmKEcuc3RhcnRzV2l0aChhUixhVCs3LFwiQU5DSE9SX1lcIikpe2FOLl8kUlA9dC5fJHVzO31lbHNle2lmKEcuc3RhcnRzV2l0aChhUixhVCs3LFwiU0NBTEVfWFwiKSl7YU4uXyRSUD10Ll8kcXM7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFSLGFUKzcsXCJTQ0FMRV9ZXCIpKXthTi5fJFJQPXQuXyRZczt9ZWxzZXtpZihHLnN0YXJ0c1dpdGgoYVIsYVQrNyxcIlhcIikpe2FOLl8kUlA9dC5fJHdzO31lbHNle2lmKEcuc3RhcnRzV2l0aChhUixhVCs3LFwiWVwiKSl7YU4uXyRSUD10Ll8kTnM7fX19fX19fWVsc2V7YU4uXyRSUD10Ll8kRnI7YU4uXyQ0UD1uZXcgU3RyaW5nKGFSLGFULGFLLWFUKTt9fWFNLm1vdGlvbnMucHVzaChhTik7dmFyIGFTPTA7WS5fJEQyLmNsZWFyKCk7Zm9yKGFKPWFLKzE7YUo8YVA7KythSil7YVE9KGFSW2FKXSYyNTUpO2lmKGFRPT1cIlxcclwifHxhUT09XCJcXG5cIil7YnJlYWs7fWlmKGFRPT1cIixcInx8YVE9PVwiIFwifHxhUT09XCJcXHRcIil7Y29udGludWU7fXZhciBhTD1HLl8kTFMoYVIsYVAsYUosYUkpO2lmKGFJWzBdPjApe1kuXyREMi5wdXNoKGFMKTthUysrO3ZhciBhSD1hSVswXTtpZihhSDxhSil7Y29uc29sZS5sb2coXCJfJG4wIF8kaGkgLiBATGl2ZTJETW90aW9uIGxvYWRNb3Rpb24oKVxcblwiKTticmVhazt9YUo9YUg7fX1hTi5fJEkwPVkuXyREMi5fJEJMKCk7aWYoYVM+YU0uXyR5VCl7YU0uXyR5VD1hUzt9fX19YU0uXyRBUz0oKDEwMDAqYU0uXyR5VCkvYU0uXyREMCl8MDtyZXR1cm4gYU07fTtZLnByb3RvdHlwZS5nZXREdXJhdGlvbk1TZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJEFTO307WS5wcm90b3R5cGUuZHVtcD1mdW5jdGlvbigpe2Zvcih2YXIgYUo9MDthSjx0aGlzLm1vdGlvbnMubGVuZ3RoO2FKKyspe3ZhciBhSD10aGlzLm1vdGlvbnNbYUpdO2NvbnNvbGUubG9nKFwiXyR3TFslc10gWyVkXS4gXCIsYUguXyQ0UCxhSC5fJEkwLmxlbmd0aCk7Zm9yKHZhciBhST0wO2FJPGFILl8kSTAubGVuZ3RoJiZhSTwxMDthSSsrKXtjb25zb2xlLmxvZyhcIiU1LjJmICxcIixhSC5fJEkwW2FJXSk7fWNvbnNvbGUubG9nKFwiXFxuXCIpO319O1kucHJvdG90eXBlLnVwZGF0ZVBhcmFtRXhlPWZ1bmN0aW9uKGFILGFMLGFPLGFYKXt2YXIgYU09YUwtYVguXyR6Mjt2YXIgYVY9YU0qdGhpcy5fJEQwLzEwMDA7dmFyIGFKPWFWfDA7dmFyIGFQPWFWLWFKO2Zvcih2YXIgYVU9MDthVTx0aGlzLm1vdGlvbnMubGVuZ3RoO2FVKyspe3ZhciBhUz10aGlzLm1vdGlvbnNbYVVdO3ZhciBhSz1hUy5fJEkwLmxlbmd0aDt2YXIgYVE9YVMuXyQ0UDtpZihhUy5fJFJQPT10Ll8kaHMpe3ZhciBhVD1hUy5fJEkwWyhhSj49YUs/YUstMTphSildO2FILnNldFBhcmFtRmxvYXQoYVEsYVQpO31lbHNle2lmKHQuXyR3czw9YVMuXyRSUCYmYVMuXyRSUDw9dC5fJFlzKXt9ZWxzZXt2YXIgYVI9YUguZ2V0UGFyYW1GbG9hdChhUSk7dmFyIGFZPWFTLl8kSTBbKGFKPj1hSz9hSy0xOmFKKV07dmFyIGFXPWFTLl8kSTBbKGFKKzE+PWFLP2FLLTE6YUorMSldO3ZhciBhST1hWSsoYVctYVkpKmFQO3ZhciBhTj1hUisoYUktYVIpKmFPO2FILnNldFBhcmFtRmxvYXQoYVEsYU4pO319fWlmKGFKPj10aGlzLl8keVQpe2lmKHRoaXMuXyRFKXthWC5fJHoyPWFMO2lmKHRoaXMubG9vcEZhZGVJbil7YVguXyRicz1hTDt9fWVsc2V7YVguXyQ5TD10cnVlO319fTtZLnByb3RvdHlwZS5fJHIwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRFO307WS5wcm90b3R5cGUuXyRhTD1mdW5jdGlvbihhSCl7dGhpcy5fJEU9YUg7fTtZLnByb3RvdHlwZS5pc0xvb3BGYWRlSW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb29wRmFkZUluO307WS5wcm90b3R5cGUuc2V0TG9vcEZhZGVJbj1mdW5jdGlvbihhSCl7dGhpcy5sb29wRmFkZUluPWFIO307ZnVuY3Rpb24gYUUoKXt0aGlzLl8kUD1uZXcgRmxvYXQzMkFycmF5KDEwMCk7dGhpcy5zaXplPTA7fWFFLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wO307YUUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhSSl7aWYodGhpcy5fJFAubGVuZ3RoPD10aGlzLnNpemUpe3ZhciBhSD1uZXcgRmxvYXQzMkFycmF5KHRoaXMuc2l6ZSoyKTtQLl8kalQodGhpcy5fJFAsMCxhSCwwLHRoaXMuc2l6ZSk7dGhpcy5fJFA9YUg7fXRoaXMuXyRQW3RoaXMuc2l6ZSsrXT1hSTt9O2FFLnByb3RvdHlwZS5fJEJMPWZ1bmN0aW9uKCl7dmFyIGFIPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5zaXplKTtQLl8kalQodGhpcy5fJFAsMCxhSCwwLHRoaXMuc2l6ZSk7cmV0dXJuIGFIO307ZnVuY3Rpb24gdCgpe3RoaXMuXyQ0UD1udWxsO3RoaXMuXyRJMD1udWxsO3RoaXMuXyRSUD1udWxsO310Ll8kRnI9MDt0Ll8kaHM9MTt0Ll8kd3M9MTAwO3QuXyROcz0xMDE7dC5fJHhzPTEwMjt0Ll8kdXM9MTAzO3QuXyRxcz0xMDQ7dC5fJFlzPTEwNTtmdW5jdGlvbiBhdygpe31hdy5fJE1zPTE7YXcuXyRRcz0yO2F3Ll8kaTI9MDthdy5fJE5vPTI7YXcuXyRkbz1hdy5fJE1zO2F3Ll8kTHM9dHJ1ZTthdy5fJDFyPTU7YXcuXyRRYj02NTthdy5fJEo9MC4wMDAxO2F3Ll8kRlQ9MC4wMDE7YXcuXyRTcz0zO2Z1bmN0aW9uIGF5KCl7fWF5Ll8kbzc9NjtheS5fJFM3PTc7YXkuXyRzNz04O2F5Ll8kNzc9OTtheS5MSVZFMkRfRk9STUFUX1ZFUlNJT05fVjJfMTBfU0RLMj0xMDtheS5MSVZFMkRfRk9STUFUX1ZFUlNJT05fVjJfMTFfU0RLMl8xPTExO2F5Ll8kVDc9YXkuTElWRTJEX0ZPUk1BVF9WRVJTSU9OX1YyXzExX1NESzJfMTtheS5fJElzPS0yMDA0MzE4MDcyO2F5Ll8kaDA9MDtheS5fJDRMPTIzO2F5Ll8kN1A9MzM7YXkuXyR1VD1mdW5jdGlvbihhSCl7Y29uc29sZS5sb2coXCJfJGJvIDo6IF8kNiBfJG1vIF8kRTAgOiAlZFxcblwiLGFIKTt9O2F5Ll8kOW89ZnVuY3Rpb24oYUgpe2lmKGFIPDQwKXtheS5fJHVUKGFIKTtyZXR1cm4gbnVsbDt9ZWxzZXtpZihhSDw1MCl7YXkuXyR1VChhSCk7cmV0dXJuIG51bGw7fWVsc2V7aWYoYUg8NjApe2F5Ll8kdVQoYUgpO3JldHVybiBudWxsO31lbHNle2lmKGFIPDEwMCl7c3dpdGNoKGFIKXtjYXNlIDY1OnJldHVybiBuZXcgRSgpO2Nhc2UgNjY6cmV0dXJuIG5ldyBnKCk7Y2FzZSA2NzpyZXR1cm4gbmV3IGFBKCk7Y2FzZSA2ODpyZXR1cm4gbmV3IGFiKCk7Y2FzZSA2OTpyZXR1cm4gbmV3IFgoKTtjYXNlIDcwOnJldHVybiBuZXcgYigpO2RlZmF1bHQ6YXkuXyR1VChhSCk7cmV0dXJuIG51bGw7fX1lbHNle2lmKGFIPDE1MCl7c3dpdGNoKGFIKXtjYXNlIDEzMTpyZXR1cm4gbmV3IGYoKTtjYXNlIDEzMzpyZXR1cm4gbmV3IHMoKTtjYXNlIDEzNjpyZXR1cm4gbmV3IHcoKTtjYXNlIDEzNzpyZXR1cm4gbmV3IGFuKCk7Y2FzZSAxNDI6cmV0dXJuIG5ldyBhcSgpO319fX19fWF5Ll8kdVQoYUgpO3JldHVybiBudWxsO307ZnVuY3Rpb24geShhSCl7aWYoail7cmV0dXJuO310aGlzLl8kUVQ9dHJ1ZTt0aGlzLl8kY289LTE7dGhpcy5fJHFvPTA7dGhpcy5fJHBiPW5ldyBBcnJheSh5Ll8kaXMpO3RoaXMuXyRfMj1uZXcgRmxvYXQzMkFycmF5KHkuXyRpcyk7dGhpcy5fJHZyPW5ldyBGbG9hdDMyQXJyYXkoeS5fJGlzKTt0aGlzLl8kUnI9bmV3IEZsb2F0MzJBcnJheSh5Ll8kaXMpO3RoaXMuXyRPcj1uZXcgRmxvYXQzMkFycmF5KHkuXyRpcyk7dGhpcy5fJGZzPW5ldyBGbG9hdDMyQXJyYXkoeS5fJGlzKTt0aGlzLl8kSnM9bmV3IEFycmF5KHkuXyRpcyk7dGhpcy5fJDNTPW5ldyBBcnJheSgpO3RoaXMuXyRhUz1uZXcgQXJyYXkoKTt0aGlzLl8kQm89bnVsbDt0aGlzLl8kRjI9bmV3IEFycmF5KCk7dGhpcy5fJGRiPW5ldyBBcnJheSgpO3RoaXMuXyQ4Yj1uZXcgQXJyYXkoKTt0aGlzLl8kSHI9bmV3IEFycmF5KCk7dGhpcy5fJFdzPW51bGw7dGhpcy5fJFZzPW51bGw7dGhpcy5fJEVyPW51bGw7dGhpcy5fJEVzPW5ldyBJbnQxNkFycmF5KGF3Ll8kUWIpO3RoaXMuXyRaUD1uZXcgRmxvYXQzMkFycmF5KGF3Ll8kMXIqMik7dGhpcy5fJFJpPWFIO3RoaXMuXyRiMD15Ll8kSFArKzt0aGlzLmNsaXBNYW5hZ2VyPW51bGw7dGhpcy5kcF93ZWJnbD1udWxsO315Ll8kSFA9MDt5Ll8kXzA9dHJ1ZTt5Ll8kVjI9LTE7eS5fJFcwPS0xO3kuXyRqcj1mYWxzZTt5Ll8kWlM9dHJ1ZTt5Ll8kdHI9KC0xMDAwMDAwKTt5Ll8kbHI9KDEwMDAwMDApO3kuXyRpcz0zMjt5Ll8kZT1mYWxzZTt5LnByb3RvdHlwZS5nZXREcmF3RGF0YUluZGV4PWZ1bmN0aW9uKGFJKXtmb3IodmFyIGFIPXRoaXMuXyRhUy5sZW5ndGgtMTthSD49MDstLWFIKXtpZih0aGlzLl8kYVNbYUhdIT1udWxsJiZ0aGlzLl8kYVNbYUhdLmdldERyYXdEYXRhSUQoKT09YUkpe3JldHVybiBhSDt9fXJldHVybiAtMTt9O3kucHJvdG90eXBlLmdldERyYXdEYXRhPWZ1bmN0aW9uKGFIKXtpZihhSCBpbnN0YW5jZW9mIFope2lmKHRoaXMuXyRCbz09bnVsbCl7dGhpcy5fJEJvPW5ldyBPYmplY3QoKTt2YXIgYUo9dGhpcy5fJGFTLmxlbmd0aDtmb3IodmFyIGFJPTA7YUk8YUo7YUkrKyl7dmFyIGFMPXRoaXMuXyRhU1thSV07dmFyIGFLPWFMLmdldERyYXdEYXRhSUQoKTtpZihhSz09bnVsbCl7Y29udGludWU7fXRoaXMuXyRCb1thS109YUw7fX1yZXR1cm4gdGhpcy5fJEJvW2lkXTt9ZWxzZXtpZihhSDx0aGlzLl8kYVMubGVuZ3RoKXtyZXR1cm4gdGhpcy5fJGFTW2FIXTt9ZWxzZXtyZXR1cm4gbnVsbDt9fX07eS5wcm90b3R5cGUucmVsZWFzZT1mdW5jdGlvbigpe3RoaXMuXyQzUy5jbGVhcigpO3RoaXMuXyRhUy5jbGVhcigpO3RoaXMuXyRGMi5jbGVhcigpO2lmKHRoaXMuXyRCbyE9bnVsbCl7dGhpcy5fJEJvLmNsZWFyKCk7fXRoaXMuXyRkYi5jbGVhcigpO3RoaXMuXyQ4Yi5jbGVhcigpO3RoaXMuXyRIci5jbGVhcigpO307eS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuXyRjbysrO2lmKHRoaXMuXyRGMi5sZW5ndGg+MCl7dGhpcy5yZWxlYXNlKCk7fXZhciBhTz10aGlzLl8kUmkuZ2V0TW9kZWxJbXBsKCk7dmFyIGFUPWFPLl8kWHIoKTt2YXIgYVM9YVQubGVuZ3RoO3ZhciBhSD1uZXcgQXJyYXkoKTt2YXIgYTM9bmV3IEFycmF5KCk7Zm9yKHZhciBhVj0wO2FWPGFTOysrYVYpe3ZhciBhND1hVFthVl07dGhpcy5fJEYyLnB1c2goYTQpO3RoaXMuXyRIci5wdXNoKGE0LmluaXQodGhpcykpO3ZhciBhSz1hNC5nZXRCYXNlRGF0YSgpO3ZhciBhUj1hSy5sZW5ndGg7Zm9yKHZhciBhVT0wO2FVPGFSOysrYVUpe2FILnB1c2goYUtbYVVdKTt9Zm9yKHZhciBhVT0wO2FVPGFSOysrYVUpe3ZhciBhTT1hS1thVV0uaW5pdCh0aGlzKTthTS5fJGwyKGFWKTthMy5wdXNoKGFNKTt9dmFyIGExPWE0LmdldERyYXdEYXRhKCk7dmFyIGFQPWExLmxlbmd0aDtmb3IodmFyIGFVPTA7YVU8YVA7KythVSl7dmFyIGFaPWExW2FVXTt2YXIgYTA9YVouaW5pdCh0aGlzKTthMC5fJElQPWFWO3RoaXMuXyRhUy5wdXNoKGFaKTt0aGlzLl8kOGIucHVzaChhMCk7fX12YXIgYVk9YUgubGVuZ3RoO3ZhciBhTj1uLl8kMm8oKTt3aGlsZSh0cnVlKXt2YXIgYVg9ZmFsc2U7Zm9yKHZhciBhVj0wO2FWPGFZOysrYVYpe3ZhciBhTD1hSFthVl07aWYoYUw9PW51bGwpe2NvbnRpbnVlO312YXIgYTI9YUwuZ2V0VGFyZ2V0QmFzZURhdGFJRCgpO2lmKGEyPT1udWxsfHxhMj09YU58fHRoaXMuZ2V0QmFzZURhdGFJbmRleChhMik+PTApe3RoaXMuXyQzUy5wdXNoKGFMKTt0aGlzLl8kZGIucHVzaChhM1thVl0pO2FIW2FWXT1udWxsO2FYPXRydWU7fX1pZighYVgpe2JyZWFrO319dmFyIGFJPWFPLl8kRTIoKTtpZihhSSE9bnVsbCl7dmFyIGFKPWFJLl8kMXMoKTtpZihhSiE9bnVsbCl7dmFyIGFXPWFKLmxlbmd0aDtmb3IodmFyIGFWPTA7YVY8YVc7KythVil7dmFyIGFRPWFKW2FWXTtpZihhUT09bnVsbCl7Y29udGludWU7fXRoaXMuXyQwMihhUS5nZXRQYXJhbUlEKCksYVEuZ2V0RGVmYXVsdFZhbHVlKCksYVEuZ2V0TWluVmFsdWUoKSxhUS5nZXRNYXhWYWx1ZSgpKTt9fX10aGlzLmNsaXBNYW5hZ2VyPW5ldyBXKHRoaXMuZHBfd2ViZ2wpO3RoaXMuY2xpcE1hbmFnZXIuaW5pdCh0aGlzLHRoaXMuXyRhUyx0aGlzLl8kOGIpO3RoaXMuXyRRVD10cnVlO307eS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7aWYoeS5fJGUpe3Euc3RhcnQoXCJfJHpMXCIpO312YXIgYUs9dGhpcy5fJF8yLmxlbmd0aDtmb3IodmFyIGFXPTA7YVc8YUs7YVcrKyl7aWYodGhpcy5fJF8yW2FXXSE9dGhpcy5fJHZyW2FXXSl7dGhpcy5fJEpzW2FXXT15Ll8kWlM7dGhpcy5fJHZyW2FXXT10aGlzLl8kXzJbYVddO319dmFyIGFYPWZhbHNlO3ZhciBhUT10aGlzLl8kM1MubGVuZ3RoO3ZhciBhTj10aGlzLl8kYVMubGVuZ3RoO3ZhciBhUz1hLl8kb3IoKTt2YXIgYVo9YS5fJFByKCk7dmFyIGFVPWFaLWFTKzE7aWYodGhpcy5fJFdzPT1udWxsfHx0aGlzLl8kV3MubGVuZ3RoPGFVKXt0aGlzLl8kV3M9bmV3IEludDE2QXJyYXkoYVUpO3RoaXMuXyRWcz1uZXcgSW50MTZBcnJheShhVSk7fWZvcih2YXIgYVc9MDthVzxhVTthVysrKXt0aGlzLl8kV3NbYVddPXkuXyRWMjt0aGlzLl8kVnNbYVddPXkuXyRWMjt9aWYodGhpcy5fJEVyPT1udWxsfHx0aGlzLl8kRXIubGVuZ3RoPGFOKXt0aGlzLl8kRXI9bmV3IEludDE2QXJyYXkoYU4pO31mb3IodmFyIGFXPTA7YVc8YU47YVcrKyl7dGhpcy5fJEVyW2FXXT15Ll8kVzA7fWlmKHkuXyRlKXtxLmR1bXAoXCJfJHpMXCIpO31pZih5Ll8kZSl7cS5zdGFydChcIl8kVUxcIik7fXZhciBhTD1udWxsO2Zvcih2YXIgYVY9MDthVjxhUTsrK2FWKXt2YXIgYUo9dGhpcy5fJDNTW2FWXTt2YXIgYUg9dGhpcy5fJGRiW2FWXTt0cnl7YUouXyROcih0aGlzLGFIKTthSi5fJDJiKHRoaXMsYUgpO31jYXRjaChhWSl7aWYoYUw9PW51bGwpe2FMPWFZO319fWlmKGFMIT1udWxsKXtpZih5Ll8kXzApe3EuXyRSYihhTCk7fX1pZih5Ll8kZSl7cS5kdW1wKFwiXyRVTFwiKTt9aWYoeS5fJGUpe3Euc3RhcnQoXCJfJERMXCIpO312YXIgYVI9bnVsbDtmb3IodmFyIGFPPTA7YU88YU47KythTyl7dmFyIGFNPXRoaXMuXyRhU1thT107dmFyIGFJPXRoaXMuXyQ4YlthT107dHJ5e2FNLl8kTnIodGhpcyxhSSk7aWYoYUkuXyR1MigpKXtjb250aW51ZTt9YU0uXyQyYih0aGlzLGFJKTt2YXIgYVQ9TWF0aC5mbG9vcihhTS5fJHpTKHRoaXMsYUkpLWFTKTt2YXIgYVA7dHJ5e2FQPXRoaXMuXyRWc1thVF07fWNhdGNoKGFZKXtjb25zb2xlLmxvZyhcIl8kbGkgOjogJXMgLyAlcyBcdFx0XHRcdEBAXyRmU1xcblwiLGFZLnRvU3RyaW5nKCksYU0uZ2V0RHJhd0RhdGFJRCgpLnRvU3RyaW5nKCkpO2FUPU1hdGguZmxvb3IoYU0uXyR6Uyh0aGlzLGFJKS1hUyk7Y29udGludWU7fWlmKGFQPT15Ll8kVjIpe3RoaXMuXyRXc1thVF09YU87fWVsc2V7dGhpcy5fJEVyW2FQXT1hTzt9dGhpcy5fJFZzW2FUXT1hTzt9Y2F0Y2goYVkpe2lmKGFSPT1udWxsKXthUj1hWTtRLl8kc1QoUS5fJEg3KTt9fX1pZihhUiE9bnVsbCl7aWYoeS5fJF8wKXtxLl8kUmIoYVIpO319aWYoeS5fJGUpe3EuZHVtcChcIl8kRExcIik7fWlmKHkuXyRlKXtxLnN0YXJ0KFwiXyRlTFwiKTt9Zm9yKHZhciBhVz10aGlzLl8kSnMubGVuZ3RoLTE7YVc+PTA7YVctLSl7dGhpcy5fJEpzW2FXXT15Ll8kanI7fXRoaXMuXyRRVD1mYWxzZTtpZih5Ll8kZSl7cS5kdW1wKFwiXyRlTFwiKTt9cmV0dXJuIGFYO307eS5wcm90b3R5cGUucHJlRHJhdz1mdW5jdGlvbihhSCl7aWYodGhpcy5jbGlwTWFuYWdlciE9bnVsbCl7YUguXyRaVCgpO3RoaXMuY2xpcE1hbmFnZXIuc2V0dXBDbGlwKHRoaXMsYUgpO319O3kucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oYU0pe2lmKHRoaXMuXyRXcz09bnVsbCl7cS5fJGxpKFwiY2FsbCBfJFJpLnVwZGF0ZSgpIGJlZm9yZSBfJFJpLmRyYXcoKSBcIik7cmV0dXJuO312YXIgYVA9dGhpcy5fJFdzLmxlbmd0aDthTS5fJFpUKCk7Zm9yKHZhciBhSz0wO2FLPGFQOysrYUspe3ZhciBhTj10aGlzLl8kV3NbYUtdO2lmKGFOPT15Ll8kVjIpe2NvbnRpbnVlO31kb3t2YXIgYUg9dGhpcy5fJGFTW2FOXTt2YXIgYUk9dGhpcy5fJDhiW2FOXTtpZihhSS5fJHlvKCkpe3ZhciBhSj1hSS5fJElQO3ZhciBhTD10aGlzLl8kSHJbYUpdO2FJLl8kVlM9YUwuZ2V0UGFydHNPcGFjaXR5KCk7YUguZHJhdyhhTSx0aGlzLGFJKTt9dmFyIGFPPXRoaXMuXyRFclthTl07aWYoYU88PWFOfHxhTz09eS5fJFcwKXticmVhazt9YU49YU87fXdoaWxlKHRydWUpO319O3kucHJvdG90eXBlLmdldFBhcmFtSW5kZXg9ZnVuY3Rpb24oYUgpe2Zvcih2YXIgYUk9dGhpcy5fJHBiLmxlbmd0aC0xO2FJPj0wOy0tYUkpe2lmKHRoaXMuXyRwYlthSV09PWFIKXtyZXR1cm4gYUk7fX1yZXR1cm4gdGhpcy5fJDAyKGFILDAseS5fJHRyLHkuXyRscik7fTt5LnByb3RvdHlwZS5fJEJTPWZ1bmN0aW9uKGFIKXtyZXR1cm4gdGhpcy5nZXRCYXNlRGF0YUluZGV4KGFIKTt9O3kucHJvdG90eXBlLmdldEJhc2VEYXRhSW5kZXg9ZnVuY3Rpb24oYUgpe2Zvcih2YXIgYUk9dGhpcy5fJDNTLmxlbmd0aC0xO2FJPj0wOy0tYUkpe2lmKHRoaXMuXyQzU1thSV0hPW51bGwmJnRoaXMuXyQzU1thSV0uZ2V0QmFzZURhdGFJRCgpPT1hSCl7cmV0dXJuIGFJO319cmV0dXJuIC0xO307eS5wcm90b3R5cGUuXyRVVD1mdW5jdGlvbihhSixhSCl7dmFyIGFJPW5ldyBGbG9hdDMyQXJyYXkoYUgpO1AuXyRqVChhSiwwLGFJLDAsYUoubGVuZ3RoKTtyZXR1cm4gYUk7fTt5LnByb3RvdHlwZS5fJDAyPWZ1bmN0aW9uKGFOLGFNLGFMLGFIKXtpZih0aGlzLl8kcW8+PXRoaXMuXyRwYi5sZW5ndGgpe3ZhciBhSz10aGlzLl8kcGIubGVuZ3RoO3ZhciBhSj1uZXcgQXJyYXkoYUsqMik7UC5fJGpUKHRoaXMuXyRwYiwwLGFKLDAsYUspO3RoaXMuXyRwYj1hSjt0aGlzLl8kXzI9dGhpcy5fJFVUKHRoaXMuXyRfMixhSyoyKTt0aGlzLl8kdnI9dGhpcy5fJFVUKHRoaXMuXyR2cixhSyoyKTt0aGlzLl8kUnI9dGhpcy5fJFVUKHRoaXMuXyRScixhSyoyKTt0aGlzLl8kT3I9dGhpcy5fJFVUKHRoaXMuXyRPcixhSyoyKTt2YXIgYUk9bmV3IEFycmF5KCk7UC5fJGpUKHRoaXMuXyRKcywwLGFJLDAsYUspO3RoaXMuXyRKcz1hSTt9dGhpcy5fJHBiW3RoaXMuXyRxb109YU47dGhpcy5fJF8yW3RoaXMuXyRxb109YU07dGhpcy5fJHZyW3RoaXMuXyRxb109YU07dGhpcy5fJFJyW3RoaXMuXyRxb109YUw7dGhpcy5fJE9yW3RoaXMuXyRxb109YUg7dGhpcy5fJEpzW3RoaXMuXyRxb109eS5fJFpTO3JldHVybiB0aGlzLl8kcW8rKzt9O3kucHJvdG90eXBlLl8kWm89ZnVuY3Rpb24oYUksYUgpe3RoaXMuXyQzU1thSV09YUg7fTt5LnByb3RvdHlwZS5zZXRQYXJhbUZsb2F0PWZ1bmN0aW9uKGFILGFJKXtpZihhSTx0aGlzLl8kUnJbYUhdKXthST10aGlzLl8kUnJbYUhdO31pZihhST50aGlzLl8kT3JbYUhdKXthST10aGlzLl8kT3JbYUhdO310aGlzLl8kXzJbYUhdPWFJO307eS5wcm90b3R5cGUubG9hZFBhcmFtPWZ1bmN0aW9uKCl7dmFyIGFIPXRoaXMuXyRfMi5sZW5ndGg7aWYoYUg+dGhpcy5fJGZzLmxlbmd0aCl7YUg9dGhpcy5fJGZzLmxlbmd0aDt9UC5fJGpUKHRoaXMuXyRmcywwLHRoaXMuXyRfMiwwLGFIKTt9O3kucHJvdG90eXBlLnNhdmVQYXJhbT1mdW5jdGlvbigpe3ZhciBhSD10aGlzLl8kXzIubGVuZ3RoO2lmKGFIPnRoaXMuXyRmcy5sZW5ndGgpe3RoaXMuXyRmcz1uZXcgRmxvYXQzMkFycmF5KGFIKTt9UC5fJGpUKHRoaXMuXyRfMiwwLHRoaXMuXyRmcywwLGFIKTt9O3kucHJvdG90eXBlLl8kdjI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGNvO307eS5wcm90b3R5cGUuXyRXUz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kUVQ7fTt5LnByb3RvdHlwZS5fJFhiPWZ1bmN0aW9uKGFIKXtyZXR1cm4gdGhpcy5fJEpzW2FIXT09eS5fJFpTO307eS5wcm90b3R5cGUuXyR2cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kRXM7fTt5LnByb3RvdHlwZS5fJFRyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRaUDt9O3kucHJvdG90eXBlLmdldEJhc2VEYXRhPWZ1bmN0aW9uKGFIKXtyZXR1cm4gdGhpcy5fJDNTW2FIXTt9O3kucHJvdG90eXBlLmdldFBhcmFtRmxvYXQ9ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLl8kXzJbYUhdO307eS5wcm90b3R5cGUuZ2V0UGFyYW1NYXg9ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLl8kT3JbYUhdO307eS5wcm90b3R5cGUuZ2V0UGFyYW1NaW49ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLl8kUnJbYUhdO307eS5wcm90b3R5cGUuc2V0UGFydHNPcGFjaXR5PWZ1bmN0aW9uKGFKLGFIKXt2YXIgYUk9dGhpcy5fJEhyW2FKXTthSS5zZXRQYXJ0c09wYWNpdHkoYUgpO307eS5wcm90b3R5cGUuZ2V0UGFydHNPcGFjaXR5PWZ1bmN0aW9uKGFJKXt2YXIgYUg9dGhpcy5fJEhyW2FJXTtyZXR1cm4gYUguZ2V0UGFydHNPcGFjaXR5KCk7fTt5LnByb3RvdHlwZS5nZXRQYXJ0c0RhdGFJbmRleD1mdW5jdGlvbihhSSl7Zm9yKHZhciBhSD10aGlzLl8kRjIubGVuZ3RoLTE7YUg+PTA7LS1hSCl7aWYodGhpcy5fJEYyW2FIXSE9bnVsbCYmdGhpcy5fJEYyW2FIXS5fJHAyKCk9PWFJKXtyZXR1cm4gYUg7fX1yZXR1cm4gLTE7fTt5LnByb3RvdHlwZS5fJHEyPWZ1bmN0aW9uKGFIKXtyZXR1cm4gdGhpcy5fJGRiW2FIXTt9O3kucHJvdG90eXBlLl8kQzI9ZnVuY3Rpb24oYUgpe3JldHVybiB0aGlzLl8kOGJbYUhdO307eS5wcm90b3R5cGUuXyRCYj1mdW5jdGlvbihhSCl7cmV0dXJuIHRoaXMuXyRIclthSF07fTt5LnByb3RvdHlwZS5fJDVzPWZ1bmN0aW9uKGFPLGFLKXt2YXIgYUo9dGhpcy5fJFdzLmxlbmd0aDt2YXIgYU49YU87Zm9yKHZhciBhTD0wO2FMPGFKOysrYUwpe3ZhciBhST10aGlzLl8kV3NbYUxdO2lmKGFJPT15Ll8kVjIpe2NvbnRpbnVlO31kb3t2YXIgYU09dGhpcy5fJDhiW2FJXTtpZihhTS5fJHlvKCkpe2FNLl8kR1QoKS5fJEIyKHRoaXMsYU0sYU4pO2FOKz1hSzt9dmFyIGFIPXRoaXMuXyRFclthSV07aWYoYUg8PWFJfHxhSD09eS5fJFcwKXticmVhazt9YUk9YUg7fXdoaWxlKHRydWUpO319O3kucHJvdG90eXBlLnNldERyYXdQYXJhbT1mdW5jdGlvbihhSCl7dGhpcy5kcF93ZWJnbD1hSDt9O3kucHJvdG90eXBlLmdldERyYXdQYXJhbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRwX3dlYmdsO307ZnVuY3Rpb24gYXAoKXt9YXAuXyQwVD1mdW5jdGlvbihhSCl7cmV0dXJuIGFwLl8kMFQobmV3IF8kNShhSCkpO307YXAuXyQwVD1mdW5jdGlvbihhSil7aWYoIWFKLmV4aXN0cygpKXt0aHJvdyBuZXcgXyRscyhhSi5fJDNiKCkpO312YXIgYUg9YUoubGVuZ3RoKCk7dmFyIGFJPW5ldyBJbnQ4QXJyYXkoYUgpO3ZhciBhTT1uZXcgXyRYcyhuZXcgXyRrYihhSiksODE5Mik7dmFyIGFLO3ZhciBhTD0wO3doaWxlKChhSz1hTS5yZWFkKGFJLGFMLGFILWFMKSk+MCl7YUwrPWFLO31yZXR1cm4gYUk7fTthcC5fJEM9ZnVuY3Rpb24oYUope3ZhciBhST1udWxsO3ZhciBhTD1udWxsO3RyeXthST0oYUogaW5zdGFuY2VvZiBBcnJheSk/YUo6bmV3IF8kWHMoYUosODE5Mik7YUw9bmV3IF8kanMoKTt2YXIgYU09MTAwMDt2YXIgYUs7dmFyIGFIPW5ldyBJbnQ4QXJyYXkoYU0pO3doaWxlKChhSz1hSS5yZWFkKGFIKSk+MCl7YUwud3JpdGUoYUgsMCxhSyk7fXJldHVybiBhTC5fJFRTKCk7fWZpbmFsbHl7aWYoYUohPW51bGwpe2FKLmNsb3NlKCk7fWlmKGFMIT1udWxsKXthTC5mbHVzaCgpO2FMLmNsb3NlKCk7fX19O2Z1bmN0aW9uIGFyKCl7aWYoail7cmV0dXJuO310aGlzLl8kMTI9bnVsbDt0aGlzLl8kYmI9bnVsbDt0aGlzLl8kX0w9bnVsbDt0aGlzLl8kam89bnVsbDt0aGlzLl8kaUw9bnVsbDt0aGlzLl8kMEw9bnVsbDt0aGlzLl8kQnI9bnVsbDt0aGlzLl8kRHI9bnVsbDt0aGlzLl8kQ2I9bnVsbDt0aGlzLl8kbXI9bnVsbDt0aGlzLl8kX0w9YXouU1RBVEVfRklSU1Q7dGhpcy5fJEJyPTQwMDA7dGhpcy5fJERyPTEwMDt0aGlzLl8kQ2I9NTA7dGhpcy5fJG1yPTE1MDt0aGlzLl8kam89dHJ1ZTt0aGlzLl8kaUw9XCJQQVJBTV9FWUVfTF9PUEVOXCI7dGhpcy5fJDBMPVwiUEFSQU1fRVlFX1JfT1BFTlwiO31hci5wcm90b3R5cGUuXyRUMj1mdW5jdGlvbigpe3ZhciBhST1QLmdldFVzZXJUaW1lTVNlYygpO3ZhciBhSD1NYXRoLl8kMTAoKTtyZXR1cm4oYUkrYUgqKDIqdGhpcy5fJEJyLTEpKTt9O2FyLnByb3RvdHlwZS5fJHVvPWZ1bmN0aW9uKGFIKXt0aGlzLl8kQnI9YUg7fTthci5wcm90b3R5cGUuXyRRUz1mdW5jdGlvbihhSSxhSCxhSil7dGhpcy5fJERyPWFJO3RoaXMuXyRDYj1hSDt0aGlzLl8kbXI9YUo7fTthci5wcm90b3R5cGUuXyQ3VD1mdW5jdGlvbihhSSl7dmFyIGFLPVAuZ2V0VXNlclRpbWVNU2VjKCk7dmFyIGFIO3ZhciBhSj0wO3N3aXRjaCh0aGlzLl8kX0wpe2Nhc2UgU1RBVEVfQ0xPU0lORzphSj0oYUstdGhpcy5fJGJiKS90aGlzLl8kRHI7aWYoYUo+PTEpe2FKPTE7dGhpcy5fJF9MPWF6LlNUQVRFX0NMT1NFRDt0aGlzLl8kYmI9YUs7fWFIPTEtYUo7YnJlYWs7Y2FzZSBTVEFURV9DTE9TRUQ6YUo9KGFLLXRoaXMuXyRiYikvdGhpcy5fJENiO2lmKGFKPj0xKXt0aGlzLl8kX0w9YXouU1RBVEVfT1BFTklORzt0aGlzLl8kYmI9YUs7fWFIPTA7YnJlYWs7Y2FzZSBTVEFURV9PUEVOSU5HOmFKPShhSy10aGlzLl8kYmIpL3RoaXMuXyRtcjtpZihhSj49MSl7YUo9MTt0aGlzLl8kX0w9YXouU1RBVEVfSU5URVJWQUw7dGhpcy5fJDEyPXRoaXMuXyRUMigpO31hSD1hSjticmVhaztjYXNlIFNUQVRFX0lOVEVSVkFMOmlmKHRoaXMuXyQxMjxhSyl7dGhpcy5fJF9MPWF6LlNUQVRFX0NMT1NJTkc7dGhpcy5fJGJiPWFLO31hSD0xO2JyZWFrO2Nhc2UgU1RBVEVfRklSU1Q6ZGVmYXVsdDp0aGlzLl8kX0w9YXouU1RBVEVfSU5URVJWQUw7dGhpcy5fJDEyPXRoaXMuXyRUMigpO2FIPTE7YnJlYWs7fWlmKCF0aGlzLl8kam8pe2FIPS1hSDt9YUkuc2V0UGFyYW1GbG9hdCh0aGlzLl8kaUwsYUgpO2FJLnNldFBhcmFtRmxvYXQodGhpcy5fJDBMLGFIKTt9O3ZhciBhej1mdW5jdGlvbigpe307YXouU1RBVEVfRklSU1Q9XCJTVEFURV9GSVJTVFwiO2F6LlNUQVRFX0lOVEVSVkFMPVwiU1RBVEVfSU5URVJWQUxcIjthei5TVEFURV9DTE9TSU5HPVwiU1RBVEVfQ0xPU0lOR1wiO2F6LlNUQVRFX0NMT1NFRD1cIlNUQVRFX0NMT1NFRFwiO2F6LlNUQVRFX09QRU5JTkc9XCJTVEFURV9PUEVOSU5HXCI7ZnVuY3Rpb24geCgpe2lmKGope3JldHVybjt9YXgucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy5fJHNiPW5ldyBJbnQzMkFycmF5KHguXyRBcyk7dGhpcy5fJFUyPW5ldyBBcnJheSgpO3RoaXMudHJhbnNmb3JtPW51bGw7dGhpcy5nbD1udWxsO2lmKHguXyROVD09bnVsbCl7eC5fJE5UPXguXyQ5cigyNTYpO3guXyR2Uz14Ll8kOXIoMjU2KTt4Ll8kbm89eC5fJHZiKDI1Nik7fX14LnByb3RvdHlwZT1uZXcgYXgoKTt4Ll8kQXM9MzI7eC5fJEdyPWZhbHNlO3guXyROVD1udWxsO3guXyR2Uz1udWxsO3guXyRubz1udWxsO3guXyQ5cj1mdW5jdGlvbihhSCl7dmFyIGFJPW5ldyBGbG9hdDMyQXJyYXkoYUgpO3JldHVybiBhSTt9O3guXyR2Yj1mdW5jdGlvbihhSCl7dmFyIGFJPW5ldyBJbnQxNkFycmF5KGFIKTtyZXR1cm4gYUk7fTt4Ll8kY3I9ZnVuY3Rpb24oYUksYUgpe2lmKGFJPT1udWxsfHxhSS5fJHlMKCk8YUgubGVuZ3RoKXthST14Ll8kOXIoYUgubGVuZ3RoKjIpO2FJLnB1dChhSCk7YUkuXyRvVCgwKTt9ZWxzZXthSS5jbGVhcigpO2FJLnB1dChhSCk7YUkuXyRvVCgwKTt9cmV0dXJuIGFJO307eC5fJG1iPWZ1bmN0aW9uKGFJLGFIKXtpZihhST09bnVsbHx8YUkuXyR5TCgpPGFILmxlbmd0aCl7YUk9eC5fJHZiKGFILmxlbmd0aCoyKTthSS5wdXQoYUgpO2FJLl8kb1QoMCk7fWVsc2V7YUkuY2xlYXIoKTthSS5wdXQoYUgpO2FJLl8kb1QoMCk7fXJldHVybiBhSTt9O3guXyRIcz1mdW5jdGlvbigpe3JldHVybiB4Ll8kR3I7fTt4Ll8kYXM9ZnVuY3Rpb24oYUgpe3guXyRHcj1hSDt9O3gucHJvdG90eXBlLnNldEdMPWZ1bmN0aW9uKGFIKXt0aGlzLmdsPWFIO307eC5wcm90b3R5cGUuc2V0VHJhbnNmb3JtPWZ1bmN0aW9uKGFIKXt0aGlzLnRyYW5zZm9ybT1hSDt9O3gucHJvdG90eXBlLl8kWlQ9ZnVuY3Rpb24oKXt9O3gucHJvdG90eXBlLl8kVW89ZnVuY3Rpb24oYU8sYUgsYVAsYUksYVEsYU0sYUssYUope2lmKGFNPDAuMDEpe3JldHVybjt9dmFyIGFMPXRoaXMuXyRVMlthT107dmFyIGFOPWFNPjAuOT9RLkVYUEFORF9XOjA7dGhpcy5nbC5kcmF3RWxlbWVudHMoYUwsYVAsYUksYVEsYU0sYU4sdGhpcy50cmFuc2Zvcm0sYUopO307eC5wcm90b3R5cGUuXyRScz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcIl8kUnNcIik7fTt4LnByb3RvdHlwZS5fJERzPWZ1bmN0aW9uKGFIKXt0aHJvdyBuZXcgRXJyb3IoXCJfJERzXCIpO307eC5wcm90b3R5cGUuXyRLMj1mdW5jdGlvbigpe2Zvcih2YXIgYUg9MDthSDx0aGlzLl8kc2IubGVuZ3RoO2FIKyspe3ZhciBhST10aGlzLl8kc2JbYUhdO2lmKGFJIT0wKXt0aGlzLmdsLl8kU3IoMSx0aGlzLl8kc2IsYUgpO3RoaXMuXyRzYlthSF09MDt9fX07eC5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbihhSSxhSCl7aWYodGhpcy5fJHNiLmxlbmd0aDxhSSsxKXt0aGlzLl8kblMoYUkpO310aGlzLl8kc2JbYUldPWFIO307eC5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbihhSCxhSSl7aWYodGhpcy5fJHNiLmxlbmd0aDxhSCsxKXt0aGlzLl8kblMoYUgpO310aGlzLl8kVTJbYUhdPWFJO307eC5wcm90b3R5cGUuXyRuUz1mdW5jdGlvbihhSCl7dmFyIGFLPU1hdGgubWF4KHRoaXMuXyRzYi5sZW5ndGgqMixhSCsxKzEwKTt2YXIgYUk9bmV3IEludDMyQXJyYXkoYUspO1AuXyRqVCh0aGlzLl8kc2IsMCxhSSwwLHRoaXMuXyRzYi5sZW5ndGgpO3RoaXMuXyRzYj1hSTt2YXIgYUo9bmV3IEFycmF5KCk7UC5fJGpUKHRoaXMuXyRVMiwwLGFKLDAsdGhpcy5fJFUyLmxlbmd0aCk7dGhpcy5fJFUyPWFKO307ZnVuY3Rpb24gYWIoKXtpZihqKXtyZXR1cm47fWMucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy5fJEdTPW51bGw7dGhpcy5fJFkwPW51bGw7fWFiLnByb3RvdHlwZT1uZXcgYygpO2FiLl8kWG89bmV3IEZsb2F0MzJBcnJheSgyKTthYi5fJGlvPW5ldyBGbG9hdDMyQXJyYXkoMik7YWIuXyQwbz1uZXcgRmxvYXQzMkFycmF5KDIpO2FiLl8kTG89bmV3IEZsb2F0MzJBcnJheSgyKTthYi5fJFRvPW5ldyBGbG9hdDMyQXJyYXkoMik7YWIuXyRQbz1uZXcgRmxvYXQzMkFycmF5KDIpO2FiLl8kZ1Q9bmV3IEFycmF5KCk7YWIucHJvdG90eXBlLl8kelA9ZnVuY3Rpb24oKXt0aGlzLl8kR1M9bmV3IGcoKTt0aGlzLl8kR1MuXyR6UCgpO3RoaXMuXyRZMD1uZXcgQXJyYXkoKTt9O2FiLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuXyRjMjt9O2FiLnByb3RvdHlwZS5fJEYwPWZ1bmN0aW9uKGFIKXtjLnByb3RvdHlwZS5fJEYwLmNhbGwodGhpcyxhSCk7dGhpcy5fJEdTPWFILl8kblAoKTt0aGlzLl8kWTA9YUguXyRuUCgpO2MucHJvdG90eXBlLnJlYWRWMl9vcGFjaXR5LmNhbGwodGhpcyxhSCk7fTthYi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhSCl7dmFyIGFJPW5ldyBhbCh0aGlzKTthSS5fJFlyPW5ldyBYKCk7aWYodGhpcy5fJDMyKCkpe2FJLl8kV3I9bmV3IFgoKTt9cmV0dXJuIGFJO307YWIucHJvdG90eXBlLl8kTnI9ZnVuY3Rpb24oYmYsYngpe2lmKCEoKHRoaXM9PWJ4Ll8kR1QoKSkpKXtjb25zb2xlLmxvZyhcIiMjIyBhc3NlcnQhISAjIyMgXCIpO312YXIgYm09Yng7aWYoIXRoaXMuXyRHUy5fJFVyKGJmKSl7cmV0dXJuO312YXIgYnc9YWIuXyRnVDtid1swXT1mYWxzZTt2YXIgYTI9dGhpcy5fJEdTLl8kUTIoYmYsYncpO2J4Ll8kSWIoYndbMF0pO3RoaXMuaW50ZXJwb2xhdGVPcGFjaXR5KGJmLHRoaXMuXyRHUyxieCxidyk7dmFyIGEzPWJmLl8kdnMoKTt2YXIgYmE9YmYuXyRUcigpO3RoaXMuXyRHUy5fJHpyKGEzLGJhLGEyKTtpZihhMjw9MCl7dmFyIGJuPXRoaXMuXyRZMFthM1swXV07Ym0uXyRZci5pbml0KGJuKTt9ZWxzZXtpZihhMj09MSl7dmFyIGJuPXRoaXMuXyRZMFthM1swXV07dmFyIGJsPXRoaXMuXyRZMFthM1sxXV07dmFyIGE5PWJhWzBdO2JtLl8kWXIuXyRmTD1ibi5fJGZMKyhibC5fJGZMLWJuLl8kZkwpKmE5O2JtLl8kWXIuXyRnTD1ibi5fJGdMKyhibC5fJGdMLWJuLl8kZ0wpKmE5O2JtLl8kWXIuXyRCMD1ibi5fJEIwKyhibC5fJEIwLWJuLl8kQjApKmE5O2JtLl8kWXIuXyR6MD1ibi5fJHowKyhibC5fJHowLWJuLl8kejApKmE5O2JtLl8kWXIuXyRxVD1ibi5fJHFUKyhibC5fJHFULWJuLl8kcVQpKmE5O31lbHNle2lmKGEyPT0yKXt2YXIgYm49dGhpcy5fJFkwW2EzWzBdXTt2YXIgYmw9dGhpcy5fJFkwW2EzWzFdXTt2YXIgYTE9dGhpcy5fJFkwW2EzWzJdXTt2YXIgYTA9dGhpcy5fJFkwW2EzWzNdXTt2YXIgYTk9YmFbMF07dmFyIGE4PWJhWzFdO3ZhciBiQz1ibi5fJGZMKyhibC5fJGZMLWJuLl8kZkwpKmE5O3ZhciBiQj1hMS5fJGZMKyhhMC5fJGZMLWExLl8kZkwpKmE5O2JtLl8kWXIuXyRmTD1iQysoYkItYkMpKmE4O2JDPWJuLl8kZ0wrKGJsLl8kZ0wtYm4uXyRnTCkqYTk7YkI9YTEuXyRnTCsoYTAuXyRnTC1hMS5fJGdMKSphOTtibS5fJFlyLl8kZ0w9YkMrKGJCLWJDKSphODtiQz1ibi5fJEIwKyhibC5fJEIwLWJuLl8kQjApKmE5O2JCPWExLl8kQjArKGEwLl8kQjAtYTEuXyRCMCkqYTk7Ym0uXyRZci5fJEIwPWJDKyhiQi1iQykqYTg7YkM9Ym4uXyR6MCsoYmwuXyR6MC1ibi5fJHowKSphOTtiQj1hMS5fJHowKyhhMC5fJHowLWExLl8kejApKmE5O2JtLl8kWXIuXyR6MD1iQysoYkItYkMpKmE4O2JDPWJuLl8kcVQrKGJsLl8kcVQtYm4uXyRxVCkqYTk7YkI9YTEuXyRxVCsoYTAuXyRxVC1hMS5fJHFUKSphOTtibS5fJFlyLl8kcVQ9YkMrKGJCLWJDKSphODt9ZWxzZXtpZihhMj09Myl7dmFyIGFQPXRoaXMuXyRZMFthM1swXV07dmFyIGFPPXRoaXMuXyRZMFthM1sxXV07dmFyIGJ1PXRoaXMuXyRZMFthM1syXV07dmFyIGJzPXRoaXMuXyRZMFthM1szXV07dmFyIGFLPXRoaXMuXyRZMFthM1s0XV07dmFyIGFKPXRoaXMuXyRZMFthM1s1XV07dmFyIGJqPXRoaXMuXyRZMFthM1s2XV07dmFyIGJpPXRoaXMuXyRZMFthM1s3XV07dmFyIGE5PWJhWzBdO3ZhciBhOD1iYVsxXTt2YXIgYTY9YmFbMl07dmFyIGJDPWFQLl8kZkwrKGFPLl8kZkwtYVAuXyRmTCkqYTk7dmFyIGJCPWJ1Ll8kZkwrKGJzLl8kZkwtYnUuXyRmTCkqYTk7dmFyIGJ6PWFLLl8kZkwrKGFKLl8kZkwtYUsuXyRmTCkqYTk7dmFyIGJ5PWJqLl8kZkwrKGJpLl8kZkwtYmouXyRmTCkqYTk7Ym0uXyRZci5fJGZMPSgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpO2JDPWFQLl8kZ0wrKGFPLl8kZ0wtYVAuXyRnTCkqYTk7YkI9YnUuXyRnTCsoYnMuXyRnTC1idS5fJGdMKSphOTtiej1hSy5fJGdMKyhhSi5fJGdMLWFLLl8kZ0wpKmE5O2J5PWJqLl8kZ0wrKGJpLl8kZ0wtYmouXyRnTCkqYTk7Ym0uXyRZci5fJGdMPSgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpO2JDPWFQLl8kQjArKGFPLl8kQjAtYVAuXyRCMCkqYTk7YkI9YnUuXyRCMCsoYnMuXyRCMC1idS5fJEIwKSphOTtiej1hSy5fJEIwKyhhSi5fJEIwLWFLLl8kQjApKmE5O2J5PWJqLl8kQjArKGJpLl8kQjAtYmouXyRCMCkqYTk7Ym0uXyRZci5fJEIwPSgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpO2JDPWFQLl8kejArKGFPLl8kejAtYVAuXyR6MCkqYTk7YkI9YnUuXyR6MCsoYnMuXyR6MC1idS5fJHowKSphOTtiej1hSy5fJHowKyhhSi5fJHowLWFLLl8kejApKmE5O2J5PWJqLl8kejArKGJpLl8kejAtYmouXyR6MCkqYTk7Ym0uXyRZci5fJHowPSgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpO2JDPWFQLl8kcVQrKGFPLl8kcVQtYVAuXyRxVCkqYTk7YkI9YnUuXyRxVCsoYnMuXyRxVC1idS5fJHFUKSphOTtiej1hSy5fJHFUKyhhSi5fJHFULWFLLl8kcVQpKmE5O2J5PWJqLl8kcVQrKGJpLl8kcVQtYmouXyRxVCkqYTk7Ym0uXyRZci5fJHFUPSgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpO31lbHNle2lmKGEyPT00KXt2YXIgYVQ9dGhpcy5fJFkwW2EzWzBdXTt2YXIgYVM9dGhpcy5fJFkwW2EzWzFdXTt2YXIgYkU9dGhpcy5fJFkwW2EzWzJdXTt2YXIgYkQ9dGhpcy5fJFkwW2EzWzNdXTt2YXIgYU49dGhpcy5fJFkwW2EzWzRdXTt2YXIgYU09dGhpcy5fJFkwW2EzWzVdXTt2YXIgYnA9dGhpcy5fJFkwW2EzWzZdXTt2YXIgYm89dGhpcy5fJFkwW2EzWzddXTt2YXIgYmg9dGhpcy5fJFkwW2EzWzhdXTt2YXIgYmc9dGhpcy5fJFkwW2EzWzldXTt2YXIgYVk9dGhpcy5fJFkwW2EzWzEwXV07dmFyIGFXPXRoaXMuXyRZMFthM1sxMV1dO3ZhciBhNz10aGlzLl8kWTBbYTNbMTJdXTt2YXIgYTU9dGhpcy5fJFkwW2EzWzEzXV07dmFyIGFSPXRoaXMuXyRZMFthM1sxNF1dO3ZhciBhUT10aGlzLl8kWTBbYTNbMTVdXTt2YXIgYTk9YmFbMF07dmFyIGE4PWJhWzFdO3ZhciBhNj1iYVsyXTt2YXIgYTQ9YmFbM107dmFyIGJDPWFULl8kZkwrKGFTLl8kZkwtYVQuXyRmTCkqYTk7dmFyIGJCPWJFLl8kZkwrKGJELl8kZkwtYkUuXyRmTCkqYTk7dmFyIGJ6PWFOLl8kZkwrKGFNLl8kZkwtYU4uXyRmTCkqYTk7dmFyIGJ5PWJwLl8kZkwrKGJvLl8kZkwtYnAuXyRmTCkqYTk7dmFyIGJ2PWJoLl8kZkwrKGJnLl8kZkwtYmguXyRmTCkqYTk7dmFyIGJ0PWFZLl8kZkwrKGFXLl8kZkwtYVkuXyRmTCkqYTk7dmFyIGJyPWE3Ll8kZkwrKGE1Ll8kZkwtYTcuXyRmTCkqYTk7dmFyIGJxPWFSLl8kZkwrKGFRLl8kZkwtYVIuXyRmTCkqYTk7Ym0uXyRZci5fJGZMPSgxLWE0KSooKDEtYTYpKihiQysoYkItYkMpKmE4KSthNiooYnorKGJ5LWJ6KSphOCkpK2E0KigoMS1hNikqKGJ2KyhidC1idikqYTgpK2E2KihicisoYnEtYnIpKmE4KSk7YkM9YVQuXyRnTCsoYVMuXyRnTC1hVC5fJGdMKSphOTtiQj1iRS5fJGdMKyhiRC5fJGdMLWJFLl8kZ0wpKmE5O2J6PWFOLl8kZ0wrKGFNLl8kZ0wtYU4uXyRnTCkqYTk7Ynk9YnAuXyRnTCsoYm8uXyRnTC1icC5fJGdMKSphOTtidj1iaC5fJGdMKyhiZy5fJGdMLWJoLl8kZ0wpKmE5O2J0PWFZLl8kZ0wrKGFXLl8kZ0wtYVkuXyRnTCkqYTk7YnI9YTcuXyRnTCsoYTUuXyRnTC1hNy5fJGdMKSphOTticT1hUi5fJGdMKyhhUS5fJGdMLWFSLl8kZ0wpKmE5O2JtLl8kWXIuXyRnTD0oMS1hNCkqKCgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpKSthNCooKDEtYTYpKihidisoYnQtYnYpKmE4KSthNiooYnIrKGJxLWJyKSphOCkpO2JDPWFULl8kQjArKGFTLl8kQjAtYVQuXyRCMCkqYTk7YkI9YkUuXyRCMCsoYkQuXyRCMC1iRS5fJEIwKSphOTtiej1hTi5fJEIwKyhhTS5fJEIwLWFOLl8kQjApKmE5O2J5PWJwLl8kQjArKGJvLl8kQjAtYnAuXyRCMCkqYTk7YnY9YmguXyRCMCsoYmcuXyRCMC1iaC5fJEIwKSphOTtidD1hWS5fJEIwKyhhVy5fJEIwLWFZLl8kQjApKmE5O2JyPWE3Ll8kQjArKGE1Ll8kQjAtYTcuXyRCMCkqYTk7YnE9YVIuXyRCMCsoYVEuXyRCMC1hUi5fJEIwKSphOTtibS5fJFlyLl8kQjA9KDEtYTQpKigoMS1hNikqKGJDKyhiQi1iQykqYTgpK2E2KihieisoYnktYnopKmE4KSkrYTQqKCgxLWE2KSooYnYrKGJ0LWJ2KSphOCkrYTYqKGJyKyhicS1icikqYTgpKTtiQz1hVC5fJHowKyhhUy5fJHowLWFULl8kejApKmE5O2JCPWJFLl8kejArKGJELl8kejAtYkUuXyR6MCkqYTk7Yno9YU4uXyR6MCsoYU0uXyR6MC1hTi5fJHowKSphOTtieT1icC5fJHowKyhiby5fJHowLWJwLl8kejApKmE5O2J2PWJoLl8kejArKGJnLl8kejAtYmguXyR6MCkqYTk7YnQ9YVkuXyR6MCsoYVcuXyR6MC1hWS5fJHowKSphOTticj1hNy5fJHowKyhhNS5fJHowLWE3Ll8kejApKmE5O2JxPWFSLl8kejArKGFRLl8kejAtYVIuXyR6MCkqYTk7Ym0uXyRZci5fJHowPSgxLWE0KSooKDEtYTYpKihiQysoYkItYkMpKmE4KSthNiooYnorKGJ5LWJ6KSphOCkpK2E0KigoMS1hNikqKGJ2KyhidC1idikqYTgpK2E2KihicisoYnEtYnIpKmE4KSk7YkM9YVQuXyRxVCsoYVMuXyRxVC1hVC5fJHFUKSphOTtiQj1iRS5fJHFUKyhiRC5fJHFULWJFLl8kcVQpKmE5O2J6PWFOLl8kcVQrKGFNLl8kcVQtYU4uXyRxVCkqYTk7Ynk9YnAuXyRxVCsoYm8uXyRxVC1icC5fJHFUKSphOTtidj1iaC5fJHFUKyhiZy5fJHFULWJoLl8kcVQpKmE5O2J0PWFZLl8kcVQrKGFXLl8kcVQtYVkuXyRxVCkqYTk7YnI9YTcuXyRxVCsoYTUuXyRxVC1hNy5fJHFUKSphOTticT1hUi5fJHFUKyhhUS5fJHFULWFSLl8kcVQpKmE5O2JtLl8kWXIuXyRxVD0oMS1hNCkqKCgxLWE2KSooYkMrKGJCLWJDKSphOCkrYTYqKGJ6KyhieS1ieikqYTgpKSthNCooKDEtYTYpKihidisoYnQtYnYpKmE4KSthNiooYnIrKGJxLWJyKSphOCkpO31lbHNle3ZhciBhVj1NYXRoLnBvdygyLGEyKXwwO3ZhciBhWj1uZXcgRmxvYXQzMkFycmF5KGFWKTtmb3IodmFyIGJrPTA7Yms8YVY7YmsrKyl7dmFyIGFJPWJrO3ZhciBhSD0xO2Zvcih2YXIgYUw9MDthTDxhMjthTCsrKXthSCo9KGFJJTI9PTApPygxLWJhW2FMXSk6YmFbYUxdO2FJLz0yO31hWltia109YUg7fXZhciBiQT1uZXcgQXJyYXkoKTtmb3IodmFyIGFVPTA7YVU8YVY7YVUrKyl7YkFbYVVdPXRoaXMuXyRZMFthM1thVV1dO312YXIgYmU9MCxiYz0wLGJkPTAsYmI9MCxhWD0wO2Zvcih2YXIgYVU9MDthVTxhVjthVSsrKXtiZSs9YVpbYVVdKmJBW2FVXS5fJGZMO2JjKz1hWlthVV0qYkFbYVVdLl8kZ0w7YmQrPWFaW2FVXSpiQVthVV0uXyRCMDtiYis9YVpbYVVdKmJBW2FVXS5fJHowO2FYKz1hWlthVV0qYkFbYVVdLl8kcVQ7fWJtLl8kWXIuXyRmTD1iZTtibS5fJFlyLl8kZ0w9YmM7Ym0uXyRZci5fJEIwPWJkO2JtLl8kWXIuXyR6MD1iYjtibS5fJFlyLl8kcVQ9YVg7fX19fX12YXIgYm49dGhpcy5fJFkwW2EzWzBdXTtibS5fJFlyLnJlZmxlY3RYPWJuLnJlZmxlY3RYO2JtLl8kWXIucmVmbGVjdFk9Ym4ucmVmbGVjdFk7fTthYi5wcm90b3R5cGUuXyQyYj1mdW5jdGlvbihhTSxhSCl7aWYoISgodGhpcz09YUguXyRHVCgpKSkpe2NvbnNvbGUubG9nKFwiIyMjIGFzc2VydCEhICMjIyBcIik7fXZhciBhUj1hSDthUi5fJGhTKHRydWUpO2lmKCF0aGlzLl8kMzIoKSl7YVIuc2V0VG90YWxTY2FsZV9ub3RGb3JDbGllbnQoYVIuXyRZci5fJEIwKTthUi5zZXRUb3RhbE9wYWNpdHkoYVIuZ2V0SW50ZXJwb2xhdGVkT3BhY2l0eSgpKTt9ZWxzZXt2YXIgYVQ9dGhpcy5nZXRUYXJnZXRCYXNlRGF0YUlEKCk7aWYoYVIuXyQ4cj09Yy5fJHVyKXthUi5fJDhyPWFNLmdldEJhc2VEYXRhSW5kZXgoYVQpO31pZihhUi5fJDhyPDApe2lmKFEuXyRzbyl7cS5fJGxpKFwiXyRMIF8kMFAgXyRHIDo6ICVzXCIsYVQpO31hUi5fJGhTKGZhbHNlKTt9ZWxzZXt2YXIgYUk9YU0uZ2V0QmFzZURhdGEoYVIuXyQ4cik7aWYoYUkhPW51bGwpe3ZhciBhTD1hTS5fJHEyKGFSLl8kOHIpO3ZhciBhUz1hYi5fJFhvO2FTWzBdPWFSLl8kWXIuXyRmTDthU1sxXT1hUi5fJFlyLl8kZ0w7dmFyIGFKPWFiLl8kaW87YUpbMF09MDthSlsxXT0tMC4xO3ZhciBhTz1hTC5fJEdUKCkuZ2V0VHlwZSgpO2lmKGFPPT1jLl8kYzIpe2FKWzFdPS0xMDt9ZWxzZXthSlsxXT0tMC4xO312YXIgYVE9YWIuXyQwbzt0aGlzLl8kSnIoYU0sYUksYUwsYVMsYUosYVEpO3ZhciBhUD1hQy5fJDkyKGFKLGFRKTthSS5fJG5iKGFNLGFMLGFTLGFTLDEsMCwyKTthUi5fJFdyLl8kZkw9YVNbMF07YVIuXyRXci5fJGdMPWFTWzFdO2FSLl8kV3IuXyRCMD1hUi5fJFlyLl8kQjA7YVIuXyRXci5fJHowPWFSLl8kWXIuXyR6MDthUi5fJFdyLl8kcVQ9YVIuXyRZci5fJHFULWFQKmFDLl8kTlM7dmFyIGFLPWFMLmdldFRvdGFsU2NhbGUoKTthUi5zZXRUb3RhbFNjYWxlX25vdEZvckNsaWVudChhSyphUi5fJFdyLl8kQjApO3ZhciBhTj1hTC5nZXRUb3RhbE9wYWNpdHkoKTthUi5zZXRUb3RhbE9wYWNpdHkoYU4qYVIuZ2V0SW50ZXJwb2xhdGVkT3BhY2l0eSgpKTthUi5fJFdyLnJlZmxlY3RYPWFSLl8kWXIucmVmbGVjdFg7YVIuXyRXci5yZWZsZWN0WT1hUi5fJFlyLnJlZmxlY3RZO2FSLl8kaFMoYUwuXyR5bygpKTt9ZWxzZXthUi5fJGhTKGZhbHNlKTt9fX19O2FiLnByb3RvdHlwZS5fJG5iPWZ1bmN0aW9uKGFKLGFSLGFMLGE0LGFULGFPLGEyKXtpZighKCh0aGlzPT1hUi5fJEdUKCkpKSl7Y29uc29sZS5sb2coXCIjIyMgYXNzZXJ0ISEgIyMjIFwiKTt9dmFyIGFIPWFSO3ZhciBhVT1hSC5fJFdyIT1udWxsP2FILl8kV3I6YUguXyRZcjt2YXIgYTA9TWF0aC5zaW4oYUMuXyRiUyphVS5fJHFUKTt2YXIgYVA9TWF0aC5jb3MoYUMuXyRiUyphVS5fJHFUKTt2YXIgYTM9YUguZ2V0VG90YWxTY2FsZSgpO3ZhciBhVz1hVS5yZWZsZWN0WD8tMToxO3ZhciBhVj1hVS5yZWZsZWN0WT8tMToxO3ZhciBhUz1hUCphMyphVzt2YXIgYVE9LWEwKmEzKmFWO3ZhciBhMT1hMCphMyphVzt2YXIgYVo9YVAqYTMqYVY7dmFyIGFZPWFVLl8kZkw7dmFyIGFYPWFVLl8kZ0w7dmFyIGFOLGFNO3ZhciBhST1hVCphMjtmb3IodmFyIGFLPWFPO2FLPGFJO2FLKz1hMil7YU49YUxbYUtdO2FNPWFMW2FLKzFdO2E0W2FLXT1hUyphTithUSphTSthWTthNFthSysxXT1hMSphTithWiphTSthWDt9fTthYi5wcm90b3R5cGUuXyRKcj1mdW5jdGlvbihhUCxhSyxhSSxhUixhUSxhSCl7aWYoISgoYUs9PWFJLl8kR1QoKSkpKXtjb25zb2xlLmxvZyhcIiMjIyBhc3NlcnQhISAjIyMgXCIpO312YXIgYU89YWIuXyRMbzthYi5fJExvWzBdPWFSWzBdO2FiLl8kTG9bMV09YVJbMV07YUsuXyRuYihhUCxhSSxhTyxhTywxLDAsMik7dmFyIGFMPWFiLl8kVG87dmFyIGFTPWFiLl8kUG87dmFyIGFOPTEwO3ZhciBhSj0xO2Zvcih2YXIgYU09MDthTTxhTjthTSsrKXthU1swXT1hUlswXSthSiphUVswXTthU1sxXT1hUlsxXSthSiphUVsxXTthSy5fJG5iKGFQLGFJLGFTLGFMLDEsMCwyKTthTFswXS09YU9bMF07YUxbMV0tPWFPWzFdO2lmKGFMWzBdIT0wfHxhTFsxXSE9MCl7YUhbMF09YUxbMF07YUhbMV09YUxbMV07cmV0dXJuO31hU1swXT1hUlswXS1hSiphUVswXTthU1sxXT1hUlsxXS1hSiphUVsxXTthSy5fJG5iKGFQLGFJLGFTLGFMLDEsMCwyKTthTFswXS09YU9bMF07YUxbMV0tPWFPWzFdO2lmKGFMWzBdIT0wfHxhTFsxXSE9MCl7YUxbMF09LWFMWzBdO2FMWzBdPS1hTFswXTthSFswXT1hTFswXTthSFsxXT1hTFsxXTtyZXR1cm47fWFKKj0wLjE7fWlmKFEuXyRzbyl7Y29uc29sZS5sb2coXCJfJEwwIHRvIHRyYW5zZm9ybSBfJFNQXFxuXCIpO319O2Z1bmN0aW9uIGFsKGFIKXtCLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsYUgpO3RoaXMuXyQ4cj1jLl8kdXI7dGhpcy5fJFlyPW51bGw7dGhpcy5fJFdyPW51bGw7fWFsLnByb3RvdHlwZT1uZXcgQigpO2Z1bmN0aW9uIGEoKXtpZihqKXtyZXR1cm47fWFlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMpO3RoaXMuXyRnUD1udWxsO3RoaXMuXyRkcj1udWxsO3RoaXMuXyRHUz1udWxsO3RoaXMuXyRxYj1udWxsO3RoaXMuXyRMYj1udWxsO3RoaXMuXyRtUz1udWxsO31hLnByb3RvdHlwZT1uZXcgYWUoKTthLl8kdXI9LTI7YS5fJEVTPTUwMDthLl8kd2I9MjthLl8kOFM9MzthLl8kb3M9NDthLl8kNTI9YS5fJEVTO2EuXyRSMj1hLl8kRVM7YS5fJFNiPWZ1bmN0aW9uKGFKKXtmb3IodmFyIGFJPWFKLmxlbmd0aC0xO2FJPj0wOy0tYUkpe3ZhciBhSD1hSlthSV07aWYoYUg8YS5fJDUyKXthLl8kNTI9YUg7fWVsc2V7aWYoYUg+YS5fJFIyKXthLl8kUjI9YUg7fX19fTthLl8kb3I9ZnVuY3Rpb24oKXtyZXR1cm4gYS5fJDUyO307YS5fJFByPWZ1bmN0aW9uKCl7cmV0dXJuIGEuXyRSMjt9O2EucHJvdG90eXBlLl8kRjA9ZnVuY3Rpb24oYUgpe3RoaXMuXyRnUD1hSC5fJG5QKCk7dGhpcy5fJGRyPWFILl8kblAoKTt0aGlzLl8kR1M9YUguXyRuUCgpO3RoaXMuXyRxYj1hSC5fJDZMKCk7dGhpcy5fJExiPWFILl8kY1MoKTt0aGlzLl8kbVM9YUguXyRUYigpO2lmKGFILmdldEZvcm1hdFZlcnNpb24oKT49YXkuXyRUNyl7dGhpcy5jbGlwSUQ9YUguXyRuUCgpO3RoaXMuY2xpcElETGlzdD10aGlzLmNvbnZlcnRDbGlwSURGb3JWMl8xMSh0aGlzLmNsaXBJRCk7fWVsc2V7dGhpcy5jbGlwSURMaXN0PW51bGw7fWEuXyRTYih0aGlzLl8kTGIpO307YS5wcm90b3R5cGUuZ2V0Q2xpcElETGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsaXBJRExpc3Q7fTthLnByb3RvdHlwZS5fJE5yPWZ1bmN0aW9uKGFJLGFIKXthSC5fJElTWzBdPWZhbHNlO2FILl8kVXM9YUcuXyRaMihhSSx0aGlzLl8kR1MsYUguXyRJUyx0aGlzLl8kTGIpO2lmKFEuXyRacyl7fWVsc2V7aWYoYUguXyRJU1swXSl7cmV0dXJuO319YUguXyQ3cz1hRy5fJGJyKGFJLHRoaXMuXyRHUyxhSC5fJElTLHRoaXMuXyRtUyk7fTthLnByb3RvdHlwZS5fJDJiPWZ1bmN0aW9uKGFIKXt9O2EucHJvdG90eXBlLmdldERyYXdEYXRhSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGdQO307YS5wcm90b3R5cGUuXyRqMj1mdW5jdGlvbihhSCl7dGhpcy5fJGdQPWFIO307YS5wcm90b3R5cGUuZ2V0T3BhY2l0eT1mdW5jdGlvbihhSCxhSSl7cmV0dXJuIGFJLl8kN3M7fTthLnByb3RvdHlwZS5fJHpTPWZ1bmN0aW9uKGFILGFJKXtyZXR1cm4gYUkuXyRVczt9O2EucHJvdG90eXBlLmdldFRhcmdldEJhc2VEYXRhSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGRyO307YS5wcm90b3R5cGUuXyRncz1mdW5jdGlvbihhSCl7dGhpcy5fJGRyPWFIO307YS5wcm90b3R5cGUuXyQzMj1mdW5jdGlvbigpe3JldHVybih0aGlzLl8kZHIhPW51bGwmJih0aGlzLl8kZHIhPW4uXyQybygpKSk7fTthLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBhcSgpe2lmKGope3JldHVybjt9dGhpcy5fJE5MPW51bGw7dGhpcy5fJDNTPW51bGw7dGhpcy5fJGFTPW51bGw7YXEuXyQ0MisrO31hcS5fJDQyPTA7YXEucHJvdG90eXBlLl8kMWI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDNTO307YXEucHJvdG90eXBlLmdldERyYXdEYXRhTGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kYVM7fTthcS5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSCl7dGhpcy5fJE5MPWFILl8kblAoKTt0aGlzLl8kYVM9YUguXyRuUCgpO3RoaXMuXyQzUz1hSC5fJG5QKCk7fTthcS5wcm90b3R5cGUuXyRrcj1mdW5jdGlvbihhSCl7YUguXyRabyh0aGlzLl8kM1MpO2FILl8keG8odGhpcy5fJGFTKTt0aGlzLl8kM1M9bnVsbDt0aGlzLl8kYVM9bnVsbDt9O2Z1bmN0aW9uIHYoKXtpZihqKXtyZXR1cm47fWFhLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMpO3RoaXMuXyR6bz1uZXcgeCgpO312LnByb3RvdHlwZT1uZXcgYWEoKTt2LmxvYWRNb2RlbD1mdW5jdGlvbihhSSl7dmFyIGFIPW5ldyB2KCk7YWEuXyQ2MihhSCxhSSk7cmV0dXJuIGFIO307di5sb2FkTW9kZWw9ZnVuY3Rpb24oYUkpe3ZhciBhSD1uZXcgdigpO2FhLl8kNjIoYUgsYUkpO3JldHVybiBhSDt9O3YuXyR0bz1mdW5jdGlvbigpe3ZhciBhSD1uZXcgdigpO3JldHVybiBhSDt9O3YuXyRlcj1mdW5jdGlvbihhTSl7dmFyIGFKPW5ldyBfJDUoXCIuLi9fJF9yL18kdDAvXyRSaS9fJF9QLl8kZFwiKTtpZihhSi5leGlzdHMoKT09ZmFsc2Upe3Rocm93IG5ldyBfJGxzKFwiXyR0MCBfJF8gXyQ2IF8kVWkgOjogXCIrYUouXyRQTCgpKTt9dmFyIGFIPVtcIi4uL18kX3IvXyR0MC9fJFJpL18kX1AuNTEyL18kQ1AuXyQxXCIsXCIuLi9fJF9yL18kdDAvXyRSaS9fJF9QLjUxMi9fJHZQLl8kMVwiLFwiLi4vXyRfci9fJHQwL18kUmkvXyRfUC41MTIvXyRFUC5fJDFcIixcIi4uL18kX3IvXyR0MC9fJFJpL18kX1AuNTEyL18kcFAuXyQxXCJdO3ZhciBhSz12LmxvYWRNb2RlbChhSi5fJDNiKCkpO2Zvcih2YXIgYUk9MDthSTxhSC5sZW5ndGg7YUkrKyl7dmFyIGFMPW5ldyBfJDUoYUhbYUldKTtpZihhTC5leGlzdHMoKT09ZmFsc2Upe3Rocm93IG5ldyBfJGxzKFwiXyR0MCBfJF8gXyQ2IF8kVWkgOjogXCIrYUwuXyRQTCgpKTt9YUsuc2V0VGV4dHVyZShhSSxfJG5MLl8kX28oYU0sYUwuXyQzYigpKSk7fXJldHVybiBhSzt9O3YucHJvdG90eXBlLnNldEdMPWZ1bmN0aW9uKGFIKXt0aGlzLl8kem8uc2V0R0woYUgpO307di5wcm90b3R5cGUuc2V0VHJhbnNmb3JtPWZ1bmN0aW9uKGFIKXt0aGlzLl8kem8uc2V0VHJhbnNmb3JtKGFIKTt9O3YucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXt0aGlzLl8kNVMuZHJhdyh0aGlzLl8kem8pO307di5wcm90b3R5cGUuXyRLMj1mdW5jdGlvbigpe3RoaXMuXyR6by5fJEsyKCk7fTt2LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKGFJLGFIKXtpZih0aGlzLl8kem89PW51bGwpe3EuXyRsaShcIl8kWWkgZm9yIFFUIF8ka2kgLyBfJFhTKCkgaXMgXyQ2IF8kdWkhIVwiKTt9dGhpcy5fJHpvLnNldFRleHR1cmUoYUksYUgpO307di5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbihhSSxhSCl7aWYodGhpcy5fJHpvPT1udWxsKXtxLl8kbGkoXCJfJFlpIGZvciBRVCBfJGtpIC8gXyRYUygpIGlzIF8kNiBfJHVpISFcIik7fXRoaXMuXyR6by5zZXRUZXh0dXJlKGFJLGFIKTt9O3YucHJvdG90eXBlLl8kUnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJHpvLl8kUnMoKTt9O3YucHJvdG90eXBlLl8kRHM9ZnVuY3Rpb24oYUgpe3RoaXMuXyR6by5fJERzKGFIKTt9O3YucHJvdG90eXBlLmdldERyYXdQYXJhbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kem87fTtmdW5jdGlvbiBhbygpe2lmKGope3JldHVybjt9YWgucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy5tb3Rpb25zPW5ldyBBcnJheSgpO3RoaXMuXyRvMj1udWxsO3RoaXMuXyQ3cj1hby5fJENvKys7dGhpcy5fJEQwPTMwO3RoaXMuXyR5VD0wO3RoaXMuXyRFPWZhbHNlO3RoaXMubG9vcEZhZGVJbj10cnVlO3RoaXMuXyRycj0tMTt0aGlzLl8kZVA9MDt9YW8ucHJvdG90eXBlPW5ldyBhaCgpO2FvLl8kY3M9XCJWSVNJQkxFOlwiO2FvLl8kYXI9XCJMQVlPVVQ6XCI7YW8uTVROX1BSRUZJWF9GQURFSU49XCJGQURFSU46XCI7YW8uTVROX1BSRUZJWF9GQURFT1VUPVwiRkFERU9VVDpcIjthby5fJENvPTA7YW8uXyQxVD0xO2FvLmxvYWRNb3Rpb249ZnVuY3Rpb24oYUope3ZhciBhST1hcC5fJEMoYUopO3ZhciBhSD1hby5sb2FkTW90aW9uKGFJKTtyZXR1cm4gYUg7fTtmdW5jdGlvbiBwKGFJLGFIKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShhSS5nZXRVaW50OChhSCkpO31hby5sb2FkTW90aW9uPWZ1bmN0aW9uKGFUKXtpZihhVCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXthVD1uZXcgRGF0YVZpZXcoYVQpO312YXIgYU49bmV3IGFvKCk7dmFyIGFJPVswXTt2YXIgYVE9YVQuYnl0ZUxlbmd0aDthTi5fJHlUPTA7Zm9yKHZhciBhSj0wO2FKPGFROysrYUope3ZhciBhUz1wKGFULGFKKTt2YXIgYUw9YVMuY2hhckNvZGVBdCgwKTtpZihhUz09XCJcXG5cInx8YVM9PVwiXFxyXCIpe2NvbnRpbnVlO31pZihhUz09XCIjXCIpe2Zvcig7YUo8YVE7KythSil7aWYocChhVCxhSik9PVwiXFxuXCJ8fHAoYVQsYUopPT1cIlxcclwiKXticmVhazt9fWNvbnRpbnVlO31pZihhUz09XCIkXCIpe3ZhciBhVj1hSjt2YXIgYUs9LTE7Zm9yKDthSjxhUTsrK2FKKXthUz1wKGFULGFKKTtpZihhUz09XCJcXHJcInx8YVM9PVwiXFxuXCIpe2JyZWFrO31pZihhUz09XCI9XCIpe2FLPWFKO2JyZWFrO319dmFyIGFQPWZhbHNlO2lmKGFLPj0wKXtpZihhSz09YVYrNCYmcChhVCxhVisxKT09XCJmXCImJnAoYVQsYVYrMik9PVwicFwiJiZwKGFULGFWKzMpPT1cInNcIil7YVA9dHJ1ZTt9Zm9yKGFKPWFLKzE7YUo8YVE7KythSil7YVM9cChhVCxhSik7aWYoYVM9PVwiXFxyXCJ8fGFTPT1cIlxcblwiKXticmVhazt9aWYoYVM9PVwiLFwifHxhUz09XCIgXCJ8fGFTPT1cIlxcdFwiKXtjb250aW51ZTt9dmFyIGFNPUcuXyRMUyhhVCxhUSxhSixhSSk7aWYoYUlbMF0+MCl7aWYoYVAmJjU8YU0mJmFNPDEyMSl7YU4uXyREMD1hTTt9fWFKPWFJWzBdO319Zm9yKDthSjxhUTsrK2FKKXtpZihwKGFULGFKKT09XCJcXG5cInx8cChhVCxhSik9PVwiXFxyXCIpe2JyZWFrO319Y29udGludWU7fWlmKCg5Nzw9YUwmJmFMPD0xMjIpfHwoNjU8PWFMJiZhTDw9OTApfHxhUz09XCJfXCIpe3ZhciBhVj1hSjt2YXIgYUs9LTE7Zm9yKDthSjxhUTsrK2FKKXthUz1wKGFULGFKKTtpZihhUz09XCJcXHJcInx8YVM9PVwiXFxuXCIpe2JyZWFrO31pZihhUz09XCI9XCIpe2FLPWFKO2JyZWFrO319aWYoYUs+PTApe3ZhciBhTz1uZXcgdCgpO2lmKEcuc3RhcnRzV2l0aChhVCxhVixhby5fJGNzKSl7YU8uXyRSUD10Ll8kaHM7YU8uXyQ0UD1HLmNyZWF0ZVN0cmluZyhhVCxhVixhSy1hVik7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFULGFWLGFvLl8kYXIpKXthTy5fJDRQPUcuY3JlYXRlU3RyaW5nKGFULGFWKzcsYUstYVYtNyk7aWYoRy5zdGFydHNXaXRoKGFULGFWKzcsXCJBTkNIT1JfWFwiKSl7YU8uXyRSUD10Ll8keHM7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFULGFWKzcsXCJBTkNIT1JfWVwiKSl7YU8uXyRSUD10Ll8kdXM7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFULGFWKzcsXCJTQ0FMRV9YXCIpKXthTy5fJFJQPXQuXyRxczt9ZWxzZXtpZihHLnN0YXJ0c1dpdGgoYVQsYVYrNyxcIlNDQUxFX1lcIikpe2FPLl8kUlA9dC5fJFlzO31lbHNle2lmKEcuc3RhcnRzV2l0aChhVCxhVis3LFwiWFwiKSl7YU8uXyRSUD10Ll8kd3M7fWVsc2V7aWYoRy5zdGFydHNXaXRoKGFULGFWKzcsXCJZXCIpKXthTy5fJFJQPXQuXyROczt9fX19fX19ZWxzZXthTy5fJFJQPXQuXyRGcjthTy5fJDRQPUcuY3JlYXRlU3RyaW5nKGFULGFWLGFLLWFWKTt9fWFOLm1vdGlvbnMucHVzaChhTyk7dmFyIGFVPTA7dmFyIGFSPVtdO2ZvcihhSj1hSysxO2FKPGFROysrYUope2FTPXAoYVQsYUopO2lmKGFTPT1cIlxcclwifHxhUz09XCJcXG5cIil7YnJlYWs7fWlmKGFTPT1cIixcInx8YVM9PVwiIFwifHxhUz09XCJcXHRcIil7Y29udGludWU7fXZhciBhTT1HLl8kTFMoYVQsYVEsYUosYUkpO2lmKGFJWzBdPjApe2FSLnB1c2goYU0pO2FVKys7dmFyIGFIPWFJWzBdO2lmKGFIPGFKKXtjb25zb2xlLmxvZyhcIl8kbjAgXyRoaSAuIEBMaXZlMkRNb3Rpb24gbG9hZE1vdGlvbigpXFxuXCIpO2JyZWFrO31hSj1hSC0xO319YU8uXyRJMD1uZXcgRmxvYXQzMkFycmF5KGFSKTtpZihhVT5hTi5fJHlUKXthTi5fJHlUPWFVO319fX1hTi5fJHJyPSgoMTAwMCphTi5fJHlUKS9hTi5fJEQwKXwwO3JldHVybiBhTjt9O2FvLnByb3RvdHlwZS5nZXREdXJhdGlvbk1TZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJEU/LTE6dGhpcy5fJHJyO307YW8ucHJvdG90eXBlLmdldExvb3BEdXJhdGlvbk1TZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJHJyO307YW8ucHJvdG90eXBlLmR1bXA9ZnVuY3Rpb24oKXtmb3IodmFyIGFKPTA7YUo8dGhpcy5tb3Rpb25zLmxlbmd0aDthSisrKXt2YXIgYUg9dGhpcy5tb3Rpb25zW2FKXTtjb25zb2xlLmxvZyhcIl8kd0xbJXNdIFslZF0uIFwiLGFILl8kNFAsYUguXyRJMC5sZW5ndGgpO2Zvcih2YXIgYUk9MDthSTxhSC5fJEkwLmxlbmd0aCYmYUk8MTA7YUkrKyl7Y29uc29sZS5sb2coXCIlNS4yZiAsXCIsYUguXyRJMFthSV0pO31jb25zb2xlLmxvZyhcIlxcblwiKTt9fTthby5wcm90b3R5cGUudXBkYXRlUGFyYW1FeGU9ZnVuY3Rpb24oYUosYU4sYVEsYTMpe3ZhciBhTz1hTi1hMy5fJHoyO3ZhciBhMD1hTyp0aGlzLl8kRDAvMTAwMDt2YXIgYUs9YTB8MDt2YXIgYVI9YTAtYUs7Zm9yKHZhciBhWj0wO2FaPHRoaXMubW90aW9ucy5sZW5ndGg7YVorKyl7dmFyIGFWPXRoaXMubW90aW9uc1thWl07dmFyIGFMPWFWLl8kSTAubGVuZ3RoO3ZhciBhVD1hVi5fJDRQO2lmKGFWLl8kUlA9PXQuXyRocyl7dmFyIGFYPWFWLl8kSTBbKGFLPj1hTD9hTC0xOmFLKV07YUouc2V0UGFyYW1GbG9hdChhVCxhWCk7fWVsc2V7aWYodC5fJHdzPD1hVi5fJFJQJiZhVi5fJFJQPD10Ll8kWXMpe31lbHNle3ZhciBhSD1hSi5nZXRQYXJhbUluZGV4KGFUKTt2YXIgYTQ9YUouZ2V0TW9kZWxDb250ZXh0KCk7dmFyIGFZPWE0LmdldFBhcmFtTWF4KGFIKTt2YXIgYVc9YTQuZ2V0UGFyYW1NaW4oYUgpO3ZhciBhTT0wLjQ7dmFyIGFTPWFNKihhWS1hVyk7dmFyIGFVPWE0LmdldFBhcmFtRmxvYXQoYUgpO3ZhciBhMj1hVi5fJEkwWyhhSz49YUw/YUwtMTphSyldO3ZhciBhMT1hVi5fJEkwWyhhSysxPj1hTD9hTC0xOmFLKzEpXTt2YXIgYUk7aWYoKGEyPGExJiZhMS1hMj5hUyl8fChhMj5hMSYmYTItYTE+YVMpKXthST1hMjt9ZWxzZXthST1hMisoYTEtYTIpKmFSO312YXIgYVA9YVUrKGFJLWFVKSphUTthSi5zZXRQYXJhbUZsb2F0KGFULGFQKTt9fX1pZihhSz49dGhpcy5fJHlUKXtpZih0aGlzLl8kRSl7YTMuXyR6Mj1hTjtpZih0aGlzLmxvb3BGYWRlSW4pe2EzLl8kYnM9YU47fX1lbHNle2EzLl8kOUw9dHJ1ZTt9fXRoaXMuXyRlUD1hUTt9O2FvLnByb3RvdHlwZS5fJHIwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRFO307YW8ucHJvdG90eXBlLl8kYUw9ZnVuY3Rpb24oYUgpe3RoaXMuXyRFPWFIO307YW8ucHJvdG90eXBlLl8kUzA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJEQwO307YW8ucHJvdG90eXBlLl8kVTA9ZnVuY3Rpb24oYUgpe3RoaXMuXyREMD1hSDt9O2FvLnByb3RvdHlwZS5pc0xvb3BGYWRlSW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb29wRmFkZUluO307YW8ucHJvdG90eXBlLnNldExvb3BGYWRlSW49ZnVuY3Rpb24oYUgpe3RoaXMubG9vcEZhZGVJbj1hSDt9O2Z1bmN0aW9uIGFFKCl7dGhpcy5fJFA9bmV3IEZsb2F0MzJBcnJheSgxMDApO3RoaXMuc2l6ZT0wO31hRS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MDt9O2FFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYUkpe2lmKHRoaXMuXyRQLmxlbmd0aDw9dGhpcy5zaXplKXt2YXIgYUg9bmV3IEZsb2F0MzJBcnJheSh0aGlzLnNpemUqMik7UC5fJGpUKHRoaXMuXyRQLDAsYUgsMCx0aGlzLnNpemUpO3RoaXMuXyRQPWFIO310aGlzLl8kUFt0aGlzLnNpemUrK109YUk7fTthRS5wcm90b3R5cGUuXyRCTD1mdW5jdGlvbigpe3ZhciBhSD1uZXcgRmxvYXQzMkFycmF5KHRoaXMuc2l6ZSk7UC5fJGpUKHRoaXMuXyRQLDAsYUgsMCx0aGlzLnNpemUpO3JldHVybiBhSDt9O2Z1bmN0aW9uIHQoKXt0aGlzLl8kNFA9bnVsbDt0aGlzLl8kSTA9bnVsbDt0aGlzLl8kUlA9bnVsbDt9dC5fJEZyPTA7dC5fJGhzPTE7dC5fJHdzPTEwMDt0Ll8kTnM9MTAxO3QuXyR4cz0xMDI7dC5fJHVzPTEwMzt0Ll8kcXM9MTA0O3QuXyRZcz0xMDU7ZnVuY3Rpb24gRSgpe2lmKGope3JldHVybjt9Yy5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzKTt0aGlzLl8kbz0wO3RoaXMuXyRBPTA7dGhpcy5fJEdTPW51bGw7dGhpcy5fJEVvPW51bGw7fUUucHJvdG90eXBlPW5ldyBjKCk7RS5fJGdUPW5ldyBBcnJheSgpO0UucHJvdG90eXBlLl8kelA9ZnVuY3Rpb24oKXt0aGlzLl8kR1M9bmV3IGcoKTt0aGlzLl8kR1MuXyR6UCgpO307RS5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSCl7Yy5wcm90b3R5cGUuXyRGMC5jYWxsKHRoaXMsYUgpO3RoaXMuXyRBPWFILl8kNkwoKTt0aGlzLl8kbz1hSC5fJDZMKCk7dGhpcy5fJEdTPWFILl8kblAoKTt0aGlzLl8kRW89YUguXyRuUCgpO2MucHJvdG90eXBlLnJlYWRWMl9vcGFjaXR5LmNhbGwodGhpcyxhSCk7fTtFLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGFIKXt2YXIgYUk9bmV3IEgodGhpcyk7dmFyIGFKPSh0aGlzLl8kbysxKSoodGhpcy5fJEErMSk7aWYoYUkuXyRDciE9bnVsbCl7YUkuXyRDcj1udWxsO31hSS5fJENyPW5ldyBGbG9hdDMyQXJyYXkoYUoqMik7aWYoYUkuXyRociE9bnVsbCl7YUkuXyRocj1udWxsO31pZih0aGlzLl8kMzIoKSl7YUkuXyRocj1uZXcgRmxvYXQzMkFycmF5KGFKKjIpO31lbHNle2FJLl8kaHI9bnVsbDt9cmV0dXJuIGFJO307RS5wcm90b3R5cGUuXyROcj1mdW5jdGlvbihhSixhSSl7dmFyIGFLPWFJO2lmKCF0aGlzLl8kR1MuXyRVcihhSikpe3JldHVybjt9dmFyIGFMPXRoaXMuXyRWVCgpO3ZhciBhSD1FLl8kZ1Q7YUhbMF09ZmFsc2U7YUcuXyRWcihhSix0aGlzLl8kR1MsYUgsYUwsdGhpcy5fJEVvLGFLLl8kQ3IsMCwyKTthSS5fJEliKGFIWzBdKTt0aGlzLmludGVycG9sYXRlT3BhY2l0eShhSix0aGlzLl8kR1MsYUksYUgpO307RS5wcm90b3R5cGUuXyQyYj1mdW5jdGlvbihhSyxhSil7dmFyIGFMPWFKO2FMLl8kaFModHJ1ZSk7aWYoIXRoaXMuXyQzMigpKXthTC5zZXRUb3RhbE9wYWNpdHkoYUwuZ2V0SW50ZXJwb2xhdGVkT3BhY2l0eSgpKTt9ZWxzZXt2YXIgYUg9dGhpcy5nZXRUYXJnZXRCYXNlRGF0YUlEKCk7aWYoYUwuXyQ4cj09Yy5fJHVyKXthTC5fJDhyPWFLLmdldEJhc2VEYXRhSW5kZXgoYUgpO31pZihhTC5fJDhyPDApe2lmKFEuXyRzbyl7cS5fJGxpKFwiXyRMIF8kMFAgXyRHIDo6ICVzXCIsYUgpO31hTC5fJGhTKGZhbHNlKTt9ZWxzZXt2YXIgYU49YUsuZ2V0QmFzZURhdGEoYUwuXyQ4cik7dmFyIGFJPWFLLl8kcTIoYUwuXyQ4cik7aWYoYU4hPW51bGwmJmFJLl8keW8oKSl7dmFyIGFNPWFJLmdldFRvdGFsU2NhbGUoKTthTC5zZXRUb3RhbFNjYWxlX25vdEZvckNsaWVudChhTSk7dmFyIGFPPWFJLmdldFRvdGFsT3BhY2l0eSgpO2FMLnNldFRvdGFsT3BhY2l0eShhTyphTC5nZXRJbnRlcnBvbGF0ZWRPcGFjaXR5KCkpO2FOLl8kbmIoYUssYUksYUwuXyRDcixhTC5fJGhyLHRoaXMuXyRWVCgpLDAsMik7YUwuXyRoUyh0cnVlKTt9ZWxzZXthTC5fJGhTKGZhbHNlKTt9fX19O0UucHJvdG90eXBlLl8kbmI9ZnVuY3Rpb24oYUwsYUksYUgsYU0sYU8sYUssYUope2lmKHRydWUpe3ZhciBhTj1hSTt2YXIgYVA9KGFOLl8kaHIhPW51bGwpP2FOLl8kaHI6YU4uXyRDcjtFLnRyYW5zZm9ybVBvaW50c19zZGsyKGFILGFNLGFPLGFLLGFKLGFQLHRoaXMuXyRvLHRoaXMuXyRBKTt9ZWxzZXt0aGlzLnRyYW5zZm9ybVBvaW50c19zZGsxKGFMLGFJLGFILGFNLGFPLGFLLGFKKTt9fTtFLnRyYW5zZm9ybVBvaW50c19zZGsyPWZ1bmN0aW9uKGEwLGJjLGE1LGFQLGFJLGFSLGFRLGFVKXt2YXIgYVc9YTUqYUk7dmFyIGFWO3ZhciBibixibTt2YXIgYVQ9MDt2YXIgYVM9MDt2YXIgYmw9MDt2YXIgYms9MDt2YXIgYmY9MDt2YXIgYmU9MDt2YXIgYVo9ZmFsc2U7Zm9yKHZhciBiYT1hUDtiYTxhVztiYSs9YUkpe3ZhciBiZCxhNyxhNCxhWDthND1hMFtiYV07YVg9YTBbYmErMV07YmQ9YTQqYVE7YTc9YVgqYVU7aWYoYmQ8MHx8YTc8MHx8YVE8PWJkfHxhVTw9YTcpe3ZhciBhMT1hUSsxO2lmKCFhWil7YVo9dHJ1ZTthVD0wLjI1KihhUlsoKDApKygwKSphMSkqMl0rYVJbKChhUSkrKDApKmExKSoyXSthUlsoKDApKyhhVSkqYTEpKjJdK2FSWygoYVEpKyhhVSkqYTEpKjJdKTthUz0wLjI1KihhUlsoKDApKygwKSphMSkqMisxXSthUlsoKGFRKSsoMCkqYTEpKjIrMV0rYVJbKCgwKSsoYVUpKmExKSoyKzFdK2FSWygoYVEpKyhhVSkqYTEpKjIrMV0pO3ZhciBhTT1hUlsoKGFRKSsoYVUpKmExKSoyXS1hUlsoKDApKygwKSphMSkqMl07dmFyIGFMPWFSWygoYVEpKyhhVSkqYTEpKjIrMV0tYVJbKCgwKSsoMCkqYTEpKjIrMV07dmFyIGJoPWFSWygoYVEpKygwKSphMSkqMl0tYVJbKCgwKSsoYVUpKmExKSoyXTt2YXIgYmc9YVJbKChhUSkrKDApKmExKSoyKzFdLWFSWygoMCkrKGFVKSphMSkqMisxXTtibD0oYU0rYmgpKjAuNTtiaz0oYUwrYmcpKjAuNTtiZj0oYU0tYmgpKjAuNTtiZT0oYUwtYmcpKjAuNTtpZihibD09MCYmYms9PTApe31pZihiZj09MCYmYmU9PTApe31hVC09MC41KihibCtiZik7YVMtPTAuNSooYmsrYmUpO31pZigoLTI8YTQmJmE0PDMpJiYoLTI8YVgmJmFYPDMpKXtpZihhNDw9MCl7aWYoYVg8PTApe3ZhciBhMz1hUlsoKDApKygwKSphMSkqMl07dmFyIGEyPWFSWygoMCkrKDApKmExKSoyKzFdO3ZhciBhOD1hVC0yKmJsO3ZhciBhNj1hUy0yKmJrO3ZhciBhSz1hVC0yKmJmO3ZhciBhSj1hUy0yKmJlO3ZhciBhTz1hVC0yKmJsLTIqYmY7dmFyIGFOPWFTLTIqYmstMipiZTt2YXIgYmo9MC41KihhNC0oLTIpKTt2YXIgYmk9MC41KihhWC0oLTIpKTtpZihiaitiaTw9MSl7YmNbYmFdPWFPKyhhSy1hTykqYmorKGE4LWFPKSpiaTtiY1tiYSsxXT1hTisoYUotYU4pKmJqKyhhNi1hTikqYmk7fWVsc2V7YmNbYmFdPWEzKyhhOC1hMykqKDEtYmopKyhhSy1hMykqKDEtYmkpO2JjW2JhKzFdPWEyKyhhNi1hMikqKDEtYmopKyhhSi1hMikqKDEtYmkpO319ZWxzZXtpZihhWD49MSl7dmFyIGFLPWFSWygoMCkrKGFVKSphMSkqMl07dmFyIGFKPWFSWygoMCkrKGFVKSphMSkqMisxXTt2YXIgYU89YVQtMipibCsxKmJmO3ZhciBhTj1hUy0yKmJrKzEqYmU7dmFyIGEzPWFUKzMqYmY7dmFyIGEyPWFTKzMqYmU7dmFyIGE4PWFULTIqYmwrMypiZjt2YXIgYTY9YVMtMipiayszKmJlO3ZhciBiaj0wLjUqKGE0LSgtMikpO3ZhciBiaT0wLjUqKGFYLSgxKSk7aWYoYmorYmk8PTEpe2JjW2JhXT1hTysoYUstYU8pKmJqKyhhOC1hTykqYmk7YmNbYmErMV09YU4rKGFKLWFOKSpiaisoYTYtYU4pKmJpO31lbHNle2JjW2JhXT1hMysoYTgtYTMpKigxLWJqKSsoYUstYTMpKigxLWJpKTtiY1tiYSsxXT1hMisoYTYtYTIpKigxLWJqKSsoYUotYTIpKigxLWJpKTt9fWVsc2V7dmFyIGFIPShhN3wwKTtpZihhSD09YVUpe2FIPWFVLTE7fXZhciBiaj0wLjUqKGE0LSgtMikpO3ZhciBiaT1hNy1hSDt2YXIgYmI9YUgvYVU7dmFyIGE5PShhSCsxKS9hVTt2YXIgYUs9YVJbKCgwKSsoYUgpKmExKSoyXTt2YXIgYUo9YVJbKCgwKSsoYUgpKmExKSoyKzFdO3ZhciBhMz1hUlsoKDApKyhhSCsxKSphMSkqMl07dmFyIGEyPWFSWygoMCkrKGFIKzEpKmExKSoyKzFdO3ZhciBhTz1hVC0yKmJsK2JiKmJmO3ZhciBhTj1hUy0yKmJrK2JiKmJlO3ZhciBhOD1hVC0yKmJsK2E5KmJmO3ZhciBhNj1hUy0yKmJrK2E5KmJlO2lmKGJqK2JpPD0xKXtiY1tiYV09YU8rKGFLLWFPKSpiaisoYTgtYU8pKmJpO2JjW2JhKzFdPWFOKyhhSi1hTikqYmorKGE2LWFOKSpiaTt9ZWxzZXtiY1tiYV09YTMrKGE4LWEzKSooMS1iaikrKGFLLWEzKSooMS1iaSk7YmNbYmErMV09YTIrKGE2LWEyKSooMS1iaikrKGFKLWEyKSooMS1iaSk7fX19fWVsc2V7aWYoMTw9YTQpe2lmKGFYPD0wKXt2YXIgYTg9YVJbKChhUSkrKDApKmExKSoyXTt2YXIgYTY9YVJbKChhUSkrKDApKmExKSoyKzFdO3ZhciBhMz1hVCszKmJsO3ZhciBhMj1hUyszKmJrO3ZhciBhTz1hVCsxKmJsLTIqYmY7dmFyIGFOPWFTKzEqYmstMipiZTt2YXIgYUs9YVQrMypibC0yKmJmO3ZhciBhSj1hUyszKmJrLTIqYmU7dmFyIGJqPTAuNSooYTQtKDEpKTt2YXIgYmk9MC41KihhWC0oLTIpKTtpZihiaitiaTw9MSl7YmNbYmFdPWFPKyhhSy1hTykqYmorKGE4LWFPKSpiaTtiY1tiYSsxXT1hTisoYUotYU4pKmJqKyhhNi1hTikqYmk7fWVsc2V7YmNbYmFdPWEzKyhhOC1hMykqKDEtYmopKyhhSy1hMykqKDEtYmkpO2JjW2JhKzFdPWEyKyhhNi1hMikqKDEtYmopKyhhSi1hMikqKDEtYmkpO319ZWxzZXtpZihhWD49MSl7dmFyIGFPPWFSWygoYVEpKyhhVSkqYTEpKjJdO3ZhciBhTj1hUlsoKGFRKSsoYVUpKmExKSoyKzFdO3ZhciBhSz1hVCszKmJsKzEqYmY7dmFyIGFKPWFTKzMqYmsrMSpiZTt2YXIgYTg9YVQrMSpibCszKmJmO3ZhciBhNj1hUysxKmJrKzMqYmU7dmFyIGEzPWFUKzMqYmwrMypiZjt2YXIgYTI9YVMrMypiayszKmJlO3ZhciBiaj0wLjUqKGE0LSgxKSk7dmFyIGJpPTAuNSooYVgtKDEpKTtpZihiaitiaTw9MSl7YmNbYmFdPWFPKyhhSy1hTykqYmorKGE4LWFPKSpiaTtiY1tiYSsxXT1hTisoYUotYU4pKmJqKyhhNi1hTikqYmk7fWVsc2V7YmNbYmFdPWEzKyhhOC1hMykqKDEtYmopKyhhSy1hMykqKDEtYmkpO2JjW2JhKzFdPWEyKyhhNi1hMikqKDEtYmopKyhhSi1hMikqKDEtYmkpO319ZWxzZXt2YXIgYUg9KGE3fDApO2lmKGFIPT1hVSl7YUg9YVUtMTt9dmFyIGJqPTAuNSooYTQtKDEpKTt2YXIgYmk9YTctYUg7dmFyIGJiPWFIL2FVO3ZhciBhOT0oYUgrMSkvYVU7dmFyIGFPPWFSWygoYVEpKyhhSCkqYTEpKjJdO3ZhciBhTj1hUlsoKGFRKSsoYUgpKmExKSoyKzFdO3ZhciBhOD1hUlsoKGFRKSsoYUgrMSkqYTEpKjJdO3ZhciBhNj1hUlsoKGFRKSsoYUgrMSkqYTEpKjIrMV07dmFyIGFLPWFUKzMqYmwrYmIqYmY7dmFyIGFKPWFTKzMqYmsrYmIqYmU7dmFyIGEzPWFUKzMqYmwrYTkqYmY7dmFyIGEyPWFTKzMqYmsrYTkqYmU7aWYoYmorYmk8PTEpe2JjW2JhXT1hTysoYUstYU8pKmJqKyhhOC1hTykqYmk7YmNbYmErMV09YU4rKGFKLWFOKSpiaisoYTYtYU4pKmJpO31lbHNle2JjW2JhXT1hMysoYTgtYTMpKigxLWJqKSsoYUstYTMpKigxLWJpKTtiY1tiYSsxXT1hMisoYTYtYTIpKigxLWJqKSsoYUotYTIpKigxLWJpKTt9fX19ZWxzZXtpZihhWDw9MCl7dmFyIGFZPShiZHwwKTtpZihhWT09YVEpe2FZPWFRLTE7fXZhciBiaj1iZC1hWTt2YXIgYmk9MC41KihhWC0oLTIpKTt2YXIgYnA9YVkvYVE7dmFyIGJvPShhWSsxKS9hUTt2YXIgYTg9YVJbKChhWSkrKDApKmExKSoyXTt2YXIgYTY9YVJbKChhWSkrKDApKmExKSoyKzFdO3ZhciBhMz1hUlsoKGFZKzEpKygwKSphMSkqMl07dmFyIGEyPWFSWygoYVkrMSkrKDApKmExKSoyKzFdO3ZhciBhTz1hVCticCpibC0yKmJmO3ZhciBhTj1hUyticCpiay0yKmJlO3ZhciBhSz1hVCtibypibC0yKmJmO3ZhciBhSj1hUytibypiay0yKmJlO2lmKGJqK2JpPD0xKXtiY1tiYV09YU8rKGFLLWFPKSpiaisoYTgtYU8pKmJpO2JjW2JhKzFdPWFOKyhhSi1hTikqYmorKGE2LWFOKSpiaTt9ZWxzZXtiY1tiYV09YTMrKGE4LWEzKSooMS1iaikrKGFLLWEzKSooMS1iaSk7YmNbYmErMV09YTIrKGE2LWEyKSooMS1iaikrKGFKLWEyKSooMS1iaSk7fX1lbHNle2lmKGFYPj0xKXt2YXIgYVk9KGJkfDApO2lmKGFZPT1hUSl7YVk9YVEtMTt9dmFyIGJqPWJkLWFZO3ZhciBiaT0wLjUqKGFYLSgxKSk7dmFyIGJwPWFZL2FRO3ZhciBibz0oYVkrMSkvYVE7dmFyIGFPPWFSWygoYVkpKyhhVSkqYTEpKjJdO3ZhciBhTj1hUlsoKGFZKSsoYVUpKmExKSoyKzFdO3ZhciBhSz1hUlsoKGFZKzEpKyhhVSkqYTEpKjJdO3ZhciBhSj1hUlsoKGFZKzEpKyhhVSkqYTEpKjIrMV07dmFyIGE4PWFUK2JwKmJsKzMqYmY7dmFyIGE2PWFTK2JwKmJrKzMqYmU7dmFyIGEzPWFUK2JvKmJsKzMqYmY7dmFyIGEyPWFTK2JvKmJrKzMqYmU7aWYoYmorYmk8PTEpe2JjW2JhXT1hTysoYUstYU8pKmJqKyhhOC1hTykqYmk7YmNbYmErMV09YU4rKGFKLWFOKSpiaisoYTYtYU4pKmJpO31lbHNle2JjW2JhXT1hMysoYTgtYTMpKigxLWJqKSsoYUstYTMpKigxLWJpKTtiY1tiYSsxXT1hMisoYTYtYTIpKigxLWJqKSsoYUotYTIpKigxLWJpKTt9fWVsc2V7U3lzdGVtLmVyci5wcmludGYoXCJfJGxpIGNhbGMgOiAlLjRmICwgJS40Zlx0XHRcdFx0XHRAQEJEQm94R3JpZFxcblwiLGE0LGFYKTt9fX19fWVsc2V7YmNbYmFdPWFUK2E0KmJsK2FYKmJmO2JjW2JhKzFdPWFTK2E0KmJrK2FYKmJlO319ZWxzZXtibj1iZC0oYmR8MCk7Ym09YTctKGE3fDApO2FWPTIqKChiZHwwKSsoKGE3fDApKSooYVErMSkpO2lmKGJuK2JtPDEpe2JjW2JhXT1hUlthVl0qKDEtYm4tYm0pK2FSW2FWKzJdKmJuK2FSW2FWKzIqKGFRKzEpXSpibTtiY1tiYSsxXT1hUlthVisxXSooMS1ibi1ibSkrYVJbYVYrM10qYm4rYVJbYVYrMiooYVErMSkrMV0qYm07fWVsc2V7YmNbYmFdPWFSW2FWKzIqKGFRKzEpKzJdKihibi0xK2JtKSthUlthVisyKihhUSsxKV0qKDEtYm4pK2FSW2FWKzJdKigxLWJtKTtiY1tiYSsxXT1hUlthVisyKihhUSsxKSszXSooYm4tMStibSkrYVJbYVYrMiooYVErMSkrMV0qKDEtYm4pK2FSW2FWKzNdKigxLWJtKTt9fX19O0UucHJvdG90eXBlLnRyYW5zZm9ybVBvaW50c19zZGsxPWZ1bmN0aW9uKGFKLGFSLGFMLGEwLGFVLGFQLGFaKXt2YXIgYUg9YVI7dmFyIGFPLGFOO3ZhciBhTT10aGlzLl8kbzt2YXIgYVE9dGhpcy5fJEE7dmFyIGFJPWFVKmFaO3ZhciBhUyxhWTt2YXIgYVY7dmFyIGFYLGFXO3ZhciBhVD0oYUguXyRociE9bnVsbCk/YUguXyRocjphSC5fJENyO2Zvcih2YXIgYUs9YVA7YUs8YUk7YUsrPWFaKXtpZihRLl8kdHMpe2FPPWFMW2FLXTthTj1hTFthSysxXTtpZihhTzwwKXthTz0wO31lbHNle2lmKGFPPjEpe2FPPTE7fX1pZihhTjwwKXthTj0wO31lbHNle2lmKGFOPjEpe2FOPTE7fX1hTyo9YU07YU4qPWFRO2FTPShhT3wwKTthWT0oYU58MCk7aWYoYVM+YU0tMSl7YVM9YU0tMTt9aWYoYVk+YVEtMSl7YVk9YVEtMTt9YVg9YU8tYVM7YVc9YU4tYVk7YVY9MiooYVMrYVkqKGFNKzEpKTt9ZWxzZXthTz1hTFthS10qYU07YU49YUxbYUsrMV0qYVE7YVg9YU8tKGFPfDApO2FXPWFOLShhTnwwKTthVj0yKigoYU98MCkrKGFOfDApKihhTSsxKSk7fWlmKGFYK2FXPDEpe2EwW2FLXT1hVFthVl0qKDEtYVgtYVcpK2FUW2FWKzJdKmFYK2FUW2FWKzIqKGFNKzEpXSphVzthMFthSysxXT1hVFthVisxXSooMS1hWC1hVykrYVRbYVYrM10qYVgrYVRbYVYrMiooYU0rMSkrMV0qYVc7fWVsc2V7YTBbYUtdPWFUW2FWKzIqKGFNKzEpKzJdKihhWC0xK2FXKSthVFthVisyKihhTSsxKV0qKDEtYVgpK2FUW2FWKzJdKigxLWFXKTthMFthSysxXT1hVFthVisyKihhTSsxKSszXSooYVgtMSthVykrYVRbYVYrMiooYU0rMSkrMV0qKDEtYVgpK2FUW2FWKzNdKigxLWFXKTt9fX07RS5wcm90b3R5cGUuXyRWVD1mdW5jdGlvbigpe3JldHVybih0aGlzLl8kbysxKSoodGhpcy5fJEErMSk7fTtFLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuXyRfYjt9O2Z1bmN0aW9uIEgoYUgpe0IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxhSCk7dGhpcy5fJDhyPWMuXyR1cjt0aGlzLl8kQ3I9bnVsbDt0aGlzLl8kaHI9bnVsbDt9SC5wcm90b3R5cGU9bmV3IEIoKTtmdW5jdGlvbiBzKCl7aWYoail7cmV0dXJuO310aGlzLnZpc2libGU9dHJ1ZTt0aGlzLl8kZzA9ZmFsc2U7dGhpcy5fJE5MPW51bGw7dGhpcy5fJDNTPW51bGw7dGhpcy5fJGFTPW51bGw7cy5fJDQyKys7fXMuXyQ0Mj0wO3MucHJvdG90eXBlLl8kelA9ZnVuY3Rpb24oKXt0aGlzLl8kM1M9bmV3IEFycmF5KCk7dGhpcy5fJGFTPW5ldyBBcnJheSgpO307cy5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSCl7dGhpcy5fJGcwPWFILl8kOEwoKTt0aGlzLnZpc2libGU9YUguXyQ4TCgpO3RoaXMuXyROTD1hSC5fJG5QKCk7dGhpcy5fJDNTPWFILl8kblAoKTt0aGlzLl8kYVM9YUguXyRuUCgpO307cy5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhSSl7dmFyIGFIPW5ldyBhaih0aGlzKTthSC5zZXRQYXJ0c09wYWNpdHkodGhpcy5pc1Zpc2libGUoKT8xOjApO3JldHVybiBhSDt9O3MucHJvdG90eXBlLl8kNm89ZnVuY3Rpb24oYUgpe2lmKHRoaXMuXyQzUz09bnVsbCl7dGhyb3cgbmV3IEVycm9yKFwiXyQzUyBfJDYgXyRXb0BfJDZvXCIpO310aGlzLl8kM1MucHVzaChhSCk7fTtzLnByb3RvdHlwZS5fJDNvPWZ1bmN0aW9uKGFIKXtpZih0aGlzLl8kYVM9PW51bGwpe3Rocm93IG5ldyBFcnJvcihcIl8kYVMgXyQ2IF8kV29AXyQzb1wiKTt9dGhpcy5fJGFTLnB1c2goYUgpO307cy5wcm90b3R5cGUuXyRabz1mdW5jdGlvbihhSCl7dGhpcy5fJDNTPWFIO307cy5wcm90b3R5cGUuXyR4bz1mdW5jdGlvbihhSCl7dGhpcy5fJGFTPWFIO307cy5wcm90b3R5cGUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlzaWJsZTt9O3MucHJvdG90eXBlLl8kdUw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGcwO307cy5wcm90b3R5cGUuXyRLUD1mdW5jdGlvbihhSCl7dGhpcy52aXNpYmxlPWFIO307cy5wcm90b3R5cGUuXyRFVD1mdW5jdGlvbihhSCl7dGhpcy5fJGcwPWFIO307cy5wcm90b3R5cGUuZ2V0QmFzZURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDNTO307cy5wcm90b3R5cGUuZ2V0RHJhd0RhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGFTO307cy5wcm90b3R5cGUuXyRwMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kTkw7fTtzLnByb3RvdHlwZS5fJG9iPWZ1bmN0aW9uKGFIKXt0aGlzLl8kTkw9YUg7fTtzLnByb3RvdHlwZS5nZXRQYXJ0c0lEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyROTDt9O3MucHJvdG90eXBlLl8kTVA9ZnVuY3Rpb24oYUgpe3RoaXMuXyROTD1hSDt9O2Z1bmN0aW9uIGFqKGFIKXt0aGlzLl8kVlM9bnVsbDt0aGlzLl8kZTA9bnVsbDt0aGlzLl8kZTA9YUg7fWFqLnByb3RvdHlwZT1uZXcgUygpO2FqLnByb3RvdHlwZS5nZXRQYXJ0c09wYWNpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJFZTO307YWoucHJvdG90eXBlLnNldFBhcnRzT3BhY2l0eT1mdW5jdGlvbihhSCl7dGhpcy5fJFZTPWFIO307ZnVuY3Rpb24gYWsoYUgpe2lmKGope3JldHVybjt9dGhpcy5pZD1hSDt9YWsuXyRMNz1mdW5jdGlvbigpe3ouXyQyNygpO24uXyQyNygpO1ouXyQyNygpO2kuXyQyNygpO307YWsucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWQ7fTtmdW5jdGlvbiBEKCl7fUQucHJvdG90eXBlLl8kRjA9ZnVuY3Rpb24oYUgpe307ZnVuY3Rpb24gYW4oKXtpZihqKXtyZXR1cm47fXRoaXMuXyQ0Uz1udWxsO31hbi5wcm90b3R5cGUuXyQxcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kNFM7fTthbi5wcm90b3R5cGUuXyR6UD1mdW5jdGlvbigpe3RoaXMuXyQ0Uz1uZXcgQXJyYXkoKTt9O2FuLnByb3RvdHlwZS5fJEYwPWZ1bmN0aW9uKGFIKXt0aGlzLl8kNFM9YUguXyRuUCgpO307YW4ucHJvdG90eXBlLl8kS3M9ZnVuY3Rpb24oYUgpe3RoaXMuXyQ0Uy5wdXNoKGFIKTt9O2Z1bmN0aW9uIGF1KGFILGFJKXt0aGlzLmNhbnZhcz1hSDt0aGlzLmNvbnRleHQ9YUk7dGhpcy52aWV3cG9ydD1uZXcgQXJyYXkoMCwwLGFILndpZHRoLGFILmhlaWdodCk7dGhpcy5fJDZyPTE7dGhpcy5fJHhQPTA7dGhpcy5fJDNyPTE7dGhpcy5fJHVQPTA7dGhpcy5fJFFvPS0xO3RoaXMuY2FjaGVJbWFnZXM9e307fWF1LnRyPW5ldyBhbSgpO2F1Ll8kNTA9bmV3IGFtKCk7YXUuXyRUaT1uZXcgQXJyYXkoMCwwKTthdS5fJFBpPW5ldyBBcnJheSgwLDApO2F1Ll8kQj1uZXcgQXJyYXkoMCwwKTthdS5wcm90b3R5cGUuXyRsUD1mdW5jdGlvbihhSSxhSyxhSixhSCl7dGhpcy52aWV3cG9ydD1uZXcgQXJyYXkoYUksYUssYUosYUgpO307YXUucHJvdG90eXBlLl8kYkw9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuc2F2ZSgpO3ZhciBhSD10aGlzLnZpZXdwb3J0O2lmKGFIIT1udWxsKXt0aGlzLmNvbnRleHQuYmVnaW5QYXRoKCk7dGhpcy5jb250ZXh0Ll8kTGkoYUhbMF0sYUhbMV0sYUhbMl0sYUhbM10pO3RoaXMuY29udGV4dC5jbGlwKCk7fX07YXUucHJvdG90eXBlLl8kZWk9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQucmVzdG9yZSgpO307YXUucHJvdG90eXBlLmRyYXdFbGVtZW50cz1mdW5jdGlvbihiYyxibSxhWCxhSixiQSxhTSxibCxieil7dHJ5e2lmKGJBIT10aGlzLl8kUW8pe3RoaXMuXyRRbz1iQTt0aGlzLmNvbnRleHQuZ2xvYmFsQWxwaGE9YkE7fXZhciBhMj1ibS5sZW5ndGg7dmFyIGFQPWJjLndpZHRoO3ZhciBhNT1iYy5oZWlnaHQ7dmFyIGJFPXRoaXMuY29udGV4dDt2YXIgYTc9dGhpcy5fJHhQO3ZhciBhNj10aGlzLl8kdVA7dmFyIGExPXRoaXMuXyQ2cjt2YXIgYVo9dGhpcy5fJDNyO3ZhciBiRD1hdS50cjt2YXIgYUk9YXUuXyRUaTt2YXIgYUg9YXUuXyRQaTt2YXIgYnU9YXUuXyRCO2Zvcih2YXIgYnk9MDtieTxhMjtieSs9Myl7YkUuc2F2ZSgpO3ZhciBhVz1ibVtieV07dmFyIGFWPWJtW2J5KzFdO3ZhciBhVD1ibVtieSsyXTt2YXIgYUw9YTcrYTEqYVhbYVcqMl07dmFyIGFLPWE2K2FaKmFYW2FXKjIrMV07dmFyIGJyPWE3K2ExKmFYW2FWKjJdO3ZhciBicD1hNithWiphWFthVioyKzFdO3ZhciBiaD1hNythMSphWFthVCoyXTt2YXIgYmY9YTYrYVoqYVhbYVQqMisxXTtpZihibCl7YmwuXyRQUyhhTCxhSyxidSk7YUw9YnVbMF07YUs9YnVbMV07YmwuXyRQUyhicixicCxidSk7YnI9YnVbMF07YnA9YnVbMV07YmwuXyRQUyhiaCxiZixidSk7Ymg9YnVbMF07YmY9YnVbMV07fXZhciBhUz1hUCphSlthVyoyXTt2YXIgYVE9YTUtYTUqYUpbYVcqMisxXTt2YXIgYng9YVAqYUpbYVYqMl07dmFyIGJ3PWE1LWE1KmFKW2FWKjIrMV07dmFyIGJrPWFQKmFKW2FUKjJdO3ZhciBiaj1hNS1hNSphSlthVCoyKzFdO3ZhciBhMz1NYXRoLmF0YW4yKGJ3LWFRLGJ4LWFTKTt2YXIgYTA9TWF0aC5hdGFuMihicC1hSyxici1hTCk7dmFyIGFPPWJyLWFMO3ZhciBhTj1icC1hSzt2YXIgYmk9TWF0aC5zcXJ0KGFPKmFPK2FOKmFOKTt2YXIgYVU9YngtYVM7dmFyIGFSPWJ3LWFRO3ZhciBidD1NYXRoLnNxcnQoYVUqYVUrYVIqYVIpO3ZhciBidj1iaS9idDthZC5fJG5pKGJrLGJqLGFTLGFRLChieC1hUyksKGJ3LWFRKSwtKGJ3LWFRKSwoYngtYVMpLGFJKTthZC5fJG5pKGJoLGJmLGFMLGFLLChici1hTCksKGJwLWFLKSwtKGJwLWFLKSwoYnItYUwpLGFIKTt2YXIgYVk9KGFIWzBdLWFJWzBdKS9hSVsxXTt2YXIgYnM9TWF0aC5taW4oYVMsYngsYmspO3ZhciBiZz1NYXRoLm1heChhUyxieCxiayk7dmFyIGJxPU1hdGgubWluKGFRLGJ3LGJqKTt2YXIgYmU9TWF0aC5tYXgoYVEsYncsYmopO3ZhciBibz1NYXRoLmZsb29yKGJzKTt2YXIgYmI9TWF0aC5mbG9vcihicSk7dmFyIGE0PU1hdGguY2VpbChiZyk7dmFyIGJDPU1hdGguY2VpbChiZSk7YkQuaWRlbnRpdHkoKTtiRC50cmFuc2xhdGUoYUwsYUspO2JELnJvdGF0ZShhMCk7YkQuc2NhbGUoMSxhSFsxXS9hSVsxXSk7YkQuc2hlYXIoYVksMCk7YkQuc2NhbGUoYnYsYnYpO2JELnJvdGF0ZSgtYTMpO2JELnRyYW5zbGF0ZSgtYVMsLWFRKTtiRC5zZXRDb250ZXh0KGJFKTt2YXIgYTg9dHJ1ZTt2YXIgYTk9MS4yO2lmKCFhTSl7YU09YTg/YTk6MDt9aWYoUS5JR05PUkVfRVhQQU5EKXthTT0wO31pZihRLlVTRV9DQUNIRURfUE9MWUdPTl9JTUFHRSl7dmFyIGJkPWJ6Ll8kZTA7YmQuZ2xfY2FjaGVJbWFnZT1iZC5nbF9jYWNoZUltYWdlfHx7fTtpZighYmQuZ2xfY2FjaGVJbWFnZVtieV0pe3ZhciBibj1hdS5jcmVhdGVDYW52YXMoYTQtYm8sYkMtYmIpO1EuREVCVUdfREFUQS5MREdMX0NBTlZBU19NQj1RLkRFQlVHX0RBVEEuTERHTF9DQU5WQVNfTUJ8fDA7US5ERUJVR19EQVRBLkxER0xfQ0FOVkFTX01CKz0oYTQtYm8pKihiQy1iYikqNDt2YXIgYmE9Ym4uZ2V0Q29udGV4dChcIjJkXCIpO2JhLnRyYW5zbGF0ZSgtYm8sLWJiKTthdS5jbGlwKGJhLGJELGFNLGJpLGFTLGFRLGJ4LGJ3LGJrLGJqLGFMLGFLLGJyLGJwLGJoLGJmKTtiYS5kcmF3SW1hZ2UoYmMsMCwwKTtiZC5nbF9jYWNoZUltYWdlW2J5XT17Y2FjaGVDYW52YXM6Ym4sY2FjaGVDb250ZXh0OmJhfTt9YkUuZHJhd0ltYWdlKGJkLmdsX2NhY2hlSW1hZ2VbYnldW1wiY2FjaGVDYW52YXNcIl0sYm8sYmIpO31lbHNle2lmKCFRLklHTk9SRV9DTElQKXthdS5jbGlwKGJFLGJELGFNLGJpLGFTLGFRLGJ4LGJ3LGJrLGJqLGFMLGFLLGJyLGJwLGJoLGJmKTt9aWYoUS5VU0VfQURKVVNUX1RSQU5TTEFUSU9OKXticz0wO2JnPWFQO2JxPTA7YmU9YTU7fWJFLmRyYXdJbWFnZShiYyxicyxicSxiZy1icyxiZS1icSxicyxicSxiZy1icyxiZS1icSk7fWJFLnJlc3RvcmUoKTt9fWNhdGNoKGJCKXtxLl8kUmIoYkIpO319O2F1LmNsaXA9ZnVuY3Rpb24oYUssYUosYVYsYUksYU0sYUwsYVUsYVQsYVEsYVAsYU8sYU4sYUgsYVcsYVMsYVIpe2lmKGFWPjAuMDIpe2F1LmV4cGFuZENsaXAoYUssYUosYVYsYUksYU8sYU4sYUgsYVcsYVMsYVIpO31lbHNle2F1LmNsaXBXaXRoVHJhbnNmb3JtKGFLLG51bGwsYU0sYUwsYVUsYVQsYVEsYVApO319O2F1LmV4cGFuZENsaXA9ZnVuY3Rpb24oYVYsYmcsYUssYTMsYUosYUksYmUsYmEsYVosYVgpe3ZhciBhUD1iZS1hSjt2YXIgYU89YmEtYUk7dmFyIGJpPWFaLWFKO3ZhciBiaD1hWC1hSTt2YXIgYmo9YVAqYmgtYU8qYmk+MD9hSzotYUs7dmFyIGFMPS1hTzt2YXIgYUg9YVA7dmFyIGJjPWFaLWJlO3ZhciBhOD1hWC1iYTt2YXIgYTc9LWE4O3ZhciBhNj1iYzt2YXIgYVE9TWF0aC5zcXJ0KGJjKmJjK2E4KmE4KTt2YXIgYmY9LWJoO3ZhciBiYj1iaTt2YXIgYTI9TWF0aC5zcXJ0KGJpKmJpK2JoKmJoKTt2YXIgYmQ9YUotYmoqYUwvYTM7dmFyIGE5PWFJLWJqKmFIL2EzO3ZhciBhWT1iZS1iaiphTC9hMzt2YXIgYVc9YmEtYmoqYUgvYTM7dmFyIGE1PWJlLWJqKmE3L2FRO3ZhciBhND1iYS1iaiphNi9hUTt2YXIgYVM9YVotYmoqYTcvYVE7dmFyIGFSPWFYLWJqKmE2L2FRO3ZhciBhTj1hSitiaipiZi9hMjt2YXIgYU09YUkrYmoqYmIvYTI7dmFyIGExPWFaK2JqKmJmL2EyO3ZhciBhMD1hWCtiaipiYi9hMjt2YXIgYVU9YXUuXyQ1MDt2YXIgYVQ9YmcuXyRQMihhVSk7aWYoYVQ9PW51bGwpe3JldHVybiBmYWxzZTt9YXUuY2xpcFdpdGhUcmFuc2Zvcm0oYVYsYVUsYmQsYTksYVksYVcsYTUsYTQsYVMsYVIsYTEsYTAsYU4sYU0pO3JldHVybiB0cnVlO307YXUuY2xpcFdpdGhUcmFuc2Zvcm09ZnVuY3Rpb24oYUgsYUksYVMsYU4sYVEsYUssYVAsYUope2lmKGFyZ3VtZW50cy5sZW5ndGg8KDErMyoyKSl7cS5fJGxpKFwiZXJyIDogQExER0wuY2xpcCgpXCIpO3JldHVybjt9aWYoIShhcmd1bWVudHNbMV0gaW5zdGFuY2VvZiBhbSkpe3EuXyRsaShcImVyciA6IGFbMF0gaXMgXyQ2IExEVHJhbnNmb3JtIEBMREdMLmNsaXAoKVwiKTtyZXR1cm47fXZhciBhTT1hdS5fJEI7dmFyIGFPPWFJO3ZhciBhUj1hcmd1bWVudHM7YUguYmVnaW5QYXRoKCk7aWYoYU8pe2FPLl8kUFMoYVJbMl0sYVJbM10sYU0pO2FILm1vdmVUbyhhTVswXSxhTVsxXSk7Zm9yKHZhciBhTD00O2FMPGFSLmxlbmd0aDthTCs9Mil7YU8uXyRQUyhhUlthTF0sYVJbYUwrMV0sYU0pO2FILmxpbmVUbyhhTVswXSxhTVsxXSk7fX1lbHNle2FILm1vdmVUbyhhUlsyXSxhUlszXSk7Zm9yKHZhciBhTD00O2FMPGFSLmxlbmd0aDthTCs9Mil7YUgubGluZVRvKGFSW2FMXSxhUlthTCsxXSk7fX1hSC5jbGlwKCk7fTthdS5jcmVhdGVDYW52YXM9ZnVuY3Rpb24oYUgsYUope3ZhciBhST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO2FJLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsYUgpO2FJLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLGFKKTtpZighYUkpe3EuXyRsaShcImVyciA6IFwiK2FJKTt9cmV0dXJuIGFJO307YXUuZHVtcFZhbHVlcz1mdW5jdGlvbigpe3ZhciBhST1cIlwiO2Zvcih2YXIgYUg9MDthSDxhcmd1bWVudHMubGVuZ3RoO2FIKyspe2FJKz1cIltcIithSCtcIl09IFwiK2FyZ3VtZW50c1thSF0udG9GaXhlZCgzKStcIiAsIFwiO31jb25zb2xlLmxvZyhhSSk7fTtmdW5jdGlvbiBmKCl7aWYoail7cmV0dXJuO310aGlzLl8kVFQ9bnVsbDt0aGlzLl8kTFQ9bnVsbDt0aGlzLl8kRlM9bnVsbDt0aGlzLl8kd0w9bnVsbDt9Zi5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSCl7dGhpcy5fJFRUPWFILl8kX1QoKTt0aGlzLl8kTFQ9YUguXyRfVCgpO3RoaXMuXyRGUz1hSC5fJF9UKCk7dGhpcy5fJHdMPWFILl8kblAoKTt9O2YucHJvdG90eXBlLmdldE1pblZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRUVDt9O2YucHJvdG90eXBlLmdldE1heFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRMVDt9O2YucHJvdG90eXBlLmdldERlZmF1bHRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kRlM7fTtmLnByb3RvdHlwZS5nZXRQYXJhbUlEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyR3TDt9O2Z1bmN0aW9uIEIoYUgpe2lmKGope3JldHVybjt9dGhpcy5fJGUwPW51bGw7dGhpcy5fJElQPW51bGw7dGhpcy5fJEpTPWZhbHNlO3RoaXMuXyRBVD10cnVlO3RoaXMuXyRlMD1hSDt0aGlzLnRvdGFsU2NhbGU9MTt0aGlzLl8kN3M9MTt0aGlzLnRvdGFsT3BhY2l0eT0xO31CLnByb3RvdHlwZS5fJHlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRBVCYmIXRoaXMuXyRKUzt9O0IucHJvdG90eXBlLl8kaFM9ZnVuY3Rpb24oYUgpe3RoaXMuXyRBVD1hSDt9O0IucHJvdG90eXBlLl8kR1Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGUwO307Qi5wcm90b3R5cGUuXyRsMj1mdW5jdGlvbihhSCl7dGhpcy5fJElQPWFIO307Qi5wcm90b3R5cGUuZ2V0UGFydHNJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kSVA7fTtCLnByb3RvdHlwZS5fJHgyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRKUzt9O0IucHJvdG90eXBlLl8kSWI9ZnVuY3Rpb24oYUgpe3RoaXMuXyRKUz1hSDt9O0IucHJvdG90eXBlLmdldFRvdGFsU2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b3RhbFNjYWxlO307Qi5wcm90b3R5cGUuc2V0VG90YWxTY2FsZV9ub3RGb3JDbGllbnQ9ZnVuY3Rpb24oYUgpe3RoaXMudG90YWxTY2FsZT1hSDt9O0IucHJvdG90eXBlLmdldEludGVycG9sYXRlZE9wYWNpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDdzO307Qi5wcm90b3R5cGUuc2V0SW50ZXJwb2xhdGVkT3BhY2l0eT1mdW5jdGlvbihhSCl7dGhpcy5fJDdzPWFIO307Qi5wcm90b3R5cGUuZ2V0VG90YWxPcGFjaXR5PWZ1bmN0aW9uKGFIKXtyZXR1cm4gdGhpcy50b3RhbE9wYWNpdHk7fTtCLnByb3RvdHlwZS5zZXRUb3RhbE9wYWNpdHk9ZnVuY3Rpb24oYUgpe3RoaXMudG90YWxPcGFjaXR5PWFIO307ZnVuY3Rpb24gUSgpe31RLl8kMnM9XCIyLjEuMDBfMVwiO1EuXyRLcj0yMDEwMDEwMDA7US5fJHNQPXRydWU7US5fJHNvPXRydWU7US5fJGNiPWZhbHNlO1EuXyQzVD10cnVlO1EuXyRUcz10cnVlO1EuXyRmYj10cnVlO1EuXyR0cz10cnVlO1EuTDJEX0RFRk9STUVSX0VYVEVORD10cnVlO1EuXyRXYj1mYWxzZTtRLl8keXI9ZmFsc2U7US5fJFpzPWZhbHNlO1EuTDJEX05PX0VSUk9SPTA7US5fJGk3PTEwMDA7US5fJDlzPTEwMDE7US5fJGVzPTExMDA7US5fJHI3PTIwMDA7US5fJDA3PTIwMDE7US5fJGI3PTIwMDI7US5fJEg3PTQwMDA7US5MMkRfQ09MT1JfQkxFTkRfTU9ERV9NVUxUPTA7US5MMkRfQ09MT1JfQkxFTkRfTU9ERV9BREQ9MTtRLkwyRF9DT0xPUl9CTEVORF9NT0RFX0lOVEVSUE9MQVRFPTI7US5fJDZiPXRydWU7US5fJGNUPTA7US5jbGlwcGluZ01hc2tCdWZmZXJTaXplPTI1NjtRLmdsQ29udGV4dD1uZXcgQXJyYXkoKTtRLmZyYW1lQnVmZmVycz1uZXcgQXJyYXkoKTtRLmZUZXh0dXJlPW5ldyBBcnJheSgpO1EuSUdOT1JFX0NMSVA9ZmFsc2U7US5JR05PUkVfRVhQQU5EPWZhbHNlO1EuRVhQQU5EX1c9MjtRLlVTRV9BREpVU1RfVFJBTlNMQVRJT049dHJ1ZTtRLlVTRV9DQU5WQVNfVFJBTlNGT1JNPXRydWU7US5VU0VfQ0FDSEVEX1BPTFlHT05fSU1BR0U9ZmFsc2U7US5ERUJVR19EQVRBPXt9O1EuUFJPRklMRV9JT1NfU1BFRUQ9e1BST0ZJTEVfTkFNRTpcImlPUyBTcGVlZFwiLFVTRV9BREpVU1RfVFJBTlNMQVRJT046dHJ1ZSxVU0VfQ0FDSEVEX1BPTFlHT05fSU1BR0U6dHJ1ZSxFWFBBTkRfVzo0fTtRLlBST0ZJTEVfSU9TX1FVQUxJVFk9e1BST0ZJTEVfTkFNRTpcImlPUyBIaVFcIixVU0VfQURKVVNUX1RSQU5TTEFUSU9OOnRydWUsVVNFX0NBQ0hFRF9QT0xZR09OX0lNQUdFOmZhbHNlLEVYUEFORF9XOjJ9O1EuUFJPRklMRV9JT1NfREVGQVVMVD1RLlBST0ZJTEVfSU9TX1FVQUxJVFk7US5QUk9GSUxFX0FORFJPSUQ9e1BST0ZJTEVfTkFNRTpcIkFuZHJvaWRcIixVU0VfQURKVVNUX1RSQU5TTEFUSU9OOmZhbHNlLFVTRV9DQUNIRURfUE9MWUdPTl9JTUFHRTpmYWxzZSxFWFBBTkRfVzoyfTtRLlBST0ZJTEVfREVTS1RPUD17UFJPRklMRV9OQU1FOlwiRGVza3RvcFwiLFVTRV9BREpVU1RfVFJBTlNMQVRJT046ZmFsc2UsVVNFX0NBQ0hFRF9QT0xZR09OX0lNQUdFOmZhbHNlLEVYUEFORF9XOjJ9O1EuaW5pdFByb2ZpbGU9ZnVuY3Rpb24oKXtpZihyLmlzSU9TKCkpe1Euc2V0dXBQcm9maWxlKFEuUFJPRklMRV9JT1NfREVGQVVMVCk7fWVsc2V7aWYoci5pc0FuZHJvaWQoKSl7US5zZXR1cFByb2ZpbGUoUS5QUk9GSUxFX0FORFJPSUQpO31lbHNle1Euc2V0dXBQcm9maWxlKFEuUFJPRklMRV9ERVNLVE9QKTt9fX07US5zZXR1cFByb2ZpbGU9ZnVuY3Rpb24oYUksYUope2lmKHR5cGVvZiBhST09XCJudW1iZXJcIil7c3dpdGNoKGFJKXtjYXNlIDk5MDE6YUk9US5QUk9GSUxFX0lPU19TUEVFRDticmVhaztjYXNlIDk5MDI6YUk9US5QUk9GSUxFX0lPU19RVUFMSVRZO2JyZWFrO2Nhc2UgOTkwMzphST1RLlBST0ZJTEVfSU9TX0RFRkFVTFQ7YnJlYWs7Y2FzZSA5OTA0OmFJPVEuUFJPRklMRV9BTkRST0lEO2JyZWFrO2Nhc2UgOTkwNTphST1RLlBST0ZJTEVfREVTS1RPUDticmVhaztkZWZhdWx0OmFsZXJ0KFwicHJvZmlsZSBfJDYgXyRVaSA6IFwiK2FJKTticmVhazt9fWlmKGFyZ3VtZW50cy5sZW5ndGg8Mil7YUo9dHJ1ZTt9aWYoYUope2NvbnNvbGUubG9nKFwicHJvZmlsZSA6IFwiK2FJLlBST0ZJTEVfTkFNRSk7fWZvcih2YXIgYUggaW4gYUkpe1FbYUhdPWFJW2FIXTtpZihhSil7Y29uc29sZS5sb2coXCIgIFtcIithSCtcIl0gPSBcIithSVthSF0pO319fTtRLmluaXQ9ZnVuY3Rpb24oKXtpZihRLl8kNmIpe2NvbnNvbGUubG9nKFwiTGl2ZTJEICVzXCIsUS5fJDJzKTtRLl8kNmI9ZmFsc2U7dmFyIGFIPWZhbHNlO2FIPXRydWU7US5pbml0UHJvZmlsZSgpO319O1EuZ2V0VmVyc2lvblN0cj1mdW5jdGlvbigpe3JldHVybiBRLl8kMnM7fTtRLmdldFZlcnNpb25Obz1mdW5jdGlvbigpe3JldHVybiBRLl8kS3I7fTtRLl8kc1Q9ZnVuY3Rpb24oYUgpe1EuXyRjVD1hSDt9O1EuZ2V0RXJyb3I9ZnVuY3Rpb24oKXt2YXIgYUg9US5fJGNUO1EuXyRjVD0wO3JldHVybiBhSDt9O1EuZGlzcG9zZT1mdW5jdGlvbigpe1EuZ2xDb250ZXh0PVtdO1EuZnJhbWVCdWZmZXJzPVtdO1EuZlRleHR1cmU9W107fTtRLnNldEdMPWZ1bmN0aW9uKGFKLGFJKXt2YXIgYUg9YUl8fDA7US5nbENvbnRleHRbYUhdPWFKO307US5nZXRHTD1mdW5jdGlvbihhSCl7cmV0dXJuIFEuZ2xDb250ZXh0W2FIXTt9O1Euc2V0Q2xpcHBpbmdNYXNrQnVmZmVyU2l6ZT1mdW5jdGlvbihhSCl7US5jbGlwcGluZ01hc2tCdWZmZXJTaXplPWFIO307US5nZXRDbGlwcGluZ01hc2tCdWZmZXJTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIFEuY2xpcHBpbmdNYXNrQnVmZmVyU2l6ZTt9O1EuZGVsZXRlQnVmZmVyPWZ1bmN0aW9uKGFJKXt2YXIgYUg9US5nZXRHTChhSSk7YUguZGVsZXRlRnJhbWVidWZmZXIoUS5mcmFtZUJ1ZmZlcnNbYUldLmZyYW1lYnVmZmVyKTtkZWxldGUgUS5mcmFtZUJ1ZmZlcnNbYUldO2RlbGV0ZSBRLmdsQ29udGV4dFthSV07fTtmdW5jdGlvbiBBKCl7fUEuXyRyMj1mdW5jdGlvbihhSCl7aWYoYUg8MCl7cmV0dXJuIDA7fWVsc2V7aWYoYUg+MSl7cmV0dXJuIDE7fX1yZXR1cm4oMC41LTAuNSpNYXRoLmNvcyhhSCphQy5QSV9GKSk7fTtmdW5jdGlvbiBKKGFIKXtpZihqKXtyZXR1cm47fXRoaXMuXyRpYj1hSDt9Si5fJGZyPS0xO0oucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRpYjt9O2Z1bmN0aW9uIGIoKXtpZihqKXtyZXR1cm47fWEucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy5fJExQPS0xO3RoaXMuXyRkMD0wO3RoaXMuXyRZbz0wO3RoaXMuXyRKUD1udWxsO3RoaXMuXyQ1UD1udWxsO3RoaXMuXyRCUD1udWxsO3RoaXMuXyRFbz1udWxsO3RoaXMuXyRRaT1udWxsO3RoaXMuXyQ2cz1iLl8kbXM7dGhpcy5jdWxsaW5nPXRydWU7dGhpcy5nbF9jYWNoZUltYWdlPW51bGw7dGhpcy5pbnN0YW5jZU5vPWIuXyQ0MisrO31iLnByb3RvdHlwZT1uZXcgYSgpO2IuXyQ0Mj0wO2IuXyRPcz0zMDtiLl8kbXM9MDtiLl8kbnM9MTtiLl8kX3M9MjtiLl8kZ1Q9bmV3IEFycmF5KCk7Yi5wcm90b3R5cGUuXyRfUz1mdW5jdGlvbihhSCl7dGhpcy5fJExQPWFIO307Yi5wcm90b3R5cGUuZ2V0VGV4dHVyZU5vPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRMUDt9O2IucHJvdG90eXBlLl8kWkw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJFFpO307Yi5wcm90b3R5cGUuXyRIMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kSlA7fTtiLnByb3RvdHlwZS5nZXROdW1Qb2ludHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJGQwO307Yi5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiBhLl8kd2I7fTtiLnByb3RvdHlwZS5fJEIyPWZ1bmN0aW9uKGFMLGFILGFPKXt2YXIgYU09YUg7dmFyIGFOPShhTS5fJGhyIT1udWxsKT9hTS5fJGhyOmFNLl8kQ3I7dmFyIGFLPWF3Ll8kZG87c3dpdGNoKGFLKXtkZWZhdWx0OmNhc2UgYXcuXyRNczp0aHJvdyBuZXcgRXJyb3IoXCJfJEwgXyRybyBcIik7Y2FzZSBhdy5fJFFzOmZvcih2YXIgYUo9dGhpcy5fJGQwLTE7YUo+PTA7LS1hSil7dmFyIGFJPWFKKmF3Ll8kTm87YU5bYUkrNF09YU87fWJyZWFrO319O2IucHJvdG90eXBlLl8kelA9ZnVuY3Rpb24oKXt0aGlzLl8kR1M9bmV3IGcoKTt0aGlzLl8kR1MuXyR6UCgpO307Yi5wcm90b3R5cGUuXyRGMD1mdW5jdGlvbihhSyl7YS5wcm90b3R5cGUuXyRGMC5jYWxsKHRoaXMsYUspO3RoaXMuXyRMUD1hSy5fJDZMKCk7dGhpcy5fJGQwPWFLLl8kNkwoKTt0aGlzLl8kWW89YUsuXyQ2TCgpO3ZhciBhSD1hSy5fJG5QKCk7dGhpcy5fJEJQPW5ldyBJbnQxNkFycmF5KHRoaXMuXyRZbyozKTtmb3IodmFyIGFKPXRoaXMuXyRZbyozLTE7YUo+PTA7LS1hSil7dGhpcy5fJEJQW2FKXT1hSFthSl07fXRoaXMuXyRFbz1hSy5fJG5QKCk7dGhpcy5fJFFpPWFLLl8kblAoKTtpZihhSy5nZXRGb3JtYXRWZXJzaW9uKCk+PWF5Ll8kczcpe3RoaXMuXyRKUD1hSy5fJDZMKCk7aWYodGhpcy5fJEpQIT0wKXtpZigodGhpcy5fJEpQJjEpIT0wKXt2YXIgYUk9YUsuXyQ2TCgpO2lmKHRoaXMuXyQ1UD09bnVsbCl7dGhpcy5fJDVQPW5ldyBPYmplY3QoKTt9dGhpcy5fJDVQLl8kSGI9cGFyc2VJbnQoYUkpO31pZigodGhpcy5fJEpQJmIuXyRPcykhPTApe3RoaXMuXyQ2cz0odGhpcy5fJEpQJmIuXyRPcyk+PjE7fWVsc2V7dGhpcy5fJDZzPWIuXyRtczt9aWYoKHRoaXMuXyRKUCYzMikhPTApe3RoaXMuY3VsbGluZz1mYWxzZTt9fX1lbHNle3RoaXMuXyRKUD0wO319O2IucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYUwpe3ZhciBhTj1uZXcgYWcodGhpcyk7dmFyIGFJPXRoaXMuXyRkMCphdy5fJE5vO3ZhciBhSD10aGlzLl8kMzIoKTtpZihhTi5fJENyIT1udWxsKXthTi5fJENyPW51bGw7fWFOLl8kQ3I9bmV3IEZsb2F0MzJBcnJheShhSSk7aWYoYU4uXyRociE9bnVsbCl7YU4uXyRocj1udWxsO31hTi5fJGhyPWFIP25ldyBGbG9hdDMyQXJyYXkoYUkpOm51bGw7dmFyIGFNPWF3Ll8kZG87c3dpdGNoKGFNKXtkZWZhdWx0OmNhc2UgYXcuXyRNczppZihhdy5fJExzKXtmb3IodmFyIGFKPXRoaXMuXyRkMC0xO2FKPj0wOy0tYUope3ZhciBhTz1hSjw8MTt0aGlzLl8kUWlbYU8rMV09MS10aGlzLl8kUWlbYU8rMV07fX1icmVhaztjYXNlIGF3Ll8kUXM6Zm9yKHZhciBhSj10aGlzLl8kZDAtMTthSj49MDstLWFKKXt2YXIgYU89YUo8PDE7dmFyIGFLPWFKKmF3Ll8kTm87dmFyIGFRPXRoaXMuXyRRaVthT107dmFyIGFQPXRoaXMuXyRRaVthTysxXTthTi5fJENyW2FLXT1hUTthTi5fJENyW2FLKzFdPWFQO2FOLl8kQ3JbYUsrNF09MDtpZihhSCl7YU4uXyRoclthS109YVE7YU4uXyRoclthSysxXT1hUDthTi5fJGhyW2FLKzRdPTA7fX1icmVhazt9cmV0dXJuIGFOO307Yi5wcm90b3R5cGUuXyROcj1mdW5jdGlvbihhSixhSCl7dmFyIGFLPWFIO2lmKCEoKHRoaXM9PWFLLl8kR1QoKSkpKXtjb25zb2xlLmxvZyhcIiMjIyBhc3NlcnQhISAjIyMgXCIpO31pZighdGhpcy5fJEdTLl8kVXIoYUopKXtyZXR1cm47fWEucHJvdG90eXBlLl8kTnIuY2FsbCh0aGlzLGFKLGFLKTtpZihhSy5fJElTWzBdKXtyZXR1cm47fXZhciBhST1iLl8kZ1Q7YUlbMF09ZmFsc2U7YUcuXyRWcihhSix0aGlzLl8kR1MsYUksdGhpcy5fJGQwLHRoaXMuXyRFbyxhSy5fJENyLGF3Ll8kaTIsYXcuXyRObyk7fTtiLnByb3RvdHlwZS5fJDJiPWZ1bmN0aW9uKGFLLGFJKXt0cnl7aWYoISgodGhpcz09YUkuXyRHVCgpKSkpe2NvbnNvbGUubG9nKFwiIyMjIGFzc2VydCEhICMjIyBcIik7fXZhciBhTD1mYWxzZTtpZihhSS5fJElTWzBdKXthTD10cnVlO312YXIgYU09YUk7aWYoIWFMKXthLnByb3RvdHlwZS5fJDJiLmNhbGwodGhpcyxhSyk7aWYodGhpcy5fJDMyKCkpe3ZhciBhSD10aGlzLmdldFRhcmdldEJhc2VEYXRhSUQoKTtpZihhTS5fJDhyPT1hLl8kdXIpe2FNLl8kOHI9YUsuZ2V0QmFzZURhdGFJbmRleChhSCk7fWlmKGFNLl8kOHI8MCl7aWYoUS5fJHNvKXtxLl8kbGkoXCJfJEwgXyQwUCBfJEcgOjogJXNcIixhSCk7fX1lbHNle3ZhciBhTz1hSy5nZXRCYXNlRGF0YShhTS5fJDhyKTt2YXIgYUo9YUsuXyRxMihhTS5fJDhyKTtpZihhTyE9bnVsbCYmIWFKLl8keDIoKSl7YU8uXyRuYihhSyxhSixhTS5fJENyLGFNLl8kaHIsdGhpcy5fJGQwLGF3Ll8kaTIsYXcuXyRObyk7YU0uXyRBVD10cnVlO31lbHNle2FNLl8kQVQ9ZmFsc2U7fWFNLmJhc2VPcGFjaXR5PWFKLmdldFRvdGFsT3BhY2l0eSgpO319fX1jYXRjaChhTil7dGhyb3cgYU47fX07Yi5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbihhTixhSyxhSSl7aWYoISgodGhpcz09YUkuXyRHVCgpKSkpe2NvbnNvbGUubG9nKFwiIyMjIGFzc2VydCEhICMjIyBcIik7fWlmKGFJLl8kSVNbMF0pe3JldHVybjt9dmFyIGFMPWFJO3ZhciBhSj10aGlzLl8kTFA7aWYoYUo8MCl7YUo9MTt9dmFyIGFIPXRoaXMuZ2V0T3BhY2l0eShhSyxhTCkqYUkuXyRWUyphSS5iYXNlT3BhY2l0eTt2YXIgYU09KGFMLl8kaHIhPW51bGwpP2FMLl8kaHI6YUwuXyRDcjthTi5zZXRDbGlwQnVmUHJlX2NsaXBDb250ZXh0Rm9yRHJhdyhhSS5jbGlwQnVmUHJlX2NsaXBDb250ZXh0KTthTi5fJFdQKHRoaXMuY3VsbGluZyk7YU4uXyRVbyhhSiwzKnRoaXMuXyRZbyx0aGlzLl8kQlAsYU0sdGhpcy5fJFFpLGFILHRoaXMuXyQ2cyxhTCk7fTtiLnByb3RvdHlwZS5kdW1wPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coXCIgIF8keWkoICVkICkgLCBfJGQwKCAlZCApICwgXyRZbyggJWQgKSBcXG5cIix0aGlzLl8kTFAsdGhpcy5fJGQwLHRoaXMuXyRZbyk7Y29uc29sZS5sb2coXCIgIF8kT2kgXyRkaSA9IHsgXCIpO2Zvcih2YXIgYUo9MDthSjx0aGlzLl8kQlAubGVuZ3RoO2FKKyspe2NvbnNvbGUubG9nKFwiJTVkICxcIix0aGlzLl8kQlBbYUpdKTt9Y29uc29sZS5sb2coXCJcXG4gIF8kNWkgXyQzMFwiKTtmb3IodmFyIGFKPTA7YUo8dGhpcy5fJEVvLmxlbmd0aDthSisrKXtjb25zb2xlLmxvZyhcIlxcbiAgICBfJDMwWyVkXSA9IFwiLGFKKTt2YXIgYUg9dGhpcy5fJEVvW2FKXTtmb3IodmFyIGFJPTA7YUk8YUgubGVuZ3RoO2FJKyspe2NvbnNvbGUubG9nKFwiJTYuMmYsIFwiLGFIW2FJXSk7fX1jb25zb2xlLmxvZyhcIlxcblwiKTt9O2IucHJvdG90eXBlLl8kNzI9ZnVuY3Rpb24oYUgpe2lmKHRoaXMuXyQ1UD09bnVsbCl7cmV0dXJuIG51bGw7fXJldHVybiB0aGlzLl8kNVBbYUhdO307Yi5wcm90b3R5cGUuZ2V0SW5kZXhBcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kQlA7fTtmdW5jdGlvbiBhZyhhSCl7YUIucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxhSCk7dGhpcy5fJDhyPWEuXyR1cjt0aGlzLl8kQ3I9bnVsbDt0aGlzLl8kaHI9bnVsbDt9YWcucHJvdG90eXBlPW5ldyBhQigpO2FnLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1lZFBvaW50cz1mdW5jdGlvbigpe3JldHVybih0aGlzLl8kaHIhPW51bGwpP3RoaXMuXyRocjp0aGlzLl8kQ3I7fTtmdW5jdGlvbiBrKCl7aWYoail7cmV0dXJuO310aGlzLng9bnVsbDt0aGlzLnk9bnVsbDt9ay5wcm90b3R5cGUuXyRIVD1mdW5jdGlvbihhSCl7dGhpcy54PWFILng7dGhpcy55PWFILnk7fTtrLnByb3RvdHlwZS5fJEhUPWZ1bmN0aW9uKGFILGFJKXt0aGlzLng9YUg7dGhpcy55PWFJO307ZnVuY3Rpb24gbChhSCl7aWYoail7cmV0dXJuO31hYS5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzKTt0aGlzLmRyYXdQYXJhbVdlYkdMPW5ldyBDKGFIKTt0aGlzLmRyYXdQYXJhbVdlYkdMLnNldEdMKFEuZ2V0R0woYUgpKTt9bC5wcm90b3R5cGU9bmV3IGFhKCk7bC5sb2FkTW9kZWw9ZnVuY3Rpb24oYUkpe3ZhciBhSD1uZXcgbCgpO2FhLl8kNjIoYUgsYUkpO3JldHVybiBhSDt9O2wubG9hZE1vZGVsPWZ1bmN0aW9uKGFJLGFLKXt2YXIgYUo9YUt8fDA7dmFyIGFIPW5ldyBsKGFKKTthYS5fJDYyKGFILGFJKTtyZXR1cm4gYUg7fTtsLl8kdG89ZnVuY3Rpb24oKXt2YXIgYUg9bmV3IGwoKTtyZXR1cm4gYUg7fTtsLl8kZXI9ZnVuY3Rpb24oYU0pe3ZhciBhSj1uZXcgXyQ1KFwiLi4vXyRfci9fJHQwL18kUmkvXyRfUC5fJGRcIik7aWYoYUouZXhpc3RzKCk9PWZhbHNlKXt0aHJvdyBuZXcgXyRscyhcIl8kdDAgXyRfIF8kNiBfJFVpIDo6IFwiK2FKLl8kUEwoKSk7fXZhciBhSD1bXCIuLi9fJF9yL18kdDAvXyRSaS9fJF9QLjUxMi9fJENQLl8kMVwiLFwiLi4vXyRfci9fJHQwL18kUmkvXyRfUC41MTIvXyR2UC5fJDFcIixcIi4uL18kX3IvXyR0MC9fJFJpL18kX1AuNTEyL18kRVAuXyQxXCIsXCIuLi9fJF9yL18kdDAvXyRSaS9fJF9QLjUxMi9fJHBQLl8kMVwiXTt2YXIgYUs9bC5sb2FkTW9kZWwoYUouXyQzYigpKTtmb3IodmFyIGFJPTA7YUk8YUgubGVuZ3RoO2FJKyspe3ZhciBhTD1uZXcgXyQ1KGFIW2FJXSk7aWYoYUwuZXhpc3RzKCk9PWZhbHNlKXt0aHJvdyBuZXcgXyRscyhcIl8kdDAgXyRfIF8kNiBfJFVpIDo6IFwiK2FMLl8kUEwoKSk7fWFLLnNldFRleHR1cmUoYUksXyRuTC5fJF9vKGFNLGFMLl8kM2IoKSkpO31yZXR1cm4gYUs7fTtsLnByb3RvdHlwZS5zZXRHTD1mdW5jdGlvbihhSCl7US5zZXRHTChhSCk7fTtsLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm09ZnVuY3Rpb24oYUgpe3RoaXMuZHJhd1BhcmFtV2ViR0wuc2V0VHJhbnNmb3JtKGFIKTt9O2wucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuXyQ1Uy51cGRhdGUoKTt0aGlzLl8kNVMucHJlRHJhdyh0aGlzLmRyYXdQYXJhbVdlYkdMKTt9O2wucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXt0aGlzLl8kNVMuZHJhdyh0aGlzLmRyYXdQYXJhbVdlYkdMKTt9O2wucHJvdG90eXBlLl8kSzI9ZnVuY3Rpb24oKXt0aGlzLmRyYXdQYXJhbVdlYkdMLl8kSzIoKTt9O2wucHJvdG90eXBlLnNldFRleHR1cmU9ZnVuY3Rpb24oYUksYUgpe2lmKHRoaXMuZHJhd1BhcmFtV2ViR0w9PW51bGwpe3EuXyRsaShcIl8kWWkgZm9yIFFUIF8ka2kgLyBfJFhTKCkgaXMgXyQ2IF8kdWkhIVwiKTt9dGhpcy5kcmF3UGFyYW1XZWJHTC5zZXRUZXh0dXJlKGFJLGFIKTt9O2wucHJvdG90eXBlLnNldFRleHR1cmU9ZnVuY3Rpb24oYUksYUgpe2lmKHRoaXMuZHJhd1BhcmFtV2ViR0w9PW51bGwpe3EuXyRsaShcIl8kWWkgZm9yIFFUIF8ka2kgLyBfJFhTKCkgaXMgXyQ2IF8kdWkhIVwiKTt9dGhpcy5kcmF3UGFyYW1XZWJHTC5zZXRUZXh0dXJlKGFJLGFIKTt9O2wucHJvdG90eXBlLl8kUnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcmF3UGFyYW1XZWJHTC5fJFJzKCk7fTtsLnByb3RvdHlwZS5fJERzPWZ1bmN0aW9uKGFIKXt0aGlzLmRyYXdQYXJhbVdlYkdMLl8kRHMoYUgpO307bC5wcm90b3R5cGUuZ2V0RHJhd1BhcmFtPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZHJhd1BhcmFtV2ViR0w7fTtsLnByb3RvdHlwZS5zZXRNYXRyaXg9ZnVuY3Rpb24oYUgpe3RoaXMuZHJhd1BhcmFtV2ViR0wuc2V0TWF0cml4KGFIKTt9O2wucHJvdG90eXBlLnNldFByZW11bHRpcGxpZWRBbHBoYT1mdW5jdGlvbihhSCl7dGhpcy5kcmF3UGFyYW1XZWJHTC5zZXRQcmVtdWx0aXBsaWVkQWxwaGEoYUgpO307bC5wcm90b3R5cGUuaXNQcmVtdWx0aXBsaWVkQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcmF3UGFyYW1XZWJHTC5pc1ByZW11bHRpcGxpZWRBbHBoYSgpO307bC5wcm90b3R5cGUuc2V0QW5pc290cm9weT1mdW5jdGlvbihhSCl7dGhpcy5kcmF3UGFyYW1XZWJHTC5zZXRBbmlzb3Ryb3B5KGFIKTt9O2wucHJvdG90eXBlLmdldEFuaXNvdHJvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcmF3UGFyYW1XZWJHTC5nZXRBbmlzb3Ryb3B5KCk7fTtmdW5jdGlvbiBWKCl7aWYoail7cmV0dXJuO310aGlzLm1vdGlvbnM9bnVsbDt0aGlzLl8kZWI9ZmFsc2U7dGhpcy5tb3Rpb25zPW5ldyBBcnJheSgpO31WLnByb3RvdHlwZS5fJHRiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW90aW9uczt9O1YucHJvdG90eXBlLnN0YXJ0TW90aW9uPWZ1bmN0aW9uKGFKLGFJKXt2YXIgYU09bnVsbDt2YXIgYUw9bnVsbDt2YXIgYUg9dGhpcy5tb3Rpb25zLmxlbmd0aDtmb3IodmFyIGFLPTA7YUs8YUg7KythSyl7YUw9dGhpcy5tb3Rpb25zW2FLXTtpZihhTD09bnVsbCl7Y29udGludWU7fWFMLl8kcVMoYUwuXyR3MC5nZXRGYWRlT3V0KCkpO2lmKHRoaXMuXyRlYil7cS5fJEppKFwiTW90aW9uUXVldWVNYW5hZ2VyW3NpemU6JTJkXS0+c3RhcnRNb3Rpb24oKSAvIHN0YXJ0IF8kSyBfJDMgKG0lZClcXG5cIixhSCxhTC5fJHNyKTt9fWlmKGFKPT1udWxsKXtyZXR1cm4gLTE7fWFMPW5ldyBNKCk7YUwuXyR3MD1hSjt0aGlzLm1vdGlvbnMucHVzaChhTCk7dmFyIGFOPWFMLl8kc3I7aWYodGhpcy5fJGViKXtxLl8kSmkoXCJNb3Rpb25RdWV1ZU1hbmFnZXJbc2l6ZTolMmRdLT5zdGFydE1vdGlvbigpIC8gbmV3IF8kdzAgKG0lZClcXG5cIixhSCxhTik7fXJldHVybiBhTjt9O1YucHJvdG90eXBlLnVwZGF0ZVBhcmFtPWZ1bmN0aW9uKGFKKXt0cnl7dmFyIGFJPWZhbHNlO2Zvcih2YXIgYUs9MDthSzx0aGlzLm1vdGlvbnMubGVuZ3RoO2FLKyspe3ZhciBhTD10aGlzLm1vdGlvbnNbYUtdO2lmKGFMPT1udWxsKXt0aGlzLm1vdGlvbnMuc3BsaWNlKGFLLDEpO2FLLS07Y29udGludWU7fXZhciBhSD1hTC5fJHcwO2lmKGFIPT1udWxsKXt0aGlzLm1vdGlvbnM9dGhpcy5tb3Rpb25zLnNwbGljZShhSywxKTthSy0tO2NvbnRpbnVlO31hSC51cGRhdGVQYXJhbShhSixhTCk7YUk9dHJ1ZTtpZihhTC5pc0ZpbmlzaGVkKCkpe2lmKHRoaXMuXyRlYil7cS5fJEppKFwiTW90aW9uUXVldWVNYW5hZ2VyW3NpemU6JTJkXS0+dXBkYXRlUGFyYW0oKSAvIF8kVDAgXyR3MCAobSVkKVxcblwiLHRoaXMubW90aW9ucy5sZW5ndGgtMSxhTC5fJHNyKTt9dGhpcy5tb3Rpb25zLnNwbGljZShhSywxKTthSy0tO31lbHNle319cmV0dXJuIGFJO31jYXRjaChhTSl7cS5fJGxpKGFNKTtyZXR1cm4gdHJ1ZTt9fTtWLnByb3RvdHlwZS5pc0ZpbmlzaGVkPWZ1bmN0aW9uKGFLKXtpZihhcmd1bWVudHMubGVuZ3RoPj0xKXtmb3IodmFyIGFJPTA7YUk8dGhpcy5tb3Rpb25zLmxlbmd0aDthSSsrKXt2YXIgYUo9dGhpcy5tb3Rpb25zW2FJXTtpZihhSj09bnVsbCl7Y29udGludWU7fWlmKGFKLl8kc3I9PWFLJiYhYUouaXNGaW5pc2hlZCgpKXtyZXR1cm4gZmFsc2U7fX1yZXR1cm4gdHJ1ZTt9ZWxzZXtmb3IodmFyIGFJPTA7YUk8dGhpcy5tb3Rpb25zLmxlbmd0aDthSSsrKXt2YXIgYUo9dGhpcy5tb3Rpb25zW2FJXTtpZihhSj09bnVsbCl7dGhpcy5tb3Rpb25zLnNwbGljZShhSSwxKTthSS0tO2NvbnRpbnVlO312YXIgYUg9YUouXyR3MDtpZihhSD09bnVsbCl7dGhpcy5tb3Rpb25zLnNwbGljZShhSSwxKTthSS0tO2NvbnRpbnVlO31pZighYUouaXNGaW5pc2hlZCgpKXtyZXR1cm4gZmFsc2U7fX1yZXR1cm4gdHJ1ZTt9fTtWLnByb3RvdHlwZS5zdG9wQWxsTW90aW9ucz1mdW5jdGlvbigpe2Zvcih2YXIgYUk9MDthSTx0aGlzLm1vdGlvbnMubGVuZ3RoO2FJKyspe3ZhciBhSj10aGlzLm1vdGlvbnNbYUldO2lmKGFKPT1udWxsKXt0aGlzLm1vdGlvbnMuc3BsaWNlKGFJLDEpO2FJLS07Y29udGludWU7fXZhciBhSD1hSi5fJHcwO2lmKGFIPT1udWxsKXt0aGlzLm1vdGlvbnMuc3BsaWNlKGFJLDEpO2FJLS07Y29udGludWU7fWlmKHRydWUpe3RoaXMubW90aW9ucy5zcGxpY2UoYUksMSk7YUktLTt9fX07Vi5wcm90b3R5cGUuXyRacj1mdW5jdGlvbihhSCl7dGhpcy5fJGViPWFIO307Vi5wcm90b3R5cGUuXyRlPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coXCItLSBfJFIgLS1cXG5cIik7Zm9yKHZhciBhSD0wO2FIPHRoaXMubW90aW9ucy5sZW5ndGg7YUgrKyl7dmFyIGFJPXRoaXMubW90aW9uc1thSF07dmFyIGFKPWFJLl8kdzA7Y29uc29sZS5sb2coXCJNb3Rpb25RdWV1ZUVudFslZF0gOjogJXNcXG5cIix0aGlzLm1vdGlvbnMubGVuZ3RoLGFKLnRvU3RyaW5nKCkpO319O2Z1bmN0aW9uIE0oKXt0aGlzLl8kdzA9bnVsbDt0aGlzLl8kQVQ9dHJ1ZTt0aGlzLl8kOUw9ZmFsc2U7dGhpcy5fJHoyPS0xO3RoaXMuXyRicz0tMTt0aGlzLl8kRG89LTE7dGhpcy5fJHNyPW51bGw7dGhpcy5fJHNyPU0uXyRHcysrO31NLl8kR3M9MDtNLnByb3RvdHlwZS5pc0ZpbmlzaGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyQ5TDt9O00ucHJvdG90eXBlLl8kcVM9ZnVuY3Rpb24oYUope3ZhciBhST1QLmdldFVzZXJUaW1lTVNlYygpO3ZhciBhSD1hSSthSjtpZih0aGlzLl8kRG88MHx8YUg8dGhpcy5fJERvKXt0aGlzLl8kRG89YUg7fX07TS5wcm90b3R5cGUuXyRCcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kc3I7fTtmdW5jdGlvbiBhbSgpe3RoaXMubT1uZXcgQXJyYXkoMSwwLDAsMCwxLDAsMCwwLDEpO31hbS5wcm90b3R5cGUuc2V0Q29udGV4dD1mdW5jdGlvbihhSSl7dmFyIGFIPXRoaXMubTthSS50cmFuc2Zvcm0oYUhbMF0sYUhbMV0sYUhbM10sYUhbNF0sYUhbNl0sYUhbN10pO307YW0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGFJPVwiTERUcmFuc2Zvcm0geyBcIjtmb3IodmFyIGFIPTA7YUg8OTthSCsrKXthSSs9dGhpcy5tW2FIXS50b0ZpeGVkKDIpK1wiICxcIjt9YUkrPVwiIH1cIjtyZXR1cm4gYUk7fTthbS5wcm90b3R5cGUuaWRlbnRpdHk9ZnVuY3Rpb24oKXt2YXIgYUg9dGhpcy5tO2FIWzBdPWFIWzRdPWFIWzhdPTE7YUhbMV09YUhbMl09YUhbM109YUhbNV09YUhbNl09YUhbN109MDt9O2FtLnByb3RvdHlwZS5fJFBTPWZ1bmN0aW9uKGFJLGFLLGFKKXtpZihhSj09bnVsbCl7YUo9bmV3IEFycmF5KDAsMCk7fXZhciBhSD10aGlzLm07YUpbMF09YUhbMF0qYUkrYUhbM10qYUsrYUhbNl07YUpbMV09YUhbMV0qYUkrYUhbNF0qYUsrYUhbN107cmV0dXJuIGFKO307YW0ucHJvdG90eXBlLl8kUDI9ZnVuY3Rpb24oYUspe2lmKCFhSyl7YUs9bmV3IGFtKCk7fXZhciBhST10aGlzLm07dmFyIGFUPWFJWzBdO3ZhciBhUz1hSVsxXTt2YXIgYVI9YUlbMl07dmFyIGFRPWFJWzNdO3ZhciBhUD1hSVs0XTt2YXIgYU89YUlbNV07dmFyIGFOPWFJWzZdO3ZhciBhTT1hSVs3XTt2YXIgYUw9YUlbOF07dmFyIGFKPWFUKmFQKmFMK2FTKmFPKmFOK2FSKmFRKmFNLWFUKmFPKmFNLWFSKmFQKmFOLWFTKmFRKmFMO2lmKGFKPT0wKXtyZXR1cm4gbnVsbDt9ZWxzZXt2YXIgYUg9MS9hSjthSy5tWzBdPWFIKihhUCphTC1hTSphTyk7YUsubVsxXT1hSCooYU0qYVItYVMqYUwpO2FLLm1bMl09YUgqKGFTKmFPLWFQKmFSKTthSy5tWzNdPWFIKihhTiphTy1hUSphTCk7YUsubVs0XT1hSCooYVQqYUwtYU4qYVIpO2FLLm1bNV09YUgqKGFRKmFSLWFUKmFPKTthSy5tWzZdPWFIKihhUSphTS1hTiphUCk7YUsubVs3XT1hSCooYU4qYVMtYVQqYU0pO2FLLm1bOF09YUgqKGFUKmFQLWFRKmFTKTtyZXR1cm4gYUs7fX07YW0ucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihhSSxhSyxhSil7aWYoYUo9PW51bGwpe2FKPW5ldyBBcnJheSgwLDApO312YXIgYUg9dGhpcy5tO2FKWzBdPWFIWzBdKmFJK2FIWzNdKmFLK2FIWzZdO2FKWzFdPWFIWzFdKmFJK2FIWzRdKmFLK2FIWzddO3JldHVybiBhSjt9O2FtLnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oYUksYUope3ZhciBhSD10aGlzLm07YUhbNl09YUhbMF0qYUkrYUhbM10qYUorYUhbNl07YUhbN109YUhbMV0qYUkrYUhbNF0qYUorYUhbN107YUhbOF09YUhbMl0qYUkrYUhbNV0qYUorYUhbOF07fTthbS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24oYUosYUkpe3ZhciBhSD10aGlzLm07YUhbMF0qPWFKO2FIWzFdKj1hSjthSFsyXSo9YUo7YUhbM10qPWFJO2FIWzRdKj1hSTthSFs1XSo9YUk7fTthbS5wcm90b3R5cGUuc2hlYXI9ZnVuY3Rpb24oYU0sYUwpe3ZhciBhSD10aGlzLm07dmFyIGFLPWFIWzBdK2FIWzNdKmFMO3ZhciBhSj1hSFsxXSthSFs0XSphTDt2YXIgYUk9YUhbMl0rYUhbNV0qYUw7YUhbM109YUhbMF0qYU0rYUhbM107YUhbNF09YUhbMV0qYU0rYUhbNF07YUhbNV09YUhbMl0qYU0rYUhbNV07YUhbMF09YUs7YUhbMV09YUo7YUhbMl09YUk7fTthbS5wcm90b3R5cGUucm90YXRlPWZ1bmN0aW9uKGFNKXt2YXIgYUg9dGhpcy5tO3ZhciBhTj1NYXRoLmNvcyhhTSk7dmFyIGFMPU1hdGguc2luKGFNKTt2YXIgYUs9YUhbMF0qYU4rYUhbM10qYUw7dmFyIGFKPWFIWzFdKmFOK2FIWzRdKmFMO3ZhciBhST1hSFsyXSphTithSFs1XSphTDthSFszXT0tYUhbMF0qYUwrYUhbM10qYU47YUhbNF09LWFIWzFdKmFMK2FIWzRdKmFOO2FIWzVdPS1hSFsyXSphTCthSFs1XSphTjthSFswXT1hSzthSFsxXT1hSjthSFsyXT1hSTt9O2FtLnByb3RvdHlwZS5jb25jYXRlbmF0ZT1mdW5jdGlvbihhTCl7dmFyIGFPPXRoaXMubTt2YXIgYU09YUwubTt2YXIgYVM9YU9bMF0qYU1bMF0rYU9bM10qYU1bMV0rYU9bNl0qYU1bMl07dmFyIGFSPWFPWzFdKmFNWzBdK2FPWzRdKmFNWzFdK2FPWzddKmFNWzJdO3ZhciBhUT1hT1syXSphTVswXSthT1s1XSphTVsxXSthT1s4XSphTVsyXTt2YXIgYVA9YU9bMF0qYU1bM10rYU9bM10qYU1bNF0rYU9bNl0qYU1bNV07dmFyIGFOPWFPWzFdKmFNWzNdK2FPWzRdKmFNWzRdK2FPWzddKmFNWzVdO3ZhciBhSz1hT1syXSphTVszXSthT1s1XSphTVs0XSthT1s4XSphTVs1XTt2YXIgYUo9YU9bMF0qYU1bNl0rYU9bM10qYU1bN10rYU9bNl0qYU1bOF07dmFyIGFJPWFPWzFdKmFNWzZdK2FPWzRdKmFNWzddK2FPWzddKmFNWzhdO3ZhciBhSD1hT1syXSphTVs2XSthT1s1XSphTVs3XSthT1s4XSphTVs4XTttWzBdPWFTO21bMV09YVI7bVsyXT1hUTttWzNdPWFQO21bNF09YU47bVs1XT1hSzttWzZdPWFKO21bN109YUk7bVs4XT1hSDt9O2Z1bmN0aW9uIG4oYUgpe2lmKGope3JldHVybjt9YWsucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxhSCk7fW4ucHJvdG90eXBlPW5ldyBhaygpO24uXyRlVD1udWxsO24uXyR0UD1uZXcgT2JqZWN0KCk7bi5fJDJvPWZ1bmN0aW9uKCl7aWYobi5fJGVUPT1udWxsKXtuLl8kZVQ9bi5nZXRJRChcIkRTVF9CQVNFXCIpO31yZXR1cm4gbi5fJGVUO307bi5fJDI3PWZ1bmN0aW9uKCl7bi5fJHRQLmNsZWFyKCk7bi5fJGVUPW51bGw7fTtuLmdldElEPWZ1bmN0aW9uKGFIKXt2YXIgYUk9bi5fJHRQW2FIXTtpZihhST09bnVsbCl7YUk9bmV3IG4oYUgpO24uXyR0UFthSF09YUk7fXJldHVybiBhSTt9O24ucHJvdG90eXBlLl8kM3M9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4oKTt9O2Z1bmN0aW9uIEMoYUgpe2lmKGope3JldHVybjt9YXgucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyk7dGhpcy50ZXh0dXJlcz1uZXcgQXJyYXkoKTt0aGlzLnRyYW5zZm9ybT1udWxsO3RoaXMuZ2w9bnVsbDt0aGlzLmdsbm89YUg7dGhpcy5maXJzdERyYXc9dHJ1ZTt0aGlzLmFuaXNvdHJvcHlFeHQ9bnVsbDt0aGlzLm1heEFuaXNvdHJvcHk9MDt0aGlzLl8kQXM9MzI7dGhpcy5fJEdyPWZhbHNlO3RoaXMuXyROVD1udWxsO3RoaXMuXyR2Uz1udWxsO3RoaXMuXyRubz1udWxsO3RoaXMudmVydFNoYWRlcj1udWxsO3RoaXMuZnJhZ1NoYWRlcj1udWxsO3RoaXMudmVydFNoYWRlck9mZj1udWxsO3RoaXMuZnJhZ1NoYWRlck9mZj1udWxsO31DLnByb3RvdHlwZT1uZXcgYXgoKTtDLl8kOXI9ZnVuY3Rpb24oYUgpe3ZhciBhST1uZXcgRmxvYXQzMkFycmF5KGFIKTtyZXR1cm4gYUk7fTtDLl8kdmI9ZnVuY3Rpb24oYUgpe3ZhciBhST1uZXcgSW50MTZBcnJheShhSCk7cmV0dXJuIGFJO307Qy5fJGNyPWZ1bmN0aW9uKGFJLGFIKXtpZihhST09bnVsbHx8YUkuXyR5TCgpPGFILmxlbmd0aCl7YUk9Qy5fJDlyKGFILmxlbmd0aCoyKTthSS5wdXQoYUgpO2FJLl8kb1QoMCk7fWVsc2V7YUkuY2xlYXIoKTthSS5wdXQoYUgpO2FJLl8kb1QoMCk7fXJldHVybiBhSTt9O0MuXyRtYj1mdW5jdGlvbihhSSxhSCl7aWYoYUk9PW51bGx8fGFJLl8keUwoKTxhSC5sZW5ndGgpe2FJPUMuXyR2YihhSC5sZW5ndGgqMik7YUkucHV0KGFIKTthSS5fJG9UKDApO31lbHNle2FJLmNsZWFyKCk7YUkucHV0KGFIKTthSS5fJG9UKDApO31yZXR1cm4gYUk7fTtDLl8kSHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJEdyO307Qy5fJGFzPWZ1bmN0aW9uKGFIKXt0aGlzLl8kR3I9YUg7fTtDLnByb3RvdHlwZS5nZXRHTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsO307Qy5wcm90b3R5cGUuc2V0R0w9ZnVuY3Rpb24oYUgpe3RoaXMuZ2w9YUg7fTtDLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm09ZnVuY3Rpb24oYUgpe3RoaXMudHJhbnNmb3JtPWFIO307Qy5wcm90b3R5cGUuXyRaVD1mdW5jdGlvbigpe3ZhciBhSD10aGlzLmdsO2lmKHRoaXMuZmlyc3REcmF3KXt0aGlzLmluaXRTaGFkZXIoKTt0aGlzLmZpcnN0RHJhdz1mYWxzZTt0aGlzLmFuaXNvdHJvcHlFeHQ9YUguZ2V0RXh0ZW5zaW9uKFwiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljXCIpfHxhSC5nZXRFeHRlbnNpb24oXCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljXCIpfHxhSC5nZXRFeHRlbnNpb24oXCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljXCIpO2lmKHRoaXMuYW5pc290cm9weUV4dCl7dGhpcy5tYXhBbmlzb3Ryb3B5PWFILmdldFBhcmFtZXRlcih0aGlzLmFuaXNvdHJvcHlFeHQuTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTt9fWFILmRpc2FibGUoYUguU0NJU1NPUl9URVNUKTthSC5kaXNhYmxlKGFILlNURU5DSUxfVEVTVCk7YUguZGlzYWJsZShhSC5ERVBUSF9URVNUKTthSC5mcm9udEZhY2UoYUguQ1cpO2FILmVuYWJsZShhSC5CTEVORCk7YUguY29sb3JNYXNrKDEsMSwxLDEpO2FILmJpbmRCdWZmZXIoYUguQVJSQVlfQlVGRkVSLG51bGwpO2FILmJpbmRCdWZmZXIoYUguRUxFTUVOVF9BUlJBWV9CVUZGRVIsbnVsbCk7fTtDLnByb3RvdHlwZS5fJFVvPWZ1bmN0aW9uKGFTLGFULGFMLGFVLGFWLGFOLGFNLGFPKXtpZihhTjwwLjAxJiZ0aGlzLmNsaXBCdWZQcmVfY2xpcENvbnRleHRNYXNrPT1udWxsKXtyZXR1cm47fXZhciBhSD1hTj4wLjk/US5FWFBBTkRfVzowO3ZhciBhMD10aGlzLmdsO2lmKHRoaXMuZ2w9PW51bGwpe3Rocm93IG5ldyBFcnJvcihcImdsIGlzIG51bGxcIik7fXZhciBhMT1mYWxzZTt2YXIgYVE9MTt2YXIgYVA9MTt2YXIgYTM9MTt2YXIgYVo9MTt2YXIgYVc9dGhpcy5fJEMwKmFQKmFOO3ZhciBhMj10aGlzLl8kdFQqYTMqYU47dmFyIGE1PXRoaXMuXyRXTCphWiphTjt2YXIgYTc9dGhpcy5fJGxUKmFOO2lmKHRoaXMuY2xpcEJ1ZlByZV9jbGlwQ29udGV4dE1hc2shPW51bGwpe2EwLmZyb250RmFjZShhMC5DQ1cpO2EwLnVzZVByb2dyYW0odGhpcy5zaGFkZXJQcm9ncmFtKTt0aGlzLl8kdlM9VChhMCx0aGlzLl8kdlMsYVUpO3RoaXMuXyRubz1MKGEwLHRoaXMuXyRubyxhTCk7YTAuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5hX3Bvc2l0aW9uX0xvYyk7YTAudmVydGV4QXR0cmliUG9pbnRlcih0aGlzLmFfcG9zaXRpb25fTG9jLDIsYTAuRkxPQVQsZmFsc2UsMCwwKTt0aGlzLl8kTlQ9VChhMCx0aGlzLl8kTlQsYVYpO2EwLmFjdGl2ZVRleHR1cmUoYTAuVEVYVFVSRTEpO2EwLmJpbmRUZXh0dXJlKGEwLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlc1thU10pO2EwLnVuaWZvcm0xaSh0aGlzLnNfdGV4dHVyZTBfTG9jLDEpO2EwLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHRoaXMuYV90ZXhDb29yZF9Mb2MpO2EwLnZlcnRleEF0dHJpYlBvaW50ZXIodGhpcy5hX3RleENvb3JkX0xvYywyLGEwLkZMT0FULGZhbHNlLDAsMCk7YTAudW5pZm9ybU1hdHJpeDRmdih0aGlzLnVfbWF0cml4X0xvYyxmYWxzZSx0aGlzLmdldENsaXBCdWZQcmVfY2xpcENvbnRleHRNYXNrKCkubWF0cml4Rm9yTWFzayk7dmFyIGFZPXRoaXMuZ2V0Q2xpcEJ1ZlByZV9jbGlwQ29udGV4dE1hc2soKS5sYXlvdXRDaGFubmVsTm87dmFyIGE0PXRoaXMuZ2V0Q2hhbm5lbEZsYWdBc0NvbG9yKGFZKTthMC51bmlmb3JtNGYodGhpcy51X2NoYW5uZWxGbGFnLGE0LnIsYTQuZyxhNC5iLGE0LmEpO3ZhciBhST10aGlzLmdldENsaXBCdWZQcmVfY2xpcENvbnRleHRNYXNrKCkubGF5b3V0Qm91bmRzO2EwLnVuaWZvcm00Zih0aGlzLnVfYmFzZUNvbG9yX0xvYyxhSS54KjItMSxhSS55KjItMSxhSS5fJEVMKCkqMi0xLGFJLl8kNVQoKSoyLTEpO2EwLnVuaWZvcm0xaSh0aGlzLnVfbWFza0ZsYWdfTG9jLHRydWUpO31lbHNle2ExPXRoaXMuZ2V0Q2xpcEJ1ZlByZV9jbGlwQ29udGV4dERyYXcoKSE9bnVsbDtpZihhMSl7YTAudXNlUHJvZ3JhbSh0aGlzLnNoYWRlclByb2dyYW1PZmYpO3RoaXMuXyR2Uz1UKGEwLHRoaXMuXyR2UyxhVSk7dGhpcy5fJG5vPUwoYTAsdGhpcy5fJG5vLGFMKTthMC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0aGlzLmFfcG9zaXRpb25fTG9jX09mZik7YTAudmVydGV4QXR0cmliUG9pbnRlcih0aGlzLmFfcG9zaXRpb25fTG9jX09mZiwyLGEwLkZMT0FULGZhbHNlLDAsMCk7dGhpcy5fJE5UPVQoYTAsdGhpcy5fJE5ULGFWKTthMC5hY3RpdmVUZXh0dXJlKGEwLlRFWFRVUkUxKTthMC5iaW5kVGV4dHVyZShhMC5URVhUVVJFXzJELHRoaXMudGV4dHVyZXNbYVNdKTthMC51bmlmb3JtMWkodGhpcy5zX3RleHR1cmUwX0xvY19PZmYsMSk7YTAuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5hX3RleENvb3JkX0xvY19PZmYpO2EwLnZlcnRleEF0dHJpYlBvaW50ZXIodGhpcy5hX3RleENvb3JkX0xvY19PZmYsMixhMC5GTE9BVCxmYWxzZSwwLDApO2EwLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy51X2NsaXBNYXRyaXhfTG9jX09mZixmYWxzZSx0aGlzLmdldENsaXBCdWZQcmVfY2xpcENvbnRleHREcmF3KCkubWF0cml4Rm9yRHJhdyk7YTAudW5pZm9ybU1hdHJpeDRmdih0aGlzLnVfbWF0cml4X0xvY19PZmYsZmFsc2UsdGhpcy5tYXRyaXg0eDQpO2EwLmFjdGl2ZVRleHR1cmUoYTAuVEVYVFVSRTIpO2EwLmJpbmRUZXh0dXJlKGEwLlRFWFRVUkVfMkQsUS5mVGV4dHVyZVt0aGlzLmdsbm9dKTthMC51bmlmb3JtMWkodGhpcy5zX3RleHR1cmUxX0xvY19PZmYsMik7dmFyIGFZPXRoaXMuZ2V0Q2xpcEJ1ZlByZV9jbGlwQ29udGV4dERyYXcoKS5sYXlvdXRDaGFubmVsTm87dmFyIGE0PXRoaXMuZ2V0Q2hhbm5lbEZsYWdBc0NvbG9yKGFZKTthMC51bmlmb3JtNGYodGhpcy51X2NoYW5uZWxGbGFnX0xvY19PZmYsYTQucixhNC5nLGE0LmIsYTQuYSk7YTAudW5pZm9ybTRmKHRoaXMudV9iYXNlQ29sb3JfTG9jX09mZixhVyxhMixhNSxhNyk7fWVsc2V7YTAudXNlUHJvZ3JhbSh0aGlzLnNoYWRlclByb2dyYW0pO3RoaXMuXyR2Uz1UKGEwLHRoaXMuXyR2UyxhVSk7dGhpcy5fJG5vPUwoYTAsdGhpcy5fJG5vLGFMKTthMC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0aGlzLmFfcG9zaXRpb25fTG9jKTthMC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHRoaXMuYV9wb3NpdGlvbl9Mb2MsMixhMC5GTE9BVCxmYWxzZSwwLDApO3RoaXMuXyROVD1UKGEwLHRoaXMuXyROVCxhVik7YTAuYWN0aXZlVGV4dHVyZShhMC5URVhUVVJFMSk7YTAuYmluZFRleHR1cmUoYTAuVEVYVFVSRV8yRCx0aGlzLnRleHR1cmVzW2FTXSk7YTAudW5pZm9ybTFpKHRoaXMuc190ZXh0dXJlMF9Mb2MsMSk7YTAuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5hX3RleENvb3JkX0xvYyk7YTAudmVydGV4QXR0cmliUG9pbnRlcih0aGlzLmFfdGV4Q29vcmRfTG9jLDIsYTAuRkxPQVQsZmFsc2UsMCwwKTthMC51bmlmb3JtTWF0cml4NGZ2KHRoaXMudV9tYXRyaXhfTG9jLGZhbHNlLHRoaXMubWF0cml4NHg0KTthMC51bmlmb3JtNGYodGhpcy51X2Jhc2VDb2xvcl9Mb2MsYVcsYTIsYTUsYTcpO2EwLnVuaWZvcm0xaSh0aGlzLnVfbWFza0ZsYWdfTG9jLGZhbHNlKTt9fWlmKHRoaXMuY3VsbGluZyl7dGhpcy5nbC5lbmFibGUoYTAuQ1VMTF9GQUNFKTt9ZWxzZXt0aGlzLmdsLmRpc2FibGUoYTAuQ1VMTF9GQUNFKTt9dGhpcy5nbC5lbmFibGUoYTAuQkxFTkQpO3ZhciBhNjt2YXIgYVg7dmFyIGFSO3ZhciBhSztpZih0aGlzLmNsaXBCdWZQcmVfY2xpcENvbnRleHRNYXNrIT1udWxsKXthNj1hMC5PTkU7YVg9YTAuT05FX01JTlVTX1NSQ19BTFBIQTthUj1hMC5PTkU7YUs9YTAuT05FX01JTlVTX1NSQ19BTFBIQTt9ZWxzZXtzd2l0Y2goYU0pe2Nhc2UgYi5fJG1zOmE2PWEwLk9ORTthWD1hMC5PTkVfTUlOVVNfU1JDX0FMUEhBO2FSPWEwLk9ORTthSz1hMC5PTkVfTUlOVVNfU1JDX0FMUEhBO2JyZWFrO2Nhc2UgYi5fJG5zOmE2PWEwLk9ORTthWD1hMC5PTkU7YVI9YTAuWkVSTzthSz1hMC5PTkU7YnJlYWs7Y2FzZSBiLl8kX3M6YTY9YTAuRFNUX0NPTE9SO2FYPWEwLk9ORV9NSU5VU19TUkNfQUxQSEE7YVI9YTAuWkVSTzthSz1hMC5PTkU7YnJlYWs7fX1hMC5ibGVuZEVxdWF0aW9uU2VwYXJhdGUoYTAuRlVOQ19BREQsYTAuRlVOQ19BREQpO2EwLmJsZW5kRnVuY1NlcGFyYXRlKGE2LGFYLGFSLGFLKTtpZih0aGlzLmFuaXNvdHJvcHlFeHQpe2EwLnRleFBhcmFtZXRlcmkoYTAuVEVYVFVSRV8yRCx0aGlzLmFuaXNvdHJvcHlFeHQuVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQsdGhpcy5tYXhBbmlzb3Ryb3B5KTt9dmFyIGFKPWFMLmxlbmd0aDthMC5kcmF3RWxlbWVudHMoYTAuVFJJQU5HTEVTLGFKLGEwLlVOU0lHTkVEX1NIT1JULDApO2EwLmJpbmRUZXh0dXJlKGEwLlRFWFRVUkVfMkQsbnVsbCk7fTtmdW5jdGlvbiBUKGFKLGFILGFJKXtpZihhSD09bnVsbCl7YUg9YUouY3JlYXRlQnVmZmVyKCk7fWFKLmJpbmRCdWZmZXIoYUouQVJSQVlfQlVGRkVSLGFIKTthSi5idWZmZXJEYXRhKGFKLkFSUkFZX0JVRkZFUixhSSxhSi5EWU5BTUlDX0RSQVcpO3JldHVybiBhSDt9ZnVuY3Rpb24gTChhSixhSCxhSSl7aWYoYUg9PW51bGwpe2FIPWFKLmNyZWF0ZUJ1ZmZlcigpO31hSi5iaW5kQnVmZmVyKGFKLkVMRU1FTlRfQVJSQVlfQlVGRkVSLGFIKTthSi5idWZmZXJEYXRhKGFKLkVMRU1FTlRfQVJSQVlfQlVGRkVSLGFJLGFKLkRZTkFNSUNfRFJBVyk7cmV0dXJuIGFIO31DLnByb3RvdHlwZS5fJFJzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwiXyRSc1wiKTt9O0MucHJvdG90eXBlLl8kRHM9ZnVuY3Rpb24oYUgpe3Rocm93IG5ldyBFcnJvcihcIl8kRHNcIik7fTtDLnByb3RvdHlwZS5fJEsyPWZ1bmN0aW9uKCl7Zm9yKHZhciBhSD0wO2FIPHRoaXMudGV4dHVyZXMubGVuZ3RoO2FIKyspe3ZhciBhST10aGlzLnRleHR1cmVzW2FIXTtpZihhSSE9MCl7dGhpcy5nbC5fJEsyKDEsdGhpcy50ZXh0dXJlcyxhSCk7dGhpcy50ZXh0dXJlc1thSF09bnVsbDt9fX07Qy5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbihhSCxhSSl7dGhpcy50ZXh0dXJlc1thSF09YUk7fTtDLnByb3RvdHlwZS5pbml0U2hhZGVyPWZ1bmN0aW9uKCl7dmFyIGFIPXRoaXMuZ2w7dGhpcy5sb2FkU2hhZGVyczIoKTt0aGlzLmFfcG9zaXRpb25fTG9jPWFILmdldEF0dHJpYkxvY2F0aW9uKHRoaXMuc2hhZGVyUHJvZ3JhbSxcImFfcG9zaXRpb25cIik7dGhpcy5hX3RleENvb3JkX0xvYz1hSC5nZXRBdHRyaWJMb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW0sXCJhX3RleENvb3JkXCIpO3RoaXMudV9tYXRyaXhfTG9jPWFILmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW0sXCJ1X212cE1hdHJpeFwiKTt0aGlzLnNfdGV4dHVyZTBfTG9jPWFILmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW0sXCJzX3RleHR1cmUwXCIpO3RoaXMudV9jaGFubmVsRmxhZz1hSC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFkZXJQcm9ncmFtLFwidV9jaGFubmVsRmxhZ1wiKTt0aGlzLnVfYmFzZUNvbG9yX0xvYz1hSC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFkZXJQcm9ncmFtLFwidV9iYXNlQ29sb3JcIik7dGhpcy51X21hc2tGbGFnX0xvYz1hSC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFkZXJQcm9ncmFtLFwidV9tYXNrRmxhZ1wiKTt0aGlzLmFfcG9zaXRpb25fTG9jX09mZj1hSC5nZXRBdHRyaWJMb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW1PZmYsXCJhX3Bvc2l0aW9uXCIpO3RoaXMuYV90ZXhDb29yZF9Mb2NfT2ZmPWFILmdldEF0dHJpYkxvY2F0aW9uKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZixcImFfdGV4Q29vcmRcIik7dGhpcy51X21hdHJpeF9Mb2NfT2ZmPWFILmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW1PZmYsXCJ1X212cE1hdHJpeFwiKTt0aGlzLnVfY2xpcE1hdHJpeF9Mb2NfT2ZmPWFILmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW1PZmYsXCJ1X0NsaXBNYXRyaXhcIik7dGhpcy5zX3RleHR1cmUwX0xvY19PZmY9YUguZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZixcInNfdGV4dHVyZTBcIik7dGhpcy5zX3RleHR1cmUxX0xvY19PZmY9YUguZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZixcInNfdGV4dHVyZTFcIik7dGhpcy51X2NoYW5uZWxGbGFnX0xvY19PZmY9YUguZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZixcInVfY2hhbm5lbEZsYWdcIik7dGhpcy51X2Jhc2VDb2xvcl9Mb2NfT2ZmPWFILmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlclByb2dyYW1PZmYsXCJ1X2Jhc2VDb2xvclwiKTt9O0MucHJvdG90eXBlLmRpc3Bvc2VTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgYUg9dGhpcy5nbDtpZih0aGlzLnNoYWRlclByb2dyYW0pe2FILmRlbGV0ZVByb2dyYW0odGhpcy5zaGFkZXJQcm9ncmFtKTt0aGlzLnNoYWRlclByb2dyYW09bnVsbDt9aWYodGhpcy5zaGFkZXJQcm9ncmFtT2ZmKXthSC5kZWxldGVQcm9ncmFtKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZik7dGhpcy5zaGFkZXJQcm9ncmFtT2ZmPW51bGw7fX07Qy5wcm90b3R5cGUuY29tcGlsZVNoYWRlcj1mdW5jdGlvbihhSixhTil7dmFyIGFNPXRoaXMuZ2w7dmFyIGFIO3ZhciBhTD1hTjt2YXIgYUs9YU0uY3JlYXRlU2hhZGVyKGFKKTtpZihhSz09bnVsbCl7cS5fJEppKFwiXyRMMCB0byBjcmVhdGUgc2hhZGVyXCIpO3JldHVybiBudWxsO31hTS5zaGFkZXJTb3VyY2UoYUssYUwpO2FNLmNvbXBpbGVTaGFkZXIoYUspO3ZhciBhSD1hTS5nZXRTaGFkZXJQYXJhbWV0ZXIoYUssYU0uQ09NUElMRV9TVEFUVVMpO2lmKCFhSCl7dmFyIGFJPWFNLmdldFNoYWRlckluZm9Mb2coYUspO3EuXyRKaShcIl8kTDAgdG8gY29tcGlsZSBzaGFkZXIgOiBcIithSSk7YU0uZGVsZXRlU2hhZGVyKGFLKTtyZXR1cm4gbnVsbDt9cmV0dXJuIGFLO307Qy5wcm90b3R5cGUubG9hZFNoYWRlcnMyPWZ1bmN0aW9uKCl7dmFyIGFOPXRoaXMuZ2w7dGhpcy5zaGFkZXJQcm9ncmFtPWFOLmNyZWF0ZVByb2dyYW0oKTtpZighdGhpcy5zaGFkZXJQcm9ncmFtKXtyZXR1cm4gZmFsc2U7fXRoaXMuc2hhZGVyUHJvZ3JhbU9mZj1hTi5jcmVhdGVQcm9ncmFtKCk7aWYoIXRoaXMuc2hhZGVyUHJvZ3JhbU9mZil7cmV0dXJuIGZhbHNlO312YXIgYUs9XCJhdHRyaWJ1dGUgdmVjNCAgICAgYV9wb3NpdGlvbjthdHRyaWJ1dGUgdmVjMiAgICAgYV90ZXhDb29yZDt2YXJ5aW5nIHZlYzIgICAgICAgdl90ZXhDb29yZDt2YXJ5aW5nIHZlYzQgICAgICAgdl9DbGlwUG9zO3VuaWZvcm0gbWF0NCAgICAgICB1X212cE1hdHJpeDt2b2lkIG1haW4oKXsgICAgZ2xfUG9zaXRpb24gPSB1X212cE1hdHJpeCAqIGFfcG9zaXRpb247ICAgIHZfQ2xpcFBvcyA9IHVfbXZwTWF0cml4ICogYV9wb3NpdGlvbjsgICAgdl90ZXhDb29yZCA9IGFfdGV4Q29vcmQ7fVwiO3ZhciBhTT1cInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O3ZhcnlpbmcgdmVjMiAgICAgICB2X3RleENvb3JkO3ZhcnlpbmcgdmVjNCAgICAgICB2X0NsaXBQb3M7dW5pZm9ybSBzYW1wbGVyMkQgIHNfdGV4dHVyZTA7dW5pZm9ybSB2ZWM0ICAgICAgIHVfY2hhbm5lbEZsYWc7dW5pZm9ybSB2ZWM0ICAgICAgIHVfYmFzZUNvbG9yO3VuaWZvcm0gYm9vbCAgICAgICB1X21hc2tGbGFnO3ZvaWQgbWFpbigpeyAgICB2ZWM0IHNtcENvbG9yOyAgICAgaWYodV9tYXNrRmxhZyl7ICAgICAgICBmbG9hdCBpc0luc2lkZSA9ICAgICAgICAgICAgIHN0ZXAodV9iYXNlQ29sb3IueCwgdl9DbGlwUG9zLngvdl9DbGlwUG9zLncpICAgICAgICAgICogc3RlcCh1X2Jhc2VDb2xvci55LCB2X0NsaXBQb3MueS92X0NsaXBQb3MudykgICAgICAgICAgKiBzdGVwKHZfQ2xpcFBvcy54L3ZfQ2xpcFBvcy53LCB1X2Jhc2VDb2xvci56KSAgICAgICAgICAqIHN0ZXAodl9DbGlwUG9zLnkvdl9DbGlwUG9zLncsIHVfYmFzZUNvbG9yLncpOyAgICAgICAgc21wQ29sb3IgPSB1X2NoYW5uZWxGbGFnICogdGV4dHVyZTJEKHNfdGV4dHVyZTAgLCB2X3RleENvb3JkKS5hICogaXNJbnNpZGU7ICAgIH1lbHNleyAgICAgICAgc21wQ29sb3IgPSB0ZXh0dXJlMkQoc190ZXh0dXJlMCAsIHZfdGV4Q29vcmQpICogdV9iYXNlQ29sb3I7ICAgIH0gICAgZ2xfRnJhZ0NvbG9yID0gc21wQ29sb3I7fVwiO3ZhciBhTD1cImF0dHJpYnV0ZSB2ZWM0ICAgICBhX3Bvc2l0aW9uO2F0dHJpYnV0ZSB2ZWMyICAgICBhX3RleENvb3JkO3ZhcnlpbmcgdmVjMiAgICAgICB2X3RleENvb3JkO3ZhcnlpbmcgdmVjNCAgICAgICB2X0NsaXBQb3M7dW5pZm9ybSBtYXQ0ICAgICAgIHVfbXZwTWF0cml4O3VuaWZvcm0gbWF0NCAgICAgICB1X0NsaXBNYXRyaXg7dm9pZCBtYWluKCl7ICAgIGdsX1Bvc2l0aW9uID0gdV9tdnBNYXRyaXggKiBhX3Bvc2l0aW9uOyAgICB2X0NsaXBQb3MgPSB1X0NsaXBNYXRyaXggKiBhX3Bvc2l0aW9uOyAgICB2X3RleENvb3JkID0gYV90ZXhDb29yZCA7fVwiO3ZhciBhSj1cInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0IDt2YXJ5aW5nIHZlYzIgICAgICAgdl90ZXhDb29yZDt2YXJ5aW5nIHZlYzQgICAgICAgdl9DbGlwUG9zO3VuaWZvcm0gc2FtcGxlcjJEICBzX3RleHR1cmUwO3VuaWZvcm0gc2FtcGxlcjJEICBzX3RleHR1cmUxO3VuaWZvcm0gdmVjNCAgICAgICB1X2NoYW5uZWxGbGFnO3VuaWZvcm0gdmVjNCAgICAgICB1X2Jhc2VDb2xvciA7dm9pZCBtYWluKCl7ICAgIHZlYzQgY29sX2Zvcm1hc2sgPSB0ZXh0dXJlMkQoc190ZXh0dXJlMCwgdl90ZXhDb29yZCkgKiB1X2Jhc2VDb2xvcjsgICAgdmVjNCBjbGlwTWFzayA9IHRleHR1cmUyRChzX3RleHR1cmUxLCB2X0NsaXBQb3MueHkgLyB2X0NsaXBQb3MudykgKiB1X2NoYW5uZWxGbGFnOyAgICBmbG9hdCBtYXNrVmFsID0gY2xpcE1hc2suciArIGNsaXBNYXNrLmcgKyBjbGlwTWFzay5iICsgY2xpcE1hc2suYTsgICAgY29sX2Zvcm1hc2sgPSBjb2xfZm9ybWFzayAqIG1hc2tWYWw7ICAgIGdsX0ZyYWdDb2xvciA9IGNvbF9mb3JtYXNrO31cIjt0aGlzLnZlcnRTaGFkZXI9dGhpcy5jb21waWxlU2hhZGVyKGFOLlZFUlRFWF9TSEFERVIsYUspO2lmKCF0aGlzLnZlcnRTaGFkZXIpe3EuXyRKaShcIlZlcnRleCBzaGFkZXIgY29tcGlsZSBfJGxpIVwiKTtyZXR1cm4gZmFsc2U7fXRoaXMudmVydFNoYWRlck9mZj10aGlzLmNvbXBpbGVTaGFkZXIoYU4uVkVSVEVYX1NIQURFUixhTCk7aWYoIXRoaXMudmVydFNoYWRlck9mZil7cS5fJEppKFwiT2ZmVmVydGV4IHNoYWRlciBjb21waWxlIF8kbGkhXCIpO3JldHVybiBmYWxzZTt9dGhpcy5mcmFnU2hhZGVyPXRoaXMuY29tcGlsZVNoYWRlcihhTi5GUkFHTUVOVF9TSEFERVIsYU0pO2lmKCF0aGlzLmZyYWdTaGFkZXIpe3EuXyRKaShcIkZyYWdtZW50IHNoYWRlciBjb21waWxlIF8kbGkhXCIpO3JldHVybiBmYWxzZTt9dGhpcy5mcmFnU2hhZGVyT2ZmPXRoaXMuY29tcGlsZVNoYWRlcihhTi5GUkFHTUVOVF9TSEFERVIsYUopO2lmKCF0aGlzLmZyYWdTaGFkZXJPZmYpe3EuXyRKaShcIk9mZkZyYWdtZW50IHNoYWRlciBjb21waWxlIF8kbGkhXCIpO3JldHVybiBmYWxzZTt9YU4uYXR0YWNoU2hhZGVyKHRoaXMuc2hhZGVyUHJvZ3JhbSx0aGlzLnZlcnRTaGFkZXIpO2FOLmF0dGFjaFNoYWRlcih0aGlzLnNoYWRlclByb2dyYW0sdGhpcy5mcmFnU2hhZGVyKTthTi5hdHRhY2hTaGFkZXIodGhpcy5zaGFkZXJQcm9ncmFtT2ZmLHRoaXMudmVydFNoYWRlck9mZik7YU4uYXR0YWNoU2hhZGVyKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZix0aGlzLmZyYWdTaGFkZXJPZmYpO2FOLmxpbmtQcm9ncmFtKHRoaXMuc2hhZGVyUHJvZ3JhbSk7YU4ubGlua1Byb2dyYW0odGhpcy5zaGFkZXJQcm9ncmFtT2ZmKTt2YXIgYUg9YU4uZ2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLnNoYWRlclByb2dyYW0sYU4uTElOS19TVEFUVVMpO2lmKCFhSCl7dmFyIGFJPWFOLmdldFByb2dyYW1JbmZvTG9nKHRoaXMuc2hhZGVyUHJvZ3JhbSk7cS5fJEppKFwiXyRMMCB0byBsaW5rIHByb2dyYW06IFwiK2FJKTtpZih0aGlzLnZlcnRTaGFkZXIpe2FOLmRlbGV0ZVNoYWRlcih0aGlzLnZlcnRTaGFkZXIpO3RoaXMudmVydFNoYWRlcj0wO31pZih0aGlzLmZyYWdTaGFkZXIpe2FOLmRlbGV0ZVNoYWRlcih0aGlzLmZyYWdTaGFkZXIpO3RoaXMuZnJhZ1NoYWRlcj0wO31pZih0aGlzLnNoYWRlclByb2dyYW0pe2FOLmRlbGV0ZVByb2dyYW0odGhpcy5zaGFkZXJQcm9ncmFtKTt0aGlzLnNoYWRlclByb2dyYW09MDt9aWYodGhpcy52ZXJ0U2hhZGVyT2ZmKXthTi5kZWxldGVTaGFkZXIodGhpcy52ZXJ0U2hhZGVyT2ZmKTt0aGlzLnZlcnRTaGFkZXJPZmY9MDt9aWYodGhpcy5mcmFnU2hhZGVyT2ZmKXthTi5kZWxldGVTaGFkZXIodGhpcy5mcmFnU2hhZGVyT2ZmKTt0aGlzLmZyYWdTaGFkZXJPZmY9MDt9aWYodGhpcy5zaGFkZXJQcm9ncmFtT2ZmKXthTi5kZWxldGVQcm9ncmFtKHRoaXMuc2hhZGVyUHJvZ3JhbU9mZik7dGhpcy5zaGFkZXJQcm9ncmFtT2ZmPTA7fXJldHVybiBmYWxzZTt9cmV0dXJuIHRydWU7fTtDLnByb3RvdHlwZS5jcmVhdGVGcmFtZWJ1ZmZlcj1mdW5jdGlvbigpe3ZhciBhTD10aGlzLmdsO3ZhciBhSz1RLmNsaXBwaW5nTWFza0J1ZmZlclNpemU7dmFyIGFKPWFMLmNyZWF0ZUZyYW1lYnVmZmVyKCk7YUwuYmluZEZyYW1lYnVmZmVyKGFMLkZSQU1FQlVGRkVSLGFKKTt2YXIgYUg9YUwuY3JlYXRlUmVuZGVyYnVmZmVyKCk7YUwuYmluZFJlbmRlcmJ1ZmZlcihhTC5SRU5ERVJCVUZGRVIsYUgpO2FMLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoYUwuUkVOREVSQlVGRkVSLGFMLlJHQkE0LGFLLGFLKTthTC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihhTC5GUkFNRUJVRkZFUixhTC5DT0xPUl9BVFRBQ0hNRU5UMCxhTC5SRU5ERVJCVUZGRVIsYUgpO3ZhciBhST1hTC5jcmVhdGVUZXh0dXJlKCk7YUwuYmluZFRleHR1cmUoYUwuVEVYVFVSRV8yRCxhSSk7YUwudGV4SW1hZ2UyRChhTC5URVhUVVJFXzJELDAsYUwuUkdCQSxhSyxhSywwLGFMLlJHQkEsYUwuVU5TSUdORURfQllURSxudWxsKTthTC50ZXhQYXJhbWV0ZXJpKGFMLlRFWFRVUkVfMkQsYUwuVEVYVFVSRV9NSU5fRklMVEVSLGFMLkxJTkVBUik7YUwudGV4UGFyYW1ldGVyaShhTC5URVhUVVJFXzJELGFMLlRFWFRVUkVfTUFHX0ZJTFRFUixhTC5MSU5FQVIpO2FMLnRleFBhcmFtZXRlcmkoYUwuVEVYVFVSRV8yRCxhTC5URVhUVVJFX1dSQVBfUyxhTC5DTEFNUF9UT19FREdFKTthTC50ZXhQYXJhbWV0ZXJpKGFMLlRFWFRVUkVfMkQsYUwuVEVYVFVSRV9XUkFQX1QsYUwuQ0xBTVBfVE9fRURHRSk7YUwuZnJhbWVidWZmZXJUZXh0dXJlMkQoYUwuRlJBTUVCVUZGRVIsYUwuQ09MT1JfQVRUQUNITUVOVDAsYUwuVEVYVFVSRV8yRCxhSSwwKTthTC5iaW5kVGV4dHVyZShhTC5URVhUVVJFXzJELG51bGwpO2FMLmJpbmRSZW5kZXJidWZmZXIoYUwuUkVOREVSQlVGRkVSLG51bGwpO2FMLmJpbmRGcmFtZWJ1ZmZlcihhTC5GUkFNRUJVRkZFUixudWxsKTtRLmZUZXh0dXJlW3RoaXMuZ2xub109YUk7cmV0dXJue2ZyYW1lYnVmZmVyOmFKLHJlbmRlcmJ1ZmZlcjphSCx0ZXh0dXJlOlEuZlRleHR1cmVbdGhpcy5nbG5vXX07fTtmdW5jdGlvbiBLKGFIKXtpZihqKXtyZXR1cm47fXRoaXMuXyRQPW5ldyBJbnQ4QXJyYXkoOCk7dGhpcy5fJFIwPW5ldyBEYXRhVmlldyh0aGlzLl8kUC5idWZmZXIpO3RoaXMuXyQzaT1uZXcgSW50OEFycmF5KDEwMDApO3RoaXMuXyRoTD0wO3RoaXMuXyR2MD0wO3RoaXMuXyRTMj0wO3RoaXMuXyRLbz1uZXcgQXJyYXkoKTt0aGlzLl8kVD1hSDt0aGlzLl8kRj0wO31LLnByb3RvdHlwZS5fJGZQPWZ1bmN0aW9uKCl7dmFyIGFLPXRoaXMuXyRTVCgpO3ZhciBhSixhSSxhSDtpZigoYUsmMTI4KT09MCl7cmV0dXJuIGFLJjI1NTt9ZWxzZXtpZigoKGFKPXRoaXMuXyRTVCgpKSYxMjgpPT0wKXtyZXR1cm4oKGFLJjEyNyk8PDcpfChhSiYxMjcpO31lbHNle2lmKCgoYUk9dGhpcy5fJFNUKCkpJjEyOCk9PTApe3JldHVybigoYUsmMTI3KTw8MTQpfCgoYUomMTI3KTw8Nyl8KGFJJjI1NSk7fWVsc2V7aWYoKChhSD10aGlzLl8kU1QoKSkmMTI4KT09MCl7cmV0dXJuKChhSyYxMjcpPDwyMSl8KChhSiYxMjcpPDwxNCl8KChhSSYxMjcpPDw3KXwoYUgmMjU1KTt9ZWxzZXt0aHJvdyBuZXcgSihcIl8kTCBfJDBQICBfXCIpO319fX19O0sucHJvdG90eXBlLmdldEZvcm1hdFZlcnNpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJFMyO307Sy5wcm90b3R5cGUuXyRncj1mdW5jdGlvbihhSCl7dGhpcy5fJFMyPWFIO307Sy5wcm90b3R5cGUuXyQzTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl8kZlAoKTt9O0sucHJvdG90eXBlLl8kbVA9ZnVuY3Rpb24oKXt0aGlzLl8kelQoKTt0aGlzLl8kRis9ODtyZXR1cm4gdGhpcy5fJFQuZ2V0RmxvYXQ2NCh0aGlzLl8kRi04KTt9O0sucHJvdG90eXBlLl8kX1Q9ZnVuY3Rpb24oKXt0aGlzLl8kelQoKTt0aGlzLl8kRis9NDtyZXR1cm4gdGhpcy5fJFQuZ2V0RmxvYXQzMih0aGlzLl8kRi00KTt9O0sucHJvdG90eXBlLl8kNkw9ZnVuY3Rpb24oKXt0aGlzLl8kelQoKTt0aGlzLl8kRis9NDtyZXR1cm4gdGhpcy5fJFQuZ2V0SW50MzIodGhpcy5fJEYtNCk7fTtLLnByb3RvdHlwZS5fJFNUPWZ1bmN0aW9uKCl7dGhpcy5fJHpUKCk7cmV0dXJuIHRoaXMuXyRULmdldEludDgodGhpcy5fJEYrKyk7fTtLLnByb3RvdHlwZS5fJDlUPWZ1bmN0aW9uKCl7dGhpcy5fJHpUKCk7dGhpcy5fJEYrPTI7cmV0dXJuIHRoaXMuXyRULmdldEludDE2KHRoaXMuXyRGLTIpO307Sy5wcm90b3R5cGUuXyQyVD1mdW5jdGlvbigpe3RoaXMuXyR6VCgpO3RoaXMuXyRGKz04O3Rocm93IG5ldyBKKFwiXyRMIF8kcSByZWFkIGxvbmdcIik7fTtLLnByb3RvdHlwZS5fJHBvPWZ1bmN0aW9uKCl7dGhpcy5fJHpUKCk7cmV0dXJuIHRoaXMuXyRULmdldEludDgodGhpcy5fJEYrKykhPTA7fTt2YXIgTz10cnVlO0sucHJvdG90eXBlLl8kYlQ9ZnVuY3Rpb24oKXt0aGlzLl8kelQoKTt2YXIgYUg9dGhpcy5fJDNMKCk7dmFyIGFLPW51bGw7aWYoTyl7dHJ5e3ZhciBhTT1uZXcgQXJyYXlCdWZmZXIoYUgqMik7YUs9bmV3IFVpbnQxNkFycmF5KGFNKTtmb3IodmFyIGFKPTA7YUo8YUg7KythSil7YUtbYUpdPXRoaXMuXyRULmdldFVpbnQ4KHRoaXMuXyRGKyspO31yZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGFLKTt9Y2F0Y2goYUwpe089ZmFsc2U7fX10cnl7dmFyIGFJPW5ldyBBcnJheSgpO2lmKGFLPT1udWxsKXtmb3IodmFyIGFKPTA7YUo8YUg7KythSil7YUlbYUpdPXRoaXMuXyRULmdldFVpbnQ4KHRoaXMuXyRGKyspO319ZWxzZXtmb3IodmFyIGFKPTA7YUo8YUg7KythSil7YUlbYUpdPWFLW2FKXTt9fXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYUkpO31jYXRjaChhTCl7Y29uc29sZS5sb2coXCJyZWFkIHV0ZjggLyBfJHJUIF8kTDAgISEgOiBcIithTCk7fX07Sy5wcm90b3R5cGUuXyRjUz1mdW5jdGlvbigpe3RoaXMuXyR6VCgpO3ZhciBhST10aGlzLl8kM0woKTt2YXIgYUg9bmV3IEludDMyQXJyYXkoYUkpO2Zvcih2YXIgYUo9MDthSjxhSTthSisrKXthSFthSl09dGhpcy5fJFQuZ2V0SW50MzIodGhpcy5fJEYpO3RoaXMuXyRGKz00O31yZXR1cm4gYUg7fTtLLnByb3RvdHlwZS5fJFRiPWZ1bmN0aW9uKCl7dGhpcy5fJHpUKCk7dmFyIGFJPXRoaXMuXyQzTCgpO3ZhciBhSD1uZXcgRmxvYXQzMkFycmF5KGFJKTtmb3IodmFyIGFKPTA7YUo8YUk7YUorKyl7YUhbYUpdPXRoaXMuXyRULmdldEZsb2F0MzIodGhpcy5fJEYpO3RoaXMuXyRGKz00O31yZXR1cm4gYUg7fTtLLnByb3RvdHlwZS5fJDViPWZ1bmN0aW9uKCl7dGhpcy5fJHpUKCk7dmFyIGFJPXRoaXMuXyQzTCgpO3ZhciBhSD1uZXcgRmxvYXQ2NEFycmF5KGFJKTtmb3IodmFyIGFKPTA7YUo8YUk7YUorKyl7YUhbYUpdPXRoaXMuXyRULmdldEZsb2F0NjQodGhpcy5fJEYpO3RoaXMuXyRGKz04O31yZXR1cm4gYUg7fTtLLnByb3RvdHlwZS5fJG5QPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRKYigtMSk7fTtLLnByb3RvdHlwZS5fJEpiPWZ1bmN0aW9uKGFKKXt0aGlzLl8kelQoKTtpZihhSjwwKXthSj10aGlzLl8kM0woKTt9aWYoYUo9PWF5Ll8kN1Ape3ZhciBhSD10aGlzLl8kNkwoKTtpZigwPD1hSCYmYUg8dGhpcy5fJEtvLmxlbmd0aCl7cmV0dXJuIHRoaXMuXyRLb1thSF07fWVsc2V7dGhyb3cgbmV3IEooXCJfJHNMIF8kNGkgQF8kbTBcIik7fX1lbHNle3ZhciBhST10aGlzLl8kNGIoYUopO3RoaXMuXyRLby5wdXNoKGFJKTtyZXR1cm4gYUk7fX07Sy5wcm90b3R5cGUuXyQ0Yj1mdW5jdGlvbihhTil7aWYoYU49PTApe3JldHVybiBudWxsO31pZihhTj09NTApe3ZhciBhSz10aGlzLl8kYlQoKTt2YXIgYUk9Wi5nZXRJRChhSyk7cmV0dXJuIGFJO31lbHNle2lmKGFOPT01MSl7dmFyIGFLPXRoaXMuXyRiVCgpO3ZhciBhST1uLmdldElEKGFLKTtyZXR1cm4gYUk7fWVsc2V7aWYoYU49PTEzNCl7dmFyIGFLPXRoaXMuXyRiVCgpO3ZhciBhST1pLmdldElEKGFLKTtyZXR1cm4gYUk7fWVsc2V7aWYoYU49PTYwKXt2YXIgYUs9dGhpcy5fJGJUKCk7dmFyIGFJPXouZ2V0SUQoYUspO3JldHVybiBhSTt9fX19aWYoYU4+PTQ4KXt2YXIgYUw9YXkuXyQ5byhhTik7aWYoYUwhPW51bGwpe2FMLl8kRjAodGhpcyk7cmV0dXJuIGFMO31lbHNle3JldHVybiBudWxsO319c3dpdGNoKGFOKXtjYXNlIDE6cmV0dXJuIHRoaXMuXyRiVCgpO2Nhc2UgMTA6dmFyIGFNPXRoaXMuXyQ2TCgpO3JldHVybiBuZXcgSShhTSx0cnVlKTtjYXNlIDExOnJldHVybiBuZXcgYXYodGhpcy5fJG1QKCksdGhpcy5fJG1QKCksdGhpcy5fJG1QKCksdGhpcy5fJG1QKCkpO2Nhc2UgMTI6cmV0dXJuIG5ldyBhdih0aGlzLl8kX1QoKSx0aGlzLl8kX1QoKSx0aGlzLl8kX1QoKSx0aGlzLl8kX1QoKSk7Y2FzZSAxMzpyZXR1cm4gbmV3IGUodGhpcy5fJG1QKCksdGhpcy5fJG1QKCkpO2Nhc2UgMTQ6cmV0dXJuIG5ldyBlKHRoaXMuXyRfVCgpLHRoaXMuXyRfVCgpKTtjYXNlIDE1OnZhciBhSD10aGlzLl8kM0woKTt2YXIgYUk9bmV3IEFycmF5KGFIKTtmb3IodmFyIGFKPTA7YUo8YUg7YUorKyl7YUlbYUpdPXRoaXMuXyRuUCgpO31yZXR1cm4gYUk7Y2FzZSAxNzp2YXIgYUk9bmV3IGFEKHRoaXMuXyRtUCgpLHRoaXMuXyRtUCgpLHRoaXMuXyRtUCgpLHRoaXMuXyRtUCgpLHRoaXMuXyRtUCgpLHRoaXMuXyRtUCgpKTtyZXR1cm4gYUk7Y2FzZSAyMTpyZXR1cm4gbmV3IEYodGhpcy5fJDZMKCksdGhpcy5fJDZMKCksdGhpcy5fJDZMKCksdGhpcy5fJDZMKCkpO2Nhc2UgMjI6cmV0dXJuIG5ldyBrKHRoaXMuXyQ2TCgpLHRoaXMuXyQ2TCgpKTtjYXNlIDIzOnRocm93IG5ldyBFcnJvcihcIl8kTCBfJHJvIFwiKTtjYXNlIDE2OmNhc2UgMjU6cmV0dXJuIHRoaXMuXyRjUygpO2Nhc2UgMjY6cmV0dXJuIHRoaXMuXyQ1YigpO2Nhc2UgMjc6cmV0dXJuIHRoaXMuXyRUYigpO2Nhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgODpjYXNlIDk6Y2FzZSAxODpjYXNlIDE5OmNhc2UgMjA6Y2FzZSAyNDpjYXNlIDI4OnRocm93IG5ldyBKKFwiXyQ2IF8kcSA6IF8kblAoKSBvZiAyLTkgLDE4LDE5LDIwLDI0LDI4IDogXCIrYU4pO2RlZmF1bHQ6dGhyb3cgbmV3IEooXCJfJDYgXyRxIDogXyRuUCgpIE5PIF8kaSA6IFwiK2FOKTt9fTtLLnByb3RvdHlwZS5fJDhMPWZ1bmN0aW9uKCl7aWYodGhpcy5fJGhMPT0wKXt0aGlzLl8kdjA9dGhpcy5fJFNUKCk7fWVsc2V7aWYodGhpcy5fJGhMPT04KXt0aGlzLl8kdjA9dGhpcy5fJFNUKCk7dGhpcy5fJGhMPTA7fX1yZXR1cm4oKHRoaXMuXyR2MD4+KDctdGhpcy5fJGhMKyspKSYxKT09MTt9O0sucHJvdG90eXBlLl8kelQ9ZnVuY3Rpb24oKXtpZih0aGlzLl8kaEwhPTApe3RoaXMuXyRoTD0wO319O2Z1bmN0aW9uIGFpKCl7fWFpLnByb3RvdHlwZS5fJHdQPWZ1bmN0aW9uKGFNLGFJLGFLKXtmb3IodmFyIGFMPTA7YUw8YUs7YUwrKyl7Zm9yKHZhciBhSD0wO2FIPGFJO2FIKyspe3ZhciBhSj0yKihhSCthTCphSSk7Y29uc29sZS5sb2coXCIoJSA3LjNmICwgJSA3LjNmKSAsIFwiLGFNW2FKXSxhTVthSisxXSk7fWNvbnNvbGUubG9nKFwiXFxuXCIpO31jb25zb2xlLmxvZyhcIlxcblwiKTt9O2Z1bmN0aW9uIGFDKCl7fWFDLl8kMlM9TWF0aC5QSS8xODA7YUMuXyRiUz0oTWF0aC5QSS8xODApO2FDLl8kd1M9MTgwL01hdGguUEk7YUMuXyROUz0oMTgwL01hdGguUEkpO2FDLlBJX0Y9TWF0aC5QSTthQy5fJGtUPVswLDAuMDEyMzY4LDAuMDI0NzM0LDAuMDM3MDk3LDAuMDQ5NDU0LDAuMDYxODAzLDAuMDc0MTQzLDAuMDg2NDcxLDAuMDk4Nzg2LDAuMTExMDg3LDAuMTIzMzcsMC4xMzU2MzQsMC4xNDc4NzcsMC4xNjAwOTgsMC4xNzIyOTUsMC4xODQ0NjUsMC4xOTY2MDYsMC4yMDg3MTgsMC4yMjA3OTgsMC4yMzI4NDQsMC4yNDQ4NTQsMC4yNTY4MjcsMC4yNjg3NjEsMC4yODA2NTQsMC4yOTI1MDMsMC4zMDQzMDgsMC4zMTYwNjYsMC4zMjc3NzYsMC4zMzk0MzYsMC4zNTEwNDQsMC4zNjI1OTgsMC4zNzQwOTcsMC4zODU1MzgsMC4zOTY5MjEsMC40MDgyNDMsMC40MTk1MDIsMC40MzA2OTcsMC40NDE4MjYsMC40NTI4ODgsMC40NjM4ODEsMC40NzQ4MDIsMC40ODU2NTEsMC40OTY0MjUsMC41MDcxMjQsMC41MTc3NDUsMC41MjgyODcsMC41Mzg3NDgsMC41NDkxMjYsMC41NTk0MjEsMC41Njk2MywwLjU3OTc1MiwwLjU4OTc4NSwwLjU5OTcyOCwwLjYwOTU3OSwwLjYxOTMzNywwLjYyOSwwLjYzODU2NywwLjY0ODAzNiwwLjY1NzQwNiwwLjY2NjY3NiwwLjY3NTg0MywwLjY4NDkwOCwwLjY5Mzg2NywwLjcwMjcyLDAuNzExNDY2LDAuNzIwMTAzLDAuNzI4NjMsMC43MzcwNDUsMC43NDUzNDgsMC43NTM1MzYsMC43NjE2MSwwLjc2OTU2NiwwLjc3NzQwNSwwLjc4NTEyNSwwLjc5MjcyNSwwLjgwMDIwNCwwLjgwNzU2MSwwLjgxNDc5MywwLjgyMTkwMSwwLjgyODg4NCwwLjgzNTczOSwwLjg0MjQ2NywwLjg0OTA2NiwwLjg1NTUzNSwwLjg2MTg3MywwLjg2ODA3OSwwLjg3NDE1MywwLjg4MDA5MywwLjg4NTg5OCwwLjg5MTU2NywwLjg5NzEwMSwwLjkwMjQ5NywwLjkwNzc1NCwwLjkxMjg3MywwLjkxNzg1MywwLjkyMjY5MiwwLjkyNzM5LDAuOTMxOTQ2LDAuOTM2MzU5LDAuOTQwNjI5LDAuOTQ0NzU1LDAuOTQ4NzM3LDAuOTUyNTc0LDAuOTU2MjY1LDAuOTU5ODA5LDAuOTYzMjA3LDAuOTY2NDU3LDAuOTY5NTYsMC45NzI1MTQsMC45NzUzMiwwLjk3Nzk3NiwwLjk4MDQ4MiwwLjk4MjgzOSwwLjk4NTA0NSwwLjk4NzEwMSwwLjk4OTAwNiwwLjk5MDc1OSwwLjk5MjM2MSwwLjk5MzgxMSwwLjk5NTEwOSwwLjk5NjI1NCwwLjk5NzI0OCwwLjk5ODA4OCwwLjk5ODc3NiwwLjk5OTMxMiwwLjk5OTY5NCwwLjk5OTkyNCwxXTthQy5fJDkyPWZ1bmN0aW9uKGFLLGFJKXt2YXIgYUg9TWF0aC5hdGFuMihhS1sxXSxhS1swXSk7dmFyIGFKPU1hdGguYXRhbjIoYUlbMV0sYUlbMF0pO3JldHVybiBhQy5fJHRTKGFILGFKKTt9O2FDLl8kdFM9ZnVuY3Rpb24oYUksYUgpe3ZhciBhSj1hSS1hSDt3aGlsZShhSjwtTWF0aC5QSSl7YUorPTIqTWF0aC5QSTt9d2hpbGUoYUo+TWF0aC5QSSl7YUotPTIqTWF0aC5QSTt9cmV0dXJuIGFKO307YUMuXyQ5PWZ1bmN0aW9uKGFIKXtyZXR1cm4gTWF0aC5zaW4oYUgpO307YUMuZmNvcz1mdW5jdGlvbihhSCl7cmV0dXJuIE1hdGguY29zKGFIKTt9O2Z1bmN0aW9uIGFCKGFIKXtpZihqKXtyZXR1cm47fXRoaXMuXyRlMD1udWxsO3RoaXMuXyRJUD1udWxsO3RoaXMuXyRVcz1udWxsO3RoaXMuXyQ3cz1udWxsO3RoaXMuXyRJUz1bZmFsc2VdO3RoaXMuXyRWUz1udWxsO3RoaXMuXyRBVD10cnVlO3RoaXMuYmFzZU9wYWNpdHk9MTt0aGlzLmNsaXBCdWZQcmVfY2xpcENvbnRleHQ9bnVsbDt0aGlzLl8kZTA9YUg7fWFCLnByb3RvdHlwZS5fJHUyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRJU1swXTt9O2FCLnByb3RvdHlwZS5fJHlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRBVCYmIXRoaXMuXyRJU1swXTt9O2FCLnByb3RvdHlwZS5fJEdUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyRlMDt9O2Z1bmN0aW9uIHIoKXt9ci5fJFcyPTA7ci5TWVNURU1fSU5GTz1udWxsO3IuVVNFUl9BR0VOVD1uYXZpZ2F0b3IudXNlckFnZW50O3IuaXNJUGhvbmU9ZnVuY3Rpb24oKXtpZighci5TWVNURU1fSU5GTyl7ci5zZXR1cCgpO31yZXR1cm4gci5TWVNURU1fSU5GTy5faXNJUGhvbmU7fTtyLmlzSU9TPWZ1bmN0aW9uKCl7aWYoIXIuU1lTVEVNX0lORk8pe3Iuc2V0dXAoKTt9cmV0dXJuIHIuU1lTVEVNX0lORk8uX2lzSVBob25lfHxyLlNZU1RFTV9JTkZPLl9pc0lQYWQ7fTtyLmlzQW5kcm9pZD1mdW5jdGlvbigpe2lmKCFyLlNZU1RFTV9JTkZPKXtyLnNldHVwKCk7fXJldHVybiByLlNZU1RFTV9JTkZPLl9pc0FuZHJvaWQ7fTtyLmdldE9TVmVyc2lvbj1mdW5jdGlvbigpe2lmKCFyLlNZU1RFTV9JTkZPKXtyLnNldHVwKCk7fXJldHVybiByLlNZU1RFTV9JTkZPLnZlcnNpb247fTtyLmdldE9TPWZ1bmN0aW9uKCl7aWYoIXIuU1lTVEVNX0lORk8pe3Iuc2V0dXAoKTt9aWYoci5TWVNURU1fSU5GTy5faXNJUGhvbmV8fHIuU1lTVEVNX0lORk8uX2lzSVBhZCl7cmV0dXJuXCJpT1NcIjt9aWYoci5TWVNURU1fSU5GTy5faXNBbmRyb2lkKXtyZXR1cm5cIkFuZHJvaWRcIjt9ZWxzZXtyZXR1cm5cIl8kUTAgT1NcIjt9fTtyLnNldHVwPWZ1bmN0aW9uKCl7dmFyIGFLPXIuVVNFUl9BR0VOVDtmdW5jdGlvbiBhSShhTyxhUil7dmFyIGFOPWFPLnN1YnN0cmluZyhhUikuc3BsaXQoL1sgXyw7XFwuXS8pO3ZhciBhUT0wO2Zvcih2YXIgYU09MDthTTw9MjthTSsrKXtpZihpc05hTihhTlthTV0pKXticmVhazt9dmFyIGFQPXBhcnNlSW50KGFOW2FNXSk7aWYoYVA8MHx8YVA+OTk5KXtxLl8kbGkoXCJlcnIgOiBcIithUCtcIiBAVXRIdG1sNS5zZXR1cCgpXCIpO2FRPTA7YnJlYWs7fWFRKz1hUCpNYXRoLnBvdygxMDAwLCgyLWFNKSk7fXJldHVybiBhUTt9dmFyIGFMO3ZhciBhSDt2YXIgYUo9ci5TWVNURU1fSU5GTz17dXNlckFnZW50OmFLfTtpZigoYUw9YUsuaW5kZXhPZihcImlQaG9uZSBPUyBcIikpPj0wKXthSi5vcz1cImlQaG9uZVwiO2FKLl9pc0lQaG9uZT10cnVlO2FKLnZlcnNpb249YUkoYUssYUwrXCJpUGhvbmUgT1MgXCIubGVuZ3RoKTt9ZWxzZXtpZigoYUw9YUsuaW5kZXhPZihcImlQYWRcIikpPj0wKXthTD1hSy5pbmRleE9mKFwiQ1BVIE9TXCIpO2lmKGFMPDApe3EuXyRsaShcIiBlcnIgOiBcIithSytcIiBAVXRIdG1sNS5zZXR1cCgpXCIpO3JldHVybjt9YUoub3M9XCJpUGFkXCI7YUouX2lzSVBhZD10cnVlO2FKLnZlcnNpb249YUkoYUssYUwrXCJDUFUgT1MgXCIubGVuZ3RoKTt9ZWxzZXtpZigoYUw9YUsuaW5kZXhPZihcIkFuZHJvaWRcIikpPj0wKXthSi5vcz1cIkFuZHJvaWRcIjthSi5faXNBbmRyb2lkPXRydWU7YUoudmVyc2lvbj1hSShhSyxhTCtcIkFuZHJvaWQgXCIubGVuZ3RoKTt9ZWxzZXthSi5vcz1cIi1cIjthSi52ZXJzaW9uPS0xO319fX07d2luZG93LlV0U3lzdGVtPVA7d2luZG93LlV0RGVidWc9cTt3aW5kb3cuTERUcmFuc2Zvcm09YW07d2luZG93LkxER0w9YXU7d2luZG93LkxpdmUyRD1RO3dpbmRvdy5MaXZlMkRNb2RlbFdlYkdMPWw7d2luZG93LkxpdmUyRE1vZGVsSlM9djt3aW5kb3cuTGl2ZTJETW90aW9uPWFvO3dpbmRvdy5Nb3Rpb25RdWV1ZU1hbmFnZXI9Vjt3aW5kb3cuUGh5c2ljc0hhaXI9dTt3aW5kb3cuQU1vdGlvbj1haDt3aW5kb3cuUGFydHNEYXRhSUQ9aTt3aW5kb3cuRHJhd0RhdGFJRD1aO3dpbmRvdy5CYXNlRGF0YUlEPW47d2luZG93LlBhcmFtSUQ9ejtRLmluaXQoKTt2YXIgaj1mYWxzZTt9KSgpO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvbGliL2xpdmUyZC5taW4uanMiXSwibWFwcGluZ3MiOiI7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9\n')},/*!***********************************!*\ - !*** (webpack)/buildin/system.js ***! - \***********************************/ -function(module,exports){eval('// Provide a "System" global.\r\nmodule.exports = {\r\n\t// Make sure import is only used as "System.import"\r\n\timport: function() {\r\n\t\tthrow new Error("System.import cannot be used indirectly");\r\n\t}\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vc3lzdGVtLmpzPzA4ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUHJvdmlkZSBhIFwiU3lzdGVtXCIgZ2xvYmFsLlxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHQvLyBNYWtlIHN1cmUgaW1wb3J0IGlzIG9ubHkgdXNlZCBhcyBcIlN5c3RlbS5pbXBvcnRcIlxyXG5cdGltcG9ydDogZnVuY3Rpb24oKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJTeXN0ZW0uaW1wb3J0IGNhbm5vdCBiZSB1c2VkIGluZGlyZWN0bHlcIik7XHJcblx0fVxyXG59O1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9zeXN0ZW0uanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///10\n')},/*!***************************!*\ - !*** multi ./src/main.js ***! - \***************************/ -function(a,t,n){a.exports=n(/*! ./src/main.js */4)}]); \ No newline at end of file +!function(t){function i(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,i),o.l=!0,o.exports}var e={};i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p="",i(i.s=11)}([function(t,i,e){"use strict";function r(){this.live2DModel=null,this.modelMatrix=null,this.eyeBlink=null,this.physics=null,this.pose=null,this.debugMode=!1,this.initialized=!1,this.updating=!1,this.alpha=1,this.accAlpha=0,this.lipSync=!1,this.lipSyncValue=0,this.accelX=0,this.accelY=0,this.accelZ=0,this.dragX=0,this.dragY=0,this.startTimeMSec=null,this.mainMotionManager=new h,this.expressionManager=new h,this.motions={},this.expressions={},this.isTexLoaded=!1}function o(){AMotion.prototype.constructor.call(this),this.paramList=new Array}function n(){this.id="",this.type=-1,this.value=null}function s(){this.nextBlinkTime=null,this.stateStartTime=null,this.blinkIntervalMsec=null,this.eyeState=y.STATE_FIRST,this.blinkIntervalMsec=4e3,this.closingMotionMsec=100,this.closedMotionMsec=50,this.openingMotionMsec=150,this.closeIfZero=!0,this.eyeID_L="PARAM_EYE_L_OPEN",this.eyeID_R="PARAM_EYE_R_OPEN"}function _(){this.tr=new Float32Array(16),this.identity()}function a(t,i){_.prototype.constructor.call(this),this.width=t,this.height=i}function h(){MotionQueueManager.prototype.constructor.call(this),this.currentPriority=null,this.reservePriority=null,this.super=MotionQueueManager.prototype}function $(){this.physicsList=new Array,this.startTimeMSec=UtSystem.getUserTimeMSec()}function l(){this.lastTime=0,this.lastModel=null,this.partsGroups=new Array}function u(t){this.paramIndex=-1,this.partsIndex=-1,this.link=null,this.id=t}function p(){this.EPSILON=.01,this.faceTargetX=0,this.faceTargetY=0,this.faceX=0,this.faceY=0,this.faceVX=0,this.faceVY=0,this.lastTimeSec=0}function f(){_.prototype.constructor.call(this),this.screenLeft=null,this.screenRight=null,this.screenTop=null,this.screenBottom=null,this.maxLeft=null,this.maxRight=null,this.maxTop=null,this.maxBottom=null,this.max=Number.MAX_VALUE,this.min=0}function c(){}var g=0;r.prototype.getModelMatrix=function(){return this.modelMatrix},r.prototype.setAlpha=function(t){t>.999&&(t=1),t<.001&&(t=0),this.alpha=t},r.prototype.getAlpha=function(){return this.alpha},r.prototype.isInitialized=function(){return this.initialized},r.prototype.setInitialized=function(t){this.initialized=t},r.prototype.isUpdating=function(){return this.updating},r.prototype.setUpdating=function(t){this.updating=t},r.prototype.getLive2DModel=function(){return this.live2DModel},r.prototype.setLipSync=function(t){this.lipSync=t},r.prototype.setLipSyncValue=function(t){this.lipSyncValue=t},r.prototype.setAccel=function(t,i,e){this.accelX=t,this.accelY=i,this.accelZ=e},r.prototype.setDrag=function(t,i){this.dragX=t,this.dragY=i},r.prototype.getMainMotionManager=function(){return this.mainMotionManager},r.prototype.getExpressionManager=function(){return this.expressionManager},r.prototype.loadModelData=function(t,i){var e=c.getPlatformManager();this.debugMode&&e.log("Load model : "+t);var r=this;e.loadLive2DModel(t,function(t){if(r.live2DModel=t,r.live2DModel.saveParam(),0!=Live2D.getError())return void console.error("Error : Failed to loadModelData().");r.modelMatrix=new a(r.live2DModel.getCanvasWidth(),r.live2DModel.getCanvasHeight()),r.modelMatrix.setWidth(2),r.modelMatrix.setCenterPosition(0,0),i(r.live2DModel)})},r.prototype.loadTexture=function(t,i,e){g++;var r=c.getPlatformManager();this.debugMode&&r.log("Load Texture : "+i);var o=this;r.loadTexture(this.live2DModel,t,i,function(){g--,0==g&&(o.isTexLoaded=!0),"function"==typeof e&&e()})},r.prototype.loadMotion=function(t,i,e){var r=c.getPlatformManager();this.debugMode&&r.log("Load Motion : "+i);var o=null,n=this;r.loadBytes(i,function(i){o=Live2DMotion.loadMotion(i),null!=t&&(n.motions[t]=o),e(o)})},r.prototype.loadExpression=function(t,i,e){var r=c.getPlatformManager();this.debugMode&&r.log("Load Expression : "+i);var n=this;r.loadBytes(i,function(i){null!=t&&(n.expressions[t]=o.loadJson(i)),"function"==typeof e&&e()})},r.prototype.loadPose=function(t,i){var e=c.getPlatformManager();this.debugMode&&e.log("Load Pose : "+t);var r=this;try{e.loadBytes(t,function(t){r.pose=l.load(t),"function"==typeof i&&i()})}catch(t){console.warn(t)}},r.prototype.loadPhysics=function(t){var i=c.getPlatformManager();this.debugMode&&i.log("Load Physics : "+t);var e=this;try{i.loadBytes(t,function(t){e.physics=$.load(t)})}catch(t){console.warn(t)}},r.prototype.hitTestSimple=function(t,i,e){if(null===this.live2DModel)return!1;var r=this.live2DModel.getDrawDataIndex(t);if(r<0)return!1;for(var o=this.live2DModel.getTransformedPoints(r),n=this.live2DModel.getCanvasWidth(),s=0,_=this.live2DModel.getCanvasHeight(),a=0,h=0;hs&&(s=$),l<_&&(_=l),l>a&&(a=l)}var u=this.modelMatrix.invertTransformX(i),p=this.modelMatrix.invertTransformY(e);return n<=u&&u<=s&&_<=p&&p<=a},o.prototype=new AMotion,o.EXPRESSION_DEFAULT="DEFAULT",o.TYPE_SET=0,o.TYPE_ADD=1,o.TYPE_MULT=2,o.loadJson=function(t){var i=new o,e=c.getPlatformManager(),r=e.jsonParseFromBytes(t);if(i.setFadeIn(parseInt(r.fade_in)>0?parseInt(r.fade_in):1e3),i.setFadeOut(parseInt(r.fade_out)>0?parseInt(r.fade_out):1e3),null==r.params)return i;var s=r.params,_=s.length;i.paramList=[];for(var a=0;a<_;a++){var h=s[a],$=h.id.toString(),l=parseFloat(h.val),u=o.TYPE_ADD,p=null!=h.calc?h.calc.toString():"add";if((u="add"===p?o.TYPE_ADD:"mult"===p?o.TYPE_MULT:"set"===p?o.TYPE_SET:o.TYPE_ADD)==o.TYPE_ADD){var f=null==h.def?0:parseFloat(h.def);l-=f}else if(u==o.TYPE_MULT){var f=null==h.def?1:parseFloat(h.def);0==f&&(f=1),l/=f}var g=new n;g.id=$,g.type=u,g.value=l,i.paramList.push(g)}return i},o.prototype.updateParamExe=function(t,i,e,r){for(var n=this.paramList.length-1;n>=0;--n){var s=this.paramList[n];s.type==o.TYPE_ADD?t.addToParamFloat(s.id,s.value,e):s.type==o.TYPE_MULT?t.multParamFloat(s.id,s.value,e):s.type==o.TYPE_SET&&t.setParamFloat(s.id,s.value,e)}},s.prototype.calcNextBlink=function(){return UtSystem.getUserTimeMSec()+Math.random()*(2*this.blinkIntervalMsec-1)},s.prototype.setInterval=function(t){this.blinkIntervalMsec=t},s.prototype.setEyeMotion=function(t,i,e){this.closingMotionMsec=t,this.closedMotionMsec=i,this.openingMotionMsec=e},s.prototype.updateParam=function(t){var i,e=UtSystem.getUserTimeMSec(),r=0;switch(this.eyeState){case y.STATE_CLOSING:r=(e-this.stateStartTime)/this.closingMotionMsec,r>=1&&(r=1,this.eyeState=y.STATE_CLOSED,this.stateStartTime=e),i=1-r;break;case y.STATE_CLOSED:r=(e-this.stateStartTime)/this.closedMotionMsec,r>=1&&(this.eyeState=y.STATE_OPENING,this.stateStartTime=e),i=0;break;case y.STATE_OPENING:r=(e-this.stateStartTime)/this.openingMotionMsec,r>=1&&(r=1,this.eyeState=y.STATE_INTERVAL,this.nextBlinkTime=this.calcNextBlink()),i=r;break;case y.STATE_INTERVAL:this.nextBlinkTime=t)&&(!(this.currentPriority>=t)&&(this.reservePriority=t,!0))},h.prototype.setReservePriority=function(t){this.reservePriority=t},h.prototype.updateParam=function(t){var i=MotionQueueManager.prototype.updateParam.call(this,t);return this.isFinished()&&(this.currentPriority=0),i},h.prototype.startMotionPrio=function(t,i){return i==this.reservePriority&&(this.reservePriority=0),this.currentPriority=i,this.startMotion(t,!1)},$.load=function(t){for(var i=new $,e=c.getPlatformManager(),r=e.jsonParseFromBytes(t),o=r.physics_hair,n=o.length,s=0;s=0)break;r=n,o=t.getPartsOpacity(s),o+=e/.5,o>1&&(o=1)}}r<0&&(r=0,o=1);for(var n=0;n.15&&(a=1-.15/(1-o)),h>a&&(h=a),t.setPartsOpacity(s,h)}}},l.prototype.copyOpacityOtherParts=function(t,i){for(var e=0;eo)&&($*=o/u,l*=o/u,u=o),this.faceVX+=$,this.faceVY+=l;var f=.5*(Math.sqrt(o*o+16*o*_-8*o*_)-o),c=Math.sqrt(this.faceVX*this.faceVX+this.faceVY*this.faceVY);c>f&&(this.faceVX*=f/c,this.faceVY*=f/c),this.faceX+=this.faceVX,this.faceY+=this.faceVY}},f.prototype=new _,f.prototype.getMaxScale=function(){return this.max},f.prototype.getMinScale=function(){return this.min},f.prototype.setMaxScale=function(t){this.max=t},f.prototype.setMinScale=function(t){this.min=t},f.prototype.isMaxScale=function(){return this.getScaleX()==this.max},f.prototype.isMinScale=function(){return this.getScaleX()==this.min},f.prototype.adjustTranslate=function(t,i){this.tr[0]*this.maxLeft+(this.tr[12]+t)>this.screenLeft&&(t=this.screenLeft-this.tr[0]*this.maxLeft-this.tr[12]),this.tr[0]*this.maxRight+(this.tr[12]+t)this.screenBottom&&(i=this.screenBottom-this.tr[5]*this.maxBottom-this.tr[13]);var e=[1,0,0,0,0,1,0,0,0,0,1,0,t,i,0,1];_.mul(e,this.tr,this.tr)},f.prototype.adjustScale=function(t,i,e){var r=e*this.tr[0];r0&&(e=this.min/this.tr[0]):r>this.max&&this.tr[0]>0&&(e=this.max/this.tr[0]);var o=[1,0,0,0,0,1,0,0,0,0,1,0,t,i,0,1],n=[e,0,0,0,0,e,0,0,0,0,1,0,0,0,0,1],s=[1,0,0,0,0,1,0,0,0,0,1,0,-t,-i,0,1];_.mul(s,this.tr,this.tr),_.mul(n,this.tr,this.tr),_.mul(o,this.tr,this.tr)},f.prototype.setScreenRect=function(t,i,e,r){this.screenLeft=t,this.screenRight=i,this.screenTop=r,this.screenBottom=e},f.prototype.setMaxScreenRect=function(t,i,e,r){this.maxLeft=t,this.maxRight=i,this.maxTop=r,this.maxBottom=e},f.prototype.getScreenLeft=function(){return this.screenLeft},f.prototype.getScreenRight=function(){return this.screenRight},f.prototype.getScreenBottom=function(){return this.screenBottom},f.prototype.getScreenTop=function(){return this.screenTop},f.prototype.getMaxLeft=function(){return this.maxLeft},f.prototype.getMaxRight=function(){return this.maxRight},f.prototype.getMaxBottom=function(){return this.maxBottom},f.prototype.getMaxTop=function(){return this.maxTop},c.platformManager=null,c.getPlatformManager=function(){return c.platformManager},c.setPlatformManager=function(t){c.platformManager=t},t.exports={L2DTargetPoint:p,Live2DFramework:c,L2DViewMatrix:f,L2DPose:l,L2DPartsParam:u,L2DPhysics:$,L2DMotionManager:h,L2DModelMatrix:a,L2DMatrix44:_,EYE_STATE:y,L2DEyeBlink:s,L2DExpressionParam:n,L2DExpressionMotion:o,L2DBaseModel:r}},function(t,i,e){"use strict";var r={DEBUG_LOG:!1,DEBUG_MOUSE_LOG:!1,VIEW_MAX_SCALE:2,VIEW_MIN_SCALE:.8,VIEW_LOGICAL_LEFT:-1,VIEW_LOGICAL_RIGHT:1,VIEW_LOGICAL_MAX_LEFT:-2,VIEW_LOGICAL_MAX_RIGHT:2,VIEW_LOGICAL_MAX_BOTTOM:-2,VIEW_LOGICAL_MAX_TOP:2,PRIORITY_NONE:0,PRIORITY_IDLE:1,PRIORITY_NORMAL:2,PRIORITY_FORCE:3,MOTION_GROUP_IDLE:"idle",MOTION_GROUP_TAP_BODY:"tap_body",MOTION_GROUP_FLICK_HEAD:"flick_head",MOTION_GROUP_PINCH_IN:"pinch_in",MOTION_GROUP_PINCH_OUT:"pinch_out",MOTION_GROUP_SHAKE:"shake",HIT_AREA_HEAD:"head",HIT_AREA_BODY:"body"};t.exports=r},function(t,i,e){"use strict";function r(){}r.matrixStack=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],r.depth=0,r.currentMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],r.tmp=new Array(16),r.reset=function(){this.depth=0},r.loadIdentity=function(){for(var t=0;t<16;t++)this.currentMatrix[t]=t%5==0?1:0},r.push=function(){var t=(this.depth,16*(this.depth+1));this.matrixStack.lengthe.left&&i.y>e.top)return i;var o=t.x-i.x,n=t.y-i.y,s=r(o,n);i.x=this.models.length?null:this.models[t]},o.prototype.releaseModel=function(t,i){this.models.length<=t||(this.models[t].release(i),delete this.models[t],this.models.splice(t,1))},o.prototype.numModels=function(){return this.models.length},o.prototype.setDrag=function(t,i){for(var e=0;e0){r.expressions={};for(var t=0;tat.frameBuffers.length&&(this.curFrameNo=this.getMaskRenderTexture()),this.tmpModelToViewMatrix=new R,this.tmpMatrix2=new R,this.tmpMatrixForMask=new R,this.tmpMatrixForDraw=new R,this.CHANNEL_COLORS=new Array;var i=new A;i=new A,i.r=0,i.g=0,i.b=0,i.a=1,this.CHANNEL_COLORS.push(i),i=new A,i.r=1,i.g=0,i.b=0,i.a=0,this.CHANNEL_COLORS.push(i),i=new A,i.r=0,i.g=1,i.b=0,i.a=0,this.CHANNEL_COLORS.push(i),i=new A,i.r=0,i.g=0,i.b=1,i.a=0,this.CHANNEL_COLORS.push(i);for(var e=0;eG._$T7){t._$NP|=i._$4s;throw new $t("_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : "+G._$T7+" < _$f0 : "+r+" )@_$SS#loadModel()\n")}var h=o._$nP();if(r>=G._$s7){var $=o._$9T(),l=o._$9T();if(-30584!=$||-30584!=l)throw t._$NP|=i._$0s,new $t("_$gi _$C _$li , _$0 _$6 _$Ui.")}t._$KS(h);var u=t.getModelContext();u.setDrawParam(t.getDrawParam()),u.init()}catch(t){_._$Rb(t)}},i.prototype._$KS=function(t){this._$MT=t},i.prototype.getModelImpl=function(){return null==this._$MT&&(this._$MT=new p,this._$MT._$zP()),this._$MT},i.prototype.getCanvasWidth=function(){return null==this._$MT?0:this._$MT.getCanvasWidth()},i.prototype.getCanvasHeight=function(){return null==this._$MT?0:this._$MT.getCanvasHeight()},i.prototype.getParamFloat=function(t){return"number"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),this._$5S.getParamFloat(t)},i.prototype.setParamFloat=function(t,i,e){"number"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)*(1-e)+i*e)},i.prototype.addToParamFloat=function(t,i,e){"number"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)+i*e)},i.prototype.multParamFloat=function(t,i,e){"number"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)*(1+(i-1)*e))},i.prototype.getParamIndex=function(t){return this._$5S.getParamIndex(u.getID(t))},i.prototype.loadParam=function(){this._$5S.loadParam()},i.prototype.saveParam=function(){this._$5S.saveParam()},i.prototype.init=function(){this._$5S.init()},i.prototype.update=function(){this._$5S.update()},i.prototype._$Rs=function(){return _._$li("_$60 _$PT _$Rs()"),-1},i.prototype._$Ds=function(t){_._$li("_$60 _$PT _$SS#_$Ds() \n")},i.prototype._$K2=function(){},i.prototype.draw=function(){},i.prototype.getModelContext=function(){return this._$5S},i.prototype._$s2=function(){return this._$NP},i.prototype._$P7=function(t,i,e,r){var o=-1,n=0,s=this;if(0!=e)if(1==t.length){var _=t[0],a=0!=s.getParamFloat(_),h=i[0],$=s.getPartsOpacity(h),l=e/r;a?($+=l)>1&&($=1):($-=l)<0&&($=0),s.setPartsOpacity(h,$)}else{for(var u=0;u=0)break;o=u;var h=i[u];n=s.getPartsOpacity(h),n+=e/r,n>1&&(n=1)}}o<0&&(console.log("No _$wi _$q0/ _$U default[%s]",t[0]),o=0,n=1,s.loadParam(),s.setParamFloat(t[o],n),s.saveParam());for(var u=0;u.15&&(f=1-.15/(1-n)),c>f&&(c=f),s.setPartsOpacity(h,c)}}}else for(var u=0;u=this._$5S._$aS.length)return null;var i=this._$5S._$aS[t];return null!=i&&i.getType()==W._$wb&&i instanceof lt?i.getIndexArray():null},e.CHANNEL_COUNT=4,e.RENDER_TEXTURE_USE_MIPMAP=!1,e.NOT_USED_FRAME=-100,e.prototype._$L7=function(){if(this.tmpModelToViewMatrix&&(this.tmpModelToViewMatrix=null),this.tmpMatrix2&&(this.tmpMatrix2=null),this.tmpMatrixForMask&&(this.tmpMatrixForMask=null),this.tmpMatrixForDraw&&(this.tmpMatrixForDraw=null),this.tmpBoundsOnModel&&(this.tmpBoundsOnModel=null),this.CHANNEL_COLORS){for(var t=this.CHANNEL_COLORS.length-1;t>=0;--t)this.CHANNEL_COLORS.splice(t,1);this.CHANNEL_COLORS=[]}this.releaseShader()},e.prototype.releaseShader=function(){for(var t=at.frameBuffers.length,i=0;i0){var n=i.gl.getParameter(i.gl.FRAMEBUFFER_BINDING),s=new Array(4);s[0]=0,s[1]=0,s[2]=i.gl.canvas.width,s[3]=i.gl.canvas.height,i.gl.viewport(0,0,at.clippingMaskBufferSize,at.clippingMaskBufferSize),this.setupLayoutBounds(e),i.gl.bindFramebuffer(i.gl.FRAMEBUFFER,at.frameBuffers[this.curFrameNo].framebuffer),i.gl.clearColor(0,0,0,0),i.gl.clear(i.gl.COLOR_BUFFER_BIT);for(var r=0;rr?e:r,n=o,s=o,_=0,a=0,h=i.clippedDrawContextList.length,$=0;$_&&(_=v),S>a&&(a=S)}}if(n==o)i.allClippedDrawRect.x=0,i.allClippedDrawRect.y=0,i.allClippedDrawRect.width=0,i.allClippedDrawRect.height=0,i.isUsing=!1;else{var L=_-n,M=a-s;i.allClippedDrawRect.x=n,i.allClippedDrawRect.y=s,i.allClippedDrawRect.width=L,i.allClippedDrawRect.height=M,i.isUsing=!0}},e.prototype.setupLayoutBounds=function(t){var i=t/e.CHANNEL_COUNT,r=t%e.CHANNEL_COUNT;i=~~i,r=~~r;for(var o=0,n=0;n=1)return 1;var p=r,f=p*p;return $*(p*f)+l*f+u*p+0},s.prototype._$a0=function(){},s.prototype.setFadeIn=function(t){this._$dP=t},s.prototype.setFadeOut=function(t){this._$eo=t},s.prototype._$pT=function(t){this._$V0=t},s.prototype.getFadeOut=function(){return this._$eo},s.prototype._$4T=function(){return this._$eo},s.prototype._$mT=function(){return this._$V0},s.prototype.getDurationMSec=function(){return-1},s.prototype.getLoopDurationMSec=function(){return-1},s.prototype.updateParam=function(t,i){if(i._$AT&&!i._$9L){var e=w.getUserTimeMSec();if(i._$z2<0){i._$z2=e,i._$bs=e;var r=this.getDurationMSec();i._$Do<0&&(i._$Do=r<=0?-1:i._$z2+r)}var o=this._$V0;o=o*(0==this._$dP?1:ht._$r2((e-i._$bs)/this._$dP))*(0==this._$eo||i._$Do<0?1:ht._$r2((i._$Do-e)/this._$eo)),0<=o&&o<=1||console.log("### assert!! ### "),this.updateParamExe(t,e,o,i),i._$Do>0&&i._$Do0?console.log("\n"):e%8==0&&e>0&&console.log(" "),console.log("%02X ",255&t[e]);console.log("\n")},_._$nr=function(t,i,e){console.log("%s\n",t);for(var r=i.length,o=0;o=0;--r){this._$lL[r]._$oP(t,this)}this._$oo(t,e),this._$M2=this._$Yb(),this._$9b=(this._$M2-this._$ks)/e,this._$ks=this._$M2}for(var r=this._$qP.length-1;r>=0;--r){this._$qP[r]._$YS(t,this)}this._$iT=i},f.prototype._$oo=function(t,i){i<.033&&(i=.033);var e=1/i;this.p1.vx=(this.p1.x-this.p1._$s0)*e,this.p1.vy=(this.p1.y-this.p1._$70)*e,this.p1.ax=(this.p1.vx-this.p1._$7L)*e,this.p1.ay=(this.p1.vy-this.p1._$HL)*e,this.p1.fx=this.p1.ax*this.p1._$p,this.p1.fy=this.p1.ay*this.p1._$p,this.p1._$xT();var r,o,n=-Math.atan2(this.p1.y-this.p2.y,this.p1.x-this.p2.x),s=Math.cos(n),_=Math.sin(n),a=9.8*this.p2._$p,h=this._$Db*Lt._$bS,$=a*Math.cos(n-h);r=$*_,o=$*s;var l=-this.p1.fx*_*_,u=-this.p1.fy*_*s,p=-this.p2.vx*this._$L2,f=-this.p2.vy*this._$L2;this.p2.fx=r+l+p,this.p2.fy=o+u+f,this.p2.ax=this.p2.fx/this.p2._$p,this.p2.ay=this.p2.fy/this.p2._$p,this.p2.vx+=this.p2.ax*i,this.p2.vy+=this.p2.ay*i,this.p2.x+=this.p2.vx*i,this.p2.y+=this.p2.vy*i;var c=Math.sqrt((this.p1.x-this.p2.x)*(this.p1.x-this.p2.x)+(this.p1.y-this.p2.y)*(this.p1.y-this.p2.y));this.p2.x=this.p1.x+this._$Fo*(this.p2.x-this.p1.x)/c,this.p2.y=this.p1.y+this._$Fo*(this.p2.y-this.p1.y)/c,this.p2.vx=(this.p2.x-this.p2._$s0)*e,this.p2.vy=(this.p2.y-this.p2._$70)*e,this.p2._$xT()},c.prototype._$xT=function(){this._$s0=this.x,this._$70=this.y,this._$7L=this.vx,this._$HL=this.vy},g.prototype._$oP=function(t,i){},y.prototype=new g,y.prototype._$oP=function(t,i){var e=this.scale*t.getParamFloat(this._$wL),r=i.getPhysicsPoint1();switch(this._$tL){default:case f.Src.SRC_TO_X:r.x=r.x+(e-r.x)*this._$V0;break;case f.Src.SRC_TO_Y:r.y=r.y+(e-r.y)*this._$V0;break;case f.Src.SRC_TO_G_ANGLE:var o=i._$qr();o+=(e-o)*this._$V0,i._$pr(o)}},d.prototype._$YS=function(t,i){},T.prototype=new d,T.prototype._$YS=function(t,i){switch(this._$YP){default:case f.Target.TARGET_FROM_ANGLE:t.setParamFloat(this._$wL,this.scale*i._$5r(),this._$V0);break;case f.Target.TARGET_FROM_ANGLE_V:t.setParamFloat(this._$wL,this.scale*i._$Cs(),this._$V0)}},f.Src=function(){},f.Src.SRC_TO_X="SRC_TO_X",f.Src.SRC_TO_Y="SRC_TO_Y",f.Src.SRC_TO_G_ANGLE="SRC_TO_G_ANGLE",f.Target=function(){},f.Target.TARGET_FROM_ANGLE="TARGET_FROM_ANGLE",f.Target.TARGET_FROM_ANGLE_V="TARGET_FROM_ANGLE_V",P.prototype.init=function(t){this._$fL=t._$fL,this._$gL=t._$gL,this._$B0=t._$B0,this._$z0=t._$z0,this._$qT=t._$qT,this.reflectX=t.reflectX,this.reflectY=t.reflectY},P.prototype._$F0=function(t){this._$fL=t._$_T(),this._$gL=t._$_T(),this._$B0=t._$_T(),this._$z0=t._$_T(),this._$qT=t._$_T(),t.getFormatVersion()>=G.LIVE2D_FORMAT_VERSION_V2_10_SDK2&&(this.reflectX=t._$po(),this.reflectY=t._$po())},P.prototype._$e=function(){};var It=function(){};It._$ni=function(t,i,e,r,o,n,s,_,a){var h=s*n-_*o;if(0==h)return null;var $,l=((t-e)*n-(i-r)*o)/h;return $=0!=o?(t-e-l*s)/o:(i-r-l*_)/n,isNaN($)&&($=(t-e-l*s)/o,isNaN($)&&($=(i-r-l*_)/n),isNaN($)&&(console.log("a is NaN @UtVector#_$ni() "),console.log("v1x : "+o),console.log("v1x != 0 ? "+(0!=o)))),null==a?new Array($,l):(a[0]=$,a[1]=l,a)},v.prototype._$8P=function(){return this.x+.5*this.width},v.prototype._$6P=function(){return this.y+.5*this.height},v.prototype._$EL=function(){return this.x+this.width},v.prototype._$5T=function(){return this.y+this.height},v.prototype._$jL=function(t,i,e,r){this.x=t,this.y=i,this.width=e,this.height=r},v.prototype._$jL=function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},v.prototype.contains=function(t,i){return this.x<=this.x&&this.y<=this.y&&this.x<=this.x+this.width&&this.y<=this.y+this.height},v.prototype.expand=function(t,i){this.x-=t,this.y-=i,this.width+=2*t,this.height+=2*i},S._$Z2=function(t,i,e,r){var o=i._$Q2(t,e),n=t._$vs(),s=t._$Tr();if(i._$zr(n,s,o),o<=0)return r[n[0]];if(1==o){var _=r[n[0]],a=r[n[1]],h=s[0];return _+(a-_)*h|0}if(2==o){var _=r[n[0]],a=r[n[1]],$=r[n[2]],l=r[n[3]],h=s[0],u=s[1],p=_+(a-_)*h|0,f=$+(l-$)*h|0;return p+(f-p)*u|0}if(3==o){var c=r[n[0]],g=r[n[1]],y=r[n[2]],d=r[n[3]],m=r[n[4]],T=r[n[5]],P=r[n[6]],v=r[n[7]],h=s[0],u=s[1],S=s[2],_=c+(g-c)*h|0,a=y+(d-y)*h|0,$=m+(T-m)*h|0,l=P+(v-P)*h|0,p=_+(a-_)*u|0,f=$+(l-$)*u|0;return p+(f-p)*S|0}if(4==o){var L=r[n[0]],M=r[n[1]],E=r[n[2]],A=r[n[3]],I=r[n[4]],w=r[n[5]],x=r[n[6]],O=r[n[7]],D=r[n[8]],R=r[n[9]],F=r[n[10]],b=r[n[11]],C=r[n[12]],N=r[n[13]],B=r[n[14]],U=r[n[15]],h=s[0],u=s[1],S=s[2],G=s[3],c=L+(M-L)*h|0,g=E+(A-E)*h|0,y=I+(w-I)*h|0,d=x+(O-x)*h|0,m=D+(R-D)*h|0,T=F+(b-F)*h|0,P=C+(N-C)*h|0,v=B+(U-B)*h|0,_=c+(g-c)*u|0,a=y+(d-y)*u|0,$=m+(T-m)*u|0,l=P+(v-P)*u|0,p=_+(a-_)*S|0,f=$+(l-$)*S|0;return p+(f-p)*G|0}for(var Y=1<=G._$T7?(this.clipID=t._$nP(),this.clipIDList=this.convertClipIDForV2_11(this.clipID)):this.clipIDList=[],this._$MS(this._$Lb)},M.prototype.getClipIDList=function(){return this.clipIDList},M.prototype.init=function(t){},M.prototype._$Nr=function(t,i){if(i._$IS[0]=!1,i._$Us=S._$Z2(t,this._$GS,i._$IS,this._$Lb),at._$Zs);else if(i._$IS[0])return;i._$7s=S._$br(t,this._$GS,i._$IS,this._$mS)},M.prototype._$2b=function(t,i){},M.prototype.getDrawDataID=function(){return this._$gP},M.prototype._$j2=function(t){this._$gP=t},M.prototype.getOpacity=function(t,i){return i._$7s},M.prototype._$zS=function(t,i){return i._$Us},M.prototype._$MS=function(t){for(var i=t.length-1;i>=0;--i){var e=t[i];eM._$R2&&(M._$R2=e)}},M.prototype.getTargetBaseDataID=function(){return this._$dr},M.prototype._$gs=function(t){this._$dr=t},M.prototype._$32=function(){return null!=this._$dr&&this._$dr!=dt._$2o()},M.prototype.preDraw=function(t,i,e){},M.prototype.draw=function(t,i,e){},M.prototype.getType=function(){},M.prototype._$B2=function(t,i,e){},E._$ps=32,E.CLIPPING_PROCESS_NONE=0,E.CLIPPING_PROCESS_OVERWRITE_ALPHA=1,E.CLIPPING_PROCESS_MULTIPLY_ALPHA=2,E.CLIPPING_PROCESS_DRAW=3,E.CLIPPING_PROCESS_CLEAR_ALPHA=4,E.prototype.setChannelFlagAsColor=function(t,i){this.CHANNEL_COLORS[t]=i},E.prototype.getChannelFlagAsColor=function(t){return this.CHANNEL_COLORS[t]},E.prototype._$ZT=function(){},E.prototype._$Uo=function(t,i,e,r,o,n,s){},E.prototype._$Rs=function(){return-1},E.prototype._$Ds=function(t){},E.prototype.setBaseColor=function(t,i,e,r){t<0?t=0:t>1&&(t=1),i<0?i=0:i>1&&(i=1),e<0?e=0:e>1&&(e=1),r<0?r=0:r>1&&(r=1),this._$lT=t,this._$C0=i,this._$tT=e,this._$WL=r},E.prototype._$WP=function(t){this.culling=t},E.prototype.setMatrix=function(t){for(var i=0;i<16;i++)this.matrix4x4[i]=t[i]},E.prototype._$IT=function(){return this.matrix4x4},E.prototype.setPremultipliedAlpha=function(t){this.premultipliedAlpha=t},E.prototype.isPremultipliedAlpha=function(){return this.premultipliedAlpha},E.prototype.setAnisotropy=function(t){this.anisotropy=t},E.prototype.getAnisotropy=function(){return this.anisotropy},E.prototype.getClippingProcess=function(){return this.clippingProcess},E.prototype.setClippingProcess=function(t){this.clippingProcess=t},E.prototype.setClipBufPre_clipContextForMask=function(t){this.clipBufPre_clipContextMask=t},E.prototype.getClipBufPre_clipContextMask=function(){return this.clipBufPre_clipContextMask},E.prototype.setClipBufPre_clipContextForDraw=function(t){this.clipBufPre_clipContextDraw=t},E.prototype.getClipBufPre_clipContextDraw=function(){return this.clipBufPre_clipContextDraw},I._$ur=-2,I._$c2=1,I._$_b=2,I.prototype._$F0=function(t){this._$kP=t._$nP(),this._$dr=t._$nP()},I.prototype.readV2_opacity=function(t){t.getFormatVersion()>=G.LIVE2D_FORMAT_VERSION_V2_10_SDK2&&(this._$mS=t._$Tb())},I.prototype.init=function(t){},I.prototype._$Nr=function(t,i){},I.prototype.interpolateOpacity=function(t,i,e,r){null==this._$mS?e.setInterpolatedOpacity(1):e.setInterpolatedOpacity(S._$br(t,i,r,this._$mS))},I.prototype._$2b=function(t,i){},I.prototype._$nb=function(t,i,e,r,o,n,s){},I.prototype.getType=function(){},I.prototype._$gs=function(t){this._$dr=t},I.prototype._$a2=function(t){this._$kP=t},I.prototype.getTargetBaseDataID=function(){return this._$dr},I.prototype.getBaseDataID=function(){return this._$kP},I.prototype._$32=function(){return null!=this._$dr&&this._$dr!=dt._$2o()},w._$W2=0,w._$CS=w._$W2,w._$Mo=function(){return!0},w._$XP=function(t){try{for(var i=getTimeMSec();getTimeMSec()-i=t.length)return!1;for(var o=i;o=0;--e){var r=this._$Ob[e].getParamIndex(i);if(r==x._$ds&&(r=t.getParamIndex(this._$Ob[e].getParamID())),t._$Xb(r))return!0}return!1},D.prototype._$Q2=function(t,i){for(var e,r,o=this._$Ob.length,n=t._$v2(),s=0,_=0;_U._$Qb&&console.log("err 23245\n");for(var o=this._$Ob.length,n=1,s=1,_=0,a=0;a=0;--n)e[n]=o[n]}else this.mult_fast(t,i,e,r)},R.prototype.mult_fast=function(t,i,e,r){r?(e[0]=t[0]*i[0]+t[4]*i[1]+t[8]*i[2],e[4]=t[0]*i[4]+t[4]*i[5]+t[8]*i[6],e[8]=t[0]*i[8]+t[4]*i[9]+t[8]*i[10],e[12]=t[0]*i[12]+t[4]*i[13]+t[8]*i[14]+t[12],e[1]=t[1]*i[0]+t[5]*i[1]+t[9]*i[2],e[5]=t[1]*i[4]+t[5]*i[5]+t[9]*i[6],e[9]=t[1]*i[8]+t[5]*i[9]+t[9]*i[10],e[13]=t[1]*i[12]+t[5]*i[13]+t[9]*i[14]+t[13],e[2]=t[2]*i[0]+t[6]*i[1]+t[10]*i[2],e[6]=t[2]*i[4]+t[6]*i[5]+t[10]*i[6],e[10]=t[2]*i[8]+t[6]*i[9]+t[10]*i[10],e[14]=t[2]*i[12]+t[6]*i[13]+t[10]*i[14]+t[14],e[3]=e[7]=e[11]=0,e[15]=1):(e[0]=t[0]*i[0]+t[4]*i[1]+t[8]*i[2]+t[12]*i[3],e[4]=t[0]*i[4]+t[4]*i[5]+t[8]*i[6]+t[12]*i[7],e[8]=t[0]*i[8]+t[4]*i[9]+t[8]*i[10]+t[12]*i[11],e[12]=t[0]*i[12]+t[4]*i[13]+t[8]*i[14]+t[12]*i[15],e[1]=t[1]*i[0]+t[5]*i[1]+t[9]*i[2]+t[13]*i[3],e[5]=t[1]*i[4]+t[5]*i[5]+t[9]*i[6]+t[13]*i[7],e[9]=t[1]*i[8]+t[5]*i[9]+t[9]*i[10]+t[13]*i[11],e[13]=t[1]*i[12]+t[5]*i[13]+t[9]*i[14]+t[13]*i[15],e[2]=t[2]*i[0]+t[6]*i[1]+t[10]*i[2]+t[14]*i[3],e[6]=t[2]*i[4]+t[6]*i[5]+t[10]*i[6]+t[14]*i[7],e[10]=t[2]*i[8]+t[6]*i[9]+t[10]*i[10]+t[14]*i[11],e[14]=t[2]*i[12]+t[6]*i[13]+t[10]*i[14]+t[14]*i[15],e[3]=t[3]*i[0]+t[7]*i[1]+t[11]*i[2]+t[15]*i[3],e[7]=t[3]*i[4]+t[7]*i[5]+t[11]*i[6]+t[15]*i[7],e[11]=t[3]*i[8]+t[7]*i[9]+t[11]*i[10]+t[15]*i[11],e[15]=t[3]*i[12]+t[7]*i[13]+t[11]*i[14]+t[15]*i[15])},R.prototype.translate=function(t,i,e){this.m[12]=this.m[0]*t+this.m[4]*i+this.m[8]*e+this.m[12],this.m[13]=this.m[1]*t+this.m[5]*i+this.m[9]*e+this.m[13],this.m[14]=this.m[2]*t+this.m[6]*i+this.m[10]*e+this.m[14],this.m[15]=this.m[3]*t+this.m[7]*i+this.m[11]*e+this.m[15]},R.prototype.scale=function(t,i,e){this.m[0]*=t,this.m[4]*=i,this.m[8]*=e,this.m[1]*=t,this.m[5]*=i,this.m[9]*=e,this.m[2]*=t,this.m[6]*=i,this.m[10]*=e,this.m[3]*=t,this.m[7]*=i,this.m[11]*=e},R.prototype.rotateX=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[4];this.m[4]=r*i+this.m[8]*e,this.m[8]=r*-e+this.m[8]*i,r=this.m[5],this.m[5]=r*i+this.m[9]*e,this.m[9]=r*-e+this.m[9]*i,r=this.m[6],this.m[6]=r*i+this.m[10]*e,this.m[10]=r*-e+this.m[10]*i,r=this.m[7],this.m[7]=r*i+this.m[11]*e,this.m[11]=r*-e+this.m[11]*i},R.prototype.rotateY=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[0];this.m[0]=r*i+this.m[8]*-e,this.m[8]=r*e+this.m[8]*i,r=this.m[1],this.m[1]=r*i+this.m[9]*-e,this.m[9]=r*e+this.m[9]*i,r=m[2],this.m[2]=r*i+this.m[10]*-e,this.m[10]=r*e+this.m[10]*i,r=m[3],this.m[3]=r*i+this.m[11]*-e,this.m[11]=r*e+this.m[11]*i},R.prototype.rotateZ=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[0];this.m[0]=r*i+this.m[4]*e,this.m[4]=r*-e+this.m[4]*i,r=this.m[1],this.m[1]=r*i+this.m[5]*e,this.m[5]=r*-e+this.m[5]*i,r=this.m[2],this.m[2]=r*i+this.m[6]*e,this.m[6]=r*-e+this.m[6]*i,r=this.m[3],this.m[3]=r*i+this.m[7]*e,this.m[7]=r*-e+this.m[7]*i},F.prototype=new et,F._$tP=new Object,F._$27=function(){F._$tP.clear()},F.getID=function(t){var i=F._$tP[t];return null==i&&(i=new F(t),F._$tP[t]=i),i},F.prototype._$3s=function(){return new F},b._$kS=-1,b._$pS=0,b._$hb=1,b.STATE_IDENTITY=0,b._$gb=1,b._$fo=2,b._$go=4,b.prototype.transform=function(t,i,e){var r,o,n,s,_,a,h=0,$=0;switch(this._$hi){default:return;case b._$go|b._$fo|b._$gb:for(r=this._$7,o=this._$H,n=this._$k,s=this._$f,_=this._$g,a=this._$w;--e>=0;){var l=t[h++],u=t[h++];i[$++]=r*l+o*u+n,i[$++]=s*l+_*u+a}return;case b._$go|b._$fo:for(r=this._$7,o=this._$H,s=this._$f,_=this._$g;--e>=0;){var l=t[h++],u=t[h++];i[$++]=r*l+o*u,i[$++]=s*l+_*u}return;case b._$go|b._$gb:for(o=this._$H,n=this._$k,s=this._$f,a=this._$w;--e>=0;){var l=t[h++];i[$++]=o*t[h++]+n,i[$++]=s*l+a}return;case b._$go:for(o=this._$H,s=this._$f;--e>=0;){var l=t[h++];i[$++]=o*t[h++],i[$++]=s*l}return;case b._$fo|b._$gb:for(r=this._$7,n=this._$k,_=this._$g,a=this._$w;--e>=0;)i[$++]=r*t[h++]+n,i[$++]=_*t[h++]+a;return;case b._$fo:for(r=this._$7,_=this._$g;--e>=0;)i[$++]=r*t[h++],i[$++]=_*t[h++];return;case b._$gb:for(n=this._$k,a=this._$w;--e>=0;)i[$++]=t[h++]+n,i[$++]=t[h++]+a;return;case b.STATE_IDENTITY:return void(t==i&&h==$||w._$jT(t,h,i,$,2*e))}},b.prototype.update=function(){0==this._$H&&0==this._$f?1==this._$7&&1==this._$g?0==this._$k&&0==this._$w?(this._$hi=b.STATE_IDENTITY,this._$Z=b._$pS):(this._$hi=b._$gb,this._$Z=b._$hb):0==this._$k&&0==this._$w?(this._$hi=b._$fo,this._$Z=b._$kS):(this._$hi=b._$fo|b._$gb,this._$Z=b._$kS):0==this._$7&&0==this._$g?0==this._$k&&0==this._$w?(this._$hi=b._$go,this._$Z=b._$kS):(this._$hi=b._$go|b._$gb,this._$Z=b._$kS):0==this._$k&&0==this._$w?(this._$hi=b._$go|b._$fo,this._$Z=b._$kS):(this._$hi=b._$go|b._$fo|b._$gb,this._$Z=b._$kS)},b.prototype._$RT=function(t){this._$IT(t);var i=t[0],e=t[2],r=t[1],o=t[3],n=Math.sqrt(i*i+r*r),s=i*o-e*r;0==n?at._$so&&console.log("affine._$RT() / rt==0"):(t[0]=n,t[1]=s/n,t[2]=(r*o+i*e)/s,t[3]=Math.atan2(r,i))},b.prototype._$ho=function(t,i,e,r){var o=new Float32Array(6),n=new Float32Array(6);t._$RT(o),i._$RT(n);var s=new Float32Array(6);s[0]=o[0]+(n[0]-o[0])*e,s[1]=o[1]+(n[1]-o[1])*e,s[2]=o[2]+(n[2]-o[2])*e,s[3]=o[3]+(n[3]-o[3])*e,s[4]=o[4]+(n[4]-o[4])*e,s[5]=o[5]+(n[5]-o[5])*e,r._$CT(s)},b.prototype._$CT=function(t){var i=Math.cos(t[3]),e=Math.sin(t[3]);this._$7=t[0]*i,this._$f=t[0]*e,this._$H=t[1]*(t[2]*i-e),this._$g=t[1]*(t[2]*e+i),this._$k=t[4],this._$w=t[5],this.update()},b.prototype._$IT=function(t){t[0]=this._$7,t[1]=this._$f,t[2]=this._$H,t[3]=this._$g,t[4]=this._$k,t[5]=this._$w},C.prototype=new s,C._$cs="VISIBLE:",C._$ar="LAYOUT:",C._$Co=0,C._$D2=[],C._$1T=1,C.loadMotion=function(t){var i=new C,e=[0],r=t.length;i._$yT=0;for(var o=0;o=0){var a=new B;O.startsWith(t,s,C._$cs)?(a._$RP=B._$hs,a._$4P=new String(t,s,_-s)):O.startsWith(t,s,C._$ar)?(a._$4P=new String(t,s+7,_-s-7),O.startsWith(t,s+7,"ANCHOR_X")?a._$RP=B._$xs:O.startsWith(t,s+7,"ANCHOR_Y")?a._$RP=B._$us:O.startsWith(t,s+7,"SCALE_X")?a._$RP=B._$qs:O.startsWith(t,s+7,"SCALE_Y")?a._$RP=B._$Ys:O.startsWith(t,s+7,"X")?a._$RP=B._$ws:O.startsWith(t,s+7,"Y")&&(a._$RP=B._$Ns)):(a._$RP=B._$Fr,a._$4P=new String(t,s,_-s)),i.motions.push(a);var h=0;for(C._$D2.clear(),o=_+1;o0){C._$D2.push($),h++;var l=e[0];if(li._$yT&&(i._$yT=h)}}}else{for(var s=o,_=-1;o=0)for(_==s+4&&"f"==t[s+1]&&"p"==t[s+2]&&"s"==t[s+3]&&(u=!0),o=_+1;o0&&u&&5<$&&$<121&&(i._$D0=$),o=e[0]}for(;o=$?$-1:s];t.setParamFloat(l,u)}else if(B._$ws<=h._$RP&&h._$RP<=B._$Ys);else{var p=t.getParamFloat(l),f=h._$I0[s>=$?$-1:s],c=h._$I0[s+1>=$?$-1:s+1],g=f+(c-f)*_,y=p+(g-p)*e;t.setParamFloat(l,y)}}s>=this._$yT&&(this._$E?(r._$z2=i,this.loopFadeIn&&(r._$bs=i)):r._$9L=!0)},C.prototype._$r0=function(){return this._$E},C.prototype._$aL=function(t){this._$E=t},C.prototype.isLoopFadeIn=function(){return this.loopFadeIn},C.prototype.setLoopFadeIn=function(t){this.loopFadeIn=t},N.prototype.clear=function(){this.size=0},N.prototype.add=function(t){if(this._$P.length<=this.size){var i=new Float32Array(2*this.size);w._$jT(this._$P,0,i,0,this.size),this._$P=i}this._$P[this.size++]=t},N.prototype._$BL=function(){var t=new Float32Array(this.size);return w._$jT(this._$P,0,t,0,this.size),t},B._$Fr=0,B._$hs=1,B._$ws=100,B._$Ns=101,B._$xs=102,B._$us=103,B._$qs=104,B._$Ys=105,U._$Ms=1,U._$Qs=2,U._$i2=0,U._$No=2,U._$do=U._$Ms,U._$Ls=!0,U._$1r=5,U._$Qb=65,U._$J=1e-4,U._$FT=.001,U._$Ss=3,G._$o7=6,G._$S7=7,G._$s7=8,G._$77=9,G.LIVE2D_FORMAT_VERSION_V2_10_SDK2=10,G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1=11,G._$T7=G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1,G._$Is=-2004318072,G._$h0=0,G._$4L=23,G._$7P=33,G._$uT=function(t){console.log("_$bo :: _$6 _$mo _$E0 : %d\n",t)},G._$9o=function(t){if(t<40)return G._$uT(t),null;if(t<50)return G._$uT(t),null;if(t<60)return G._$uT(t),null;if(t<100)switch(t){case 65:return new Z;case 66:return new D;case 67:return new x;case 68:return new z;case 69:return new P;case 70:return new lt;default:return G._$uT(t),null}else if(t<150)switch(t){case 131:return new st;case 133:return new tt;case 136:return new p;case 137:return new ot;case 142:return new j}return G._$uT(t),null},Y._$HP=0,Y._$_0=!0;Y._$V2=-1,Y._$W0=-1,Y._$jr=!1,Y._$ZS=!0,Y._$tr=-1e6,Y._$lr=1e6,Y._$is=32,Y._$e=!1,Y.prototype.getDrawDataIndex=function(t){for(var i=this._$aS.length-1;i>=0;--i)if(null!=this._$aS[i]&&this._$aS[i].getDrawDataID()==t)return i;return-1},Y.prototype.getDrawData=function(t){if(t instanceof F){if(null==this._$Bo){this._$Bo=new Object;for(var i=this._$aS.length,e=0;e0&&this.release();for(var t=this._$Ri.getModelImpl(),i=t._$Xr(),r=i.length,o=new Array,n=new Array,s=0;s=0)&&(this._$3S.push(m),this._$db.push(n[s]),o[s]=null,d=!0)}}if(!d)break}var P=t._$E2();if(null!=P){var v=P._$1s();if(null!=v)for(var S=v.length,s=0;s=0;i--)this._$Js[i]=Y._$jr;return this._$QT=!1,Y._$e&&_.dump("_$eL"),!1},Y.prototype.preDraw=function(t){null!=this.clipManager&&(t._$ZT(),this.clipManager.setupClip(this,t))},Y.prototype.draw=function(t){if(null==this._$Ws)return void _._$li("call _$Ri.update() before _$Ri.draw() ");var i=this._$Ws.length;t._$ZT();for(var e=0;e=0;--i)if(this._$pb[i]==t)return i;return this._$02(t,0,Y._$tr,Y._$lr)},Y.prototype._$BS=function(t){return this.getBaseDataIndex(t)},Y.prototype.getBaseDataIndex=function(t){for(var i=this._$3S.length-1;i>=0;--i)if(null!=this._$3S[i]&&this._$3S[i].getBaseDataID()==t)return i;return-1},Y.prototype._$UT=function(t,i){var e=new Float32Array(i);return w._$jT(t,0,e,0,t.length),e},Y.prototype._$02=function(t,i,e,r){if(this._$qo>=this._$pb.length){var o=this._$pb.length,n=new Array(2*o);w._$jT(this._$pb,0,n,0,o),this._$pb=n,this._$_2=this._$UT(this._$_2,2*o),this._$vr=this._$UT(this._$vr,2*o),this._$Rr=this._$UT(this._$Rr,2*o),this._$Or=this._$UT(this._$Or,2*o);var s=new Array;w._$jT(this._$Js,0,s,0,o),this._$Js=s}return this._$pb[this._$qo]=t,this._$_2[this._$qo]=i,this._$vr[this._$qo]=i,this._$Rr[this._$qo]=e,this._$Or[this._$qo]=r,this._$Js[this._$qo]=Y._$ZS,this._$qo++},Y.prototype._$Zo=function(t,i){this._$3S[t]=i},Y.prototype.setParamFloat=function(t,i){ithis._$Or[t]&&(i=this._$Or[t]),this._$_2[t]=i},Y.prototype.loadParam=function(){var t=this._$_2.length;t>this._$fs.length&&(t=this._$fs.length),w._$jT(this._$fs,0,this._$_2,0,t)},Y.prototype.saveParam=function(){var t=this._$_2.length;t>this._$fs.length&&(this._$fs=new Float32Array(t)),w._$jT(this._$_2,0,this._$fs,0,t)},Y.prototype._$v2=function(){return this._$co},Y.prototype._$WS=function(){return this._$QT},Y.prototype._$Xb=function(t){return this._$Js[t]==Y._$ZS},Y.prototype._$vs=function(){return this._$Es},Y.prototype._$Tr=function(){return this._$ZP},Y.prototype.getBaseData=function(t){return this._$3S[t]},Y.prototype.getParamFloat=function(t){return this._$_2[t]},Y.prototype.getParamMax=function(t){return this._$Or[t]},Y.prototype.getParamMin=function(t){return this._$Rr[t]},Y.prototype.setPartsOpacity=function(t,i){this._$Hr[t].setPartsOpacity(i)},Y.prototype.getPartsOpacity=function(t){return this._$Hr[t].getPartsOpacity()},Y.prototype.getPartsDataIndex=function(t){for(var i=this._$F2.length-1;i>=0;--i)if(null!=this._$F2[i]&&this._$F2[i]._$p2()==t)return i;return-1},Y.prototype._$q2=function(t){return this._$db[t]},Y.prototype._$C2=function(t){return this._$8b[t]},Y.prototype._$Bb=function(t){return this._$Hr[t]},Y.prototype._$5s=function(t,i){for(var e=this._$Ws.length,r=t,o=0;o0;)n+=i;return r},k._$C=function(t){var i=null,e=null;try{i=t instanceof Array?t:new _$Xs(t,8192),e=new _$js;for(var r,o=new Int8Array(1e3);(r=i.read(o))>0;)e.write(o,0,r);return e._$TS()}finally{null!=t&&t.close(),null!=e&&(e.flush(),e.close())}},V.prototype._$T2=function(){return w.getUserTimeMSec()+Math._$10()*(2*this._$Br-1)},V.prototype._$uo=function(t){this._$Br=t},V.prototype._$QS=function(t,i,e){this._$Dr=t,this._$Cb=i,this._$mr=e},V.prototype._$7T=function(t){var i,e=w.getUserTimeMSec(),r=0;switch(this._$_L){case STATE_CLOSING:r=(e-this._$bb)/this._$Dr,r>=1&&(r=1,this._$_L=wt.STATE_CLOSED,this._$bb=e),i=1-r;break;case STATE_CLOSED:r=(e-this._$bb)/this._$Cb,r>=1&&(this._$_L=wt.STATE_OPENING,this._$bb=e),i=0;break;case STATE_OPENING:r=(e-this._$bb)/this._$mr,r>=1&&(r=1,this._$_L=wt.STATE_INTERVAL,this._$12=this._$T2()),i=r;break;case STATE_INTERVAL:this._$12.9?at.EXPAND_W:0;this.gl.drawElements(a,e,r,o,n,h,this.transform,_)}},X.prototype._$Rs=function(){throw new Error("_$Rs")},X.prototype._$Ds=function(t){throw new Error("_$Ds")},X.prototype._$K2=function(){for(var t=0;t=0;--i){var e=t[i];eW._$R2&&(W._$R2=e)}},W._$or=function(){return W._$52},W._$Pr=function(){return W._$R2},W.prototype._$F0=function(t){this._$gP=t._$nP(),this._$dr=t._$nP(),this._$GS=t._$nP(),this._$qb=t._$6L(),this._$Lb=t._$cS(),this._$mS=t._$Tb(),t.getFormatVersion()>=G._$T7?(this.clipID=t._$nP(),this.clipIDList=this.convertClipIDForV2_11(this.clipID)):this.clipIDList=null,W._$Sb(this._$Lb)},W.prototype.getClipIDList=function(){return this.clipIDList},W.prototype._$Nr=function(t,i){if(i._$IS[0]=!1,i._$Us=S._$Z2(t,this._$GS,i._$IS,this._$Lb),at._$Zs);else if(i._$IS[0])return;i._$7s=S._$br(t,this._$GS,i._$IS,this._$mS)},W.prototype._$2b=function(t){},W.prototype.getDrawDataID=function(){return this._$gP},W.prototype._$j2=function(t){this._$gP=t},W.prototype.getOpacity=function(t,i){return i._$7s},W.prototype._$zS=function(t,i){return i._$Us},W.prototype.getTargetBaseDataID=function(){return this._$dr},W.prototype._$gs=function(t){this._$dr=t},W.prototype._$32=function(){return null!=this._$dr&&this._$dr!=dt._$2o()},W.prototype.getType=function(){},j._$42=0,j.prototype._$1b=function(){return this._$3S},j.prototype.getDrawDataList=function(){return this._$aS},j.prototype._$F0=function(t){this._$NL=t._$nP(),this._$aS=t._$nP(),this._$3S=t._$nP()},j.prototype._$kr=function(t){t._$Zo(this._$3S),t._$xo(this._$aS),this._$3S=null,this._$aS=null},q.prototype=new i,q.loadModel=function(t){var e=new q;return i._$62(e,t),e},q.loadModel=function(t){var e=new q;return i._$62(e,t),e},q._$to=function(){return new q},q._$er=function(t){var i=new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");if(0==i.exists())throw new _$ls("_$t0 _$_ _$6 _$Ui :: "+i._$PL());for(var e=["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1","../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1","../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1","../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"],r=q.loadModel(i._$3b()),o=0;o=0){var h=new B;O.startsWith(t,_,J._$cs)?(h._$RP=B._$hs,h._$4P=O.createString(t,_,a-_)):O.startsWith(t,_,J._$ar)?(h._$4P=O.createString(t,_+7,a-_-7),O.startsWith(t,_+7,"ANCHOR_X")?h._$RP=B._$xs:O.startsWith(t,_+7,"ANCHOR_Y")?h._$RP=B._$us:O.startsWith(t,_+7,"SCALE_X")?h._$RP=B._$qs:O.startsWith(t,_+7,"SCALE_Y")?h._$RP=B._$Ys:O.startsWith(t,_+7,"X")?h._$RP=B._$ws:O.startsWith(t,_+7,"Y")&&(h._$RP=B._$Ns)):(h._$RP=B._$Fr,h._$4P=O.createString(t,_,a-_)),i.motions.push(h);var $=0,l=[];for(o=a+1;o0){l.push(u),$++;var p=e[0];if(pi._$yT&&(i._$yT=$)}}}else{for(var _=o,a=-1;o=0)for(a==_+4&&"f"==Q(t,_+1)&&"p"==Q(t,_+2)&&"s"==Q(t,_+3)&&(f=!0),o=a+1;o0&&f&&5=$?$-1:s];t.setParamFloat(l,u)}else if(B._$ws<=h._$RP&&h._$RP<=B._$Ys);else{var p,f=t.getParamIndex(l),c=t.getModelContext(),g=c.getParamMax(f),y=c.getParamMin(f),d=.4*(g-y),m=c.getParamFloat(f),T=h._$I0[s>=$?$-1:s],P=h._$I0[s+1>=$?$-1:s+1];p=Td||T>P&&T-P>d?T:T+(P-T)*_;var v=m+(p-m)*e;t.setParamFloat(l,v)}}s>=this._$yT&&(this._$E?(r._$z2=i,this.loopFadeIn&&(r._$bs=i)):r._$9L=!0),this._$eP=e},J.prototype._$r0=function(){return this._$E},J.prototype._$aL=function(t){this._$E=t},J.prototype._$S0=function(){return this._$D0},J.prototype._$U0=function(t){this._$D0=t},J.prototype.isLoopFadeIn=function(){return this.loopFadeIn},J.prototype.setLoopFadeIn=function(t){this.loopFadeIn=t},N.prototype.clear=function(){this.size=0},N.prototype.add=function(t){if(this._$P.length<=this.size){var i=new Float32Array(2*this.size);w._$jT(this._$P,0,i,0,this.size),this._$P=i}this._$P[this.size++]=t},N.prototype._$BL=function(){var t=new Float32Array(this.size);return w._$jT(this._$P,0,t,0,this.size),t},B._$Fr=0,B._$hs=1,B._$ws=100,B._$Ns=101,B._$xs=102,B._$us=103,B._$qs=104,B._$Ys=105,Z.prototype=new I,Z._$gT=new Array,Z.prototype._$zP=function(){this._$GS=new D,this._$GS._$zP()},Z.prototype._$F0=function(t){I.prototype._$F0.call(this,t),this._$A=t._$6L(),this._$o=t._$6L(),this._$GS=t._$nP(),this._$Eo=t._$nP(),I.prototype.readV2_opacity.call(this,t)},Z.prototype.init=function(t){var i=new K(this),e=(this._$o+1)*(this._$A+1);return null!=i._$Cr&&(i._$Cr=null),i._$Cr=new Float32Array(2*e),null!=i._$hr&&(i._$hr=null),this._$32()?i._$hr=new Float32Array(2*e):i._$hr=null,i},Z.prototype._$Nr=function(t,i){var e=i;if(this._$GS._$Ur(t)){var r=this._$VT(),o=Z._$gT;o[0]=!1,S._$Vr(t,this._$GS,o,r,this._$Eo,e._$Cr,0,2),i._$Ib(o[0]),this.interpolateOpacity(t,this._$GS,i,o)}},Z.prototype._$2b=function(t,i){var e=i;if(e._$hS(!0),this._$32()){var r=this.getTargetBaseDataID();if(e._$8r==I._$ur&&(e._$8r=t.getBaseDataIndex(r)),e._$8r<0)at._$so&&_._$li("_$L _$0P _$G :: %s",r),e._$hS(!1);else{var o=t.getBaseData(e._$8r),n=t._$q2(e._$8r);if(null!=o&&n._$yo()){var s=n.getTotalScale();e.setTotalScale_notForClient(s);var a=n.getTotalOpacity();e.setTotalOpacity(a*e.getInterpolatedOpacity()),o._$nb(t,n,e._$Cr,e._$hr,this._$VT(),0,2),e._$hS(!0)}else e._$hS(!1)}}else e.setTotalOpacity(e.getInterpolatedOpacity())},Z.prototype._$nb=function(t,i,e,r,o,n,s){var _=i,a=null!=_._$hr?_._$hr:_._$Cr;Z.transformPoints_sdk2(e,r,o,n,s,a,this._$o,this._$A)},Z.transformPoints_sdk2=function(i,e,r,o,n,s,_,a){for(var h,$,l,u=r*n,p=0,f=0,c=0,g=0,y=0,d=0,m=!1,T=o;T=1){var F=s[2*(0+a*M)],b=s[2*(0+a*M)+1],C=p-2*c+1*y,N=f-2*g+1*d,x=p+3*y,O=f+3*d,D=p-2*c+3*y,R=f-2*g+3*d,B=.5*(S- -2),U=.5*(L-1);B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else{var G=0|v;G==a&&(G=a-1);var B=.5*(S- -2),U=v-G,Y=G/a,k=(G+1)/a,F=s[2*(0+G*M)],b=s[2*(0+G*M)+1],x=s[2*(0+(G+1)*M)],O=s[2*(0+(G+1)*M)+1],C=p-2*c+Y*y,N=f-2*g+Y*d,D=p-2*c+k*y,R=f-2*g+k*d;B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else if(1<=S)if(L<=0){var D=s[2*(_+0*M)],R=s[2*(_+0*M)+1],x=p+3*c,O=f+3*g,C=p+1*c-2*y,N=f+1*g-2*d,F=p+3*c-2*y,b=f+3*g-2*d,B=.5*(S-1),U=.5*(L- -2);B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else if(L>=1){var C=s[2*(_+a*M)],N=s[2*(_+a*M)+1],F=p+3*c+1*y,b=f+3*g+1*d,D=p+1*c+3*y,R=f+1*g+3*d,x=p+3*c+3*y,O=f+3*g+3*d,B=.5*(S-1),U=.5*(L-1);B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else{var G=0|v;G==a&&(G=a-1);var B=.5*(S-1),U=v-G,Y=G/a,k=(G+1)/a,C=s[2*(_+G*M)],N=s[2*(_+G*M)+1],D=s[2*(_+(G+1)*M)],R=s[2*(_+(G+1)*M)+1],F=p+3*c+Y*y,b=f+3*g+Y*d,x=p+3*c+k*y,O=f+3*g+k*d;B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else if(L<=0){var V=0|P;V==_&&(V=_-1);var B=P-V,U=.5*(L- -2),X=V/_,z=(V+1)/_,D=s[2*(V+0*M)],R=s[2*(V+0*M)+1],x=s[2*(V+1+0*M)],O=s[2*(V+1+0*M)+1],C=p+X*c-2*y,N=f+X*g-2*d,F=p+z*c-2*y,b=f+z*g-2*d;B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else if(L>=1){var V=0|P;V==_&&(V=_-1);var B=P-V,U=.5*(L-1),X=V/_,z=(V+1)/_,C=s[2*(V+a*M)],N=s[2*(V+a*M)+1],F=s[2*(V+1+a*M)],b=s[2*(V+1+a*M)+1],D=p+X*c+3*y,R=f+X*g+3*d,x=p+z*c+3*y,O=f+z*g+3*d;B+U<=1?(e[T]=C+(F-C)*B+(D-C)*U,e[T+1]=N+(b-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(F-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(b-O)*(1-U))}else t.err.printf("_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\n",S,L);else e[T]=p+S*c+L*y,e[T+1]=f+S*g+L*d}else $=P-(0|P),l=v-(0|v),h=2*((0|P)+(0|v)*(_+1)),$+l<1?(e[T]=s[h]*(1-$-l)+s[h+2]*$+s[h+2*(_+1)]*l,e[T+1]=s[h+1]*(1-$-l)+s[h+3]*$+s[h+2*(_+1)+1]*l):(e[T]=s[h+2*(_+1)+2]*($-1+l)+s[h+2*(_+1)]*(1-$)+s[h+2]*(1-l),e[T+1]=s[h+2*(_+1)+3]*($-1+l)+s[h+2*(_+1)+1]*(1-$)+s[h+3]*(1-l))}},Z.prototype.transformPoints_sdk1=function(t,i,e,r,o,n,s){for(var _,a,h,$,l,u,p,f=i,c=this._$o,g=this._$A,y=o*s,d=null!=f._$hr?f._$hr:f._$Cr,m=n;m1&&(_=1),a<0?a=0:a>1&&(a=1),_*=c,a*=g,h=0|_,$=0|a,h>c-1&&(h=c-1),$>g-1&&($=g-1),u=_-h,p=a-$,l=2*(h+$*(c+1))):(_=e[m]*c,a=e[m+1]*g,u=_-(0|_),p=a-(0|a),l=2*((0|_)+(0|a)*(c+1))),u+p<1?(r[m]=d[l]*(1-u-p)+d[l+2]*u+d[l+2*(c+1)]*p,r[m+1]=d[l+1]*(1-u-p)+d[l+3]*u+d[l+2*(c+1)+1]*p):(r[m]=d[l+2*(c+1)+2]*(u-1+p)+d[l+2*(c+1)]*(1-u)+d[l+2]*(1-p),r[m+1]=d[l+2*(c+1)+3]*(u-1+p)+d[l+2*(c+1)+1]*(1-u)+d[l+3]*(1-p))},Z.prototype._$VT=function(){return(this._$o+1)*(this._$A+1)},Z.prototype.getType=function(){return I._$_b},K.prototype=new _t,tt._$42=0,tt.prototype._$zP=function(){this._$3S=new Array,this._$aS=new Array},tt.prototype._$F0=function(t){this._$g0=t._$8L(),this.visible=t._$8L(),this._$NL=t._$nP(),this._$3S=t._$nP(),this._$aS=t._$nP()},tt.prototype.init=function(t){var i=new it(this);return i.setPartsOpacity(this.isVisible()?1:0),i},tt.prototype._$6o=function(t){if(null==this._$3S)throw new Error("_$3S _$6 _$Wo@_$6o");this._$3S.push(t)},tt.prototype._$3o=function(t){if(null==this._$aS)throw new Error("_$aS _$6 _$Wo@_$3o");this._$aS.push(t)},tt.prototype._$Zo=function(t){this._$3S=t},tt.prototype._$xo=function(t){this._$aS=t},tt.prototype.isVisible=function(){return this.visible},tt.prototype._$uL=function(){return this._$g0},tt.prototype._$KP=function(t){this.visible=t},tt.prototype._$ET=function(t){this._$g0=t},tt.prototype.getBaseData=function(){return this._$3S},tt.prototype.getDrawData=function(){return this._$aS},tt.prototype._$p2=function(){return this._$NL},tt.prototype._$ob=function(t){this._$NL=t},tt.prototype.getPartsID=function(){return this._$NL},tt.prototype._$MP=function(t){this._$NL=t},it.prototype=new l,it.prototype.getPartsOpacity=function(){return this._$VS},it.prototype.setPartsOpacity=function(t){this._$VS=t},et._$L7=function(){u._$27(),dt._$27(),F._$27(),$._$27()},et.prototype.toString=function(){return this.id},rt.prototype._$F0=function(t){},ot.prototype._$1s=function(){return this._$4S},ot.prototype._$zP=function(){this._$4S=new Array},ot.prototype._$F0=function(t){this._$4S=t._$nP()},ot.prototype._$Ks=function(t){this._$4S.push(t)},nt.tr=new yt,nt._$50=new yt,nt._$Ti=new Array(0,0),nt._$Pi=new Array(0,0),nt._$B=new Array(0,0),nt.prototype._$lP=function(t,i,e,r){this.viewport=new Array(t,i,e,r)},nt.prototype._$bL=function(){this.context.save();var t=this.viewport;null!=t&&(this.context.beginPath(),this.context._$Li(t[0],t[1],t[2],t[3]),this.context.clip())},nt.prototype._$ei=function(){this.context.restore()},nt.prototype.drawElements=function(t,i,e,r,o,n,s,a){try{o!=this._$Qo&&(this._$Qo=o,this.context.globalAlpha=o);for(var h=i.length,$=t.width,l=t.height,u=this.context,p=this._$xP,f=this._$uP,c=this._$6r,g=this._$3r,y=nt.tr,d=nt._$Ti,m=nt._$Pi,T=nt._$B,P=0;P.02?nt.expandClip(t,i,e,r,$,l,u,p,f,c):nt.clipWithTransform(t,null,o,n,s,_,a,h)},nt.expandClip=function(t,i,e,r,o,n,s,_,a,h){var $=s-o,l=_-n,u=a-o,p=h-n,f=$*p-l*u>0?e:-e,c=-l,g=$,y=a-s,d=h-_,m=-d,T=y,P=Math.sqrt(y*y+d*d),v=-p,S=u,L=Math.sqrt(u*u+p*p),M=o-f*c/r,E=n-f*g/r,A=s-f*c/r,I=_-f*g/r,w=s-f*m/P,x=_-f*T/P,O=a-f*m/P,D=h-f*T/P,R=o+f*v/L,F=n+f*S/L,b=a+f*v/L,C=h+f*S/L,N=nt._$50;return null!=i._$P2(N)&&(nt.clipWithTransform(t,N,M,E,A,I,w,x,O,D,b,C,R,F),!0)},nt.clipWithTransform=function(t,i,e,r,o,n,s,a){if(arguments.length<7)return void _._$li("err : @LDGL.clip()");if(!(arguments[1]instanceof yt))return void _._$li("err : a[0] is _$6 LDTransform @LDGL.clip()");var h=nt._$B,$=i,l=arguments;if(t.beginPath(),$){$._$PS(l[2],l[3],h),t.moveTo(h[0],h[1]);for(var u=4;u1?1:.5-.5*Math.cos(t*Lt.PI_F)},$t._$fr=-1,$t.prototype.toString=function(){return this._$ib},lt.prototype=new W,lt._$42=0,lt._$Os=30,lt._$ms=0,lt._$ns=1,lt._$_s=2,lt._$gT=new Array,lt.prototype._$_S=function(t){this._$LP=t},lt.prototype.getTextureNo=function(){return this._$LP},lt.prototype._$ZL=function(){return this._$Qi},lt.prototype._$H2=function(){return this._$JP},lt.prototype.getNumPoints=function(){return this._$d0},lt.prototype.getType=function(){return W._$wb},lt.prototype._$B2=function(t,i,e){var r=i,o=null!=r._$hr?r._$hr:r._$Cr;switch(U._$do){default:case U._$Ms:throw new Error("_$L _$ro ");case U._$Qs:for(var n=this._$d0-1;n>=0;--n)o[n*U._$No+4]=e}},lt.prototype._$zP=function(){this._$GS=new D,this._$GS._$zP()},lt.prototype._$F0=function(t){W.prototype._$F0.call(this,t),this._$LP=t._$6L(),this._$d0=t._$6L(),this._$Yo=t._$6L();var i=t._$nP();this._$BP=new Int16Array(3*this._$Yo);for(var e=3*this._$Yo-1;e>=0;--e)this._$BP[e]=i[e];if(this._$Eo=t._$nP(),this._$Qi=t._$nP(),t.getFormatVersion()>=G._$s7){if(this._$JP=t._$6L(),0!=this._$JP){if(0!=(1&this._$JP)){var r=t._$6L();null==this._$5P&&(this._$5P=new Object),this._$5P._$Hb=parseInt(r)}0!=(this._$JP<._$Os)?this._$6s=(this._$JP<._$Os)>>1:this._$6s=lt._$ms,0!=(32&this._$JP)&&(this.culling=!1)}}else this._$JP=0},lt.prototype.init=function(t){var i=new ut(this),e=this._$d0*U._$No,r=this._$32();switch(null!=i._$Cr&&(i._$Cr=null),i._$Cr=new Float32Array(e),null!=i._$hr&&(i._$hr=null),i._$hr=r?new Float32Array(e):null,U._$do){default:case U._$Ms:if(U._$Ls)for(var o=this._$d0-1;o>=0;--o){var n=o<<1;this._$Qi[n+1]=1-this._$Qi[n+1]}break;case U._$Qs:for(var o=this._$d0-1;o>=0;--o){var n=o<<1,s=o*U._$No,_=this._$Qi[n],a=this._$Qi[n+1];i._$Cr[s]=_,i._$Cr[s+1]=a,i._$Cr[s+4]=0,r&&(i._$hr[s]=_,i._$hr[s+1]=a,i._$hr[s+4]=0)}}return i},lt.prototype._$Nr=function(t,i){var e=i;if(this!=e._$GT()&&console.log("### assert!! ### "),this._$GS._$Ur(t)&&(W.prototype._$Nr.call(this,t,e),!e._$IS[0])){var r=lt._$gT;r[0]=!1,S._$Vr(t,this._$GS,r,this._$d0,this._$Eo,e._$Cr,U._$i2,U._$No)}},lt.prototype._$2b=function(t,i){try{this!=i._$GT()&&console.log("### assert!! ### ");var e=!1;i._$IS[0]&&(e=!0);var r=i;if(!e&&(W.prototype._$2b.call(this,t),this._$32())){var o=this.getTargetBaseDataID();if(r._$8r==W._$ur&&(r._$8r=t.getBaseDataIndex(o)),r._$8r<0)at._$so&&_._$li("_$L _$0P _$G :: %s",o);else{var n=t.getBaseData(r._$8r),s=t._$q2(r._$8r);null==n||s._$x2()?r._$AT=!1:(n._$nb(t,s,r._$Cr,r._$hr,this._$d0,U._$i2,U._$No),r._$AT=!0),r.baseOpacity=s.getTotalOpacity()}}}catch(t){throw t}},lt.prototype.draw=function(t,i,e){if(this!=e._$GT()&&console.log("### assert!! ### "),!e._$IS[0]){var r=e,o=this._$LP;o<0&&(o=1);var n=this.getOpacity(i,r)*e._$VS*e.baseOpacity,s=null!=r._$hr?r._$hr:r._$Cr;t.setClipBufPre_clipContextForDraw(e.clipBufPre_clipContext),t._$WP(this.culling),t._$Uo(o,3*this._$Yo,this._$BP,s,this._$Qi,n,this._$6s,r)}},lt.prototype.dump=function(){console.log(" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \n",this._$LP,this._$d0,this._$Yo),console.log(" _$Oi _$di = { ");for(var t=0;tstartMotion() / start _$K _$3 (m%d)\n",r,e._$sr));if(null==t)return-1;e=new gt,e._$w0=t,this.motions.push(e);var n=e._$sr;return this._$eb&&_._$Ji("MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\n",r,n),n},ct.prototype.updateParam=function(t){try{for(var i=!1,e=0;eupdateParam() / _$T0 _$w0 (m%d)\n",this.motions.length-1,r._$sr),this.motions.splice(e,1),e--)):(this.motions=this.motions.splice(e,1),e--)}else this.motions.splice(e,1),e--}return i}catch(t){return _._$li(t),!0}},ct.prototype.isFinished=function(t){if(arguments.length>=1){for(var i=0;i.9&&at.EXPAND_W,this.gl);if(null==this.gl)throw new Error("gl is null");var h=1*this._$C0*n,$=1*this._$tT*n,l=1*this._$WL*n,u=this._$lT*n;if(null!=this.clipBufPre_clipContextMask){a.frontFace(a.CCW),a.useProgram(this.shaderProgram),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc),a.vertexAttribPointer(this.a_position_Loc,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc,1),a.enableVertexAttribArray(this.a_texCoord_Loc),a.vertexAttribPointer(this.a_texCoord_Loc,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_matrix_Loc,!1,this.getClipBufPre_clipContextMask().matrixForMask);var p=this.getClipBufPre_clipContextMask().layoutChannelNo,f=this.getChannelFlagAsColor(p);a.uniform4f(this.u_channelFlag,f.r,f.g,f.b,f.a);var c=this.getClipBufPre_clipContextMask().layoutBounds;a.uniform4f(this.u_baseColor_Loc,2*c.x-1,2*c.y-1,2*c._$EL()-1,2*c._$5T()-1),a.uniform1i(this.u_maskFlag_Loc,!0)}else if(null!=this.getClipBufPre_clipContextDraw()){a.useProgram(this.shaderProgramOff),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc_Off),a.vertexAttribPointer(this.a_position_Loc_Off,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc_Off,1),a.enableVertexAttribArray(this.a_texCoord_Loc_Off),a.vertexAttribPointer(this.a_texCoord_Loc_Off,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_clipMatrix_Loc_Off,!1,this.getClipBufPre_clipContextDraw().matrixForDraw),a.uniformMatrix4fv(this.u_matrix_Loc_Off,!1,this.matrix4x4),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,at.fTexture[this.glno]),a.uniform1i(this.s_texture1_Loc_Off,2);var p=this.getClipBufPre_clipContextDraw().layoutChannelNo,f=this.getChannelFlagAsColor(p);a.uniform4f(this.u_channelFlag_Loc_Off,f.r,f.g,f.b,f.a),a.uniform4f(this.u_baseColor_Loc_Off,h,$,l,u)}else a.useProgram(this.shaderProgram),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc),a.vertexAttribPointer(this.a_position_Loc,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc,1),a.enableVertexAttribArray(this.a_texCoord_Loc),a.vertexAttribPointer(this.a_texCoord_Loc,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_matrix_Loc,!1,this.matrix4x4),a.uniform4f(this.u_baseColor_Loc,h,$,l,u),a.uniform1i(this.u_maskFlag_Loc,!1);this.culling?this.gl.enable(a.CULL_FACE):this.gl.disable(a.CULL_FACE),this.gl.enable(a.BLEND);var g,y,d,m;if(null!=this.clipBufPre_clipContextMask)g=a.ONE,y=a.ONE_MINUS_SRC_ALPHA,d=a.ONE,m=a.ONE_MINUS_SRC_ALPHA;else switch(s){case lt._$ms:g=a.ONE,y=a.ONE_MINUS_SRC_ALPHA,d=a.ONE,m=a.ONE_MINUS_SRC_ALPHA;break;case lt._$ns:g=a.ONE,y=a.ONE,d=a.ZERO,m=a.ONE;break;case lt._$_s:g=a.DST_COLOR,y=a.ONE_MINUS_SRC_ALPHA,d=a.ZERO,m=a.ONE}a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(g,y,d,m),this.anisotropyExt&&a.texParameteri(a.TEXTURE_2D,this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT,this.maxAnisotropy);var T=e.length;a.drawElements(a.TRIANGLES,T,a.UNSIGNED_SHORT,0),a.bindTexture(a.TEXTURE_2D,null)}},mt.prototype._$Rs=function(){throw new Error("_$Rs")},mt.prototype._$Ds=function(t){throw new Error("_$Ds")},mt.prototype._$K2=function(){for(var t=0;t=48){var r=G._$9o(t);return null!=r?(r._$F0(this),r):null}switch(t){case 1:return this._$bT();case 10:return new n(this._$6L(),!0);case 11:return new v(this._$mP(),this._$mP(),this._$mP(),this._$mP());case 12:return new v(this._$_T(),this._$_T(),this._$_T(),this._$_T());case 13:return new L(this._$mP(),this._$mP());case 14:return new L(this._$_T(),this._$_T());case 15:for(var o=this._$3L(),e=new Array(o),s=0;s>7-this._$hL++&1)},vt.prototype._$zT=function(){0!=this._$hL&&(this._$hL=0)},St.prototype._$wP=function(t,i,e){for(var r=0;rMath.PI;)e-=2*Math.PI;return e},Lt._$9=function(t){return Math.sin(t)},Lt.fcos=function(t){return Math.cos(t)},Mt.prototype._$u2=function(){return this._$IS[0]},Mt.prototype._$yo=function(){return this._$AT&&!this._$IS[0]},Mt.prototype._$GT=function(){return this._$e0},Et._$W2=0,Et.SYSTEM_INFO=null,Et.USER_AGENT=navigator.userAgent,Et.isIPhone=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone},Et.isIOS=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone||Et.SYSTEM_INFO._isIPad},Et.isAndroid=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isAndroid},Et.getOSVersion=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO.version},Et.getOS=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone||Et.SYSTEM_INFO._isIPad?"iOS":Et.SYSTEM_INFO._isAndroid?"Android":"_$Q0 OS"},Et.setup=function(){function t(t,i){for(var e=t.substring(i).split(/[ _,;\.]/),r=0,o=0;o<=2&&!isNaN(e[o]);o++){var n=parseInt(e[o]);if(n<0||n>999){_._$li("err : "+n+" @UtHtml5.setup()"),r=0;break}r+=n*Math.pow(1e3,2-o)}return r}var i,e=Et.USER_AGENT,r=Et.SYSTEM_INFO={userAgent:e};if((i=e.indexOf("iPhone OS "))>=0)r.os="iPhone",r._isIPhone=!0,r.version=t(e,i+"iPhone OS ".length);else if((i=e.indexOf("iPad"))>=0){if((i=e.indexOf("CPU OS"))<0)return void _._$li(" err : "+e+" @UtHtml5.setup()");r.os="iPad",r._isIPad=!0,r.version=t(e,i+"CPU OS ".length)}else(i=e.indexOf("Android"))>=0?(r.os="Android",r._isAndroid=!0,r.version=t(e,i+"Android ".length)):(r.os="-",r.version=-1)},window.UtSystem=w,window.UtDebug=_,window.LDTransform=yt,window.LDGL=nt,window.Live2D=at,window.Live2DModelWebGL=ft,window.Live2DModelJS=q,window.Live2DMotion=J,window.MotionQueueManager=ct,window.PhysicsHair=f,window.AMotion=s,window.PartsDataID=$,window.DrawDataID=F,window.BaseDataID=dt,window.ParamID=u,at.init();var At=!1}()}).call(i,e(10))},function(t,i){t.exports={import:function(){throw new Error("System.import cannot be used indirectly")}}},function(t,i,e){t.exports=e(4)}]); +//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/dist/bundle.js.map b/dist/bundle.js.map index 86a1a69..dfa3890 100755 --- a/dist/bundle.js.map +++ b/dist/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///bundle.js","webpack:///webpack/bootstrap d02b5a00476965e4258d","webpack:///./src/lib/Live2DFramework.js","webpack:///./src/LAppDefine.js","webpack:///./src/lib/MatrixStack.js","webpack:///./src/webglcontext.js","webpack:///./src/main.js","webpack:///./src/LAppLive2DManager.js","webpack:///./src/LAppModel.js","webpack:///./src/PlatformManager.js","webpack:///./src/lib/ModelSettingJson.js","webpack:///./src/lib/live2d.min.js","webpack:///(webpack)/buildin/system.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","L2DBaseModel","this","live2DModel","modelMatrix","eyeBlink","physics","pose","debugMode","initialized","updating","alpha","accAlpha","lipSync","lipSyncValue","accelX","accelY","accelZ","dragX","dragY","startTimeMSec","mainMotionManager","L2DMotionManager","expressionManager","motions","expressions","isTexLoaded","L2DExpressionMotion","AMotion","constructor","paramList","Array","L2DExpressionParam","id","type","L2DEyeBlink","nextBlinkTime","stateStartTime","blinkIntervalMsec","eyeState","EYE_STATE","STATE_FIRST","closingMotionMsec","closedMotionMsec","openingMotionMsec","closeIfZero","eyeID_L","eyeID_R","L2DMatrix44","tr","Float32Array","identity","L2DModelMatrix","w","h","width","height","MotionQueueManager","currentPriority","reservePriority","super","L2DPhysics","physicsList","UtSystem","getUserTimeMSec","L2DPose","lastTime","lastModel","partsGroups","L2DPartsParam","paramIndex","partsIndex","link","L2DTargetPoint","EPSILON","faceTargetX","faceTargetY","faceX","faceY","faceVX","faceVY","lastTimeSec","L2DViewMatrix","screenLeft","screenRight","screenTop","screenBottom","maxLeft","maxRight","maxTop","maxBottom","max","Number","MAX_VALUE","min","Live2DFramework","texCounter","getModelMatrix","setAlpha","a","getAlpha","isInitialized","setInitialized","v","isUpdating","setUpdating","getLive2DModel","setLipSync","setLipSyncValue","setAccel","x","y","z","setDrag","getMainMotionManager","getExpressionManager","loadModelData","path","callback","pm","getPlatformManager","log","thisRef","loadLive2DModel","l2dModel","saveParam","Live2D","getError","console","error","getCanvasWidth","getCanvasHeight","setWidth","setCenterPosition","loadTexture","no","loadMotion","motion","loadBytes","buf","Live2DMotion","loadExpression","loadJson","loadPose","load","e","warn","loadPhysics","hitTestSimple","drawID","testX","testY","drawIndex","getDrawDataIndex","points","getTransformedPoints","left","right","top","bottom","j","length","tx","invertTransformX","ty","invertTransformY","EXPRESSION_DEFAULT","TYPE_SET","TYPE_ADD","TYPE_MULT","ret","json","jsonParseFromBytes","setFadeIn","parseInt","fade_in","setFadeOut","fade_out","params","paramNum","param","paramID","toString","parseFloat","val","calcTypeInt","calc","defaultValue","def","item","push","updateParamExe","model","timeMSec","weight","motionQueueEnt","addToParamFloat","multParamFloat","setParamFloat","calcNextBlink","Math","random","setInterval","setEyeMotion","updateParam","eyeParamValue","time","t","STATE_CLOSING","STATE_CLOSED","STATE_OPENING","STATE_INTERVAL","mul","b","dst","k","getArray","getCopyMatrix","setMatrix","getScaleX","getScaleY","transformX","src","transformY","multTranslate","shiftX","shiftY","tr1","translate","translateX","translateY","multScale","scaleX","scaleY","scale","setPosition","setY","setX","centerX","centerY","setHeight","getCurrentPriority","getReservePriority","reserveMotion","priority","setReservePriority","updated","isFinished","startMotionPrio","startMotion","physics_hair","PhysicsHair","setup","resist","regist","mass","srcList","srcNum","Src","SRC_TO_X","typeStr","ptype","SRC_TO_Y","SRC_TO_G_ANGLE","UtDebug","addSrcParam","targetList","targets","targetNum","target","Target","TARGET_FROM_ANGLE","TARGET_FROM_ANGLE_V","addTargetParam","update","poseListInfo","parts_visible","poseNum","i_pose","poseInfo","idListInfo","group","idNum","partsGroup","i_group","partsInfo","parts","linkListInfo","linkNum","i_link","linkParts","initParam","curTime","deltaTimeSec","normalizePartsOpacityGroup","copyOpacityOtherParts","initIndex","getParamFloat","setPartsOpacity","visibleParts","visibleOpacity","getPartsOpacity","a1","opacity","backOp","partsParam","getParamIndex","getPartsDataIndex","PartsDataID","getID","FRAME_RATE","setPoint","getX","getY","MAX_V","curTimeSec","deltaTimeWeight","FRAME_TO_MAX_SPEED","MAX_A","dx","dy","abs","sqrt","vx","vy","ax","ay","max_v","cur_v","getMaxScale","getMinScale","setMaxScale","setMinScale","isMaxScale","isMinScale","adjustTranslate","adjustScale","cx","cy","targetScale","tr2","tr3","setScreenRect","setMaxScreenRect","getScreenLeft","getScreenRight","getScreenBottom","getScreenTop","getMaxLeft","getMaxRight","getMaxBottom","getMaxTop","platformManager","setPlatformManager","LAppDefine","DEBUG_LOG","DEBUG_MOUSE_LOG","VIEW_MAX_SCALE","VIEW_MIN_SCALE","VIEW_LOGICAL_LEFT","VIEW_LOGICAL_RIGHT","VIEW_LOGICAL_MAX_LEFT","VIEW_LOGICAL_MAX_RIGHT","VIEW_LOGICAL_MAX_BOTTOM","VIEW_LOGICAL_MAX_TOP","PRIORITY_NONE","PRIORITY_IDLE","PRIORITY_NORMAL","PRIORITY_FORCE","MOTION_GROUP_IDLE","MOTION_GROUP_TAP_BODY","MOTION_GROUP_FLICK_HEAD","MOTION_GROUP_PINCH_IN","MOTION_GROUP_PINCH_OUT","MOTION_GROUP_SHAKE","HIT_AREA_HEAD","HIT_AREA_BODY","MatrixStack","matrixStack","depth","currentMatrix","tmp","reset","loadIdentity","nextOffset","pop","myError","offset","getMatrix","multMatrix","matNew","setContext","webglContext","context","getContext","undefined","_interopRequireDefault","obj","default","initL2dCanvas","canvasId","canvas","document","getElementById","addEventListener","window","mouseEvent","touchEvent","init","modelurl","dragMgr","_Live2DFramework","ratio","_LAppDefine2","viewMatrix","projMatrix","deviceToScreen","gl","getWebGLContext","_webglcontext","setGL","clearColor","changeModel","startDraw","isDrawStart","tick","draw","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","_MatrixStack2","live2DMgr","clear","COLOR_BUFFER_BIT","numModels","getModel","reloadFlg","count","dot","A","B","normalize","transformRect","center","transform","rect","angle","Len_X","Len_Y","acos","PI","angleTarget","angleLeftTop","angleLeftBottom","angleRightTop","angleRightBottom","res","y3","x3","modelTurnHead","event","drag","getBoundingClientRect","sx","transformScreenX","clientX","sy","transformScreenY","clientY","head_pos","transformViewX","transformViewY","lastMouseX","lastMouseY","tapEvent","followPointer","lookFront","button","touch","touches","deviceX","screenX","deviceY","screenY","NAMES","ctx","premultipliedAlpha","loadlive2d","headPos","_LAppLive2DManager","_LAppLive2DManager2","_LAppDefine","_MatrixStack","navigator","platform","toLowerCase","LAppLive2DManager","models","_PlatformManager2","_PlatformManager","_LAppModel","_LAppModel2","createModel","releaseModel","release","splice","maxScaleEvent","startRandomMotion","minScaleEvent","hitTest","setRandomExpression","LAppModel","modelHomeDir","modelSetting","tmpMatrix","_ModelSettingJson","_ModelSettingJson2","modelSettingPath","substring","lastIndexOf","loadModelSetting","getModelFile","getTextureNum","texPaths","getTextureFile","getExpressionNum","expName","getExpressionName","expFilePath","getExpressionFile","getPhysicsFile","getPoseFile","getLayout","layout","getInitParamNum","getInitParamID","getInitParamValue","getInitPartsVisibleNum","getInitPartsVisibleID","getInitPartsVisibleValue","preloadMotionGroup","stopAllMotions","deleteTexture","texture","getMotionNum","file","getMotionFile","getMotionFadeIn","getMotionFadeOut","timeSec","loadParam","sin","setExpression","motionName","mtn","setFadeInFadeOut","getMotionSound","soundName","snd","createElement","play","len","getHitAreaNum","getHitAreaName","getHitAreaID","PlatformManager","request","XMLHttpRequest","open","responseType","onload","status","response","send","loadString","Live2DModelWebGL","loadModel","loadedImage","Image","createTexture","isPremultipliedAlpha","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_NEAREST","generateMipmap","setTexture","onerror","jsonStr","bomCode","Uint8Array","String","fromCharCode","apply","JSON","parse","txt","ModelSettingJson","NAME","ID","MODEL","TEXTURES","HIT_AREAS","PHYSICS","POSE","EXPRESSIONS","MOTION_GROUPS","SOUND","FADE_IN","FADE_OUT","LAYOUT","INIT_PARAM","INIT_PARTS_VISIBLE","VALUE","FILE","str","NaN","System","aa","_$MT","_$5S","_$NP","_$42","W","aJ","clipContextList","glcontext","dp_webgl","curFrameNo","firstError_clipInNotUpdate","colorBuffer","isInitGLFBFunc","tmpBoundsOnModel","av","Q","glContext","frameBuffers","getMaskRenderTexture","tmpModelToViewMatrix","ac","tmpMatrix2","tmpMatrixForMask","tmpMatrixForDraw","CHANNEL_COLORS","aI","r","g","aH","setChannelFlagAsColor","U","aK","clipIDList","clippingMaskDrawIndexList","clippedDrawContextList","isUsing","layoutChannelNo","layoutBounds","allClippedDrawRect","matrixForMask","matrixForDraw","owner","R","_$gP","drawDataIndex","I","color","ah","_$dP","_$eo","_$V0","_$a0","q","af","_$r","_$0S","F","ak","S","_$vo","_$F2","_$ao","_$1S","u","p1","N","p2","_$Fo","_$Db","_$L2","_$M2","_$ks","_$9b","_$iP","_$iT","_$lL","_$qP","_$p","fx","fy","_$s0","_$70","_$7L","_$HL","at","_$wL","_$tL","aF","_$YP","X","_$fL","_$gL","_$B0","_$z0","_$qT","reflectX","reflectY","aG","ae","_$dr","_$GS","_$qb","_$Lb","_$mS","clipID","_$Eb","_$ps","_$lT","_$C0","_$tT","_$WL","culling","matrix4x4","anisotropy","clippingProcess","CLIPPING_PROCESS_NONE","clipBufPre_clipContextMask","clipBufPre_clipContextDraw","_$ho","blendMode","L2D_COLOR_BLEND_MODE_MULT","_$kP","_$Ai","P","aA","_$VP","_$GP","_$8o","_$ds","_$2r","_$O2","_$ri","G","_$Ob","Z","aD","_$7","_$f","_$H","_$g","_$k","_$w","_$hi","STATE_IDENTITY","_$Z","_$pS","Y","_$7r","_$Co","_$D0","_$yT","_$E","loopFadeIn","_$AS","aE","_$P","size","_$4P","_$I0","_$RP","aw","_$QT","_$co","_$qo","_$pb","_$is","_$_2","_$vr","_$Rr","_$Or","_$fs","_$Js","_$3S","_$aS","_$Bo","_$db","_$8b","_$Hr","_$Ws","_$Vs","_$Er","_$Es","Int16Array","_$Qb","_$ZP","_$1r","_$Ri","_$b0","_$HP","clipManager","ap","ar","_$12","_$bb","_$_L","_$jo","_$iL","_$0L","_$Br","_$Dr","_$Cb","_$mr","az","_$sb","Int32Array","_$As","_$U2","_$NT","_$9r","_$vS","_$no","_$vb","ab","_$Y0","al","_$8r","_$ur","_$Yr","_$Wr","aq","_$NL","_$zo","ao","_$o2","_$rr","_$eP","getUint8","E","_$o","_$A","_$Eo","H","_$Cr","_$hr","visible","_$g0","aj","_$VS","_$e0","D","an","_$4S","au","viewport","_$6r","_$xP","_$3r","_$uP","_$Qo","cacheImages","f","_$TT","_$LT","_$FS","_$IP","_$JS","_$AT","totalScale","_$7s","totalOpacity","J","_$ib","_$LP","_$d0","_$Yo","_$JP","_$5P","_$BP","_$Qi","_$6s","_$ms","gl_cacheImage","instanceNo","ag","aB","drawParamWebGL","C","getGL","V","_$eb","M","_$w0","_$9L","_$z2","_$bs","_$Do","_$sr","_$Gs","am","textures","glno","firstDraw","anisotropyExt","maxAnisotropy","_$Gr","vertShader","fragShader","vertShaderOff","fragShaderOff","T","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","DYNAMIC_DRAW","L","ELEMENT_ARRAY_BUFFER","K","Int8Array","_$R0","DataView","buffer","_$3i","_$hL","_$v0","_$S2","_$Ko","_$T","_$F","ai","aC","_$Us","_$IS","baseOpacity","clipBufPre_clipContext","_$0s","_$4s","_$62","aQ","aU","ArrayBuffer","aN","aS","aM","_$ST","_$gr","_$T7","aL","_$nP","_$s7","_$9T","aT","_$KS","aP","getModelContext","setDrawParam","getDrawParam","aO","_$Rb","getModelImpl","_$zP","arguments","_$Rs","_$li","_$Ds","_$K2","_$s2","_$P7","aR","a0","aY","aW","aV","aZ","getDrawData","_$C2","getIndexArray","getType","_$wb","CHANNEL_COUNT","RENDER_TEXTURE_USE_MIPMAP","NOT_USED_FRAME","_$L7","releaseShader","deleteFramebuffer","framebuffer","getClipIDList","findSameClip","getDrawDataID","addClippedDrawData","createFramebuffer","setupClip","calcClippedDrawTotalBounds","getParameter","FRAMEBUFFER_BINDING","clippingMaskBufferSize","setupLayoutBounds","bindFramebuffer","FRAMEBUFFER","_$jL","expand","aX","setClipBufPre_clipContextForMask","getColorBuffer","a6","a5","_$yo","a4","a3","_$i2","_$No","a2","_$JT","_$pT","getFadeOut","_$4T","_$mT","getDurationMSec","getLoopDurationMSec","_$r2","_$8s","_$fT","start","getSystemTimeMSec","dump","end","_$Ji","_$dL","_$KL","_$nr","stack","_$8P","_$6P","_$EL","_$5T","_$tP","_$27","_$3s","_$F0","_$6L","_$6S","_$Xr","_$E2","_$Yb","_$xT","getPhysicsPoint1","getPhysicsPoint2","_$qr","_$pr","_$5r","_$Cs","atan2","_$oP","_$oo","_$YS","cos","_$bS","_$_T","getFormatVersion","LIVE2D_FORMAT_VERSION_V2_10_SDK2","_$po","_$e","ad","_$ni","isNaN","contains","_$Z2","bb","bo","bp","_$Q2","_$vs","ba","_$Tr","_$zr","bj","bi","a9","a8","br","bq","bn","bm","bg","bf","bu","bt","bl","bk","be","bc","a7","bh","bs","bd","_$br","_$Vr","bV","bW","bC","bX","bH","bw","bI","_$jT","b3","bT","b1","bP","b2","b0","bM","bL","bZ","bN","b8","b7","bU","bS","b6","b5","bQ","bO","bD","bB","by","bx","bG","bE","bv","bA","bz","bY","bK","b4","bJ","bF","bR","_$HT","_$ES","_$8S","_$52","_$R2","_$or","_$Pr","convertClipIDForV2_11","test","split","_$cS","_$Tb","_$MS","_$Nr","_$Zs","_$2b","_$j2","getOpacity","_$zS","getTargetBaseDataID","_$gs","_$32","_$2o","preDraw","_$B2","CLIPPING_PROCESS_OVERWRITE_ALPHA","CLIPPING_PROCESS_MULTIPLY_ALPHA","CLIPPING_PROCESS_DRAW","CLIPPING_PROCESS_CLEAR_ALPHA","getChannelFlagAsColor","_$ZT","_$Uo","setBaseColor","_$WP","_$IT","setPremultipliedAlpha","setAnisotropy","getAnisotropy","getClippingProcess","setClippingProcess","getClipBufPre_clipContextMask","setClipBufPre_clipContextForDraw","getClipBufPre_clipContextDraw","_$c2","_$_b","readV2_opacity","interpolateOpacity","setInterpolatedOpacity","_$nb","_$a2","getBaseDataID","_$W2","_$CS","_$Mo","_$XP","getTimeMSec","setUserTimeMSec","updateUserTimeMSec","Date","getTime","_$Q","_$Pb","getParamID","_$yP","_$N2","_$d2","_$t2","_$Lr","_$wr","_$SL","_$AL","startsWith","getChar","charAt","createString","Uint16Array","_$LS","_$Ur","_$WS","_$v2","_$Xb","Exception","_$J","_$3T","_$h2","_$J2","getParamCount","_$zs","mult","mult_safe","mult_fast","rotateX","fcos","_$9","rotateY","rotateZ","_$kS","_$hb","_$gb","_$fo","_$go","_$RT","_$so","_$CT","_$cs","_$ar","_$D2","_$1T","_$hs","_$xs","_$us","_$qs","_$Ys","_$ws","_$Ns","_$Fr","_$BL","_$r0","_$aL","isLoopFadeIn","setLoopFadeIn","add","_$Ms","_$Qs","_$do","_$Ls","_$FT","_$Ss","_$o7","_$S7","_$77","LIVE2D_FORMAT_VERSION_V2_11_SDK2_1","_$Is","_$h0","_$4L","_$7P","_$uT","_$9o","_$_0","_$V2","_$W0","_$jr","_$ZS","_$tr","_$lr","getBaseData","_$l2","getBaseDataIndex","_$1s","_$02","getDefaultValue","getMinValue","getMaxValue","_$u2","floor","_$sT","_$H7","_$BS","_$UT","_$Zo","getParamMax","getParamMin","_$p2","_$q2","_$Bb","_$5s","_$GT","_$0T","_$5","exists","_$ls","_$3b","_$Xs","_$kb","read","_$C","_$js","write","_$TS","close","flush","_$T2","_$10","_$uo","_$QS","_$7T","_$cr","_$yL","put","_$oT","_$mb","_$Hs","_$as","setTransform","EXPAND_W","drawElements","Error","_$Sr","_$nS","_$Xo","_$io","_$0o","_$Lo","_$To","_$Po","_$gT","_$Ib","pow","_$hS","_$Jr","_$92","_$NS","getTotalScale","setTotalScale_notForClient","getTotalOpacity","setTotalOpacity","getInterpolatedOpacity","_$os","_$Sb","_$1b","getDrawDataList","_$kr","_$xo","_$to","_$er","_$PL","_$nL","_$_o","MTN_PREFIX_FADEIN","MTN_PREFIX_FADEOUT","byteLength","charCodeAt","_$S0","_$U0","_$VT","transformPoints_sdk2","err","printf","transformPoints_sdk1","_$ts","_$8L","isVisible","_$6o","_$3o","_$uL","_$KP","_$ET","_$ob","getPartsID","_$MP","_$Ks","_$50","_$Ti","_$Pi","_$B","_$lP","_$bL","save","beginPath","_$Li","clip","_$ei","restore","globalAlpha","_$PS","ceil","rotate","shear","IGNORE_EXPAND","USE_CACHED_POLYGON_IMAGE","createCanvas","DEBUG_DATA","LDGL_CANVAS_MB","drawImage","cacheCanvas","cacheContext","IGNORE_CLIP","USE_ADJUST_TRANSLATION","expandClip","clipWithTransform","_$P2","moveTo","lineTo","setAttribute","dumpValues","toFixed","getPartsIndex","_$x2","_$2s","_$Kr","_$sP","_$cb","_$Ts","_$fb","L2D_DEFORMER_EXTEND","_$Wb","_$yr","L2D_NO_ERROR","_$i7","_$9s","_$es","_$r7","_$07","_$b7","L2D_COLOR_BLEND_MODE_ADD","L2D_COLOR_BLEND_MODE_INTERPOLATE","_$6b","_$cT","fTexture","USE_CANVAS_TRANSFORM","PROFILE_IOS_SPEED","PROFILE_NAME","PROFILE_IOS_QUALITY","PROFILE_IOS_DEFAULT","PROFILE_ANDROID","PROFILE_DESKTOP","initProfile","isIOS","setupProfile","isAndroid","alert","getVersionStr","getVersionNo","dispose","setClippingMaskBufferSize","getClippingMaskBufferSize","deleteBuffer","PI_F","_$fr","_$Os","_$ns","_$_s","_$_S","getTextureNo","_$ZL","_$H2","getNumPoints","_$Hb","_$72","_$tb","_$qS","_$Zr","_$Bs","concatenate","_$eT","initShader","getExtension","MAX_TEXTURE_MAX_ANISOTROPY_EXT","disable","SCISSOR_TEST","STENCIL_TEST","DEPTH_TEST","frontFace","CW","enable","BLEND","colorMask","CCW","useProgram","shaderProgram","enableVertexAttribArray","a_position_Loc","vertexAttribPointer","FLOAT","TEXTURE1","uniform1i","s_texture0_Loc","a_texCoord_Loc","uniformMatrix4fv","u_matrix_Loc","uniform4f","u_channelFlag","u_baseColor_Loc","u_maskFlag_Loc","shaderProgramOff","a_position_Loc_Off","s_texture0_Loc_Off","a_texCoord_Loc_Off","u_clipMatrix_Loc_Off","u_matrix_Loc_Off","TEXTURE2","s_texture1_Loc_Off","u_channelFlag_Loc_Off","u_baseColor_Loc_Off","CULL_FACE","ONE","ONE_MINUS_SRC_ALPHA","ZERO","DST_COLOR","blendEquationSeparate","FUNC_ADD","blendFuncSeparate","TEXTURE_MAX_ANISOTROPY_EXT","TRIANGLES","UNSIGNED_SHORT","loadShaders2","getAttribLocation","getUniformLocation","disposeShader","deleteProgram","compileShader","createShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","RGBA4","framebufferRenderbuffer","COLOR_ATTACHMENT0","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","framebufferTexture2D","renderbuffer","_$fP","_$3L","_$mP","_$zT","getFloat64","getFloat32","getInt32","getInt8","getInt16","_$2T","O","_$bT","_$5b","Float64Array","_$Jb","_$4b","_$wP","_$2S","_$wS","_$kT","_$tS","SYSTEM_INFO","USER_AGENT","userAgent","isIPhone","_isIPhone","_isIPad","_isAndroid","getOSVersion","version","getOS","indexOf","os","LDTransform","LDGL","Live2DModelJS","DrawDataID","BaseDataID","ParamID","import"],"mappings":"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AG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,IAAIN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,IAAIN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAA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","file":"bundle.js","sourcesContent":["/******/ (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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\r\n * EYHN 基于 live2d 官方 Live2DFramework.js 修改\r\n * \r\n * Copyright © 2016 - 2017 EYHN\r\n */\n//============================================================\n//============================================================\n// class L2DBaseModel \n//============================================================\n//============================================================\nfunction L2DBaseModel() {\n this.live2DModel = null; // ALive2DModel\n this.modelMatrix = null; // L2DModelMatrix\n this.eyeBlink = null; // L2DEyeBlink\n this.physics = null; // L2DPhysics\n this.pose = null; // L2DPose\n this.debugMode = false;\n this.initialized = false;\n this.updating = false;\n this.alpha = 1;\n this.accAlpha = 0;\n this.lipSync = false;\n this.lipSyncValue = 0;\n this.accelX = 0;\n this.accelY = 0;\n this.accelZ = 0;\n this.dragX = 0;\n this.dragY = 0;\n this.startTimeMSec = null;\n this.mainMotionManager = new L2DMotionManager(); //L2DMotionManager\n this.expressionManager = new L2DMotionManager(); //L2DMotionManager\n this.motions = {};\n this.expressions = {};\n\n this.isTexLoaded = false;\n}\n\nvar texCounter = 0;\n\n//============================================================\n// L2DBaseModel # getModelMatrix()\n//============================================================\nL2DBaseModel.prototype.getModelMatrix = function () {\n return this.modelMatrix;\n};\n\n//============================================================\n// L2DBaseModel # setAlpha()\n//============================================================\nL2DBaseModel.prototype.setAlpha = function (a /*float*/) {\n if (a > 0.999) a = 1;\n if (a < 0.001) a = 0;\n this.alpha = a;\n};\n\n//============================================================\n// L2DBaseModel # getAlpha()\n//============================================================\nL2DBaseModel.prototype.getAlpha = function () {\n return this.alpha;\n};\n\n//============================================================\n// L2DBaseModel # isInitialized()\n//============================================================\nL2DBaseModel.prototype.isInitialized = function () {\n return this.initialized;\n};\n\n//============================================================\n// L2DBaseModel # setInitialized()\n//============================================================\nL2DBaseModel.prototype.setInitialized = function (v /*boolean*/) {\n this.initialized = v;\n};\n\n//============================================================\n// L2DBaseModel # isUpdating()\n//============================================================\nL2DBaseModel.prototype.isUpdating = function () {\n return this.updating;\n};\n\n//============================================================\n// L2DBaseModel # setUpdating()\n//============================================================\nL2DBaseModel.prototype.setUpdating = function (v /*boolean*/) {\n this.updating = v;\n};\n\n//============================================================\n// L2DBaseModel # getLive2DModel()\n//============================================================\nL2DBaseModel.prototype.getLive2DModel = function () {\n return this.live2DModel;\n};\n\n//============================================================\n// L2DBaseModel # setLipSync()\n//============================================================\nL2DBaseModel.prototype.setLipSync = function (v /*boolean*/) {\n this.lipSync = v;\n};\n\n//============================================================\n// L2DBaseModel # setLipSyncValue()\n//============================================================\nL2DBaseModel.prototype.setLipSyncValue = function (v /*float*/) {\n this.lipSyncValue = v;\n};\n\n//============================================================\n// L2DBaseModel # setAccel()\n//============================================================\nL2DBaseModel.prototype.setAccel = function (x /*float*/, y /*float*/, z /*float*/) {\n this.accelX = x;\n this.accelY = y;\n this.accelZ = z;\n};\n\n//============================================================\n// L2DBaseModel # setDrag()\n//============================================================\nL2DBaseModel.prototype.setDrag = function (x /*float*/, y /*float*/) {\n this.dragX = x;\n this.dragY = y;\n};\n\n//============================================================\n// L2DBaseModel # getMainMotionManager()\n//============================================================\nL2DBaseModel.prototype.getMainMotionManager = function () {\n return this.mainMotionManager;\n};\n\n//============================================================\n// L2DBaseModel # getExpressionManager()\n//============================================================\nL2DBaseModel.prototype.getExpressionManager = function () {\n return this.expressionManager;\n};\n\n//============================================================\n// L2DBaseModel # loadModelData()\n//============================================================\nL2DBaseModel.prototype.loadModelData = function (path /*String*/, callback) {\n /*\r\n if( this.live2DModel != null ) {\r\n this.live2DModel.deleteTextures();\r\n }\r\n */\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load model : \" + path);\n\n var thisRef = this;\n pm.loadLive2DModel(path, function (l2dModel) {\n thisRef.live2DModel = l2dModel;\n thisRef.live2DModel.saveParam();\n\n var _err = Live2D.getError();\n\n if (_err != 0) {\n console.error(\"Error : Failed to loadModelData().\");\n return;\n }\n\n thisRef.modelMatrix = new L2DModelMatrix(thisRef.live2DModel.getCanvasWidth(), thisRef.live2DModel.getCanvasHeight()); //L2DModelMatrix\n thisRef.modelMatrix.setWidth(2);\n thisRef.modelMatrix.setCenterPosition(0, 0);\n\n callback(thisRef.live2DModel);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadTexture()\n//============================================================\nL2DBaseModel.prototype.loadTexture = function (no /*int*/, path /*String*/, callback) {\n texCounter++;\n\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Texture : \" + path);\n\n var thisRef = this;\n pm.loadTexture(this.live2DModel, no, path, function () {\n texCounter--;\n if (texCounter == 0) thisRef.isTexLoaded = true;\n if (typeof callback == \"function\") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadMotion()\n//============================================================\nL2DBaseModel.prototype.loadMotion = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Motion : \" + path);\n\n var motion = null; //Live2DMotion\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n motion = Live2DMotion.loadMotion(buf);\n if (name != null) {\n thisRef.motions[name] = motion;\n }\n callback(motion);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadExpression()\n//============================================================\nL2DBaseModel.prototype.loadExpression = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Expression : \" + path);\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n if (name != null) {\n thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf);\n }\n if (typeof callback == \"function\") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadPose()\n//============================================================\nL2DBaseModel.prototype.loadPose = function (path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load Pose : \" + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.pose = L2DPose.load(buf);\n if (typeof callback == \"function\") callback();\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # loadPhysics()\n//============================================================\nL2DBaseModel.prototype.loadPhysics = function (path /*String*/) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load Physics : \" + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.physics = L2DPhysics.load(buf);\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # hitTestSimple()\n//============================================================\nL2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) {\n var drawIndex = this.live2DModel.getDrawDataIndex(drawID);\n\n if (drawIndex < 0) return false;\n\n var points = this.live2DModel.getTransformedPoints(drawIndex);\n var left = this.live2DModel.getCanvasWidth();\n var right = 0;\n var top = this.live2DModel.getCanvasHeight();\n var bottom = 0;\n\n for (var j = 0; j < points.length; j = j + 2) {\n var x = points[j];\n var y = points[j + 1];\n\n if (x < left) left = x;\n if (x > right) right = x;\n if (y < top) top = y;\n if (y > bottom) bottom = y;\n }\n var tx = this.modelMatrix.invertTransformX(testX);\n var ty = this.modelMatrix.invertTransformY(testY);\n\n return left <= tx && tx <= right && top <= ty && ty <= bottom;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DExpressionMotion extends AMotion\n//============================================================\n//============================================================\nfunction L2DExpressionMotion() {\n AMotion.prototype.constructor.call(this);\n this.paramList = new Array(); //ArrayList\n}\n\nL2DExpressionMotion.prototype = new AMotion(); // L2DExpressionMotion extends AMotion\n\n//============================================================\nL2DExpressionMotion.EXPRESSION_DEFAULT = \"DEFAULT\";\nL2DExpressionMotion.TYPE_SET = 0;\nL2DExpressionMotion.TYPE_ADD = 1;\nL2DExpressionMotion.TYPE_MULT = 2;\n\n//============================================================\n// static L2DExpressionMotion.loadJson()\n//============================================================\nL2DExpressionMotion.loadJson = function (buf) {\n var ret = new L2DExpressionMotion();\n\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n\n ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);\n ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);\n\n if (json.params == null) {\n return ret;\n }\n\n var params = json.params;\n var paramNum = params.length;\n ret.paramList = []; //ArrayList\n for (var i = 0; i < paramNum; i++) {\n var param = params[i];\n var paramID = param.id.toString();\n var value = parseFloat(param.val);\n var calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n var calc = param.calc != null ? param.calc.toString() : \"add\";\n if (calc === \"add\") {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n } else if (calc === \"mult\") {\n calcTypeInt = L2DExpressionMotion.TYPE_MULT;\n } else if (calc === \"set\") {\n calcTypeInt = L2DExpressionMotion.TYPE_SET;\n } else {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n }\n if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {\n var defaultValue = param.def == null ? 0 : parseFloat(param.def);\n value = value - defaultValue;\n } else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {\n var defaultValue = param.def == null ? 1 : parseFloat(param.def);\n if (defaultValue == 0) defaultValue = 1;\n value = value / defaultValue;\n }\n\n var item = new L2DExpressionParam();\n item.id = paramID;\n item.type = calcTypeInt;\n item.value = value;\n\n ret.paramList.push(item);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DExpressionMotion # updateParamExe()\n//============================================================\nL2DExpressionMotion.prototype.updateParamExe = function (model /*ALive2DModel*/, timeMSec /*long*/, weight /*float*/, motionQueueEnt /*MotionQueueEnt*/) {\n for (var i = this.paramList.length - 1; i >= 0; --i) {\n var param = this.paramList[i]; //L2DExpressionParam\n // if (!param || !param.type) continue;\n if (param.type == L2DExpressionMotion.TYPE_ADD) {\n model.addToParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_MULT) {\n model.multParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_SET) {\n model.setParamFloat(param.id, param.value, weight);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DExpressionParam \n//============================================================\n//============================================================\nfunction L2DExpressionParam() {\n this.id = \"\";\n this.type = -1;\n this.value = null;\n}\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DEyeBlink \n//============================================================\n//============================================================\nfunction L2DEyeBlink() {\n this.nextBlinkTime = null /* TODO NOT INIT */; // \n this.stateStartTime = null /* TODO NOT INIT */; // \n this.blinkIntervalMsec = null /* TODO NOT INIT */; // \n this.eyeState = EYE_STATE.STATE_FIRST;\n this.blinkIntervalMsec = 4000;\n this.closingMotionMsec = 100;\n this.closedMotionMsec = 50;\n this.openingMotionMsec = 150;\n this.closeIfZero = true;\n this.eyeID_L = \"PARAM_EYE_L_OPEN\";\n this.eyeID_R = \"PARAM_EYE_R_OPEN\";\n}\n\n//============================================================\n// L2DEyeBlink # calcNextBlink()\n//============================================================\nL2DEyeBlink.prototype.calcNextBlink = function () {\n var time /*long*/ = UtSystem.getUserTimeMSec();\n var r /*Number*/ = Math.random();\n return (/*(long)*/time + r * (2 * this.blinkIntervalMsec - 1)\n );\n};\n\n//============================================================\n// L2DEyeBlink # setInterval()\n//============================================================\nL2DEyeBlink.prototype.setInterval = function (blinkIntervalMsec /*int*/) {\n this.blinkIntervalMsec = blinkIntervalMsec;\n};\n\n//============================================================\n// L2DEyeBlink # setEyeMotion()\n//============================================================\nL2DEyeBlink.prototype.setEyeMotion = function (closingMotionMsec /*int*/, closedMotionMsec /*int*/, openingMotionMsec /*int*/) {\n this.closingMotionMsec = closingMotionMsec;\n this.closedMotionMsec = closedMotionMsec;\n this.openingMotionMsec = openingMotionMsec;\n};\n\n//============================================================\n// L2DEyeBlink # updateParam()\n//============================================================\nL2DEyeBlink.prototype.updateParam = function (model /*ALive2DModel*/) {\n var time /*:long*/ = UtSystem.getUserTimeMSec();\n var eyeParamValue /*:Number*/;\n var t /*:Number*/ = 0;\n switch (this.eyeState) {\n case EYE_STATE.STATE_CLOSING:\n t = (time - this.stateStartTime) / this.closingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_CLOSED;\n this.stateStartTime = time;\n }\n eyeParamValue = 1 - t;\n break;\n case EYE_STATE.STATE_CLOSED:\n t = (time - this.stateStartTime) / this.closedMotionMsec;\n if (t >= 1) {\n this.eyeState = EYE_STATE.STATE_OPENING;\n this.stateStartTime = time;\n }\n eyeParamValue = 0;\n break;\n case EYE_STATE.STATE_OPENING:\n t = (time - this.stateStartTime) / this.openingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n }\n eyeParamValue = t;\n break;\n case EYE_STATE.STATE_INTERVAL:\n if (this.nextBlinkTime < time) {\n this.eyeState = EYE_STATE.STATE_CLOSING;\n this.stateStartTime = time;\n }\n eyeParamValue = 1;\n break;\n case EYE_STATE.STATE_FIRST:\n default:\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n eyeParamValue = 1;\n break;\n }\n if (!this.closeIfZero) eyeParamValue = -eyeParamValue;\n model.setParamFloat(this.eyeID_L, eyeParamValue);\n model.setParamFloat(this.eyeID_R, eyeParamValue);\n};\n\n//== enum EYE_STATE ==\nvar EYE_STATE = function EYE_STATE() {};\n\nEYE_STATE.STATE_FIRST = \"STATE_FIRST\";\nEYE_STATE.STATE_INTERVAL = \"STATE_INTERVAL\";\nEYE_STATE.STATE_CLOSING = \"STATE_CLOSING\";\nEYE_STATE.STATE_CLOSED = \"STATE_CLOSED\";\nEYE_STATE.STATE_OPENING = \"STATE_OPENING\";\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMatrix44 \n//============================================================\n//============================================================\nfunction L2DMatrix44() {\n this.tr = new Float32Array(16); // \n this.identity();\n}\n\n//============================================================\n// static L2DMatrix44.mul()\n//============================================================\nL2DMatrix44.mul = function (a /*float[]*/, b /*float[]*/, dst /*float[]*/) {\n var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var n = 4;\n var i, j, k;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n for (k = 0; k < n; k++) {\n c[i + j * 4] += a[i + k * 4] * b[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n dst[i] = c[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # identity()\n//============================================================\nL2DMatrix44.prototype.identity = function () {\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\n//============================================================\n// L2DMatrix44 # getArray()\n//============================================================\nL2DMatrix44.prototype.getArray = function () {\n return this.tr;\n};\n\n//============================================================\n// L2DMatrix44 # getCopyMatrix()\n//============================================================\nL2DMatrix44.prototype.getCopyMatrix = function () {\n return new Float32Array(this.tr); // this.tr.clone();\n};\n\n//============================================================\n// L2DMatrix44 # setMatrix()\n//============================================================\nL2DMatrix44.prototype.setMatrix = function (tr /*float[]*/) {\n if (this.tr == null || this.tr.length != this.tr.length) return;\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = tr[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # getScaleX()\n//============================================================\nL2DMatrix44.prototype.getScaleX = function () {\n return this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # getScaleY()\n//============================================================\nL2DMatrix44.prototype.getScaleY = function () {\n return this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # transformX()\n//============================================================\nL2DMatrix44.prototype.transformX = function (src /*float*/) {\n return this.tr[0] * src + this.tr[12];\n};\n\n//============================================================\n// L2DMatrix44 # transformY()\n//============================================================\nL2DMatrix44.prototype.transformY = function (src /*float*/) {\n return this.tr[5] * src + this.tr[13];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformX()\n//============================================================\nL2DMatrix44.prototype.invertTransformX = function (src /*float*/) {\n return (src - this.tr[12]) / this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformY()\n//============================================================\nL2DMatrix44.prototype.invertTransformY = function (src /*float*/) {\n return (src - this.tr[13]) / this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # multTranslate()\n//============================================================\nL2DMatrix44.prototype.multTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # translate()\n//============================================================\nL2DMatrix44.prototype.translate = function (x /*float*/, y /*float*/) {\n this.tr[12] = x;\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # translateX()\n//============================================================\nL2DMatrix44.prototype.translateX = function (x /*float*/) {\n this.tr[12] = x;\n};\n\n//============================================================\n// L2DMatrix44 # translateY()\n//============================================================\nL2DMatrix44.prototype.translateY = function (y /*float*/) {\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # multScale()\n//============================================================\nL2DMatrix44.prototype.multScale = function (scaleX /*float*/, scaleY /*float*/) {\n var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # scale()\n//============================================================\nL2DMatrix44.prototype.scale = function (scaleX /*float*/, scaleY /*float*/) {\n this.tr[0] = scaleX;\n this.tr[5] = scaleY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DModelMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DModelMatrix(w /*float*/, h /*float*/) {\n L2DMatrix44.prototype.constructor.call(this);\n this.width = w;\n this.height = h;\n}\n\n//L2DModelMatrix extends L2DMatrix44\nL2DModelMatrix.prototype = new L2DMatrix44();\n\n//============================================================\n// L2DModelMatrix # setPosition()\n//============================================================\nL2DModelMatrix.prototype.setPosition = function (x /*float*/, y /*float*/) {\n this.translate(x, y);\n};\n\n//============================================================\n// L2DModelMatrix # setCenterPosition()\n//============================================================\nL2DModelMatrix.prototype.setCenterPosition = function (x /*float*/, y /*float*/) {\n var w = this.width * this.getScaleX();\n var h = this.height * this.getScaleY();\n this.translate(x - w / 2, y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # top()\n//============================================================\nL2DModelMatrix.prototype.top = function (y /*float*/) {\n this.setY(y);\n};\n\n//============================================================\n// L2DModelMatrix # bottom()\n//============================================================\nL2DModelMatrix.prototype.bottom = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h);\n};\n\n//============================================================\n// L2DModelMatrix # left()\n//============================================================\nL2DModelMatrix.prototype.left = function (x /*float*/) {\n this.setX(x);\n};\n\n//============================================================\n// L2DModelMatrix # right()\n//============================================================\nL2DModelMatrix.prototype.right = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w);\n};\n\n//============================================================\n// L2DModelMatrix # centerX()\n//============================================================\nL2DModelMatrix.prototype.centerX = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w / 2);\n};\n\n//============================================================\n// L2DModelMatrix # centerY()\n//============================================================\nL2DModelMatrix.prototype.centerY = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # setX()\n//============================================================\nL2DModelMatrix.prototype.setX = function (x /*float*/) {\n this.translateX(x);\n};\n\n//============================================================\n// L2DModelMatrix # setY()\n//============================================================\nL2DModelMatrix.prototype.setY = function (y /*float*/) {\n this.translateY(y);\n};\n\n//============================================================\n// L2DModelMatrix # setHeight()\n//============================================================\nL2DModelMatrix.prototype.setHeight = function (h /*float*/) {\n var scaleX = h / this.height;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n//============================================================\n// L2DModelMatrix # setWidth()\n//============================================================\nL2DModelMatrix.prototype.setWidth = function (w /*float*/) {\n var scaleX = w / this.width;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMotionManager extends MotionQueueManager\n//============================================================\n//============================================================\nfunction L2DMotionManager() {\n MotionQueueManager.prototype.constructor.call(this);\n this.currentPriority = null;\n this.reservePriority = null;\n\n this.super = MotionQueueManager.prototype;\n}\n\nL2DMotionManager.prototype = new MotionQueueManager();\n\n//============================================================\n// L2DMotionManager # getCurrentPriority()\n//============================================================\nL2DMotionManager.prototype.getCurrentPriority = function () {\n return this.currentPriority;\n};\n\n//============================================================\n// L2DMotionManager # getReservePriority()\n//============================================================\nL2DMotionManager.prototype.getReservePriority = function () {\n return this.reservePriority;\n};\n\n//============================================================\n// L2DMotionManager # reserveMotion()\n//============================================================\nL2DMotionManager.prototype.reserveMotion = function (priority /*int*/) {\n if (this.reservePriority >= priority) {\n return false;\n }\n if (this.currentPriority >= priority) {\n return false;\n }\n\n this.reservePriority = priority;\n\n return true;\n};\n\n//============================================================\n// L2DMotionManager # setReservePriority()\n//============================================================\nL2DMotionManager.prototype.setReservePriority = function (val /*int*/) {\n this.reservePriority = val;\n};\n\n//============================================================\n// L2DMotionManager # updateParam()\n//============================================================\nL2DMotionManager.prototype.updateParam = function (model /*ALive2DModel*/) {\n var updated = MotionQueueManager.prototype.updateParam.call(this, model);\n\n if (this.isFinished()) {\n this.currentPriority = 0;\n }\n\n return updated;\n};\n\n//============================================================\n// L2DMotionManager # startMotionPrio()\n//============================================================\nL2DMotionManager.prototype.startMotionPrio = function (motion /*AMotion*/, priority /*int*/) {\n if (priority == this.reservePriority) {\n this.reservePriority = 0;\n }\n this.currentPriority = priority;\n return this.startMotion(motion, false);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPhysics \n//============================================================\n//============================================================\nfunction L2DPhysics() {\n this.physicsList = new Array(); //ArrayList\n this.startTimeMSec = UtSystem.getUserTimeMSec();\n}\n\n//============================================================\n// static L2DPhysics.load()\n//============================================================\nL2DPhysics.load = function (buf /*byte[]*/) {\n var ret = new L2DPhysics(); //L2DPhysicsL2DPhysics\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var params = json.physics_hair;\n var paramNum = params.length;\n for (var i = 0; i < paramNum; i++) {\n var param = params[i]; //Value\n var physics = new PhysicsHair(); //PhysicsHairPhysicsHair\n var setup = param.setup; //Value\n var length = parseFloat(setup.length);\n var resist = parseFloat(setup.regist);\n var mass = parseFloat(setup.mass);\n physics.setup(length, resist, mass);\n var srcList = param.src; //Value\n var srcNum = srcList.length;\n for (var j = 0; j < srcNum; j++) {\n var src = srcList[j]; //Value\n var id = src.id; //String\n var type = PhysicsHair.Src.SRC_TO_X;\n var typeStr = src.ptype; //String\n if (typeStr === \"x\") {\n type = PhysicsHair.Src.SRC_TO_X;\n } else if (typeStr === \"y\") {\n type = PhysicsHair.Src.SRC_TO_Y;\n } else if (typeStr === \"angle\") {\n type = PhysicsHair.Src.SRC_TO_G_ANGLE;\n } else {\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Src\");\n }\n var scale = parseFloat(src.scale);\n var weight = parseFloat(src.weight);\n physics.addSrcParam(type, id, scale, weight);\n }\n var targetList = param.targets; //Value\n var targetNum = targetList.length;\n for (var j = 0; j < targetNum; j++) {\n var target = targetList[j]; //Value\n var id = target.id; //String\n var type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n var typeStr = target.ptype; //String\n if (typeStr === \"angle\") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n } else if (typeStr === \"angle_v\") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE_V;\n } else {\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Target\");\n }\n var scale = parseFloat(target.scale);\n var weight = parseFloat(target.weight);\n physics.addTargetParam(type, id, scale, weight);\n }\n ret.physicsList.push(physics);\n }\n return ret;\n};\n\n//============================================================\n// L2DPhysics # updateParam()\n//============================================================\nL2DPhysics.prototype.updateParam = function (model /*ALive2DModel*/) {\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n for (var i = 0; i < this.physicsList.length; i++) {\n this.physicsList[i].update(model, timeMSec);\n }\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPose \n//============================================================\n//============================================================\nfunction L2DPose() {\n this.lastTime = 0;\n this.lastModel = null; //ALive2DModel\n this.partsGroups = new Array(); //ArrayList\n}\n\n//============================================================\n// static L2DPose.load()\n//============================================================\nL2DPose.load = function (buf /*byte[]*/) {\n var ret = new L2DPose(); //L2DPose\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var poseListInfo = json.parts_visible; //Value\n var poseNum = poseListInfo.length;\n for (var i_pose = 0; i_pose < poseNum; i_pose++) {\n var poseInfo = poseListInfo[i_pose]; //Value\n var idListInfo = poseInfo.group; //Value\n var idNum = idListInfo.length;\n var partsGroup /*L2DPartsParam*/ = new Array();\n for (var i_group = 0; i_group < idNum; i_group++) {\n var partsInfo = idListInfo[i_group]; //Value\n var parts = new L2DPartsParam(partsInfo.id); //L2DPartsParamL2DPartsParam\n partsGroup[i_group] = parts;\n if (partsInfo.link == null) continue;\n var linkListInfo = partsInfo.link; //Value\n var linkNum = linkListInfo.length;\n parts.link = new Array(); //ArrayList\n for (var i_link = 0; i_link < linkNum; i_link++) {\n var linkParts = new L2DPartsParam(linkListInfo[i_link]); //L2DPartsParamL2DPartsParam\n parts.link.push(linkParts);\n }\n }\n ret.partsGroups.push(partsGroup);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DPose # updateParam()\n//============================================================\nL2DPose.prototype.updateParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n\n if (!(model == this.lastModel)) {\n this.initParam(model);\n }\n this.lastModel = model;\n\n var curTime = UtSystem.getUserTimeMSec();\n var deltaTimeSec = this.lastTime == 0 ? 0 : (curTime - this.lastTime) / 1000.0;\n this.lastTime = curTime;\n if (deltaTimeSec < 0) deltaTimeSec = 0;\n for (var i = 0; i < this.partsGroups.length; i++) {\n this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);\n this.copyOpacityOtherParts(model, this.partsGroups[i]);\n }\n};\n\n//============================================================\n// L2DPose # initParam()\n//============================================================\nL2DPose.prototype.initParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n for (var i = 0; i < this.partsGroups.length; i++) {\n var partsGroup = this.partsGroups[i]; //L2DPartsParam\n for (var j = 0; j < partsGroup.length; j++) {\n partsGroup[j].initIndex(model);\n var partsIndex = partsGroup[j].partsIndex;\n var paramIndex = partsGroup[j].paramIndex;\n if (partsIndex < 0) continue;\n var v /*:Boolean*/ = model.getParamFloat(paramIndex) != 0;\n model.setPartsOpacity(partsIndex, v ? 1.0 : 0.0);\n model.setParamFloat(paramIndex, v ? 1.0 : 0.0);\n if (partsGroup[j].link == null) continue;\n for (var k = 0; k < partsGroup[j].link.length; k++) {\n partsGroup[j].link[k].initIndex(model);\n }\n }\n }\n};\n\n//============================================================\n// L2DPose # normalizePartsOpacityGroup()\n//============================================================\nL2DPose.prototype.normalizePartsOpacityGroup = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/, deltaTimeSec /*float*/) {\n var visibleParts = -1;\n var visibleOpacity = 1.0;\n var CLEAR_TIME_SEC = 0.5;\n var phi = 0.5;\n var maxBackOpacity = 0.15;\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n var paramIndex = partsGroup[i].paramIndex;\n if (partsIndex < 0) continue;if (model.getParamFloat(paramIndex) != 0) {\n if (visibleParts >= 0) {\n break;\n }\n visibleParts = i;\n visibleOpacity = model.getPartsOpacity(partsIndex);\n visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;\n if (visibleOpacity > 1) {\n visibleOpacity = 1;\n }\n }\n }\n if (visibleParts < 0) {\n visibleParts = 0;\n visibleOpacity = 1;\n }\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n if (partsIndex < 0) continue;if (visibleParts == i) {\n model.setPartsOpacity(partsIndex, visibleOpacity);\n } else {\n var opacity = model.getPartsOpacity(partsIndex);\n var a1;\n if (visibleOpacity < phi) {\n a1 = visibleOpacity * (phi - 1) / phi + 1;\n } else {\n a1 = (1 - visibleOpacity) * phi / (1 - phi);\n }\n var backOp = (1 - a1) * (1 - visibleOpacity);\n if (backOp > maxBackOpacity) {\n a1 = 1 - maxBackOpacity / (1 - visibleOpacity);\n }\n if (opacity > a1) {\n opacity = a1;\n }\n model.setPartsOpacity(partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n// L2DPose # copyOpacityOtherParts()\n//============================================================\nL2DPose.prototype.copyOpacityOtherParts = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/) {\n for (var i_group = 0; i_group < partsGroup.length; i_group++) {\n var partsParam = partsGroup[i_group]; //L2DPartsParam\n if (partsParam.link == null) continue;\n if (partsParam.partsIndex < 0) continue;\n var opacity = model.getPartsOpacity(partsParam.partsIndex);\n for (var i_link = 0; i_link < partsParam.link.length; i_link++) {\n var linkParts = partsParam.link[i_link]; //L2DPartsParam\n if (linkParts.partsIndex < 0) continue;\n model.setPartsOpacity(linkParts.partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DPartsParam \n//============================================================\n//============================================================\nfunction L2DPartsParam(id /*String*/) {\n this.paramIndex = -1;\n this.partsIndex = -1;\n this.link = null; // ArrayList\n this.id = id;\n}\n\n//============================================================\n// L2DPartsParam # initIndex()\n//============================================================\nL2DPartsParam.prototype.initIndex = function (model /*ALive2DModel*/) {\n this.paramIndex = model.getParamIndex(\"VISIBLE:\" + this.id);\n this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));\n model.setParamFloat(this.paramIndex, 1);\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DTargetPoint \n//============================================================\n//============================================================\nfunction L2DTargetPoint() {\n this.EPSILON = 0.01; // 変化の最小値(この値以下は無視される)\n this.faceTargetX = 0;\n this.faceTargetY = 0;\n this.faceX = 0;\n this.faceY = 0;\n this.faceVX = 0;\n this.faceVY = 0;\n this.lastTimeSec = 0;\n}\n\n//============================================================\nL2DTargetPoint.FRAME_RATE = 30;\n\n//============================================================\n// L2DTargetPoint # set()\n//============================================================\nL2DTargetPoint.prototype.setPoint = function (x /*float*/, y /*float*/) {\n this.faceTargetX = x;\n this.faceTargetY = y;\n};\n\n//============================================================\n// L2DTargetPoint # getX()\n//============================================================\nL2DTargetPoint.prototype.getX = function () {\n return this.faceX;\n};\n\n//============================================================\n// L2DTargetPoint # getY()\n//============================================================\nL2DTargetPoint.prototype.getY = function () {\n return this.faceY;\n};\n\n//============================================================\n// L2DTargetPoint # update()\n//============================================================\nL2DTargetPoint.prototype.update = function () {\n var TIME_TO_MAX_SPEED = 0.15;\n var FACE_PARAM_MAX_V = 40.0 / 7.5;\n var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;\n if (this.lastTimeSec == 0) {\n this.lastTimeSec = UtSystem.getUserTimeMSec();\n return;\n }\n var curTimeSec = UtSystem.getUserTimeMSec();\n var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;\n this.lastTimeSec = curTimeSec;\n var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;\n var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;\n var dx = this.faceTargetX - this.faceX;\n var dy = this.faceTargetY - this.faceY;\n // if(dx == 0 && dy == 0) return;\n if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;\n var d = Math.sqrt(dx * dx + dy * dy);\n var vx = MAX_V * dx / d;\n var vy = MAX_V * dy / d;\n var ax = vx - this.faceVX;\n var ay = vy - this.faceVY;\n var a = Math.sqrt(ax * ax + ay * ay);\n if (a < -MAX_A || a > MAX_A) {\n ax *= MAX_A / a;\n ay *= MAX_A / a;\n a = MAX_A;\n }\n this.faceVX += ax;\n this.faceVY += ay;\n {\n var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);\n var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);\n if (cur_v > max_v) {\n this.faceVX *= max_v / cur_v;\n this.faceVY *= max_v / cur_v;\n }\n }\n this.faceX += this.faceVX;\n this.faceY += this.faceVY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DViewMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DViewMatrix() {\n L2DMatrix44.prototype.constructor.call(this);\n this.screenLeft = null;\n this.screenRight = null;\n this.screenTop = null;\n this.screenBottom = null;\n this.maxLeft = null;\n this.maxRight = null;\n this.maxTop = null;\n this.maxBottom = null;\n this.max = Number.MAX_VALUE;\n this.min = 0;\n}\n\nL2DViewMatrix.prototype = new L2DMatrix44(); //L2DViewMatrix extends L2DMatrix44\n\n//============================================================\n// L2DViewMatrix # getMaxScale()\n//============================================================\nL2DViewMatrix.prototype.getMaxScale = function () {\n return this.max;\n};\n\n//============================================================\n// L2DViewMatrix # getMinScale()\n//============================================================\nL2DViewMatrix.prototype.getMinScale = function () {\n return this.min;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScale()\n//============================================================\nL2DViewMatrix.prototype.setMaxScale = function (v /*float*/) {\n this.max = v;\n};\n\n//============================================================\n// L2DViewMatrix # setMinScale()\n//============================================================\nL2DViewMatrix.prototype.setMinScale = function (v /*float*/) {\n this.min = v;\n};\n\n//============================================================\n// L2DViewMatrix # isMaxScale()\n//============================================================\nL2DViewMatrix.prototype.isMaxScale = function () {\n return this.getScaleX() == this.max;\n};\n\n//============================================================\n// L2DViewMatrix # isMinScale()\n//============================================================\nL2DViewMatrix.prototype.isMinScale = function () {\n return this.getScaleX() == this.min;\n};\n\n//============================================================\n// L2DViewMatrix # adjustTranslate()\n//============================================================\nL2DViewMatrix.prototype.adjustTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft) shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];\n if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight) shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];\n if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop) shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];\n if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom) shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];\n\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # adjustScale()\n//============================================================\nL2DViewMatrix.prototype.adjustScale = function (cx /*float*/, cy /*float*/, scale /*float*/) {\n var targetScale = scale * this.tr[0];\n if (targetScale < this.min) {\n if (this.tr[0] > 0) scale = this.min / this.tr[0];\n } else if (targetScale > this.max) {\n if (this.tr[0] > 0) scale = this.max / this.tr[0];\n }\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, cx, cy, 0, 1];\n var tr2 = [scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n var tr3 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -cx, -cy, 0, 1];\n L2DMatrix44.mul(tr3, this.tr, this.tr);\n L2DMatrix44.mul(tr2, this.tr, this.tr);\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # setScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.screenLeft = left;\n this.screenRight = right;\n this.screenTop = top;\n this.screenBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setMaxScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.maxLeft = left;\n this.maxRight = right;\n this.maxTop = top;\n this.maxBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenLeft()\n//============================================================\nL2DViewMatrix.prototype.getScreenLeft = function () {\n return this.screenLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenRight()\n//============================================================\nL2DViewMatrix.prototype.getScreenRight = function () {\n return this.screenRight;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenBottom()\n//============================================================\nL2DViewMatrix.prototype.getScreenBottom = function () {\n return this.screenBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenTop()\n//============================================================\nL2DViewMatrix.prototype.getScreenTop = function () {\n return this.screenTop;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxLeft()\n//============================================================\nL2DViewMatrix.prototype.getMaxLeft = function () {\n return this.maxLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxRight()\n//============================================================\nL2DViewMatrix.prototype.getMaxRight = function () {\n return this.maxRight;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxBottom()\n//============================================================\nL2DViewMatrix.prototype.getMaxBottom = function () {\n return this.maxBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxTop()\n//============================================================\nL2DViewMatrix.prototype.getMaxTop = function () {\n return this.maxTop;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class Live2DFramework \n//============================================================\n//============================================================\nfunction Live2DFramework() {}\n\n//============================================================\nLive2DFramework.platformManager = null;\n\n//============================================================\n// static Live2DFramework.getPlatformManager()\n//============================================================\nLive2DFramework.getPlatformManager = function () {\n return Live2DFramework.platformManager;\n};\n\n//============================================================\n// static Live2DFramework.setPlatformManager()\n//============================================================\nLive2DFramework.setPlatformManager = function (platformManager /*IPlatformManager*/) {\n Live2DFramework.platformManager = platformManager;\n};\n\nmodule.exports = {\n L2DTargetPoint: L2DTargetPoint,\n Live2DFramework: Live2DFramework,\n L2DViewMatrix: L2DViewMatrix,\n L2DPose: L2DPose,\n L2DPartsParam: L2DPartsParam,\n L2DPhysics: L2DPhysics,\n L2DMotionManager: L2DMotionManager,\n L2DModelMatrix: L2DModelMatrix,\n L2DMatrix44: L2DMatrix44,\n EYE_STATE: EYE_STATE,\n L2DEyeBlink: L2DEyeBlink,\n L2DExpressionParam: L2DExpressionParam,\n L2DExpressionMotion: L2DExpressionMotion,\n L2DBaseModel: L2DBaseModel\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LAppDefine = {\n\n DEBUG_LOG: false,\n DEBUG_MOUSE_LOG: false,\n // DEBUG_DRAW_HIT_AREA : false, \n // DEBUG_DRAW_ALPHA_MODEL : false, \n\n\n VIEW_MAX_SCALE: 2,\n VIEW_MIN_SCALE: 0.8,\n\n VIEW_LOGICAL_LEFT: -1,\n VIEW_LOGICAL_RIGHT: 1,\n\n VIEW_LOGICAL_MAX_LEFT: -2,\n VIEW_LOGICAL_MAX_RIGHT: 2,\n VIEW_LOGICAL_MAX_BOTTOM: -2,\n VIEW_LOGICAL_MAX_TOP: 2,\n\n PRIORITY_NONE: 0,\n PRIORITY_IDLE: 1,\n PRIORITY_NORMAL: 2,\n PRIORITY_FORCE: 3,\n\n MOTION_GROUP_IDLE: \"idle\",\n MOTION_GROUP_TAP_BODY: \"tap_body\",\n MOTION_GROUP_FLICK_HEAD: \"flick_head\",\n MOTION_GROUP_PINCH_IN: \"pinch_in\",\n MOTION_GROUP_PINCH_OUT: \"pinch_out\",\n MOTION_GROUP_SHAKE: \"shake\",\n\n HIT_AREA_HEAD: \"head\",\n HIT_AREA_BODY: \"body\"\n\n};\n\nmodule.exports = LAppDefine;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\n/**\n * EYHN 修改\n * \n * Copyright © 2016 - 2017 EYHN\n */\n\nfunction MatrixStack() {}\n\nMatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.depth = 0;\n\nMatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.tmp = new Array(16);\n\nMatrixStack.reset = function () {\n this.depth = 0;\n};\n\nMatrixStack.loadIdentity = function () {\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\nMatrixStack.push = function () {\n var offset = this.depth * 16;\n var nextOffset = (this.depth + 1) * 16;\n\n if (this.matrixStack.length < nextOffset + 16) {\n this.matrixStack.length = nextOffset + 16;\n }\n\n for (var i = 0; i < 16; i++) {\n this.matrixStack[nextOffset + i] = this.currentMatrix[i];\n }\n\n this.depth++;\n};\n\nMatrixStack.pop = function () {\n this.depth--;\n if (this.depth < 0) {\n myError(\"Invalid matrix stack.\");\n this.depth = 0;\n }\n\n var offset = this.depth * 16;\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.matrixStack[offset + i];\n }\n};\n\nMatrixStack.getMatrix = function () {\n return this.currentMatrix;\n};\n\nMatrixStack.multMatrix = function (matNew) {\n var i, j, k;\n\n for (i = 0; i < 16; i++) {\n this.tmp[i] = 0;\n }\n\n for (i = 0; i < 4; i++) {\n for (j = 0; j < 4; j++) {\n for (k = 0; k < 4; k++) {\n this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.tmp[i];\n }\n};\n\nmodule.exports = MatrixStack;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setContext = setContext;\nexports.getContext = getContext;\n\nvar context = undefined;\n\nfunction setContext(webglContext) {\n context = webglContext;\n}\n\nfunction getContext() {\n return context;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(9);\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _LAppLive2DManager = __webpack_require__(5);\n\nvar _LAppLive2DManager2 = _interopRequireDefault(_LAppLive2DManager);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nvar _webglcontext = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// window.onerror = function (msg, url, line, col, error) {\n// let errmsg = \"file:\" + url + \"
line:\" + line + \" \" + msg;\n// console.error(errmsg);\n// }\n\nvar platform = window.navigator.platform.toLowerCase();\n\nvar live2DMgr = new _LAppLive2DManager2.default();\n\nvar isDrawStart = false;\n\nvar gl = null;\n\nvar canvas = null;\n\nvar dragMgr = null;\n\nvar viewMatrix = null;\n\nvar projMatrix = null;\n\nvar deviceToScreen = null;\n\nvar drag = false;\n\nvar oldLen = 0;\n\nvar lastMouseX = 0;\n\nvar lastMouseY = 0;\n\nvar isModelShown = 0;\n\nvar modelurl = \"\";\n\nvar head_pos = 0.5;\n\nfunction initL2dCanvas(canvasId) {\n canvas = document.getElementById(canvasId);\n if (canvas.addEventListener) {\n //canvas.addEventListener(\"mousewheel\", mouseEvent);\n window.addEventListener(\"click\", mouseEvent);\n window.addEventListener(\"mousedown\", mouseEvent);\n window.addEventListener(\"mousemove\", mouseEvent);\n window.addEventListener(\"mouseup\", mouseEvent);\n document.addEventListener(\"mouseleave\", mouseEvent);\n //canvas.addEventListener(\"contextmenu\", mouseEvent);\n window.addEventListener(\"touchstart\", touchEvent);\n window.addEventListener(\"touchend\", touchEvent);\n window.addEventListener(\"touchmove\", touchEvent);\n }\n}\n\nfunction init(modelurl) {\n var width = canvas.width;\n var height = canvas.height;\n\n dragMgr = new _Live2DFramework.L2DTargetPoint();\n\n var ratio = height / width;\n var left = _LAppDefine2.default.VIEW_LOGICAL_LEFT;\n var right = _LAppDefine2.default.VIEW_LOGICAL_RIGHT;\n var bottom = -ratio;\n var top = ratio;\n\n viewMatrix = new _Live2DFramework.L2DViewMatrix();\n\n viewMatrix.setScreenRect(left, right, bottom, top);\n\n viewMatrix.setMaxScreenRect(_LAppDefine2.default.VIEW_LOGICAL_MAX_LEFT, _LAppDefine2.default.VIEW_LOGICAL_MAX_RIGHT, _LAppDefine2.default.VIEW_LOGICAL_MAX_BOTTOM, _LAppDefine2.default.VIEW_LOGICAL_MAX_TOP);\n\n viewMatrix.setMaxScale(_LAppDefine2.default.VIEW_MAX_SCALE);\n viewMatrix.setMinScale(_LAppDefine2.default.VIEW_MIN_SCALE);\n\n projMatrix = new _Live2DFramework.L2DMatrix44();\n projMatrix.multScale(1, width / height);\n\n deviceToScreen = new _Live2DFramework.L2DMatrix44();\n deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);\n deviceToScreen.multScale(2 / width, -2 / width);\n\n gl = getWebGLContext();\n (0, _webglcontext.setContext)(gl);\n if (!gl) {\n console.error(\"Failed to create WebGL context.\");\n return;\n }\n window.Live2D.setGL(gl);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n changeModel(modelurl);\n startDraw();\n}\n\nfunction startDraw() {\n if (!isDrawStart) {\n isDrawStart = true;\n (function tick() {\n draw();\n var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;\n\n requestAnimationFrame(tick, canvas);\n })();\n }\n}\n\nfunction draw() {\n _MatrixStack2.default.reset();\n _MatrixStack2.default.loadIdentity();\n dragMgr.update();\n live2DMgr.setDrag(dragMgr.getX(), dragMgr.getY());\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n _MatrixStack2.default.multMatrix(projMatrix.getArray());\n _MatrixStack2.default.multMatrix(viewMatrix.getArray());\n _MatrixStack2.default.push();\n\n for (var i = 0; i < live2DMgr.numModels(); i++) {\n var model = live2DMgr.getModel(i);\n\n if (model == null) return;\n\n if (model.initialized && !model.updating) {\n model.update();\n model.draw(gl);\n }\n }\n _MatrixStack2.default.pop();\n}\n\nfunction changeModel(modelurl) {\n live2DMgr.reloadFlg = true;\n live2DMgr.count++;\n live2DMgr.changeModel(gl, modelurl);\n}\n\nfunction modelScaling(scale) {\n var isMaxScale = viewMatrix.isMaxScale();\n var isMinScale = viewMatrix.isMinScale();\n\n viewMatrix.adjustScale(0, 0, scale);\n\n if (!isMaxScale) {\n if (viewMatrix.isMaxScale()) {\n live2DMgr.maxScaleEvent();\n }\n }\n\n if (!isMinScale) {\n if (viewMatrix.isMinScale()) {\n live2DMgr.minScaleEvent();\n }\n }\n}\n\nfunction transformRange(center, transform, range) {\n var a = {\n x: transform.x - center.x,\n y: transform.y - center.y\n };\n var r = Math.sqrt(Math.pow(a.x, 2) + Math.pow(a.y, 2));\n if (r > range) {\n a = {\n x: a.x / r * range + center.x,\n y: a.y / r * range + center.y\n };\n return a;\n } else {\n return transform;\n }\n}\n\nfunction dot(A, B) {\n return A.x * B.x + A.y * B.y;\n}\n\nfunction normalize(x, y) {\n var length = Math.sqrt(x * x + y * y);\n return {\n x: x / length,\n y: y / length\n };\n}\n\nfunction transformRect(center, transform, rect) {\n if (transform.x < rect.left + rect.width && transform.y < rect.top + rect.height && transform.x > rect.left && transform.y > rect.top) return transform;\n var Len_X = center.x - transform.x;\n var Len_Y = center.y - transform.y;\n\n function angle(Len_X, Len_Y) {\n return Math.acos(dot({\n x: 0,\n y: 1\n }, normalize(Len_X, Len_Y))) * 180 / Math.PI;\n }\n\n var angleTarget = angle(Len_X, Len_Y);\n if (transform.x < center.x) angleTarget = 360 - angleTarget;\n var angleLeftTop = 360 - angle(rect.left - center.x, (rect.top - center.y) * -1);\n var angleLeftBottom = 360 - angle(rect.left - center.x, (rect.top + rect.height - center.y) * -1);\n var angleRightTop = angle(rect.left + rect.width - center.x, (rect.top - center.y) * -1);\n var angleRightBottom = angle(rect.left + rect.width - center.x, (rect.top + rect.height - center.y) * -1);\n var scale = Len_Y / Len_X;\n var res = {};\n\n if (angleTarget < angleRightTop) {\n var y3 = rect.top - center.y;\n var x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n };\n } else if (angleTarget < angleRightBottom) {\n var _x = rect.left + rect.width - center.x;\n var _y = _x * scale;\n res = {\n y: center.y + _y,\n x: center.x + _x\n };\n } else if (angleTarget < angleLeftBottom) {\n var _y2 = rect.top + rect.height - center.y;\n var _x2 = _y2 / scale;\n res = {\n y: center.y + _y2,\n x: center.x + _x2\n };\n } else if (angleTarget < angleLeftTop) {\n var _x3 = center.x - rect.left;\n var _y3 = _x3 * scale;\n res = {\n y: center.y - _y3,\n x: center.x - _x3\n };\n } else {\n var _y4 = rect.top - center.y;\n var _x4 = _y4 / scale;\n res = {\n y: center.y + _y4,\n x: center.x + _x4\n };\n }\n\n return res;\n}\n\nfunction modelTurnHead(event) {\n drag = true;\n\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log(\"onMouseDown device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n lastMouseX = sx;\n lastMouseY = sy;\n\n dragMgr.setPoint(vx, vy);\n\n live2DMgr.tapEvent(vx, vy);\n}\n\nfunction followPointer(event) {\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log(\"onMouseMove device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n if (drag) {\n lastMouseX = sx;\n lastMouseY = sy;\n dragMgr.setPoint(vx, vy);\n }\n}\n\nfunction lookFront() {\n if (drag) {\n drag = false;\n }\n dragMgr.setPoint(0, 0);\n}\n\nfunction mouseEvent(e) {\n //e.preventDefault();\n if (e.type == \"mousewheel\") {\n // if (e.clientX < 0 || canvas.clientWidth < e.clientX || \n // e.clientY < 0 || canvas.clientHeight < e.clientY)\n // {\n // return;\n // }\n // if (e.wheelDelta > 0) modelScaling(1.1); \n // else modelScaling(0.9); \n } else if (e.type == \"mousedown\") {\n if (\"button\" in e && e.button != 0) return;\n // modelTurnHead(e);\n } else if (e.type == \"mousemove\") {\n modelTurnHead(e);\n } else if (e.type == \"mouseup\") {\n if (\"button\" in e && e.button != 0) return;\n // lookFront();\n } else if (e.type == \"mouseleave\") {\n lookFront();\n }\n}\n\nfunction touchEvent(e) {\n var touch = e.touches[0];\n if (e.type == \"touchstart\") {\n if (e.touches.length == 1) modelTurnHead(touch);\n // onClick(touch);\n } else if (e.type == \"touchmove\") {\n followPointer(touch);\n } else if (e.type == \"touchend\") {\n lookFront();\n }\n}\n\nfunction transformViewX(deviceX) {\n var screenX = deviceToScreen.transformX(deviceX);\n return viewMatrix.invertTransformX(screenX);\n}\n\nfunction transformViewY(deviceY) {\n var screenY = deviceToScreen.transformY(deviceY);\n return viewMatrix.invertTransformY(screenY);\n}\n\nfunction transformScreenX(deviceX) {\n return deviceToScreen.transformX(deviceX);\n}\n\nfunction transformScreenY(deviceY) {\n return deviceToScreen.transformY(deviceY);\n}\n\nfunction getWebGLContext() {\n var NAMES = [\"webgl\", \"experimental-webgl\", \"webkit-3d\", \"moz-webgl\"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};\n\nfunction loadlive2d(id, modelurl, headPos) {\n head_pos = typeof headPos === 'undefined' ? 0.5 : headPos;\n initL2dCanvas(id);\n init(modelurl);\n}\n\nwindow.loadlive2d = loadlive2d;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = LAppLive2DManager;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _PlatformManager = __webpack_require__(7);\n\nvar _PlatformManager2 = _interopRequireDefault(_PlatformManager);\n\nvar _LAppModel = __webpack_require__(6);\n\nvar _LAppModel2 = _interopRequireDefault(_LAppModel);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction LAppLive2DManager() {\n // console.log(\"--> LAppLive2DManager()\");\n\n\n this.models = [];\n\n this.count = -1;\n this.reloadFlg = false;\n\n Live2D.init();\n _Live2DFramework.Live2DFramework.setPlatformManager(new _PlatformManager2.default());\n}\n\nLAppLive2DManager.prototype.createModel = function () {\n\n var model = new _LAppModel2.default();\n this.models.push(model);\n\n return model;\n};\n\nLAppLive2DManager.prototype.changeModel = function (gl, modelurl) {\n // console.log(\"--> LAppLive2DManager.update(gl)\");\n\n if (this.reloadFlg) {\n\n this.reloadFlg = false;\n\n var thisRef = this;\n this.releaseModel(0, gl);\n this.createModel();\n this.models[0].load(gl, modelurl);\n }\n};\n\nLAppLive2DManager.prototype.getModel = function (no) {\n // console.log(\"--> LAppLive2DManager.getModel(\" + no + \")\");\n\n if (no >= this.models.length) return null;\n\n return this.models[no];\n};\n\nLAppLive2DManager.prototype.releaseModel = function (no, gl) {\n // console.log(\"--> LAppLive2DManager.releaseModel(\" + no + \")\");\n\n if (this.models.length <= no) return;\n\n this.models[no].release(gl);\n\n delete this.models[no];\n this.models.splice(no, 1);\n};\n\nLAppLive2DManager.prototype.numModels = function () {\n return this.models.length;\n};\n\nLAppLive2DManager.prototype.setDrag = function (x, y) {\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].setDrag(x, y);\n }\n};\n\nLAppLive2DManager.prototype.maxScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Max scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_IN, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.minScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Min scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_OUT, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.tapEvent = function (x, y) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"tapEvent view x:\" + x + \" y:\" + y);\n\n for (var i = 0; i < this.models.length; i++) {\n\n if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_HEAD, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Tap face.\");\n\n this.models[i].setRandomExpression();\n } else if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_BODY, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Tap body.\" + \" models[\" + i + \"]\");\n\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_TAP_BODY, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n }\n\n return true;\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = LAppModel;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _ModelSettingJson = __webpack_require__(8);\n\nvar _ModelSettingJson2 = _interopRequireDefault(_ModelSettingJson);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//============================================================\n//============================================================\n// class LAppModel extends L2DBaseModel \n//============================================================\n//============================================================\nfunction LAppModel() {\n //L2DBaseModel.apply(this, arguments);\n _Live2DFramework.L2DBaseModel.prototype.constructor.call(this);\n\n this.modelHomeDir = \"\";\n this.modelSetting = null;\n this.tmpMatrix = [];\n}\n\nLAppModel.prototype = new _Live2DFramework.L2DBaseModel();\n\nLAppModel.prototype.load = function (gl, modelSettingPath, callback) {\n this.setUpdating(true);\n this.setInitialized(false);\n\n this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf(\"/\") + 1);\n\n this.modelSetting = new _ModelSettingJson2.default();\n\n var thisRef = this;\n\n this.modelSetting.loadModelSetting(modelSettingPath, function () {\n\n var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();\n thisRef.loadModelData(path, function (model) {\n\n for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++) {\n\n var texPaths = thisRef.modelHomeDir + thisRef.modelSetting.getTextureFile(i);\n\n thisRef.loadTexture(i, texPaths, function () {\n\n if (thisRef.isTexLoaded) {\n\n if (thisRef.modelSetting.getExpressionNum() > 0) {\n\n thisRef.expressions = {};\n\n for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++) {\n var expName = thisRef.modelSetting.getExpressionName(j);\n var expFilePath = thisRef.modelHomeDir + thisRef.modelSetting.getExpressionFile(j);\n\n thisRef.loadExpression(expName, expFilePath);\n }\n } else {\n thisRef.expressionManager = null;\n thisRef.expressions = {};\n }\n\n if (thisRef.eyeBlink == null) {\n thisRef.eyeBlink = new _Live2DFramework.L2DEyeBlink();\n }\n\n if (thisRef.modelSetting.getPhysicsFile() != null) {\n thisRef.loadPhysics(thisRef.modelHomeDir + thisRef.modelSetting.getPhysicsFile());\n } else {\n thisRef.physics = null;\n }\n\n if (thisRef.modelSetting.getPoseFile() != null) {\n thisRef.loadPose(thisRef.modelHomeDir + thisRef.modelSetting.getPoseFile(), function () {\n thisRef.pose.updateParam(thisRef.live2DModel);\n });\n } else {\n thisRef.pose = null;\n }\n\n if (thisRef.modelSetting.getLayout() != null) {\n var layout = thisRef.modelSetting.getLayout();\n if (layout[\"width\"] != null) thisRef.modelMatrix.setWidth(layout[\"width\"]);\n if (layout[\"height\"] != null) thisRef.modelMatrix.setHeight(layout[\"height\"]);\n\n if (layout[\"x\"] != null) thisRef.modelMatrix.setX(layout[\"x\"]);\n if (layout[\"y\"] != null) thisRef.modelMatrix.setY(layout[\"y\"]);\n if (layout[\"center_x\"] != null) thisRef.modelMatrix.centerX(layout[\"center_x\"]);\n if (layout[\"center_y\"] != null) thisRef.modelMatrix.centerY(layout[\"center_y\"]);\n if (layout[\"top\"] != null) thisRef.modelMatrix.top(layout[\"top\"]);\n if (layout[\"bottom\"] != null) thisRef.modelMatrix.bottom(layout[\"bottom\"]);\n if (layout[\"left\"] != null) thisRef.modelMatrix.left(layout[\"left\"]);\n if (layout[\"right\"] != null) thisRef.modelMatrix.right(layout[\"right\"]);\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++) {\n\n thisRef.live2DModel.setParamFloat(thisRef.modelSetting.getInitParamID(j), thisRef.modelSetting.getInitParamValue(j));\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++) {\n\n thisRef.live2DModel.setPartsOpacity(thisRef.modelSetting.getInitPartsVisibleID(j), thisRef.modelSetting.getInitPartsVisibleValue(j));\n }\n\n thisRef.live2DModel.saveParam();\n // thisRef.live2DModel.setGL(gl);\n\n\n thisRef.preloadMotionGroup(_LAppDefine2.default.MOTION_GROUP_IDLE);\n thisRef.mainMotionManager.stopAllMotions();\n\n thisRef.setUpdating(false);\n thisRef.setInitialized(true);\n\n if (typeof callback == \"function\") callback();\n }\n });\n }\n });\n });\n};\n\nLAppModel.prototype.release = function (gl) {\n // this.live2DModel.deleteTextures();\n var pm = Live2DFramework.getPlatformManager();\n\n gl.deleteTexture(pm.texture);\n};\n\nLAppModel.prototype.preloadMotionGroup = function (name) {\n var thisRef = this;\n\n for (var i = 0; i < this.modelSetting.getMotionNum(name); i++) {\n var file = this.modelSetting.getMotionFile(name, i);\n this.loadMotion(file, this.modelHomeDir + file, function (motion) {\n motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));\n motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i));\n });\n }\n};\n\nLAppModel.prototype.update = function () {\n // console.log(\"--> LAppModel.update()\");\n\n if (this.live2DModel == null) {\n if (_LAppDefine2.default.DEBUG_LOG) console.error(\"Failed to update.\");\n\n return;\n }\n\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n var timeSec = timeMSec / 1000.0;\n var t = timeSec * 2 * Math.PI;\n\n if (this.mainMotionManager.isFinished()) {\n\n this.startRandomMotion(_LAppDefine2.default.MOTION_GROUP_IDLE, _LAppDefine2.default.PRIORITY_IDLE);\n }\n\n //-----------------------------------------------------------------\t\t\n\n\n this.live2DModel.loadParam();\n\n var update = this.mainMotionManager.updateParam(this.live2DModel);\n if (!update) {\n\n if (this.eyeBlink != null) {\n this.eyeBlink.updateParam(this.live2DModel);\n }\n }\n\n this.live2DModel.saveParam();\n\n //-----------------------------------------------------------------\t\t\n\n\n if (this.expressionManager != null && this.expressions != null && !this.expressionManager.isFinished()) {\n this.expressionManager.updateParam(this.live2DModel);\n }\n\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", this.dragX * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", this.dragY * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", this.dragX * this.dragY * -30, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", this.dragX * 10, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_X\", this.dragX, 1);\n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_Y\", this.dragY, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", Number(15 * Math.sin(t / 6.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", Number(8 * Math.sin(t / 3.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", Number(10 * Math.sin(t / 5.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", Number(4 * Math.sin(t / 15.5345)), 0.5);\n this.live2DModel.setParamFloat(\"PARAM_BREATH\", Number(0.5 + 0.5 * Math.sin(t / 3.2345)), 1);\n\n if (this.physics != null) {\n this.physics.updateParam(this.live2DModel);\n }\n\n if (this.lipSync == null) {\n this.live2DModel.setParamFloat(\"PARAM_MOUTH_OPEN_Y\", this.lipSyncValue);\n }\n\n if (this.pose != null) {\n this.pose.updateParam(this.live2DModel);\n }\n\n this.live2DModel.update();\n};\n\nLAppModel.prototype.setRandomExpression = function () {\n var tmp = [];\n for (var name in this.expressions) {\n tmp.push(name);\n }\n\n var no = parseInt(Math.random() * tmp.length);\n\n this.setExpression(tmp[no]);\n};\n\nLAppModel.prototype.startRandomMotion = function (name, priority) {\n var max = this.modelSetting.getMotionNum(name);\n var no = parseInt(Math.random() * max);\n this.startMotion(name, no, priority);\n};\n\nLAppModel.prototype.startMotion = function (name, no, priority) {\n // console.log(\"startMotion : \" + name + \" \" + no + \" \" + priority);\n\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n if (motionName == null || motionName == \"\") {\n if (_LAppDefine2.default.DEBUG_LOG) console.error(\"Failed to motion.\");\n return;\n }\n\n if (priority == _LAppDefine2.default.PRIORITY_FORCE) {\n this.mainMotionManager.setReservePriority(priority);\n } else if (!this.mainMotionManager.reserveMotion(priority)) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Motion is running.\");\n return;\n }\n\n var thisRef = this;\n var motion;\n\n if (this.motions[name] == null) {\n this.loadMotion(null, this.modelHomeDir + motionName, function (mtn) {\n motion = mtn;\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n });\n } else {\n motion = this.motions[name];\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n }\n};\n\nLAppModel.prototype.setFadeInFadeOut = function (name, no, priority, motion) {\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));\n motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Start motion : \" + motionName);\n\n if (this.modelSetting.getMotionSound(name, no) == null) {\n this.mainMotionManager.startMotionPrio(motion, priority);\n } else {\n var soundName = this.modelSetting.getMotionSound(name, no);\n // var player = new Sound(this.modelHomeDir + soundName);\n\n var snd = document.createElement(\"audio\");\n snd.src = this.modelHomeDir + soundName;\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Start sound : \" + soundName);\n\n snd.play();\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n};\n\nLAppModel.prototype.setExpression = function (name) {\n var motion = this.expressions[name];\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Expression : \" + name);\n\n this.expressionManager.startMotion(motion, false);\n};\n\nLAppModel.prototype.draw = function (gl) {\n //console.log(\"--> LAppModel.draw()\");\n\n // if(this.live2DModel == null) return;\n\n\n _MatrixStack2.default.push();\n\n _MatrixStack2.default.multMatrix(this.modelMatrix.getArray());\n\n this.tmpMatrix = _MatrixStack2.default.getMatrix();\n this.live2DModel.setMatrix(this.tmpMatrix);\n this.live2DModel.draw();\n\n _MatrixStack2.default.pop();\n};\n\nLAppModel.prototype.hitTest = function (id, testX, testY) {\n var len = this.modelSetting.getHitAreaNum();\n for (var i = 0; i < len; i++) {\n if (id == this.modelSetting.getHitAreaName(i)) {\n var drawID = this.modelSetting.getHitAreaID(i);\n\n return this.hitTestSimple(drawID, testX, testY);\n }\n }\n\n return false;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = PlatformManager;\n\nvar _webglcontext = __webpack_require__(3);\n\n//============================================================\n//============================================================\n// class PlatformManager extend IPlatformManager\n//============================================================\n//============================================================\nfunction PlatformManager() {}\n\n//============================================================\n// PlatformManager # loadBytes()\n//============================================================\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\nPlatformManager.prototype.loadBytes = function (path /*String*/, callback) {\n var request = new XMLHttpRequest();\n request.open(\"GET\", path, true);\n request.responseType = \"arraybuffer\";\n request.onload = function () {\n switch (request.status) {\n case 200:\n callback(request.response);\n break;\n default:\n console.error(\"Failed to load (\" + request.status + \") : \" + path);\n break;\n }\n };\n request.send(null);\n //return request;\n};\n\n//============================================================\n// PlatformManager # loadString()\n//============================================================\nPlatformManager.prototype.loadString = function (path /*String*/) {\n\n this.loadBytes(path, function (buf) {\n return buf;\n });\n};\n\n//============================================================\n// PlatformManager # loadLive2DModel()\n//============================================================\nPlatformManager.prototype.loadLive2DModel = function (path /*String*/, callback) {\n var model = null;\n\n // load moc\n this.loadBytes(path, function (buf) {\n model = Live2DModelWebGL.loadModel(buf);\n callback(model);\n });\n};\n\n//============================================================\n// PlatformManager # loadTexture()\n//============================================================\nPlatformManager.prototype.loadTexture = function (model /*ALive2DModel*/, no /*int*/, path /*String*/, callback) {\n // load textures\n var loadedImage = new Image();\n loadedImage.src = path;\n\n var thisRef = this;\n loadedImage.onload = function () {\n // create texture\n var gl = (0, _webglcontext.getContext)();\n var texture = gl.createTexture();\n if (!texture) {\n console.error(\"Failed to generate gl texture name.\");return -1;\n }\n\n if (model.isPremultipliedAlpha() == false) {\n // 乗算済アルファテクスチャ以外の場合\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n }\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, loadedImage);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n model.setTexture(no, texture);\n\n // テクスチャオブジェクトを解放\n texture = null;\n\n if (typeof callback == \"function\") callback();\n };\n\n loadedImage.onerror = function () {\n console.error(\"Failed to load image : \" + path);\n };\n};\n\n//============================================================\n// PlatformManager # parseFromBytes(buf)\n\n//============================================================\nPlatformManager.prototype.jsonParseFromBytes = function (buf) {\n\n var jsonStr;\n\n var bomCode = new Uint8Array(buf, 0, 3);\n if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3));\n } else {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n\n var jsonObj = JSON.parse(jsonStr);\n\n return jsonObj;\n};\n\n//============================================================\n// PlatformManager # log()\n//============================================================\nPlatformManager.prototype.log = function (txt /*String*/) {\n //console.log(txt);\n};\n\nfunction getWebGLContext(canvas) {\n var NAMES = [\"webgl\", \"experimental-webgl\", \"webkit-3d\", \"moz-webgl\"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ModelSettingJson;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nfunction ModelSettingJson() {\n this.NAME = \"name\";\n this.ID = \"id\";\n this.MODEL = \"model\";\n this.TEXTURES = \"textures\";\n this.HIT_AREAS = \"hit_areas\";\n this.PHYSICS = \"physics\";\n this.POSE = \"pose\";\n this.EXPRESSIONS = \"expressions\";\n this.MOTION_GROUPS = \"motions\";\n this.SOUND = \"sound\";\n this.FADE_IN = \"fade_in\";\n this.FADE_OUT = \"fade_out\";\n this.LAYOUT = \"layout\";\n this.INIT_PARAM = \"init_param\";\n this.INIT_PARTS_VISIBLE = \"init_parts_visible\";\n this.VALUE = \"val\";\n this.FILE = \"file\";\n\n this.json = {};\n}\n\nModelSettingJson.prototype.loadModelSetting = function (path, callback) {\n var thisRef = this;\n var pm = _Live2DFramework.Live2DFramework.getPlatformManager();\n pm.loadBytes(path, function (buf) {\n var str = String.fromCharCode.apply(null, new Uint8Array(buf));\n thisRef.json = JSON.parse(str);\n callback();\n });\n};\n\nModelSettingJson.prototype.getTextureFile = function (n) {\n if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null) return null;\n\n return this.json[this.TEXTURES][n];\n};\n\nModelSettingJson.prototype.getModelFile = function () {\n return this.json[this.MODEL];\n};\n\nModelSettingJson.prototype.getTextureNum = function () {\n if (this.json[this.TEXTURES] == null) return 0;\n\n return this.json[this.TEXTURES].length;\n};\n\nModelSettingJson.prototype.getHitAreaNum = function () {\n if (this.json[this.HIT_AREAS] == null) return 0;\n\n return this.json[this.HIT_AREAS].length;\n};\n\nModelSettingJson.prototype.getHitAreaID = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.ID];\n};\n\nModelSettingJson.prototype.getHitAreaName = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getPhysicsFile = function () {\n return this.json[this.PHYSICS];\n};\n\nModelSettingJson.prototype.getPoseFile = function () {\n return this.json[this.POSE];\n};\n\nModelSettingJson.prototype.getExpressionNum = function () {\n return this.json[this.EXPRESSIONS] == null ? 0 : this.json[this.EXPRESSIONS].length;\n};\n\nModelSettingJson.prototype.getExpressionFile = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.FILE];\n};\n\nModelSettingJson.prototype.getExpressionName = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getLayout = function () {\n return this.json[this.LAYOUT];\n};\n\nModelSettingJson.prototype.getInitParamNum = function () {\n return this.json[this.INIT_PARAM] == null ? 0 : this.json[this.INIT_PARAM].length;\n};\n\nModelSettingJson.prototype.getMotionNum = function (name) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null) return 0;\n\n return this.json[this.MOTION_GROUPS][name].length;\n};\n\nModelSettingJson.prototype.getMotionFile = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FILE];\n};\n\nModelSettingJson.prototype.getMotionSound = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.SOUND];\n};\n\nModelSettingJson.prototype.getMotionFadeIn = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN];\n};\n\nModelSettingJson.prototype.getMotionFadeOut = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT];\n};\n\nModelSettingJson.prototype.getInitParamID = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return null;\n\n return this.json[this.INIT_PARAM][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitParamValue = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return NaN;\n\n return this.json[this.INIT_PARAM][n][this.VALUE];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleNum = function () {\n return this.json[this.INIT_PARTS_VISIBLE] == null ? 0 : this.json[this.INIT_PARTS_VISIBLE].length;\n};\n\nModelSettingJson.prototype.getInitPartsVisibleID = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return null;\n return this.json[this.INIT_PARTS_VISIBLE][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleValue = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return NaN;\n\n return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE];\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(System) {\n\n(function () {\n var j = true;function aa() {\n if (j) {\n return;\n }this._$MT = null;this._$5S = null;this._$NP = 0;aa._$42++;this._$5S = new y(this);\n }aa._$0s = 1;aa._$4s = 2;aa._$42 = 0;aa._$62 = function (aQ, aU) {\n try {\n if (aU instanceof ArrayBuffer) {\n aU = new DataView(aU);\n }if (!(aU instanceof DataView)) {\n throw new J(\"_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer\");\n }var aS = new K(aU);var aM = aS._$ST();var aK = aS._$ST();var aJ = aS._$ST();var aN;if (aM == 109 && aK == 111 && aJ == 99) {\n aN = aS._$ST();\n } else {\n throw new J(\"_$gi _$C _$li , _$Q0 _$P0.\");\n }aS._$gr(aN);if (aN > ay._$T7) {\n aQ._$NP |= aa._$4s;var aR = ay._$T7;var aI = \"_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : \" + aR + \" < _$f0 : \" + aN + \" )@_$SS#loadModel()\\n\";throw new J(aI);\n }var aL = aS._$nP();if (aN >= ay._$s7) {\n var aH = aS._$9T();var aT = aS._$9T();if (aH != -30584 || aT != -30584) {\n aQ._$NP |= aa._$0s;throw new J(\"_$gi _$C _$li , _$0 _$6 _$Ui.\");\n }\n }aQ._$KS(aL);var aP = aQ.getModelContext();aP.setDrawParam(aQ.getDrawParam());aP.init();\n } catch (aO) {\n q._$Rb(aO);\n }\n };aa.prototype._$KS = function (aH) {\n this._$MT = aH;\n };aa.prototype.getModelImpl = function () {\n if (this._$MT == null) {\n this._$MT = new w();this._$MT._$zP();\n }return this._$MT;\n };aa.prototype.getCanvasWidth = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasWidth();\n };aa.prototype.getCanvasHeight = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasHeight();\n };aa.prototype.getParamFloat = function (aH) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }return this._$5S.getParamFloat(aH);\n };aa.prototype.setParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 - aI) + aJ * aI);\n };aa.prototype.addToParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) + aJ * aI);\n };aa.prototype.multParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 + (aJ - 1) * aI));\n };aa.prototype.getParamIndex = function (aH) {\n return this._$5S.getParamIndex(z.getID(aH));\n };aa.prototype.loadParam = function () {\n this._$5S.loadParam();\n };aa.prototype.saveParam = function () {\n this._$5S.saveParam();\n };aa.prototype.init = function () {\n this._$5S.init();\n };aa.prototype.update = function () {\n this._$5S.update();\n };aa.prototype._$Rs = function () {\n q._$li(\"_$60 _$PT _$Rs()\");return -1;\n };aa.prototype._$Ds = function (aH) {\n q._$li(\"_$60 _$PT _$SS#_$Ds() \\n\");\n };aa.prototype._$K2 = function () {};aa.prototype.draw = function () {};aa.prototype.getModelContext = function () {\n return this._$5S;\n };aa.prototype._$s2 = function () {\n return this._$NP;\n };aa.prototype._$P7 = function (aK, aR, aH, a0) {\n var aU = -1;var aY = 0;var aM = this;var aJ = 0.5;var aI = 0.15;var aX = true;if (aH == 0) {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aO = aR[aV];var aS = aM.getParamFloat(aP) != 0;aM.setPartsOpacity(aO, aS ? 1 : 0);\n }return;\n } else {\n if (aK.length == 1) {\n var aP = aK[0];var aT = aM.getParamFloat(aP) != 0;var aO = aR[0];var aQ = aM.getPartsOpacity(aO);var aW = aH / a0;if (aT) {\n aQ += aW;if (aQ > 1) {\n aQ = 1;\n }\n } else {\n aQ -= aW;if (aQ < 0) {\n aQ = 0;\n }\n }aM.setPartsOpacity(aO, aQ);\n } else {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aS = aM.getParamFloat(aP) != 0;if (aS) {\n if (aU >= 0) {\n break;\n }aU = aV;var aO = aR[aV];aY = aM.getPartsOpacity(aO);aY += aH / a0;if (aY > 1) {\n aY = 1;\n }\n }\n }if (aU < 0) {\n console.log(\"No _$wi _$q0/ _$U default[%s]\", aK[0]);aU = 0;aY = 1;aM.loadParam();aM.setParamFloat(aK[aU], aY);aM.saveParam();\n }for (var aV = 0; aV < aK.length; aV++) {\n var aO = aR[aV];if (aU == aV) {\n aM.setPartsOpacity(aO, aY);\n } else {\n var aL = aM.getPartsOpacity(aO);var aZ;if (aY < aJ) {\n aZ = aY * (aJ - 1) / aJ + 1;\n } else {\n aZ = (1 - aY) * aJ / (1 - aJ);\n }if (aX) {\n var aN = (1 - aZ) * (1 - aY);if (aN > aI) {\n aZ = 1 - aI / (1 - aY);\n }\n }if (aL > aZ) {\n aL = aZ;\n }aM.setPartsOpacity(aO, aL);\n }\n }\n }\n }\n };aa.prototype.setPartsOpacity = function (aI, aH) {\n if (typeof aI != \"number\") {\n aI = this._$5S.getPartsDataIndex(i.getID(aI));\n }this._$5S.setPartsOpacity(aI, aH);\n };aa.prototype.getPartsDataIndex = function (aH) {\n if (!(aH instanceof i)) {\n aH = i.getID(aH);\n }return this._$5S.getPartsDataIndex(aH);\n };aa.prototype.getPartsOpacity = function (aH) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getPartsDataIndex(i.getID(aH));\n }if (aH < 0) {\n return 0;\n }return this._$5S.getPartsOpacity(aH);\n };aa.prototype.getDrawParam = function () {};aa.prototype.getDrawDataIndex = function (aH) {\n return this._$5S.getDrawDataIndex(Z.getID(aH));\n };aa.prototype.getDrawData = function (aH) {\n return this._$5S.getDrawData(aH);\n };aa.prototype.getTransformedPoints = function (aH) {\n var aI = this._$5S._$C2(aH);if (aI instanceof ag) {\n return aI.getTransformedPoints();\n }return null;\n };aa.prototype.getIndexArray = function (aI) {\n if (aI < 0 || aI >= this._$5S._$aS.length) {\n return null;\n }var aH = this._$5S._$aS[aI];if (aH != null && aH.getType() == a._$wb) {\n if (aH instanceof b) {\n return aH.getIndexArray();\n }\n }return null;\n };function W(aJ) {\n if (j) {\n return;\n }this.clipContextList = new Array();this.glcontext = aJ.gl;this.dp_webgl = aJ;this.curFrameNo = 0;this.firstError_clipInNotUpdate = true;this.colorBuffer = 0;this.isInitGLFBFunc = false;this.tmpBoundsOnModel = new av();if (Q.glContext.length > Q.frameBuffers.length) {\n this.curFrameNo = this.getMaskRenderTexture();\n } else {}this.tmpModelToViewMatrix = new ac();this.tmpMatrix2 = new ac();this.tmpMatrixForMask = new ac();this.tmpMatrixForDraw = new ac();this.CHANNEL_COLORS = new Array();var aI = new o();aI = new o();aI.r = 0;aI.g = 0;aI.b = 0;aI.a = 1;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 1;aI.g = 0;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 1;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 0;aI.b = 1;aI.a = 0;this.CHANNEL_COLORS.push(aI);for (var aH = 0; aH < this.CHANNEL_COLORS.length; aH++) {\n this.dp_webgl.setChannelFlagAsColor(aH, this.CHANNEL_COLORS[aH]);\n }\n }W.CHANNEL_COUNT = 4;W.RENDER_TEXTURE_USE_MIPMAP = false;W.NOT_USED_FRAME = -100;W.prototype._$L7 = function () {\n if (this.tmpModelToViewMatrix) {\n this.tmpModelToViewMatrix = null;\n }if (this.tmpMatrix2) {\n this.tmpMatrix2 = null;\n }if (this.tmpMatrixForMask) {\n this.tmpMatrixForMask = null;\n }if (this.tmpMatrixForDraw) {\n this.tmpMatrixForDraw = null;\n }if (this.tmpBoundsOnModel) {\n this.tmpBoundsOnModel = null;\n }if (this.CHANNEL_COLORS) {\n for (var aH = this.CHANNEL_COLORS.length - 1; aH >= 0; --aH) {\n this.CHANNEL_COLORS.splice(aH, 1);\n }this.CHANNEL_COLORS = [];\n }this.releaseShader();\n };W.prototype.releaseShader = function () {\n var aI = Q.frameBuffers.length;for (var aH = 0; aH < aI; aH++) {\n this.gl.deleteFramebuffer(Q.frameBuffers[aH].framebuffer);\n }Q.frameBuffers = [];Q.glContext = [];\n };W.prototype.init = function (aO, aN, aL) {\n for (var aM = 0; aM < aN.length; aM++) {\n var aH = aN[aM].getClipIDList();if (aH == null) {\n continue;\n }var aJ = this.findSameClip(aH);if (aJ == null) {\n aJ = new U(this, aO, aH);this.clipContextList.push(aJ);\n }var aI = aN[aM].getDrawDataID();var aK = aO.getDrawDataIndex(aI);aJ.addClippedDrawData(aI, aK);var aP = aL[aM];aP.clipBufPre_clipContext = aJ;\n }\n };W.prototype.getMaskRenderTexture = function () {\n var aH = null;aH = this.dp_webgl.createFramebuffer();Q.frameBuffers[this.dp_webgl.glno] = aH;return this.dp_webgl.glno;\n };W.prototype.setupClip = function (a1, aQ) {\n var aK = 0;for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];this.calcClippedDrawTotalBounds(a1, aP);if (aP.isUsing) {\n aK++;\n }\n }if (aK > 0) {\n var aM = aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);var aW = new Array(4);aW[0] = 0;aW[1] = 0;aW[2] = aQ.gl.canvas.width;aW[3] = aQ.gl.canvas.height;aQ.gl.viewport(0, 0, Q.clippingMaskBufferSize, Q.clippingMaskBufferSize);this.setupLayoutBounds(aK);aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, Q.frameBuffers[this.curFrameNo].framebuffer);aQ.gl.clearColor(0, 0, 0, 0);aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];var aT = aP.allClippedDrawRect;var aN = aP.layoutChannelNo;var aV = aP.layoutBounds;var aJ = 0.05;this.tmpBoundsOnModel._$jL(aT);this.tmpBoundsOnModel.expand(aT.width * aJ, aT.height * aJ);var aZ = aV.width / this.tmpBoundsOnModel.width;var aY = aV.height / this.tmpBoundsOnModel.height;this.tmpMatrix2.identity();this.tmpMatrix2.translate(-1, -1, 0);this.tmpMatrix2.scale(2, 2, 1);this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m);this.tmpMatrix2.identity();this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);var aH = this.tmpMatrixForMask.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForMask[aX] = aH[aX];\n }var a0 = this.tmpMatrixForDraw.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForDraw[aX] = a0[aX];\n }var aS = aP.clippingMaskDrawIndexList.length;for (var aU = 0; aU < aS; aU++) {\n var aR = aP.clippingMaskDrawIndexList[aU];var aI = a1.getDrawData(aR);var aL = a1._$C2(aR);aQ.setClipBufPre_clipContextForMask(aP);aI.draw(aQ, a1, aL);\n }\n }aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, aM);aQ.setClipBufPre_clipContextForMask(null);aQ.gl.viewport(aW[0], aW[1], aW[2], aW[3]);\n }\n };W.prototype.getColorBuffer = function () {\n return this.colorBuffer;\n };W.prototype.findSameClip = function (aK) {\n for (var aN = 0; aN < this.clipContextList.length; aN++) {\n var aO = this.clipContextList[aN];var aH = aO.clipIDList.length;if (aH != aK.length) {\n continue;\n }var aI = 0;for (var aM = 0; aM < aH; aM++) {\n var aL = aO.clipIDList[aM];for (var aJ = 0; aJ < aH; aJ++) {\n if (aK[aJ] == aL) {\n aI++;break;\n }\n }\n }if (aI == aH) {\n return aO;\n }\n }return null;\n };W.prototype.calcClippedDrawTotalBounds = function (a6, aV) {\n var aU = a6._$Ri.getModelImpl().getCanvasWidth();var a5 = a6._$Ri.getModelImpl().getCanvasHeight();var aJ = aU > a5 ? aU : a5;var aT = aJ;var aR = aJ;var aS = 0;var aP = 0;var aL = aV.clippedDrawContextList.length;for (var aM = 0; aM < aL; aM++) {\n var aW = aV.clippedDrawContextList[aM];var aN = aW.drawDataIndex;var aK = a6._$C2(aN);if (aK._$yo()) {\n var aX = aK.getTransformedPoints();var a4 = aX.length;var aI = [];var aH = [];var aO = 0;for (var a3 = aw._$i2; a3 < a4; a3 += aw._$No) {\n aI[aO] = aX[a3];aH[aO] = aX[a3 + 1];aO++;\n }var a2 = Math.min.apply(null, aI);var a1 = Math.min.apply(null, aH);var a0 = Math.max.apply(null, aI);var aZ = Math.max.apply(null, aH);if (a2 < aT) {\n aT = a2;\n }if (a1 < aR) {\n aR = a1;\n }if (a0 > aS) {\n aS = a0;\n }if (aZ > aP) {\n aP = aZ;\n }\n }\n }if (aT == aJ) {\n aV.allClippedDrawRect.x = 0;aV.allClippedDrawRect.y = 0;aV.allClippedDrawRect.width = 0;aV.allClippedDrawRect.height = 0;aV.isUsing = false;\n } else {\n var aQ = aS - aT;var aY = aP - aR;aV.allClippedDrawRect.x = aT;aV.allClippedDrawRect.y = aR;aV.allClippedDrawRect.width = aQ;aV.allClippedDrawRect.height = aY;aV.isUsing = true;\n }\n };W.prototype.setupLayoutBounds = function (aQ) {\n var aI = aQ / W.CHANNEL_COUNT;var aP = aQ % W.CHANNEL_COUNT;aI = ~~aI;aP = ~~aP;var aH = 0;for (var aJ = 0; aJ < W.CHANNEL_COUNT; aJ++) {\n var aM = aI + (aJ < aP ? 1 : 0);if (aM == 0) {} else {\n if (aM == 1) {\n var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = 0;aL.layoutBounds.y = 0;aL.layoutBounds.width = 1;aL.layoutBounds.height = 1;\n } else {\n if (aM == 2) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = 0;aN = ~~aN;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = 0;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 1;\n }\n } else {\n if (aM <= 4) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = aO / 2;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = aK * 0.5;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 0.5;\n }\n } else {\n if (aM <= 9) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 3;var aK = aO / 3;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN / 3;aL.layoutBounds.y = aK / 3;aL.layoutBounds.width = 1 / 3;aL.layoutBounds.height = 1 / 3;\n }\n } else {\n q._$li(\"_$6 _$0P mask count : %d\", aM);\n }\n }\n }\n }\n }\n }\n };function U(aH, aK, aI) {\n this.clipIDList = new Array();this.clipIDList = aI;this.clippingMaskDrawIndexList = new Array();for (var aJ = 0; aJ < aI.length; aJ++) {\n this.clippingMaskDrawIndexList.push(aK.getDrawDataIndex(aI[aJ]));\n }this.clippedDrawContextList = new Array();this.isUsing = true;this.layoutChannelNo = 0;this.layoutBounds = new av();this.allClippedDrawRect = new av();this.matrixForMask = new Float32Array(16);this.matrixForDraw = new Float32Array(16);this.owner = aH;\n }U.prototype.addClippedDrawData = function (aJ, aI) {\n var aH = new R(aJ, aI);this.clippedDrawContextList.push(aH);\n };function R(aI, aH) {\n this._$gP = aI;this.drawDataIndex = aH;\n }function I() {\n if (j) {\n return;\n }this.color = null;\n }function ah() {\n if (j) {\n return;\n }this._$dP = null;this._$eo = null;this._$V0 = null;this._$dP = 1000;this._$eo = 1000;this._$V0 = 1;this._$a0();\n }ah._$JT = function (aP, aN, aO) {\n var aQ = aP / aN;var a1 = aO / aN;var aU = a1;var aZ = 1 / 3;var aR = 2 / 3;var a0 = 1 - (1 - a1) * (1 - a1);var a2 = 1 - (1 - aU) * (1 - aU);var aM = 0;var aL = (1 - a1) * aZ * a0 + (aU * aR + (1 - aU) * aZ) * (1 - a0);var aK = (aU + (1 - aU) * aR) * a2 + (a1 * aZ + (1 - a1) * aR) * (1 - a2);var aJ = 1;var aY = aJ - 3 * aK + 3 * aL - aM;var aX = 3 * aK - 6 * aL + 3 * aM;var aW = 3 * aL - 3 * aM;var aV = aM;if (aQ <= 0) {\n return 0;\n } else {\n if (aQ >= 1) {\n return 1;\n }\n }var aS = aQ;var aI = aS * aS;var aH = aS * aI;var aT = aY * aH + aX * aI + aW * aS + aV;return aT;\n };ah.prototype._$a0 = function () {};ah.prototype.setFadeIn = function (aH) {\n this._$dP = aH;\n };ah.prototype.setFadeOut = function (aH) {\n this._$eo = aH;\n };ah.prototype._$pT = function (aH) {\n this._$V0 = aH;\n };ah.prototype.getFadeOut = function () {\n return this._$eo;\n };ah.prototype._$4T = function () {\n return this._$eo;\n };ah.prototype._$mT = function () {\n return this._$V0;\n };ah.prototype.getDurationMSec = function () {\n return -1;\n };ah.prototype.getLoopDurationMSec = function () {\n return -1;\n };ah.prototype.updateParam = function (aJ, aN) {\n if (!aN._$AT || aN._$9L) {\n return;\n }var aL = P.getUserTimeMSec();if (aN._$z2 < 0) {\n aN._$z2 = aL;aN._$bs = aL;var aM = this.getDurationMSec();if (aN._$Do < 0) {\n aN._$Do = aM <= 0 ? -1 : aN._$z2 + aM;\n }\n }var aI = this._$V0;var aH = this._$dP == 0 ? 1 : A._$r2((aL - aN._$bs) / this._$dP);var aK = this._$eo == 0 || aN._$Do < 0 ? 1 : A._$r2((aN._$Do - aL) / this._$eo);aI = aI * aH * aK;if (!(0 <= aI && aI <= 1)) {\n console.log(\"### assert!! ### \");\n }this.updateParamExe(aJ, aL, aI, aN);if (aN._$Do > 0 && aN._$Do < aL) {\n aN._$9L = true;\n }\n };ah.prototype.updateParamExe = function (aH, aI, aJ, aK) {};function q() {}q._$8s = 0;q._$fT = new Object();q.start = function (aI) {\n var aH = q._$fT[aI];if (aH == null) {\n aH = new af();aH._$r = aI;q._$fT[aI] = aH;\n }aH._$0S = P.getSystemTimeMSec();\n };q.dump = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();var aK = aI - aH._$0S;console.log(aJ + \" : \" + aK + \"ms\");return aK;\n } else {\n return -1;\n }\n };q.end = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();return aI - aH._$0S;\n } else {\n return -1;\n }\n };q._$li = function (aI, aH) {\n console.log(\"_$li : \" + aI + \"\\n\", aH);\n };q._$Ji = function (aI, aH) {\n console.log(aI, aH);\n };q._$dL = function (aI, aH) {\n console.log(aI, aH);console.log(\"\\n\");\n };q._$KL = function (aJ, aI) {\n for (var aH = 0; aH < aI; aH++) {\n if (aH % 16 == 0 && aH > 0) {\n console.log(\"\\n\");\n } else {\n if (aH % 8 == 0 && aH > 0) {\n console.log(\" \");\n }\n }console.log(\"%02X \", aJ[aH] & 255);\n }console.log(\"\\n\");\n };q._$nr = function (aL, aI, aK) {\n console.log(\"%s\\n\", aL);var aH = aI.length;for (var aJ = 0; aJ < aH; ++aJ) {\n console.log(\"%5d\", aI[aJ]);console.log(\"%s\\n\", aK);console.log(\",\");\n }console.log(\"\\n\");\n };q._$Rb = function (aH) {\n console.log(\"dump exception : \" + aH);console.log(\"stack :: \" + aH.stack);\n };function af() {\n this._$r = null;this._$0S = null;\n }function F() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }F.prototype._$8P = function () {\n return 0.5 * (this.x + this.x + this.width);\n };F.prototype._$6P = function () {\n return 0.5 * (this.y + this.y + this.height);\n };F.prototype._$EL = function () {\n return this.x + this.width;\n };F.prototype._$5T = function () {\n return this.y + this.height;\n };F.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };F.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };function i(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }i.prototype = new ak();i._$tP = new Object();i._$27 = function () {\n i._$tP.clear();\n };i.getID = function (aH) {\n var aI = i._$tP[aH];if (aI == null) {\n aI = new i(aH);i._$tP[aH] = aI;\n }return aI;\n };i.prototype._$3s = function () {\n return new i();\n };function S() {}function z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }z.prototype = new ak();z._$tP = new Object();z._$27 = function () {\n z._$tP.clear();\n };z.getID = function (aH) {\n var aI = z._$tP[aH];if (aI == null) {\n aI = new z(aH);z._$tP[aH] = aI;\n }return aI;\n };z.prototype._$3s = function () {\n return new z();\n };function w() {\n if (j) {\n return;\n }this._$vo = null;this._$F2 = null;this._$ao = 400;this._$1S = 400;w._$42++;\n }w._$42 = 0;w.prototype._$zP = function () {\n if (this._$vo == null) {\n this._$vo = new an();\n }if (this._$F2 == null) {\n this._$F2 = new Array();\n }\n };w.prototype.getCanvasWidth = function () {\n return this._$ao;\n };w.prototype.getCanvasHeight = function () {\n return this._$1S;\n };w.prototype._$F0 = function (aH) {\n this._$vo = aH._$nP();this._$F2 = aH._$nP();this._$ao = aH._$6L();this._$1S = aH._$6L();\n };w.prototype._$6S = function (aH) {\n this._$F2.push(aH);\n };w.prototype._$Xr = function () {\n return this._$F2;\n };w.prototype._$E2 = function () {\n return this._$vo;\n };function u() {\n if (j) {\n return;\n }this.p1 = new N();this.p2 = new N();this._$Fo = 0;this._$Db = 0;this._$L2 = 0;this._$M2 = 0;this._$ks = 0;this._$9b = 0;this._$iP = 0;this._$iT = 0;this._$lL = new Array();this._$qP = new Array();this.setup(0.3, 0.5, 0.1);\n }u.prototype.setup = function (aJ, aI, aH) {\n this._$ks = this._$Yb();this.p2._$xT();if (arguments.length == 3) {\n this._$Fo = aJ;this._$L2 = aI;this.p1._$p = aH;this.p2._$p = aH;this.p2.y = aJ;this.setup();\n }\n };u.prototype.getPhysicsPoint1 = function () {\n return this.p1;\n };u.prototype.getPhysicsPoint2 = function () {\n return this.p2;\n };u.prototype._$qr = function () {\n return this._$Db;\n };u.prototype._$pr = function (aH) {\n this._$Db = aH;\n };u.prototype._$5r = function () {\n return this._$M2;\n };u.prototype._$Cs = function () {\n return this._$9b;\n };u.prototype._$Yb = function () {\n return -180 * Math.atan2(this.p1.x - this.p2.x, -(this.p1.y - this.p2.y)) / Math.PI;\n };u.prototype.addSrcParam = function (aJ, aH, aL, aI) {\n var aK = new h(aJ, aH, aL, aI);this._$lL.push(aK);\n };u.prototype.addTargetParam = function (aJ, aH, aK, aI) {\n var aL = new aF(aJ, aH, aK, aI);this._$qP.push(aL);\n };u.prototype.update = function (aI, aL) {\n if (this._$iP == 0) {\n this._$iP = this._$iT = aL;this._$Fo = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));return;\n }var aK = (aL - this._$iT) / 1000;if (aK != 0) {\n for (var aJ = this._$lL.length - 1; aJ >= 0; --aJ) {\n var aM = this._$lL[aJ];aM._$oP(aI, this);\n }this._$oo(aI, aK);this._$M2 = this._$Yb();this._$9b = (this._$M2 - this._$ks) / aK;this._$ks = this._$M2;\n }for (var aJ = this._$qP.length - 1; aJ >= 0; --aJ) {\n var aH = this._$qP[aJ];aH._$YS(aI, this);\n }this._$iT = aL;\n };u.prototype._$oo = function (aN, aI) {\n if (aI < 0.033) {\n aI = 0.033;\n }var aU = 1 / aI;this.p1.vx = (this.p1.x - this.p1._$s0) * aU;this.p1.vy = (this.p1.y - this.p1._$70) * aU;this.p1.ax = (this.p1.vx - this.p1._$7L) * aU;this.p1.ay = (this.p1.vy - this.p1._$HL) * aU;this.p1.fx = this.p1.ax * this.p1._$p;this.p1.fy = this.p1.ay * this.p1._$p;this.p1._$xT();var aM = -Math.atan2(this.p1.y - this.p2.y, this.p1.x - this.p2.x);var aL;var aV;var aR = Math.cos(aM);var aH = Math.sin(aM);var aW = 9.8 * this.p2._$p;var aQ = this._$Db * aC._$bS;var aP = aW * Math.cos(aM - aQ);aL = aP * aH;aV = aP * aR;var aK = -this.p1.fx * aH * aH;var aT = -this.p1.fy * aH * aR;var aJ = -this.p2.vx * this._$L2;var aS = -this.p2.vy * this._$L2;this.p2.fx = aL + aK + aJ;this.p2.fy = aV + aT + aS;this.p2.ax = this.p2.fx / this.p2._$p;this.p2.ay = this.p2.fy / this.p2._$p;this.p2.vx += this.p2.ax * aI;this.p2.vy += this.p2.ay * aI;this.p2.x += this.p2.vx * aI;this.p2.y += this.p2.vy * aI;var aO = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));this.p2.x = this.p1.x + this._$Fo * (this.p2.x - this.p1.x) / aO;this.p2.y = this.p1.y + this._$Fo * (this.p2.y - this.p1.y) / aO;this.p2.vx = (this.p2.x - this.p2._$s0) * aU;this.p2.vy = (this.p2.y - this.p2._$70) * aU;this.p2._$xT();\n };function N() {\n this._$p = 1;this.x = 0;this.y = 0;this.vx = 0;this.vy = 0;this.ax = 0;this.ay = 0;this.fx = 0;this.fy = 0;this._$s0 = 0;this._$70 = 0;this._$7L = 0;this._$HL = 0;\n }N.prototype._$xT = function () {\n this._$s0 = this.x;this._$70 = this.y;this._$7L = this.vx;this._$HL = this.vy;\n };function at(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }at.prototype._$oP = function (aI, aH) {};function h(aJ, aK, aI, aH) {\n at.prototype.constructor.call(this, aK, aI, aH);this._$tL = null;this._$tL = aJ;\n }h.prototype = new at();h.prototype._$oP = function (aJ, aH) {\n var aK = this.scale * aJ.getParamFloat(this._$wL);var aL = aH.getPhysicsPoint1();switch (this._$tL) {default:case u.Src.SRC_TO_X:\n aL.x = aL.x + (aK - aL.x) * this._$V0;break;case u.Src.SRC_TO_Y:\n aL.y = aL.y + (aK - aL.y) * this._$V0;break;case u.Src.SRC_TO_G_ANGLE:\n var aI = aH._$qr();aI = aI + (aK - aI) * this._$V0;aH._$pr(aI);break;}\n };function d(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }d.prototype._$YS = function (aI, aH) {};function aF(aI, aK, aJ, aH) {\n d.prototype.constructor.call(this, aK, aJ, aH);this._$YP = null;this._$YP = aI;\n }aF.prototype = new d();aF.prototype._$YS = function (aI, aH) {\n switch (this._$YP) {default:case u.Target.TARGET_FROM_ANGLE:\n aI.setParamFloat(this._$wL, this.scale * aH._$5r(), this._$V0);break;case u.Target.TARGET_FROM_ANGLE_V:\n aI.setParamFloat(this._$wL, this.scale * aH._$Cs(), this._$V0);break;}\n };u.Src = function () {};u.Src.SRC_TO_X = \"SRC_TO_X\";u.Src.SRC_TO_Y = \"SRC_TO_Y\";u.Src.SRC_TO_G_ANGLE = \"SRC_TO_G_ANGLE\";u.Target = function () {};u.Target.TARGET_FROM_ANGLE = \"TARGET_FROM_ANGLE\";u.Target.TARGET_FROM_ANGLE_V = \"TARGET_FROM_ANGLE_V\";function X() {\n if (j) {\n return;\n }this._$fL = 0;this._$gL = 0;this._$B0 = 1;this._$z0 = 1;this._$qT = 0;this.reflectX = false;this.reflectY = false;\n }X.prototype.init = function (aH) {\n this._$fL = aH._$fL;this._$gL = aH._$gL;this._$B0 = aH._$B0;this._$z0 = aH._$z0;this._$qT = aH._$qT;this.reflectX = aH.reflectX;this.reflectY = aH.reflectY;\n };X.prototype._$F0 = function (aH) {\n this._$fL = aH._$_T();this._$gL = aH._$_T();this._$B0 = aH._$_T();this._$z0 = aH._$_T();this._$qT = aH._$_T();if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this.reflectX = aH._$po();this.reflectY = aH._$po();\n }\n };X.prototype._$e = function () {};var ad = function ad() {};ad._$ni = function (aL, aJ, aR, aQ, aK, aI, aH, aS, aN) {\n var aM = aH * aI - aS * aK;if (aM == 0) {\n return null;\n } else {\n var aO = ((aL - aR) * aI - (aJ - aQ) * aK) / aM;var aP;if (aK != 0) {\n aP = (aL - aR - aO * aH) / aK;\n } else {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n aP = (aL - aR - aO * aH) / aK;if (isNaN(aP)) {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n console.log(\"a is NaN @UtVector#_$ni() \");console.log(\"v1x : \" + aK);console.log(\"v1x != 0 ? \" + (aK != 0));\n }\n }if (aN == null) {\n return new Array(aP, aO);\n } else {\n aN[0] = aP;aN[1] = aO;return aN;\n }\n }\n };function av() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }av.prototype._$8P = function () {\n return this.x + 0.5 * this.width;\n };av.prototype._$6P = function () {\n return this.y + 0.5 * this.height;\n };av.prototype._$EL = function () {\n return this.x + this.width;\n };av.prototype._$5T = function () {\n return this.y + this.height;\n };av.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };av.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };av.prototype.contains = function (aH, aI) {\n return this.x <= this.x && this.y <= this.y && this.x <= this.x + this.width && this.y <= this.y + this.height;\n };av.prototype.expand = function (aH, aI) {\n this.x -= aH;this.y -= aI;this.width += aH * 2;this.height += aI * 2;\n };function aG() {}aG._$Z2 = function (bb, bo, bp, a2) {\n var a1 = bo._$Q2(bb, bp);var a3 = bb._$vs();var ba = bb._$Tr();bo._$zr(a3, ba, a1);if (a1 <= 0) {\n return a2[a3[0]];\n } else {\n if (a1 == 1) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a9 = ba[0];return bj + (bi - bj) * a9 | 0;\n } else {\n if (a1 == 2) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a0 = a2[a3[2]];var aZ = a2[a3[3]];var a9 = ba[0];var a8 = ba[1];var br = bj + (bi - bj) * a9 | 0;var bq = a0 + (aZ - a0) * a9 | 0;return br + (bq - br) * a8 | 0;\n } else {\n if (a1 == 3) {\n var aP = a2[a3[0]];var aO = a2[a3[1]];var bn = a2[a3[2]];var bm = a2[a3[3]];var aK = a2[a3[4]];var aJ = a2[a3[5]];var bg = a2[a3[6]];var bf = a2[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bj = aP + (aO - aP) * a9 | 0;var bi = bn + (bm - bn) * a9 | 0;var a0 = aK + (aJ - aK) * a9 | 0;var aZ = bg + (bf - bg) * a9 | 0;var br = bj + (bi - bj) * a8 | 0;var bq = a0 + (aZ - a0) * a8 | 0;return br + (bq - br) * a6 | 0;\n } else {\n if (a1 == 4) {\n var aT = a2[a3[0]];var aS = a2[a3[1]];var bu = a2[a3[2]];var bt = a2[a3[3]];var aN = a2[a3[4]];var aM = a2[a3[5]];var bl = a2[a3[6]];var bk = a2[a3[7]];var be = a2[a3[8]];var bc = a2[a3[9]];var aX = a2[a3[10]];var aW = a2[a3[11]];var a7 = a2[a3[12]];var a5 = a2[a3[13]];var aR = a2[a3[14]];var aQ = a2[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var aP = aT + (aS - aT) * a9 | 0;var aO = bu + (bt - bu) * a9 | 0;var bn = aN + (aM - aN) * a9 | 0;var bm = bl + (bk - bl) * a9 | 0;var aK = be + (bc - be) * a9 | 0;var aJ = aX + (aW - aX) * a9 | 0;var bg = a7 + (a5 - a7) * a9 | 0;var bf = aR + (aQ - aR) * a9 | 0;var bj = aP + (aO - aP) * a8 | 0;var bi = bn + (bm - bn) * a8 | 0;var a0 = aK + (aJ - aK) * a8 | 0;var aZ = bg + (bf - bg) * a8 | 0;var br = bj + (bi - bj) * a6 | 0;var bq = a0 + (aZ - a0) * a6 | 0;return br + (bq - br) * a4 | 0;\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aY[bh] = aH;\n }var bs = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bs[aU] = a2[a3[aU]];\n }var bd = 0;for (var aU = 0; aU < aV; aU++) {\n bd += aY[aU] * bs[aU];\n }return bd + 0.5 | 0;\n }\n }\n }\n }\n }\n };aG._$br = function (ba, bo, bp, bg) {\n var a1 = bo._$Q2(ba, bp);var a2 = ba._$vs();var a9 = ba._$Tr();bo._$zr(a2, a9, a1);if (a1 <= 0) {\n return bg[a2[0]];\n } else {\n if (a1 == 1) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a8 = a9[0];return bj + (bi - bj) * a8;\n } else {\n if (a1 == 2) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a0 = bg[a2[2]];var aZ = bg[a2[3]];var a8 = a9[0];var a7 = a9[1];return (1 - a7) * (bj + (bi - bj) * a8) + a7 * (a0 + (aZ - a0) * a8);\n } else {\n if (a1 == 3) {\n var aP = bg[a2[0]];var aO = bg[a2[1]];var bn = bg[a2[2]];var bm = bg[a2[3]];var aK = bg[a2[4]];var aJ = bg[a2[5]];var bf = bg[a2[6]];var be = bg[a2[7]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];return (1 - a5) * ((1 - a7) * (aP + (aO - aP) * a8) + a7 * (bn + (bm - bn) * a8)) + a5 * ((1 - a7) * (aK + (aJ - aK) * a8) + a7 * (bf + (be - bf) * a8));\n } else {\n if (a1 == 4) {\n var aT = bg[a2[0]];var aS = bg[a2[1]];var bs = bg[a2[2]];var br = bg[a2[3]];var aN = bg[a2[4]];var aM = bg[a2[5]];var bl = bg[a2[6]];var bk = bg[a2[7]];var bd = bg[a2[8]];var bb = bg[a2[9]];var aX = bg[a2[10]];var aW = bg[a2[11]];var a6 = bg[a2[12]];var a4 = bg[a2[13]];var aR = bg[a2[14]];var aQ = bg[a2[15]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];var a3 = a9[3];return (1 - a3) * ((1 - a5) * ((1 - a7) * (aT + (aS - aT) * a8) + a7 * (bs + (br - bs) * a8)) + a5 * ((1 - a7) * (aN + (aM - aN) * a8) + a7 * (bl + (bk - bl) * a8))) + a3 * ((1 - a5) * ((1 - a7) * (bd + (bb - bd) * a8) + a7 * (aX + (aW - aX) * a8)) + a5 * ((1 - a7) * (a6 + (a4 - a6) * a8) + a7 * (aR + (aQ - aR) * a8)));\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - a9[aL] : a9[aL];aI /= 2;\n }aY[bh] = aH;\n }var bq = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bq[aU] = bg[a2[aU]];\n }var bc = 0;for (var aU = 0; aU < aV; aU++) {\n bc += aY[aU] * bq[aU];\n }return bc;\n }\n }\n }\n }\n }\n };aG._$Vr = function (bV, bW, a5, aI, bC, a3, bX, bH) {\n var aN = bW._$Q2(bV, a5);var bw = bV._$vs();var a2 = bV._$Tr();bW._$zr(bw, a2, aN);var aJ = aI * 2;var aQ = bX;if (aN <= 0) {\n var bI = bw[0];var bq = bC[bI];if (bH == 2 && bX == 0) {\n P._$jT(bq, 0, a3, 0, aJ);\n } else {\n for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt++];a3[aQ + 1] = bq[bt++];aQ += bH;\n }\n }\n } else {\n if (aN == 1) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var b3 = a2[0];var bT = 1 - b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt] * bT + bp[bt] * b3;++bt;a3[aQ + 1] = bq[bt] * bT + bp[bt] * b3;++bt;aQ += bH;\n }\n } else {\n if (aN == 2) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var aZ = bC[bw[2]];var aY = bC[bw[3]];var b3 = a2[0];var b1 = a2[1];var bT = 1 - b3;var bP = 1 - b1;var b2 = bP * bT;var b0 = bP * b3;var bM = b1 * bT;var bL = b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;a3[aQ + 1] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 3) {\n var ba = bC[bw[0]];var a9 = bC[bw[1]];var aP = bC[bw[2]];var aO = bC[bw[3]];var a6 = bC[bw[4]];var a4 = bC[bw[5]];var aL = bC[bw[6]];var aK = bC[bw[7]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var b8 = bN * bP * bT;var b7 = bN * bP * b3;var bU = bN * b1 * bT;var bS = bN * b1 * b3;var b6 = bZ * bP * bT;var b5 = bZ * bP * b3;var bQ = bZ * b1 * bT;var bO = bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;a3[aQ + 1] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 4) {\n var bD = bC[bw[0]];var bB = bC[bw[1]];var bo = bC[bw[2]];var bm = bC[bw[3]];var by = bC[bw[4]];var bx = bC[bw[5]];var be = bC[bw[6]];var bd = bC[bw[7]];var bG = bC[bw[8]];var bE = bC[bw[9]];var bv = bC[bw[10]];var bu = bC[bw[11]];var bA = bC[bw[12]];var bz = bC[bw[13]];var bn = bC[bw[14]];var bl = bC[bw[15]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bY = a2[3];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var bK = 1 - bY;var bk = bK * bN * bP * bT;var bi = bK * bN * bP * b3;var aW = bK * bN * b1 * bT;var aV = bK * bN * b1 * b3;var bc = bK * bZ * bP * bT;var bb = bK * bZ * bP * b3;var aS = bK * bZ * b1 * bT;var aR = bK * bZ * b1 * b3;var bs = bY * bN * bP * bT;var br = bY * bN * bP * b3;var a1 = bY * bN * b1 * bT;var a0 = bY * bN * b1 * b3;var bh = bY * bZ * bP * bT;var bf = bY * bZ * bP * b3;var aU = bY * bZ * b1 * bT;var aT = bY * bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;a3[aQ + 1] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;aQ += bH;\n }\n } else {\n var b4 = 1 << aN;var bJ = new Float32Array(b4);for (var bj = 0; bj < b4; bj++) {\n var aH = bj;var aM = 1;for (var bF = 0; bF < aN; bF++) {\n aM *= aH % 2 == 0 ? 1 - a2[bF] : a2[bF];aH /= 2;\n }bJ[bj] = aM;\n }var bg = new Float32Array(b4);for (var aX = 0; aX < b4; aX++) {\n bg[aX] = bC[bw[aX]];\n }for (var bt = 0; bt < aJ;) {\n var a8 = 0,\n a7 = 0;var bR = bt + 1;for (var aX = 0; aX < b4; aX++) {\n a8 += bJ[aX] * bg[aX][bt];a7 += bJ[aX] * bg[aX][bR];\n }bt += 2;a3[aQ] = a8;a3[aQ + 1] = a7;aQ += bH;\n }\n }\n }\n }\n }\n }\n };function e() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }e.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };e.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };function ae() {\n if (j) {\n return;\n }this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;this.clipID = null;this.clipIDList = new Array();\n }ae._$ur = -2;ae._$ES = 500;ae._$wb = 2;ae._$8S = 3;ae._$52 = ae._$ES;ae._$R2 = ae._$ES;ae._$or = function () {\n return ae._$52;\n };ae._$Pr = function () {\n return ae._$R2;\n };ae.prototype.convertClipIDForV2_11 = function (aI) {\n var aH = [];if (aI == null) {\n return null;\n }if (aI.length == 0) {\n return null;\n }if (!/,/.test(aI)) {\n aH.push(aI.id);return aH;\n }aH = aI.id.split(\",\");return aH;\n };ae.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = [];\n }this._$MS(this._$Lb);\n };ae.prototype.getClipIDList = function () {\n return this.clipIDList;\n };ae.prototype.init = function (aH) {};ae.prototype._$Nr = function (aH, aI) {\n aI._$IS[0] = false;aI._$Us = aG._$Z2(aH, this._$GS, aI._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aI._$IS[0]) {\n return;\n }\n }aI._$7s = aG._$br(aH, this._$GS, aI._$IS, this._$mS);\n };ae.prototype._$2b = function (aH, aI) {};ae.prototype.getDrawDataID = function () {\n return this._$gP;\n };ae.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };ae.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };ae.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };ae.prototype._$MS = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < ae._$52) {\n ae._$52 = aH;\n } else {\n if (aH > ae._$R2) {\n ae._$R2 = aH;\n }\n }\n }\n };ae.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };ae.prototype._$gs = function (aH) {\n this._$dr = aH;\n };ae.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };ae.prototype.preDraw = function (aJ, aH, aI) {};ae.prototype.draw = function (aJ, aH, aI) {};ae.prototype.getType = function () {};ae.prototype._$B2 = function (aI, aH, aJ) {};function ax() {\n if (j) {\n return;\n }this._$Eb = ax._$ps;this._$lT = 1;this._$C0 = 1;this._$tT = 1;this._$WL = 1;this.culling = false;this.matrix4x4 = new Float32Array(16);this.premultipliedAlpha = false;this.anisotropy = 0;this.clippingProcess = ax.CLIPPING_PROCESS_NONE;this.clipBufPre_clipContextMask = null;this.clipBufPre_clipContextDraw = null;this.CHANNEL_COLORS = new Array();\n }ax._$ps = 32;ax.CLIPPING_PROCESS_NONE = 0;ax.CLIPPING_PROCESS_OVERWRITE_ALPHA = 1;ax.CLIPPING_PROCESS_MULTIPLY_ALPHA = 2;ax.CLIPPING_PROCESS_DRAW = 3;ax.CLIPPING_PROCESS_CLEAR_ALPHA = 4;ax.prototype.setChannelFlagAsColor = function (aH, aI) {\n this.CHANNEL_COLORS[aH] = aI;\n };ax.prototype.getChannelFlagAsColor = function (aH) {\n return this.CHANNEL_COLORS[aH];\n };ax.prototype._$ZT = function () {};ax.prototype._$Uo = function (aM, aK, aJ, aL, aN, aI, aH) {};ax.prototype._$Rs = function () {\n return -1;\n };ax.prototype._$Ds = function (aH) {};ax.prototype.setBaseColor = function (aK, aJ, aI, aH) {\n if (aK < 0) {\n aK = 0;\n } else {\n if (aK > 1) {\n aK = 1;\n }\n }if (aJ < 0) {\n aJ = 0;\n } else {\n if (aJ > 1) {\n aJ = 1;\n }\n }if (aI < 0) {\n aI = 0;\n } else {\n if (aI > 1) {\n aI = 1;\n }\n }if (aH < 0) {\n aH = 0;\n } else {\n if (aH > 1) {\n aH = 1;\n }\n }this._$lT = aK;this._$C0 = aJ;this._$tT = aI;this._$WL = aH;\n };ax.prototype._$WP = function (aH) {\n this.culling = aH;\n };ax.prototype.setMatrix = function (aH) {\n for (var aI = 0; aI < 16; aI++) {\n this.matrix4x4[aI] = aH[aI];\n }\n };ax.prototype._$IT = function () {\n return this.matrix4x4;\n };ax.prototype.setPremultipliedAlpha = function (aH) {\n this.premultipliedAlpha = aH;\n };ax.prototype.isPremultipliedAlpha = function () {\n return this.premultipliedAlpha;\n };ax.prototype.setAnisotropy = function (aH) {\n this.anisotropy = aH;\n };ax.prototype.getAnisotropy = function () {\n return this.anisotropy;\n };ax.prototype.getClippingProcess = function () {\n return this.clippingProcess;\n };ax.prototype.setClippingProcess = function (aH) {\n this.clippingProcess = aH;\n };ax.prototype.setClipBufPre_clipContextForMask = function (aH) {\n this.clipBufPre_clipContextMask = aH;\n };ax.prototype.getClipBufPre_clipContextMask = function () {\n return this.clipBufPre_clipContextMask;\n };ax.prototype.setClipBufPre_clipContextForDraw = function (aH) {\n this.clipBufPre_clipContextDraw = aH;\n };ax.prototype.getClipBufPre_clipContextDraw = function () {\n return this.clipBufPre_clipContextDraw;\n };function o() {\n if (j) {\n return;\n }this.a = 1;this.r = 1;this.g = 1;this.b = 1;this.scale = 1;this._$ho = 1;this.blendMode = Q.L2D_COLOR_BLEND_MODE_MULT;\n }function c() {\n if (j) {\n return;\n }this._$kP = null;this._$dr = null;this._$Ai = true;this._$mS = null;\n }c._$ur = -2;c._$c2 = 1;c._$_b = 2;c.prototype._$F0 = function (aH) {\n this._$kP = aH._$nP();this._$dr = aH._$nP();\n };c.prototype.readV2_opacity = function (aH) {\n if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this._$mS = aH._$Tb();\n }\n };c.prototype.init = function (aH) {};c.prototype._$Nr = function (aI, aH) {};c.prototype.interpolateOpacity = function (aJ, aK, aI, aH) {\n if (this._$mS == null) {\n aI.setInterpolatedOpacity(1);\n } else {\n aI.setInterpolatedOpacity(aG._$br(aJ, aK, aH, this._$mS));\n }\n };c.prototype._$2b = function (aI, aH) {};c.prototype._$nb = function (aL, aK, aM, aH, aI, aJ, aN) {};c.prototype.getType = function () {};c.prototype._$gs = function (aH) {\n this._$dr = aH;\n };c.prototype._$a2 = function (aH) {\n this._$kP = aH;\n };c.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };c.prototype.getBaseDataID = function () {\n return this._$kP;\n };c.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };function P() {}P._$W2 = 0;P._$CS = P._$W2;P._$Mo = function () {\n return true;\n };P._$XP = function (aI) {\n try {\n var aJ = getTimeMSec();while (getTimeMSec() - aJ < aI) {}\n } catch (aH) {\n aH._$Rb();\n }\n };P.getUserTimeMSec = function () {\n return P._$CS == P._$W2 ? P.getSystemTimeMSec() : P._$CS;\n };P.setUserTimeMSec = function (aH) {\n P._$CS = aH;\n };P.updateUserTimeMSec = function () {\n return P._$CS = P.getSystemTimeMSec();\n };P.getTimeMSec = function () {\n return new Date().getTime();\n };P.getSystemTimeMSec = function () {\n return new Date().getTime();\n };P._$Q = function (aH) {};P._$jT = function (aM, aJ, aI, aL, aH) {\n for (var aK = 0; aK < aH; aK++) {\n aI[aL + aK] = aM[aJ + aK];\n }\n };function aA() {\n if (j) {\n return;\n }this._$VP = 0;this._$wL = null;this._$GP = null;this._$8o = aA._$ds;this._$2r = -1;this._$O2 = 0;this._$ri = 0;\n }aA._$ds = -2;aA.prototype._$F0 = function (aH) {\n this._$wL = aH._$nP();this._$VP = aH._$6L();this._$GP = aH._$nP();\n };aA.prototype.getParamIndex = function (aH) {\n if (this._$2r != aH) {\n this._$8o = aA._$ds;\n }return this._$8o;\n };aA.prototype._$Pb = function (aI, aH) {\n this._$8o = aI;this._$2r = aH;\n };aA.prototype.getParamID = function () {\n return this._$wL;\n };aA.prototype._$yP = function (aH) {\n this._$wL = aH;\n };aA.prototype._$N2 = function () {\n return this._$VP;\n };aA.prototype._$d2 = function () {\n return this._$GP;\n };aA.prototype._$t2 = function (aI, aH) {\n this._$VP = aI;this._$GP = aH;\n };aA.prototype._$Lr = function () {\n return this._$O2;\n };aA.prototype._$wr = function (aH) {\n this._$O2 = aH;\n };aA.prototype._$SL = function () {\n return this._$ri;\n };aA.prototype._$AL = function (aH) {\n this._$ri = aH;\n };function G() {}G.startsWith = function (aJ, aL, aK) {\n var aH = aL + aK.length;if (aH >= aJ.length) {\n return false;\n }for (var aI = aL; aI < aH; aI++) {\n if (G.getChar(aJ, aI) != aK.charAt(aI - aL)) {\n return false;\n }\n }return true;\n };G.getChar = function (aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n };G.createString = function (aM, aL, aJ) {\n var aH = new ArrayBuffer(aJ * 2);var aK = new Uint16Array(aH);for (var aI = 0; aI < aJ; aI++) {\n aK[aI] = aM.getUint8(aL + aI);\n }return String.fromCharCode.apply(null, aK);\n };G._$LS = function (aP, aM, aR, aK) {\n if (aP instanceof ArrayBuffer) {\n aP = new DataView(aP);\n }var aL = aR;var aJ = false;var aQ = false;var aS = 0;var aO = G.getChar(aP, aL);if (aO == \"-\") {\n aJ = true;aL++;\n }var aN = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case \"0\":\n aS = aS * 10;break;case \"1\":\n aS = aS * 10 + 1;break;case \"2\":\n aS = aS * 10 + 2;break;case \"3\":\n aS = aS * 10 + 3;break;case \"4\":\n aS = aS * 10 + 4;break;case \"5\":\n aS = aS * 10 + 5;break;case \"6\":\n aS = aS * 10 + 6;break;case \"7\":\n aS = aS * 10 + 7;break;case \"8\":\n aS = aS * 10 + 8;break;case \"9\":\n aS = aS * 10 + 9;break;case \".\":\n aQ = true;aL++;aN = true;break;default:\n aN = true;break;}if (aN) {\n break;\n }\n }if (aQ) {\n var aI = 0.1;var aH = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case \"0\":\n break;case \"1\":\n aS += aI * 1;break;case \"2\":\n aS += aI * 2;break;case \"3\":\n aS += aI * 3;break;case \"4\":\n aS += aI * 4;break;case \"5\":\n aS += aI * 5;break;case \"6\":\n aS += aI * 6;break;case \"7\":\n aS += aI * 7;break;case \"8\":\n aS += aI * 8;break;case \"9\":\n aS += aI * 9;break;default:\n aH = true;break;}aI *= 0.1;if (aH) {\n break;\n }\n }\n }if (aJ) {\n aS = -aS;\n }aK[0] = aL;return aS;\n };function g() {\n if (j) {\n return;\n }this._$Ob = null;\n }g.prototype._$zP = function () {\n this._$Ob = new Array();\n };g.prototype._$F0 = function (aH) {\n this._$Ob = aH._$nP();\n };g.prototype._$Ur = function (aK) {\n if (aK._$WS()) {\n return true;\n }var aH = aK._$v2();for (var aJ = this._$Ob.length - 1; aJ >= 0; --aJ) {\n var aI = this._$Ob[aJ].getParamIndex(aH);if (aI == aA._$ds) {\n aI = aK.getParamIndex(this._$Ob[aJ].getParamID());\n }if (aK._$Xb(aI)) {\n return true;\n }\n }return false;\n };g.prototype._$Q2 = function (aL, aV) {\n var aX = this._$Ob.length;var aJ = aL._$v2();var aN = 0;var aI;var aQ;for (var aK = 0; aK < aX; aK++) {\n var aH = this._$Ob[aK];aI = aH.getParamIndex(aJ);if (aI == aA._$ds) {\n aI = aL.getParamIndex(aH.getParamID());aH._$Pb(aI, aJ);\n }if (aI < 0) {\n throw new Exception(\"err 23242 : \" + aH.getParamID());\n }var aU = aI < 0 ? 0 : aL.getParamFloat(aI);aQ = aH._$N2();var aM = aH._$d2();var aP = -1;var aT = 0;var aS;var aR;if (aQ < 1) {} else {\n if (aQ == 1) {\n aS = aM[0];if (aS - aw._$J < aU && aU < aS + aw._$J) {\n aP = 0;aT = 0;\n } else {\n aP = 0;aV[0] = true;\n }\n } else {\n aS = aM[0];if (aU < aS - aw._$J) {\n aP = 0;aV[0] = true;\n } else {\n if (aU < aS + aw._$J) {\n aP = 0;\n } else {\n var aW = false;for (var aO = 1; aO < aQ; ++aO) {\n aR = aM[aO];if (aU < aR + aw._$J) {\n if (aR - aw._$J < aU) {\n aP = aO;\n } else {\n aP = aO - 1;aT = (aU - aS) / (aR - aS);aN++;\n }aW = true;break;\n }aS = aR;\n }if (!aW) {\n aP = aQ - 1;aT = 0;aV[0] = true;\n }\n }\n }\n }\n }aH._$wr(aP);aH._$AL(aT);\n }return aN;\n };g.prototype._$zr = function (aN, aT, aP) {\n var aR = 1 << aP;if (aR + 1 > aw._$Qb) {\n console.log(\"err 23245\\n\");\n }var aS = this._$Ob.length;var aK = 1;var aH = 1;var aJ = 0;for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] = 0;\n }for (var aL = 0; aL < aS; ++aL) {\n var aI = this._$Ob[aL];if (aI._$SL() == 0) {\n var aO = aI._$Lr() * aK;if (aO < 0 && Q._$3T) {\n throw new Exception(\"err 23246\");\n }for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += aO;\n }\n } else {\n var aO = aK * aI._$Lr();var aM = aK * (aI._$Lr() + 1);for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += (aQ / aH | 0) % 2 == 0 ? aO : aM;\n }aT[aJ++] = aI._$SL();aH *= 2;\n }aK *= aI._$N2();\n }aN[aR] = 65535;aT[aJ] = -1;\n };g.prototype._$h2 = function (aJ, aH, aK) {\n var aM = new Float32Array(aH);for (var aL = 0; aL < aH; ++aL) {\n aM[aL] = aK[aL];\n }var aI = new aA();aI._$yP(aJ);aI._$t2(aH, aM);this._$Ob.push(aI);\n };g.prototype._$J2 = function (aO) {\n var aN = aO;var aM = this._$Ob.length;for (var aK = 0; aK < aM; ++aK) {\n var aI = this._$Ob[aK];var aH = aI._$N2();var aJ = aN % aI._$N2();var aL = aI._$d2()[aJ];console.log(\"%s[%d]=%7.2f / \", aI.getParamID(), aJ, aL);aN /= aH;\n }console.log(\"\\n\");\n };g.prototype.getParamCount = function () {\n return this._$Ob.length;\n };g.prototype._$zs = function () {\n return this._$Ob;\n };function ac() {\n this.m = new Float32Array(16);this.identity();\n }ac.prototype.identity = function () {\n for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aH % 5 == 0 ? 1 : 0;\n }\n };ac.prototype.getArray = function () {\n return this.m;\n };ac.prototype.getCopyMatrix = function () {\n return new Float32Array(this.m);\n };ac.prototype.setMatrix = function (aI) {\n if (aI == null || aI.length != 16) {\n return;\n }for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aI[aH];\n }\n };ac.prototype.mult = function (aH, aJ, aI) {\n if (aJ == null) {\n return null;\n }if (this == aJ) {\n this.mult_safe(this.m, aH.m, aJ.m, aI);\n } else {\n this.mult_fast(this.m, aH.m, aJ.m, aI);\n }return aJ;\n };ac.prototype.mult_safe = function (aI, aH, aM, aJ) {\n if (aI == aM) {\n var aL = new Array(16);this.mult_fast(aI, aH, aL, aJ);for (var aK = 15; aK >= 0; --aK) {\n aM[aK] = aL[aK];\n }\n } else {\n this.mult_fast(aI, aH, aM, aJ);\n }\n };ac.prototype.mult_fast = function (aI, aH, aK, aJ) {\n if (aJ) {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14];aK[3] = aK[7] = aK[11] = 0;aK[15] = 1;\n } else {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2] + aI[12] * aH[3];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6] + aI[12] * aH[7];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10] + aI[12] * aH[11];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12] * aH[15];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2] + aI[13] * aH[3];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6] + aI[13] * aH[7];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10] + aI[13] * aH[11];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13] * aH[15];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2] + aI[14] * aH[3];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6] + aI[14] * aH[7];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10] + aI[14] * aH[11];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14] * aH[15];aK[3] = aI[3] * aH[0] + aI[7] * aH[1] + aI[11] * aH[2] + aI[15] * aH[3];aK[7] = aI[3] * aH[4] + aI[7] * aH[5] + aI[11] * aH[6] + aI[15] * aH[7];aK[11] = aI[3] * aH[8] + aI[7] * aH[9] + aI[11] * aH[10] + aI[15] * aH[11];aK[15] = aI[3] * aH[12] + aI[7] * aH[13] + aI[11] * aH[14] + aI[15] * aH[15];\n }\n };ac.prototype.translate = function (aH, aJ, aI) {\n this.m[12] = this.m[0] * aH + this.m[4] * aJ + this.m[8] * aI + this.m[12];this.m[13] = this.m[1] * aH + this.m[5] * aJ + this.m[9] * aI + this.m[13];this.m[14] = this.m[2] * aH + this.m[6] * aJ + this.m[10] * aI + this.m[14];this.m[15] = this.m[3] * aH + this.m[7] * aJ + this.m[11] * aI + this.m[15];\n };ac.prototype.scale = function (aJ, aI, aH) {\n this.m[0] *= aJ;this.m[4] *= aI;this.m[8] *= aH;this.m[1] *= aJ;this.m[5] *= aI;this.m[9] *= aH;this.m[2] *= aJ;this.m[6] *= aI;this.m[10] *= aH;this.m[3] *= aJ;this.m[7] *= aI;this.m[11] *= aH;\n };ac.prototype.rotateX = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[4];this.m[4] = aI * aK + this.m[8] * aJ;this.m[8] = aI * -aJ + this.m[8] * aK;aI = this.m[5];this.m[5] = aI * aK + this.m[9] * aJ;this.m[9] = aI * -aJ + this.m[9] * aK;aI = this.m[6];this.m[6] = aI * aK + this.m[10] * aJ;this.m[10] = aI * -aJ + this.m[10] * aK;aI = this.m[7];this.m[7] = aI * aK + this.m[11] * aJ;this.m[11] = aI * -aJ + this.m[11] * aK;\n };ac.prototype.rotateY = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[8] * -aJ;this.m[8] = aI * aJ + this.m[8] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[9] * -aJ;this.m[9] = aI * aJ + this.m[9] * aK;aI = m[2];this.m[2] = aI * aK + this.m[10] * -aJ;this.m[10] = aI * aJ + this.m[10] * aK;aI = m[3];this.m[3] = aI * aK + this.m[11] * -aJ;this.m[11] = aI * aJ + this.m[11] * aK;\n };ac.prototype.rotateZ = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[4] * aJ;this.m[4] = aI * -aJ + this.m[4] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[5] * aJ;this.m[5] = aI * -aJ + this.m[5] * aK;aI = this.m[2];this.m[2] = aI * aK + this.m[6] * aJ;this.m[6] = aI * -aJ + this.m[6] * aK;aI = this.m[3];this.m[3] = aI * aK + this.m[7] * aJ;this.m[7] = aI * -aJ + this.m[7] * aK;\n };function Z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }Z.prototype = new ak();Z._$tP = new Object();Z._$27 = function () {\n Z._$tP.clear();\n };Z.getID = function (aH) {\n var aI = Z._$tP[aH];if (aI == null) {\n aI = new Z(aH);Z._$tP[aH] = aI;\n }return aI;\n };Z.prototype._$3s = function () {\n return new Z();\n };function aD() {\n if (j) {\n return;\n }this._$7 = 1;this._$f = 0;this._$H = 0;this._$g = 1;this._$k = 0;this._$w = 0;this._$hi = STATE_IDENTITY;this._$Z = _$pS;\n }aD._$kS = -1;aD._$pS = 0;aD._$hb = 1;aD.STATE_IDENTITY = 0;aD._$gb = 1;aD._$fo = 2;aD._$go = 4;aD.prototype.transform = function (aK, aI, aH) {\n var aT, aS, aR, aM, aL, aJ;var aQ = 0;var aN = 0;switch (this._$hi) {default:\n return;case aD._$go | aD._$fo | aD._$gb:\n aT = this._$7;aS = this._$H;aR = this._$k;aM = this._$f;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO + aR;aI[aN++] = aM * aP + aL * aO + aJ;\n }return;case aD._$go | aD._$fo:\n aT = this._$7;aS = this._$H;aM = this._$f;aL = this._$g;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO;aI[aN++] = aM * aP + aL * aO;\n }return;case aD._$go | aD._$gb:\n aS = this._$H;aR = this._$k;aM = this._$f;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++] + aR;aI[aN++] = aM * aP + aJ;\n }return;case aD._$go:\n aS = this._$H;aM = this._$f;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++];aI[aN++] = aM * aP;\n }return;case aD._$fo | aD._$gb:\n aT = this._$7;aR = this._$k;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++] + aR;aI[aN++] = aL * aK[aQ++] + aJ;\n }return;case aD._$fo:\n aT = this._$7;aL = this._$g;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++];aI[aN++] = aL * aK[aQ++];\n }return;case aD._$gb:\n aR = this._$k;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aK[aQ++] + aR;aI[aN++] = aK[aQ++] + aJ;\n }return;case aD.STATE_IDENTITY:\n if (aK != aI || aQ != aN) {\n P._$jT(aK, aQ, aI, aN, aH * 2);\n }return;}\n };aD.prototype.update = function () {\n if (this._$H == 0 && this._$f == 0) {\n if (this._$7 == 1 && this._$g == 1) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD.STATE_IDENTITY;this._$Z = aD._$pS;\n } else {\n this._$hi = aD._$gb;this._$Z = aD._$hb;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n } else {\n if (this._$7 == 0 && this._$g == 0) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$gb;this._$Z = aD._$kS;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go | aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n }\n };aD.prototype._$RT = function (aK) {\n this._$IT(aK);var aJ = aK[0];var aH = aK[2];var aN = aK[1];var aM = aK[3];var aI = Math.sqrt(aJ * aJ + aN * aN);var aL = aJ * aM - aH * aN;if (aI == 0) {\n if (Q._$so) {\n console.log(\"affine._$RT() / rt==0\");\n }\n } else {\n aK[0] = aI;aK[1] = aL / aI;aK[2] = (aN * aM + aJ * aH) / aL;aK[3] = Math.atan2(aN, aJ);\n }\n };aD.prototype._$ho = function (aN, aM, aI, aH) {\n var aL = new Float32Array(6);var aK = new Float32Array(6);aN._$RT(aL);aM._$RT(aK);var aJ = new Float32Array(6);aJ[0] = aL[0] + (aK[0] - aL[0]) * aI;aJ[1] = aL[1] + (aK[1] - aL[1]) * aI;aJ[2] = aL[2] + (aK[2] - aL[2]) * aI;aJ[3] = aL[3] + (aK[3] - aL[3]) * aI;aJ[4] = aL[4] + (aK[4] - aL[4]) * aI;aJ[5] = aL[5] + (aK[5] - aL[5]) * aI;aH._$CT(aJ);\n };aD.prototype._$CT = function (aJ) {\n var aI = Math.cos(aJ[3]);var aH = Math.sin(aJ[3]);this._$7 = aJ[0] * aI;this._$f = aJ[0] * aH;this._$H = aJ[1] * (aJ[2] * aI - aH);this._$g = aJ[1] * (aJ[2] * aH + aI);this._$k = aJ[4];this._$w = aJ[5];this.update();\n };aD.prototype._$IT = function (aH) {\n aH[0] = this._$7;aH[1] = this._$f;aH[2] = this._$H;aH[3] = this._$g;aH[4] = this._$k;aH[5] = this._$w;\n };function Y() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$7r = null;this._$7r = Y._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = true;this.loopFadeIn = true;this._$AS = -1;_$a0();\n }Y.prototype = new ah();Y._$cs = \"VISIBLE:\";Y._$ar = \"LAYOUT:\";Y._$Co = 0;Y._$D2 = [];Y._$1T = 1;Y.loadMotion = function (aR) {\n var aM = new Y();var aI = [0];var aP = aR.length;aM._$yT = 0;for (var aJ = 0; aJ < aP; ++aJ) {\n var aQ = aR[aJ] & 255;if (aQ == \"\\n\" || aQ == \"\\r\") {\n continue;\n }if (aQ == \"#\") {\n for (; aJ < aP; ++aJ) {\n if (aR[aJ] == \"\\n\" || aR[aJ] == \"\\r\") {\n break;\n }\n }continue;\n }if (aQ == \"$\") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \"=\") {\n aK = aJ;break;\n }\n }var aO = false;if (aK >= 0) {\n if (aK == aT + 4 && aR[aT + 1] == \"f\" && aR[aT + 2] == \"p\" && aR[aT + 3] == \"s\") {\n aO = true;\n }for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \",\" || aQ == \" \" || aQ == \"\\t\") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n if (aO && 5 < aL && aL < 121) {\n aM._$D0 = aL;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aP; ++aJ) {\n if (aR[aJ] == \"\\n\" || aR[aJ] == \"\\r\") {\n break;\n }\n }continue;\n }if (\"a\" <= aQ && aQ <= \"z\" || \"A\" <= aQ && aQ <= \"Z\" || aQ == \"_\") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \"=\") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aN = new t();if (G.startsWith(aR, aT, Y._$cs)) {\n aN._$RP = t._$hs;aN._$4P = new String(aR, aT, aK - aT);\n } else {\n if (G.startsWith(aR, aT, Y._$ar)) {\n aN._$4P = new String(aR, aT + 7, aK - aT - 7);if (G.startsWith(aR, aT + 7, \"ANCHOR_X\")) {\n aN._$RP = t._$xs;\n } else {\n if (G.startsWith(aR, aT + 7, \"ANCHOR_Y\")) {\n aN._$RP = t._$us;\n } else {\n if (G.startsWith(aR, aT + 7, \"SCALE_X\")) {\n aN._$RP = t._$qs;\n } else {\n if (G.startsWith(aR, aT + 7, \"SCALE_Y\")) {\n aN._$RP = t._$Ys;\n } else {\n if (G.startsWith(aR, aT + 7, \"X\")) {\n aN._$RP = t._$ws;\n } else {\n if (G.startsWith(aR, aT + 7, \"Y\")) {\n aN._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aN._$RP = t._$Fr;aN._$4P = new String(aR, aT, aK - aT);\n }\n }aM.motions.push(aN);var aS = 0;Y._$D2.clear();for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \",\" || aQ == \" \" || aQ == \"\\t\") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n Y._$D2.push(aL);aS++;var aH = aI[0];if (aH < aJ) {\n console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break;\n }aJ = aH;\n }\n }aN._$I0 = Y._$D2._$BL();if (aS > aM._$yT) {\n aM._$yT = aS;\n }\n }\n }\n }aM._$AS = 1000 * aM._$yT / aM._$D0 | 0;return aM;\n };Y.prototype.getDurationMSec = function () {\n return this._$AS;\n };Y.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log(\"_$wL[%s] [%d]. \", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log(\"%5.2f ,\", aH._$I0[aI]);\n }console.log(\"\\n\");\n }\n };Y.prototype.updateParamExe = function (aH, aL, aO, aX) {\n var aM = aL - aX._$z2;var aV = aM * this._$D0 / 1000;var aJ = aV | 0;var aP = aV - aJ;for (var aU = 0; aU < this.motions.length; aU++) {\n var aS = this.motions[aU];var aK = aS._$I0.length;var aQ = aS._$4P;if (aS._$RP == t._$hs) {\n var aT = aS._$I0[aJ >= aK ? aK - 1 : aJ];aH.setParamFloat(aQ, aT);\n } else {\n if (t._$ws <= aS._$RP && aS._$RP <= t._$Ys) {} else {\n var aR = aH.getParamFloat(aQ);var aY = aS._$I0[aJ >= aK ? aK - 1 : aJ];var aW = aS._$I0[aJ + 1 >= aK ? aK - 1 : aJ + 1];var aI = aY + (aW - aY) * aP;var aN = aR + (aI - aR) * aO;aH.setParamFloat(aQ, aN);\n }\n }\n }if (aJ >= this._$yT) {\n if (this._$E) {\n aX._$z2 = aL;if (this.loopFadeIn) {\n aX._$bs = aL;\n }\n } else {\n aX._$9L = true;\n }\n }\n };Y.prototype._$r0 = function () {\n return this._$E;\n };Y.prototype._$aL = function (aH) {\n this._$E = aH;\n };Y.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };Y.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function aw() {}aw._$Ms = 1;aw._$Qs = 2;aw._$i2 = 0;aw._$No = 2;aw._$do = aw._$Ms;aw._$Ls = true;aw._$1r = 5;aw._$Qb = 65;aw._$J = 0.0001;aw._$FT = 0.001;aw._$Ss = 3;function ay() {}ay._$o7 = 6;ay._$S7 = 7;ay._$s7 = 8;ay._$77 = 9;ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2 = 10;ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1 = 11;ay._$T7 = ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;ay._$Is = -2004318072;ay._$h0 = 0;ay._$4L = 23;ay._$7P = 33;ay._$uT = function (aH) {\n console.log(\"_$bo :: _$6 _$mo _$E0 : %d\\n\", aH);\n };ay._$9o = function (aH) {\n if (aH < 40) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 50) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 60) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 100) {\n switch (aH) {case 65:\n return new E();case 66:\n return new g();case 67:\n return new aA();case 68:\n return new ab();case 69:\n return new X();case 70:\n return new b();default:\n ay._$uT(aH);return null;}\n } else {\n if (aH < 150) {\n switch (aH) {case 131:\n return new f();case 133:\n return new s();case 136:\n return new w();case 137:\n return new an();case 142:\n return new aq();}\n }\n }\n }\n }\n }ay._$uT(aH);return null;\n };function y(aH) {\n if (j) {\n return;\n }this._$QT = true;this._$co = -1;this._$qo = 0;this._$pb = new Array(y._$is);this._$_2 = new Float32Array(y._$is);this._$vr = new Float32Array(y._$is);this._$Rr = new Float32Array(y._$is);this._$Or = new Float32Array(y._$is);this._$fs = new Float32Array(y._$is);this._$Js = new Array(y._$is);this._$3S = new Array();this._$aS = new Array();this._$Bo = null;this._$F2 = new Array();this._$db = new Array();this._$8b = new Array();this._$Hr = new Array();this._$Ws = null;this._$Vs = null;this._$Er = null;this._$Es = new Int16Array(aw._$Qb);this._$ZP = new Float32Array(aw._$1r * 2);this._$Ri = aH;this._$b0 = y._$HP++;this.clipManager = null;this.dp_webgl = null;\n }y._$HP = 0;y._$_0 = true;y._$V2 = -1;y._$W0 = -1;y._$jr = false;y._$ZS = true;y._$tr = -1000000;y._$lr = 1000000;y._$is = 32;y._$e = false;y.prototype.getDrawDataIndex = function (aI) {\n for (var aH = this._$aS.length - 1; aH >= 0; --aH) {\n if (this._$aS[aH] != null && this._$aS[aH].getDrawDataID() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype.getDrawData = function (aH) {\n if (aH instanceof Z) {\n if (this._$Bo == null) {\n this._$Bo = new Object();var aJ = this._$aS.length;for (var aI = 0; aI < aJ; aI++) {\n var aL = this._$aS[aI];var aK = aL.getDrawDataID();if (aK == null) {\n continue;\n }this._$Bo[aK] = aL;\n }\n }return this._$Bo[id];\n } else {\n if (aH < this._$aS.length) {\n return this._$aS[aH];\n } else {\n return null;\n }\n }\n };y.prototype.release = function () {\n this._$3S.clear();this._$aS.clear();this._$F2.clear();if (this._$Bo != null) {\n this._$Bo.clear();\n }this._$db.clear();this._$8b.clear();this._$Hr.clear();\n };y.prototype.init = function () {\n this._$co++;if (this._$F2.length > 0) {\n this.release();\n }var aO = this._$Ri.getModelImpl();var aT = aO._$Xr();var aS = aT.length;var aH = new Array();var a3 = new Array();for (var aV = 0; aV < aS; ++aV) {\n var a4 = aT[aV];this._$F2.push(a4);this._$Hr.push(a4.init(this));var aK = a4.getBaseData();var aR = aK.length;for (var aU = 0; aU < aR; ++aU) {\n aH.push(aK[aU]);\n }for (var aU = 0; aU < aR; ++aU) {\n var aM = aK[aU].init(this);aM._$l2(aV);a3.push(aM);\n }var a1 = a4.getDrawData();var aP = a1.length;for (var aU = 0; aU < aP; ++aU) {\n var aZ = a1[aU];var a0 = aZ.init(this);a0._$IP = aV;this._$aS.push(aZ);this._$8b.push(a0);\n }\n }var aY = aH.length;var aN = n._$2o();while (true) {\n var aX = false;for (var aV = 0; aV < aY; ++aV) {\n var aL = aH[aV];if (aL == null) {\n continue;\n }var a2 = aL.getTargetBaseDataID();if (a2 == null || a2 == aN || this.getBaseDataIndex(a2) >= 0) {\n this._$3S.push(aL);this._$db.push(a3[aV]);aH[aV] = null;aX = true;\n }\n }if (!aX) {\n break;\n }\n }var aI = aO._$E2();if (aI != null) {\n var aJ = aI._$1s();if (aJ != null) {\n var aW = aJ.length;for (var aV = 0; aV < aW; ++aV) {\n var aQ = aJ[aV];if (aQ == null) {\n continue;\n }this._$02(aQ.getParamID(), aQ.getDefaultValue(), aQ.getMinValue(), aQ.getMaxValue());\n }\n }\n }this.clipManager = new W(this.dp_webgl);this.clipManager.init(this, this._$aS, this._$8b);this._$QT = true;\n };y.prototype.update = function () {\n if (y._$e) {\n q.start(\"_$zL\");\n }var aK = this._$_2.length;for (var aW = 0; aW < aK; aW++) {\n if (this._$_2[aW] != this._$vr[aW]) {\n this._$Js[aW] = y._$ZS;this._$vr[aW] = this._$_2[aW];\n }\n }var aX = false;var aQ = this._$3S.length;var aN = this._$aS.length;var aS = a._$or();var aZ = a._$Pr();var aU = aZ - aS + 1;if (this._$Ws == null || this._$Ws.length < aU) {\n this._$Ws = new Int16Array(aU);this._$Vs = new Int16Array(aU);\n }for (var aW = 0; aW < aU; aW++) {\n this._$Ws[aW] = y._$V2;this._$Vs[aW] = y._$V2;\n }if (this._$Er == null || this._$Er.length < aN) {\n this._$Er = new Int16Array(aN);\n }for (var aW = 0; aW < aN; aW++) {\n this._$Er[aW] = y._$W0;\n }if (y._$e) {\n q.dump(\"_$zL\");\n }if (y._$e) {\n q.start(\"_$UL\");\n }var aL = null;for (var aV = 0; aV < aQ; ++aV) {\n var aJ = this._$3S[aV];var aH = this._$db[aV];try {\n aJ._$Nr(this, aH);aJ._$2b(this, aH);\n } catch (aY) {\n if (aL == null) {\n aL = aY;\n }\n }\n }if (aL != null) {\n if (y._$_0) {\n q._$Rb(aL);\n }\n }if (y._$e) {\n q.dump(\"_$UL\");\n }if (y._$e) {\n q.start(\"_$DL\");\n }var aR = null;for (var aO = 0; aO < aN; ++aO) {\n var aM = this._$aS[aO];var aI = this._$8b[aO];try {\n aM._$Nr(this, aI);if (aI._$u2()) {\n continue;\n }aM._$2b(this, aI);var aT = Math.floor(aM._$zS(this, aI) - aS);var aP;try {\n aP = this._$Vs[aT];\n } catch (aY) {\n console.log(\"_$li :: %s / %s \t\t\t\t@@_$fS\\n\", aY.toString(), aM.getDrawDataID().toString());aT = Math.floor(aM._$zS(this, aI) - aS);continue;\n }if (aP == y._$V2) {\n this._$Ws[aT] = aO;\n } else {\n this._$Er[aP] = aO;\n }this._$Vs[aT] = aO;\n } catch (aY) {\n if (aR == null) {\n aR = aY;Q._$sT(Q._$H7);\n }\n }\n }if (aR != null) {\n if (y._$_0) {\n q._$Rb(aR);\n }\n }if (y._$e) {\n q.dump(\"_$DL\");\n }if (y._$e) {\n q.start(\"_$eL\");\n }for (var aW = this._$Js.length - 1; aW >= 0; aW--) {\n this._$Js[aW] = y._$jr;\n }this._$QT = false;if (y._$e) {\n q.dump(\"_$eL\");\n }return aX;\n };y.prototype.preDraw = function (aH) {\n if (this.clipManager != null) {\n aH._$ZT();this.clipManager.setupClip(this, aH);\n }\n };y.prototype.draw = function (aM) {\n if (this._$Ws == null) {\n q._$li(\"call _$Ri.update() before _$Ri.draw() \");return;\n }var aP = this._$Ws.length;aM._$ZT();for (var aK = 0; aK < aP; ++aK) {\n var aN = this._$Ws[aK];if (aN == y._$V2) {\n continue;\n }do {\n var aH = this._$aS[aN];var aI = this._$8b[aN];if (aI._$yo()) {\n var aJ = aI._$IP;var aL = this._$Hr[aJ];aI._$VS = aL.getPartsOpacity();aH.draw(aM, this, aI);\n }var aO = this._$Er[aN];if (aO <= aN || aO == y._$W0) {\n break;\n }aN = aO;\n } while (true);\n }\n };y.prototype.getParamIndex = function (aH) {\n for (var aI = this._$pb.length - 1; aI >= 0; --aI) {\n if (this._$pb[aI] == aH) {\n return aI;\n }\n }return this._$02(aH, 0, y._$tr, y._$lr);\n };y.prototype._$BS = function (aH) {\n return this.getBaseDataIndex(aH);\n };y.prototype.getBaseDataIndex = function (aH) {\n for (var aI = this._$3S.length - 1; aI >= 0; --aI) {\n if (this._$3S[aI] != null && this._$3S[aI].getBaseDataID() == aH) {\n return aI;\n }\n }return -1;\n };y.prototype._$UT = function (aJ, aH) {\n var aI = new Float32Array(aH);P._$jT(aJ, 0, aI, 0, aJ.length);return aI;\n };y.prototype._$02 = function (aN, aM, aL, aH) {\n if (this._$qo >= this._$pb.length) {\n var aK = this._$pb.length;var aJ = new Array(aK * 2);P._$jT(this._$pb, 0, aJ, 0, aK);this._$pb = aJ;this._$_2 = this._$UT(this._$_2, aK * 2);this._$vr = this._$UT(this._$vr, aK * 2);this._$Rr = this._$UT(this._$Rr, aK * 2);this._$Or = this._$UT(this._$Or, aK * 2);var aI = new Array();P._$jT(this._$Js, 0, aI, 0, aK);this._$Js = aI;\n }this._$pb[this._$qo] = aN;this._$_2[this._$qo] = aM;this._$vr[this._$qo] = aM;this._$Rr[this._$qo] = aL;this._$Or[this._$qo] = aH;this._$Js[this._$qo] = y._$ZS;return this._$qo++;\n };y.prototype._$Zo = function (aI, aH) {\n this._$3S[aI] = aH;\n };y.prototype.setParamFloat = function (aH, aI) {\n if (aI < this._$Rr[aH]) {\n aI = this._$Rr[aH];\n }if (aI > this._$Or[aH]) {\n aI = this._$Or[aH];\n }this._$_2[aH] = aI;\n };y.prototype.loadParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n aH = this._$fs.length;\n }P._$jT(this._$fs, 0, this._$_2, 0, aH);\n };y.prototype.saveParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n this._$fs = new Float32Array(aH);\n }P._$jT(this._$_2, 0, this._$fs, 0, aH);\n };y.prototype._$v2 = function () {\n return this._$co;\n };y.prototype._$WS = function () {\n return this._$QT;\n };y.prototype._$Xb = function (aH) {\n return this._$Js[aH] == y._$ZS;\n };y.prototype._$vs = function () {\n return this._$Es;\n };y.prototype._$Tr = function () {\n return this._$ZP;\n };y.prototype.getBaseData = function (aH) {\n return this._$3S[aH];\n };y.prototype.getParamFloat = function (aH) {\n return this._$_2[aH];\n };y.prototype.getParamMax = function (aH) {\n return this._$Or[aH];\n };y.prototype.getParamMin = function (aH) {\n return this._$Rr[aH];\n };y.prototype.setPartsOpacity = function (aJ, aH) {\n var aI = this._$Hr[aJ];aI.setPartsOpacity(aH);\n };y.prototype.getPartsOpacity = function (aI) {\n var aH = this._$Hr[aI];return aH.getPartsOpacity();\n };y.prototype.getPartsDataIndex = function (aI) {\n for (var aH = this._$F2.length - 1; aH >= 0; --aH) {\n if (this._$F2[aH] != null && this._$F2[aH]._$p2() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype._$q2 = function (aH) {\n return this._$db[aH];\n };y.prototype._$C2 = function (aH) {\n return this._$8b[aH];\n };y.prototype._$Bb = function (aH) {\n return this._$Hr[aH];\n };y.prototype._$5s = function (aO, aK) {\n var aJ = this._$Ws.length;var aN = aO;for (var aL = 0; aL < aJ; ++aL) {\n var aI = this._$Ws[aL];if (aI == y._$V2) {\n continue;\n }do {\n var aM = this._$8b[aI];if (aM._$yo()) {\n aM._$GT()._$B2(this, aM, aN);aN += aK;\n }var aH = this._$Er[aI];if (aH <= aI || aH == y._$W0) {\n break;\n }aI = aH;\n } while (true);\n }\n };y.prototype.setDrawParam = function (aH) {\n this.dp_webgl = aH;\n };y.prototype.getDrawParam = function () {\n return this.dp_webgl;\n };function ap() {}ap._$0T = function (aH) {\n return ap._$0T(new _$5(aH));\n };ap._$0T = function (aJ) {\n if (!aJ.exists()) {\n throw new _$ls(aJ._$3b());\n }var aH = aJ.length();var aI = new Int8Array(aH);var aM = new _$Xs(new _$kb(aJ), 8192);var aK;var aL = 0;while ((aK = aM.read(aI, aL, aH - aL)) > 0) {\n aL += aK;\n }return aI;\n };ap._$C = function (aJ) {\n var aI = null;var aL = null;try {\n aI = aJ instanceof Array ? aJ : new _$Xs(aJ, 8192);aL = new _$js();var aM = 1000;var aK;var aH = new Int8Array(aM);while ((aK = aI.read(aH)) > 0) {\n aL.write(aH, 0, aK);\n }return aL._$TS();\n } finally {\n if (aJ != null) {\n aJ.close();\n }if (aL != null) {\n aL.flush();aL.close();\n }\n }\n };function ar() {\n if (j) {\n return;\n }this._$12 = null;this._$bb = null;this._$_L = null;this._$jo = null;this._$iL = null;this._$0L = null;this._$Br = null;this._$Dr = null;this._$Cb = null;this._$mr = null;this._$_L = az.STATE_FIRST;this._$Br = 4000;this._$Dr = 100;this._$Cb = 50;this._$mr = 150;this._$jo = true;this._$iL = \"PARAM_EYE_L_OPEN\";this._$0L = \"PARAM_EYE_R_OPEN\";\n }ar.prototype._$T2 = function () {\n var aI = P.getUserTimeMSec();var aH = Math._$10();return aI + aH * (2 * this._$Br - 1);\n };ar.prototype._$uo = function (aH) {\n this._$Br = aH;\n };ar.prototype._$QS = function (aI, aH, aJ) {\n this._$Dr = aI;this._$Cb = aH;this._$mr = aJ;\n };ar.prototype._$7T = function (aI) {\n var aK = P.getUserTimeMSec();var aH;var aJ = 0;switch (this._$_L) {case STATE_CLOSING:\n aJ = (aK - this._$bb) / this._$Dr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_CLOSED;this._$bb = aK;\n }aH = 1 - aJ;break;case STATE_CLOSED:\n aJ = (aK - this._$bb) / this._$Cb;if (aJ >= 1) {\n this._$_L = az.STATE_OPENING;this._$bb = aK;\n }aH = 0;break;case STATE_OPENING:\n aJ = (aK - this._$bb) / this._$mr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();\n }aH = aJ;break;case STATE_INTERVAL:\n if (this._$12 < aK) {\n this._$_L = az.STATE_CLOSING;this._$bb = aK;\n }aH = 1;break;case STATE_FIRST:default:\n this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();aH = 1;break;}if (!this._$jo) {\n aH = -aH;\n }aI.setParamFloat(this._$iL, aH);aI.setParamFloat(this._$0L, aH);\n };var az = function az() {};az.STATE_FIRST = \"STATE_FIRST\";az.STATE_INTERVAL = \"STATE_INTERVAL\";az.STATE_CLOSING = \"STATE_CLOSING\";az.STATE_CLOSED = \"STATE_CLOSED\";az.STATE_OPENING = \"STATE_OPENING\";function x() {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this._$sb = new Int32Array(x._$As);this._$U2 = new Array();this.transform = null;this.gl = null;if (x._$NT == null) {\n x._$NT = x._$9r(256);x._$vS = x._$9r(256);x._$no = x._$vb(256);\n }\n }x.prototype = new ax();x._$As = 32;x._$Gr = false;x._$NT = null;x._$vS = null;x._$no = null;x._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };x._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };x._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$Hs = function () {\n return x._$Gr;\n };x._$as = function (aH) {\n x._$Gr = aH;\n };x.prototype.setGL = function (aH) {\n this.gl = aH;\n };x.prototype.setTransform = function (aH) {\n this.transform = aH;\n };x.prototype._$ZT = function () {};x.prototype._$Uo = function (aO, aH, aP, aI, aQ, aM, aK, aJ) {\n if (aM < 0.01) {\n return;\n }var aL = this._$U2[aO];var aN = aM > 0.9 ? Q.EXPAND_W : 0;this.gl.drawElements(aL, aP, aI, aQ, aM, aN, this.transform, aJ);\n };x.prototype._$Rs = function () {\n throw new Error(\"_$Rs\");\n };x.prototype._$Ds = function (aH) {\n throw new Error(\"_$Ds\");\n };x.prototype._$K2 = function () {\n for (var aH = 0; aH < this._$sb.length; aH++) {\n var aI = this._$sb[aH];if (aI != 0) {\n this.gl._$Sr(1, this._$sb, aH);this._$sb[aH] = 0;\n }\n }\n };x.prototype.setTexture = function (aI, aH) {\n if (this._$sb.length < aI + 1) {\n this._$nS(aI);\n }this._$sb[aI] = aH;\n };x.prototype.setTexture = function (aH, aI) {\n if (this._$sb.length < aH + 1) {\n this._$nS(aH);\n }this._$U2[aH] = aI;\n };x.prototype._$nS = function (aH) {\n var aK = Math.max(this._$sb.length * 2, aH + 1 + 10);var aI = new Int32Array(aK);P._$jT(this._$sb, 0, aI, 0, this._$sb.length);this._$sb = aI;var aJ = new Array();P._$jT(this._$U2, 0, aJ, 0, this._$U2.length);this._$U2 = aJ;\n };function ab() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$GS = null;this._$Y0 = null;\n }ab.prototype = new c();ab._$Xo = new Float32Array(2);ab._$io = new Float32Array(2);ab._$0o = new Float32Array(2);ab._$Lo = new Float32Array(2);ab._$To = new Float32Array(2);ab._$Po = new Float32Array(2);ab._$gT = new Array();ab.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();this._$Y0 = new Array();\n };ab.prototype.getType = function () {\n return c._$c2;\n };ab.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$GS = aH._$nP();this._$Y0 = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };ab.prototype.init = function (aH) {\n var aI = new al(this);aI._$Yr = new X();if (this._$32()) {\n aI._$Wr = new X();\n }return aI;\n };ab.prototype._$Nr = function (bf, bx) {\n if (!(this == bx._$GT())) {\n console.log(\"### assert!! ### \");\n }var bm = bx;if (!this._$GS._$Ur(bf)) {\n return;\n }var bw = ab._$gT;bw[0] = false;var a2 = this._$GS._$Q2(bf, bw);bx._$Ib(bw[0]);this.interpolateOpacity(bf, this._$GS, bx, bw);var a3 = bf._$vs();var ba = bf._$Tr();this._$GS._$zr(a3, ba, a2);if (a2 <= 0) {\n var bn = this._$Y0[a3[0]];bm._$Yr.init(bn);\n } else {\n if (a2 == 1) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a9 = ba[0];bm._$Yr._$fL = bn._$fL + (bl._$fL - bn._$fL) * a9;bm._$Yr._$gL = bn._$gL + (bl._$gL - bn._$gL) * a9;bm._$Yr._$B0 = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bm._$Yr._$z0 = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bm._$Yr._$qT = bn._$qT + (bl._$qT - bn._$qT) * a9;\n } else {\n if (a2 == 2) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a1 = this._$Y0[a3[2]];var a0 = this._$Y0[a3[3]];var a9 = ba[0];var a8 = ba[1];var bC = bn._$fL + (bl._$fL - bn._$fL) * a9;var bB = a1._$fL + (a0._$fL - a1._$fL) * a9;bm._$Yr._$fL = bC + (bB - bC) * a8;bC = bn._$gL + (bl._$gL - bn._$gL) * a9;bB = a1._$gL + (a0._$gL - a1._$gL) * a9;bm._$Yr._$gL = bC + (bB - bC) * a8;bC = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bB = a1._$B0 + (a0._$B0 - a1._$B0) * a9;bm._$Yr._$B0 = bC + (bB - bC) * a8;bC = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bB = a1._$z0 + (a0._$z0 - a1._$z0) * a9;bm._$Yr._$z0 = bC + (bB - bC) * a8;bC = bn._$qT + (bl._$qT - bn._$qT) * a9;bB = a1._$qT + (a0._$qT - a1._$qT) * a9;bm._$Yr._$qT = bC + (bB - bC) * a8;\n } else {\n if (a2 == 3) {\n var aP = this._$Y0[a3[0]];var aO = this._$Y0[a3[1]];var bu = this._$Y0[a3[2]];var bs = this._$Y0[a3[3]];var aK = this._$Y0[a3[4]];var aJ = this._$Y0[a3[5]];var bj = this._$Y0[a3[6]];var bi = this._$Y0[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bC = aP._$fL + (aO._$fL - aP._$fL) * a9;var bB = bu._$fL + (bs._$fL - bu._$fL) * a9;var bz = aK._$fL + (aJ._$fL - aK._$fL) * a9;var by = bj._$fL + (bi._$fL - bj._$fL) * a9;bm._$Yr._$fL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$gL + (aO._$gL - aP._$gL) * a9;bB = bu._$gL + (bs._$gL - bu._$gL) * a9;bz = aK._$gL + (aJ._$gL - aK._$gL) * a9;by = bj._$gL + (bi._$gL - bj._$gL) * a9;bm._$Yr._$gL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$B0 + (aO._$B0 - aP._$B0) * a9;bB = bu._$B0 + (bs._$B0 - bu._$B0) * a9;bz = aK._$B0 + (aJ._$B0 - aK._$B0) * a9;by = bj._$B0 + (bi._$B0 - bj._$B0) * a9;bm._$Yr._$B0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$z0 + (aO._$z0 - aP._$z0) * a9;bB = bu._$z0 + (bs._$z0 - bu._$z0) * a9;bz = aK._$z0 + (aJ._$z0 - aK._$z0) * a9;by = bj._$z0 + (bi._$z0 - bj._$z0) * a9;bm._$Yr._$z0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$qT + (aO._$qT - aP._$qT) * a9;bB = bu._$qT + (bs._$qT - bu._$qT) * a9;bz = aK._$qT + (aJ._$qT - aK._$qT) * a9;by = bj._$qT + (bi._$qT - bj._$qT) * a9;bm._$Yr._$qT = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);\n } else {\n if (a2 == 4) {\n var aT = this._$Y0[a3[0]];var aS = this._$Y0[a3[1]];var bE = this._$Y0[a3[2]];var bD = this._$Y0[a3[3]];var aN = this._$Y0[a3[4]];var aM = this._$Y0[a3[5]];var bp = this._$Y0[a3[6]];var bo = this._$Y0[a3[7]];var bh = this._$Y0[a3[8]];var bg = this._$Y0[a3[9]];var aY = this._$Y0[a3[10]];var aW = this._$Y0[a3[11]];var a7 = this._$Y0[a3[12]];var a5 = this._$Y0[a3[13]];var aR = this._$Y0[a3[14]];var aQ = this._$Y0[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var bC = aT._$fL + (aS._$fL - aT._$fL) * a9;var bB = bE._$fL + (bD._$fL - bE._$fL) * a9;var bz = aN._$fL + (aM._$fL - aN._$fL) * a9;var by = bp._$fL + (bo._$fL - bp._$fL) * a9;var bv = bh._$fL + (bg._$fL - bh._$fL) * a9;var bt = aY._$fL + (aW._$fL - aY._$fL) * a9;var br = a7._$fL + (a5._$fL - a7._$fL) * a9;var bq = aR._$fL + (aQ._$fL - aR._$fL) * a9;bm._$Yr._$fL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$gL + (aS._$gL - aT._$gL) * a9;bB = bE._$gL + (bD._$gL - bE._$gL) * a9;bz = aN._$gL + (aM._$gL - aN._$gL) * a9;by = bp._$gL + (bo._$gL - bp._$gL) * a9;bv = bh._$gL + (bg._$gL - bh._$gL) * a9;bt = aY._$gL + (aW._$gL - aY._$gL) * a9;br = a7._$gL + (a5._$gL - a7._$gL) * a9;bq = aR._$gL + (aQ._$gL - aR._$gL) * a9;bm._$Yr._$gL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$B0 + (aS._$B0 - aT._$B0) * a9;bB = bE._$B0 + (bD._$B0 - bE._$B0) * a9;bz = aN._$B0 + (aM._$B0 - aN._$B0) * a9;by = bp._$B0 + (bo._$B0 - bp._$B0) * a9;bv = bh._$B0 + (bg._$B0 - bh._$B0) * a9;bt = aY._$B0 + (aW._$B0 - aY._$B0) * a9;br = a7._$B0 + (a5._$B0 - a7._$B0) * a9;bq = aR._$B0 + (aQ._$B0 - aR._$B0) * a9;bm._$Yr._$B0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$z0 + (aS._$z0 - aT._$z0) * a9;bB = bE._$z0 + (bD._$z0 - bE._$z0) * a9;bz = aN._$z0 + (aM._$z0 - aN._$z0) * a9;by = bp._$z0 + (bo._$z0 - bp._$z0) * a9;bv = bh._$z0 + (bg._$z0 - bh._$z0) * a9;bt = aY._$z0 + (aW._$z0 - aY._$z0) * a9;br = a7._$z0 + (a5._$z0 - a7._$z0) * a9;bq = aR._$z0 + (aQ._$z0 - aR._$z0) * a9;bm._$Yr._$z0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$qT + (aS._$qT - aT._$qT) * a9;bB = bE._$qT + (bD._$qT - bE._$qT) * a9;bz = aN._$qT + (aM._$qT - aN._$qT) * a9;by = bp._$qT + (bo._$qT - bp._$qT) * a9;bv = bh._$qT + (bg._$qT - bh._$qT) * a9;bt = aY._$qT + (aW._$qT - aY._$qT) * a9;br = a7._$qT + (a5._$qT - a7._$qT) * a9;bq = aR._$qT + (aQ._$qT - aR._$qT) * a9;bm._$Yr._$qT = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));\n } else {\n var aV = Math.pow(2, a2) | 0;var aZ = new Float32Array(aV);for (var bk = 0; bk < aV; bk++) {\n var aI = bk;var aH = 1;for (var aL = 0; aL < a2; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aZ[bk] = aH;\n }var bA = new Array();for (var aU = 0; aU < aV; aU++) {\n bA[aU] = this._$Y0[a3[aU]];\n }var be = 0,\n bc = 0,\n bd = 0,\n bb = 0,\n aX = 0;for (var aU = 0; aU < aV; aU++) {\n be += aZ[aU] * bA[aU]._$fL;bc += aZ[aU] * bA[aU]._$gL;bd += aZ[aU] * bA[aU]._$B0;bb += aZ[aU] * bA[aU]._$z0;aX += aZ[aU] * bA[aU]._$qT;\n }bm._$Yr._$fL = be;bm._$Yr._$gL = bc;bm._$Yr._$B0 = bd;bm._$Yr._$z0 = bb;bm._$Yr._$qT = aX;\n }\n }\n }\n }\n }var bn = this._$Y0[a3[0]];bm._$Yr.reflectX = bn.reflectX;bm._$Yr.reflectY = bn.reflectY;\n };ab.prototype._$2b = function (aM, aH) {\n if (!(this == aH._$GT())) {\n console.log(\"### assert!! ### \");\n }var aR = aH;aR._$hS(true);if (!this._$32()) {\n aR.setTotalScale_notForClient(aR._$Yr._$B0);aR.setTotalOpacity(aR.getInterpolatedOpacity());\n } else {\n var aT = this.getTargetBaseDataID();if (aR._$8r == c._$ur) {\n aR._$8r = aM.getBaseDataIndex(aT);\n }if (aR._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aT);\n }aR._$hS(false);\n } else {\n var aI = aM.getBaseData(aR._$8r);if (aI != null) {\n var aL = aM._$q2(aR._$8r);var aS = ab._$Xo;aS[0] = aR._$Yr._$fL;aS[1] = aR._$Yr._$gL;var aJ = ab._$io;aJ[0] = 0;aJ[1] = -0.1;var aO = aL._$GT().getType();if (aO == c._$c2) {\n aJ[1] = -10;\n } else {\n aJ[1] = -0.1;\n }var aQ = ab._$0o;this._$Jr(aM, aI, aL, aS, aJ, aQ);var aP = aC._$92(aJ, aQ);aI._$nb(aM, aL, aS, aS, 1, 0, 2);aR._$Wr._$fL = aS[0];aR._$Wr._$gL = aS[1];aR._$Wr._$B0 = aR._$Yr._$B0;aR._$Wr._$z0 = aR._$Yr._$z0;aR._$Wr._$qT = aR._$Yr._$qT - aP * aC._$NS;var aK = aL.getTotalScale();aR.setTotalScale_notForClient(aK * aR._$Wr._$B0);var aN = aL.getTotalOpacity();aR.setTotalOpacity(aN * aR.getInterpolatedOpacity());aR._$Wr.reflectX = aR._$Yr.reflectX;aR._$Wr.reflectY = aR._$Yr.reflectY;aR._$hS(aL._$yo());\n } else {\n aR._$hS(false);\n }\n }\n }\n };ab.prototype._$nb = function (aJ, aR, aL, a4, aT, aO, a2) {\n if (!(this == aR._$GT())) {\n console.log(\"### assert!! ### \");\n }var aH = aR;var aU = aH._$Wr != null ? aH._$Wr : aH._$Yr;var a0 = Math.sin(aC._$bS * aU._$qT);var aP = Math.cos(aC._$bS * aU._$qT);var a3 = aH.getTotalScale();var aW = aU.reflectX ? -1 : 1;var aV = aU.reflectY ? -1 : 1;var aS = aP * a3 * aW;var aQ = -a0 * a3 * aV;var a1 = a0 * a3 * aW;var aZ = aP * a3 * aV;var aY = aU._$fL;var aX = aU._$gL;var aN, aM;var aI = aT * a2;for (var aK = aO; aK < aI; aK += a2) {\n aN = aL[aK];aM = aL[aK + 1];a4[aK] = aS * aN + aQ * aM + aY;a4[aK + 1] = a1 * aN + aZ * aM + aX;\n }\n };ab.prototype._$Jr = function (aP, aK, aI, aR, aQ, aH) {\n if (!(aK == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }var aO = ab._$Lo;ab._$Lo[0] = aR[0];ab._$Lo[1] = aR[1];aK._$nb(aP, aI, aO, aO, 1, 0, 2);var aL = ab._$To;var aS = ab._$Po;var aN = 10;var aJ = 1;for (var aM = 0; aM < aN; aM++) {\n aS[0] = aR[0] + aJ * aQ[0];aS[1] = aR[1] + aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aH[0] = aL[0];aH[1] = aL[1];return;\n }aS[0] = aR[0] - aJ * aQ[0];aS[1] = aR[1] - aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aL[0] = -aL[0];aL[0] = -aL[0];aH[0] = aL[0];aH[1] = aL[1];return;\n }aJ *= 0.1;\n }if (Q._$so) {\n console.log(\"_$L0 to transform _$SP\\n\");\n }\n };function al(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Yr = null;this._$Wr = null;\n }al.prototype = new B();function a() {\n if (j) {\n return;\n }ae.prototype.constructor.call(this);this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;\n }a.prototype = new ae();a._$ur = -2;a._$ES = 500;a._$wb = 2;a._$8S = 3;a._$os = 4;a._$52 = a._$ES;a._$R2 = a._$ES;a._$Sb = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < a._$52) {\n a._$52 = aH;\n } else {\n if (aH > a._$R2) {\n a._$R2 = aH;\n }\n }\n }\n };a._$or = function () {\n return a._$52;\n };a._$Pr = function () {\n return a._$R2;\n };a.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = null;\n }a._$Sb(this._$Lb);\n };a.prototype.getClipIDList = function () {\n return this.clipIDList;\n };a.prototype._$Nr = function (aI, aH) {\n aH._$IS[0] = false;aH._$Us = aG._$Z2(aI, this._$GS, aH._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aH._$IS[0]) {\n return;\n }\n }aH._$7s = aG._$br(aI, this._$GS, aH._$IS, this._$mS);\n };a.prototype._$2b = function (aH) {};a.prototype.getDrawDataID = function () {\n return this._$gP;\n };a.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };a.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };a.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };a.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };a.prototype._$gs = function (aH) {\n this._$dr = aH;\n };a.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };a.prototype.getType = function () {};function aq() {\n if (j) {\n return;\n }this._$NL = null;this._$3S = null;this._$aS = null;aq._$42++;\n }aq._$42 = 0;aq.prototype._$1b = function () {\n return this._$3S;\n };aq.prototype.getDrawDataList = function () {\n return this._$aS;\n };aq.prototype._$F0 = function (aH) {\n this._$NL = aH._$nP();this._$aS = aH._$nP();this._$3S = aH._$nP();\n };aq.prototype._$kr = function (aH) {\n aH._$Zo(this._$3S);aH._$xo(this._$aS);this._$3S = null;this._$aS = null;\n };function v() {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this._$zo = new x();\n }v.prototype = new aa();v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v._$to = function () {\n var aH = new v();return aH;\n };v._$er = function (aM) {\n var aJ = new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if (aJ.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aJ._$PL());\n }var aH = [\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK = v.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };v.prototype.setGL = function (aH) {\n this._$zo.setGL(aH);\n };v.prototype.setTransform = function (aH) {\n this._$zo.setTransform(aH);\n };v.prototype.draw = function () {\n this._$5S.draw(this._$zo);\n };v.prototype._$K2 = function () {\n this._$zo._$K2();\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this._$zo.setTexture(aI, aH);\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this._$zo.setTexture(aI, aH);\n };v.prototype._$Rs = function () {\n return this._$zo._$Rs();\n };v.prototype._$Ds = function (aH) {\n this._$zo._$Ds(aH);\n };v.prototype.getDrawParam = function () {\n return this._$zo;\n };function ao() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$o2 = null;this._$7r = ao._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = false;this.loopFadeIn = true;this._$rr = -1;this._$eP = 0;\n }ao.prototype = new ah();ao._$cs = \"VISIBLE:\";ao._$ar = \"LAYOUT:\";ao.MTN_PREFIX_FADEIN = \"FADEIN:\";ao.MTN_PREFIX_FADEOUT = \"FADEOUT:\";ao._$Co = 0;ao._$1T = 1;ao.loadMotion = function (aJ) {\n var aI = ap._$C(aJ);var aH = ao.loadMotion(aI);return aH;\n };function p(aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n }ao.loadMotion = function (aT) {\n if (aT instanceof ArrayBuffer) {\n aT = new DataView(aT);\n }var aN = new ao();var aI = [0];var aQ = aT.byteLength;aN._$yT = 0;for (var aJ = 0; aJ < aQ; ++aJ) {\n var aS = p(aT, aJ);var aL = aS.charCodeAt(0);if (aS == \"\\n\" || aS == \"\\r\") {\n continue;\n }if (aS == \"#\") {\n for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == \"\\n\" || p(aT, aJ) == \"\\r\") {\n break;\n }\n }continue;\n }if (aS == \"$\") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \"=\") {\n aK = aJ;break;\n }\n }var aP = false;if (aK >= 0) {\n if (aK == aV + 4 && p(aT, aV + 1) == \"f\" && p(aT, aV + 2) == \"p\" && p(aT, aV + 3) == \"s\") {\n aP = true;\n }for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \",\" || aS == \" \" || aS == \"\\t\") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n if (aP && 5 < aM && aM < 121) {\n aN._$D0 = aM;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == \"\\n\" || p(aT, aJ) == \"\\r\") {\n break;\n }\n }continue;\n }if (97 <= aL && aL <= 122 || 65 <= aL && aL <= 90 || aS == \"_\") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \"=\") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aO = new t();if (G.startsWith(aT, aV, ao._$cs)) {\n aO._$RP = t._$hs;aO._$4P = G.createString(aT, aV, aK - aV);\n } else {\n if (G.startsWith(aT, aV, ao._$ar)) {\n aO._$4P = G.createString(aT, aV + 7, aK - aV - 7);if (G.startsWith(aT, aV + 7, \"ANCHOR_X\")) {\n aO._$RP = t._$xs;\n } else {\n if (G.startsWith(aT, aV + 7, \"ANCHOR_Y\")) {\n aO._$RP = t._$us;\n } else {\n if (G.startsWith(aT, aV + 7, \"SCALE_X\")) {\n aO._$RP = t._$qs;\n } else {\n if (G.startsWith(aT, aV + 7, \"SCALE_Y\")) {\n aO._$RP = t._$Ys;\n } else {\n if (G.startsWith(aT, aV + 7, \"X\")) {\n aO._$RP = t._$ws;\n } else {\n if (G.startsWith(aT, aV + 7, \"Y\")) {\n aO._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aO._$RP = t._$Fr;aO._$4P = G.createString(aT, aV, aK - aV);\n }\n }aN.motions.push(aO);var aU = 0;var aR = [];for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \",\" || aS == \" \" || aS == \"\\t\") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n aR.push(aM);aU++;var aH = aI[0];if (aH < aJ) {\n console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break;\n }aJ = aH - 1;\n }\n }aO._$I0 = new Float32Array(aR);if (aU > aN._$yT) {\n aN._$yT = aU;\n }\n }\n }\n }aN._$rr = 1000 * aN._$yT / aN._$D0 | 0;return aN;\n };ao.prototype.getDurationMSec = function () {\n return this._$E ? -1 : this._$rr;\n };ao.prototype.getLoopDurationMSec = function () {\n return this._$rr;\n };ao.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log(\"_$wL[%s] [%d]. \", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log(\"%5.2f ,\", aH._$I0[aI]);\n }console.log(\"\\n\");\n }\n };ao.prototype.updateParamExe = function (aJ, aN, aQ, a3) {\n var aO = aN - a3._$z2;var a0 = aO * this._$D0 / 1000;var aK = a0 | 0;var aR = a0 - aK;for (var aZ = 0; aZ < this.motions.length; aZ++) {\n var aV = this.motions[aZ];var aL = aV._$I0.length;var aT = aV._$4P;if (aV._$RP == t._$hs) {\n var aX = aV._$I0[aK >= aL ? aL - 1 : aK];aJ.setParamFloat(aT, aX);\n } else {\n if (t._$ws <= aV._$RP && aV._$RP <= t._$Ys) {} else {\n var aH = aJ.getParamIndex(aT);var a4 = aJ.getModelContext();var aY = a4.getParamMax(aH);var aW = a4.getParamMin(aH);var aM = 0.4;var aS = aM * (aY - aW);var aU = a4.getParamFloat(aH);var a2 = aV._$I0[aK >= aL ? aL - 1 : aK];var a1 = aV._$I0[aK + 1 >= aL ? aL - 1 : aK + 1];var aI;if (a2 < a1 && a1 - a2 > aS || a2 > a1 && a2 - a1 > aS) {\n aI = a2;\n } else {\n aI = a2 + (a1 - a2) * aR;\n }var aP = aU + (aI - aU) * aQ;aJ.setParamFloat(aT, aP);\n }\n }\n }if (aK >= this._$yT) {\n if (this._$E) {\n a3._$z2 = aN;if (this.loopFadeIn) {\n a3._$bs = aN;\n }\n } else {\n a3._$9L = true;\n }\n }this._$eP = aQ;\n };ao.prototype._$r0 = function () {\n return this._$E;\n };ao.prototype._$aL = function (aH) {\n this._$E = aH;\n };ao.prototype._$S0 = function () {\n return this._$D0;\n };ao.prototype._$U0 = function (aH) {\n this._$D0 = aH;\n };ao.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };ao.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function E() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$o = 0;this._$A = 0;this._$GS = null;this._$Eo = null;\n }E.prototype = new c();E._$gT = new Array();E.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };E.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$A = aH._$6L();this._$o = aH._$6L();this._$GS = aH._$nP();this._$Eo = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };E.prototype.init = function (aH) {\n var aI = new H(this);var aJ = (this._$o + 1) * (this._$A + 1);if (aI._$Cr != null) {\n aI._$Cr = null;\n }aI._$Cr = new Float32Array(aJ * 2);if (aI._$hr != null) {\n aI._$hr = null;\n }if (this._$32()) {\n aI._$hr = new Float32Array(aJ * 2);\n } else {\n aI._$hr = null;\n }return aI;\n };E.prototype._$Nr = function (aJ, aI) {\n var aK = aI;if (!this._$GS._$Ur(aJ)) {\n return;\n }var aL = this._$VT();var aH = E._$gT;aH[0] = false;aG._$Vr(aJ, this._$GS, aH, aL, this._$Eo, aK._$Cr, 0, 2);aI._$Ib(aH[0]);this.interpolateOpacity(aJ, this._$GS, aI, aH);\n };E.prototype._$2b = function (aK, aJ) {\n var aL = aJ;aL._$hS(true);if (!this._$32()) {\n aL.setTotalOpacity(aL.getInterpolatedOpacity());\n } else {\n var aH = this.getTargetBaseDataID();if (aL._$8r == c._$ur) {\n aL._$8r = aK.getBaseDataIndex(aH);\n }if (aL._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aH);\n }aL._$hS(false);\n } else {\n var aN = aK.getBaseData(aL._$8r);var aI = aK._$q2(aL._$8r);if (aN != null && aI._$yo()) {\n var aM = aI.getTotalScale();aL.setTotalScale_notForClient(aM);var aO = aI.getTotalOpacity();aL.setTotalOpacity(aO * aL.getInterpolatedOpacity());aN._$nb(aK, aI, aL._$Cr, aL._$hr, this._$VT(), 0, 2);aL._$hS(true);\n } else {\n aL._$hS(false);\n }\n }\n }\n };E.prototype._$nb = function (aL, aI, aH, aM, aO, aK, aJ) {\n if (true) {\n var aN = aI;var aP = aN._$hr != null ? aN._$hr : aN._$Cr;E.transformPoints_sdk2(aH, aM, aO, aK, aJ, aP, this._$o, this._$A);\n } else {\n this.transformPoints_sdk1(aL, aI, aH, aM, aO, aK, aJ);\n }\n };E.transformPoints_sdk2 = function (a0, bc, a5, aP, aI, aR, aQ, aU) {\n var aW = a5 * aI;var aV;var bn, bm;var aT = 0;var aS = 0;var bl = 0;var bk = 0;var bf = 0;var be = 0;var aZ = false;for (var ba = aP; ba < aW; ba += aI) {\n var bd, a7, a4, aX;a4 = a0[ba];aX = a0[ba + 1];bd = a4 * aQ;a7 = aX * aU;if (bd < 0 || a7 < 0 || aQ <= bd || aU <= a7) {\n var a1 = aQ + 1;if (!aZ) {\n aZ = true;aT = 0.25 * (aR[(0 + 0 * a1) * 2] + aR[(aQ + 0 * a1) * 2] + aR[(0 + aU * a1) * 2] + aR[(aQ + aU * a1) * 2]);aS = 0.25 * (aR[(0 + 0 * a1) * 2 + 1] + aR[(aQ + 0 * a1) * 2 + 1] + aR[(0 + aU * a1) * 2 + 1] + aR[(aQ + aU * a1) * 2 + 1]);var aM = aR[(aQ + aU * a1) * 2] - aR[(0 + 0 * a1) * 2];var aL = aR[(aQ + aU * a1) * 2 + 1] - aR[(0 + 0 * a1) * 2 + 1];var bh = aR[(aQ + 0 * a1) * 2] - aR[(0 + aU * a1) * 2];var bg = aR[(aQ + 0 * a1) * 2 + 1] - aR[(0 + aU * a1) * 2 + 1];bl = (aM + bh) * 0.5;bk = (aL + bg) * 0.5;bf = (aM - bh) * 0.5;be = (aL - bg) * 0.5;if (bl == 0 && bk == 0) {}if (bf == 0 && be == 0) {}aT -= 0.5 * (bl + bf);aS -= 0.5 * (bk + be);\n }if (-2 < a4 && a4 < 3 && -2 < aX && aX < 3) {\n if (a4 <= 0) {\n if (aX <= 0) {\n var a3 = aR[(0 + 0 * a1) * 2];var a2 = aR[(0 + 0 * a1) * 2 + 1];var a8 = aT - 2 * bl;var a6 = aS - 2 * bk;var aK = aT - 2 * bf;var aJ = aS - 2 * be;var aO = aT - 2 * bl - 2 * bf;var aN = aS - 2 * bk - 2 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aK = aR[(0 + aU * a1) * 2];var aJ = aR[(0 + aU * a1) * 2 + 1];var aO = aT - 2 * bl + 1 * bf;var aN = aS - 2 * bk + 1 * be;var a3 = aT + 3 * bf;var a2 = aS + 3 * be;var a8 = aT - 2 * bl + 3 * bf;var a6 = aS - 2 * bk + 3 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - -2);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aK = aR[(0 + aH * a1) * 2];var aJ = aR[(0 + aH * a1) * 2 + 1];var a3 = aR[(0 + (aH + 1) * a1) * 2];var a2 = aR[(0 + (aH + 1) * a1) * 2 + 1];var aO = aT - 2 * bl + bb * bf;var aN = aS - 2 * bk + bb * be;var a8 = aT - 2 * bl + a9 * bf;var a6 = aS - 2 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (1 <= a4) {\n if (aX <= 0) {\n var a8 = aR[(aQ + 0 * a1) * 2];var a6 = aR[(aQ + 0 * a1) * 2 + 1];var a3 = aT + 3 * bl;var a2 = aS + 3 * bk;var aO = aT + 1 * bl - 2 * bf;var aN = aS + 1 * bk - 2 * be;var aK = aT + 3 * bl - 2 * bf;var aJ = aS + 3 * bk - 2 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aO = aR[(aQ + aU * a1) * 2];var aN = aR[(aQ + aU * a1) * 2 + 1];var aK = aT + 3 * bl + 1 * bf;var aJ = aS + 3 * bk + 1 * be;var a8 = aT + 1 * bl + 3 * bf;var a6 = aS + 1 * bk + 3 * be;var a3 = aT + 3 * bl + 3 * bf;var a2 = aS + 3 * bk + 3 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - 1);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aO = aR[(aQ + aH * a1) * 2];var aN = aR[(aQ + aH * a1) * 2 + 1];var a8 = aR[(aQ + (aH + 1) * a1) * 2];var a6 = aR[(aQ + (aH + 1) * a1) * 2 + 1];var aK = aT + 3 * bl + bb * bf;var aJ = aS + 3 * bk + bb * be;var a3 = aT + 3 * bl + a9 * bf;var a2 = aS + 3 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (aX <= 0) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - -2);var bp = aY / aQ;var bo = (aY + 1) / aQ;var a8 = aR[(aY + 0 * a1) * 2];var a6 = aR[(aY + 0 * a1) * 2 + 1];var a3 = aR[(aY + 1 + 0 * a1) * 2];var a2 = aR[(aY + 1 + 0 * a1) * 2 + 1];var aO = aT + bp * bl - 2 * bf;var aN = aS + bp * bk - 2 * be;var aK = aT + bo * bl - 2 * bf;var aJ = aS + bo * bk - 2 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - 1);var bp = aY / aQ;var bo = (aY + 1) / aQ;var aO = aR[(aY + aU * a1) * 2];var aN = aR[(aY + aU * a1) * 2 + 1];var aK = aR[(aY + 1 + aU * a1) * 2];var aJ = aR[(aY + 1 + aU * a1) * 2 + 1];var a8 = aT + bp * bl + 3 * bf;var a6 = aS + bp * bk + 3 * be;var a3 = aT + bo * bl + 3 * bf;var a2 = aS + bo * bk + 3 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n System.err.printf(\"_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\\n\", a4, aX);\n }\n }\n }\n }\n } else {\n bc[ba] = aT + a4 * bl + aX * bf;bc[ba + 1] = aS + a4 * bk + aX * be;\n }\n } else {\n bn = bd - (bd | 0);bm = a7 - (a7 | 0);aV = 2 * ((bd | 0) + (a7 | 0) * (aQ + 1));if (bn + bm < 1) {\n bc[ba] = aR[aV] * (1 - bn - bm) + aR[aV + 2] * bn + aR[aV + 2 * (aQ + 1)] * bm;bc[ba + 1] = aR[aV + 1] * (1 - bn - bm) + aR[aV + 3] * bn + aR[aV + 2 * (aQ + 1) + 1] * bm;\n } else {\n bc[ba] = aR[aV + 2 * (aQ + 1) + 2] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1)] * (1 - bn) + aR[aV + 2] * (1 - bm);bc[ba + 1] = aR[aV + 2 * (aQ + 1) + 3] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1) + 1] * (1 - bn) + aR[aV + 3] * (1 - bm);\n }\n }\n }\n };E.prototype.transformPoints_sdk1 = function (aJ, aR, aL, a0, aU, aP, aZ) {\n var aH = aR;var aO, aN;var aM = this._$o;var aQ = this._$A;var aI = aU * aZ;var aS, aY;var aV;var aX, aW;var aT = aH._$hr != null ? aH._$hr : aH._$Cr;for (var aK = aP; aK < aI; aK += aZ) {\n if (Q._$ts) {\n aO = aL[aK];aN = aL[aK + 1];if (aO < 0) {\n aO = 0;\n } else {\n if (aO > 1) {\n aO = 1;\n }\n }if (aN < 0) {\n aN = 0;\n } else {\n if (aN > 1) {\n aN = 1;\n }\n }aO *= aM;aN *= aQ;aS = aO | 0;aY = aN | 0;if (aS > aM - 1) {\n aS = aM - 1;\n }if (aY > aQ - 1) {\n aY = aQ - 1;\n }aX = aO - aS;aW = aN - aY;aV = 2 * (aS + aY * (aM + 1));\n } else {\n aO = aL[aK] * aM;aN = aL[aK + 1] * aQ;aX = aO - (aO | 0);aW = aN - (aN | 0);aV = 2 * ((aO | 0) + (aN | 0) * (aM + 1));\n }if (aX + aW < 1) {\n a0[aK] = aT[aV] * (1 - aX - aW) + aT[aV + 2] * aX + aT[aV + 2 * (aM + 1)] * aW;a0[aK + 1] = aT[aV + 1] * (1 - aX - aW) + aT[aV + 3] * aX + aT[aV + 2 * (aM + 1) + 1] * aW;\n } else {\n a0[aK] = aT[aV + 2 * (aM + 1) + 2] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1)] * (1 - aX) + aT[aV + 2] * (1 - aW);a0[aK + 1] = aT[aV + 2 * (aM + 1) + 3] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1) + 1] * (1 - aX) + aT[aV + 3] * (1 - aW);\n }\n }\n };E.prototype._$VT = function () {\n return (this._$o + 1) * (this._$A + 1);\n };E.prototype.getType = function () {\n return c._$_b;\n };function H(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Cr = null;this._$hr = null;\n }H.prototype = new B();function s() {\n if (j) {\n return;\n }this.visible = true;this._$g0 = false;this._$NL = null;this._$3S = null;this._$aS = null;s._$42++;\n }s._$42 = 0;s.prototype._$zP = function () {\n this._$3S = new Array();this._$aS = new Array();\n };s.prototype._$F0 = function (aH) {\n this._$g0 = aH._$8L();this.visible = aH._$8L();this._$NL = aH._$nP();this._$3S = aH._$nP();this._$aS = aH._$nP();\n };s.prototype.init = function (aI) {\n var aH = new aj(this);aH.setPartsOpacity(this.isVisible() ? 1 : 0);return aH;\n };s.prototype._$6o = function (aH) {\n if (this._$3S == null) {\n throw new Error(\"_$3S _$6 _$Wo@_$6o\");\n }this._$3S.push(aH);\n };s.prototype._$3o = function (aH) {\n if (this._$aS == null) {\n throw new Error(\"_$aS _$6 _$Wo@_$3o\");\n }this._$aS.push(aH);\n };s.prototype._$Zo = function (aH) {\n this._$3S = aH;\n };s.prototype._$xo = function (aH) {\n this._$aS = aH;\n };s.prototype.isVisible = function () {\n return this.visible;\n };s.prototype._$uL = function () {\n return this._$g0;\n };s.prototype._$KP = function (aH) {\n this.visible = aH;\n };s.prototype._$ET = function (aH) {\n this._$g0 = aH;\n };s.prototype.getBaseData = function () {\n return this._$3S;\n };s.prototype.getDrawData = function () {\n return this._$aS;\n };s.prototype._$p2 = function () {\n return this._$NL;\n };s.prototype._$ob = function (aH) {\n this._$NL = aH;\n };s.prototype.getPartsID = function () {\n return this._$NL;\n };s.prototype._$MP = function (aH) {\n this._$NL = aH;\n };function aj(aH) {\n this._$VS = null;this._$e0 = null;this._$e0 = aH;\n }aj.prototype = new S();aj.prototype.getPartsOpacity = function () {\n return this._$VS;\n };aj.prototype.setPartsOpacity = function (aH) {\n this._$VS = aH;\n };function ak(aH) {\n if (j) {\n return;\n }this.id = aH;\n }ak._$L7 = function () {\n z._$27();n._$27();Z._$27();i._$27();\n };ak.prototype.toString = function () {\n return this.id;\n };function D() {}D.prototype._$F0 = function (aH) {};function an() {\n if (j) {\n return;\n }this._$4S = null;\n }an.prototype._$1s = function () {\n return this._$4S;\n };an.prototype._$zP = function () {\n this._$4S = new Array();\n };an.prototype._$F0 = function (aH) {\n this._$4S = aH._$nP();\n };an.prototype._$Ks = function (aH) {\n this._$4S.push(aH);\n };function au(aH, aI) {\n this.canvas = aH;this.context = aI;this.viewport = new Array(0, 0, aH.width, aH.height);this._$6r = 1;this._$xP = 0;this._$3r = 1;this._$uP = 0;this._$Qo = -1;this.cacheImages = {};\n }au.tr = new am();au._$50 = new am();au._$Ti = new Array(0, 0);au._$Pi = new Array(0, 0);au._$B = new Array(0, 0);au.prototype._$lP = function (aI, aK, aJ, aH) {\n this.viewport = new Array(aI, aK, aJ, aH);\n };au.prototype._$bL = function () {\n this.context.save();var aH = this.viewport;if (aH != null) {\n this.context.beginPath();this.context._$Li(aH[0], aH[1], aH[2], aH[3]);this.context.clip();\n }\n };au.prototype._$ei = function () {\n this.context.restore();\n };au.prototype.drawElements = function (bc, bm, aX, aJ, bA, aM, bl, bz) {\n try {\n if (bA != this._$Qo) {\n this._$Qo = bA;this.context.globalAlpha = bA;\n }var a2 = bm.length;var aP = bc.width;var a5 = bc.height;var bE = this.context;var a7 = this._$xP;var a6 = this._$uP;var a1 = this._$6r;var aZ = this._$3r;var bD = au.tr;var aI = au._$Ti;var aH = au._$Pi;var bu = au._$B;for (var by = 0; by < a2; by += 3) {\n bE.save();var aW = bm[by];var aV = bm[by + 1];var aT = bm[by + 2];var aL = a7 + a1 * aX[aW * 2];var aK = a6 + aZ * aX[aW * 2 + 1];var br = a7 + a1 * aX[aV * 2];var bp = a6 + aZ * aX[aV * 2 + 1];var bh = a7 + a1 * aX[aT * 2];var bf = a6 + aZ * aX[aT * 2 + 1];if (bl) {\n bl._$PS(aL, aK, bu);aL = bu[0];aK = bu[1];bl._$PS(br, bp, bu);br = bu[0];bp = bu[1];bl._$PS(bh, bf, bu);bh = bu[0];bf = bu[1];\n }var aS = aP * aJ[aW * 2];var aQ = a5 - a5 * aJ[aW * 2 + 1];var bx = aP * aJ[aV * 2];var bw = a5 - a5 * aJ[aV * 2 + 1];var bk = aP * aJ[aT * 2];var bj = a5 - a5 * aJ[aT * 2 + 1];var a3 = Math.atan2(bw - aQ, bx - aS);var a0 = Math.atan2(bp - aK, br - aL);var aO = br - aL;var aN = bp - aK;var bi = Math.sqrt(aO * aO + aN * aN);var aU = bx - aS;var aR = bw - aQ;var bt = Math.sqrt(aU * aU + aR * aR);var bv = bi / bt;ad._$ni(bk, bj, aS, aQ, bx - aS, bw - aQ, -(bw - aQ), bx - aS, aI);ad._$ni(bh, bf, aL, aK, br - aL, bp - aK, -(bp - aK), br - aL, aH);var aY = (aH[0] - aI[0]) / aI[1];var bs = Math.min(aS, bx, bk);var bg = Math.max(aS, bx, bk);var bq = Math.min(aQ, bw, bj);var be = Math.max(aQ, bw, bj);var bo = Math.floor(bs);var bb = Math.floor(bq);var a4 = Math.ceil(bg);var bC = Math.ceil(be);bD.identity();bD.translate(aL, aK);bD.rotate(a0);bD.scale(1, aH[1] / aI[1]);bD.shear(aY, 0);bD.scale(bv, bv);bD.rotate(-a3);bD.translate(-aS, -aQ);bD.setContext(bE);var a8 = true;var a9 = 1.2;if (!aM) {\n aM = a8 ? a9 : 0;\n }if (Q.IGNORE_EXPAND) {\n aM = 0;\n }if (Q.USE_CACHED_POLYGON_IMAGE) {\n var bd = bz._$e0;bd.gl_cacheImage = bd.gl_cacheImage || {};if (!bd.gl_cacheImage[by]) {\n var bn = au.createCanvas(a4 - bo, bC - bb);Q.DEBUG_DATA.LDGL_CANVAS_MB = Q.DEBUG_DATA.LDGL_CANVAS_MB || 0;Q.DEBUG_DATA.LDGL_CANVAS_MB += (a4 - bo) * (bC - bb) * 4;var ba = bn.getContext(\"2d\");ba.translate(-bo, -bb);au.clip(ba, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);ba.drawImage(bc, 0, 0);bd.gl_cacheImage[by] = { cacheCanvas: bn, cacheContext: ba };\n }bE.drawImage(bd.gl_cacheImage[by][\"cacheCanvas\"], bo, bb);\n } else {\n if (!Q.IGNORE_CLIP) {\n au.clip(bE, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);\n }if (Q.USE_ADJUST_TRANSLATION) {\n bs = 0;bg = aP;bq = 0;be = a5;\n }bE.drawImage(bc, bs, bq, bg - bs, be - bq, bs, bq, bg - bs, be - bq);\n }bE.restore();\n }\n } catch (bB) {\n q._$Rb(bB);\n }\n };au.clip = function (aK, aJ, aV, aI, aM, aL, aU, aT, aQ, aP, aO, aN, aH, aW, aS, aR) {\n if (aV > 0.02) {\n au.expandClip(aK, aJ, aV, aI, aO, aN, aH, aW, aS, aR);\n } else {\n au.clipWithTransform(aK, null, aM, aL, aU, aT, aQ, aP);\n }\n };au.expandClip = function (aV, bg, aK, a3, aJ, aI, be, ba, aZ, aX) {\n var aP = be - aJ;var aO = ba - aI;var bi = aZ - aJ;var bh = aX - aI;var bj = aP * bh - aO * bi > 0 ? aK : -aK;var aL = -aO;var aH = aP;var bc = aZ - be;var a8 = aX - ba;var a7 = -a8;var a6 = bc;var aQ = Math.sqrt(bc * bc + a8 * a8);var bf = -bh;var bb = bi;var a2 = Math.sqrt(bi * bi + bh * bh);var bd = aJ - bj * aL / a3;var a9 = aI - bj * aH / a3;var aY = be - bj * aL / a3;var aW = ba - bj * aH / a3;var a5 = be - bj * a7 / aQ;var a4 = ba - bj * a6 / aQ;var aS = aZ - bj * a7 / aQ;var aR = aX - bj * a6 / aQ;var aN = aJ + bj * bf / a2;var aM = aI + bj * bb / a2;var a1 = aZ + bj * bf / a2;var a0 = aX + bj * bb / a2;var aU = au._$50;var aT = bg._$P2(aU);if (aT == null) {\n return false;\n }au.clipWithTransform(aV, aU, bd, a9, aY, aW, a5, a4, aS, aR, a1, a0, aN, aM);return true;\n };au.clipWithTransform = function (aH, aI, aS, aN, aQ, aK, aP, aJ) {\n if (arguments.length < 1 + 3 * 2) {\n q._$li(\"err : @LDGL.clip()\");return;\n }if (!(arguments[1] instanceof am)) {\n q._$li(\"err : a[0] is _$6 LDTransform @LDGL.clip()\");return;\n }var aM = au._$B;var aO = aI;var aR = arguments;aH.beginPath();if (aO) {\n aO._$PS(aR[2], aR[3], aM);aH.moveTo(aM[0], aM[1]);for (var aL = 4; aL < aR.length; aL += 2) {\n aO._$PS(aR[aL], aR[aL + 1], aM);aH.lineTo(aM[0], aM[1]);\n }\n } else {\n aH.moveTo(aR[2], aR[3]);for (var aL = 4; aL < aR.length; aL += 2) {\n aH.lineTo(aR[aL], aR[aL + 1]);\n }\n }aH.clip();\n };au.createCanvas = function (aH, aJ) {\n var aI = document.createElement(\"canvas\");aI.setAttribute(\"width\", aH);aI.setAttribute(\"height\", aJ);if (!aI) {\n q._$li(\"err : \" + aI);\n }return aI;\n };au.dumpValues = function () {\n var aI = \"\";for (var aH = 0; aH < arguments.length; aH++) {\n aI += \"[\" + aH + \"]= \" + arguments[aH].toFixed(3) + \" , \";\n }console.log(aI);\n };function f() {\n if (j) {\n return;\n }this._$TT = null;this._$LT = null;this._$FS = null;this._$wL = null;\n }f.prototype._$F0 = function (aH) {\n this._$TT = aH._$_T();this._$LT = aH._$_T();this._$FS = aH._$_T();this._$wL = aH._$nP();\n };f.prototype.getMinValue = function () {\n return this._$TT;\n };f.prototype.getMaxValue = function () {\n return this._$LT;\n };f.prototype.getDefaultValue = function () {\n return this._$FS;\n };f.prototype.getParamID = function () {\n return this._$wL;\n };function B(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$JS = false;this._$AT = true;this._$e0 = aH;this.totalScale = 1;this._$7s = 1;this.totalOpacity = 1;\n }B.prototype._$yo = function () {\n return this._$AT && !this._$JS;\n };B.prototype._$hS = function (aH) {\n this._$AT = aH;\n };B.prototype._$GT = function () {\n return this._$e0;\n };B.prototype._$l2 = function (aH) {\n this._$IP = aH;\n };B.prototype.getPartsIndex = function () {\n return this._$IP;\n };B.prototype._$x2 = function () {\n return this._$JS;\n };B.prototype._$Ib = function (aH) {\n this._$JS = aH;\n };B.prototype.getTotalScale = function () {\n return this.totalScale;\n };B.prototype.setTotalScale_notForClient = function (aH) {\n this.totalScale = aH;\n };B.prototype.getInterpolatedOpacity = function () {\n return this._$7s;\n };B.prototype.setInterpolatedOpacity = function (aH) {\n this._$7s = aH;\n };B.prototype.getTotalOpacity = function (aH) {\n return this.totalOpacity;\n };B.prototype.setTotalOpacity = function (aH) {\n this.totalOpacity = aH;\n };function Q() {}Q._$2s = \"2.1.00_1\";Q._$Kr = 201001000;Q._$sP = true;Q._$so = true;Q._$cb = false;Q._$3T = true;Q._$Ts = true;Q._$fb = true;Q._$ts = true;Q.L2D_DEFORMER_EXTEND = true;Q._$Wb = false;Q._$yr = false;Q._$Zs = false;Q.L2D_NO_ERROR = 0;Q._$i7 = 1000;Q._$9s = 1001;Q._$es = 1100;Q._$r7 = 2000;Q._$07 = 2001;Q._$b7 = 2002;Q._$H7 = 4000;Q.L2D_COLOR_BLEND_MODE_MULT = 0;Q.L2D_COLOR_BLEND_MODE_ADD = 1;Q.L2D_COLOR_BLEND_MODE_INTERPOLATE = 2;Q._$6b = true;Q._$cT = 0;Q.clippingMaskBufferSize = 256;Q.glContext = new Array();Q.frameBuffers = new Array();Q.fTexture = new Array();Q.IGNORE_CLIP = false;Q.IGNORE_EXPAND = false;Q.EXPAND_W = 2;Q.USE_ADJUST_TRANSLATION = true;Q.USE_CANVAS_TRANSFORM = true;Q.USE_CACHED_POLYGON_IMAGE = false;Q.DEBUG_DATA = {};Q.PROFILE_IOS_SPEED = { PROFILE_NAME: \"iOS Speed\", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: true, EXPAND_W: 4 };Q.PROFILE_IOS_QUALITY = { PROFILE_NAME: \"iOS HiQ\", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_IOS_DEFAULT = Q.PROFILE_IOS_QUALITY;Q.PROFILE_ANDROID = { PROFILE_NAME: \"Android\", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_DESKTOP = { PROFILE_NAME: \"Desktop\", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.initProfile = function () {\n if (r.isIOS()) {\n Q.setupProfile(Q.PROFILE_IOS_DEFAULT);\n } else {\n if (r.isAndroid()) {\n Q.setupProfile(Q.PROFILE_ANDROID);\n } else {\n Q.setupProfile(Q.PROFILE_DESKTOP);\n }\n }\n };Q.setupProfile = function (aI, aJ) {\n if (typeof aI == \"number\") {\n switch (aI) {case 9901:\n aI = Q.PROFILE_IOS_SPEED;break;case 9902:\n aI = Q.PROFILE_IOS_QUALITY;break;case 9903:\n aI = Q.PROFILE_IOS_DEFAULT;break;case 9904:\n aI = Q.PROFILE_ANDROID;break;case 9905:\n aI = Q.PROFILE_DESKTOP;break;default:\n alert(\"profile _$6 _$Ui : \" + aI);break;}\n }if (arguments.length < 2) {\n aJ = true;\n }if (aJ) {\n console.log(\"profile : \" + aI.PROFILE_NAME);\n }for (var aH in aI) {\n Q[aH] = aI[aH];if (aJ) {\n console.log(\" [\" + aH + \"] = \" + aI[aH]);\n }\n }\n };Q.init = function () {\n if (Q._$6b) {\n console.log(\"Live2D %s\", Q._$2s);Q._$6b = false;var aH = false;aH = true;Q.initProfile();\n }\n };Q.getVersionStr = function () {\n return Q._$2s;\n };Q.getVersionNo = function () {\n return Q._$Kr;\n };Q._$sT = function (aH) {\n Q._$cT = aH;\n };Q.getError = function () {\n var aH = Q._$cT;Q._$cT = 0;return aH;\n };Q.dispose = function () {\n Q.glContext = [];Q.frameBuffers = [];Q.fTexture = [];\n };Q.setGL = function (aJ, aI) {\n var aH = aI || 0;Q.glContext[aH] = aJ;\n };Q.getGL = function (aH) {\n return Q.glContext[aH];\n };Q.setClippingMaskBufferSize = function (aH) {\n Q.clippingMaskBufferSize = aH;\n };Q.getClippingMaskBufferSize = function () {\n return Q.clippingMaskBufferSize;\n };Q.deleteBuffer = function (aI) {\n var aH = Q.getGL(aI);aH.deleteFramebuffer(Q.frameBuffers[aI].framebuffer);delete Q.frameBuffers[aI];delete Q.glContext[aI];\n };function A() {}A._$r2 = function (aH) {\n if (aH < 0) {\n return 0;\n } else {\n if (aH > 1) {\n return 1;\n }\n }return 0.5 - 0.5 * Math.cos(aH * aC.PI_F);\n };function J(aH) {\n if (j) {\n return;\n }this._$ib = aH;\n }J._$fr = -1;J.prototype.toString = function () {\n return this._$ib;\n };function b() {\n if (j) {\n return;\n }a.prototype.constructor.call(this);this._$LP = -1;this._$d0 = 0;this._$Yo = 0;this._$JP = null;this._$5P = null;this._$BP = null;this._$Eo = null;this._$Qi = null;this._$6s = b._$ms;this.culling = true;this.gl_cacheImage = null;this.instanceNo = b._$42++;\n }b.prototype = new a();b._$42 = 0;b._$Os = 30;b._$ms = 0;b._$ns = 1;b._$_s = 2;b._$gT = new Array();b.prototype._$_S = function (aH) {\n this._$LP = aH;\n };b.prototype.getTextureNo = function () {\n return this._$LP;\n };b.prototype._$ZL = function () {\n return this._$Qi;\n };b.prototype._$H2 = function () {\n return this._$JP;\n };b.prototype.getNumPoints = function () {\n return this._$d0;\n };b.prototype.getType = function () {\n return a._$wb;\n };b.prototype._$B2 = function (aL, aH, aO) {\n var aM = aH;var aN = aM._$hr != null ? aM._$hr : aM._$Cr;var aK = aw._$do;switch (aK) {default:case aw._$Ms:\n throw new Error(\"_$L _$ro \");case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aI = aJ * aw._$No;aN[aI + 4] = aO;\n }break;}\n };b.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };b.prototype._$F0 = function (aK) {\n a.prototype._$F0.call(this, aK);this._$LP = aK._$6L();this._$d0 = aK._$6L();this._$Yo = aK._$6L();var aH = aK._$nP();this._$BP = new Int16Array(this._$Yo * 3);for (var aJ = this._$Yo * 3 - 1; aJ >= 0; --aJ) {\n this._$BP[aJ] = aH[aJ];\n }this._$Eo = aK._$nP();this._$Qi = aK._$nP();if (aK.getFormatVersion() >= ay._$s7) {\n this._$JP = aK._$6L();if (this._$JP != 0) {\n if ((this._$JP & 1) != 0) {\n var aI = aK._$6L();if (this._$5P == null) {\n this._$5P = new Object();\n }this._$5P._$Hb = parseInt(aI);\n }if ((this._$JP & b._$Os) != 0) {\n this._$6s = (this._$JP & b._$Os) >> 1;\n } else {\n this._$6s = b._$ms;\n }if ((this._$JP & 32) != 0) {\n this.culling = false;\n }\n }\n } else {\n this._$JP = 0;\n }\n };b.prototype.init = function (aL) {\n var aN = new ag(this);var aI = this._$d0 * aw._$No;var aH = this._$32();if (aN._$Cr != null) {\n aN._$Cr = null;\n }aN._$Cr = new Float32Array(aI);if (aN._$hr != null) {\n aN._$hr = null;\n }aN._$hr = aH ? new Float32Array(aI) : null;var aM = aw._$do;switch (aM) {default:case aw._$Ms:\n if (aw._$Ls) {\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;this._$Qi[aO + 1] = 1 - this._$Qi[aO + 1];\n }\n }break;case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;var aK = aJ * aw._$No;var aQ = this._$Qi[aO];var aP = this._$Qi[aO + 1];aN._$Cr[aK] = aQ;aN._$Cr[aK + 1] = aP;aN._$Cr[aK + 4] = 0;if (aH) {\n aN._$hr[aK] = aQ;aN._$hr[aK + 1] = aP;aN._$hr[aK + 4] = 0;\n }\n }break;}return aN;\n };b.prototype._$Nr = function (aJ, aH) {\n var aK = aH;if (!(this == aK._$GT())) {\n console.log(\"### assert!! ### \");\n }if (!this._$GS._$Ur(aJ)) {\n return;\n }a.prototype._$Nr.call(this, aJ, aK);if (aK._$IS[0]) {\n return;\n }var aI = b._$gT;aI[0] = false;aG._$Vr(aJ, this._$GS, aI, this._$d0, this._$Eo, aK._$Cr, aw._$i2, aw._$No);\n };b.prototype._$2b = function (aK, aI) {\n try {\n if (!(this == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }var aL = false;if (aI._$IS[0]) {\n aL = true;\n }var aM = aI;if (!aL) {\n a.prototype._$2b.call(this, aK);if (this._$32()) {\n var aH = this.getTargetBaseDataID();if (aM._$8r == a._$ur) {\n aM._$8r = aK.getBaseDataIndex(aH);\n }if (aM._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aH);\n }\n } else {\n var aO = aK.getBaseData(aM._$8r);var aJ = aK._$q2(aM._$8r);if (aO != null && !aJ._$x2()) {\n aO._$nb(aK, aJ, aM._$Cr, aM._$hr, this._$d0, aw._$i2, aw._$No);aM._$AT = true;\n } else {\n aM._$AT = false;\n }aM.baseOpacity = aJ.getTotalOpacity();\n }\n }\n }\n } catch (aN) {\n throw aN;\n }\n };b.prototype.draw = function (aN, aK, aI) {\n if (!(this == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }if (aI._$IS[0]) {\n return;\n }var aL = aI;var aJ = this._$LP;if (aJ < 0) {\n aJ = 1;\n }var aH = this.getOpacity(aK, aL) * aI._$VS * aI.baseOpacity;var aM = aL._$hr != null ? aL._$hr : aL._$Cr;aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);aN._$WP(this.culling);aN._$Uo(aJ, 3 * this._$Yo, this._$BP, aM, this._$Qi, aH, this._$6s, aL);\n };b.prototype.dump = function () {\n console.log(\" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n\", this._$LP, this._$d0, this._$Yo);console.log(\" _$Oi _$di = { \");for (var aJ = 0; aJ < this._$BP.length; aJ++) {\n console.log(\"%5d ,\", this._$BP[aJ]);\n }console.log(\"\\n _$5i _$30\");for (var aJ = 0; aJ < this._$Eo.length; aJ++) {\n console.log(\"\\n _$30[%d] = \", aJ);var aH = this._$Eo[aJ];for (var aI = 0; aI < aH.length; aI++) {\n console.log(\"%6.2f, \", aH[aI]);\n }\n }console.log(\"\\n\");\n };b.prototype._$72 = function (aH) {\n if (this._$5P == null) {\n return null;\n }return this._$5P[aH];\n };b.prototype.getIndexArray = function () {\n return this._$BP;\n };function ag(aH) {\n aB.prototype.constructor.call(this, aH);this._$8r = a._$ur;this._$Cr = null;this._$hr = null;\n }ag.prototype = new aB();ag.prototype.getTransformedPoints = function () {\n return this._$hr != null ? this._$hr : this._$Cr;\n };function k() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }k.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };k.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };function l(aH) {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this.drawParamWebGL = new C(aH);this.drawParamWebGL.setGL(Q.getGL(aH));\n }l.prototype = new aa();l.loadModel = function (aI) {\n var aH = new l();aa._$62(aH, aI);return aH;\n };l.loadModel = function (aI, aK) {\n var aJ = aK || 0;var aH = new l(aJ);aa._$62(aH, aI);return aH;\n };l._$to = function () {\n var aH = new l();return aH;\n };l._$er = function (aM) {\n var aJ = new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if (aJ.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aJ._$PL());\n }var aH = [\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK = l.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };l.prototype.setGL = function (aH) {\n Q.setGL(aH);\n };l.prototype.setTransform = function (aH) {\n this.drawParamWebGL.setTransform(aH);\n };l.prototype.update = function () {\n this._$5S.update();this._$5S.preDraw(this.drawParamWebGL);\n };l.prototype.draw = function () {\n this._$5S.draw(this.drawParamWebGL);\n };l.prototype._$K2 = function () {\n this.drawParamWebGL._$K2();\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype._$Rs = function () {\n return this.drawParamWebGL._$Rs();\n };l.prototype._$Ds = function (aH) {\n this.drawParamWebGL._$Ds(aH);\n };l.prototype.getDrawParam = function () {\n return this.drawParamWebGL;\n };l.prototype.setMatrix = function (aH) {\n this.drawParamWebGL.setMatrix(aH);\n };l.prototype.setPremultipliedAlpha = function (aH) {\n this.drawParamWebGL.setPremultipliedAlpha(aH);\n };l.prototype.isPremultipliedAlpha = function () {\n return this.drawParamWebGL.isPremultipliedAlpha();\n };l.prototype.setAnisotropy = function (aH) {\n this.drawParamWebGL.setAnisotropy(aH);\n };l.prototype.getAnisotropy = function () {\n return this.drawParamWebGL.getAnisotropy();\n };function V() {\n if (j) {\n return;\n }this.motions = null;this._$eb = false;this.motions = new Array();\n }V.prototype._$tb = function () {\n return this.motions;\n };V.prototype.startMotion = function (aJ, aI) {\n var aM = null;var aL = null;var aH = this.motions.length;for (var aK = 0; aK < aH; ++aK) {\n aL = this.motions[aK];if (aL == null) {\n continue;\n }aL._$qS(aL._$w0.getFadeOut());if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\\n\", aH, aL._$sr);\n }\n }if (aJ == null) {\n return -1;\n }aL = new M();aL._$w0 = aJ;this.motions.push(aL);var aN = aL._$sr;if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n\", aH, aN);\n }return aN;\n };V.prototype.updateParam = function (aJ) {\n try {\n var aI = false;for (var aK = 0; aK < this.motions.length; aK++) {\n var aL = this.motions[aK];if (aL == null) {\n this.motions.splice(aK, 1);aK--;continue;\n }var aH = aL._$w0;if (aH == null) {\n this.motions = this.motions.splice(aK, 1);aK--;continue;\n }aH.updateParam(aJ, aL);aI = true;if (aL.isFinished()) {\n if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\\n\", this.motions.length - 1, aL._$sr);\n }this.motions.splice(aK, 1);aK--;\n } else {}\n }return aI;\n } catch (aM) {\n q._$li(aM);return true;\n }\n };V.prototype.isFinished = function (aK) {\n if (arguments.length >= 1) {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n continue;\n }if (aJ._$sr == aK && !aJ.isFinished()) {\n return false;\n }\n }return true;\n } else {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (!aJ.isFinished()) {\n return false;\n }\n }return true;\n }\n };V.prototype.stopAllMotions = function () {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (true) {\n this.motions.splice(aI, 1);aI--;\n }\n }\n };V.prototype._$Zr = function (aH) {\n this._$eb = aH;\n };V.prototype._$e = function () {\n console.log(\"-- _$R --\\n\");for (var aH = 0; aH < this.motions.length; aH++) {\n var aI = this.motions[aH];var aJ = aI._$w0;console.log(\"MotionQueueEnt[%d] :: %s\\n\", this.motions.length, aJ.toString());\n }\n };function M() {\n this._$w0 = null;this._$AT = true;this._$9L = false;this._$z2 = -1;this._$bs = -1;this._$Do = -1;this._$sr = null;this._$sr = M._$Gs++;\n }M._$Gs = 0;M.prototype.isFinished = function () {\n return this._$9L;\n };M.prototype._$qS = function (aJ) {\n var aI = P.getUserTimeMSec();var aH = aI + aJ;if (this._$Do < 0 || aH < this._$Do) {\n this._$Do = aH;\n }\n };M.prototype._$Bs = function () {\n return this._$sr;\n };function am() {\n this.m = new Array(1, 0, 0, 0, 1, 0, 0, 0, 1);\n }am.prototype.setContext = function (aI) {\n var aH = this.m;aI.transform(aH[0], aH[1], aH[3], aH[4], aH[6], aH[7]);\n };am.prototype.toString = function () {\n var aI = \"LDTransform { \";for (var aH = 0; aH < 9; aH++) {\n aI += this.m[aH].toFixed(2) + \" ,\";\n }aI += \" }\";return aI;\n };am.prototype.identity = function () {\n var aH = this.m;aH[0] = aH[4] = aH[8] = 1;aH[1] = aH[2] = aH[3] = aH[5] = aH[6] = aH[7] = 0;\n };am.prototype._$PS = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype._$P2 = function (aK) {\n if (!aK) {\n aK = new am();\n }var aI = this.m;var aT = aI[0];var aS = aI[1];var aR = aI[2];var aQ = aI[3];var aP = aI[4];var aO = aI[5];var aN = aI[6];var aM = aI[7];var aL = aI[8];var aJ = aT * aP * aL + aS * aO * aN + aR * aQ * aM - aT * aO * aM - aR * aP * aN - aS * aQ * aL;if (aJ == 0) {\n return null;\n } else {\n var aH = 1 / aJ;aK.m[0] = aH * (aP * aL - aM * aO);aK.m[1] = aH * (aM * aR - aS * aL);aK.m[2] = aH * (aS * aO - aP * aR);aK.m[3] = aH * (aN * aO - aQ * aL);aK.m[4] = aH * (aT * aL - aN * aR);aK.m[5] = aH * (aQ * aR - aT * aO);aK.m[6] = aH * (aQ * aM - aN * aP);aK.m[7] = aH * (aN * aS - aT * aM);aK.m[8] = aH * (aT * aP - aQ * aS);return aK;\n }\n };am.prototype.transform = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype.translate = function (aI, aJ) {\n var aH = this.m;aH[6] = aH[0] * aI + aH[3] * aJ + aH[6];aH[7] = aH[1] * aI + aH[4] * aJ + aH[7];aH[8] = aH[2] * aI + aH[5] * aJ + aH[8];\n };am.prototype.scale = function (aJ, aI) {\n var aH = this.m;aH[0] *= aJ;aH[1] *= aJ;aH[2] *= aJ;aH[3] *= aI;aH[4] *= aI;aH[5] *= aI;\n };am.prototype.shear = function (aM, aL) {\n var aH = this.m;var aK = aH[0] + aH[3] * aL;var aJ = aH[1] + aH[4] * aL;var aI = aH[2] + aH[5] * aL;aH[3] = aH[0] * aM + aH[3];aH[4] = aH[1] * aM + aH[4];aH[5] = aH[2] * aM + aH[5];aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.rotate = function (aM) {\n var aH = this.m;var aN = Math.cos(aM);var aL = Math.sin(aM);var aK = aH[0] * aN + aH[3] * aL;var aJ = aH[1] * aN + aH[4] * aL;var aI = aH[2] * aN + aH[5] * aL;aH[3] = -aH[0] * aL + aH[3] * aN;aH[4] = -aH[1] * aL + aH[4] * aN;aH[5] = -aH[2] * aL + aH[5] * aN;aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.concatenate = function (aL) {\n var aO = this.m;var aM = aL.m;var aS = aO[0] * aM[0] + aO[3] * aM[1] + aO[6] * aM[2];var aR = aO[1] * aM[0] + aO[4] * aM[1] + aO[7] * aM[2];var aQ = aO[2] * aM[0] + aO[5] * aM[1] + aO[8] * aM[2];var aP = aO[0] * aM[3] + aO[3] * aM[4] + aO[6] * aM[5];var aN = aO[1] * aM[3] + aO[4] * aM[4] + aO[7] * aM[5];var aK = aO[2] * aM[3] + aO[5] * aM[4] + aO[8] * aM[5];var aJ = aO[0] * aM[6] + aO[3] * aM[7] + aO[6] * aM[8];var aI = aO[1] * aM[6] + aO[4] * aM[7] + aO[7] * aM[8];var aH = aO[2] * aM[6] + aO[5] * aM[7] + aO[8] * aM[8];m[0] = aS;m[1] = aR;m[2] = aQ;m[3] = aP;m[4] = aN;m[5] = aK;m[6] = aJ;m[7] = aI;m[8] = aH;\n };function n(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }n.prototype = new ak();n._$eT = null;n._$tP = new Object();n._$2o = function () {\n if (n._$eT == null) {\n n._$eT = n.getID(\"DST_BASE\");\n }return n._$eT;\n };n._$27 = function () {\n n._$tP.clear();n._$eT = null;\n };n.getID = function (aH) {\n var aI = n._$tP[aH];if (aI == null) {\n aI = new n(aH);n._$tP[aH] = aI;\n }return aI;\n };n.prototype._$3s = function () {\n return new n();\n };function C(aH) {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this.textures = new Array();this.transform = null;this.gl = null;this.glno = aH;this.firstDraw = true;this.anisotropyExt = null;this.maxAnisotropy = 0;this._$As = 32;this._$Gr = false;this._$NT = null;this._$vS = null;this._$no = null;this.vertShader = null;this.fragShader = null;this.vertShaderOff = null;this.fragShaderOff = null;\n }C.prototype = new ax();C._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };C._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };C._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$Hs = function () {\n return this._$Gr;\n };C._$as = function (aH) {\n this._$Gr = aH;\n };C.prototype.getGL = function () {\n return this.gl;\n };C.prototype.setGL = function (aH) {\n this.gl = aH;\n };C.prototype.setTransform = function (aH) {\n this.transform = aH;\n };C.prototype._$ZT = function () {\n var aH = this.gl;if (this.firstDraw) {\n this.initShader();this.firstDraw = false;this.anisotropyExt = aH.getExtension(\"EXT_texture_filter_anisotropic\") || aH.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\") || aH.getExtension(\"MOZ_EXT_texture_filter_anisotropic\");if (this.anisotropyExt) {\n this.maxAnisotropy = aH.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n }aH.disable(aH.SCISSOR_TEST);aH.disable(aH.STENCIL_TEST);aH.disable(aH.DEPTH_TEST);aH.frontFace(aH.CW);aH.enable(aH.BLEND);aH.colorMask(1, 1, 1, 1);aH.bindBuffer(aH.ARRAY_BUFFER, null);aH.bindBuffer(aH.ELEMENT_ARRAY_BUFFER, null);\n };C.prototype._$Uo = function (aS, aT, aL, aU, aV, aN, aM, aO) {\n if (aN < 0.01 && this.clipBufPre_clipContextMask == null) {\n return;\n }var aH = aN > 0.9 ? Q.EXPAND_W : 0;var a0 = this.gl;if (this.gl == null) {\n throw new Error(\"gl is null\");\n }var a1 = false;var aQ = 1;var aP = 1;var a3 = 1;var aZ = 1;var aW = this._$C0 * aP * aN;var a2 = this._$tT * a3 * aN;var a5 = this._$WL * aZ * aN;var a7 = this._$lT * aN;if (this.clipBufPre_clipContextMask != null) {\n a0.frontFace(a0.CCW);a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.getClipBufPre_clipContextMask().matrixForMask);var aY = this.getClipBufPre_clipContextMask().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag, a4.r, a4.g, a4.b, a4.a);var aI = this.getClipBufPre_clipContextMask().layoutBounds;a0.uniform4f(this.u_baseColor_Loc, aI.x * 2 - 1, aI.y * 2 - 1, aI._$EL() * 2 - 1, aI._$5T() * 2 - 1);a0.uniform1i(this.u_maskFlag_Loc, true);\n } else {\n a1 = this.getClipBufPre_clipContextDraw() != null;if (a1) {\n a0.useProgram(this.shaderProgramOff);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc_Off);a0.vertexAttribPointer(this.a_position_Loc_Off, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc_Off, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);a0.vertexAttribPointer(this.a_texCoord_Loc_Off, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off, false, this.getClipBufPre_clipContextDraw().matrixForDraw);a0.uniformMatrix4fv(this.u_matrix_Loc_Off, false, this.matrix4x4);a0.activeTexture(a0.TEXTURE2);a0.bindTexture(a0.TEXTURE_2D, Q.fTexture[this.glno]);a0.uniform1i(this.s_texture1_Loc_Off, 2);var aY = this.getClipBufPre_clipContextDraw().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag_Loc_Off, a4.r, a4.g, a4.b, a4.a);a0.uniform4f(this.u_baseColor_Loc_Off, aW, a2, a5, a7);\n } else {\n a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.matrix4x4);a0.uniform4f(this.u_baseColor_Loc, aW, a2, a5, a7);a0.uniform1i(this.u_maskFlag_Loc, false);\n }\n }if (this.culling) {\n this.gl.enable(a0.CULL_FACE);\n } else {\n this.gl.disable(a0.CULL_FACE);\n }this.gl.enable(a0.BLEND);var a6;var aX;var aR;var aK;if (this.clipBufPre_clipContextMask != null) {\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;\n } else {\n switch (aM) {case b._$ms:\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;break;case b._$ns:\n a6 = a0.ONE;aX = a0.ONE;aR = a0.ZERO;aK = a0.ONE;break;case b._$_s:\n a6 = a0.DST_COLOR;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ZERO;aK = a0.ONE;break;}\n }a0.blendEquationSeparate(a0.FUNC_ADD, a0.FUNC_ADD);a0.blendFuncSeparate(a6, aX, aR, aK);if (this.anisotropyExt) {\n a0.texParameteri(a0.TEXTURE_2D, this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT, this.maxAnisotropy);\n }var aJ = aL.length;a0.drawElements(a0.TRIANGLES, aJ, a0.UNSIGNED_SHORT, 0);a0.bindTexture(a0.TEXTURE_2D, null);\n };function T(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ARRAY_BUFFER, aH);aJ.bufferData(aJ.ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }function L(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER, aH);aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }C.prototype._$Rs = function () {\n throw new Error(\"_$Rs\");\n };C.prototype._$Ds = function (aH) {\n throw new Error(\"_$Ds\");\n };C.prototype._$K2 = function () {\n for (var aH = 0; aH < this.textures.length; aH++) {\n var aI = this.textures[aH];if (aI != 0) {\n this.gl._$K2(1, this.textures, aH);this.textures[aH] = null;\n }\n }\n };C.prototype.setTexture = function (aH, aI) {\n this.textures[aH] = aI;\n };C.prototype.initShader = function () {\n var aH = this.gl;this.loadShaders2();this.a_position_Loc = aH.getAttribLocation(this.shaderProgram, \"a_position\");this.a_texCoord_Loc = aH.getAttribLocation(this.shaderProgram, \"a_texCoord\");this.u_matrix_Loc = aH.getUniformLocation(this.shaderProgram, \"u_mvpMatrix\");this.s_texture0_Loc = aH.getUniformLocation(this.shaderProgram, \"s_texture0\");this.u_channelFlag = aH.getUniformLocation(this.shaderProgram, \"u_channelFlag\");this.u_baseColor_Loc = aH.getUniformLocation(this.shaderProgram, \"u_baseColor\");this.u_maskFlag_Loc = aH.getUniformLocation(this.shaderProgram, \"u_maskFlag\");this.a_position_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, \"a_position\");this.a_texCoord_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, \"a_texCoord\");this.u_matrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_mvpMatrix\");this.u_clipMatrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_ClipMatrix\");this.s_texture0_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"s_texture0\");this.s_texture1_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"s_texture1\");this.u_channelFlag_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_channelFlag\");this.u_baseColor_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_baseColor\");\n };C.prototype.disposeShader = function () {\n var aH = this.gl;if (this.shaderProgram) {\n aH.deleteProgram(this.shaderProgram);this.shaderProgram = null;\n }if (this.shaderProgramOff) {\n aH.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = null;\n }\n };C.prototype.compileShader = function (aJ, aN) {\n var aM = this.gl;var aH;var aL = aN;var aK = aM.createShader(aJ);if (aK == null) {\n q._$Ji(\"_$L0 to create shader\");return null;\n }aM.shaderSource(aK, aL);aM.compileShader(aK);var aH = aM.getShaderParameter(aK, aM.COMPILE_STATUS);if (!aH) {\n var aI = aM.getShaderInfoLog(aK);q._$Ji(\"_$L0 to compile shader : \" + aI);aM.deleteShader(aK);return null;\n }return aK;\n };C.prototype.loadShaders2 = function () {\n var aN = this.gl;this.shaderProgram = aN.createProgram();if (!this.shaderProgram) {\n return false;\n }this.shaderProgramOff = aN.createProgram();if (!this.shaderProgramOff) {\n return false;\n }var aK = \"attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_mvpMatrix * a_position; v_texCoord = a_texCoord;}\";var aM = \"precision mediump float;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;uniform bool u_maskFlag;void main(){ vec4 smpColor; if(u_maskFlag){ float isInside = step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w) * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w) * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z) * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w); smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside; }else{ smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor; } gl_FragColor = smpColor;}\";var aL = \"attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;uniform mat4 u_ClipMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_ClipMatrix * a_position; v_texCoord = a_texCoord ;}\";var aJ = \"precision mediump float ;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor ;void main(){ vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor; vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}\";this.vertShader = this.compileShader(aN.VERTEX_SHADER, aK);if (!this.vertShader) {\n q._$Ji(\"Vertex shader compile _$li!\");return false;\n }this.vertShaderOff = this.compileShader(aN.VERTEX_SHADER, aL);if (!this.vertShaderOff) {\n q._$Ji(\"OffVertex shader compile _$li!\");return false;\n }this.fragShader = this.compileShader(aN.FRAGMENT_SHADER, aM);if (!this.fragShader) {\n q._$Ji(\"Fragment shader compile _$li!\");return false;\n }this.fragShaderOff = this.compileShader(aN.FRAGMENT_SHADER, aJ);if (!this.fragShaderOff) {\n q._$Ji(\"OffFragment shader compile _$li!\");return false;\n }aN.attachShader(this.shaderProgram, this.vertShader);aN.attachShader(this.shaderProgram, this.fragShader);aN.attachShader(this.shaderProgramOff, this.vertShaderOff);aN.attachShader(this.shaderProgramOff, this.fragShaderOff);aN.linkProgram(this.shaderProgram);aN.linkProgram(this.shaderProgramOff);var aH = aN.getProgramParameter(this.shaderProgram, aN.LINK_STATUS);if (!aH) {\n var aI = aN.getProgramInfoLog(this.shaderProgram);q._$Ji(\"_$L0 to link program: \" + aI);if (this.vertShader) {\n aN.deleteShader(this.vertShader);this.vertShader = 0;\n }if (this.fragShader) {\n aN.deleteShader(this.fragShader);this.fragShader = 0;\n }if (this.shaderProgram) {\n aN.deleteProgram(this.shaderProgram);this.shaderProgram = 0;\n }if (this.vertShaderOff) {\n aN.deleteShader(this.vertShaderOff);this.vertShaderOff = 0;\n }if (this.fragShaderOff) {\n aN.deleteShader(this.fragShaderOff);this.fragShaderOff = 0;\n }if (this.shaderProgramOff) {\n aN.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = 0;\n }return false;\n }return true;\n };C.prototype.createFramebuffer = function () {\n var aL = this.gl;var aK = Q.clippingMaskBufferSize;var aJ = aL.createFramebuffer();aL.bindFramebuffer(aL.FRAMEBUFFER, aJ);var aH = aL.createRenderbuffer();aL.bindRenderbuffer(aL.RENDERBUFFER, aH);aL.renderbufferStorage(aL.RENDERBUFFER, aL.RGBA4, aK, aK);aL.framebufferRenderbuffer(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.RENDERBUFFER, aH);var aI = aL.createTexture();aL.bindTexture(aL.TEXTURE_2D, aI);aL.texImage2D(aL.TEXTURE_2D, 0, aL.RGBA, aK, aK, 0, aL.RGBA, aL.UNSIGNED_BYTE, null);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MIN_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MAG_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_S, aL.CLAMP_TO_EDGE);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_T, aL.CLAMP_TO_EDGE);aL.framebufferTexture2D(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.TEXTURE_2D, aI, 0);aL.bindTexture(aL.TEXTURE_2D, null);aL.bindRenderbuffer(aL.RENDERBUFFER, null);aL.bindFramebuffer(aL.FRAMEBUFFER, null);Q.fTexture[this.glno] = aI;return { framebuffer: aJ, renderbuffer: aH, texture: Q.fTexture[this.glno] };\n };function K(aH) {\n if (j) {\n return;\n }this._$P = new Int8Array(8);this._$R0 = new DataView(this._$P.buffer);this._$3i = new Int8Array(1000);this._$hL = 0;this._$v0 = 0;this._$S2 = 0;this._$Ko = new Array();this._$T = aH;this._$F = 0;\n }K.prototype._$fP = function () {\n var aK = this._$ST();var aJ, aI, aH;if ((aK & 128) == 0) {\n return aK & 255;\n } else {\n if (((aJ = this._$ST()) & 128) == 0) {\n return (aK & 127) << 7 | aJ & 127;\n } else {\n if (((aI = this._$ST()) & 128) == 0) {\n return (aK & 127) << 14 | (aJ & 127) << 7 | aI & 255;\n } else {\n if (((aH = this._$ST()) & 128) == 0) {\n return (aK & 127) << 21 | (aJ & 127) << 14 | (aI & 127) << 7 | aH & 255;\n } else {\n throw new J(\"_$L _$0P _\");\n }\n }\n }\n }\n };K.prototype.getFormatVersion = function () {\n return this._$S2;\n };K.prototype._$gr = function (aH) {\n this._$S2 = aH;\n };K.prototype._$3L = function () {\n return this._$fP();\n };K.prototype._$mP = function () {\n this._$zT();this._$F += 8;return this._$T.getFloat64(this._$F - 8);\n };K.prototype._$_T = function () {\n this._$zT();this._$F += 4;return this._$T.getFloat32(this._$F - 4);\n };K.prototype._$6L = function () {\n this._$zT();this._$F += 4;return this._$T.getInt32(this._$F - 4);\n };K.prototype._$ST = function () {\n this._$zT();return this._$T.getInt8(this._$F++);\n };K.prototype._$9T = function () {\n this._$zT();this._$F += 2;return this._$T.getInt16(this._$F - 2);\n };K.prototype._$2T = function () {\n this._$zT();this._$F += 8;throw new J(\"_$L _$q read long\");\n };K.prototype._$po = function () {\n this._$zT();return this._$T.getInt8(this._$F++) != 0;\n };var O = true;K.prototype._$bT = function () {\n this._$zT();var aH = this._$3L();var aK = null;if (O) {\n try {\n var aM = new ArrayBuffer(aH * 2);aK = new Uint16Array(aM);for (var aJ = 0; aJ < aH; ++aJ) {\n aK[aJ] = this._$T.getUint8(this._$F++);\n }return String.fromCharCode.apply(null, aK);\n } catch (aL) {\n O = false;\n }\n }try {\n var aI = new Array();if (aK == null) {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = this._$T.getUint8(this._$F++);\n }\n } else {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = aK[aJ];\n }\n }return String.fromCharCode.apply(null, aI);\n } catch (aL) {\n console.log(\"read utf8 / _$rT _$L0 !! : \" + aL);\n }\n };K.prototype._$cS = function () {\n this._$zT();var aI = this._$3L();var aH = new Int32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getInt32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$Tb = function () {\n this._$zT();var aI = this._$3L();var aH = new Float32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$5b = function () {\n this._$zT();var aI = this._$3L();var aH = new Float64Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat64(this._$F);this._$F += 8;\n }return aH;\n };K.prototype._$nP = function () {\n return this._$Jb(-1);\n };K.prototype._$Jb = function (aJ) {\n this._$zT();if (aJ < 0) {\n aJ = this._$3L();\n }if (aJ == ay._$7P) {\n var aH = this._$6L();if (0 <= aH && aH < this._$Ko.length) {\n return this._$Ko[aH];\n } else {\n throw new J(\"_$sL _$4i @_$m0\");\n }\n } else {\n var aI = this._$4b(aJ);this._$Ko.push(aI);return aI;\n }\n };K.prototype._$4b = function (aN) {\n if (aN == 0) {\n return null;\n }if (aN == 50) {\n var aK = this._$bT();var aI = Z.getID(aK);return aI;\n } else {\n if (aN == 51) {\n var aK = this._$bT();var aI = n.getID(aK);return aI;\n } else {\n if (aN == 134) {\n var aK = this._$bT();var aI = i.getID(aK);return aI;\n } else {\n if (aN == 60) {\n var aK = this._$bT();var aI = z.getID(aK);return aI;\n }\n }\n }\n }if (aN >= 48) {\n var aL = ay._$9o(aN);if (aL != null) {\n aL._$F0(this);return aL;\n } else {\n return null;\n }\n }switch (aN) {case 1:\n return this._$bT();case 10:\n var aM = this._$6L();return new I(aM, true);case 11:\n return new av(this._$mP(), this._$mP(), this._$mP(), this._$mP());case 12:\n return new av(this._$_T(), this._$_T(), this._$_T(), this._$_T());case 13:\n return new e(this._$mP(), this._$mP());case 14:\n return new e(this._$_T(), this._$_T());case 15:\n var aH = this._$3L();var aI = new Array(aH);for (var aJ = 0; aJ < aH; aJ++) {\n aI[aJ] = this._$nP();\n }return aI;case 17:\n var aI = new aD(this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP());return aI;case 21:\n return new F(this._$6L(), this._$6L(), this._$6L(), this._$6L());case 22:\n return new k(this._$6L(), this._$6L());case 23:\n throw new Error(\"_$L _$ro \");case 16:case 25:\n return this._$cS();case 26:\n return this._$5b();case 27:\n return this._$Tb();case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 18:case 19:case 20:case 24:case 28:\n throw new J(\"_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : \" + aN);default:\n throw new J(\"_$6 _$q : _$nP() NO _$i : \" + aN);}\n };K.prototype._$8L = function () {\n if (this._$hL == 0) {\n this._$v0 = this._$ST();\n } else {\n if (this._$hL == 8) {\n this._$v0 = this._$ST();this._$hL = 0;\n }\n }return (this._$v0 >> 7 - this._$hL++ & 1) == 1;\n };K.prototype._$zT = function () {\n if (this._$hL != 0) {\n this._$hL = 0;\n }\n };function ai() {}ai.prototype._$wP = function (aM, aI, aK) {\n for (var aL = 0; aL < aK; aL++) {\n for (var aH = 0; aH < aI; aH++) {\n var aJ = 2 * (aH + aL * aI);console.log(\"(% 7.3f , % 7.3f) , \", aM[aJ], aM[aJ + 1]);\n }console.log(\"\\n\");\n }console.log(\"\\n\");\n };function aC() {}aC._$2S = Math.PI / 180;aC._$bS = Math.PI / 180;aC._$wS = 180 / Math.PI;aC._$NS = 180 / Math.PI;aC.PI_F = Math.PI;aC._$kT = [0, 0.012368, 0.024734, 0.037097, 0.049454, 0.061803, 0.074143, 0.086471, 0.098786, 0.111087, 0.12337, 0.135634, 0.147877, 0.160098, 0.172295, 0.184465, 0.196606, 0.208718, 0.220798, 0.232844, 0.244854, 0.256827, 0.268761, 0.280654, 0.292503, 0.304308, 0.316066, 0.327776, 0.339436, 0.351044, 0.362598, 0.374097, 0.385538, 0.396921, 0.408243, 0.419502, 0.430697, 0.441826, 0.452888, 0.463881, 0.474802, 0.485651, 0.496425, 0.507124, 0.517745, 0.528287, 0.538748, 0.549126, 0.559421, 0.56963, 0.579752, 0.589785, 0.599728, 0.609579, 0.619337, 0.629, 0.638567, 0.648036, 0.657406, 0.666676, 0.675843, 0.684908, 0.693867, 0.70272, 0.711466, 0.720103, 0.72863, 0.737045, 0.745348, 0.753536, 0.76161, 0.769566, 0.777405, 0.785125, 0.792725, 0.800204, 0.807561, 0.814793, 0.821901, 0.828884, 0.835739, 0.842467, 0.849066, 0.855535, 0.861873, 0.868079, 0.874153, 0.880093, 0.885898, 0.891567, 0.897101, 0.902497, 0.907754, 0.912873, 0.917853, 0.922692, 0.92739, 0.931946, 0.936359, 0.940629, 0.944755, 0.948737, 0.952574, 0.956265, 0.959809, 0.963207, 0.966457, 0.96956, 0.972514, 0.97532, 0.977976, 0.980482, 0.982839, 0.985045, 0.987101, 0.989006, 0.990759, 0.992361, 0.993811, 0.995109, 0.996254, 0.997248, 0.998088, 0.998776, 0.999312, 0.999694, 0.999924, 1];aC._$92 = function (aK, aI) {\n var aH = Math.atan2(aK[1], aK[0]);var aJ = Math.atan2(aI[1], aI[0]);return aC._$tS(aH, aJ);\n };aC._$tS = function (aI, aH) {\n var aJ = aI - aH;while (aJ < -Math.PI) {\n aJ += 2 * Math.PI;\n }while (aJ > Math.PI) {\n aJ -= 2 * Math.PI;\n }return aJ;\n };aC._$9 = function (aH) {\n return Math.sin(aH);\n };aC.fcos = function (aH) {\n return Math.cos(aH);\n };function aB(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$Us = null;this._$7s = null;this._$IS = [false];this._$VS = null;this._$AT = true;this.baseOpacity = 1;this.clipBufPre_clipContext = null;this._$e0 = aH;\n }aB.prototype._$u2 = function () {\n return this._$IS[0];\n };aB.prototype._$yo = function () {\n return this._$AT && !this._$IS[0];\n };aB.prototype._$GT = function () {\n return this._$e0;\n };function r() {}r._$W2 = 0;r.SYSTEM_INFO = null;r.USER_AGENT = navigator.userAgent;r.isIPhone = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone;\n };r.isIOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad;\n };r.isAndroid = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isAndroid;\n };r.getOSVersion = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO.version;\n };r.getOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }if (r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad) {\n return \"iOS\";\n }if (r.SYSTEM_INFO._isAndroid) {\n return \"Android\";\n } else {\n return \"_$Q0 OS\";\n }\n };r.setup = function () {\n var aK = r.USER_AGENT;function aI(aO, aR) {\n var aN = aO.substring(aR).split(/[ _,;\\.]/);var aQ = 0;for (var aM = 0; aM <= 2; aM++) {\n if (isNaN(aN[aM])) {\n break;\n }var aP = parseInt(aN[aM]);if (aP < 0 || aP > 999) {\n q._$li(\"err : \" + aP + \" @UtHtml5.setup()\");aQ = 0;break;\n }aQ += aP * Math.pow(1000, 2 - aM);\n }return aQ;\n }var aL;var aH;var aJ = r.SYSTEM_INFO = { userAgent: aK };if ((aL = aK.indexOf(\"iPhone OS \")) >= 0) {\n aJ.os = \"iPhone\";aJ._isIPhone = true;aJ.version = aI(aK, aL + \"iPhone OS \".length);\n } else {\n if ((aL = aK.indexOf(\"iPad\")) >= 0) {\n aL = aK.indexOf(\"CPU OS\");if (aL < 0) {\n q._$li(\" err : \" + aK + \" @UtHtml5.setup()\");return;\n }aJ.os = \"iPad\";aJ._isIPad = true;aJ.version = aI(aK, aL + \"CPU OS \".length);\n } else {\n if ((aL = aK.indexOf(\"Android\")) >= 0) {\n aJ.os = \"Android\";aJ._isAndroid = true;aJ.version = aI(aK, aL + \"Android \".length);\n } else {\n aJ.os = \"-\";aJ.version = -1;\n }\n }\n }\n };window.UtSystem = P;window.UtDebug = q;window.LDTransform = am;window.LDGL = au;window.Live2D = Q;window.Live2DModelWebGL = l;window.Live2DModelJS = v;window.Live2DMotion = ao;window.MotionQueueManager = V;window.PhysicsHair = u;window.AMotion = ah;window.PartsDataID = i;window.DrawDataID = Z;window.BaseDataID = n;window.ParamID = z;Q.init();var j = false;\n})();\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n// Provide a \"System\" global.\r\nmodule.exports = {\r\n\t// Make sure import is only used as \"System.import\"\r\n\timport: function() {\r\n\t\tthrow new Error(\"System.import cannot be used indirectly\");\r\n\t}\r\n};\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(4);\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// bundle.js"," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d02b5a00476965e4258d","/**\r\n * EYHN 基于 live2d 官方 Live2DFramework.js 修改\r\n * \r\n * Copyright © 2016 - 2017 EYHN\r\n */\r\n//============================================================\r\n//============================================================\r\n// class L2DBaseModel \r\n//============================================================\r\n//============================================================\r\nfunction L2DBaseModel() {\r\n this.live2DModel = null; // ALive2DModel\r\n this.modelMatrix = null; // L2DModelMatrix\r\n this.eyeBlink = null; // L2DEyeBlink\r\n this.physics = null; // L2DPhysics\r\n this.pose = null; // L2DPose\r\n this.debugMode = false;\r\n this.initialized = false;\r\n this.updating = false;\r\n this.alpha = 1;\r\n this.accAlpha = 0;\r\n this.lipSync = false;\r\n this.lipSyncValue = 0;\r\n this.accelX = 0;\r\n this.accelY = 0;\r\n this.accelZ = 0;\r\n this.dragX = 0;\r\n this.dragY = 0;\r\n this.startTimeMSec = null;\r\n this.mainMotionManager = new L2DMotionManager(); //L2DMotionManager\r\n this.expressionManager = new L2DMotionManager(); //L2DMotionManager\r\n this.motions = {};\r\n this.expressions = {};\r\n\r\n this.isTexLoaded = false;\r\n}\r\n\r\nvar texCounter = 0;\r\n\r\n//============================================================\r\n// L2DBaseModel # getModelMatrix()\r\n//============================================================\r\nL2DBaseModel.prototype.getModelMatrix = function () {\r\n return this.modelMatrix;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setAlpha()\r\n//============================================================\r\nL2DBaseModel.prototype.setAlpha = function (a/*float*/) {\r\n if (a > 0.999) a = 1;\r\n if (a < 0.001) a = 0;\r\n this.alpha = a;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getAlpha()\r\n//============================================================\r\nL2DBaseModel.prototype.getAlpha = function () {\r\n return this.alpha;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # isInitialized()\r\n//============================================================\r\nL2DBaseModel.prototype.isInitialized = function () {\r\n return this.initialized;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setInitialized()\r\n//============================================================\r\nL2DBaseModel.prototype.setInitialized = function (v/*boolean*/) {\r\n this.initialized = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # isUpdating()\r\n//============================================================\r\nL2DBaseModel.prototype.isUpdating = function () {\r\n return this.updating;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setUpdating()\r\n//============================================================\r\nL2DBaseModel.prototype.setUpdating = function (v/*boolean*/) {\r\n this.updating = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getLive2DModel()\r\n//============================================================\r\nL2DBaseModel.prototype.getLive2DModel = function () {\r\n return this.live2DModel;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setLipSync()\r\n//============================================================\r\nL2DBaseModel.prototype.setLipSync = function (v/*boolean*/) {\r\n this.lipSync = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setLipSyncValue()\r\n//============================================================\r\nL2DBaseModel.prototype.setLipSyncValue = function (v/*float*/) {\r\n this.lipSyncValue = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setAccel()\r\n//============================================================\r\nL2DBaseModel.prototype.setAccel = function (x/*float*/, y/*float*/, z/*float*/) {\r\n this.accelX = x;\r\n this.accelY = y;\r\n this.accelZ = z;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setDrag()\r\n//============================================================\r\nL2DBaseModel.prototype.setDrag = function (x/*float*/, y/*float*/) {\r\n this.dragX = x;\r\n this.dragY = y;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getMainMotionManager()\r\n//============================================================\r\nL2DBaseModel.prototype.getMainMotionManager = function () {\r\n return this.mainMotionManager;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getExpressionManager()\r\n//============================================================\r\nL2DBaseModel.prototype.getExpressionManager = function () {\r\n return this.expressionManager;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadModelData()\r\n//============================================================\r\nL2DBaseModel.prototype.loadModelData = function (path/*String*/, callback) {\r\n /*\r\n if( this.live2DModel != null ) {\r\n this.live2DModel.deleteTextures();\r\n }\r\n */\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load model : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadLive2DModel(path, function (l2dModel) {\r\n thisRef.live2DModel = l2dModel;\r\n thisRef.live2DModel.saveParam();\r\n\r\n var _err = Live2D.getError();\r\n\r\n if (_err != 0) {\r\n console.error(\"Error : Failed to loadModelData().\");\r\n return;\r\n }\r\n\r\n thisRef.modelMatrix = new L2DModelMatrix(\r\n thisRef.live2DModel.getCanvasWidth(),\r\n thisRef.live2DModel.getCanvasHeight()); //L2DModelMatrix\r\n thisRef.modelMatrix.setWidth(2);\r\n thisRef.modelMatrix.setCenterPosition(0, 0);\r\n\r\n callback(thisRef.live2DModel);\r\n });\r\n}\r\n\r\n\r\n//============================================================\r\n// L2DBaseModel # loadTexture()\r\n//============================================================\r\nL2DBaseModel.prototype.loadTexture = function (no/*int*/, path/*String*/, callback) {\r\n texCounter++;\r\n\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Texture : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadTexture(this.live2DModel, no, path, function () {\r\n texCounter--;\r\n if (texCounter == 0) thisRef.isTexLoaded = true;\r\n if (typeof callback == \"function\") callback();\r\n });\r\n\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadMotion()\r\n//============================================================\r\nL2DBaseModel.prototype.loadMotion = function (name/*String*/, path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Motion : \" + path);\r\n\r\n var motion = null; //Live2DMotion\r\n\r\n var thisRef = this;\r\n pm.loadBytes(path, function (buf) {\r\n motion = Live2DMotion.loadMotion(buf);\r\n if (name != null) {\r\n thisRef.motions[name] = motion;\r\n }\r\n callback(motion);\r\n });\r\n\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadExpression()\r\n//============================================================\r\nL2DBaseModel.prototype.loadExpression = function (name/*String*/, path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Expression : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadBytes(path, function (buf) {\r\n if (name != null) {\r\n thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf);\r\n }\r\n if (typeof callback == \"function\") callback();\r\n });\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadPose()\r\n//============================================================\r\nL2DBaseModel.prototype.loadPose = function (path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load Pose : \" + path);\r\n var thisRef = this;\r\n try {\r\n pm.loadBytes(path, function (buf) {\r\n thisRef.pose = L2DPose.load(buf);\r\n if (typeof callback == \"function\") callback();\r\n });\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadPhysics()\r\n//============================================================\r\nL2DBaseModel.prototype.loadPhysics = function (path/*String*/) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load Physics : \" + path);\r\n var thisRef = this;\r\n try {\r\n pm.loadBytes(path, function (buf) {\r\n thisRef.physics = L2DPhysics.load(buf);\r\n });\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # hitTestSimple()\r\n//============================================================\r\nL2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) {\r\n var drawIndex = this.live2DModel.getDrawDataIndex(drawID);\r\n\r\n if (drawIndex < 0) return false;\r\n\r\n var points = this.live2DModel.getTransformedPoints(drawIndex);\r\n var left = this.live2DModel.getCanvasWidth();\r\n var right = 0;\r\n var top = this.live2DModel.getCanvasHeight();\r\n var bottom = 0;\r\n\r\n for (var j = 0; j < points.length; j = j + 2) {\r\n var x = points[j];\r\n var y = points[j + 1];\r\n\r\n if (x < left) left = x;\r\n if (x > right) right = x;\r\n if (y < top) top = y;\r\n if (y > bottom) bottom = y;\r\n }\r\n var tx = this.modelMatrix.invertTransformX(testX);\r\n var ty = this.modelMatrix.invertTransformY(testY);\r\n\r\n return (left <= tx && tx <= right && top <= ty && ty <= bottom);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DExpressionMotion extends AMotion\r\n//============================================================\r\n//============================================================\r\nfunction L2DExpressionMotion() {\r\n AMotion.prototype.constructor.call(this);\r\n this.paramList = new Array(); //ArrayList\r\n}\r\n\r\nL2DExpressionMotion.prototype = new AMotion(); // L2DExpressionMotion extends AMotion\r\n\r\n//============================================================\r\nL2DExpressionMotion.EXPRESSION_DEFAULT = \"DEFAULT\";\r\nL2DExpressionMotion.TYPE_SET = 0;\r\nL2DExpressionMotion.TYPE_ADD = 1;\r\nL2DExpressionMotion.TYPE_MULT = 2;\r\n\r\n//============================================================\r\n// static L2DExpressionMotion.loadJson()\r\n//============================================================\r\nL2DExpressionMotion.loadJson = function (buf) {\r\n var ret = new L2DExpressionMotion();\r\n\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n\r\n ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);\r\n ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);\r\n\r\n if (json.params == null) {\r\n return ret;\r\n }\r\n\r\n var params = json.params;\r\n var paramNum = params.length;\r\n ret.paramList = []; //ArrayList\r\n for (var i = 0; i < paramNum; i++) {\r\n var param = params[i];\r\n var paramID = param.id.toString();\r\n var value = parseFloat(param.val);\r\n var calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n var calc = param.calc != null ? param.calc.toString() : \"add\";\r\n if (calc === \"add\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n }\r\n else if (calc === \"mult\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_MULT;\r\n }\r\n else if (calc === \"set\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_SET;\r\n }\r\n else {\r\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n }\r\n if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {\r\n var defaultValue = param.def == null ? 0 : parseFloat(param.def);\r\n value = value - defaultValue;\r\n }\r\n else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {\r\n var defaultValue = param.def == null ? 1 : parseFloat(param.def);\r\n if (defaultValue == 0) defaultValue = 1;\r\n value = value / defaultValue;\r\n }\r\n\r\n var item = new L2DExpressionParam();\r\n item.id = paramID;\r\n item.type = calcTypeInt;\r\n item.value = value;\r\n\r\n ret.paramList.push(item);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n\r\n//============================================================\r\n// L2DExpressionMotion # updateParamExe()\r\n//============================================================\r\nL2DExpressionMotion.prototype.updateParamExe = function (model /*ALive2DModel*/, timeMSec/*long*/, weight /*float*/, motionQueueEnt /*MotionQueueEnt*/) {\r\n for (var i = this.paramList.length - 1; i >= 0; --i) {\r\n var param = this.paramList[i]; //L2DExpressionParam\r\n // if (!param || !param.type) continue;\r\n if (param.type == L2DExpressionMotion.TYPE_ADD) {\r\n model.addToParamFloat(param.id, param.value, weight);\r\n }\r\n else if (param.type == L2DExpressionMotion.TYPE_MULT) {\r\n model.multParamFloat(param.id, param.value, weight);\r\n }\r\n else if (param.type == L2DExpressionMotion.TYPE_SET) {\r\n model.setParamFloat(param.id, param.value, weight);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DExpressionParam \r\n//============================================================\r\n//============================================================\r\nfunction L2DExpressionParam() {\r\n this.id = \"\";\r\n this.type = -1;\r\n this.value = null;\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DEyeBlink \r\n//============================================================\r\n//============================================================\r\nfunction L2DEyeBlink() {\r\n this.nextBlinkTime = null /* TODO NOT INIT */; // \r\n this.stateStartTime = null /* TODO NOT INIT */; // \r\n this.blinkIntervalMsec = null /* TODO NOT INIT */; // \r\n this.eyeState = EYE_STATE.STATE_FIRST;\r\n this.blinkIntervalMsec = 4000;\r\n this.closingMotionMsec = 100;\r\n this.closedMotionMsec = 50;\r\n this.openingMotionMsec = 150;\r\n this.closeIfZero = true;\r\n this.eyeID_L = \"PARAM_EYE_L_OPEN\";\r\n this.eyeID_R = \"PARAM_EYE_R_OPEN\";\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # calcNextBlink()\r\n//============================================================\r\nL2DEyeBlink.prototype.calcNextBlink = function () {\r\n var time /*long*/ = UtSystem.getUserTimeMSec();\r\n var r /*Number*/ = Math.random();\r\n return /*(long)*/ (time + r * (2 * this.blinkIntervalMsec - 1));\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # setInterval()\r\n//============================================================\r\nL2DEyeBlink.prototype.setInterval = function (blinkIntervalMsec /*int*/) {\r\n this.blinkIntervalMsec = blinkIntervalMsec;\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # setEyeMotion()\r\n//============================================================\r\nL2DEyeBlink.prototype.setEyeMotion = function (closingMotionMsec/*int*/, closedMotionMsec/*int*/, openingMotionMsec/*int*/) {\r\n this.closingMotionMsec = closingMotionMsec;\r\n this.closedMotionMsec = closedMotionMsec;\r\n this.openingMotionMsec = openingMotionMsec;\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # updateParam()\r\n//============================================================\r\nL2DEyeBlink.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var time /*:long*/ = UtSystem.getUserTimeMSec();\r\n var eyeParamValue /*:Number*/;\r\n var t /*:Number*/ = 0;\r\n switch (this.eyeState) {\r\n case EYE_STATE.STATE_CLOSING:\r\n t = (time - this.stateStartTime) / this.closingMotionMsec;\r\n if (t >= 1) {\r\n t = 1;\r\n this.eyeState = EYE_STATE.STATE_CLOSED;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 1 - t;\r\n break;\r\n case EYE_STATE.STATE_CLOSED:\r\n t = (time - this.stateStartTime) / this.closedMotionMsec;\r\n if (t >= 1) {\r\n this.eyeState = EYE_STATE.STATE_OPENING;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 0;\r\n break;\r\n case EYE_STATE.STATE_OPENING:\r\n t = (time - this.stateStartTime) / this.openingMotionMsec;\r\n if (t >= 1) {\r\n t = 1;\r\n this.eyeState = EYE_STATE.STATE_INTERVAL;\r\n this.nextBlinkTime = this.calcNextBlink();\r\n }\r\n eyeParamValue = t;\r\n break;\r\n case EYE_STATE.STATE_INTERVAL:\r\n if (this.nextBlinkTime < time) {\r\n this.eyeState = EYE_STATE.STATE_CLOSING;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 1;\r\n break;\r\n case EYE_STATE.STATE_FIRST:\r\n default:\r\n this.eyeState = EYE_STATE.STATE_INTERVAL;\r\n this.nextBlinkTime = this.calcNextBlink();\r\n eyeParamValue = 1;\r\n break;\r\n }\r\n if (!this.closeIfZero) eyeParamValue = -eyeParamValue;\r\n model.setParamFloat(this.eyeID_L, eyeParamValue);\r\n model.setParamFloat(this.eyeID_R, eyeParamValue);\r\n}\r\n\r\n//== enum EYE_STATE ==\r\nvar EYE_STATE = function () { };\r\n\r\nEYE_STATE.STATE_FIRST = \"STATE_FIRST\"\r\nEYE_STATE.STATE_INTERVAL = \"STATE_INTERVAL\"\r\nEYE_STATE.STATE_CLOSING = \"STATE_CLOSING\"\r\nEYE_STATE.STATE_CLOSED = \"STATE_CLOSED\"\r\nEYE_STATE.STATE_OPENING = \"STATE_OPENING\"\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DMatrix44 \r\n//============================================================\r\n//============================================================\r\nfunction L2DMatrix44() {\r\n this.tr = new Float32Array(16); // \r\n this.identity();\r\n}\r\n\r\n//============================================================\r\n// static L2DMatrix44.mul()\r\n//============================================================\r\nL2DMatrix44.mul = function (a/*float[]*/, b/*float[]*/, dst/*float[]*/) {\r\n var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n var n = 4;\r\n var i, j, k;\r\n for (i = 0; i < n; i++) {\r\n for (j = 0; j < n; j++) {\r\n for (k = 0; k < n; k++) {\r\n c[i + j * 4] += a[i + k * 4] * b[k + j * 4];\r\n }\r\n }\r\n }\r\n for (i = 0; i < 16; i++) {\r\n dst[i] = c[i];\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # identity()\r\n//============================================================\r\nL2DMatrix44.prototype.identity = function () {\r\n for (var i/*:int*/ = 0; i < 16; i++)\r\n this.tr[i] = ((i % 5) == 0) ? 1 : 0;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getArray()\r\n//============================================================\r\nL2DMatrix44.prototype.getArray = function () {\r\n return this.tr;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getCopyMatrix()\r\n//============================================================\r\nL2DMatrix44.prototype.getCopyMatrix = function () {\r\n return new Float32Array(this.tr); // this.tr.clone();\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # setMatrix()\r\n//============================================================\r\nL2DMatrix44.prototype.setMatrix = function (tr/*float[]*/) {\r\n if (this.tr == null || this.tr.length != this.tr.length) return;\r\n for (var i/*:int*/ = 0; i < 16; i++) this.tr[i] = tr[i];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getScaleX()\r\n//============================================================\r\nL2DMatrix44.prototype.getScaleX = function () {\r\n return this.tr[0];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getScaleY()\r\n//============================================================\r\nL2DMatrix44.prototype.getScaleY = function () {\r\n return this.tr[5];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # transformX()\r\n//============================================================\r\nL2DMatrix44.prototype.transformX = function (src/*float*/) {\r\n return this.tr[0] * src + this.tr[12];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # transformY()\r\n//============================================================\r\nL2DMatrix44.prototype.transformY = function (src/*float*/) {\r\n return this.tr[5] * src + this.tr[13];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # invertTransformX()\r\n//============================================================\r\nL2DMatrix44.prototype.invertTransformX = function (src/*float*/) {\r\n return (src - this.tr[12]) / this.tr[0];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # invertTransformY()\r\n//============================================================\r\nL2DMatrix44.prototype.invertTransformY = function (src/*float*/) {\r\n return (src - this.tr[13]) / this.tr[5];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # multTranslate()\r\n//============================================================\r\nL2DMatrix44.prototype.multTranslate = function (shiftX/*float*/, shiftY/*float*/) {\r\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translate()\r\n//============================================================\r\nL2DMatrix44.prototype.translate = function (x/*float*/, y/*float*/) {\r\n this.tr[12] = x;\r\n this.tr[13] = y;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translateX()\r\n//============================================================\r\nL2DMatrix44.prototype.translateX = function (x/*float*/) {\r\n this.tr[12] = x;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translateY()\r\n//============================================================\r\nL2DMatrix44.prototype.translateY = function (y/*float*/) {\r\n this.tr[13] = y;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # multScale()\r\n//============================================================\r\nL2DMatrix44.prototype.multScale = function (scaleX/*float*/, scaleY/*float*/) {\r\n var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # scale()\r\n//============================================================\r\nL2DMatrix44.prototype.scale = function (scaleX/*float*/, scaleY/*float*/) {\r\n this.tr[0] = scaleX;\r\n this.tr[5] = scaleY;\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DModelMatrix extends L2DMatrix44\r\n//============================================================\r\n//============================================================\r\nfunction L2DModelMatrix(w/*float*/, h/*float*/) {\r\n L2DMatrix44.prototype.constructor.call(this);\r\n this.width = w;\r\n this.height = h;\r\n}\r\n\r\n//L2DModelMatrix extends L2DMatrix44\r\nL2DModelMatrix.prototype = new L2DMatrix44();\r\n\r\n//============================================================\r\n// L2DModelMatrix # setPosition()\r\n//============================================================\r\nL2DModelMatrix.prototype.setPosition = function (x/*float*/, y/*float*/) {\r\n this.translate(x, y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setCenterPosition()\r\n//============================================================\r\nL2DModelMatrix.prototype.setCenterPosition = function (x/*float*/, y/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n var h = this.height * this.getScaleY();\r\n this.translate(x - w / 2, y - h / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # top()\r\n//============================================================\r\nL2DModelMatrix.prototype.top = function (y/*float*/) {\r\n this.setY(y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # bottom()\r\n//============================================================\r\nL2DModelMatrix.prototype.bottom = function (y/*float*/) {\r\n var h = this.height * this.getScaleY();\r\n this.translateY(y - h);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # left()\r\n//============================================================\r\nL2DModelMatrix.prototype.left = function (x/*float*/) {\r\n this.setX(x);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # right()\r\n//============================================================\r\nL2DModelMatrix.prototype.right = function (x/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n this.translateX(x - w);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # centerX()\r\n//============================================================\r\nL2DModelMatrix.prototype.centerX = function (x/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n this.translateX(x - w / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # centerY()\r\n//============================================================\r\nL2DModelMatrix.prototype.centerY = function (y/*float*/) {\r\n var h = this.height * this.getScaleY();\r\n this.translateY(y - h / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setX()\r\n//============================================================\r\nL2DModelMatrix.prototype.setX = function (x/*float*/) {\r\n this.translateX(x);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setY()\r\n//============================================================\r\nL2DModelMatrix.prototype.setY = function (y/*float*/) {\r\n this.translateY(y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setHeight()\r\n//============================================================\r\nL2DModelMatrix.prototype.setHeight = function (h/*float*/) {\r\n var scaleX = h / this.height;\r\n var scaleY = -scaleX;\r\n this.scale(scaleX, scaleY);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setWidth()\r\n//============================================================\r\nL2DModelMatrix.prototype.setWidth = function (w/*float*/) {\r\n var scaleX = w / this.width;\r\n var scaleY = -scaleX;\r\n this.scale(scaleX, scaleY);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DMotionManager extends MotionQueueManager\r\n//============================================================\r\n//============================================================\r\nfunction L2DMotionManager() {\r\n MotionQueueManager.prototype.constructor.call(this);\r\n this.currentPriority = null;\r\n this.reservePriority = null;\r\n\r\n this.super = MotionQueueManager.prototype;\r\n}\r\n\r\n\r\nL2DMotionManager.prototype = new MotionQueueManager();\r\n\r\n//============================================================\r\n// L2DMotionManager # getCurrentPriority()\r\n//============================================================\r\nL2DMotionManager.prototype.getCurrentPriority = function () {\r\n return this.currentPriority;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # getReservePriority()\r\n//============================================================\r\nL2DMotionManager.prototype.getReservePriority = function () {\r\n return this.reservePriority;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # reserveMotion()\r\n//============================================================\r\nL2DMotionManager.prototype.reserveMotion = function (priority/*int*/) {\r\n if (this.reservePriority >= priority) {\r\n return false;\r\n }\r\n if (this.currentPriority >= priority) {\r\n return false;\r\n }\r\n\r\n this.reservePriority = priority;\r\n\r\n return true;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # setReservePriority()\r\n//============================================================\r\nL2DMotionManager.prototype.setReservePriority = function (val/*int*/) {\r\n this.reservePriority = val;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # updateParam()\r\n//============================================================\r\nL2DMotionManager.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var updated = MotionQueueManager.prototype.updateParam.call(this, model);\r\n\r\n if (this.isFinished()) {\r\n this.currentPriority = 0;\r\n }\r\n\r\n return updated;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # startMotionPrio()\r\n//============================================================\r\nL2DMotionManager.prototype.startMotionPrio = function (motion/*AMotion*/, priority/*int*/) {\r\n if (priority == this.reservePriority) {\r\n this.reservePriority = 0;\r\n }\r\n this.currentPriority = priority;\r\n return this.startMotion(motion, false);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPhysics \r\n//============================================================\r\n//============================================================\r\nfunction L2DPhysics() {\r\n this.physicsList = new Array(); //ArrayList\r\n this.startTimeMSec = UtSystem.getUserTimeMSec();\r\n}\r\n\r\n//============================================================\r\n// static L2DPhysics.load()\r\n//============================================================\r\nL2DPhysics.load = function (buf /*byte[]*/) {\r\n var ret = new L2DPhysics(); //L2DPhysicsL2DPhysics\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n var params = json.physics_hair;\r\n var paramNum = params.length;\r\n for (var i = 0; i < paramNum; i++) {\r\n var param = params[i]; //Value\r\n var physics = new PhysicsHair(); //PhysicsHairPhysicsHair\r\n var setup = param.setup; //Value\r\n var length = parseFloat(setup.length);\r\n var resist = parseFloat(setup.regist);\r\n var mass = parseFloat(setup.mass);\r\n physics.setup(length, resist, mass);\r\n var srcList = param.src; //Value\r\n var srcNum = srcList.length;\r\n for (var j = 0; j < srcNum; j++) {\r\n var src = srcList[j]; //Value\r\n var id = src.id; //String\r\n var type = PhysicsHair.Src.SRC_TO_X;\r\n var typeStr = src.ptype; //String\r\n if (typeStr === \"x\") {\r\n type = PhysicsHair.Src.SRC_TO_X;\r\n }\r\n else if (typeStr === \"y\") {\r\n type = PhysicsHair.Src.SRC_TO_Y;\r\n }\r\n else if (typeStr === \"angle\") {\r\n type = PhysicsHair.Src.SRC_TO_G_ANGLE;\r\n }\r\n else {\r\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Src\");\r\n }\r\n var scale = parseFloat(src.scale);\r\n var weight = parseFloat(src.weight);\r\n physics.addSrcParam(type, id, scale, weight);\r\n }\r\n var targetList = param.targets; //Value\r\n var targetNum = targetList.length;\r\n for (var j = 0; j < targetNum; j++) {\r\n var target = targetList[j]; //Value\r\n var id = target.id; //String\r\n var type = PhysicsHair.Target.TARGET_FROM_ANGLE;\r\n var typeStr = target.ptype; //String\r\n if (typeStr === \"angle\") {\r\n type = PhysicsHair.Target.TARGET_FROM_ANGLE;\r\n }\r\n else if (typeStr === \"angle_v\") {\r\n type = PhysicsHair.Target.TARGET_FROM_ANGLE_V;\r\n }\r\n else {\r\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Target\");\r\n }\r\n var scale = parseFloat(target.scale);\r\n var weight = parseFloat(target.weight);\r\n physics.addTargetParam(type, id, scale, weight);\r\n }\r\n ret.physicsList.push(physics);\r\n }\r\n return ret;\r\n}\r\n\r\n//============================================================\r\n// L2DPhysics # updateParam()\r\n//============================================================\r\nL2DPhysics.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\r\n for (var i = 0; i < this.physicsList.length; i++) {\r\n this.physicsList[i].update(model, timeMSec);\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPose \r\n//============================================================\r\n//============================================================\r\nfunction L2DPose() {\r\n this.lastTime = 0;\r\n this.lastModel = null; //ALive2DModel\r\n this.partsGroups = new Array(); //ArrayList\r\n}\r\n\r\n\r\n//============================================================\r\n// static L2DPose.load()\r\n//============================================================\r\nL2DPose.load = function (buf/*byte[]*/) {\r\n var ret = new L2DPose(); //L2DPose\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n var poseListInfo = json.parts_visible; //Value\r\n var poseNum = poseListInfo.length;\r\n for (var i_pose = 0; i_pose < poseNum; i_pose++) {\r\n var poseInfo = poseListInfo[i_pose]; //Value\r\n var idListInfo = poseInfo.group; //Value\r\n var idNum = idListInfo.length;\r\n var partsGroup/*L2DPartsParam*/ = new Array();\r\n for (var i_group = 0; i_group < idNum; i_group++) {\r\n var partsInfo = idListInfo[i_group]; //Value\r\n var parts = new L2DPartsParam(partsInfo.id); //L2DPartsParamL2DPartsParam\r\n partsGroup[i_group] = parts;\r\n if (partsInfo.link == null) continue;\r\n var linkListInfo = partsInfo.link; //Value\r\n var linkNum = linkListInfo.length;\r\n parts.link = new Array(); //ArrayList\r\n for (var i_link = 0; i_link < linkNum; i_link++) {\r\n var linkParts = new L2DPartsParam(linkListInfo[i_link]); //L2DPartsParamL2DPartsParam\r\n parts.link.push(linkParts);\r\n }\r\n }\r\n ret.partsGroups.push(partsGroup);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n//============================================================\r\n// L2DPose # updateParam()\r\n//============================================================\r\nL2DPose.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n if (model == null) return;\r\n\r\n if (!(model == this.lastModel)) {\r\n this.initParam(model);\r\n }\r\n this.lastModel = model;\r\n\r\n var curTime = UtSystem.getUserTimeMSec();\r\n var deltaTimeSec = ((this.lastTime == 0) ? 0 : (curTime - this.lastTime) / 1000.0);\r\n this.lastTime = curTime;\r\n if (deltaTimeSec < 0) deltaTimeSec = 0;\r\n for (var i = 0; i < this.partsGroups.length; i++) {\r\n this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);\r\n this.copyOpacityOtherParts(model, this.partsGroups[i]);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # initParam()\r\n//============================================================\r\nL2DPose.prototype.initParam = function (model/*ALive2DModel*/) {\r\n if (model == null) return;\r\n for (var i = 0; i < this.partsGroups.length; i++) {\r\n var partsGroup = this.partsGroups[i]; //L2DPartsParam\r\n for (var j = 0; j < partsGroup.length; j++) {\r\n partsGroup[j].initIndex(model);\r\n var partsIndex = partsGroup[j].partsIndex;\r\n var paramIndex = partsGroup[j].paramIndex;\r\n if (partsIndex < 0) continue;\r\n var v/*:Boolean*/ = (model.getParamFloat(paramIndex) != 0);\r\n model.setPartsOpacity(partsIndex, (v ? 1.0 : 0.0));\r\n model.setParamFloat(paramIndex, (v ? 1.0 : 0.0));\r\n if (partsGroup[j].link == null) continue;\r\n for (var k = 0; k < partsGroup[j].link.length; k++) {\r\n partsGroup[j].link[k].initIndex(model);\r\n }\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # normalizePartsOpacityGroup()\r\n//============================================================\r\nL2DPose.prototype.normalizePartsOpacityGroup = function (model/*ALive2DModel*/, partsGroup/*L2DPartsParam[]*/, deltaTimeSec/*float*/) {\r\n var visibleParts = -1;\r\n var visibleOpacity = 1.0;\r\n var CLEAR_TIME_SEC = 0.5;\r\n var phi = 0.5;\r\n var maxBackOpacity = 0.15;\r\n for (var i = 0; i < partsGroup.length; i++) {\r\n var partsIndex = partsGroup[i].partsIndex;\r\n var paramIndex = partsGroup[i].paramIndex;\r\n if (partsIndex < 0) continue; if (model.getParamFloat(paramIndex) != 0) {\r\n if (visibleParts >= 0) {\r\n break;\r\n }\r\n visibleParts = i;\r\n visibleOpacity = model.getPartsOpacity(partsIndex);\r\n visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;\r\n if (visibleOpacity > 1) {\r\n visibleOpacity = 1;\r\n }\r\n }\r\n }\r\n if (visibleParts < 0) {\r\n visibleParts = 0;\r\n visibleOpacity = 1;\r\n }\r\n for (var i = 0; i < partsGroup.length; i++) {\r\n var partsIndex = partsGroup[i].partsIndex;\r\n if (partsIndex < 0) continue; if (visibleParts == i) {\r\n model.setPartsOpacity(partsIndex, visibleOpacity);\r\n }\r\n else {\r\n var opacity = model.getPartsOpacity(partsIndex);\r\n var a1;\r\n if (visibleOpacity < phi) {\r\n a1 = visibleOpacity * (phi - 1) / phi + 1;\r\n }\r\n else {\r\n a1 = (1 - visibleOpacity) * phi / (1 - phi);\r\n }\r\n var backOp = (1 - a1) * (1 - visibleOpacity);\r\n if (backOp > maxBackOpacity) {\r\n a1 = 1 - maxBackOpacity / (1 - visibleOpacity);\r\n }\r\n if (opacity > a1) {\r\n opacity = a1;\r\n }\r\n model.setPartsOpacity(partsIndex, opacity);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # copyOpacityOtherParts()\r\n//============================================================\r\nL2DPose.prototype.copyOpacityOtherParts = function (model/*ALive2DModel*/, partsGroup/*L2DPartsParam[]*/) {\r\n for (var i_group = 0; i_group < partsGroup.length; i_group++) {\r\n var partsParam = partsGroup[i_group]; //L2DPartsParam\r\n if (partsParam.link == null) continue;\r\n if (partsParam.partsIndex < 0) continue;\r\n var opacity = model.getPartsOpacity(partsParam.partsIndex);\r\n for (var i_link = 0; i_link < partsParam.link.length; i_link++) {\r\n var linkParts = partsParam.link[i_link]; //L2DPartsParam\r\n if (linkParts.partsIndex < 0) continue;\r\n model.setPartsOpacity(linkParts.partsIndex, opacity);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPartsParam \r\n//============================================================\r\n//============================================================\r\nfunction L2DPartsParam(id/*String*/) {\r\n this.paramIndex = -1;\r\n this.partsIndex = -1;\r\n this.link = null; // ArrayList\r\n this.id = id;\r\n}\r\n\r\n//============================================================\r\n// L2DPartsParam # initIndex()\r\n//============================================================\r\nL2DPartsParam.prototype.initIndex = function (model/*ALive2DModel*/) {\r\n this.paramIndex = model.getParamIndex(\"VISIBLE:\" + this.id);\r\n this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));\r\n model.setParamFloat(this.paramIndex, 1);\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DTargetPoint \r\n//============================================================\r\n//============================================================\r\nfunction L2DTargetPoint() {\r\n this.EPSILON = 0.01; // 変化の最小値(この値以下は無視される)\r\n this.faceTargetX = 0;\r\n this.faceTargetY = 0;\r\n this.faceX = 0;\r\n this.faceY = 0;\r\n this.faceVX = 0;\r\n this.faceVY = 0;\r\n this.lastTimeSec = 0;\r\n}\r\n\r\n//============================================================\r\nL2DTargetPoint.FRAME_RATE = 30;\r\n\r\n//============================================================\r\n// L2DTargetPoint # set()\r\n//============================================================\r\nL2DTargetPoint.prototype.setPoint = function (x/*float*/, y/*float*/) {\r\n this.faceTargetX = x;\r\n this.faceTargetY = y;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # getX()\r\n//============================================================\r\nL2DTargetPoint.prototype.getX = function () {\r\n return this.faceX;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # getY()\r\n//============================================================\r\nL2DTargetPoint.prototype.getY = function () {\r\n return this.faceY;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # update()\r\n//============================================================\r\nL2DTargetPoint.prototype.update = function () {\r\n var TIME_TO_MAX_SPEED = 0.15;\r\n var FACE_PARAM_MAX_V = 40.0 / 7.5;\r\n var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;\r\n if (this.lastTimeSec == 0) {\r\n this.lastTimeSec = UtSystem.getUserTimeMSec();\r\n return;\r\n }\r\n var curTimeSec = UtSystem.getUserTimeMSec();\r\n var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;\r\n this.lastTimeSec = curTimeSec;\r\n var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;\r\n var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;\r\n var dx = (this.faceTargetX - this.faceX);\r\n var dy = (this.faceTargetY - this.faceY);\r\n // if(dx == 0 && dy == 0) return;\r\n if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;\r\n var d = Math.sqrt(dx * dx + dy * dy);\r\n var vx = MAX_V * dx / d;\r\n var vy = MAX_V * dy / d;\r\n var ax = vx - this.faceVX;\r\n var ay = vy - this.faceVY;\r\n var a = Math.sqrt(ax * ax + ay * ay);\r\n if (a < -MAX_A || a > MAX_A) {\r\n ax *= MAX_A / a;\r\n ay *= MAX_A / a;\r\n a = MAX_A;\r\n }\r\n this.faceVX += ax;\r\n this.faceVY += ay;\r\n {\r\n var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);\r\n var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);\r\n if (cur_v > max_v) {\r\n this.faceVX *= max_v / cur_v;\r\n this.faceVY *= max_v / cur_v;\r\n }\r\n }\r\n this.faceX += this.faceVX;\r\n this.faceY += this.faceVY;\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DViewMatrix extends L2DMatrix44\r\n//============================================================\r\n//============================================================\r\nfunction L2DViewMatrix() {\r\n L2DMatrix44.prototype.constructor.call(this);\r\n this.screenLeft = null;\r\n this.screenRight = null;\r\n this.screenTop = null;\r\n this.screenBottom = null;\r\n this.maxLeft = null;\r\n this.maxRight = null;\r\n this.maxTop = null;\r\n this.maxBottom = null;\r\n this.max = Number.MAX_VALUE;\r\n this.min = 0;\r\n}\r\n\r\nL2DViewMatrix.prototype = new L2DMatrix44(); //L2DViewMatrix extends L2DMatrix44\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxScale = function () {\r\n return this.max;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMinScale = function () {\r\n return this.min;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMaxScale = function (v/*float*/) {\r\n this.max = v;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMinScale = function (v/*float*/) {\r\n this.min = v;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # isMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.isMaxScale = function () {\r\n return this.getScaleX() == this.max;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # isMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.isMinScale = function () {\r\n return this.getScaleX() == this.min;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # adjustTranslate()\r\n//============================================================\r\nL2DViewMatrix.prototype.adjustTranslate = function (shiftX/*float*/, shiftY/*float*/) {\r\n if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft)\r\n shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];\r\n if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight)\r\n shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];\r\n if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop)\r\n shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];\r\n if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom)\r\n shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];\r\n\r\n var tr1 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n shiftX, shiftY, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # adjustScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.adjustScale = function (cx/*float*/, cy/*float*/, scale/*float*/) {\r\n var targetScale = scale * this.tr[0];\r\n if (targetScale < this.min) {\r\n if (this.tr[0] > 0) scale = this.min / this.tr[0];\r\n }\r\n else if (targetScale > this.max) {\r\n if (this.tr[0] > 0) scale = this.max / this.tr[0];\r\n }\r\n var tr1 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n cx, cy, 0, 1];\r\n var tr2 = [scale, 0, 0, 0,\r\n 0, scale, 0, 0,\r\n 0, 0, 1, 0,\r\n 0, 0, 0, 1];\r\n var tr3 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n -cx, -cy, 0, 1];\r\n L2DMatrix44.mul(tr3, this.tr, this.tr);\r\n L2DMatrix44.mul(tr2, this.tr, this.tr);\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setScreenRect()\r\n//============================================================\r\nL2DViewMatrix.prototype.setScreenRect = function (left/*float*/, right/*float*/, bottom/*float*/, top/*float*/) {\r\n this.screenLeft = left;\r\n this.screenRight = right;\r\n this.screenTop = top;\r\n this.screenBottom = bottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMaxScreenRect()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMaxScreenRect = function (left/*float*/, right/*float*/, bottom/*float*/, top/*float*/) {\r\n this.maxLeft = left;\r\n this.maxRight = right;\r\n this.maxTop = top;\r\n this.maxBottom = bottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenLeft()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenLeft = function () {\r\n return this.screenLeft;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenRight()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenRight = function () {\r\n return this.screenRight;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenBottom()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenBottom = function () {\r\n return this.screenBottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenTop()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenTop = function () {\r\n return this.screenTop;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxLeft()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxLeft = function () {\r\n return this.maxLeft;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxRight()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxRight = function () {\r\n return this.maxRight;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxBottom()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxBottom = function () {\r\n return this.maxBottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxTop()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxTop = function () {\r\n return this.maxTop;\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class Live2DFramework \r\n//============================================================\r\n//============================================================\r\nfunction Live2DFramework() {\r\n}\r\n\r\n//============================================================\r\nLive2DFramework.platformManager = null;\r\n\r\n//============================================================\r\n// static Live2DFramework.getPlatformManager()\r\n//============================================================\r\nLive2DFramework.getPlatformManager = function () {\r\n return Live2DFramework.platformManager;\r\n}\r\n\r\n//============================================================\r\n// static Live2DFramework.setPlatformManager()\r\n//============================================================\r\nLive2DFramework.setPlatformManager = function (platformManager /*IPlatformManager*/) {\r\n Live2DFramework.platformManager = platformManager;\r\n}\r\n\r\nmodule.exports = {\r\n L2DTargetPoint: L2DTargetPoint,\r\n Live2DFramework: Live2DFramework,\r\n L2DViewMatrix: L2DViewMatrix,\r\n L2DPose: L2DPose,\r\n L2DPartsParam: L2DPartsParam,\r\n L2DPhysics: L2DPhysics,\r\n L2DMotionManager: L2DMotionManager,\r\n L2DModelMatrix: L2DModelMatrix,\r\n L2DMatrix44: L2DMatrix44,\r\n EYE_STATE: EYE_STATE,\r\n L2DEyeBlink: L2DEyeBlink,\r\n L2DExpressionParam: L2DExpressionParam,\r\n L2DExpressionMotion: L2DExpressionMotion,\r\n L2DBaseModel: L2DBaseModel\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/lib/Live2DFramework.js","var LAppDefine = {\n \n \n DEBUG_LOG : false,\n DEBUG_MOUSE_LOG : false, \n // DEBUG_DRAW_HIT_AREA : false, \n // DEBUG_DRAW_ALPHA_MODEL : false, \n \n \n \n \n VIEW_MAX_SCALE : 2,\n VIEW_MIN_SCALE : 0.8,\n\n VIEW_LOGICAL_LEFT : -1,\n VIEW_LOGICAL_RIGHT : 1,\n\n VIEW_LOGICAL_MAX_LEFT : -2,\n VIEW_LOGICAL_MAX_RIGHT : 2,\n VIEW_LOGICAL_MAX_BOTTOM : -2,\n VIEW_LOGICAL_MAX_TOP : 2,\n \n \n PRIORITY_NONE : 0,\n PRIORITY_IDLE : 1,\n PRIORITY_NORMAL : 2,\n PRIORITY_FORCE : 3,\n\n MOTION_GROUP_IDLE : \"idle\", \n MOTION_GROUP_TAP_BODY : \"tap_body\", \n MOTION_GROUP_FLICK_HEAD : \"flick_head\", \n MOTION_GROUP_PINCH_IN : \"pinch_in\", \n MOTION_GROUP_PINCH_OUT : \"pinch_out\", \n MOTION_GROUP_SHAKE : \"shake\", \n\n \n HIT_AREA_HEAD : \"head\",\n HIT_AREA_BODY : \"body\"\n \n};\n\nmodule.exports = LAppDefine;\n\n\n// WEBPACK FOOTER //\n// ./src/LAppDefine.js","/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\n/**\n * EYHN 修改\n * \n * Copyright © 2016 - 2017 EYHN\n */\n\nfunction MatrixStack() {}\n\n\nMatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n\nMatrixStack.depth = 0;\n\n\nMatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n\nMatrixStack.tmp = new Array(16);\n\n\n\nMatrixStack.reset = function()\n{\n this.depth = 0;\n}\n\n\n\nMatrixStack.loadIdentity = function()\n{\n for (var i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = (i % 5 == 0) ? 1 : 0;\n }\n}\n\n\n\nMatrixStack.push = function()\n{ \n var offset = this.depth * 16;\n var nextOffset = (this.depth + 1) * 16;\n \n if (this.matrixStack.length < nextOffset + 16)\n {\n this.matrixStack.length = nextOffset + 16;\n }\n\n for (var i = 0; i < 16; i++)\n {\n this.matrixStack[nextOffset + i] = this.currentMatrix[i];\n }\n\n this.depth++;\n}\n\n\n\nMatrixStack.pop = function()\n{\n this.depth--;\n if (this.depth < 0)\n {\n myError(\"Invalid matrix stack.\");\n this.depth = 0;\n }\n\n var offset = this.depth * 16;\n for (var i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = this.matrixStack[offset + i];\n }\n}\n\n\n\nMatrixStack.getMatrix = function()\n{\n return this.currentMatrix;\n}\n\n\n\nMatrixStack.multMatrix = function(matNew)\n{\n var i, j, k;\n\n for (i = 0; i < 16; i++)\n {\n this.tmp[i] = 0;\n }\n\n for (i = 0; i < 4; i++)\n {\n for (j = 0; j < 4; j++)\n {\n for (k = 0; k < 4; k++)\n {\n this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = this.tmp[i];\n }\n}\n\nmodule.exports = MatrixStack;\n\n\n// WEBPACK FOOTER //\n// ./src/lib/MatrixStack.js","\r\nvar context = undefined;\r\n\r\nexport function setContext(webglContext) {\r\n context = webglContext;\r\n}\r\n\r\nexport function getContext() {\r\n return context;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/webglcontext.js","import \"./lib/live2d.min\";\n\nimport { L2DTargetPoint, L2DViewMatrix, L2DMatrix44 } from \"./lib/Live2DFramework\";\n\nimport LAppLive2DManager from \"./LAppLive2DManager\"\n\nimport LAppDefine from \"./LAppDefine\"\n\nimport MatrixStack from \"./lib/MatrixStack\"\n\nimport {setContext} from \"./webglcontext\"\n\n// window.onerror = function (msg, url, line, col, error) {\n// let errmsg = \"file:\" + url + \"
line:\" + line + \" \" + msg;\n// console.error(errmsg);\n// }\n\nconst platform = window.navigator.platform.toLowerCase();\n\nconst live2DMgr = new LAppLive2DManager();\n\nlet isDrawStart = false;\n\nlet gl = null;\n\nlet canvas = null;\n\nlet dragMgr = null;\n\nlet viewMatrix = null;\n\nlet projMatrix = null;\n\nlet deviceToScreen = null;\n\nlet drag = false;\n\nlet oldLen = 0;\n\nlet lastMouseX = 0;\n\nlet lastMouseY = 0;\n\nlet isModelShown = 0;\n\nlet modelurl = \"\";\n\nlet head_pos = 0.5;\n\nfunction initL2dCanvas(canvasId) {\n canvas = document.getElementById(canvasId);\n if (canvas.addEventListener) {\n //canvas.addEventListener(\"mousewheel\", mouseEvent);\n window.addEventListener(\"click\", mouseEvent);\n window.addEventListener(\"mousedown\", mouseEvent);\n window.addEventListener(\"mousemove\", mouseEvent);\n window.addEventListener(\"mouseup\", mouseEvent);\n document.addEventListener(\"mouseleave\", mouseEvent);\n //canvas.addEventListener(\"contextmenu\", mouseEvent);\n window.addEventListener(\"touchstart\", touchEvent);\n window.addEventListener(\"touchend\", touchEvent);\n window.addEventListener(\"touchmove\", touchEvent);\n }\n}\n\nfunction init(modelurl) {\n let width = canvas.width;\n let height = canvas.height;\n\n dragMgr = new L2DTargetPoint();\n\n let ratio = height / width;\n let left = LAppDefine.VIEW_LOGICAL_LEFT;\n let right = LAppDefine.VIEW_LOGICAL_RIGHT;\n let bottom = -ratio;\n let top = ratio;\n\n viewMatrix = new L2DViewMatrix();\n\n\n viewMatrix.setScreenRect(left, right, bottom, top);\n\n viewMatrix.setMaxScreenRect(LAppDefine.VIEW_LOGICAL_MAX_LEFT,\n LAppDefine.VIEW_LOGICAL_MAX_RIGHT,\n LAppDefine.VIEW_LOGICAL_MAX_BOTTOM,\n LAppDefine.VIEW_LOGICAL_MAX_TOP);\n\n viewMatrix.setMaxScale(LAppDefine.VIEW_MAX_SCALE);\n viewMatrix.setMinScale(LAppDefine.VIEW_MIN_SCALE);\n\n projMatrix = new L2DMatrix44();\n projMatrix.multScale(1, (width / height));\n\n deviceToScreen = new L2DMatrix44();\n deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);\n deviceToScreen.multScale(2 / width, -2 / width);\n\n gl = getWebGLContext();\n setContext(gl);\n if (!gl) {\n console.error(\"Failed to create WebGL context.\");\n return;\n }\n window.Live2D.setGL(gl);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n changeModel(modelurl);\n startDraw();\n}\n\nfunction startDraw() {\n if (!isDrawStart) {\n isDrawStart = true;\n (function tick() {\n draw();\n let requestAnimationFrame =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.msRequestAnimationFrame;\n\n requestAnimationFrame(tick, canvas);\n })();\n }\n}\n\nfunction draw()\n{\n MatrixStack.reset();\n MatrixStack.loadIdentity();\n dragMgr.update(); \n live2DMgr.setDrag(dragMgr.getX(), dragMgr.getY());\n \n gl.clear(gl.COLOR_BUFFER_BIT);\n \n MatrixStack.multMatrix(projMatrix.getArray());\n MatrixStack.multMatrix(viewMatrix.getArray());\n MatrixStack.push();\n \n for (let i = 0; i < live2DMgr.numModels(); i++)\n {\n let model = live2DMgr.getModel(i);\n\n if(model == null) return;\n \n if (model.initialized && !model.updating)\n {\n model.update();\n model.draw(gl);\n }\n }\n MatrixStack.pop();\n}\n\nfunction changeModel(modelurl)\n{\n live2DMgr.reloadFlg = true;\n live2DMgr.count++;\n live2DMgr.changeModel(gl,modelurl);\n}\n\nfunction modelScaling(scale)\n{\n let isMaxScale = viewMatrix.isMaxScale();\n let isMinScale = viewMatrix.isMinScale();\n \n viewMatrix.adjustScale(0, 0, scale);\n\n if (!isMaxScale)\n {\n if (viewMatrix.isMaxScale())\n {\n live2DMgr.maxScaleEvent();\n }\n }\n \n if (!isMinScale)\n {\n if (viewMatrix.isMinScale())\n {\n live2DMgr.minScaleEvent();\n }\n }\n}\n\nfunction transformRange(center, transform, range)\n{\n let a = {\n x: transform.x - center.x,\n y: transform.y - center.y\n }\n let r = Math.sqrt(Math.pow(a.x,2) + Math.pow(a.y,2));\n if (r > range) {\n a = {\n x: a.x / r * range + center.x,\n y: a.y / r * range + center.y\n };\n return a;\n } else {\n return transform;\n }\n}\n\nfunction dot(A,B)\n{\n return A.x * B.x + A.y * B.y;\n}\n\nfunction normalize(x,y)\n{\n let length = Math.sqrt(x * x + y * y)\n return {\n x: x / length,\n y: y / length\n }\n}\n\nfunction transformRect(center, transform, rect)\n{\n if (transform.x < rect.left + rect.width && transform.y < rect.top + rect.height &&\n transform.x > rect.left && transform.y > rect.top) return transform;\n let Len_X = center.x - transform.x;\n let Len_Y = center.y - transform.y;\n\n function angle(Len_X, Len_Y)\n {\n return Math.acos(dot({\n x: 0,\n y: 1\n }, normalize(Len_X, Len_Y))) * 180 / Math.PI\n }\n\n let angleTarget = angle(Len_X, Len_Y);\n if (transform.x < center.x) angleTarget = 360 - angleTarget;\n let angleLeftTop = 360 - angle(rect.left - center.x, (rect.top - center.y) * -1);\n let angleLeftBottom = 360 - angle(rect.left - center.x, (rect.top + rect.height - center.y) * -1);\n let angleRightTop = angle(rect.left + rect.width - center.x, (rect.top - center.y) * -1);\n let angleRightBottom = angle(rect.left + rect.width - center.x, (rect.top + rect.height - center.y) * -1);\n let scale = Len_Y / Len_X;\n let res = {};\n\n if (angleTarget < angleRightTop) {\n let y3 = rect.top - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if(angleTarget < angleRightBottom) {\n let x3 = rect.left + rect.width - center.x;\n let y3 = x3 * scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if (angleTarget < angleLeftBottom) {\n let y3 = rect.top + rect.height - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if (angleTarget < angleLeftTop) {\n let x3 = center.x - rect.left;\n let y3 = x3 * scale;\n res = {\n y: center.y - y3,\n x: center.x - x3\n }\n } else {\n let y3 = rect.top - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n }\n\n return res;\n}\n\nfunction modelTurnHead(event)\n{\n drag = true;\n \n let rect = canvas.getBoundingClientRect();\n \n let sx = transformScreenX(event.clientX - rect.left);\n let sy = transformScreenY(event.clientY - rect.top);\n let target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect)\n let vx = transformViewX(target.x - rect.left);\n let vy = transformViewY(target.y - rect.top);\n\n if (LAppDefine.DEBUG_MOUSE_LOG)\n console.log(\"onMouseDown device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n lastMouseX = sx;\n lastMouseY = sy;\n\n dragMgr.setPoint(vx, vy); \n \n live2DMgr.tapEvent(vx, vy);\n}\n\nfunction followPointer(event)\n{ \n let rect = canvas.getBoundingClientRect();\n \n let sx = transformScreenX(event.clientX - rect.left);\n let sy = transformScreenY(event.clientY - rect.top);\n let target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect)\n let vx = transformViewX(target.x - rect.left);\n let vy = transformViewY(target.y - rect.top);\n\n if (LAppDefine.DEBUG_MOUSE_LOG)\n console.log(\"onMouseMove device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n if (drag)\n {\n lastMouseX = sx;\n lastMouseY = sy;\n dragMgr.setPoint(vx, vy); \n }\n}\n\nfunction lookFront()\n{ \n if (drag)\n {\n drag = false;\n }\n dragMgr.setPoint(0, 0);\n}\n\nfunction mouseEvent(e)\n{\n //e.preventDefault();\n if (e.type == \"mousewheel\") {\n // if (e.clientX < 0 || canvas.clientWidth < e.clientX || \n // e.clientY < 0 || canvas.clientHeight < e.clientY)\n // {\n // return;\n // }\n // if (e.wheelDelta > 0) modelScaling(1.1); \n // else modelScaling(0.9); \n } else if (e.type == \"mousedown\") {\n if(\"button\" in e && e.button != 0) return;\n // modelTurnHead(e);\n } else if (e.type == \"mousemove\") {\n modelTurnHead(e);\n } else if (e.type == \"mouseup\") {\n if(\"button\" in e && e.button != 0) return;\n // lookFront();\n } else if (e.type == \"mouseleave\") {\n lookFront();\n }\n}\n\nfunction touchEvent(e)\n{\n var touch = e.touches[0];\n if (e.type == \"touchstart\") {\n if (e.touches.length == 1) modelTurnHead(touch);\n // onClick(touch);\n } else if (e.type == \"touchmove\") {\n followPointer(touch);\n } else if (e.type == \"touchend\") {\n lookFront();\n }\n}\n\nfunction transformViewX(deviceX)\n{\n var screenX = deviceToScreen.transformX(deviceX); \n return viewMatrix.invertTransformX(screenX); \n}\n\n\nfunction transformViewY(deviceY)\n{\n var screenY = deviceToScreen.transformY(deviceY); \n return viewMatrix.invertTransformY(screenY); \n}\n\n\nfunction transformScreenX(deviceX)\n{\n return deviceToScreen.transformX(deviceX);\n}\n\n\nfunction transformScreenY(deviceY)\n{\n return deviceToScreen.transformY(deviceY);\n}\n\nfunction getWebGLContext()\n{\n var NAMES = [ \"webgl\" , \"experimental-webgl\" , \"webkit-3d\" , \"moz-webgl\"];\n for( var i = 0; i < NAMES.length; i++ ){\n try{\n var ctx = canvas.getContext(NAMES[i], {premultipliedAlpha : true});\n if(ctx) return ctx;\n }\n catch(e){}\n }\n return null;\n};\n\nfunction loadlive2d(id,modelurl,headPos) {\n head_pos = typeof headPos === 'undefined' ? 0.5 : headPos;\n initL2dCanvas(id);\n init(modelurl);\n}\n\nwindow.loadlive2d = loadlive2d;\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import { Live2DFramework } from \"./lib/Live2DFramework.js\"\nimport PlatformManager from \"./PlatformManager\"\nimport LAppModel from \"./LAppModel\"\nimport LAppDefine from \"./LAppDefine\"\n\nexport default function LAppLive2DManager() {\n // console.log(\"--> LAppLive2DManager()\");\n\n\n this.models = [];\n\n\n this.count = -1;\n this.reloadFlg = false;\n\n Live2D.init();\n Live2DFramework.setPlatformManager(new PlatformManager);\n\n}\n\nLAppLive2DManager.prototype.createModel = function () {\n\n\n var model = new LAppModel();\n this.models.push(model);\n\n return model;\n}\n\n\nLAppLive2DManager.prototype.changeModel = function (gl, modelurl) {\n // console.log(\"--> LAppLive2DManager.update(gl)\");\n\n if (this.reloadFlg) {\n\n this.reloadFlg = false;\n\n var thisRef = this;\n this.releaseModel(0, gl);\n this.createModel();\n this.models[0].load(gl, modelurl);\n }\n};\n\n\nLAppLive2DManager.prototype.getModel = function (no) {\n // console.log(\"--> LAppLive2DManager.getModel(\" + no + \")\");\n\n if (no >= this.models.length) return null;\n\n return this.models[no];\n};\n\n\n\nLAppLive2DManager.prototype.releaseModel = function (no, gl) {\n // console.log(\"--> LAppLive2DManager.releaseModel(\" + no + \")\");\n\n if (this.models.length <= no) return;\n\n this.models[no].release(gl);\n\n delete this.models[no];\n this.models.splice(no, 1);\n};\n\n\n\nLAppLive2DManager.prototype.numModels = function () {\n return this.models.length;\n};\n\n\n\nLAppLive2DManager.prototype.setDrag = function (x, y) {\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].setDrag(x, y);\n }\n}\n\n\n\nLAppLive2DManager.prototype.maxScaleEvent = function () {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Max scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_IN,\n LAppDefine.PRIORITY_NORMAL);\n }\n}\n\n\n\nLAppLive2DManager.prototype.minScaleEvent = function () {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Min scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_OUT,\n LAppDefine.PRIORITY_NORMAL);\n }\n}\n\n\n\nLAppLive2DManager.prototype.tapEvent = function (x, y) {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"tapEvent view x:\" + x + \" y:\" + y);\n\n for (var i = 0; i < this.models.length; i++) {\n\n if (this.models[i].hitTest(LAppDefine.HIT_AREA_HEAD, x, y)) {\n\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Tap face.\");\n\n this.models[i].setRandomExpression();\n }\n else if (this.models[i].hitTest(LAppDefine.HIT_AREA_BODY, x, y)) {\n\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Tap body.\" + \" models[\" + i + \"]\");\n\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_TAP_BODY,\n LAppDefine.PRIORITY_NORMAL);\n }\n }\n\n return true;\n};\n\n\n// WEBPACK FOOTER //\n// ./src/LAppLive2DManager.js","import {L2DBaseModel, L2DEyeBlink} from \"./lib/Live2DFramework\"\nimport ModelSettingJson from \"./lib/ModelSettingJson\"\nimport LAppDefine from \"./LAppDefine\"\nimport MatrixStack from \"./lib/MatrixStack\"\n\n//============================================================\n//============================================================\n// class LAppModel extends L2DBaseModel \n//============================================================\n//============================================================\nexport default function LAppModel()\n{\n //L2DBaseModel.apply(this, arguments);\n L2DBaseModel.prototype.constructor.call(this);\n \n this.modelHomeDir = \"\";\n this.modelSetting = null;\n this.tmpMatrix = [];\n}\n\nLAppModel.prototype = new L2DBaseModel();\n\n\nLAppModel.prototype.load = function(gl, modelSettingPath, callback)\n{\n this.setUpdating(true);\n this.setInitialized(false);\n\n this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf(\"/\") + 1); \n\n this.modelSetting = new ModelSettingJson();\n \n var thisRef = this;\n \n this.modelSetting.loadModelSetting(modelSettingPath, function(){\n \n var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();\n thisRef.loadModelData(path, function(model){\n \n for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++)\n {\n \n var texPaths = thisRef.modelHomeDir + \n thisRef.modelSetting.getTextureFile(i);\n \n thisRef.loadTexture(i, texPaths, function() {\n \n if( thisRef.isTexLoaded ) {\n \n if (thisRef.modelSetting.getExpressionNum() > 0)\n {\n \n thisRef.expressions = {};\n \n for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++)\n {\n var expName = thisRef.modelSetting.getExpressionName(j);\n var expFilePath = thisRef.modelHomeDir + \n thisRef.modelSetting.getExpressionFile(j);\n \n thisRef.loadExpression(expName, expFilePath);\n }\n }\n else\n {\n thisRef.expressionManager = null;\n thisRef.expressions = {};\n }\n \n \n \n if (thisRef.eyeBlink == null)\n {\n thisRef.eyeBlink = new L2DEyeBlink();\n }\n \n \n if (thisRef.modelSetting.getPhysicsFile() != null)\n {\n thisRef.loadPhysics(thisRef.modelHomeDir + \n thisRef.modelSetting.getPhysicsFile());\n }\n else\n {\n thisRef.physics = null;\n }\n \n \n \n if (thisRef.modelSetting.getPoseFile() != null)\n {\n thisRef.loadPose(\n thisRef.modelHomeDir +\n thisRef.modelSetting.getPoseFile(),\n function() {\n thisRef.pose.updateParam(thisRef.live2DModel);\n }\n );\n }\n else\n {\n thisRef.pose = null;\n }\n \n \n \n if (thisRef.modelSetting.getLayout() != null)\n {\n var layout = thisRef.modelSetting.getLayout();\n if (layout[\"width\"] != null)\n thisRef.modelMatrix.setWidth(layout[\"width\"]);\n if (layout[\"height\"] != null)\n thisRef.modelMatrix.setHeight(layout[\"height\"]);\n\n if (layout[\"x\"] != null)\n thisRef.modelMatrix.setX(layout[\"x\"]);\n if (layout[\"y\"] != null)\n thisRef.modelMatrix.setY(layout[\"y\"]);\n if (layout[\"center_x\"] != null)\n thisRef.modelMatrix.centerX(layout[\"center_x\"]);\n if (layout[\"center_y\"] != null)\n thisRef.modelMatrix.centerY(layout[\"center_y\"]);\n if (layout[\"top\"] != null)\n thisRef.modelMatrix.top(layout[\"top\"]);\n if (layout[\"bottom\"] != null)\n thisRef.modelMatrix.bottom(layout[\"bottom\"]);\n if (layout[\"left\"] != null)\n thisRef.modelMatrix.left(layout[\"left\"]);\n if (layout[\"right\"] != null)\n thisRef.modelMatrix.right(layout[\"right\"]);\n }\n \n for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++)\n {\n \n thisRef.live2DModel.setParamFloat(\n thisRef.modelSetting.getInitParamID(j),\n thisRef.modelSetting.getInitParamValue(j)\n );\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++)\n {\n \n thisRef.live2DModel.setPartsOpacity(\n thisRef.modelSetting.getInitPartsVisibleID(j),\n thisRef.modelSetting.getInitPartsVisibleValue(j)\n );\n }\n \n \n \n thisRef.live2DModel.saveParam();\n // thisRef.live2DModel.setGL(gl);\n \n \n thisRef.preloadMotionGroup(LAppDefine.MOTION_GROUP_IDLE);\n thisRef.mainMotionManager.stopAllMotions();\n\n thisRef.setUpdating(false); \n thisRef.setInitialized(true); \n\n if (typeof callback == \"function\") callback();\n \n }\n });\n }\n });\n });\n};\n\n\n\nLAppModel.prototype.release = function(gl)\n{\n // this.live2DModel.deleteTextures();\n var pm = Live2DFramework.getPlatformManager();\n\n gl.deleteTexture(pm.texture);\n}\n\n\n\nLAppModel.prototype.preloadMotionGroup = function(name)\n{\n var thisRef = this;\n \n for (var i = 0; i < this.modelSetting.getMotionNum(name); i++)\n {\n var file = this.modelSetting.getMotionFile(name, i);\n this.loadMotion(file, this.modelHomeDir + file, function(motion) {\n motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));\n motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i));\n });\n \n }\n}\n\n\nLAppModel.prototype.update = function()\n{\n // console.log(\"--> LAppModel.update()\");\n\n if(this.live2DModel == null) \n {\n if (LAppDefine.DEBUG_LOG) console.error(\"Failed to update.\");\n \n return;\n }\n \n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n var timeSec = timeMSec / 1000.0;\n var t = timeSec * 2 * Math.PI; \n \n \n if (this.mainMotionManager.isFinished())\n {\n \n this.startRandomMotion(LAppDefine.MOTION_GROUP_IDLE, LAppDefine.PRIORITY_IDLE);\n }\n \n //-----------------------------------------------------------------\t\t\n \n \n this.live2DModel.loadParam();\n \n \n \n var update = this.mainMotionManager.updateParam(this.live2DModel); \n if (!update) {\n \n if(this.eyeBlink != null) {\n this.eyeBlink.updateParam(this.live2DModel);\n }\n }\n\n \n this.live2DModel.saveParam();\n \n //-----------------------------------------------------------------\t\t\n \n \n if (this.expressionManager != null && \n this.expressions != null && \n !this.expressionManager.isFinished())\n {\n this.expressionManager.updateParam(this.live2DModel); \n }\n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", this.dragX * 30, 1); \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", this.dragY * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", (this.dragX * this.dragY) * -30, 1);\n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", this.dragX*10, 1); \n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_X\", this.dragX, 1); \n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_Y\", this.dragY, 1);\n\n\n \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", \n Number((15 * Math.sin(t / 6.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", \n Number((8 * Math.sin(t / 3.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", \n Number((10 * Math.sin(t / 5.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", \n Number((4 * Math.sin(t / 15.5345))), 0.5);\n this.live2DModel.setParamFloat(\"PARAM_BREATH\", \n Number((0.5 + 0.5 * Math.sin(t / 3.2345))), 1);\n \n \n if (this.physics != null)\n {\n this.physics.updateParam(this.live2DModel); \n }\n \n \n if (this.lipSync == null)\n {\n this.live2DModel.setParamFloat(\"PARAM_MOUTH_OPEN_Y\",\n this.lipSyncValue);\n }\n \n \n if( this.pose != null ) {\n this.pose.updateParam(this.live2DModel);\n }\n \n this.live2DModel.update();\n};\n\n\n\nLAppModel.prototype.setRandomExpression = function()\n{\n var tmp = [];\n for (var name in this.expressions)\n {\n tmp.push(name);\n }\n\n var no = parseInt(Math.random() * tmp.length);\n\n this.setExpression(tmp[no]);\n}\n\n\n\nLAppModel.prototype.startRandomMotion = function(name, priority)\n{\n var max = this.modelSetting.getMotionNum(name);\n var no = parseInt(Math.random() * max);\n this.startMotion(name, no, priority);\n}\n\n\n\nLAppModel.prototype.startMotion = function(name, no, priority)\n{\n // console.log(\"startMotion : \" + name + \" \" + no + \" \" + priority);\n \n var motionName = this.modelSetting.getMotionFile(name, no);\n \n if (motionName == null || motionName == \"\")\n {\n if (LAppDefine.DEBUG_LOG)\n console.error(\"Failed to motion.\");\n return;\n }\n\n if (priority == LAppDefine.PRIORITY_FORCE) \n {\n this.mainMotionManager.setReservePriority(priority);\n }\n else if (!this.mainMotionManager.reserveMotion(priority))\n {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Motion is running.\")\n return;\n }\n\n var thisRef = this;\n var motion;\n\n if (this.motions[name] == null) \n {\n this.loadMotion(null, this.modelHomeDir + motionName, function(mtn) {\n motion = mtn;\n \n \n thisRef.setFadeInFadeOut(name, no, priority, motion);\n \n });\n }\n else \n {\n motion = this.motions[name];\n \n \n thisRef.setFadeInFadeOut(name, no, priority, motion);\n }\n}\n\n\nLAppModel.prototype.setFadeInFadeOut = function(name, no, priority, motion)\n{\n var motionName = this.modelSetting.getMotionFile(name, no);\n \n motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));\n motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));\n \n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Start motion : \" + motionName);\n\n if (this.modelSetting.getMotionSound(name, no) == null)\n {\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n else\n {\n var soundName = this.modelSetting.getMotionSound(name, no);\n // var player = new Sound(this.modelHomeDir + soundName);\n \n var snd = document.createElement(\"audio\");\n snd.src = this.modelHomeDir + soundName;\n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Start sound : \" + soundName);\n \n snd.play();\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n}\n\n\n\nLAppModel.prototype.setExpression = function(name)\n{\n var motion = this.expressions[name];\n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Expression : \" + name);\n \n this.expressionManager.startMotion(motion, false);\n}\n\n\n\nLAppModel.prototype.draw = function(gl)\n{\n //console.log(\"--> LAppModel.draw()\");\n \n // if(this.live2DModel == null) return;\n \n \n MatrixStack.push();\n \n MatrixStack.multMatrix(this.modelMatrix.getArray());\n \n this.tmpMatrix = MatrixStack.getMatrix()\n this.live2DModel.setMatrix(this.tmpMatrix);\n this.live2DModel.draw();\n \n MatrixStack.pop();\n \n};\n \n\n\nLAppModel.prototype.hitTest = function(id, testX, testY)\n{\n var len = this.modelSetting.getHitAreaNum();\n for (var i = 0; i < len; i++)\n { \n if (id == this.modelSetting.getHitAreaName(i))\n {\n var drawID = this.modelSetting.getHitAreaID(i);\n \n return this.hitTestSimple(drawID, testX, testY);\n }\n }\n \n return false; \n}\n\n\n// WEBPACK FOOTER //\n// ./src/LAppModel.js","/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\nimport {getContext} from \"./webglcontext\"\n\n//============================================================\n//============================================================\n// class PlatformManager extend IPlatformManager\n//============================================================\n//============================================================\nexport default function PlatformManager()\n{\n\n}\n\n//============================================================\n// PlatformManager # loadBytes()\n//============================================================\nPlatformManager.prototype.loadBytes = function(path/*String*/, callback)\n{\n var request = new XMLHttpRequest();\n request.open(\"GET\", path, true);\n request.responseType = \"arraybuffer\";\n request.onload = function(){\n switch(request.status){\n case 200:\n callback(request.response);\n break;\n default:\n console.error(\"Failed to load (\" + request.status + \") : \" + path);\n break;\n }\n }\n request.send(null);\n //return request;\n}\n\n//============================================================\n// PlatformManager # loadString()\n//============================================================\nPlatformManager.prototype.loadString = function(path/*String*/)\n{\n \n this.loadBytes(path, function(buf) { \n return buf;\n });\n \n}\n\n//============================================================\n// PlatformManager # loadLive2DModel()\n//============================================================\nPlatformManager.prototype.loadLive2DModel = function(path/*String*/, callback)\n{\n var model = null;\n \n // load moc\n this.loadBytes(path, function(buf){\n model = Live2DModelWebGL.loadModel(buf);\n callback(model);\n });\n\n}\n\n//============================================================\n// PlatformManager # loadTexture()\n//============================================================\nPlatformManager.prototype.loadTexture = function(model/*ALive2DModel*/, no/*int*/, path/*String*/, callback)\n{ \n // load textures\n var loadedImage = new Image();\n loadedImage.src = path;\n \n var thisRef = this;\n loadedImage.onload = function() {\n // create texture\n var gl = getContext();\n var texture = gl.createTexture();\t \n if (!texture){ console.error(\"Failed to generate gl texture name.\"); return -1; }\n\n if(model.isPremultipliedAlpha() == false){\n // 乗算済アルファテクスチャ以外の場合\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n }\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\t\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, \n gl.UNSIGNED_BYTE, loadedImage);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n\n \n model.setTexture(no, texture);\n \n // テクスチャオブジェクトを解放\n texture = null;\n \n if (typeof callback == \"function\") callback();\n };\n \n loadedImage.onerror = function() { \n console.error(\"Failed to load image : \" + path); \n }\n}\n\n\n//============================================================\n// PlatformManager # parseFromBytes(buf)\n\n//============================================================\nPlatformManager.prototype.jsonParseFromBytes = function(buf){\n \n var jsonStr;\n \n \n \n var bomCode = new Uint8Array(buf, 0, 3);\n if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3));\n } else {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n \n var jsonObj = JSON.parse(jsonStr);\n \n return jsonObj;\n};\n\n\n//============================================================\n// PlatformManager # log()\n//============================================================\nPlatformManager.prototype.log = function(txt/*String*/)\n{\n //console.log(txt);\n}\n\nfunction getWebGLContext(canvas)\n{\n var NAMES = [ \"webgl\" , \"experimental-webgl\" , \"webkit-3d\" , \"moz-webgl\"];\n for( var i = 0; i < NAMES.length; i++ ){\n try{\n var ctx = canvas.getContext(NAMES[i], {premultipliedAlpha : true});\n if(ctx) return ctx;\n }\n catch(e){}\n }\n return null;\n};\n\n\n// WEBPACK FOOTER //\n// ./src/PlatformManager.js","import {Live2DFramework} from \"./Live2DFramework\"\n\nexport default function ModelSettingJson()\n{ \n this.NAME = \"name\";\n this.ID = \"id\";\n this.MODEL = \"model\";\n this.TEXTURES = \"textures\";\n this.HIT_AREAS = \"hit_areas\";\n this.PHYSICS = \"physics\";\n this.POSE = \"pose\";\n this.EXPRESSIONS = \"expressions\";\n this.MOTION_GROUPS = \"motions\";\n this.SOUND = \"sound\";\n this.FADE_IN = \"fade_in\";\n this.FADE_OUT = \"fade_out\";\n this.LAYOUT = \"layout\";\n this.INIT_PARAM = \"init_param\";\n this.INIT_PARTS_VISIBLE = \"init_parts_visible\";\n this.VALUE = \"val\";\n this.FILE = \"file\";\n\n this.json = {};\n}\n\n\nModelSettingJson.prototype.loadModelSetting = function(path, callback)\n{ \n var thisRef = this;\n var pm = Live2DFramework.getPlatformManager();\n pm.loadBytes(path, function(buf) {\n var str = String.fromCharCode.apply(null,new Uint8Array(buf));\n thisRef.json = JSON.parse(str);\n callback();\n });\n};\n\n\nModelSettingJson.prototype.getTextureFile = function(n)\n{ \n if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null)\n return null;\n \n return this.json[this.TEXTURES][n];\n}\n\n\nModelSettingJson.prototype.getModelFile = function()\n{ \n return this.json[this.MODEL];\n};\n\n\nModelSettingJson.prototype.getTextureNum = function()\n{ \n if (this.json[this.TEXTURES] == null) return 0;\n \n return this.json[this.TEXTURES].length;\n}\n\n\nModelSettingJson.prototype.getHitAreaNum = function()\n{\n if (this.json[this.HIT_AREAS] == null)\n return 0;\n\n return this.json[this.HIT_AREAS].length;\n}\n\n\nModelSettingJson.prototype.getHitAreaID = function(n)\n{\n if (this.json[this.HIT_AREAS] == null || \n this.json[this.HIT_AREAS][n] == null)\n return null;\n\n return this.json[this.HIT_AREAS][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getHitAreaName = function(n)\n{\n if (this.json[this.HIT_AREAS] == null || \n this.json[this.HIT_AREAS][n] == null)\n return null;\n\n return this.json[this.HIT_AREAS][n][this.NAME];\n}\n\n\nModelSettingJson.prototype.getPhysicsFile = function()\n{\n return this.json[this.PHYSICS];\n}\n\n\nModelSettingJson.prototype.getPoseFile = function()\n{\n return this.json[this.POSE];\n}\n\n\nModelSettingJson.prototype.getExpressionNum = function()\n{\n return (this.json[this.EXPRESSIONS] == null) ? 0 : this.json[this.EXPRESSIONS].length;\n}\n\n\nModelSettingJson.prototype.getExpressionFile = function(n)\n{\n if (this.json[this.EXPRESSIONS] == null)\n return null;\n return this.json[this.EXPRESSIONS][n][this.FILE];\n}\n\n\nModelSettingJson.prototype.getExpressionName = function(n)\n{\n if (this.json[this.EXPRESSIONS] == null)\n return null;\n return this.json[this.EXPRESSIONS][n][this.NAME];\n}\n\n\nModelSettingJson.prototype.getLayout = function()\n{\n return this.json[this.LAYOUT];\n}\n\n\nModelSettingJson.prototype.getInitParamNum = function()\n{\n return (this.json[this.INIT_PARAM] == null) ? 0 : this.json[this.INIT_PARAM].length;\n}\n\n\nModelSettingJson.prototype.getMotionNum = function(name)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null)\n return 0;\n \n return this.json[this.MOTION_GROUPS][name].length;\n}\n\n\nModelSettingJson.prototype.getMotionFile = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null)\n return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FILE];\n}\n\n\nModelSettingJson.prototype.getMotionSound = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null)\n return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.SOUND];\n}\n\n\nModelSettingJson.prototype.getMotionFadeIn = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null)\n return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN];\n}\n\n\nModelSettingJson.prototype.getMotionFadeOut = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null)\n return 1000;\n \n return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT];\n}\n\n\nModelSettingJson.prototype.getInitParamID = function(n)\n{\n if (this.json[this.INIT_PARAM] == null || \n this.json[this.INIT_PARAM][n] == null)\n return null;\n \n return this.json[this.INIT_PARAM][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getInitParamValue = function(n)\n{\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null)\n return NaN;\n \n return this.json[this.INIT_PARAM][n][this.VALUE];\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleNum = function()\n{\n return (this.json[this.INIT_PARTS_VISIBLE] == null) ? 0 : this.json[this.INIT_PARTS_VISIBLE].length;\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleID = function(n)\n{\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null)\n return null;\n return this.json[this.INIT_PARTS_VISIBLE][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleValue = function(n)\n{\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null)\n return NaN;\n \n return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE];\n}\n\n\n// WEBPACK FOOTER //\n// ./src/lib/ModelSettingJson.js","\r\n(function(){var j=true;function aa(){if(j){return;}this._$MT=null;this._$5S=null;this._$NP=0;aa._$42++;this._$5S=new y(this);}aa._$0s=1;aa._$4s=2;aa._$42=0;aa._$62=function(aQ,aU){try{if(aU instanceof ArrayBuffer){aU=new DataView(aU);}if(!(aU instanceof DataView)){throw new J(\"_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer\");}var aS=new K(aU);var aM=aS._$ST();var aK=aS._$ST();var aJ=aS._$ST();var aN;if(aM==109&&aK==111&&aJ==99){aN=aS._$ST();}else{throw new J(\"_$gi _$C _$li , _$Q0 _$P0.\");}aS._$gr(aN);if(aN>ay._$T7){aQ._$NP|=aa._$4s;var aR=ay._$T7;var aI=\"_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : \"+aR+\" < _$f0 : \"+aN+\" )@_$SS#loadModel()\\n\";throw new J(aI);}var aL=aS._$nP();if(aN>=ay._$s7){var aH=aS._$9T();var aT=aS._$9T();if(aH!=-30584||aT!=-30584){aQ._$NP|=aa._$0s;throw new J(\"_$gi _$C _$li , _$0 _$6 _$Ui.\");}}aQ._$KS(aL);var aP=aQ.getModelContext();aP.setDrawParam(aQ.getDrawParam());aP.init();}catch(aO){q._$Rb(aO);}};aa.prototype._$KS=function(aH){this._$MT=aH;};aa.prototype.getModelImpl=function(){if(this._$MT==null){this._$MT=new w();this._$MT._$zP();}return this._$MT;};aa.prototype.getCanvasWidth=function(){if(this._$MT==null){return 0;}return this._$MT.getCanvasWidth();};aa.prototype.getCanvasHeight=function(){if(this._$MT==null){return 0;}return this._$MT.getCanvasHeight();};aa.prototype.getParamFloat=function(aH){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}return this._$5S.getParamFloat(aH);};aa.prototype.setParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)*(1-aI)+aJ*aI);};aa.prototype.addToParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)+aJ*aI);};aa.prototype.multParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)*(1+(aJ-1)*aI));};aa.prototype.getParamIndex=function(aH){return this._$5S.getParamIndex(z.getID(aH));};aa.prototype.loadParam=function(){this._$5S.loadParam();};aa.prototype.saveParam=function(){this._$5S.saveParam();};aa.prototype.init=function(){this._$5S.init();};aa.prototype.update=function(){this._$5S.update();};aa.prototype._$Rs=function(){q._$li(\"_$60 _$PT _$Rs()\");return -1;};aa.prototype._$Ds=function(aH){q._$li(\"_$60 _$PT _$SS#_$Ds() \\n\");};aa.prototype._$K2=function(){};aa.prototype.draw=function(){};aa.prototype.getModelContext=function(){return this._$5S;};aa.prototype._$s2=function(){return this._$NP;};aa.prototype._$P7=function(aK,aR,aH,a0){var aU=-1;var aY=0;var aM=this;var aJ=0.5;var aI=0.15;var aX=true;if(aH==0){for(var aV=0;aV1){aQ=1;}}else{aQ-=aW;if(aQ<0){aQ=0;}}aM.setPartsOpacity(aO,aQ);}else{for(var aV=0;aV=0){break;}aU=aV;var aO=aR[aV];aY=aM.getPartsOpacity(aO);aY+=aH/a0;if(aY>1){aY=1;}}}if(aU<0){console.log(\"No _$wi _$q0/ _$U default[%s]\",aK[0]);aU=0;aY=1;aM.loadParam();aM.setParamFloat(aK[aU],aY);aM.saveParam();}for(var aV=0;aVaI){aZ=1-aI/(1-aY);}}if(aL>aZ){aL=aZ;}aM.setPartsOpacity(aO,aL);}}}}};aa.prototype.setPartsOpacity=function(aI,aH){if(typeof aI!=\"number\"){aI=this._$5S.getPartsDataIndex(i.getID(aI));}this._$5S.setPartsOpacity(aI,aH);};aa.prototype.getPartsDataIndex=function(aH){if(!(aH instanceof i)){aH=i.getID(aH);}return this._$5S.getPartsDataIndex(aH);};aa.prototype.getPartsOpacity=function(aH){if(typeof aH!=\"number\"){aH=this._$5S.getPartsDataIndex(i.getID(aH));}if(aH<0){return 0;}return this._$5S.getPartsOpacity(aH);};aa.prototype.getDrawParam=function(){};aa.prototype.getDrawDataIndex=function(aH){return this._$5S.getDrawDataIndex(Z.getID(aH));};aa.prototype.getDrawData=function(aH){return this._$5S.getDrawData(aH);};aa.prototype.getTransformedPoints=function(aH){var aI=this._$5S._$C2(aH);if(aI instanceof ag){return(aI).getTransformedPoints();}return null;};aa.prototype.getIndexArray=function(aI){if(aI<0||aI>=this._$5S._$aS.length){return null;}var aH=this._$5S._$aS[aI];if(aH!=null&&aH.getType()==a._$wb){if(aH instanceof b){return aH.getIndexArray();}}return null;};function W(aJ){if(j){return;}this.clipContextList=new Array();this.glcontext=aJ.gl;this.dp_webgl=aJ;this.curFrameNo=0;this.firstError_clipInNotUpdate=true;this.colorBuffer=0;this.isInitGLFBFunc=false;this.tmpBoundsOnModel=new av();if(Q.glContext.length>Q.frameBuffers.length){this.curFrameNo=this.getMaskRenderTexture();}else{}this.tmpModelToViewMatrix=new ac();this.tmpMatrix2=new ac();this.tmpMatrixForMask=new ac();this.tmpMatrixForDraw=new ac();this.CHANNEL_COLORS=new Array();var aI=new o();aI=new o();aI.r=0;aI.g=0;aI.b=0;aI.a=1;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=1;aI.g=0;aI.b=0;aI.a=0;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=0;aI.g=1;aI.b=0;aI.a=0;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=0;aI.g=0;aI.b=1;aI.a=0;this.CHANNEL_COLORS.push(aI);for(var aH=0;aH=0;--aH){this.CHANNEL_COLORS.splice(aH,1);}this.CHANNEL_COLORS=[];}this.releaseShader();};W.prototype.releaseShader=function(){var aI=Q.frameBuffers.length;for(var aH=0;aH0){var aM=aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);var aW=new Array(4);aW[0]=0;aW[1]=0;aW[2]=aQ.gl.canvas.width;aW[3]=aQ.gl.canvas.height;aQ.gl.viewport(0,0,Q.clippingMaskBufferSize,Q.clippingMaskBufferSize);this.setupLayoutBounds(aK);aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER,Q.frameBuffers[this.curFrameNo].framebuffer);aQ.gl.clearColor(0,0,0,0);aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);for(var aO=0;aOa5?aU:a5;var aT=aJ;var aR=aJ;var aS=0;var aP=0;var aL=aV.clippedDrawContextList.length;for(var aM=0;aMaS){aS=a0;}if(aZ>aP){aP=aZ;}}}if(aT==aJ){aV.allClippedDrawRect.x=0;aV.allClippedDrawRect.y=0;aV.allClippedDrawRect.width=0;aV.allClippedDrawRect.height=0;aV.isUsing=false;}else{var aQ=aS-aT;var aY=aP-aR;aV.allClippedDrawRect.x=aT;aV.allClippedDrawRect.y=aR;aV.allClippedDrawRect.width=aQ;aV.allClippedDrawRect.height=aY;aV.isUsing=true;}};W.prototype.setupLayoutBounds=function(aQ){var aI=aQ/W.CHANNEL_COUNT;var aP=aQ%W.CHANNEL_COUNT;aI=~~aI;aP=~~aP;var aH=0;for(var aJ=0;aJ=1){return 1;}}var aS=aQ;var aI=aS*aS;var aH=aS*aI;var aT=aY*aH+aX*aI+aW*aS+aV;return aT;};ah.prototype._$a0=function(){};ah.prototype.setFadeIn=function(aH){this._$dP=aH;};ah.prototype.setFadeOut=function(aH){this._$eo=aH;};ah.prototype._$pT=function(aH){this._$V0=aH;};ah.prototype.getFadeOut=function(){return this._$eo;};ah.prototype._$4T=function(){return this._$eo;};ah.prototype._$mT=function(){return this._$V0;};ah.prototype.getDurationMSec=function(){return -1;};ah.prototype.getLoopDurationMSec=function(){return -1;};ah.prototype.updateParam=function(aJ,aN){if(!aN._$AT||aN._$9L){return;}var aL=P.getUserTimeMSec();if(aN._$z2<0){aN._$z2=aL;aN._$bs=aL;var aM=this.getDurationMSec();if(aN._$Do<0){aN._$Do=(aM<=0)?-1:aN._$z2+aM;}}var aI=this._$V0;var aH=(this._$dP==0)?1:A._$r2(((aL-aN._$bs)/(this._$dP)));var aK=(this._$eo==0||aN._$Do<0)?1:A._$r2(((aN._$Do-aL)/(this._$eo)));aI=aI*aH*aK;if(!((0<=aI&&aI<=1))){console.log(\"### assert!! ### \");}this.updateParamExe(aJ,aL,aI,aN);if(aN._$Do>0&&aN._$Do0){console.log(\"\\n\");}else{if(aH%8==0&&aH>0){console.log(\" \");}}console.log(\"%02X \",(aJ[aH]&255));}console.log(\"\\n\");};q._$nr=function(aL,aI,aK){console.log(\"%s\\n\",aL);var aH=aI.length;for(var aJ=0;aJ=0;--aJ){var aM=this._$lL[aJ];aM._$oP(aI,this);}this._$oo(aI,aK);this._$M2=this._$Yb();this._$9b=(this._$M2-this._$ks)/aK;this._$ks=this._$M2;}for(var aJ=this._$qP.length-1;aJ>=0;--aJ){var aH=this._$qP[aJ];aH._$YS(aI,this);}this._$iT=aL;};u.prototype._$oo=function(aN,aI){if(aI<0.033){aI=0.033;}var aU=1/aI;this.p1.vx=(this.p1.x-this.p1._$s0)*aU;this.p1.vy=(this.p1.y-this.p1._$70)*aU;this.p1.ax=(this.p1.vx-this.p1._$7L)*aU;this.p1.ay=(this.p1.vy-this.p1._$HL)*aU;this.p1.fx=this.p1.ax*this.p1._$p;this.p1.fy=this.p1.ay*this.p1._$p;this.p1._$xT();var aM=-(Math.atan2((this.p1.y-this.p2.y),this.p1.x-this.p2.x));var aL;var aV;var aR=Math.cos(aM);var aH=Math.sin(aM);var aW=9.8*this.p2._$p;var aQ=(this._$Db*aC._$bS);var aP=(aW*Math.cos(aM-aQ));aL=(aP*aH);aV=(aP*aR);var aK=(-this.p1.fx*aH*aH);var aT=(-this.p1.fy*aH*aR);var aJ=((-this.p2.vx*this._$L2));var aS=((-this.p2.vy*this._$L2));this.p2.fx=((aL+aK+aJ));this.p2.fy=((aV+aT+aS));this.p2.ax=this.p2.fx/this.p2._$p;this.p2.ay=this.p2.fy/this.p2._$p;this.p2.vx+=this.p2.ax*aI;this.p2.vy+=this.p2.ay*aI;this.p2.x+=this.p2.vx*aI;this.p2.y+=this.p2.vy*aI;var aO=(Math.sqrt((this.p1.x-this.p2.x)*(this.p1.x-this.p2.x)+(this.p1.y-this.p2.y)*(this.p1.y-this.p2.y)));this.p2.x=this.p1.x+this._$Fo*(this.p2.x-this.p1.x)/aO;this.p2.y=this.p1.y+this._$Fo*(this.p2.y-this.p1.y)/aO;this.p2.vx=(this.p2.x-this.p2._$s0)*aU;this.p2.vy=(this.p2.y-this.p2._$70)*aU;this.p2._$xT();};function N(){this._$p=1;this.x=0;this.y=0;this.vx=0;this.vy=0;this.ax=0;this.ay=0;this.fx=0;this.fy=0;this._$s0=0;this._$70=0;this._$7L=0;this._$HL=0;}N.prototype._$xT=function(){this._$s0=this.x;this._$70=this.y;this._$7L=this.vx;this._$HL=this.vy;};function at(aJ,aI,aH){this._$wL=null;this.scale=null;this._$V0=null;this._$wL=aJ;this.scale=aI;this._$V0=aH;}at.prototype._$oP=function(aI,aH){};function h(aJ,aK,aI,aH){at.prototype.constructor.call(this,aK,aI,aH);this._$tL=null;this._$tL=aJ;}h.prototype=new at();h.prototype._$oP=function(aJ,aH){var aK=this.scale*aJ.getParamFloat(this._$wL);var aL=aH.getPhysicsPoint1();switch(this._$tL){default:case u.Src.SRC_TO_X:aL.x=aL.x+(aK-aL.x)*this._$V0;break;case u.Src.SRC_TO_Y:aL.y=aL.y+(aK-aL.y)*this._$V0;break;case u.Src.SRC_TO_G_ANGLE:var aI=aH._$qr();aI=aI+(aK-aI)*this._$V0;aH._$pr(aI);break;}};function d(aJ,aI,aH){this._$wL=null;this.scale=null;this._$V0=null;this._$wL=aJ;this.scale=aI;this._$V0=aH;}d.prototype._$YS=function(aI,aH){};function aF(aI,aK,aJ,aH){d.prototype.constructor.call(this,aK,aJ,aH);this._$YP=null;this._$YP=aI;}aF.prototype=new d();aF.prototype._$YS=function(aI,aH){switch(this._$YP){default:case u.Target.TARGET_FROM_ANGLE:aI.setParamFloat(this._$wL,this.scale*aH._$5r(),this._$V0);break;case u.Target.TARGET_FROM_ANGLE_V:aI.setParamFloat(this._$wL,this.scale*aH._$Cs(),this._$V0);break;}};u.Src=function(){};u.Src.SRC_TO_X=\"SRC_TO_X\";u.Src.SRC_TO_Y=\"SRC_TO_Y\";u.Src.SRC_TO_G_ANGLE=\"SRC_TO_G_ANGLE\";u.Target=function(){};u.Target.TARGET_FROM_ANGLE=\"TARGET_FROM_ANGLE\";u.Target.TARGET_FROM_ANGLE_V=\"TARGET_FROM_ANGLE_V\";function X(){if(j){return;}this._$fL=0;this._$gL=0;this._$B0=1;this._$z0=1;this._$qT=0;this.reflectX=false;this.reflectY=false;}X.prototype.init=function(aH){this._$fL=aH._$fL;this._$gL=aH._$gL;this._$B0=aH._$B0;this._$z0=aH._$z0;this._$qT=aH._$qT;this.reflectX=aH.reflectX;this.reflectY=aH.reflectY;};X.prototype._$F0=function(aH){this._$fL=aH._$_T();this._$gL=aH._$_T();this._$B0=aH._$_T();this._$z0=aH._$_T();this._$qT=aH._$_T();if(aH.getFormatVersion()>=ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2){this.reflectX=aH._$po();this.reflectY=aH._$po();}};X.prototype._$e=function(){};var ad=function(){};ad._$ni=function(aL,aJ,aR,aQ,aK,aI,aH,aS,aN){var aM=(aH*aI-aS*aK);if(aM==0){return null;}else{var aO=((aL-aR)*aI-(aJ-aQ)*aK)/aM;var aP;if(aK!=0){aP=(aL-aR-aO*aH)/aK;}else{aP=(aJ-aQ-aO*aS)/aI;}if(isNaN(aP)){aP=(aL-aR-aO*aH)/aK;if(isNaN(aP)){aP=(aJ-aQ-aO*aS)/aI;}if(isNaN(aP)){console.log(\"a is NaN @UtVector#_$ni() \");console.log(\"v1x : \"+aK);console.log(\"v1x != 0 ? \"+(aK!=0));}}if(aN==null){return new Array(aP,aO);}else{aN[0]=aP;aN[1]=aO;return aN;}}};function av(){if(j){return;}this.x=null;this.y=null;this.width=null;this.height=null;}av.prototype._$8P=function(){return this.x+0.5*this.width;};av.prototype._$6P=function(){return this.y+0.5*this.height;};av.prototype._$EL=function(){return this.x+this.width;};av.prototype._$5T=function(){return this.y+this.height;};av.prototype._$jL=function(aI,aK,aJ,aH){this.x=aI;this.y=aK;this.width=aJ;this.height=aH;};av.prototype._$jL=function(aH){this.x=aH.x;this.y=aH.y;this.width=aH.width;this.height=aH.height;};av.prototype.contains=function(aH,aI){return this.x<=this.x&&this.y<=this.y&&(this.x<=this.x+this.width)&&(this.y<=this.y+this.height);};av.prototype.expand=function(aH,aI){this.x-=aH;this.y-=aI;this.width+=aH*2;this.height+=aI*2;};function aG(){}aG._$Z2=function(bb,bo,bp,a2){var a1=bo._$Q2(bb,bp);var a3=bb._$vs();var ba=bb._$Tr();bo._$zr(a3,ba,a1);if(a1<=0){return a2[a3[0]];}else{if(a1==1){var bj=a2[a3[0]];var bi=a2[a3[1]];var a9=ba[0];return(bj+(bi-bj)*a9)|0;}else{if(a1==2){var bj=a2[a3[0]];var bi=a2[a3[1]];var a0=a2[a3[2]];var aZ=a2[a3[3]];var a9=ba[0];var a8=ba[1];var br=(bj+(bi-bj)*a9)|0;var bq=(a0+(aZ-a0)*a9)|0;return(br+(bq-br)*a8)|0;}else{if(a1==3){var aP=a2[a3[0]];var aO=a2[a3[1]];var bn=a2[a3[2]];var bm=a2[a3[3]];var aK=a2[a3[4]];var aJ=a2[a3[5]];var bg=a2[a3[6]];var bf=a2[a3[7]];var a9=ba[0];var a8=ba[1];var a6=ba[2];var bj=(aP+(aO-aP)*a9)|0;var bi=(bn+(bm-bn)*a9)|0;var a0=(aK+(aJ-aK)*a9)|0;var aZ=(bg+(bf-bg)*a9)|0;var br=(bj+(bi-bj)*a8)|0;var bq=(a0+(aZ-a0)*a8)|0;return(br+(bq-br)*a6)|0;}else{if(a1==4){var aT=a2[a3[0]];var aS=a2[a3[1]];var bu=a2[a3[2]];var bt=a2[a3[3]];var aN=a2[a3[4]];var aM=a2[a3[5]];var bl=a2[a3[6]];var bk=a2[a3[7]];var be=a2[a3[8]];var bc=a2[a3[9]];var aX=a2[a3[10]];var aW=a2[a3[11]];var a7=a2[a3[12]];var a5=a2[a3[13]];var aR=a2[a3[14]];var aQ=a2[a3[15]];var a9=ba[0];var a8=ba[1];var a6=ba[2];var a4=ba[3];var aP=(aT+(aS-aT)*a9)|0;var aO=(bu+(bt-bu)*a9)|0;var bn=(aN+(aM-aN)*a9)|0;var bm=(bl+(bk-bl)*a9)|0;var aK=(be+(bc-be)*a9)|0;var aJ=(aX+(aW-aX)*a9)|0;var bg=(a7+(a5-a7)*a9)|0;var bf=(aR+(aQ-aR)*a9)|0;var bj=(aP+(aO-aP)*a8)|0;var bi=(bn+(bm-bn)*a8)|0;var a0=(aK+(aJ-aK)*a8)|0;var aZ=(bg+(bf-bg)*a8)|0;var br=(bj+(bi-bj)*a6)|0;var bq=(a0+(aZ-a0)*a6)|0;return(br+(bq-br)*a4)|0;}else{var aV=1<=ay._$T7){this.clipID=aH._$nP();this.clipIDList=this.convertClipIDForV2_11(this.clipID);}else{this.clipIDList=[];}this._$MS(this._$Lb);};ae.prototype.getClipIDList=function(){return this.clipIDList;};ae.prototype.init=function(aH){};ae.prototype._$Nr=function(aH,aI){aI._$IS[0]=false;aI._$Us=aG._$Z2(aH,this._$GS,aI._$IS,this._$Lb);if(Q._$Zs){}else{if(aI._$IS[0]){return;}}aI._$7s=aG._$br(aH,this._$GS,aI._$IS,this._$mS);};ae.prototype._$2b=function(aH,aI){};ae.prototype.getDrawDataID=function(){return this._$gP;};ae.prototype._$j2=function(aH){this._$gP=aH;};ae.prototype.getOpacity=function(aH,aI){return aI._$7s;};ae.prototype._$zS=function(aH,aI){return aI._$Us;};ae.prototype._$MS=function(aJ){for(var aI=aJ.length-1;aI>=0;--aI){var aH=aJ[aI];if(aHae._$R2){ae._$R2=aH;}}}};ae.prototype.getTargetBaseDataID=function(){return this._$dr;};ae.prototype._$gs=function(aH){this._$dr=aH;};ae.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};ae.prototype.preDraw=function(aJ,aH,aI){};ae.prototype.draw=function(aJ,aH,aI){};ae.prototype.getType=function(){};ae.prototype._$B2=function(aI,aH,aJ){};function ax(){if(j){return;}this._$Eb=ax._$ps;this._$lT=1;this._$C0=1;this._$tT=1;this._$WL=1;this.culling=false;this.matrix4x4=new Float32Array(16);this.premultipliedAlpha=false;this.anisotropy=0;this.clippingProcess=ax.CLIPPING_PROCESS_NONE;this.clipBufPre_clipContextMask=null;this.clipBufPre_clipContextDraw=null;this.CHANNEL_COLORS=new Array();}ax._$ps=32;ax.CLIPPING_PROCESS_NONE=0;ax.CLIPPING_PROCESS_OVERWRITE_ALPHA=1;ax.CLIPPING_PROCESS_MULTIPLY_ALPHA=2;ax.CLIPPING_PROCESS_DRAW=3;ax.CLIPPING_PROCESS_CLEAR_ALPHA=4;ax.prototype.setChannelFlagAsColor=function(aH,aI){this.CHANNEL_COLORS[aH]=aI;};ax.prototype.getChannelFlagAsColor=function(aH){return this.CHANNEL_COLORS[aH];};ax.prototype._$ZT=function(){};ax.prototype._$Uo=function(aM,aK,aJ,aL,aN,aI,aH){};ax.prototype._$Rs=function(){return -1;};ax.prototype._$Ds=function(aH){};ax.prototype.setBaseColor=function(aK,aJ,aI,aH){if(aK<0){aK=0;}else{if(aK>1){aK=1;}}if(aJ<0){aJ=0;}else{if(aJ>1){aJ=1;}}if(aI<0){aI=0;}else{if(aI>1){aI=1;}}if(aH<0){aH=0;}else{if(aH>1){aH=1;}}this._$lT=aK;this._$C0=aJ;this._$tT=aI;this._$WL=aH;};ax.prototype._$WP=function(aH){this.culling=aH;};ax.prototype.setMatrix=function(aH){for(var aI=0;aI<16;aI++){this.matrix4x4[aI]=aH[aI];}};ax.prototype._$IT=function(){return this.matrix4x4;};ax.prototype.setPremultipliedAlpha=function(aH){this.premultipliedAlpha=aH;};ax.prototype.isPremultipliedAlpha=function(){return this.premultipliedAlpha;};ax.prototype.setAnisotropy=function(aH){this.anisotropy=aH;};ax.prototype.getAnisotropy=function(){return this.anisotropy;};ax.prototype.getClippingProcess=function(){return this.clippingProcess;};ax.prototype.setClippingProcess=function(aH){this.clippingProcess=aH;};ax.prototype.setClipBufPre_clipContextForMask=function(aH){this.clipBufPre_clipContextMask=aH;};ax.prototype.getClipBufPre_clipContextMask=function(){return this.clipBufPre_clipContextMask;};ax.prototype.setClipBufPre_clipContextForDraw=function(aH){this.clipBufPre_clipContextDraw=aH;};ax.prototype.getClipBufPre_clipContextDraw=function(){return this.clipBufPre_clipContextDraw;};function o(){if(j){return;}this.a=1;this.r=1;this.g=1;this.b=1;this.scale=1;this._$ho=1;this.blendMode=Q.L2D_COLOR_BLEND_MODE_MULT;}function c(){if(j){return;}this._$kP=null;this._$dr=null;this._$Ai=true;this._$mS=null;}c._$ur=-2;c._$c2=1;c._$_b=2;c.prototype._$F0=function(aH){this._$kP=aH._$nP();this._$dr=aH._$nP();};c.prototype.readV2_opacity=function(aH){if(aH.getFormatVersion()>=ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2){this._$mS=aH._$Tb();}};c.prototype.init=function(aH){};c.prototype._$Nr=function(aI,aH){};c.prototype.interpolateOpacity=function(aJ,aK,aI,aH){if(this._$mS==null){aI.setInterpolatedOpacity(1);}else{aI.setInterpolatedOpacity(aG._$br(aJ,aK,aH,this._$mS));}};c.prototype._$2b=function(aI,aH){};c.prototype._$nb=function(aL,aK,aM,aH,aI,aJ,aN){};c.prototype.getType=function(){};c.prototype._$gs=function(aH){this._$dr=aH;};c.prototype._$a2=function(aH){this._$kP=aH;};c.prototype.getTargetBaseDataID=function(){return this._$dr;};c.prototype.getBaseDataID=function(){return this._$kP;};c.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};function P(){}P._$W2=0;P._$CS=P._$W2;P._$Mo=function(){return true;};P._$XP=function(aI){try{var aJ=getTimeMSec();while(getTimeMSec()-aJ=aJ.length){return false;}for(var aI=aL;aI=0;--aJ){var aI=this._$Ob[aJ].getParamIndex(aH);if(aI==aA._$ds){aI=aK.getParamIndex(this._$Ob[aJ].getParamID());}if(aK._$Xb(aI)){return true;}}return false;};g.prototype._$Q2=function(aL,aV){var aX=this._$Ob.length;var aJ=aL._$v2();var aN=0;var aI;var aQ;for(var aK=0;aKaw._$Qb){console.log(\"err 23245\\n\");}var aS=this._$Ob.length;var aK=1;var aH=1;var aJ=0;for(var aQ=0;aQ=0;--aK){aM[aK]=aL[aK];}}else{this.mult_fast(aI,aH,aM,aJ);}};ac.prototype.mult_fast=function(aI,aH,aK,aJ){if(aJ){aK[0]=aI[0]*aH[0]+aI[4]*aH[1]+aI[8]*aH[2];aK[4]=aI[0]*aH[4]+aI[4]*aH[5]+aI[8]*aH[6];aK[8]=aI[0]*aH[8]+aI[4]*aH[9]+aI[8]*aH[10];aK[12]=aI[0]*aH[12]+aI[4]*aH[13]+aI[8]*aH[14]+aI[12];aK[1]=aI[1]*aH[0]+aI[5]*aH[1]+aI[9]*aH[2];aK[5]=aI[1]*aH[4]+aI[5]*aH[5]+aI[9]*aH[6];aK[9]=aI[1]*aH[8]+aI[5]*aH[9]+aI[9]*aH[10];aK[13]=aI[1]*aH[12]+aI[5]*aH[13]+aI[9]*aH[14]+aI[13];aK[2]=aI[2]*aH[0]+aI[6]*aH[1]+aI[10]*aH[2];aK[6]=aI[2]*aH[4]+aI[6]*aH[5]+aI[10]*aH[6];aK[10]=aI[2]*aH[8]+aI[6]*aH[9]+aI[10]*aH[10];aK[14]=aI[2]*aH[12]+aI[6]*aH[13]+aI[10]*aH[14]+aI[14];aK[3]=aK[7]=aK[11]=0;aK[15]=1;}else{aK[0]=aI[0]*aH[0]+aI[4]*aH[1]+aI[8]*aH[2]+aI[12]*aH[3];aK[4]=aI[0]*aH[4]+aI[4]*aH[5]+aI[8]*aH[6]+aI[12]*aH[7];aK[8]=aI[0]*aH[8]+aI[4]*aH[9]+aI[8]*aH[10]+aI[12]*aH[11];aK[12]=aI[0]*aH[12]+aI[4]*aH[13]+aI[8]*aH[14]+aI[12]*aH[15];aK[1]=aI[1]*aH[0]+aI[5]*aH[1]+aI[9]*aH[2]+aI[13]*aH[3];aK[5]=aI[1]*aH[4]+aI[5]*aH[5]+aI[9]*aH[6]+aI[13]*aH[7];aK[9]=aI[1]*aH[8]+aI[5]*aH[9]+aI[9]*aH[10]+aI[13]*aH[11];aK[13]=aI[1]*aH[12]+aI[5]*aH[13]+aI[9]*aH[14]+aI[13]*aH[15];aK[2]=aI[2]*aH[0]+aI[6]*aH[1]+aI[10]*aH[2]+aI[14]*aH[3];aK[6]=aI[2]*aH[4]+aI[6]*aH[5]+aI[10]*aH[6]+aI[14]*aH[7];aK[10]=aI[2]*aH[8]+aI[6]*aH[9]+aI[10]*aH[10]+aI[14]*aH[11];aK[14]=aI[2]*aH[12]+aI[6]*aH[13]+aI[10]*aH[14]+aI[14]*aH[15];aK[3]=aI[3]*aH[0]+aI[7]*aH[1]+aI[11]*aH[2]+aI[15]*aH[3];aK[7]=aI[3]*aH[4]+aI[7]*aH[5]+aI[11]*aH[6]+aI[15]*aH[7];aK[11]=aI[3]*aH[8]+aI[7]*aH[9]+aI[11]*aH[10]+aI[15]*aH[11];aK[15]=aI[3]*aH[12]+aI[7]*aH[13]+aI[11]*aH[14]+aI[15]*aH[15];}};ac.prototype.translate=function(aH,aJ,aI){this.m[12]=this.m[0]*aH+this.m[4]*aJ+this.m[8]*aI+this.m[12];this.m[13]=this.m[1]*aH+this.m[5]*aJ+this.m[9]*aI+this.m[13];this.m[14]=this.m[2]*aH+this.m[6]*aJ+this.m[10]*aI+this.m[14];this.m[15]=this.m[3]*aH+this.m[7]*aJ+this.m[11]*aI+this.m[15];};ac.prototype.scale=function(aJ,aI,aH){this.m[0]*=aJ;this.m[4]*=aI;this.m[8]*=aH;this.m[1]*=aJ;this.m[5]*=aI;this.m[9]*=aH;this.m[2]*=aJ;this.m[6]*=aI;this.m[10]*=aH;this.m[3]*=aJ;this.m[7]*=aI;this.m[11]*=aH;};ac.prototype.rotateX=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[4];this.m[4]=aI*aK+this.m[8]*aJ;this.m[8]=aI*-aJ+this.m[8]*aK;aI=this.m[5];this.m[5]=aI*aK+this.m[9]*aJ;this.m[9]=aI*-aJ+this.m[9]*aK;aI=this.m[6];this.m[6]=aI*aK+this.m[10]*aJ;this.m[10]=aI*-aJ+this.m[10]*aK;aI=this.m[7];this.m[7]=aI*aK+this.m[11]*aJ;this.m[11]=aI*-aJ+this.m[11]*aK;};ac.prototype.rotateY=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[0];this.m[0]=aI*aK+this.m[8]*-aJ;this.m[8]=aI*aJ+this.m[8]*aK;aI=this.m[1];this.m[1]=aI*aK+this.m[9]*-aJ;this.m[9]=aI*aJ+this.m[9]*aK;aI=m[2];this.m[2]=aI*aK+this.m[10]*-aJ;this.m[10]=aI*aJ+this.m[10]*aK;aI=m[3];this.m[3]=aI*aK+this.m[11]*-aJ;this.m[11]=aI*aJ+this.m[11]*aK;};ac.prototype.rotateZ=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[0];this.m[0]=aI*aK+this.m[4]*aJ;this.m[4]=aI*-aJ+this.m[4]*aK;aI=this.m[1];this.m[1]=aI*aK+this.m[5]*aJ;this.m[5]=aI*-aJ+this.m[5]*aK;aI=this.m[2];this.m[2]=aI*aK+this.m[6]*aJ;this.m[6]=aI*-aJ+this.m[6]*aK;aI=this.m[3];this.m[3]=aI*aK+this.m[7]*aJ;this.m[7]=aI*-aJ+this.m[7]*aK;};function Z(aH){if(j){return;}ak.prototype.constructor.call(this,aH);}Z.prototype=new ak();Z._$tP=new Object();Z._$27=function(){Z._$tP.clear();};Z.getID=function(aH){var aI=Z._$tP[aH];if(aI==null){aI=new Z(aH);Z._$tP[aH]=aI;}return aI;};Z.prototype._$3s=function(){return new Z();};function aD(){if(j){return;}this._$7=1;this._$f=0;this._$H=0;this._$g=1;this._$k=0;this._$w=0;this._$hi=STATE_IDENTITY;this._$Z=_$pS;}aD._$kS=-1;aD._$pS=0;aD._$hb=1;aD.STATE_IDENTITY=0;aD._$gb=1;aD._$fo=2;aD._$go=4;aD.prototype.transform=function(aK,aI,aH){var aT,aS,aR,aM,aL,aJ;var aQ=0;var aN=0;switch(this._$hi){default:return;case (aD._$go|aD._$fo|aD._$gb):aT=this._$7;aS=this._$H;aR=this._$k;aM=this._$f;aL=this._$g;aJ=this._$w;while(--aH>=0){var aP=aK[aQ++];var aO=aK[aQ++];aI[aN++]=(aT*aP+aS*aO+aR);aI[aN++]=(aM*aP+aL*aO+aJ);}return;case (aD._$go|aD._$fo):aT=this._$7;aS=this._$H;aM=this._$f;aL=this._$g;while(--aH>=0){var aP=aK[aQ++];var aO=aK[aQ++];aI[aN++]=(aT*aP+aS*aO);aI[aN++]=(aM*aP+aL*aO);}return;case (aD._$go|aD._$gb):aS=this._$H;aR=this._$k;aM=this._$f;aJ=this._$w;while(--aH>=0){var aP=aK[aQ++];aI[aN++]=(aS*aK[aQ++]+aR);aI[aN++]=(aM*aP+aJ);}return;case (aD._$go):aS=this._$H;aM=this._$f;while(--aH>=0){var aP=aK[aQ++];aI[aN++]=(aS*aK[aQ++]);aI[aN++]=(aM*aP);}return;case (aD._$fo|aD._$gb):aT=this._$7;aR=this._$k;aL=this._$g;aJ=this._$w;while(--aH>=0){aI[aN++]=(aT*aK[aQ++]+aR);aI[aN++]=(aL*aK[aQ++]+aJ);}return;case (aD._$fo):aT=this._$7;aL=this._$g;while(--aH>=0){aI[aN++]=(aT*aK[aQ++]);aI[aN++]=(aL*aK[aQ++]);}return;case (aD._$gb):aR=this._$k;aJ=this._$w;while(--aH>=0){aI[aN++]=(aK[aQ++]+aR);aI[aN++]=(aK[aQ++]+aJ);}return;case (aD.STATE_IDENTITY):if(aK!=aI||aQ!=aN){P._$jT(aK,aQ,aI,aN,aH*2);}return;}};aD.prototype.update=function(){if(this._$H==0&&this._$f==0){if(this._$7==1&&this._$g==1){if(this._$k==0&&this._$w==0){this._$hi=aD.STATE_IDENTITY;this._$Z=aD._$pS;}else{this._$hi=aD._$gb;this._$Z=aD._$hb;}}else{if(this._$k==0&&this._$w==0){this._$hi=aD._$fo;this._$Z=aD._$kS;}else{this._$hi=(aD._$fo|aD._$gb);this._$Z=aD._$kS;}}}else{if(this._$7==0&&this._$g==0){if(this._$k==0&&this._$w==0){this._$hi=aD._$go;this._$Z=aD._$kS;}else{this._$hi=(aD._$go|aD._$gb);this._$Z=aD._$kS;}}else{if(this._$k==0&&this._$w==0){this._$hi=(aD._$go|aD._$fo);this._$Z=aD._$kS;}else{this._$hi=(aD._$go|aD._$fo|aD._$gb);this._$Z=aD._$kS;}}}};aD.prototype._$RT=function(aK){this._$IT(aK);var aJ=aK[0];var aH=aK[2];var aN=aK[1];var aM=aK[3];var aI=Math.sqrt(aJ*aJ+aN*aN);var aL=aJ*aM-aH*aN;if(aI==0){if(Q._$so){console.log(\"affine._$RT() / rt==0\");}}else{aK[0]=aI;aK[1]=aL/aI;aK[2]=(aN*aM+aJ*aH)/aL;aK[3]=Math.atan2(aN,aJ);}};aD.prototype._$ho=function(aN,aM,aI,aH){var aL=new Float32Array(6);var aK=new Float32Array(6);aN._$RT(aL);aM._$RT(aK);var aJ=new Float32Array(6);aJ[0]=aL[0]+(aK[0]-aL[0])*aI;aJ[1]=aL[1]+(aK[1]-aL[1])*aI;aJ[2]=aL[2]+(aK[2]-aL[2])*aI;aJ[3]=aL[3]+(aK[3]-aL[3])*aI;aJ[4]=aL[4]+(aK[4]-aL[4])*aI;aJ[5]=aL[5]+(aK[5]-aL[5])*aI;aH._$CT(aJ);};aD.prototype._$CT=function(aJ){var aI=Math.cos(aJ[3]);var aH=Math.sin(aJ[3]);this._$7=aJ[0]*aI;this._$f=aJ[0]*aH;this._$H=aJ[1]*(aJ[2]*aI-aH);this._$g=aJ[1]*(aJ[2]*aH+aI);this._$k=aJ[4];this._$w=aJ[5];this.update();};aD.prototype._$IT=function(aH){aH[0]=this._$7;aH[1]=this._$f;aH[2]=this._$H;aH[3]=this._$g;aH[4]=this._$k;aH[5]=this._$w;};function Y(){if(j){return;}ah.prototype.constructor.call(this);this.motions=new Array();this._$7r=null;this._$7r=Y._$Co++;this._$D0=30;this._$yT=0;this._$E=true;this.loopFadeIn=true;this._$AS=-1;_$a0();}Y.prototype=new ah();Y._$cs=\"VISIBLE:\";Y._$ar=\"LAYOUT:\";Y._$Co=0;Y._$D2=[];Y._$1T=1;Y.loadMotion=function(aR){var aM=new Y();var aI=[0];var aP=aR.length;aM._$yT=0;for(var aJ=0;aJ=0){if(aK==aT+4&&aR[aT+1]==\"f\"&&aR[aT+2]==\"p\"&&aR[aT+3]==\"s\"){aO=true;}for(aJ=aK+1;aJ0){if(aO&&5=0){var aN=new t();if(G.startsWith(aR,aT,Y._$cs)){aN._$RP=t._$hs;aN._$4P=new String(aR,aT,aK-aT);}else{if(G.startsWith(aR,aT,Y._$ar)){aN._$4P=new String(aR,aT+7,aK-aT-7);if(G.startsWith(aR,aT+7,\"ANCHOR_X\")){aN._$RP=t._$xs;}else{if(G.startsWith(aR,aT+7,\"ANCHOR_Y\")){aN._$RP=t._$us;}else{if(G.startsWith(aR,aT+7,\"SCALE_X\")){aN._$RP=t._$qs;}else{if(G.startsWith(aR,aT+7,\"SCALE_Y\")){aN._$RP=t._$Ys;}else{if(G.startsWith(aR,aT+7,\"X\")){aN._$RP=t._$ws;}else{if(G.startsWith(aR,aT+7,\"Y\")){aN._$RP=t._$Ns;}}}}}}}else{aN._$RP=t._$Fr;aN._$4P=new String(aR,aT,aK-aT);}}aM.motions.push(aN);var aS=0;Y._$D2.clear();for(aJ=aK+1;aJ0){Y._$D2.push(aL);aS++;var aH=aI[0];if(aHaM._$yT){aM._$yT=aS;}}}}aM._$AS=((1000*aM._$yT)/aM._$D0)|0;return aM;};Y.prototype.getDurationMSec=function(){return this._$AS;};Y.prototype.dump=function(){for(var aJ=0;aJ=aK?aK-1:aJ)];aH.setParamFloat(aQ,aT);}else{if(t._$ws<=aS._$RP&&aS._$RP<=t._$Ys){}else{var aR=aH.getParamFloat(aQ);var aY=aS._$I0[(aJ>=aK?aK-1:aJ)];var aW=aS._$I0[(aJ+1>=aK?aK-1:aJ+1)];var aI=aY+(aW-aY)*aP;var aN=aR+(aI-aR)*aO;aH.setParamFloat(aQ,aN);}}}if(aJ>=this._$yT){if(this._$E){aX._$z2=aL;if(this.loopFadeIn){aX._$bs=aL;}}else{aX._$9L=true;}}};Y.prototype._$r0=function(){return this._$E;};Y.prototype._$aL=function(aH){this._$E=aH;};Y.prototype.isLoopFadeIn=function(){return this.loopFadeIn;};Y.prototype.setLoopFadeIn=function(aH){this.loopFadeIn=aH;};function aE(){this._$P=new Float32Array(100);this.size=0;}aE.prototype.clear=function(){this.size=0;};aE.prototype.add=function(aI){if(this._$P.length<=this.size){var aH=new Float32Array(this.size*2);P._$jT(this._$P,0,aH,0,this.size);this._$P=aH;}this._$P[this.size++]=aI;};aE.prototype._$BL=function(){var aH=new Float32Array(this.size);P._$jT(this._$P,0,aH,0,this.size);return aH;};function t(){this._$4P=null;this._$I0=null;this._$RP=null;}t._$Fr=0;t._$hs=1;t._$ws=100;t._$Ns=101;t._$xs=102;t._$us=103;t._$qs=104;t._$Ys=105;function aw(){}aw._$Ms=1;aw._$Qs=2;aw._$i2=0;aw._$No=2;aw._$do=aw._$Ms;aw._$Ls=true;aw._$1r=5;aw._$Qb=65;aw._$J=0.0001;aw._$FT=0.001;aw._$Ss=3;function ay(){}ay._$o7=6;ay._$S7=7;ay._$s7=8;ay._$77=9;ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2=10;ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1=11;ay._$T7=ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;ay._$Is=-2004318072;ay._$h0=0;ay._$4L=23;ay._$7P=33;ay._$uT=function(aH){console.log(\"_$bo :: _$6 _$mo _$E0 : %d\\n\",aH);};ay._$9o=function(aH){if(aH<40){ay._$uT(aH);return null;}else{if(aH<50){ay._$uT(aH);return null;}else{if(aH<60){ay._$uT(aH);return null;}else{if(aH<100){switch(aH){case 65:return new E();case 66:return new g();case 67:return new aA();case 68:return new ab();case 69:return new X();case 70:return new b();default:ay._$uT(aH);return null;}}else{if(aH<150){switch(aH){case 131:return new f();case 133:return new s();case 136:return new w();case 137:return new an();case 142:return new aq();}}}}}}ay._$uT(aH);return null;};function y(aH){if(j){return;}this._$QT=true;this._$co=-1;this._$qo=0;this._$pb=new Array(y._$is);this._$_2=new Float32Array(y._$is);this._$vr=new Float32Array(y._$is);this._$Rr=new Float32Array(y._$is);this._$Or=new Float32Array(y._$is);this._$fs=new Float32Array(y._$is);this._$Js=new Array(y._$is);this._$3S=new Array();this._$aS=new Array();this._$Bo=null;this._$F2=new Array();this._$db=new Array();this._$8b=new Array();this._$Hr=new Array();this._$Ws=null;this._$Vs=null;this._$Er=null;this._$Es=new Int16Array(aw._$Qb);this._$ZP=new Float32Array(aw._$1r*2);this._$Ri=aH;this._$b0=y._$HP++;this.clipManager=null;this.dp_webgl=null;}y._$HP=0;y._$_0=true;y._$V2=-1;y._$W0=-1;y._$jr=false;y._$ZS=true;y._$tr=(-1000000);y._$lr=(1000000);y._$is=32;y._$e=false;y.prototype.getDrawDataIndex=function(aI){for(var aH=this._$aS.length-1;aH>=0;--aH){if(this._$aS[aH]!=null&&this._$aS[aH].getDrawDataID()==aI){return aH;}}return -1;};y.prototype.getDrawData=function(aH){if(aH instanceof Z){if(this._$Bo==null){this._$Bo=new Object();var aJ=this._$aS.length;for(var aI=0;aI0){this.release();}var aO=this._$Ri.getModelImpl();var aT=aO._$Xr();var aS=aT.length;var aH=new Array();var a3=new Array();for(var aV=0;aV=0){this._$3S.push(aL);this._$db.push(a3[aV]);aH[aV]=null;aX=true;}}if(!aX){break;}}var aI=aO._$E2();if(aI!=null){var aJ=aI._$1s();if(aJ!=null){var aW=aJ.length;for(var aV=0;aV=0;aW--){this._$Js[aW]=y._$jr;}this._$QT=false;if(y._$e){q.dump(\"_$eL\");}return aX;};y.prototype.preDraw=function(aH){if(this.clipManager!=null){aH._$ZT();this.clipManager.setupClip(this,aH);}};y.prototype.draw=function(aM){if(this._$Ws==null){q._$li(\"call _$Ri.update() before _$Ri.draw() \");return;}var aP=this._$Ws.length;aM._$ZT();for(var aK=0;aK=0;--aI){if(this._$pb[aI]==aH){return aI;}}return this._$02(aH,0,y._$tr,y._$lr);};y.prototype._$BS=function(aH){return this.getBaseDataIndex(aH);};y.prototype.getBaseDataIndex=function(aH){for(var aI=this._$3S.length-1;aI>=0;--aI){if(this._$3S[aI]!=null&&this._$3S[aI].getBaseDataID()==aH){return aI;}}return -1;};y.prototype._$UT=function(aJ,aH){var aI=new Float32Array(aH);P._$jT(aJ,0,aI,0,aJ.length);return aI;};y.prototype._$02=function(aN,aM,aL,aH){if(this._$qo>=this._$pb.length){var aK=this._$pb.length;var aJ=new Array(aK*2);P._$jT(this._$pb,0,aJ,0,aK);this._$pb=aJ;this._$_2=this._$UT(this._$_2,aK*2);this._$vr=this._$UT(this._$vr,aK*2);this._$Rr=this._$UT(this._$Rr,aK*2);this._$Or=this._$UT(this._$Or,aK*2);var aI=new Array();P._$jT(this._$Js,0,aI,0,aK);this._$Js=aI;}this._$pb[this._$qo]=aN;this._$_2[this._$qo]=aM;this._$vr[this._$qo]=aM;this._$Rr[this._$qo]=aL;this._$Or[this._$qo]=aH;this._$Js[this._$qo]=y._$ZS;return this._$qo++;};y.prototype._$Zo=function(aI,aH){this._$3S[aI]=aH;};y.prototype.setParamFloat=function(aH,aI){if(aIthis._$Or[aH]){aI=this._$Or[aH];}this._$_2[aH]=aI;};y.prototype.loadParam=function(){var aH=this._$_2.length;if(aH>this._$fs.length){aH=this._$fs.length;}P._$jT(this._$fs,0,this._$_2,0,aH);};y.prototype.saveParam=function(){var aH=this._$_2.length;if(aH>this._$fs.length){this._$fs=new Float32Array(aH);}P._$jT(this._$_2,0,this._$fs,0,aH);};y.prototype._$v2=function(){return this._$co;};y.prototype._$WS=function(){return this._$QT;};y.prototype._$Xb=function(aH){return this._$Js[aH]==y._$ZS;};y.prototype._$vs=function(){return this._$Es;};y.prototype._$Tr=function(){return this._$ZP;};y.prototype.getBaseData=function(aH){return this._$3S[aH];};y.prototype.getParamFloat=function(aH){return this._$_2[aH];};y.prototype.getParamMax=function(aH){return this._$Or[aH];};y.prototype.getParamMin=function(aH){return this._$Rr[aH];};y.prototype.setPartsOpacity=function(aJ,aH){var aI=this._$Hr[aJ];aI.setPartsOpacity(aH);};y.prototype.getPartsOpacity=function(aI){var aH=this._$Hr[aI];return aH.getPartsOpacity();};y.prototype.getPartsDataIndex=function(aI){for(var aH=this._$F2.length-1;aH>=0;--aH){if(this._$F2[aH]!=null&&this._$F2[aH]._$p2()==aI){return aH;}}return -1;};y.prototype._$q2=function(aH){return this._$db[aH];};y.prototype._$C2=function(aH){return this._$8b[aH];};y.prototype._$Bb=function(aH){return this._$Hr[aH];};y.prototype._$5s=function(aO,aK){var aJ=this._$Ws.length;var aN=aO;for(var aL=0;aL0){aL+=aK;}return aI;};ap._$C=function(aJ){var aI=null;var aL=null;try{aI=(aJ instanceof Array)?aJ:new _$Xs(aJ,8192);aL=new _$js();var aM=1000;var aK;var aH=new Int8Array(aM);while((aK=aI.read(aH))>0){aL.write(aH,0,aK);}return aL._$TS();}finally{if(aJ!=null){aJ.close();}if(aL!=null){aL.flush();aL.close();}}};function ar(){if(j){return;}this._$12=null;this._$bb=null;this._$_L=null;this._$jo=null;this._$iL=null;this._$0L=null;this._$Br=null;this._$Dr=null;this._$Cb=null;this._$mr=null;this._$_L=az.STATE_FIRST;this._$Br=4000;this._$Dr=100;this._$Cb=50;this._$mr=150;this._$jo=true;this._$iL=\"PARAM_EYE_L_OPEN\";this._$0L=\"PARAM_EYE_R_OPEN\";}ar.prototype._$T2=function(){var aI=P.getUserTimeMSec();var aH=Math._$10();return(aI+aH*(2*this._$Br-1));};ar.prototype._$uo=function(aH){this._$Br=aH;};ar.prototype._$QS=function(aI,aH,aJ){this._$Dr=aI;this._$Cb=aH;this._$mr=aJ;};ar.prototype._$7T=function(aI){var aK=P.getUserTimeMSec();var aH;var aJ=0;switch(this._$_L){case STATE_CLOSING:aJ=(aK-this._$bb)/this._$Dr;if(aJ>=1){aJ=1;this._$_L=az.STATE_CLOSED;this._$bb=aK;}aH=1-aJ;break;case STATE_CLOSED:aJ=(aK-this._$bb)/this._$Cb;if(aJ>=1){this._$_L=az.STATE_OPENING;this._$bb=aK;}aH=0;break;case STATE_OPENING:aJ=(aK-this._$bb)/this._$mr;if(aJ>=1){aJ=1;this._$_L=az.STATE_INTERVAL;this._$12=this._$T2();}aH=aJ;break;case STATE_INTERVAL:if(this._$120.9?Q.EXPAND_W:0;this.gl.drawElements(aL,aP,aI,aQ,aM,aN,this.transform,aJ);};x.prototype._$Rs=function(){throw new Error(\"_$Rs\");};x.prototype._$Ds=function(aH){throw new Error(\"_$Ds\");};x.prototype._$K2=function(){for(var aH=0;aH=0;--aI){var aH=aJ[aI];if(aHa._$R2){a._$R2=aH;}}}};a._$or=function(){return a._$52;};a._$Pr=function(){return a._$R2;};a.prototype._$F0=function(aH){this._$gP=aH._$nP();this._$dr=aH._$nP();this._$GS=aH._$nP();this._$qb=aH._$6L();this._$Lb=aH._$cS();this._$mS=aH._$Tb();if(aH.getFormatVersion()>=ay._$T7){this.clipID=aH._$nP();this.clipIDList=this.convertClipIDForV2_11(this.clipID);}else{this.clipIDList=null;}a._$Sb(this._$Lb);};a.prototype.getClipIDList=function(){return this.clipIDList;};a.prototype._$Nr=function(aI,aH){aH._$IS[0]=false;aH._$Us=aG._$Z2(aI,this._$GS,aH._$IS,this._$Lb);if(Q._$Zs){}else{if(aH._$IS[0]){return;}}aH._$7s=aG._$br(aI,this._$GS,aH._$IS,this._$mS);};a.prototype._$2b=function(aH){};a.prototype.getDrawDataID=function(){return this._$gP;};a.prototype._$j2=function(aH){this._$gP=aH;};a.prototype.getOpacity=function(aH,aI){return aI._$7s;};a.prototype._$zS=function(aH,aI){return aI._$Us;};a.prototype.getTargetBaseDataID=function(){return this._$dr;};a.prototype._$gs=function(aH){this._$dr=aH;};a.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};a.prototype.getType=function(){};function aq(){if(j){return;}this._$NL=null;this._$3S=null;this._$aS=null;aq._$42++;}aq._$42=0;aq.prototype._$1b=function(){return this._$3S;};aq.prototype.getDrawDataList=function(){return this._$aS;};aq.prototype._$F0=function(aH){this._$NL=aH._$nP();this._$aS=aH._$nP();this._$3S=aH._$nP();};aq.prototype._$kr=function(aH){aH._$Zo(this._$3S);aH._$xo(this._$aS);this._$3S=null;this._$aS=null;};function v(){if(j){return;}aa.prototype.constructor.call(this);this._$zo=new x();}v.prototype=new aa();v.loadModel=function(aI){var aH=new v();aa._$62(aH,aI);return aH;};v.loadModel=function(aI){var aH=new v();aa._$62(aH,aI);return aH;};v._$to=function(){var aH=new v();return aH;};v._$er=function(aM){var aJ=new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if(aJ.exists()==false){throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+aJ._$PL());}var aH=[\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK=v.loadModel(aJ._$3b());for(var aI=0;aI=0){if(aK==aV+4&&p(aT,aV+1)==\"f\"&&p(aT,aV+2)==\"p\"&&p(aT,aV+3)==\"s\"){aP=true;}for(aJ=aK+1;aJ0){if(aP&&5=0){var aO=new t();if(G.startsWith(aT,aV,ao._$cs)){aO._$RP=t._$hs;aO._$4P=G.createString(aT,aV,aK-aV);}else{if(G.startsWith(aT,aV,ao._$ar)){aO._$4P=G.createString(aT,aV+7,aK-aV-7);if(G.startsWith(aT,aV+7,\"ANCHOR_X\")){aO._$RP=t._$xs;}else{if(G.startsWith(aT,aV+7,\"ANCHOR_Y\")){aO._$RP=t._$us;}else{if(G.startsWith(aT,aV+7,\"SCALE_X\")){aO._$RP=t._$qs;}else{if(G.startsWith(aT,aV+7,\"SCALE_Y\")){aO._$RP=t._$Ys;}else{if(G.startsWith(aT,aV+7,\"X\")){aO._$RP=t._$ws;}else{if(G.startsWith(aT,aV+7,\"Y\")){aO._$RP=t._$Ns;}}}}}}}else{aO._$RP=t._$Fr;aO._$4P=G.createString(aT,aV,aK-aV);}}aN.motions.push(aO);var aU=0;var aR=[];for(aJ=aK+1;aJ0){aR.push(aM);aU++;var aH=aI[0];if(aHaN._$yT){aN._$yT=aU;}}}}aN._$rr=((1000*aN._$yT)/aN._$D0)|0;return aN;};ao.prototype.getDurationMSec=function(){return this._$E?-1:this._$rr;};ao.prototype.getLoopDurationMSec=function(){return this._$rr;};ao.prototype.dump=function(){for(var aJ=0;aJ=aL?aL-1:aK)];aJ.setParamFloat(aT,aX);}else{if(t._$ws<=aV._$RP&&aV._$RP<=t._$Ys){}else{var aH=aJ.getParamIndex(aT);var a4=aJ.getModelContext();var aY=a4.getParamMax(aH);var aW=a4.getParamMin(aH);var aM=0.4;var aS=aM*(aY-aW);var aU=a4.getParamFloat(aH);var a2=aV._$I0[(aK>=aL?aL-1:aK)];var a1=aV._$I0[(aK+1>=aL?aL-1:aK+1)];var aI;if((a2aS)||(a2>a1&&a2-a1>aS)){aI=a2;}else{aI=a2+(a1-a2)*aR;}var aP=aU+(aI-aU)*aQ;aJ.setParamFloat(aT,aP);}}}if(aK>=this._$yT){if(this._$E){a3._$z2=aN;if(this.loopFadeIn){a3._$bs=aN;}}else{a3._$9L=true;}}this._$eP=aQ;};ao.prototype._$r0=function(){return this._$E;};ao.prototype._$aL=function(aH){this._$E=aH;};ao.prototype._$S0=function(){return this._$D0;};ao.prototype._$U0=function(aH){this._$D0=aH;};ao.prototype.isLoopFadeIn=function(){return this.loopFadeIn;};ao.prototype.setLoopFadeIn=function(aH){this.loopFadeIn=aH;};function aE(){this._$P=new Float32Array(100);this.size=0;}aE.prototype.clear=function(){this.size=0;};aE.prototype.add=function(aI){if(this._$P.length<=this.size){var aH=new Float32Array(this.size*2);P._$jT(this._$P,0,aH,0,this.size);this._$P=aH;}this._$P[this.size++]=aI;};aE.prototype._$BL=function(){var aH=new Float32Array(this.size);P._$jT(this._$P,0,aH,0,this.size);return aH;};function t(){this._$4P=null;this._$I0=null;this._$RP=null;}t._$Fr=0;t._$hs=1;t._$ws=100;t._$Ns=101;t._$xs=102;t._$us=103;t._$qs=104;t._$Ys=105;function E(){if(j){return;}c.prototype.constructor.call(this);this._$o=0;this._$A=0;this._$GS=null;this._$Eo=null;}E.prototype=new c();E._$gT=new Array();E.prototype._$zP=function(){this._$GS=new g();this._$GS._$zP();};E.prototype._$F0=function(aH){c.prototype._$F0.call(this,aH);this._$A=aH._$6L();this._$o=aH._$6L();this._$GS=aH._$nP();this._$Eo=aH._$nP();c.prototype.readV2_opacity.call(this,aH);};E.prototype.init=function(aH){var aI=new H(this);var aJ=(this._$o+1)*(this._$A+1);if(aI._$Cr!=null){aI._$Cr=null;}aI._$Cr=new Float32Array(aJ*2);if(aI._$hr!=null){aI._$hr=null;}if(this._$32()){aI._$hr=new Float32Array(aJ*2);}else{aI._$hr=null;}return aI;};E.prototype._$Nr=function(aJ,aI){var aK=aI;if(!this._$GS._$Ur(aJ)){return;}var aL=this._$VT();var aH=E._$gT;aH[0]=false;aG._$Vr(aJ,this._$GS,aH,aL,this._$Eo,aK._$Cr,0,2);aI._$Ib(aH[0]);this.interpolateOpacity(aJ,this._$GS,aI,aH);};E.prototype._$2b=function(aK,aJ){var aL=aJ;aL._$hS(true);if(!this._$32()){aL.setTotalOpacity(aL.getInterpolatedOpacity());}else{var aH=this.getTargetBaseDataID();if(aL._$8r==c._$ur){aL._$8r=aK.getBaseDataIndex(aH);}if(aL._$8r<0){if(Q._$so){q._$li(\"_$L _$0P _$G :: %s\",aH);}aL._$hS(false);}else{var aN=aK.getBaseData(aL._$8r);var aI=aK._$q2(aL._$8r);if(aN!=null&&aI._$yo()){var aM=aI.getTotalScale();aL.setTotalScale_notForClient(aM);var aO=aI.getTotalOpacity();aL.setTotalOpacity(aO*aL.getInterpolatedOpacity());aN._$nb(aK,aI,aL._$Cr,aL._$hr,this._$VT(),0,2);aL._$hS(true);}else{aL._$hS(false);}}}};E.prototype._$nb=function(aL,aI,aH,aM,aO,aK,aJ){if(true){var aN=aI;var aP=(aN._$hr!=null)?aN._$hr:aN._$Cr;E.transformPoints_sdk2(aH,aM,aO,aK,aJ,aP,this._$o,this._$A);}else{this.transformPoints_sdk1(aL,aI,aH,aM,aO,aK,aJ);}};E.transformPoints_sdk2=function(a0,bc,a5,aP,aI,aR,aQ,aU){var aW=a5*aI;var aV;var bn,bm;var aT=0;var aS=0;var bl=0;var bk=0;var bf=0;var be=0;var aZ=false;for(var ba=aP;ba=1){var aK=aR[((0)+(aU)*a1)*2];var aJ=aR[((0)+(aU)*a1)*2+1];var aO=aT-2*bl+1*bf;var aN=aS-2*bk+1*be;var a3=aT+3*bf;var a2=aS+3*be;var a8=aT-2*bl+3*bf;var a6=aS-2*bk+3*be;var bj=0.5*(a4-(-2));var bi=0.5*(aX-(1));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{var aH=(a7|0);if(aH==aU){aH=aU-1;}var bj=0.5*(a4-(-2));var bi=a7-aH;var bb=aH/aU;var a9=(aH+1)/aU;var aK=aR[((0)+(aH)*a1)*2];var aJ=aR[((0)+(aH)*a1)*2+1];var a3=aR[((0)+(aH+1)*a1)*2];var a2=aR[((0)+(aH+1)*a1)*2+1];var aO=aT-2*bl+bb*bf;var aN=aS-2*bk+bb*be;var a8=aT-2*bl+a9*bf;var a6=aS-2*bk+a9*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}}}else{if(1<=a4){if(aX<=0){var a8=aR[((aQ)+(0)*a1)*2];var a6=aR[((aQ)+(0)*a1)*2+1];var a3=aT+3*bl;var a2=aS+3*bk;var aO=aT+1*bl-2*bf;var aN=aS+1*bk-2*be;var aK=aT+3*bl-2*bf;var aJ=aS+3*bk-2*be;var bj=0.5*(a4-(1));var bi=0.5*(aX-(-2));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{if(aX>=1){var aO=aR[((aQ)+(aU)*a1)*2];var aN=aR[((aQ)+(aU)*a1)*2+1];var aK=aT+3*bl+1*bf;var aJ=aS+3*bk+1*be;var a8=aT+1*bl+3*bf;var a6=aS+1*bk+3*be;var a3=aT+3*bl+3*bf;var a2=aS+3*bk+3*be;var bj=0.5*(a4-(1));var bi=0.5*(aX-(1));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{var aH=(a7|0);if(aH==aU){aH=aU-1;}var bj=0.5*(a4-(1));var bi=a7-aH;var bb=aH/aU;var a9=(aH+1)/aU;var aO=aR[((aQ)+(aH)*a1)*2];var aN=aR[((aQ)+(aH)*a1)*2+1];var a8=aR[((aQ)+(aH+1)*a1)*2];var a6=aR[((aQ)+(aH+1)*a1)*2+1];var aK=aT+3*bl+bb*bf;var aJ=aS+3*bk+bb*be;var a3=aT+3*bl+a9*bf;var a2=aS+3*bk+a9*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}}}else{if(aX<=0){var aY=(bd|0);if(aY==aQ){aY=aQ-1;}var bj=bd-aY;var bi=0.5*(aX-(-2));var bp=aY/aQ;var bo=(aY+1)/aQ;var a8=aR[((aY)+(0)*a1)*2];var a6=aR[((aY)+(0)*a1)*2+1];var a3=aR[((aY+1)+(0)*a1)*2];var a2=aR[((aY+1)+(0)*a1)*2+1];var aO=aT+bp*bl-2*bf;var aN=aS+bp*bk-2*be;var aK=aT+bo*bl-2*bf;var aJ=aS+bo*bk-2*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{if(aX>=1){var aY=(bd|0);if(aY==aQ){aY=aQ-1;}var bj=bd-aY;var bi=0.5*(aX-(1));var bp=aY/aQ;var bo=(aY+1)/aQ;var aO=aR[((aY)+(aU)*a1)*2];var aN=aR[((aY)+(aU)*a1)*2+1];var aK=aR[((aY+1)+(aU)*a1)*2];var aJ=aR[((aY+1)+(aU)*a1)*2+1];var a8=aT+bp*bl+3*bf;var a6=aS+bp*bk+3*be;var a3=aT+bo*bl+3*bf;var a2=aS+bo*bk+3*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{System.err.printf(\"_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\\n\",a4,aX);}}}}}else{bc[ba]=aT+a4*bl+aX*bf;bc[ba+1]=aS+a4*bk+aX*be;}}else{bn=bd-(bd|0);bm=a7-(a7|0);aV=2*((bd|0)+((a7|0))*(aQ+1));if(bn+bm<1){bc[ba]=aR[aV]*(1-bn-bm)+aR[aV+2]*bn+aR[aV+2*(aQ+1)]*bm;bc[ba+1]=aR[aV+1]*(1-bn-bm)+aR[aV+3]*bn+aR[aV+2*(aQ+1)+1]*bm;}else{bc[ba]=aR[aV+2*(aQ+1)+2]*(bn-1+bm)+aR[aV+2*(aQ+1)]*(1-bn)+aR[aV+2]*(1-bm);bc[ba+1]=aR[aV+2*(aQ+1)+3]*(bn-1+bm)+aR[aV+2*(aQ+1)+1]*(1-bn)+aR[aV+3]*(1-bm);}}}};E.prototype.transformPoints_sdk1=function(aJ,aR,aL,a0,aU,aP,aZ){var aH=aR;var aO,aN;var aM=this._$o;var aQ=this._$A;var aI=aU*aZ;var aS,aY;var aV;var aX,aW;var aT=(aH._$hr!=null)?aH._$hr:aH._$Cr;for(var aK=aP;aK1){aO=1;}}if(aN<0){aN=0;}else{if(aN>1){aN=1;}}aO*=aM;aN*=aQ;aS=(aO|0);aY=(aN|0);if(aS>aM-1){aS=aM-1;}if(aY>aQ-1){aY=aQ-1;}aX=aO-aS;aW=aN-aY;aV=2*(aS+aY*(aM+1));}else{aO=aL[aK]*aM;aN=aL[aK+1]*aQ;aX=aO-(aO|0);aW=aN-(aN|0);aV=2*((aO|0)+(aN|0)*(aM+1));}if(aX+aW<1){a0[aK]=aT[aV]*(1-aX-aW)+aT[aV+2]*aX+aT[aV+2*(aM+1)]*aW;a0[aK+1]=aT[aV+1]*(1-aX-aW)+aT[aV+3]*aX+aT[aV+2*(aM+1)+1]*aW;}else{a0[aK]=aT[aV+2*(aM+1)+2]*(aX-1+aW)+aT[aV+2*(aM+1)]*(1-aX)+aT[aV+2]*(1-aW);a0[aK+1]=aT[aV+2*(aM+1)+3]*(aX-1+aW)+aT[aV+2*(aM+1)+1]*(1-aX)+aT[aV+3]*(1-aW);}}};E.prototype._$VT=function(){return(this._$o+1)*(this._$A+1);};E.prototype.getType=function(){return c._$_b;};function H(aH){B.prototype.constructor.call(this,aH);this._$8r=c._$ur;this._$Cr=null;this._$hr=null;}H.prototype=new B();function s(){if(j){return;}this.visible=true;this._$g0=false;this._$NL=null;this._$3S=null;this._$aS=null;s._$42++;}s._$42=0;s.prototype._$zP=function(){this._$3S=new Array();this._$aS=new Array();};s.prototype._$F0=function(aH){this._$g0=aH._$8L();this.visible=aH._$8L();this._$NL=aH._$nP();this._$3S=aH._$nP();this._$aS=aH._$nP();};s.prototype.init=function(aI){var aH=new aj(this);aH.setPartsOpacity(this.isVisible()?1:0);return aH;};s.prototype._$6o=function(aH){if(this._$3S==null){throw new Error(\"_$3S _$6 _$Wo@_$6o\");}this._$3S.push(aH);};s.prototype._$3o=function(aH){if(this._$aS==null){throw new Error(\"_$aS _$6 _$Wo@_$3o\");}this._$aS.push(aH);};s.prototype._$Zo=function(aH){this._$3S=aH;};s.prototype._$xo=function(aH){this._$aS=aH;};s.prototype.isVisible=function(){return this.visible;};s.prototype._$uL=function(){return this._$g0;};s.prototype._$KP=function(aH){this.visible=aH;};s.prototype._$ET=function(aH){this._$g0=aH;};s.prototype.getBaseData=function(){return this._$3S;};s.prototype.getDrawData=function(){return this._$aS;};s.prototype._$p2=function(){return this._$NL;};s.prototype._$ob=function(aH){this._$NL=aH;};s.prototype.getPartsID=function(){return this._$NL;};s.prototype._$MP=function(aH){this._$NL=aH;};function aj(aH){this._$VS=null;this._$e0=null;this._$e0=aH;}aj.prototype=new S();aj.prototype.getPartsOpacity=function(){return this._$VS;};aj.prototype.setPartsOpacity=function(aH){this._$VS=aH;};function ak(aH){if(j){return;}this.id=aH;}ak._$L7=function(){z._$27();n._$27();Z._$27();i._$27();};ak.prototype.toString=function(){return this.id;};function D(){}D.prototype._$F0=function(aH){};function an(){if(j){return;}this._$4S=null;}an.prototype._$1s=function(){return this._$4S;};an.prototype._$zP=function(){this._$4S=new Array();};an.prototype._$F0=function(aH){this._$4S=aH._$nP();};an.prototype._$Ks=function(aH){this._$4S.push(aH);};function au(aH,aI){this.canvas=aH;this.context=aI;this.viewport=new Array(0,0,aH.width,aH.height);this._$6r=1;this._$xP=0;this._$3r=1;this._$uP=0;this._$Qo=-1;this.cacheImages={};}au.tr=new am();au._$50=new am();au._$Ti=new Array(0,0);au._$Pi=new Array(0,0);au._$B=new Array(0,0);au.prototype._$lP=function(aI,aK,aJ,aH){this.viewport=new Array(aI,aK,aJ,aH);};au.prototype._$bL=function(){this.context.save();var aH=this.viewport;if(aH!=null){this.context.beginPath();this.context._$Li(aH[0],aH[1],aH[2],aH[3]);this.context.clip();}};au.prototype._$ei=function(){this.context.restore();};au.prototype.drawElements=function(bc,bm,aX,aJ,bA,aM,bl,bz){try{if(bA!=this._$Qo){this._$Qo=bA;this.context.globalAlpha=bA;}var a2=bm.length;var aP=bc.width;var a5=bc.height;var bE=this.context;var a7=this._$xP;var a6=this._$uP;var a1=this._$6r;var aZ=this._$3r;var bD=au.tr;var aI=au._$Ti;var aH=au._$Pi;var bu=au._$B;for(var by=0;by0.02){au.expandClip(aK,aJ,aV,aI,aO,aN,aH,aW,aS,aR);}else{au.clipWithTransform(aK,null,aM,aL,aU,aT,aQ,aP);}};au.expandClip=function(aV,bg,aK,a3,aJ,aI,be,ba,aZ,aX){var aP=be-aJ;var aO=ba-aI;var bi=aZ-aJ;var bh=aX-aI;var bj=aP*bh-aO*bi>0?aK:-aK;var aL=-aO;var aH=aP;var bc=aZ-be;var a8=aX-ba;var a7=-a8;var a6=bc;var aQ=Math.sqrt(bc*bc+a8*a8);var bf=-bh;var bb=bi;var a2=Math.sqrt(bi*bi+bh*bh);var bd=aJ-bj*aL/a3;var a9=aI-bj*aH/a3;var aY=be-bj*aL/a3;var aW=ba-bj*aH/a3;var a5=be-bj*a7/aQ;var a4=ba-bj*a6/aQ;var aS=aZ-bj*a7/aQ;var aR=aX-bj*a6/aQ;var aN=aJ+bj*bf/a2;var aM=aI+bj*bb/a2;var a1=aZ+bj*bf/a2;var a0=aX+bj*bb/a2;var aU=au._$50;var aT=bg._$P2(aU);if(aT==null){return false;}au.clipWithTransform(aV,aU,bd,a9,aY,aW,a5,a4,aS,aR,a1,a0,aN,aM);return true;};au.clipWithTransform=function(aH,aI,aS,aN,aQ,aK,aP,aJ){if(arguments.length<(1+3*2)){q._$li(\"err : @LDGL.clip()\");return;}if(!(arguments[1] instanceof am)){q._$li(\"err : a[0] is _$6 LDTransform @LDGL.clip()\");return;}var aM=au._$B;var aO=aI;var aR=arguments;aH.beginPath();if(aO){aO._$PS(aR[2],aR[3],aM);aH.moveTo(aM[0],aM[1]);for(var aL=4;aL1){return 1;}}return(0.5-0.5*Math.cos(aH*aC.PI_F));};function J(aH){if(j){return;}this._$ib=aH;}J._$fr=-1;J.prototype.toString=function(){return this._$ib;};function b(){if(j){return;}a.prototype.constructor.call(this);this._$LP=-1;this._$d0=0;this._$Yo=0;this._$JP=null;this._$5P=null;this._$BP=null;this._$Eo=null;this._$Qi=null;this._$6s=b._$ms;this.culling=true;this.gl_cacheImage=null;this.instanceNo=b._$42++;}b.prototype=new a();b._$42=0;b._$Os=30;b._$ms=0;b._$ns=1;b._$_s=2;b._$gT=new Array();b.prototype._$_S=function(aH){this._$LP=aH;};b.prototype.getTextureNo=function(){return this._$LP;};b.prototype._$ZL=function(){return this._$Qi;};b.prototype._$H2=function(){return this._$JP;};b.prototype.getNumPoints=function(){return this._$d0;};b.prototype.getType=function(){return a._$wb;};b.prototype._$B2=function(aL,aH,aO){var aM=aH;var aN=(aM._$hr!=null)?aM._$hr:aM._$Cr;var aK=aw._$do;switch(aK){default:case aw._$Ms:throw new Error(\"_$L _$ro \");case aw._$Qs:for(var aJ=this._$d0-1;aJ>=0;--aJ){var aI=aJ*aw._$No;aN[aI+4]=aO;}break;}};b.prototype._$zP=function(){this._$GS=new g();this._$GS._$zP();};b.prototype._$F0=function(aK){a.prototype._$F0.call(this,aK);this._$LP=aK._$6L();this._$d0=aK._$6L();this._$Yo=aK._$6L();var aH=aK._$nP();this._$BP=new Int16Array(this._$Yo*3);for(var aJ=this._$Yo*3-1;aJ>=0;--aJ){this._$BP[aJ]=aH[aJ];}this._$Eo=aK._$nP();this._$Qi=aK._$nP();if(aK.getFormatVersion()>=ay._$s7){this._$JP=aK._$6L();if(this._$JP!=0){if((this._$JP&1)!=0){var aI=aK._$6L();if(this._$5P==null){this._$5P=new Object();}this._$5P._$Hb=parseInt(aI);}if((this._$JP&b._$Os)!=0){this._$6s=(this._$JP&b._$Os)>>1;}else{this._$6s=b._$ms;}if((this._$JP&32)!=0){this.culling=false;}}}else{this._$JP=0;}};b.prototype.init=function(aL){var aN=new ag(this);var aI=this._$d0*aw._$No;var aH=this._$32();if(aN._$Cr!=null){aN._$Cr=null;}aN._$Cr=new Float32Array(aI);if(aN._$hr!=null){aN._$hr=null;}aN._$hr=aH?new Float32Array(aI):null;var aM=aw._$do;switch(aM){default:case aw._$Ms:if(aw._$Ls){for(var aJ=this._$d0-1;aJ>=0;--aJ){var aO=aJ<<1;this._$Qi[aO+1]=1-this._$Qi[aO+1];}}break;case aw._$Qs:for(var aJ=this._$d0-1;aJ>=0;--aJ){var aO=aJ<<1;var aK=aJ*aw._$No;var aQ=this._$Qi[aO];var aP=this._$Qi[aO+1];aN._$Cr[aK]=aQ;aN._$Cr[aK+1]=aP;aN._$Cr[aK+4]=0;if(aH){aN._$hr[aK]=aQ;aN._$hr[aK+1]=aP;aN._$hr[aK+4]=0;}}break;}return aN;};b.prototype._$Nr=function(aJ,aH){var aK=aH;if(!((this==aK._$GT()))){console.log(\"### assert!! ### \");}if(!this._$GS._$Ur(aJ)){return;}a.prototype._$Nr.call(this,aJ,aK);if(aK._$IS[0]){return;}var aI=b._$gT;aI[0]=false;aG._$Vr(aJ,this._$GS,aI,this._$d0,this._$Eo,aK._$Cr,aw._$i2,aw._$No);};b.prototype._$2b=function(aK,aI){try{if(!((this==aI._$GT()))){console.log(\"### assert!! ### \");}var aL=false;if(aI._$IS[0]){aL=true;}var aM=aI;if(!aL){a.prototype._$2b.call(this,aK);if(this._$32()){var aH=this.getTargetBaseDataID();if(aM._$8r==a._$ur){aM._$8r=aK.getBaseDataIndex(aH);}if(aM._$8r<0){if(Q._$so){q._$li(\"_$L _$0P _$G :: %s\",aH);}}else{var aO=aK.getBaseData(aM._$8r);var aJ=aK._$q2(aM._$8r);if(aO!=null&&!aJ._$x2()){aO._$nb(aK,aJ,aM._$Cr,aM._$hr,this._$d0,aw._$i2,aw._$No);aM._$AT=true;}else{aM._$AT=false;}aM.baseOpacity=aJ.getTotalOpacity();}}}}catch(aN){throw aN;}};b.prototype.draw=function(aN,aK,aI){if(!((this==aI._$GT()))){console.log(\"### assert!! ### \");}if(aI._$IS[0]){return;}var aL=aI;var aJ=this._$LP;if(aJ<0){aJ=1;}var aH=this.getOpacity(aK,aL)*aI._$VS*aI.baseOpacity;var aM=(aL._$hr!=null)?aL._$hr:aL._$Cr;aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);aN._$WP(this.culling);aN._$Uo(aJ,3*this._$Yo,this._$BP,aM,this._$Qi,aH,this._$6s,aL);};b.prototype.dump=function(){console.log(\" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n\",this._$LP,this._$d0,this._$Yo);console.log(\" _$Oi _$di = { \");for(var aJ=0;aJstartMotion() / start _$K _$3 (m%d)\\n\",aH,aL._$sr);}}if(aJ==null){return -1;}aL=new M();aL._$w0=aJ;this.motions.push(aL);var aN=aL._$sr;if(this._$eb){q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n\",aH,aN);}return aN;};V.prototype.updateParam=function(aJ){try{var aI=false;for(var aK=0;aKupdateParam() / _$T0 _$w0 (m%d)\\n\",this.motions.length-1,aL._$sr);}this.motions.splice(aK,1);aK--;}else{}}return aI;}catch(aM){q._$li(aM);return true;}};V.prototype.isFinished=function(aK){if(arguments.length>=1){for(var aI=0;aI0.9?Q.EXPAND_W:0;var a0=this.gl;if(this.gl==null){throw new Error(\"gl is null\");}var a1=false;var aQ=1;var aP=1;var a3=1;var aZ=1;var aW=this._$C0*aP*aN;var a2=this._$tT*a3*aN;var a5=this._$WL*aZ*aN;var a7=this._$lT*aN;if(this.clipBufPre_clipContextMask!=null){a0.frontFace(a0.CCW);a0.useProgram(this.shaderProgram);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc,1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_matrix_Loc,false,this.getClipBufPre_clipContextMask().matrixForMask);var aY=this.getClipBufPre_clipContextMask().layoutChannelNo;var a4=this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag,a4.r,a4.g,a4.b,a4.a);var aI=this.getClipBufPre_clipContextMask().layoutBounds;a0.uniform4f(this.u_baseColor_Loc,aI.x*2-1,aI.y*2-1,aI._$EL()*2-1,aI._$5T()*2-1);a0.uniform1i(this.u_maskFlag_Loc,true);}else{a1=this.getClipBufPre_clipContextDraw()!=null;if(a1){a0.useProgram(this.shaderProgramOff);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc_Off);a0.vertexAttribPointer(this.a_position_Loc_Off,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc_Off,1);a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);a0.vertexAttribPointer(this.a_texCoord_Loc_Off,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off,false,this.getClipBufPre_clipContextDraw().matrixForDraw);a0.uniformMatrix4fv(this.u_matrix_Loc_Off,false,this.matrix4x4);a0.activeTexture(a0.TEXTURE2);a0.bindTexture(a0.TEXTURE_2D,Q.fTexture[this.glno]);a0.uniform1i(this.s_texture1_Loc_Off,2);var aY=this.getClipBufPre_clipContextDraw().layoutChannelNo;var a4=this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag_Loc_Off,a4.r,a4.g,a4.b,a4.a);a0.uniform4f(this.u_baseColor_Loc_Off,aW,a2,a5,a7);}else{a0.useProgram(this.shaderProgram);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc,1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_matrix_Loc,false,this.matrix4x4);a0.uniform4f(this.u_baseColor_Loc,aW,a2,a5,a7);a0.uniform1i(this.u_maskFlag_Loc,false);}}if(this.culling){this.gl.enable(a0.CULL_FACE);}else{this.gl.disable(a0.CULL_FACE);}this.gl.enable(a0.BLEND);var a6;var aX;var aR;var aK;if(this.clipBufPre_clipContextMask!=null){a6=a0.ONE;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ONE;aK=a0.ONE_MINUS_SRC_ALPHA;}else{switch(aM){case b._$ms:a6=a0.ONE;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ONE;aK=a0.ONE_MINUS_SRC_ALPHA;break;case b._$ns:a6=a0.ONE;aX=a0.ONE;aR=a0.ZERO;aK=a0.ONE;break;case b._$_s:a6=a0.DST_COLOR;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ZERO;aK=a0.ONE;break;}}a0.blendEquationSeparate(a0.FUNC_ADD,a0.FUNC_ADD);a0.blendFuncSeparate(a6,aX,aR,aK);if(this.anisotropyExt){a0.texParameteri(a0.TEXTURE_2D,this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT,this.maxAnisotropy);}var aJ=aL.length;a0.drawElements(a0.TRIANGLES,aJ,a0.UNSIGNED_SHORT,0);a0.bindTexture(a0.TEXTURE_2D,null);};function T(aJ,aH,aI){if(aH==null){aH=aJ.createBuffer();}aJ.bindBuffer(aJ.ARRAY_BUFFER,aH);aJ.bufferData(aJ.ARRAY_BUFFER,aI,aJ.DYNAMIC_DRAW);return aH;}function L(aJ,aH,aI){if(aH==null){aH=aJ.createBuffer();}aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER,aH);aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER,aI,aJ.DYNAMIC_DRAW);return aH;}C.prototype._$Rs=function(){throw new Error(\"_$Rs\");};C.prototype._$Ds=function(aH){throw new Error(\"_$Ds\");};C.prototype._$K2=function(){for(var aH=0;aH=48){var aL=ay._$9o(aN);if(aL!=null){aL._$F0(this);return aL;}else{return null;}}switch(aN){case 1:return this._$bT();case 10:var aM=this._$6L();return new I(aM,true);case 11:return new av(this._$mP(),this._$mP(),this._$mP(),this._$mP());case 12:return new av(this._$_T(),this._$_T(),this._$_T(),this._$_T());case 13:return new e(this._$mP(),this._$mP());case 14:return new e(this._$_T(),this._$_T());case 15:var aH=this._$3L();var aI=new Array(aH);for(var aJ=0;aJ>(7-this._$hL++))&1)==1;};K.prototype._$zT=function(){if(this._$hL!=0){this._$hL=0;}};function ai(){}ai.prototype._$wP=function(aM,aI,aK){for(var aL=0;aLMath.PI){aJ-=2*Math.PI;}return aJ;};aC._$9=function(aH){return Math.sin(aH);};aC.fcos=function(aH){return Math.cos(aH);};function aB(aH){if(j){return;}this._$e0=null;this._$IP=null;this._$Us=null;this._$7s=null;this._$IS=[false];this._$VS=null;this._$AT=true;this.baseOpacity=1;this.clipBufPre_clipContext=null;this._$e0=aH;}aB.prototype._$u2=function(){return this._$IS[0];};aB.prototype._$yo=function(){return this._$AT&&!this._$IS[0];};aB.prototype._$GT=function(){return this._$e0;};function r(){}r._$W2=0;r.SYSTEM_INFO=null;r.USER_AGENT=navigator.userAgent;r.isIPhone=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isIPhone;};r.isIOS=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isIPhone||r.SYSTEM_INFO._isIPad;};r.isAndroid=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isAndroid;};r.getOSVersion=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO.version;};r.getOS=function(){if(!r.SYSTEM_INFO){r.setup();}if(r.SYSTEM_INFO._isIPhone||r.SYSTEM_INFO._isIPad){return\"iOS\";}if(r.SYSTEM_INFO._isAndroid){return\"Android\";}else{return\"_$Q0 OS\";}};r.setup=function(){var aK=r.USER_AGENT;function aI(aO,aR){var aN=aO.substring(aR).split(/[ _,;\\.]/);var aQ=0;for(var aM=0;aM<=2;aM++){if(isNaN(aN[aM])){break;}var aP=parseInt(aN[aM]);if(aP<0||aP>999){q._$li(\"err : \"+aP+\" @UtHtml5.setup()\");aQ=0;break;}aQ+=aP*Math.pow(1000,(2-aM));}return aQ;}var aL;var aH;var aJ=r.SYSTEM_INFO={userAgent:aK};if((aL=aK.indexOf(\"iPhone OS \"))>=0){aJ.os=\"iPhone\";aJ._isIPhone=true;aJ.version=aI(aK,aL+\"iPhone OS \".length);}else{if((aL=aK.indexOf(\"iPad\"))>=0){aL=aK.indexOf(\"CPU OS\");if(aL<0){q._$li(\" err : \"+aK+\" @UtHtml5.setup()\");return;}aJ.os=\"iPad\";aJ._isIPad=true;aJ.version=aI(aK,aL+\"CPU OS \".length);}else{if((aL=aK.indexOf(\"Android\"))>=0){aJ.os=\"Android\";aJ._isAndroid=true;aJ.version=aI(aK,aL+\"Android \".length);}else{aJ.os=\"-\";aJ.version=-1;}}}};window.UtSystem=P;window.UtDebug=q;window.LDTransform=am;window.LDGL=au;window.Live2D=Q;window.Live2DModelWebGL=l;window.Live2DModelJS=v;window.Live2DMotion=ao;window.MotionQueueManager=V;window.PhysicsHair=u;window.AMotion=ah;window.PartsDataID=i;window.DrawDataID=Z;window.BaseDataID=n;window.ParamID=z;Q.init();var j=false;})();\n\n\n// WEBPACK FOOTER //\n// ./src/lib/live2d.min.js","// Provide a \"System\" global.\r\nmodule.exports = {\r\n\t// Make sure import is only used as \"System.import\"\r\n\timport: function() {\r\n\t\tthrow new Error(\"System.import cannot be used indirectly\");\r\n\t}\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/system.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///bundle.js","webpack:///webpack/bootstrap d20b8d3fcd0215216d39","webpack:///./src/lib/Live2DFramework.js","webpack:///./src/LAppDefine.js","webpack:///./src/lib/MatrixStack.js","webpack:///./src/webglcontext.js","webpack:///./src/main.js","webpack:///./src/LAppLive2DManager.js","webpack:///./src/LAppModel.js","webpack:///./src/PlatformManager.js","webpack:///./src/lib/ModelSettingJson.js","webpack:///./src/lib/live2d.min.js","webpack:///(webpack)/buildin/system.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","L2DBaseModel","this","live2DModel","modelMatrix","eyeBlink","physics","pose","debugMode","initialized","updating","alpha","accAlpha","lipSync","lipSyncValue","accelX","accelY","accelZ","dragX","dragY","startTimeMSec","mainMotionManager","L2DMotionManager","expressionManager","motions","expressions","isTexLoaded","L2DExpressionMotion","AMotion","constructor","paramList","Array","L2DExpressionParam","id","type","L2DEyeBlink","nextBlinkTime","stateStartTime","blinkIntervalMsec","eyeState","EYE_STATE","STATE_FIRST","closingMotionMsec","closedMotionMsec","openingMotionMsec","closeIfZero","eyeID_L","eyeID_R","L2DMatrix44","tr","Float32Array","identity","L2DModelMatrix","w","h","width","height","MotionQueueManager","currentPriority","reservePriority","super","L2DPhysics","physicsList","UtSystem","getUserTimeMSec","L2DPose","lastTime","lastModel","partsGroups","L2DPartsParam","paramIndex","partsIndex","link","L2DTargetPoint","EPSILON","faceTargetX","faceTargetY","faceX","faceY","faceVX","faceVY","lastTimeSec","L2DViewMatrix","screenLeft","screenRight","screenTop","screenBottom","maxLeft","maxRight","maxTop","maxBottom","max","Number","MAX_VALUE","min","Live2DFramework","texCounter","getModelMatrix","setAlpha","a","getAlpha","isInitialized","setInitialized","v","isUpdating","setUpdating","getLive2DModel","setLipSync","setLipSyncValue","setAccel","x","y","z","setDrag","getMainMotionManager","getExpressionManager","loadModelData","path","callback","pm","getPlatformManager","log","thisRef","loadLive2DModel","l2dModel","saveParam","Live2D","getError","console","error","getCanvasWidth","getCanvasHeight","setWidth","setCenterPosition","loadTexture","no","loadMotion","motion","loadBytes","buf","Live2DMotion","loadExpression","loadJson","loadPose","load","e","warn","loadPhysics","hitTestSimple","drawID","testX","testY","drawIndex","getDrawDataIndex","points","getTransformedPoints","left","right","top","bottom","j","length","tx","invertTransformX","ty","invertTransformY","EXPRESSION_DEFAULT","TYPE_SET","TYPE_ADD","TYPE_MULT","ret","json","jsonParseFromBytes","setFadeIn","parseInt","fade_in","setFadeOut","fade_out","params","paramNum","param","paramID","toString","parseFloat","val","calcTypeInt","calc","defaultValue","def","item","push","updateParamExe","model","timeMSec","weight","motionQueueEnt","addToParamFloat","multParamFloat","setParamFloat","calcNextBlink","Math","random","setInterval","setEyeMotion","updateParam","eyeParamValue","time","t","STATE_CLOSING","STATE_CLOSED","STATE_OPENING","STATE_INTERVAL","mul","b","dst","k","getArray","getCopyMatrix","setMatrix","getScaleX","getScaleY","transformX","src","transformY","multTranslate","shiftX","shiftY","tr1","translate","translateX","translateY","multScale","scaleX","scaleY","scale","setPosition","setY","setX","centerX","centerY","setHeight","getCurrentPriority","getReservePriority","reserveMotion","priority","setReservePriority","updated","isFinished","startMotionPrio","startMotion","physics_hair","PhysicsHair","setup","resist","regist","mass","srcList","srcNum","Src","SRC_TO_X","typeStr","ptype","SRC_TO_Y","SRC_TO_G_ANGLE","UtDebug","addSrcParam","targetList","targets","targetNum","target","Target","TARGET_FROM_ANGLE","TARGET_FROM_ANGLE_V","addTargetParam","update","poseListInfo","parts_visible","poseNum","i_pose","poseInfo","idListInfo","group","idNum","partsGroup","i_group","partsInfo","parts","linkListInfo","linkNum","i_link","linkParts","initParam","curTime","deltaTimeSec","normalizePartsOpacityGroup","copyOpacityOtherParts","initIndex","getParamFloat","setPartsOpacity","visibleParts","visibleOpacity","getPartsOpacity","a1","opacity","backOp","partsParam","getParamIndex","getPartsDataIndex","PartsDataID","getID","FRAME_RATE","setPoint","getX","getY","MAX_V","curTimeSec","deltaTimeWeight","FRAME_TO_MAX_SPEED","MAX_A","dx","dy","abs","sqrt","vx","vy","ax","ay","max_v","cur_v","getMaxScale","getMinScale","setMaxScale","setMinScale","isMaxScale","isMinScale","adjustTranslate","adjustScale","cx","cy","targetScale","tr2","tr3","setScreenRect","setMaxScreenRect","getScreenLeft","getScreenRight","getScreenBottom","getScreenTop","getMaxLeft","getMaxRight","getMaxBottom","getMaxTop","platformManager","setPlatformManager","LAppDefine","DEBUG_LOG","DEBUG_MOUSE_LOG","VIEW_MAX_SCALE","VIEW_MIN_SCALE","VIEW_LOGICAL_LEFT","VIEW_LOGICAL_RIGHT","VIEW_LOGICAL_MAX_LEFT","VIEW_LOGICAL_MAX_RIGHT","VIEW_LOGICAL_MAX_BOTTOM","VIEW_LOGICAL_MAX_TOP","PRIORITY_NONE","PRIORITY_IDLE","PRIORITY_NORMAL","PRIORITY_FORCE","MOTION_GROUP_IDLE","MOTION_GROUP_TAP_BODY","MOTION_GROUP_FLICK_HEAD","MOTION_GROUP_PINCH_IN","MOTION_GROUP_PINCH_OUT","MOTION_GROUP_SHAKE","HIT_AREA_HEAD","HIT_AREA_BODY","MatrixStack","matrixStack","depth","currentMatrix","tmp","reset","loadIdentity","nextOffset","pop","myError","offset","getMatrix","multMatrix","matNew","setContext","webglContext","context","getContext","undefined","_interopRequireDefault","obj","default","initL2dCanvas","canvasId","canvas","document","getElementById","addEventListener","window","mouseEvent","touchEvent","init","modelurl","dragMgr","_Live2DFramework","ratio","_LAppDefine2","viewMatrix","projMatrix","deviceToScreen","gl","getWebGLContext","_webglcontext","setGL","clearColor","changeModel","startDraw","isDrawStart","tick","draw","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","_MatrixStack2","live2DMgr","clear","COLOR_BUFFER_BIT","numModels","getModel","reloadFlg","count","dot","A","B","normalize","transformRect","center","transform","rect","angle","Len_X","Len_Y","acos","PI","angleTarget","angleLeftTop","angleLeftBottom","angleRightTop","angleRightBottom","res","y3","x3","modelTurnHead","event","drag","getBoundingClientRect","sx","transformScreenX","clientX","sy","transformScreenY","clientY","head_pos","transformViewX","transformViewY","lastMouseX","lastMouseY","tapEvent","followPointer","lookFront","button","touch","touches","deviceX","screenX","deviceY","screenY","NAMES","ctx","premultipliedAlpha","loadlive2d","headPos","_LAppLive2DManager","_LAppLive2DManager2","_LAppDefine","_MatrixStack","navigator","platform","toLowerCase","LAppLive2DManager","models","_PlatformManager2","_PlatformManager","_LAppModel","_LAppModel2","createModel","releaseModel","release","splice","maxScaleEvent","startRandomMotion","minScaleEvent","hitTest","setRandomExpression","LAppModel","modelHomeDir","modelSetting","tmpMatrix","_ModelSettingJson","_ModelSettingJson2","modelSettingPath","substring","lastIndexOf","loadModelSetting","getModelFile","getTextureNum","texPaths","getTextureFile","getExpressionNum","expName","getExpressionName","expFilePath","getExpressionFile","getPhysicsFile","getPoseFile","getLayout","layout","getInitParamNum","getInitParamID","getInitParamValue","getInitPartsVisibleNum","getInitPartsVisibleID","getInitPartsVisibleValue","preloadMotionGroup","stopAllMotions","deleteTexture","texture","getMotionNum","file","getMotionFile","getMotionFadeIn","getMotionFadeOut","timeSec","loadParam","sin","setExpression","motionName","mtn","setFadeInFadeOut","getMotionSound","soundName","snd","createElement","play","len","getHitAreaNum","getHitAreaName","getHitAreaID","PlatformManager","request","XMLHttpRequest","open","responseType","onload","status","response","send","loadString","Live2DModelWebGL","loadModel","loadedImage","Image","createTexture","isPremultipliedAlpha","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_NEAREST","generateMipmap","setTexture","onerror","jsonStr","bomCode","Uint8Array","String","fromCharCode","apply","JSON","parse","txt","ModelSettingJson","NAME","ID","MODEL","TEXTURES","HIT_AREAS","PHYSICS","POSE","EXPRESSIONS","MOTION_GROUPS","SOUND","FADE_IN","FADE_OUT","LAYOUT","INIT_PARAM","INIT_PARTS_VISIBLE","VALUE","FILE","str","NaN","System","aa","_$MT","_$5S","_$NP","_$42","W","aJ","clipContextList","glcontext","dp_webgl","curFrameNo","firstError_clipInNotUpdate","colorBuffer","isInitGLFBFunc","tmpBoundsOnModel","av","Q","glContext","frameBuffers","getMaskRenderTexture","tmpModelToViewMatrix","ac","tmpMatrix2","tmpMatrixForMask","tmpMatrixForDraw","CHANNEL_COLORS","aI","r","g","aH","setChannelFlagAsColor","U","aK","clipIDList","clippingMaskDrawIndexList","clippedDrawContextList","isUsing","layoutChannelNo","layoutBounds","allClippedDrawRect","matrixForMask","matrixForDraw","owner","R","_$gP","drawDataIndex","I","color","ah","_$dP","_$eo","_$V0","_$a0","q","af","_$r","_$0S","F","ak","S","_$vo","_$F2","_$ao","_$1S","u","p1","N","p2","_$Fo","_$Db","_$L2","_$M2","_$ks","_$9b","_$iP","_$iT","_$lL","_$qP","_$p","fx","fy","_$s0","_$70","_$7L","_$HL","at","_$wL","_$tL","aF","_$YP","X","_$fL","_$gL","_$B0","_$z0","_$qT","reflectX","reflectY","aG","ae","_$dr","_$GS","_$qb","_$Lb","_$mS","clipID","_$Eb","_$ps","_$lT","_$C0","_$tT","_$WL","culling","matrix4x4","anisotropy","clippingProcess","CLIPPING_PROCESS_NONE","clipBufPre_clipContextMask","clipBufPre_clipContextDraw","_$ho","blendMode","L2D_COLOR_BLEND_MODE_MULT","_$kP","_$Ai","P","aA","_$VP","_$GP","_$8o","_$ds","_$2r","_$O2","_$ri","G","_$Ob","Z","aD","_$7","_$f","_$H","_$g","_$k","_$w","_$hi","STATE_IDENTITY","_$Z","_$pS","Y","_$7r","_$Co","_$D0","_$yT","_$E","loopFadeIn","_$AS","aE","_$P","size","_$4P","_$I0","_$RP","aw","_$QT","_$co","_$qo","_$pb","_$is","_$_2","_$vr","_$Rr","_$Or","_$fs","_$Js","_$3S","_$aS","_$Bo","_$db","_$8b","_$Hr","_$Ws","_$Vs","_$Er","_$Es","Int16Array","_$Qb","_$ZP","_$1r","_$Ri","_$b0","_$HP","clipManager","ap","ar","_$12","_$bb","_$_L","_$jo","_$iL","_$0L","_$Br","_$Dr","_$Cb","_$mr","az","_$sb","Int32Array","_$As","_$U2","_$NT","_$9r","_$vS","_$no","_$vb","ab","_$Y0","al","_$8r","_$ur","_$Yr","_$Wr","aq","_$NL","_$zo","ao","_$o2","_$rr","_$eP","getUint8","E","_$o","_$A","_$Eo","H","_$Cr","_$hr","visible","_$g0","aj","_$VS","_$e0","D","an","_$4S","au","viewport","_$6r","_$xP","_$3r","_$uP","_$Qo","cacheImages","f","_$TT","_$LT","_$FS","_$IP","_$JS","_$AT","totalScale","_$7s","totalOpacity","J","_$ib","_$LP","_$d0","_$Yo","_$JP","_$5P","_$BP","_$Qi","_$6s","_$ms","gl_cacheImage","instanceNo","ag","aB","drawParamWebGL","C","getGL","V","_$eb","M","_$w0","_$9L","_$z2","_$bs","_$Do","_$sr","_$Gs","am","textures","glno","firstDraw","anisotropyExt","maxAnisotropy","_$Gr","vertShader","fragShader","vertShaderOff","fragShaderOff","T","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","DYNAMIC_DRAW","L","ELEMENT_ARRAY_BUFFER","K","Int8Array","_$R0","DataView","buffer","_$3i","_$hL","_$v0","_$S2","_$Ko","_$T","_$F","ai","aC","_$Us","_$IS","baseOpacity","clipBufPre_clipContext","_$0s","_$4s","_$62","aQ","aU","ArrayBuffer","aN","aS","aM","_$ST","_$gr","_$T7","aL","_$nP","_$s7","_$9T","aT","_$KS","aP","getModelContext","setDrawParam","getDrawParam","aO","_$Rb","getModelImpl","_$zP","arguments","_$Rs","_$li","_$Ds","_$K2","_$s2","_$P7","aR","a0","aY","aW","aV","aZ","getDrawData","_$C2","getIndexArray","getType","_$wb","CHANNEL_COUNT","RENDER_TEXTURE_USE_MIPMAP","NOT_USED_FRAME","_$L7","releaseShader","deleteFramebuffer","framebuffer","getClipIDList","findSameClip","getDrawDataID","addClippedDrawData","createFramebuffer","setupClip","calcClippedDrawTotalBounds","getParameter","FRAMEBUFFER_BINDING","clippingMaskBufferSize","setupLayoutBounds","bindFramebuffer","FRAMEBUFFER","_$jL","expand","aX","setClipBufPre_clipContextForMask","getColorBuffer","a6","a5","_$yo","a4","a3","_$i2","_$No","a2","_$JT","_$pT","getFadeOut","_$4T","_$mT","getDurationMSec","getLoopDurationMSec","_$r2","_$8s","_$fT","start","getSystemTimeMSec","dump","end","_$Ji","_$dL","_$KL","_$nr","stack","_$8P","_$6P","_$EL","_$5T","_$tP","_$27","_$3s","_$F0","_$6L","_$6S","_$Xr","_$E2","_$Yb","_$xT","getPhysicsPoint1","getPhysicsPoint2","_$qr","_$pr","_$5r","_$Cs","atan2","_$oP","_$oo","_$YS","cos","_$bS","_$_T","getFormatVersion","LIVE2D_FORMAT_VERSION_V2_10_SDK2","_$po","_$e","ad","_$ni","isNaN","contains","_$Z2","bb","bo","bp","_$Q2","_$vs","ba","_$Tr","_$zr","bj","bi","a9","a8","br","bq","bn","bm","bg","bf","bu","bt","bl","bk","be","bc","a7","bh","bs","bd","_$br","_$Vr","bV","bW","bC","bX","bH","bw","bI","_$jT","b3","bT","b1","bP","b2","b0","bM","bL","bZ","bN","b8","b7","bU","bS","b6","b5","bQ","bO","bD","bB","by","bx","bG","bE","bv","bA","bz","bY","bK","b4","bJ","bF","bR","_$HT","_$ES","_$8S","_$52","_$R2","_$or","_$Pr","convertClipIDForV2_11","test","split","_$cS","_$Tb","_$MS","_$Nr","_$Zs","_$2b","_$j2","getOpacity","_$zS","getTargetBaseDataID","_$gs","_$32","_$2o","preDraw","_$B2","CLIPPING_PROCESS_OVERWRITE_ALPHA","CLIPPING_PROCESS_MULTIPLY_ALPHA","CLIPPING_PROCESS_DRAW","CLIPPING_PROCESS_CLEAR_ALPHA","getChannelFlagAsColor","_$ZT","_$Uo","setBaseColor","_$WP","_$IT","setPremultipliedAlpha","setAnisotropy","getAnisotropy","getClippingProcess","setClippingProcess","getClipBufPre_clipContextMask","setClipBufPre_clipContextForDraw","getClipBufPre_clipContextDraw","_$c2","_$_b","readV2_opacity","interpolateOpacity","setInterpolatedOpacity","_$nb","_$a2","getBaseDataID","_$W2","_$CS","_$Mo","_$XP","getTimeMSec","setUserTimeMSec","updateUserTimeMSec","Date","getTime","_$Q","_$Pb","getParamID","_$yP","_$N2","_$d2","_$t2","_$Lr","_$wr","_$SL","_$AL","startsWith","getChar","charAt","createString","Uint16Array","_$LS","_$Ur","_$WS","_$v2","_$Xb","Exception","_$J","_$3T","_$h2","_$J2","getParamCount","_$zs","mult","mult_safe","mult_fast","rotateX","fcos","_$9","rotateY","rotateZ","_$kS","_$hb","_$gb","_$fo","_$go","_$RT","_$so","_$CT","_$cs","_$ar","_$D2","_$1T","_$hs","_$xs","_$us","_$qs","_$Ys","_$ws","_$Ns","_$Fr","_$BL","_$r0","_$aL","isLoopFadeIn","setLoopFadeIn","add","_$Ms","_$Qs","_$do","_$Ls","_$FT","_$Ss","_$o7","_$S7","_$77","LIVE2D_FORMAT_VERSION_V2_11_SDK2_1","_$Is","_$h0","_$4L","_$7P","_$uT","_$9o","_$_0","_$V2","_$W0","_$jr","_$ZS","_$tr","_$lr","getBaseData","_$l2","getBaseDataIndex","_$1s","_$02","getDefaultValue","getMinValue","getMaxValue","_$u2","floor","_$sT","_$H7","_$BS","_$UT","_$Zo","getParamMax","getParamMin","_$p2","_$q2","_$Bb","_$5s","_$GT","_$0T","_$5","exists","_$ls","_$3b","_$Xs","_$kb","read","_$C","_$js","write","_$TS","close","flush","_$T2","_$10","_$uo","_$QS","_$7T","_$cr","_$yL","put","_$oT","_$mb","_$Hs","_$as","setTransform","EXPAND_W","drawElements","Error","_$Sr","_$nS","_$Xo","_$io","_$0o","_$Lo","_$To","_$Po","_$gT","_$Ib","pow","_$hS","_$Jr","_$92","_$NS","getTotalScale","setTotalScale_notForClient","getTotalOpacity","setTotalOpacity","getInterpolatedOpacity","_$os","_$Sb","_$1b","getDrawDataList","_$kr","_$xo","_$to","_$er","_$PL","_$nL","_$_o","MTN_PREFIX_FADEIN","MTN_PREFIX_FADEOUT","byteLength","charCodeAt","_$S0","_$U0","_$VT","transformPoints_sdk2","err","printf","transformPoints_sdk1","_$ts","_$8L","isVisible","_$6o","_$3o","_$uL","_$KP","_$ET","_$ob","getPartsID","_$MP","_$Ks","_$50","_$Ti","_$Pi","_$B","_$lP","_$bL","save","beginPath","_$Li","clip","_$ei","restore","globalAlpha","_$PS","ceil","rotate","shear","IGNORE_EXPAND","USE_CACHED_POLYGON_IMAGE","createCanvas","DEBUG_DATA","LDGL_CANVAS_MB","drawImage","cacheCanvas","cacheContext","IGNORE_CLIP","USE_ADJUST_TRANSLATION","expandClip","clipWithTransform","_$P2","moveTo","lineTo","setAttribute","dumpValues","toFixed","getPartsIndex","_$x2","_$2s","_$Kr","_$sP","_$cb","_$Ts","_$fb","L2D_DEFORMER_EXTEND","_$Wb","_$yr","L2D_NO_ERROR","_$i7","_$9s","_$es","_$r7","_$07","_$b7","L2D_COLOR_BLEND_MODE_ADD","L2D_COLOR_BLEND_MODE_INTERPOLATE","_$6b","_$cT","fTexture","USE_CANVAS_TRANSFORM","PROFILE_IOS_SPEED","PROFILE_NAME","PROFILE_IOS_QUALITY","PROFILE_IOS_DEFAULT","PROFILE_ANDROID","PROFILE_DESKTOP","initProfile","isIOS","setupProfile","isAndroid","alert","getVersionStr","getVersionNo","dispose","setClippingMaskBufferSize","getClippingMaskBufferSize","deleteBuffer","PI_F","_$fr","_$Os","_$ns","_$_s","_$_S","getTextureNo","_$ZL","_$H2","getNumPoints","_$Hb","_$72","_$tb","_$qS","_$Zr","_$Bs","concatenate","_$eT","initShader","getExtension","MAX_TEXTURE_MAX_ANISOTROPY_EXT","disable","SCISSOR_TEST","STENCIL_TEST","DEPTH_TEST","frontFace","CW","enable","BLEND","colorMask","CCW","useProgram","shaderProgram","enableVertexAttribArray","a_position_Loc","vertexAttribPointer","FLOAT","TEXTURE1","uniform1i","s_texture0_Loc","a_texCoord_Loc","uniformMatrix4fv","u_matrix_Loc","uniform4f","u_channelFlag","u_baseColor_Loc","u_maskFlag_Loc","shaderProgramOff","a_position_Loc_Off","s_texture0_Loc_Off","a_texCoord_Loc_Off","u_clipMatrix_Loc_Off","u_matrix_Loc_Off","TEXTURE2","s_texture1_Loc_Off","u_channelFlag_Loc_Off","u_baseColor_Loc_Off","CULL_FACE","ONE","ONE_MINUS_SRC_ALPHA","ZERO","DST_COLOR","blendEquationSeparate","FUNC_ADD","blendFuncSeparate","TEXTURE_MAX_ANISOTROPY_EXT","TRIANGLES","UNSIGNED_SHORT","loadShaders2","getAttribLocation","getUniformLocation","disposeShader","deleteProgram","compileShader","createShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","RGBA4","framebufferRenderbuffer","COLOR_ATTACHMENT0","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","framebufferTexture2D","renderbuffer","_$fP","_$3L","_$mP","_$zT","getFloat64","getFloat32","getInt32","getInt8","getInt16","_$2T","O","_$bT","_$5b","Float64Array","_$Jb","_$4b","_$wP","_$2S","_$wS","_$kT","_$tS","SYSTEM_INFO","USER_AGENT","userAgent","isIPhone","_isIPhone","_isIPad","_isAndroid","getOSVersion","version","getOS","indexOf","os","LDTransform","LDGL","Live2DModelJS","DrawDataID","BaseDataID","ParamID","import"],"mappings":"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IG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,IAAIN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,GAAGN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGH,EAAG,IAAIG,EAAG,GAAGG,EAAG,IAAIN,EAAG,GAAGG,EAAG,GAAGH,EAAG,GAAGG,EAAG,GAAGH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIG,EAAG,IAAIN,EAAG,GAAGG,EAAG,IAAIH,EAAG,GAAGG,EAAG,IAAIH,EAAG,IAAIG,EAAG,IAAIH,EAAG,IAAIG,EAAG,MAAOR,EAAG9oB,UAAUuO,UAAU,SAAS+a,EAAGvB,EAAGoB,GAAI9oB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,GAAGsqB,EAAGjpB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,EAAG9oB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,GAAGsqB,EAAGjpB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,EAAG9oB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,GAAGsqB,EAAGjpB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,IAAIqB,KAAKrB,EAAE,GAAGsqB,EAAGjpB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,KAAM8pB,EAAG9oB,UAAU6O,MAAM,SAASkZ,EAAGoB,EAAGG,GAAIjpB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,IAAIsqB,EAAGjpB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,IAAIsqB,EAAGjpB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,KAAKsqB,EAAGjpB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAG9oB,KAAKrB,EAAE,KAAKsqB,GAAKR,EAAG9oB,UAAUquC,QAAQ,SAAS/kB,GAAI,GAAIG,GAAGiS,GAAG4S,KAAKhlB,GAAQvB,EAAG2T,GAAG6S,IAAIjlB,GAAQH,EAAG9oB,KAAKrB,EAAE,EAAGqB,MAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,IAAIyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,IAAIyqB,GAAKX,EAAG9oB,UAAUwuC,QAAQ,SAASllB,GAAI,GAAIG,GAAGiS,GAAG4S,KAAKhlB,GAAQvB,EAAG2T,GAAG6S,IAAIjlB,GAAQH,EAAG9oB,KAAKrB,EAAE,EAAGqB,MAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,EAAGpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,IAAI+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,EAAGpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAGnqB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,KAAK+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAGpB,EAAG1nB,KAAKrB,EAAE,IAAIyqB,EAAGN,EAAGnqB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,KAAK+oB,EAAG1nB,KAAKrB,EAAE,IAAImqB,EAAGpB,EAAG1nB,KAAKrB,EAAE,IAAIyqB,GAAKX,EAAG9oB,UAAUyuC,QAAQ,SAASnlB,GAAI,GAAIG,GAAGiS,GAAG4S,KAAKhlB,GAAQvB,EAAG2T,GAAG6S,IAAIjlB,GAAQH,EAAG9oB,KAAKrB,EAAE,EAAGqB,MAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,EAAGN,EAAG9oB,KAAKrB,EAAE,GAAGqB,KAAKrB,EAAE,GAAGmqB,EAAGM,EAAGppB,KAAKrB,EAAE,GAAG+oB,EAAG1nB,KAAKrB,EAAE,GAAGmqB,GAAIpB,EAAG1nB,KAAKrB,EAAE,GAAGyqB,GAA0EuG,EAAEhwB,UAAU,GAAImrB,IAAK6E,EAAEmS,KAAK,GAAI5iC,QAASywB,EAAEoS,KAAK,WAAWpS,EAAEmS,KAAK/mB,SAAU4U,EAAExc,MAAM,SAAS8V,GAAI,GAAIH,GAAG6G,EAAEmS,KAAK7Y,EAA6C,OAAlC,OAAJH,IAAUA,EAAG,GAAI6G,GAAE1G,GAAI0G,EAAEmS,KAAK7Y,GAAIH,GAAWA,GAAK6G,EAAEhwB,UAAUqiC,KAAK,WAAW,MAAO,IAAIrS,IAA4IC,EAAGye,MAAM,EAAEze,EAAGU,KAAK,EAAEV,EAAG0e,KAAK,EAAE1e,EAAGQ,eAAe,EAAER,EAAG2e,KAAK,EAAE3e,EAAG4e,KAAK,EAAE5e,EAAG6e,KAAK,EAAE7e,EAAGjwB,UAAUgc,UAAU,SAASyN,EAAGN,EAAGG,GAAI,GAAIyT,GAAGT,EAAG0B,EAAGzB,EAAGI,EAAG5U,EAAOmU,EAAG,EAAMG,EAAG,CAAE,QAAOh8B,KAAKmwB,MAAM,QAAQ,MAAO,KAAMP,GAAG6e,KAAK7e,EAAG4e,KAAK5e,EAAG2e,KAA8E,IAAxE7R,EAAG18B,KAAK6vB,IAAIoM,EAAGj8B,KAAK+vB,IAAI4N,EAAG39B,KAAKiwB,IAAIiM,EAAGl8B,KAAK8vB,IAAIwM,EAAGt8B,KAAKgwB,IAAItI,EAAG1nB,KAAKkwB,MAAYjH,GAAI,GAAE,CAAC,GAAI2T,GAAGxT,EAAGyS,KAAUmB,EAAG5T,EAAGyS,IAAM/S,GAAGkT,KAAOU,EAAGE,EAAGX,EAAGe,EAAGW,EAAI7U,EAAGkT,KAAOE,EAAGU,EAAGN,EAAGU,EAAGtV,EAAK,MAAO,KAAMkI,GAAG6e,KAAK7e,EAAG4e,KAAsD,IAAhD9R,EAAG18B,KAAK6vB,IAAIoM,EAAGj8B,KAAK+vB,IAAImM,EAAGl8B,KAAK8vB,IAAIwM,EAAGt8B,KAAKgwB,MAAY/G,GAAI,GAAE,CAAC,GAAI2T,GAAGxT,EAAGyS,KAAUmB,EAAG5T,EAAGyS,IAAM/S,GAAGkT,KAAOU,EAAGE,EAAGX,EAAGe,EAAIlU,EAAGkT,KAAOE,EAAGU,EAAGN,EAAGU,EAAK,MAAO,KAAMpN,GAAG6e,KAAK7e,EAAG2e,KAAsD,IAAhDtS,EAAGj8B,KAAK+vB,IAAI4N,EAAG39B,KAAKiwB,IAAIiM,EAAGl8B,KAAK8vB,IAAIpI,EAAG1nB,KAAKkwB,MAAYjH,GAAI,GAAE,CAAC,GAAI2T,GAAGxT,EAAGyS,IAAM/S,GAAGkT,KAAOC,EAAG7S,EAAGyS,KAAM8B,EAAI7U,EAAGkT,KAAOE,EAAGU,EAAGlV,EAAK,MAAO,KAAMkI,GAAG6e,KAA8B,IAAxBxS,EAAGj8B,KAAK+vB,IAAImM,EAAGl8B,KAAK8vB,MAAY7G,GAAI,GAAE,CAAC,GAAI2T,GAAGxT,EAAGyS,IAAM/S,GAAGkT,KAAOC,EAAG7S,EAAGyS,KAAO/S,EAAGkT,KAAOE,EAAGU,EAAK,MAAO,KAAMhN,GAAG4e,KAAK5e,EAAG2e,KAAsD,IAAhD7R,EAAG18B,KAAK6vB,IAAI8N,EAAG39B,KAAKiwB,IAAIqM,EAAGt8B,KAAKgwB,IAAItI,EAAG1nB,KAAKkwB,MAAYjH,GAAI,GAAGH,EAAGkT,KAAOU,EAAGtT,EAAGyS,KAAM8B,EAAI7U,EAAGkT,KAAOM,EAAGlT,EAAGyS,KAAMnU,CAAK,OAAO,KAAMkI,GAAG4e,KAA8B,IAAxB9R,EAAG18B,KAAK6vB,IAAIyM,EAAGt8B,KAAKgwB,MAAY/G,GAAI,GAAGH,EAAGkT,KAAOU,EAAGtT,EAAGyS,KAAO/S,EAAGkT,KAAOM,EAAGlT,EAAGyS,IAAQ,OAAO,KAAMjM,GAAG2e,KAA8B,IAAxB5Q,EAAG39B,KAAKiwB,IAAIvI,EAAG1nB,KAAKkwB,MAAYjH,GAAI,GAAGH,EAAGkT,KAAO5S,EAAGyS,KAAM8B,EAAI7U,EAAGkT,KAAO5S,EAAGyS,KAAMnU,CAAK,OAAO,KAAMkI,GAAGQ,eAA6D,YAA1ChH,GAAIN,GAAI+S,GAAIG,GAAIhN,EAAEmX,KAAK/c,EAAGyS,EAAG/S,EAAGkT,EAAM,EAAH/S,MAAiB2G,EAAGjwB,UAAUqR,OAAO,WAAwB,GAAVhR,KAAK+vB,KAAkB,GAAV/vB,KAAK8vB,IAAqB,GAAV9vB,KAAK6vB,KAAkB,GAAV7vB,KAAKgwB,IAAqB,GAAVhwB,KAAKiwB,KAAkB,GAAVjwB,KAAKkwB,KAAQlwB,KAAKmwB,KAAKP,EAAGQ,eAAepwB,KAAKqwB,IAAIT,EAAGU,OAAWtwB,KAAKmwB,KAAKP,EAAG2e,KAAKvuC,KAAKqwB,IAAIT,EAAG0e,MAAyB,GAAVtuC,KAAKiwB,KAAkB,GAAVjwB,KAAKkwB,KAAQlwB,KAAKmwB,KAAKP,EAAG4e,KAAKxuC,KAAKqwB,IAAIT,EAAGye,OAAWruC,KAAKmwB,KAAMP,EAAG4e,KAAK5e,EAAG2e,KAAMvuC,KAAKqwB,IAAIT,EAAGye,MAA0B,GAAVruC,KAAK6vB,KAAkB,GAAV7vB,KAAKgwB,IAAqB,GAAVhwB,KAAKiwB,KAAkB,GAAVjwB,KAAKkwB,KAAQlwB,KAAKmwB,KAAKP,EAAG6e,KAAKzuC,KAAKqwB,IAAIT,EAAGye,OAAWruC,KAAKmwB,KAAMP,EAAG6e,KAAK7e,EAAG2e,KAAMvuC,KAAKqwB,IAAIT,EAAGye,MAAyB,GAAVruC,KAAKiwB,KAAkB,GAAVjwB,KAAKkwB,KAAQlwB,KAAKmwB,KAAMP,EAAG6e,KAAK7e,EAAG4e,KAAMxuC,KAAKqwB,IAAIT,EAAGye,OAAWruC,KAAKmwB,KAAMP,EAAG6e,KAAK7e,EAAG4e,KAAK5e,EAAG2e,KAAMvuC,KAAKqwB,IAAIT,EAAGye,OAAUze,EAAGjwB,UAAU+uC,KAAK,SAAStlB,GAAIppB,KAAKuqC,KAAKnhB,EAAI,IAAI1B,GAAG0B,EAAG,GAAOH,EAAGG,EAAG,GAAO4S,EAAG5S,EAAG,GAAO8S,EAAG9S,EAAG,GAAON,EAAGxc,KAAK0H,KAAK0T,EAAGA,EAAGsU,EAAGA,GAAQM,EAAG5U,EAAGwU,EAAGjT,EAAG+S,CAAU,IAAJlT,EAAUV,GAAEumB,MAAM7mC,QAAQP,IAAI,0BAAgC6hB,EAAG,GAAGN,EAAGM,EAAG,GAAGkT,EAAGxT,EAAGM,EAAG,IAAI4S,EAAGE,EAAGxU,EAAGuB,GAAIqT,EAAGlT,EAAG,GAAG9c,KAAKw2B,MAAM9G,EAAGtU,KAAOkI,EAAGjwB,UAAUgvB,KAAK,SAASqN,EAAGE,EAAGpT,EAAGG,GAAI,GAAIqT,GAAG,GAAIt5B,cAAa,GAAOomB,EAAG,GAAIpmB,cAAa,EAAGg5B,GAAG0S,KAAKpS,GAAIJ,EAAGwS,KAAKtlB,EAAI,IAAI1B,GAAG,GAAI1kB,cAAa,EAAG0kB,GAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGpB,EAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGpB,EAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGpB,EAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGpB,EAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGpB,EAAG,GAAG4U,EAAG,IAAIlT,EAAG,GAAGkT,EAAG,IAAIxT,EAAGG,EAAG2lB,KAAKlnB,IAAMkI,EAAGjwB,UAAUivC,KAAK,SAASlnB,GAAI,GAAIoB,GAAGxc,KAAK42B,IAAIxb,EAAG,IAAQuB,EAAG3c,KAAKgW,IAAIoF,EAAG,GAAI1nB,MAAK6vB,IAAInI,EAAG,GAAGoB,EAAG9oB,KAAK8vB,IAAIpI,EAAG,GAAGuB,EAAGjpB,KAAK+vB,IAAIrI,EAAG,IAAIA,EAAG,GAAGoB,EAAGG,GAAIjpB,KAAKgwB,IAAItI,EAAG,IAAIA,EAAG,GAAGuB,EAAGH,GAAI9oB,KAAKiwB,IAAIvI,EAAG,GAAG1nB,KAAKkwB,IAAIxI,EAAG,GAAG1nB,KAAKgR,UAAW4e,EAAGjwB,UAAU4qC,KAAK,SAASthB,GAAIA,EAAG,GAAGjpB,KAAK6vB,IAAI5G,EAAG,GAAGjpB,KAAK8vB,IAAI7G,EAAG,GAAGjpB,KAAK+vB,IAAI9G,EAAG,GAAGjpB,KAAKgwB,IAAI/G,EAAG,GAAGjpB,KAAKiwB,IAAIhH,EAAG,GAAGjpB,KAAKkwB,KAAiNK,EAAE5wB,UAAU,GAAIyqB,GAAKmG,EAAEse,KAAK,WAAWte,EAAEue,KAAK,UAAUve,EAAEE,KAAK,EAAEF,EAAEwe,QAAQxe,EAAEye,KAAK,EAAEze,EAAEjoB,WAAW,SAASq1B,GAAI,GAAIzB,GAAG,GAAI3L,GAAQzH,GAAI,GAAO8T,EAAGe,EAAG5zB,MAAOmyB,GAAGvL,KAAK,CAAE,KAAI,GAAIjJ,GAAG,EAAEA,EAAGkV,IAAKlV,EAAG,CAAC,GAAImU,GAAW,IAAP8B,EAAGjW,EAAS,IAAO,MAAJmU,GAAc,MAAJA,EAAoB,GAAO,KAAJA,EAA2E,GAAO,KAAJA,GAAqd,GAAI,KAAKA,GAAIA,GAAI,KAAO,KAAKA,GAAIA,GAAI,KAAU,KAAJA,EAAQ,CAAqB,IAApB,GAAIa,GAAGhV,EAAO0B,GAAI,EAAO1B,EAAGkV,IAAgC,OAAvBf,EAAW,IAAP8B,EAAGjW,KAA0B,MAAJmU,KAAjCnU,EAAkD,GAAO,KAAJmU,EAAQ,CAACzS,EAAG1B,CAAG,OAAQ,GAAG0B,GAAI,EAAE,CAAC,GAAI4S,GAAG,GAAInvB,EAAO4iB,GAAEmd,WAAWjP,EAAGjB,EAAGnM,EAAEse,OAAO7S,EAAG5K,KAAKvkB,EAAEoiC,KAAKjT,EAAG9K,KAAK,GAAIzL,QAAOkY,EAAGjB,EAAGtT,EAAGsT,IAAajN,EAAEmd,WAAWjP,EAAGjB,EAAGnM,EAAEue,OAAO9S,EAAG9K,KAAK,GAAIzL,QAAOkY,EAAGjB,EAAG,EAAEtT,EAAGsT,EAAG,GAAMjN,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,YAAaV,EAAG5K,KAAKvkB,EAAEqiC,KAAczf,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,YAAaV,EAAG5K,KAAKvkB,EAAEsiC,KAAc1f,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,WAAYV,EAAG5K,KAAKvkB,EAAEuiC,KAAc3f,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,WAAYV,EAAG5K,KAAKvkB,EAAEwiC,KAAc5f,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,KAAMV,EAAG5K,KAAKvkB,EAAEyiC,KAAc7f,EAAEmd,WAAWjP,EAAGjB,EAAG,EAAE,OAAMV,EAAG5K,KAAKvkB,EAAE0iC,QAAiBvT,EAAG5K,KAAKvkB,EAAE2iC,KAAKxT,EAAG9K,KAAK,GAAIzL,QAAOkY,EAAGjB,EAAGtT,EAAGsT,IAAMR,EAAG56B,QAAQsK,KAAKowB,EAAI,IAAIC,GAAG,CAAiB,KAAf1L,EAAEwe,KAAKh0B,QAAY2M,EAAG0B,EAAG,EAAE1B,EAAGkV,IAAgC,OAAvBf,EAAW,IAAP8B,EAAGjW,KAA0B,MAAJmU,KAAjCnU,EAAkD,GAAO,KAAJmU,GAAa,KAAJA,GAAa,MAAJA,EAArB,CAAyC,GAAIS,GAAG7M,EAAEwd,KAAKtP,EAAGf,EAAGlV,EAAGoB,EAAI,IAAGA,EAAG,GAAG,EAAE,CAACyH,EAAEwe,KAAKnjC,KAAK0wB,GAAIL,GAAK,IAAIhT,GAAGH,EAAG,EAAG,IAAGG,EAAGvB,EAAG,CAAC5f,QAAQP,IAAI,2CAA4C,OAAOmgB,EAAGuB,GAAK+S,EAAG7K,KAAKZ,EAAEwe,KAAKU,OAAUxT,EAAGC,EAAGvL,OAAMuL,EAAGvL,KAAKsL,SAA9gD,CAAgC,IAApB,GAAIS,GAAGhV,EAAO0B,GAAI,EAAO1B,EAAGkV,IAAgC,OAAvBf,EAAW,IAAP8B,EAAGjW,KAA0B,MAAJmU,KAAjCnU,EAAkD,GAAO,KAAJmU,EAAQ,CAACzS,EAAG1B,CAAG,OAAQ,GAAIsV,IAAG,CAAM,IAAG5T,GAAI,EAAsE,IAAhEA,GAAIsT,EAAG,GAAa,KAAViB,EAAGjB,EAAG,IAAmB,KAAViB,EAAGjB,EAAG,IAAmB,KAAViB,EAAGjB,EAAG,KAASM,GAAG,GAAUtV,EAAG0B,EAAG,EAAE1B,EAAGkV,IAAgC,OAAvBf,EAAW,IAAP8B,EAAGjW,KAA0B,MAAJmU,KAAjCnU,EAAkD,GAAO,KAAJmU,GAAa,KAAJA,GAAa,MAAJA,EAArB,CAAyC,GAAIS,GAAG7M,EAAEwd,KAAKtP,EAAGf,EAAGlV,EAAGoB,EAAOA,GAAG,GAAG,GAAMkU,GAAI,EAAEV,GAAIA,EAAG,MAAKJ,EAAGxL,KAAK4L,GAAK5U,EAAGoB,EAAG,GAAK,KAAKpB,EAAGkV,IAAoB,MAARe,EAAGjW,IAAmB,MAARiW,EAAGjW,MAAxBA,QAAre,MAAKA,EAAGkV,IAAoB,MAARe,EAAGjW,IAAmB,MAARiW,EAAGjW,MAAxBA,IAA6mD,MAAnCwU,GAAGpL,KAAO,IAAKoL,EAAGvL,KAAMuL,EAAGxL,KAAM,EAASwL,GAAK3L,EAAE5wB,UAAUihC,gBAAgB,WAAW,MAAO5gC,MAAK8wB,MAAOP,EAAE5wB,UAAUwhC,KAAK,WAAW,IAAI,GAAIzZ,GAAG,EAAEA,EAAG1nB,KAAKsB,QAAQyI,OAAO2d,IAAK,CAAC,GAAIuB,GAAGjpB,KAAKsB,QAAQomB,EAAI5f,SAAQP,IAAI,kBAAkB0hB,EAAGiI,KAAKjI,EAAGkI,KAAKpnB,OAAQ,KAAI,GAAI+e,GAAG,EAAEA,EAAGG,EAAGkI,KAAKpnB,QAAQ+e,EAAG,GAAGA,IAAMhhB,QAAQP,IAAI,UAAU0hB,EAAGkI,KAAKrI,GAAMhhB,SAAQP,IAAI,QAASgpB,EAAE5wB,UAAUkM,eAAe,SAASod,EAAGqT,EAAGU,EAAG4C,GAAwE,IAAI,GAApE1D,GAAGI,EAAGsD,EAAG5G,KAAS+E,EAAG7B,EAAGl8B,KAAK0wB,KAAK,IAAShJ,EAAM,EAAHqW,EAASnB,EAAGmB,EAAGrW,EAAWoU,EAAG,EAAEA,EAAG97B,KAAKsB,QAAQyI,OAAO+xB,IAAK,CAAC,GAAIG,GAAGj8B,KAAKsB,QAAQw6B,GAAQ1S,EAAG6S,EAAG9K,KAAKpnB,OAAW8xB,EAAGI,EAAG/K,IAAK,IAAG+K,EAAG7K,MAAMvkB,EAAEoiC,KAAK,CAAC,GAAIvS,GAAGT,EAAG9K,KAAMzJ,GAAI0B,EAAGA,EAAG,EAAE1B,EAAKuB,GAAG7c,cAAcyvB,EAAGa,OAAU,IAAG7vB,EAAEyiC,MAAMrT,EAAG7K,MAAM6K,EAAG7K,MAAMvkB,EAAEwiC,UAAW,CAAC,GAAI1R,GAAG1U,EAAG1W,cAAcspB,GAAQgC,EAAG5B,EAAG9K,KAAMzJ,GAAI0B,EAAGA,EAAG,EAAE1B,GAASoW,EAAG7B,EAAG9K,KAAMzJ,EAAG,GAAG0B,EAAGA,EAAG,EAAE1B,EAAG,GAAQoB,EAAG+U,GAAIC,EAAGD,GAAIjB,EAAOZ,EAAG2B,GAAI7U,EAAG6U,GAAIX,CAAG/T,GAAG7c,cAAcyvB,EAAGG,IAAUtU,GAAI1nB,KAAK2wB,OAAS3wB,KAAK4wB,KAAKgP,EAAG5G,KAAKsD,EAAMt8B,KAAK6wB,aAAY+O,EAAG3G,KAAKqD,IAAUsD,EAAG7G,MAAK,IAASxI,EAAE5wB,UAAU+vC,KAAK,WAAW,MAAO1vC,MAAK4wB,KAAML,EAAE5wB,UAAUgwC,KAAK,SAAS1mB,GAAIjpB,KAAK4wB,IAAI3H,GAAKsH,EAAE5wB,UAAUiwC,aAAa,WAAW,MAAO5vC,MAAK6wB,YAAaN,EAAE5wB,UAAUkwC,cAAc,SAAS5mB,GAAIjpB,KAAK6wB,WAAW5H,GAA+D8H,EAAGpxB,UAAUob,MAAM,WAAW/a,KAAKixB,KAAK,GAAIF,EAAGpxB,UAAUmwC,IAAI,SAAShnB,GAAI,GAAG9oB,KAAKgxB,IAAIjnB,QAAQ/J,KAAKixB,KAAK,CAAC,GAAIhI,GAAG,GAAIjmB,cAAuB,EAAVhD,KAAKixB,KAAQjC,GAAEmX,KAAKnmC,KAAKgxB,IAAI,EAAE/H,EAAG,EAAEjpB,KAAKixB,MAAMjxB,KAAKgxB,IAAI/H,EAAIjpB,KAAKgxB,IAAIhxB,KAAKixB,QAAQnI,GAAKiI,EAAGpxB,UAAU8vC,KAAK,WAAW,GAAIxmB,GAAG,GAAIjmB,cAAahD,KAAKixB,KAAwC,OAAlCjC,GAAEmX,KAAKnmC,KAAKgxB,IAAI,EAAE/H,EAAG,EAAEjpB,KAAKixB,MAAahI,GAAgEpc,EAAE2iC,KAAK,EAAE3iC,EAAEoiC,KAAK,EAAEpiC,EAAEyiC,KAAK,IAAIziC,EAAE0iC,KAAK,IAAI1iC,EAAEqiC,KAAK,IAAIriC,EAAEsiC,KAAK,IAAItiC,EAAEuiC,KAAK,IAAIviC,EAAEwiC,KAAK,IAAmBhe,EAAG0e,KAAK,EAAE1e,EAAG2e,KAAK,EAAE3e,EAAG+O,KAAK,EAAE/O,EAAGgP,KAAK,EAAEhP,EAAG4e,KAAK5e,EAAG0e,KAAK1e,EAAG6e,MAAK,EAAK7e,EAAGyB,KAAK,EAAEzB,EAAGuB,KAAK,GAAGvB,EAAGkc,IAAI,KAAOlc,EAAG8e,KAAK,KAAM9e,EAAG+e,KAAK,EAAiBh8B,EAAGi8B,KAAK,EAAEj8B,EAAGk8B,KAAK,EAAEl8B,EAAGooB,KAAK,EAAEpoB,EAAGm8B,KAAK,EAAEn8B,EAAGkvB,iCAAiC,GAAGlvB,EAAGo8B,mCAAmC,GAAGp8B,EAAGioB,KAAKjoB,EAAGo8B,mCAAmCp8B,EAAGq8B,MAAM,WAAWr8B,EAAGs8B,KAAK,EAAEt8B,EAAGu8B,KAAK,GAAGv8B,EAAGw8B,KAAK,GAAGx8B,EAAGy8B,KAAK,SAAS5nB,GAAInhB,QAAQP,IAAI,+BAA+B0hB,IAAM7U,EAAG08B,KAAK,SAAS7nB,GAAI,GAAGA,EAAG,GAAgB,MAAZ7U,GAAGy8B,KAAK5nB,GAAW,IAAW,IAAGA,EAAG,GAAgB,MAAZ7U,GAAGy8B,KAAK5nB,GAAW,IAAW,IAAGA,EAAG,GAAgB,MAAZ7U,GAAGy8B,KAAK5nB,GAAW,IAAW,IAAGA,EAAG,IAAK,OAAOA,GAAI,IAAK,IAAG,MAAO,IAAIuM,EAAI,KAAK,IAAG,MAAO,IAAIxM,EAAI,KAAK,IAAG,MAAO,IAAIiG,EAAK,KAAK,IAAG,MAAO,IAAIwF,EAAK,KAAK,IAAG,MAAO,IAAI3H,EAAI,KAAK,IAAG,MAAO,IAAI3f,GAAI,SAAoB,MAAZiH,GAAGy8B,KAAK5nB,GAAW,SAAY,IAAGA,EAAG,IAAK,OAAOA,GAAI,IAAK,KAAI,MAAO,IAAI8N,GAAI,KAAK,KAAI,MAAO,IAAIj3B,GAAI,KAAK,KAAI,MAAO,IAAIqD,EAAI,KAAK,KAAI,MAAO,IAAIkzB,GAAK,KAAK,KAAI,MAAO,IAAIrB,GAAuB,MAAZ5gB,GAAGy8B,KAAK5nB,GAAW,MAAqoBpiB,EAAEosB,KAAK,EAAEpsB,EAAEkqC,MAAK,CAAKlqC,GAAEmqC,MAAM,EAAEnqC,EAAEoqC,MAAM,EAAEpqC,EAAEqqC,MAAK,EAAMrqC,EAAEsqC,MAAK,EAAKtqC,EAAEuqC,MAAO,IAASvqC,EAAEwqC,KAAM,IAASxqC,EAAE6qB,KAAK,GAAG7qB,EAAE28B,KAAI,EAAM38B,EAAElH,UAAU4J,iBAAiB,SAASuf,GAAI,IAAI,GAAIG,GAAGjpB,KAAKkyB,KAAKnoB,OAAO,EAAEkf,GAAI,IAAIA,EAAI,GAAkB,MAAfjpB,KAAKkyB,KAAKjJ,IAAWjpB,KAAKkyB,KAAKjJ,GAAI8V,iBAAiBjW,EAAI,MAAOG,EAAK,QAAQ,GAAIpiB,EAAElH,UAAUs+B,YAAY,SAAShV,GAAI,GAAGA,YAAc0G,GAAE,CAAC,GAAc,MAAX3vB,KAAKmyB,KAAW,CAACnyB,KAAKmyB,KAAK,GAAIjzB,OAAiC,KAAI,GAAxBwoB,GAAG1nB,KAAKkyB,KAAKnoB,OAAe+e,EAAG,EAAEA,EAAGpB,EAAGoB,IAAK,CAAC,GAAIwT,GAAGt8B,KAAKkyB,KAAKpJ,GAAQM,EAAGkT,EAAGyC,eAAuB,OAAJ3V,IAAoBppB,KAAKmyB,KAAK/I,GAAIkT,IAAK,MAAOt8B,MAAKmyB,KAAKpwB,IAAU,MAAGknB,GAAGjpB,KAAKkyB,KAAKnoB,OAAe/J,KAAKkyB,KAAKjJ,GAAiB,MAASpiB,EAAElH,UAAU4f,QAAQ,WAAWvf,KAAKiyB,KAAKlX,QAAQ/a,KAAKkyB,KAAKnX,QAAQ/a,KAAKirB,KAAKlQ,QAAsB,MAAX/a,KAAKmyB,MAAYnyB,KAAKmyB,KAAKpX,QAAS/a,KAAKoyB,KAAKrX,QAAQ/a,KAAKqyB,KAAKtX,QAAQ/a,KAAKsyB,KAAKvX,SAAUlU,EAAElH,UAAU2Z,KAAK,WAAWtZ,KAAKuxB,OAAUvxB,KAAKirB,KAAKlhB,OAAO,GAAG/J,KAAKuf,SAAmH,KAAI,GAAxGyd,GAAGh9B,KAAK+yB,KAAKmK,eAAmBR,EAAGM,EAAGoF,OAAWnG,EAAGS,EAAG3yB,OAAWkf,EAAG,GAAIpnB,OAAYs+B,EAAG,GAAIt+B,OAAgBk8B,EAAG,EAAEA,EAAG9B,IAAK8B,EAAG,CAAC,GAAImC,GAAGxD,EAAGqB,EAAI/9B,MAAKirB,KAAKrf,KAAKs0B,GAAIlgC,KAAKsyB,KAAK1mB,KAAKs0B,EAAG5mB,KAAKtZ,MAAgD,KAAI,GAAzCopB,GAAG8W,EAAGoR,cAAkB3T,EAAGvU,EAAGrf,OAAe+xB,EAAG,EAAEA,EAAG6B,IAAK7B,EAAI7S,EAAGrd,KAAKwd,EAAG0S,GAAM,KAAI,GAAIA,GAAG,EAAEA,EAAG6B,IAAK7B,EAAG,CAAC,GAAII,GAAG9S,EAAG0S,GAAIxiB,KAAKtZ,KAAMk8B,GAAGqV,KAAKxT,GAAIoC,EAAGv0B,KAAKswB,GAA8C,IAAI,GAAzCtpB,GAAGstB,EAAGjC,cAAkBrB,EAAGhqB,EAAG7I,OAAe+xB,EAAG,EAAEA,EAAGc,IAAKd,EAAG,CAAC,GAAIkC,GAAGprB,EAAGkpB,GAAQ8B,EAAGI,EAAG1kB,KAAKtZ,KAAM49B,GAAGzG,KAAK4G,EAAG/9B,KAAKkyB,KAAKtmB,KAAKoyB,GAAIh+B,KAAKqyB,KAAKzmB,KAAKgyB,IAAuC,IAAjC,GAAIC,GAAG5U,EAAGlf,OAAWiyB,EAAGz8B,GAAEoqC,SAAkB,CAAc,IAAI,GAAb/J,IAAG,EAAc7B,EAAG,EAAEA,EAAGF,IAAKE,EAAG,CAAC,GAAIzB,GAAGrT,EAAG8U,EAAI,IAAO,MAAJzB,EAAH,CAAuB,GAAIgE,GAAGhE,EAAGkN,uBAA6B,MAAJlJ,GAAUA,GAAItE,GAAIh8B,KAAKwxC,iBAAiBlR,IAAK,KAAGtgC,KAAKiyB,KAAKrmB,KAAK0wB,GAAIt8B,KAAKoyB,KAAKxmB,KAAKu0B,EAAGpC,IAAK9U,EAAG8U,GAAI,KAAK6B,GAAG,IAAO,IAAIA,EAAI,MAAQ,GAAI9W,GAAGkU,EAAGqF,MAAO,IAAO,MAAJvZ,EAAS,CAAC,GAAIpB,GAAGoB,EAAG2oB,MAAO,IAAO,MAAJ/pB,EAA2B,IAAI,GAAjBoW,GAAGpW,EAAG3d,OAAeg0B,EAAG,EAAEA,EAAGD,IAAKC,EAAG,CAAC,GAAIlC,GAAGnU,EAAGqW,EAAW,OAAJlC,GAAoB77B,KAAK0xC,KAAK7V,EAAGsQ,aAAatQ,EAAG8V,kBAAkB9V,EAAG+V,cAAc/V,EAAGgW,gBAAkB7xC,KAAKkzB,YAAY,GAAIzL,GAAEznB,KAAK6nB,UAAU7nB,KAAKkzB,YAAY5Z,KAAKtZ,KAAKA,KAAKkyB,KAAKlyB,KAAKqyB,MAAMryB,KAAKsxB,MAAK,GAAOzqB,EAAElH,UAAUqR,OAAO,WAAcnK,EAAE28B,KAAK/Y,EAAEwW,MAAM,OAAiC,KAAI,GAAxB7X,GAAGppB,KAAK2xB,KAAK5nB,OAAe+zB,EAAG,EAAEA,EAAG1U,EAAG0U,IAAS99B,KAAK2xB,KAAKmM,IAAK99B,KAAK4xB,KAAKkM,KAAK99B,KAAKgyB,KAAK8L,GAAIj3B,EAAEsqC,KAAKnxC,KAAK4xB,KAAKkM,GAAI99B,KAAK2xB,KAAKmM,GAAM,IAAiBjC,GAAG77B,KAAKiyB,KAAKloB,OAAWiyB,EAAGh8B,KAAKkyB,KAAKnoB,OAAWkyB,EAAGh2B,EAAEyiC,OAAW1K,EAAG/3B,EAAE0iC,OAAW7M,EAAGkC,EAAG/B,EAAG,GAAgB,MAAXj8B,KAAKuyB,MAAYvyB,KAAKuyB,KAAKxoB,OAAO+xB,KAAI97B,KAAKuyB,KAAK,GAAII,YAAWmJ,GAAI97B,KAAKwyB,KAAK,GAAIG,YAAWmJ,GAAK,KAAI,GAAIgC,GAAG,EAAEA,EAAGhC,EAAGgC,IAAM99B,KAAKuyB,KAAKuL,GAAIj3B,EAAEmqC,KAAKhxC,KAAKwyB,KAAKsL,GAAIj3B,EAAEmqC,MAAoB,MAAXhxC,KAAKyyB,MAAYzyB,KAAKyyB,KAAK1oB,OAAOiyB,KAAIh8B,KAAKyyB,KAAK,GAAIE,YAAWqJ,GAAK,KAAI,GAAI8B,GAAG,EAAEA,EAAG9B,EAAG8B,IAAM99B,KAAKyyB,KAAKqL,GAAIj3B,EAAEoqC,IAASpqC,GAAE28B,KAAK/Y,EAAE0W,KAAK,QAAYt6B,EAAE28B,KAAK/Y,EAAEwW,MAAM,OAAqB,KAAI,GAAZ3E,GAAG,KAAayB,EAAG,EAAEA,EAAGlC,IAAKkC,EAAG,CAAC,GAAIrW,GAAG1nB,KAAKiyB,KAAK8L,GAAQ9U,EAAGjpB,KAAKoyB,KAAK2L,EAAI,KAAIrW,EAAGwhB,KAAKlpC,KAAKipB,GAAIvB,EAAG0hB,KAAKppC,KAAKipB,GAAK,MAAM4U,GAAW,MAAJvB,IAAUA,EAAGuB,IAAa,MAAJvB,GAAaz1B,EAAEkqC,MAAMtmB,EAAEwS,KAAKX,GAASz1B,EAAE28B,KAAK/Y,EAAE0W,KAAK,QAAYt6B,EAAE28B,KAAK/Y,EAAEwW,MAAM,OAAqB,KAAI,GAAZtD,GAAG,KAAaX,EAAG,EAAEA,EAAGhB,IAAKgB,EAAG,CAAC,GAAId,GAAGl8B,KAAKkyB,KAAK8K,GAAQlU,EAAG9oB,KAAKqyB,KAAK2K,EAAI,KAAqB,GAAjBd,EAAGgN,KAAKlpC,KAAK8oB,GAAOA,EAAGgpB,OAAQ,QAAU5V,GAAGkN,KAAKppC,KAAK8oB,EAAI,IAA2C8T,GAAvCF,EAAGpwB,KAAKylC,MAAM7V,EAAGqN,KAAKvpC,KAAK8oB,GAAImT,EAAW,KAAIW,EAAG58B,KAAKwyB,KAAKkK,GAAK,MAAMmB,GAAI/1B,QAAQP,IAAI,mCAA+Bs2B,EAAGzyB,WAAW8wB,EAAG6C,gBAAgB3zB,YAAYsxB,EAAGpwB,KAAKylC,MAAM7V,EAAGqN,KAAKvpC,KAAK8oB,GAAImT,EAAI,UAAaW,GAAI/1B,EAAEmqC,KAAMhxC,KAAKuyB,KAAKmK,GAAIM,EAASh9B,KAAKyyB,KAAKmK,GAAII,EAAIh9B,KAAKwyB,KAAKkK,GAAIM,EAAI,MAAMa,GAAW,MAAJF,IAAUA,EAAGE,EAAGzV,GAAE4pB,KAAK5pB,GAAE6pB,QAAgB,MAAJtU,GAAa92B,EAAEkqC,MAAMtmB,EAAEwS,KAAKU,GAAS92B,EAAE28B,KAAK/Y,EAAE0W,KAAK,QAAYt6B,EAAE28B,KAAK/Y,EAAEwW,MAAM,OAAS,KAAI,GAAInD,GAAG99B,KAAKgyB,KAAKjoB,OAAO,EAAE+zB,GAAI,EAAEA,IAAM99B,KAAKgyB,KAAK8L,GAAIj3B,EAAEqqC,IAAgD,OAA1ClxC,MAAKsxB,MAAK,EAASzqB,EAAE28B,KAAK/Y,EAAE0W,KAAK,SAA5zC,GAAi1Ct6B,EAAElH,UAAUiqC,QAAQ,SAAS3gB,GAAyB,MAAlBjpB,KAAKkzB,cAAmBjK,EAAGkhB,OAAOnqC,KAAKkzB,YAAYgM,UAAUl/B,KAAKipB,KAAOpiB,EAAElH,UAAU6a,KAAK,SAAS0hB,GAAI,GAAc,MAAXl8B,KAAKuyB,KAA6D,WAAjD9H,GAAE6S,KAAK,yCAAkD,IAAIV,GAAG58B,KAAKuyB,KAAKxoB,MAAOmyB,GAAGiO,MAAO,KAAI,GAAI/gB,GAAG,EAAEA,EAAGwT,IAAKxT,EAAG,CAAC,GAAI4S,GAAGh8B,KAAKuyB,KAAKnJ,EAAI,IAAG4S,GAAIn1B,EAAEmqC,KAAgB,OAAE,CAAC,GAAI/nB,GAAGjpB,KAAKkyB,KAAK8J,GAAQlT,EAAG9oB,KAAKqyB,KAAK2J,EAAI,IAAGlT,EAAGmX,OAAO,CAAC,GAAIvY,GAAGoB,EAAGqO,KAASmF,EAAGt8B,KAAKsyB,KAAK5K,EAAIoB,GAAGoN,KAAKoG,EAAG3pB,kBAAkBsW,EAAGzO,KAAK0hB,EAAGl8B,KAAK8oB,GAAK,GAAIkU,GAAGh9B,KAAKyyB,KAAKuJ,EAAI,IAAGgB,GAAIhB,GAAIgB,GAAIn2B,EAAEoqC,KAAM,KAAOjV,GAAGgB,KAAmBn2B,EAAElH,UAAUqT,cAAc,SAASiW,GAAI,IAAI,GAAIH,GAAG9oB,KAAKyxB,KAAK1nB,OAAO,EAAE+e,GAAI,IAAIA,EAAI,GAAG9oB,KAAKyxB,KAAK3I,IAAKG,EAAI,MAAOH,EAAK,OAAO9oB,MAAK0xC,KAAKzoB,EAAG,EAAEpiB,EAAEuqC,KAAKvqC,EAAEwqC,OAAQxqC,EAAElH,UAAUuyC,KAAK,SAASjpB,GAAI,MAAOjpB,MAAKwxC,iBAAiBvoB,IAAMpiB,EAAElH,UAAU6xC,iBAAiB,SAASvoB,GAAI,IAAI,GAAIH,GAAG9oB,KAAKiyB,KAAKloB,OAAO,EAAE+e,GAAI,IAAIA,EAAI,GAAkB,MAAf9oB,KAAKiyB,KAAKnJ,IAAW9oB,KAAKiyB,KAAKnJ,GAAIyiB,iBAAiBtiB,EAAI,MAAOH,EAAK,QAAQ,GAAIjiB,EAAElH,UAAUwyC,KAAK,SAASzqB,EAAGuB,GAAI,GAAIH,GAAG,GAAI9lB,cAAaimB,EAAgC,OAA5B+F,GAAEmX,KAAKze,EAAG,EAAEoB,EAAG,EAAEpB,EAAG3d,QAAe+e,GAAKjiB,EAAElH,UAAU+xC,KAAK,SAAS1V,EAAGE,EAAGI,EAAGrT,GAAI,GAAGjpB,KAAKwxB,MAAMxxB,KAAKyxB,KAAK1nB,OAAO,CAAC,GAAIqf,GAAGppB,KAAKyxB,KAAK1nB,OAAW2d,EAAG,GAAI7lB,OAAS,EAAHunB,EAAM4F,GAAEmX,KAAKnmC,KAAKyxB,KAAK,EAAE/J,EAAG,EAAE0B,GAAIppB,KAAKyxB,KAAK/J,EAAG1nB,KAAK2xB,KAAK3xB,KAAKmyC,KAAKnyC,KAAK2xB,KAAQ,EAAHvI,GAAMppB,KAAK4xB,KAAK5xB,KAAKmyC,KAAKnyC,KAAK4xB,KAAQ,EAAHxI,GAAMppB,KAAK6xB,KAAK7xB,KAAKmyC,KAAKnyC,KAAK6xB,KAAQ,EAAHzI,GAAMppB,KAAK8xB,KAAK9xB,KAAKmyC,KAAKnyC,KAAK8xB,KAAQ,EAAH1I,EAAM,IAAIN,GAAG,GAAIjnB,MAAQmtB,GAAEmX,KAAKnmC,KAAKgyB,KAAK,EAAElJ,EAAG,EAAEM,GAAIppB,KAAKgyB,KAAKlJ,EAAwJ,MAApJ9oB,MAAKyxB,KAAKzxB,KAAKwxB,MAAMwK,EAAGh8B,KAAK2xB,KAAK3xB,KAAKwxB,MAAM0K,EAAGl8B,KAAK4xB,KAAK5xB,KAAKwxB,MAAM0K,EAAGl8B,KAAK6xB,KAAK7xB,KAAKwxB,MAAM8K,EAAGt8B,KAAK8xB,KAAK9xB,KAAKwxB,MAAMvI,EAAGjpB,KAAKgyB,KAAKhyB,KAAKwxB,MAAM3qB,EAAEsqC,KAAYnxC,KAAKwxB,QAAS3qB,EAAElH,UAAUyyC,KAAK,SAAStpB,EAAGG,GAAIjpB,KAAKiyB,KAAKnJ,GAAIG,GAAKpiB,EAAElH,UAAUyM,cAAc,SAAS6c,EAAGH,GAAOA,EAAG9oB,KAAK6xB,KAAK5I,KAAKH,EAAG9oB,KAAK6xB,KAAK5I,IAAQH,EAAG9oB,KAAK8xB,KAAK7I,KAAKH,EAAG9oB,KAAK8xB,KAAK7I,IAAKjpB,KAAK2xB,KAAK1I,GAAIH,GAAKjiB,EAAElH,UAAU0iB,UAAU,WAAW,GAAI4G,GAAGjpB,KAAK2xB,KAAK5nB,MAAUkf,GAAGjpB,KAAK+xB,KAAKhoB,SAAQkf,EAAGjpB,KAAK+xB,KAAKhoB,QAAQilB,EAAEmX,KAAKnmC,KAAK+xB,KAAK,EAAE/xB,KAAK2xB,KAAK,EAAE1I,IAAMpiB,EAAElH,UAAUgI,UAAU,WAAW,GAAIshB,GAAGjpB,KAAK2xB,KAAK5nB,MAAUkf,GAAGjpB,KAAK+xB,KAAKhoB,SAAQ/J,KAAK+xB,KAAK,GAAI/uB,cAAaimB,IAAK+F,EAAEmX,KAAKnmC,KAAK2xB,KAAK,EAAE3xB,KAAK+xB,KAAK,EAAE9I,IAAMpiB,EAAElH,UAAUytC,KAAK,WAAW,MAAOptC,MAAKuxB,MAAO1qB,EAAElH,UAAUwtC,KAAK,WAAW,MAAOntC,MAAKsxB,MAAOzqB,EAAElH,UAAU0tC,KAAK,SAASpkB,GAAI,MAAOjpB,MAAKgyB,KAAK/I,IAAKpiB,EAAEsqC,MAAOtqC,EAAElH,UAAUukC,KAAK,WAAW,MAAOlkC,MAAK0yB,MAAO7rB,EAAElH,UAAUykC,KAAK,WAAW,MAAOpkC,MAAK6yB,MAAOhsB,EAAElH,UAAU2xC,YAAY,SAASroB,GAAI,MAAOjpB,MAAKiyB,KAAKhJ,IAAMpiB,EAAElH,UAAU4S,cAAc,SAAS0W,GAAI,MAAOjpB,MAAK2xB,KAAK1I,IAAMpiB,EAAElH,UAAU0yC,YAAY,SAASppB,GAAI,MAAOjpB,MAAK8xB,KAAK7I,IAAMpiB,EAAElH,UAAU2yC,YAAY,SAASrpB,GAAI,MAAOjpB,MAAK6xB,KAAK5I,IAAMpiB,EAAElH,UAAU6S,gBAAgB,SAASkV,EAAGuB,GAAWjpB,KAAKsyB,KAAK5K,GAAOlV,gBAAgByW,IAAMpiB,EAAElH,UAAUgT,gBAAgB,SAASmW,GAAyB,MAAd9oB,MAAKsyB,KAAKxJ,GAAcnW,mBAAoB9L,EAAElH,UAAUsT,kBAAkB,SAAS6V,GAAI,IAAI,GAAIG,GAAGjpB,KAAKirB,KAAKlhB,OAAO,EAAEkf,GAAI,IAAIA,EAAI,GAAkB,MAAfjpB,KAAKirB,KAAKhC,IAAWjpB,KAAKirB,KAAKhC,GAAIspB,QAAQzpB,EAAI,MAAOG,EAAK,QAAQ,GAAIpiB,EAAElH,UAAU6yC,KAAK,SAASvpB,GAAI,MAAOjpB,MAAKoyB,KAAKnJ,IAAMpiB,EAAElH,UAAUu+B,KAAK,SAASjV,GAAI,MAAOjpB,MAAKqyB,KAAKpJ,IAAMpiB,EAAElH,UAAU8yC,KAAK,SAASxpB,GAAI,MAAOjpB,MAAKsyB,KAAKrJ,IAAMpiB,EAAElH,UAAU+yC,KAAK,SAAS1V,EAAG5T,GAAsC,IAAI,GAAlC1B,GAAG1nB,KAAKuyB,KAAKxoB,OAAWiyB,EAAGgB,EAAWV,EAAG,EAAEA,EAAG5U,IAAK4U,EAAG,CAAC,GAAIxT,GAAG9oB,KAAKuyB,KAAK+J,EAAI,IAAGxT,GAAIjiB,EAAEmqC,KAAgB,OAAE,CAAC,GAAI9U,GAAGl8B,KAAKqyB,KAAKvJ,EAAOoT,GAAG+D,SAAQ/D,EAAGyW,OAAO9I,KAAK7pC,KAAKk8B,EAAGF,GAAIA,GAAI5S,EAAI,IAAIH,GAAGjpB,KAAKyyB,KAAK3J,EAAI,IAAGG,GAAIH,GAAIG,GAAIpiB,EAAEoqC,KAAM,KAAOnoB,GAAGG,KAAmBpiB,EAAElH,UAAUm9B,aAAa,SAAS7T,GAAIjpB,KAAK6nB,SAASoB,GAAKpiB,EAAElH,UAAUo9B,aAAa,WAAW,MAAO/8B,MAAK6nB,UAA0BsL,EAAGyf,KAAK,SAAS3pB,GAAI,MAAOkK,GAAGyf,KAAK,GAAIC,KAAI5pB,KAAOkK,EAAGyf,KAAK,SAASlrB,GAAI,IAAIA,EAAGorB,SAAU,KAAM,IAAIC,MAAKrrB,EAAGsrB,OAAwG,KAA/F,GAAmF5pB,GAA/EH,EAAGvB,EAAG3d,SAAa+e,EAAG,GAAI2R,WAAUxR,GAAQiT,EAAG,GAAI+W,MAAK,GAAIC,MAAKxrB,GAAI,MAAiB4U,EAAG,GAASlT,EAAG8S,EAAGiX,KAAKrqB,EAAGwT,EAAGrT,EAAGqT,IAAK,GAAGA,GAAIlT,CAAI,OAAON,IAAKqK,EAAGigB,IAAI,SAAS1rB,GAAI,GAAIoB,GAAG,KAASwT,EAAG,IAAK,KAAIxT,EAAIpB,YAAc7lB,OAAO6lB,EAAG,GAAIurB,MAAKvrB,EAAG,MAAM4U,EAAG,GAAI+W,KAAmD,KAA5C,GAAgBjqB,GAAOH,EAAG,GAAIwR,WAAvB,MAA4CrR,EAAGN,EAAGqqB,KAAKlqB,IAAK,GAAGqT,EAAGgX,MAAMrqB,EAAG,EAAEG,EAAK,OAAOkT,GAAGiX,OAAnK,QAA0L,MAAJ7rB,GAAUA,EAAG8rB,QAAgB,MAAJlX,IAAUA,EAAGmX,QAAQnX,EAAGkX,WAAyVpgB,EAAGzzB,UAAU+zC,KAAK,WAAyD,MAAvC1kB,GAAElrB,kBAAyBwI,KAAKqnC,QAAqB,EAAE3zC,KAAK2zB,KAAK,IAAMP,EAAGzzB,UAAUi0C,KAAK,SAAS3qB,GAAIjpB,KAAK2zB,KAAK1K,GAAKmK,EAAGzzB,UAAUk0C,KAAK,SAAS/qB,EAAGG,EAAGvB,GAAI1nB,KAAK4zB,KAAK9K,EAAG9oB,KAAK6zB,KAAK5K,EAAGjpB,KAAK8zB,KAAKpM,GAAK0L,EAAGzzB,UAAUm0C,KAAK,SAAShrB,GAAI,GAA+BG,GAA3BG,EAAG4F,EAAElrB,kBAA6B4jB,EAAG,CAAE,QAAO1nB,KAAKuzB,MAAM,IAAKzmB,eAAc4a,GAAI0B,EAAGppB,KAAKszB,MAAMtzB,KAAK4zB,KAAQlM,GAAI,IAAGA,EAAG,EAAE1nB,KAAKuzB,KAAKQ,GAAGhnB,aAAa/M,KAAKszB,KAAKlK,GAAIH,EAAG,EAAEvB,CAAG,MAAM,KAAK3a,cAAa2a,GAAI0B,EAAGppB,KAAKszB,MAAMtzB,KAAK6zB,KAAQnM,GAAI,IAAG1nB,KAAKuzB,KAAKQ,GAAG/mB,cAAchN,KAAKszB,KAAKlK,GAAIH,EAAG,CAAE,MAAM,KAAKjc,eAAc0a,GAAI0B,EAAGppB,KAAKszB,MAAMtzB,KAAK8zB,KAAQpM,GAAI,IAAGA,EAAG,EAAE1nB,KAAKuzB,KAAKQ,GAAG9mB,eAAejN,KAAKqzB,KAAKrzB,KAAK0zC,QAAQzqB,EAAGvB,CAAG,MAAM,KAAKza,gBAAkBjN,KAAKqzB,KAAKjK,IAAIppB,KAAKuzB,KAAKQ,GAAGjnB,cAAc9M,KAAKszB,KAAKlK,GAAIH,EAAG,CAAE,MAAM,KAAK1mB,aAAY,QAAQvC,KAAKuzB,KAAKQ,GAAG9mB,eAAejN,KAAKqzB,KAAKrzB,KAAK0zC,OAAOzqB,EAAG,EAAajpB,KAAKwzB,OAAMvK,GAAIA,GAAIH,EAAG1c,cAAcpM,KAAKyzB,KAAKxK,GAAIH,EAAG1c,cAAcpM,KAAK0zB,KAAKzK,GAAM,IAAI8K,IAAG,YAAaA,IAAGxxB,YAAY,cAAcwxB,GAAG9mB,eAAe,iBAAiB8mB,GAAGjnB,cAAc,gBAAgBinB,GAAGhnB,aAAa,eAAegnB,GAAG/mB,cAAc,gBAAmPpG,EAAEjH,UAAU,GAAIwU,GAAKvN,EAAEstB,KAAK,GAAGttB,EAAE+yB,MAAK,EAAM/yB,EAAEwtB,KAAK,KAAKxtB,EAAE0tB,KAAK,KAAK1tB,EAAE2tB,KAAK,KAAK3tB,EAAEytB,KAAK,SAASpL,GAAgC,MAArB,IAAIjmB,cAAaimB,IAAgBriB,EAAE4tB,KAAK,SAASvL,GAA8B,MAAnB,IAAI0J,YAAW1J,IAAgBriB,EAAEmtC,KAAK,SAASjrB,EAAGG,GAA2H,MAAhH,OAAJH,GAAUA,EAAGkrB,OAAO/qB,EAAGlf,QAAQ+e,EAAGliB,EAAEytB,KAAe,EAAVpL,EAAGlf,QAAU+e,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,KAASprB,EAAG/N,QAAQ+N,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,IAAWprB,GAAKliB,EAAEutC,KAAK,SAASrrB,EAAGG,GAA2H,MAAhH,OAAJH,GAAUA,EAAGkrB,OAAO/qB,EAAGlf,QAAQ+e,EAAGliB,EAAE4tB,KAAe,EAAVvL,EAAGlf,QAAU+e,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,KAASprB,EAAG/N,QAAQ+N,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,IAAWprB,GAAKliB,EAAEwtC,KAAK,WAAW,MAAOxtC,GAAE+yB,MAAO/yB,EAAEytC,KAAK,SAASprB,GAAIriB,EAAE+yB,KAAK1Q,GAAKriB,EAAEjH,UAAUua,MAAM,SAAS+O,GAAIjpB,KAAK+Z,GAAGkP,GAAKriB,EAAEjH,UAAU20C,aAAa,SAASrrB,GAAIjpB,KAAK2b,UAAUsN,GAAKriB,EAAEjH,UAAUwqC,KAAK,aAAavjC,EAAEjH,UAAUyqC,KAAK,SAASpN,EAAG/T,EAAG2T,EAAG9T,EAAG+S,EAAGK,EAAG9S,EAAG1B,GAAI,KAAGwU,EAAG,KAAN,CAAoB,GAAII,GAAGt8B,KAAKm0B,KAAK6I,GAAQhB,EAAGE,EAAG,GAAI9T,GAAEmsB,SAAS,CAAEv0C,MAAK+Z,GAAGy6B,aAAalY,EAAGM,EAAG9T,EAAG+S,EAAGK,EAAGF,EAAGh8B,KAAK2b,UAAU+L,KAAM9gB,EAAEjH,UAAU09B,KAAK,WAAW,KAAM,IAAIoX,OAAM,SAAU7tC,EAAEjH,UAAU49B,KAAK,SAAStU,GAAI,KAAM,IAAIwrB,OAAM,SAAU7tC,EAAEjH,UAAU69B,KAAK,WAAW,IAAI,GAAIvU,GAAG,EAAEA,EAAGjpB,KAAKg0B,KAAKjqB,OAAOkf,IAAK,CAA6B,GAArBjpB,KAAKg0B,KAAK/K,KAAcjpB,KAAK+Z,GAAG26B,KAAK,EAAE10C,KAAKg0B,KAAK/K,GAAIjpB,KAAKg0B,KAAK/K,GAAI,KAAMriB,EAAEjH,UAAUylB,WAAW,SAAS0D,EAAGG,GAAOjpB,KAAKg0B,KAAKjqB,OAAO+e,EAAG,GAAG9oB,KAAK20C,KAAK7rB,GAAK9oB,KAAKg0B,KAAKlL,GAAIG,GAAKriB,EAAEjH,UAAUylB,WAAW,SAAS6D,EAAGH,GAAO9oB,KAAKg0B,KAAKjqB,OAAOkf,EAAG,GAAGjpB,KAAK20C,KAAK1rB,GAAKjpB,KAAKm0B,KAAKlL,GAAIH,GAAKliB,EAAEjH,UAAUg1C,KAAK,SAAS1rB,GAAI,GAAIG,GAAG9c,KAAK7G,IAAqB,EAAjBzF,KAAKg0B,KAAKjqB,OAASkf,EAAG,EAAE,IAAQH,EAAG,GAAImL,YAAW7K,EAAI4F,GAAEmX,KAAKnmC,KAAKg0B,KAAK,EAAElL,EAAG,EAAE9oB,KAAKg0B,KAAKjqB,QAAQ/J,KAAKg0B,KAAKlL,CAAG,IAAIpB,GAAG,GAAI7lB,MAAQmtB,GAAEmX,KAAKnmC,KAAKm0B,KAAK,EAAEzM,EAAG,EAAE1nB,KAAKm0B,KAAKpqB,QAAQ/J,KAAKm0B,KAAKzM,GAAmG+M,EAAG90B,UAAU,GAAIf,GAAI61B,EAAGmgB,KAAK,GAAI5xC,cAAa,GAAGyxB,EAAGogB,KAAK,GAAI7xC,cAAa,GAAGyxB,EAAGqgB,KAAK,GAAI9xC,cAAa,GAAGyxB,EAAGsgB,KAAK,GAAI/xC,cAAa,GAAGyxB,EAAGugB,KAAK,GAAIhyC,cAAa,GAAGyxB,EAAGwgB,KAAK,GAAIjyC,cAAa,GAAGyxB,EAAGygB,KAAK,GAAIrzC,OAAQ4yB,EAAG90B,UAAUw9B,KAAK,WAAWn9B,KAAKytB,KAAK,GAAIzE,GAAIhpB,KAAKytB,KAAK0P,OAAOn9B,KAAK00B,KAAK,GAAI7yB,QAAU4yB,EAAG90B,UAAUy+B,QAAQ,WAAW,MAAOx/B,GAAEosC,MAAOvW,EAAG90B,UAAUsiC,KAAK,SAAShZ,GAAIrqB,EAAEe,UAAUsiC,KAAKvjC,KAAKsB,KAAKipB,GAAIjpB,KAAKytB,KAAKxE,EAAGsT,OAAOv8B,KAAK00B,KAAKzL,EAAGsT,OAAO39B,EAAEe,UAAUurC,eAAexsC,KAAKsB,KAAKipB,IAAMwL,EAAG90B,UAAU2Z,KAAK,SAAS2P,GAAI,GAAIH,GAAG,GAAI6L,GAAG30B,KAAuD,OAAjD8oB,GAAGgM,KAAK,GAAIhI,GAAO9sB,KAAK0pC,SAAQ5gB,EAAGiM,KAAK,GAAIjI,IAAYhE,GAAK2L,EAAG90B,UAAUupC,KAAK,SAASnE,EAAG0C,GAAUznC,MAAMynC,EAAGkL,QAAU7qC,QAAQP,IAAI,oBAAsB,IAAIs9B,GAAG4C,CAAG,IAAIznC,KAAKytB,KAAKyf,KAAKnI,GAAnB,CAAgC,GAAIkB,GAAGxR,EAAGygB,IAAKjP,GAAG,IAAG,CAAM,IAAI3F,GAAGtgC,KAAKytB,KAAKwW,KAAKc,EAAGkB,EAAIwB,GAAG0N,KAAKlP,EAAG,IAAIjmC,KAAKmrC,mBAAmBpG,EAAG/kC,KAAKytB,KAAKga,EAAGxB,EAAI,IAAI9F,GAAG4E,EAAGb,OAAWC,EAAGY,EAAGX,MAAgC,IAAzBpkC,KAAKytB,KAAK4W,KAAKlE,EAAGgE,EAAG7D,GAAOA,GAAI,EAAE,CAAC,GAAIsE,GAAG5kC,KAAK00B,KAAKyL,EAAG,GAAI0E,GAAG/P,KAAKxb,KAAKsrB,OAAU,IAAO,GAAJtE,EAAM,CAAC,GAAIsE,GAAG5kC,KAAK00B,KAAKyL,EAAG,IAAQ+E,EAAGllC,KAAK00B,KAAKyL,EAAG,IAAQqE,EAAGL,EAAG,EAAGU,GAAG/P,KAAK/H,KAAK6X,EAAG7X,MAAMmY,EAAGnY,KAAK6X,EAAG7X,MAAMyX,EAAGK,EAAG/P,KAAK9H,KAAK4X,EAAG5X,MAAMkY,EAAGlY,KAAK4X,EAAG5X,MAAMwX,EAAGK,EAAG/P,KAAK7H,KAAK2X,EAAG3X,MAAMiY,EAAGjY,KAAK2X,EAAG3X,MAAMuX,EAAGK,EAAG/P,KAAK5H,KAAK0X,EAAG1X,MAAMgY,EAAGhY,KAAK0X,EAAG1X,MAAMsX,EAAGK,EAAG/P,KAAK3H,KAAKyX,EAAGzX,MAAM+X,EAAG/X,KAAKyX,EAAGzX,MAAMqX,MAAS,IAAO,GAAJlE,EAAM,CAAC,GAAIsE,GAAG5kC,KAAK00B,KAAKyL,EAAG,IAAQ+E,EAAGllC,KAAK00B,KAAKyL,EAAG,IAAQvtB,EAAG5S,KAAK00B,KAAKyL,EAAG,IAAQvC,EAAG59B,KAAK00B,KAAKyL,EAAG,IAAQqE,EAAGL,EAAG,GAAOM,EAAGN,EAAG,GAAO2B,EAAGlB,EAAG7X,MAAMmY,EAAGnY,KAAK6X,EAAG7X,MAAMyX,EAAO+C,EAAG30B,EAAGma,MAAM6Q,EAAG7Q,KAAKna,EAAGma,MAAMyX,CAAGK,GAAG/P,KAAK/H,KAAK+Y,GAAIyB,EAAGzB,GAAIrB,EAAGqB,EAAGlB,EAAG5X,MAAMkY,EAAGlY,KAAK4X,EAAG5X,MAAMwX,EAAG+C,EAAG30B,EAAGoa,MAAM4Q,EAAG5Q,KAAKpa,EAAGoa,MAAMwX,EAAGK,EAAG/P,KAAK9H,KAAK8Y,GAAIyB,EAAGzB,GAAIrB,EAAGqB,EAAGlB,EAAG3X,MAAMiY,EAAGjY,KAAK2X,EAAG3X,MAAMuX,EAAG+C,EAAG30B,EAAGqa,MAAM2Q,EAAG3Q,KAAKra,EAAGqa,MAAMuX,EAAGK,EAAG/P,KAAK7H,KAAK6Y,GAAIyB,EAAGzB,GAAIrB,EAAGqB,EAAGlB,EAAG1X,MAAMgY,EAAGhY,KAAK0X,EAAG1X,MAAMsX,EAAG+C,EAAG30B,EAAGsa,MAAM0Q,EAAG1Q,KAAKta,EAAGsa,MAAMsX,EAAGK,EAAG/P,KAAK5H,KAAK4Y,GAAIyB,EAAGzB,GAAIrB,EAAGqB,EAAGlB,EAAGzX,MAAM+X,EAAG/X,KAAKyX,EAAGzX,MAAMqX,EAAG+C,EAAG30B,EAAGua,MAAMyQ,EAAGzQ,KAAKva,EAAGua,MAAMqX,EAAGK,EAAG/P,KAAK3H,KAAK2Y,GAAIyB,EAAGzB,GAAIrB,MAAS,IAAO,GAAJnE,EAAM,CAAC,GAAI1D,GAAG58B,KAAK00B,KAAKyL,EAAG,IAAQnD,EAAGh9B,KAAK00B,KAAKyL,EAAG,IAAQ6E,EAAGhlC,KAAK00B,KAAKyL,EAAG,IAAQqF,EAAGxlC,KAAK00B,KAAKyL,EAAG,IAAQ/W,EAAGppB,KAAK00B,KAAKyL,EAAG,IAAQzY,EAAG1nB,KAAK00B,KAAKyL,EAAG,IAAQmE,EAAGtkC,KAAK00B,KAAKyL,EAAG,IAAQoE,EAAGvkC,KAAK00B,KAAKyL,EAAG,IAAQqE,EAAGL,EAAG,GAAOM,EAAGN,EAAG,GAAOpE,EAAGoE,EAAG,GAAO2B,EAAGlJ,EAAG7P,MAAMiQ,EAAGjQ,KAAK6P,EAAG7P,MAAMyX,EAAO+C,EAAGvC,EAAGjY,MAAMyY,EAAGzY,KAAKiY,EAAGjY,MAAMyX,EAAOsD,EAAG1e,EAAG2D,MAAMrF,EAAGqF,KAAK3D,EAAG2D,MAAMyX,EAAOgD,EAAGlD,EAAGvX,MAAMwX,EAAGxX,KAAKuX,EAAGvX,MAAMyX,CAAGK,GAAG/P,KAAK/H,MAAM,EAAEgT,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,GAAIqB,EAAGlJ,EAAG5P,MAAMgQ,EAAGhQ,KAAK4P,EAAG5P,MAAMwX,EAAG+C,EAAGvC,EAAGhY,MAAMwY,EAAGxY,KAAKgY,EAAGhY,MAAMwX,EAAGsD,EAAG1e,EAAG4D,MAAMtF,EAAGsF,KAAK5D,EAAG4D,MAAMwX,EAAGgD,EAAGlD,EAAGtX,MAAMuX,EAAGvX,KAAKsX,EAAGtX,MAAMwX,EAAGK,EAAG/P,KAAK9H,MAAM,EAAE+S,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,GAAIqB,EAAGlJ,EAAG3P,MAAM+P,EAAG/P,KAAK2P,EAAG3P,MAAMuX,EAAG+C,EAAGvC,EAAG/X,MAAMuY,EAAGvY,KAAK+X,EAAG/X,MAAMuX,EAAGsD,EAAG1e,EAAG6D,MAAMvF,EAAGuF,KAAK7D,EAAG6D,MAAMuX,EAAGgD,EAAGlD,EAAGrX,MAAMsX,EAAGtX,KAAKqX,EAAGrX,MAAMuX,EAAGK,EAAG/P,KAAK7H,MAAM,EAAE8S,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,GAAIqB,EAAGlJ,EAAG1P,MAAM8P,EAAG9P,KAAK0P,EAAG1P,MAAMsX,EAAG+C,EAAGvC,EAAG9X,MAAMsY,EAAGtY,KAAK8X,EAAG9X,MAAMsX,EAAGsD,EAAG1e,EAAG8D,MAAMxF,EAAGwF,KAAK9D,EAAG8D,MAAMsX,EAAGgD,EAAGlD,EAAGpX,MAAMqX,EAAGrX,KAAKoX,EAAGpX,MAAMsX,EAAGK,EAAG/P,KAAK5H,MAAM,EAAE6S,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,GAAIqB,EAAGlJ,EAAGzP,MAAM6P,EAAG7P,KAAKyP,EAAGzP,MAAMqX,EAAG+C,EAAGvC,EAAG7X,MAAMqY,EAAGrY,KAAK6X,EAAG7X,MAAMqX,EAAGsD,EAAG1e,EAAG+D,MAAMzF,EAAGyF,KAAK/D,EAAG+D,MAAMqX,EAAGgD,EAAGlD,EAAGnX,MAAMoX,EAAGpX,KAAKmX,EAAGnX,MAAMqX,EAAGK,EAAG/P,KAAK3H,MAAM,EAAE4S,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,OAAU,IAAO,GAAJnE,EAAM,CAAC,GAAI5D,GAAG18B,KAAK00B,KAAKyL,EAAG,IAAQlE,EAAGj8B,KAAK00B,KAAKyL,EAAG,IAAQwH,EAAG3nC,KAAK00B,KAAKyL,EAAG,IAAQmH,EAAGtnC,KAAK00B,KAAKyL,EAAG,IAAQnE,EAAGh8B,KAAK00B,KAAKyL,EAAG,IAAQjE,EAAGl8B,KAAK00B,KAAKyL,EAAG,IAAQ6D,EAAGhkC,KAAK00B,KAAKyL,EAAG,IAAQ4D,EAAG/jC,KAAK00B,KAAKyL,EAAG,IAAQoF,EAAGvlC,KAAK00B,KAAKyL,EAAG,IAAQ2E,EAAG9kC,KAAK00B,KAAKyL,EAAG,IAAQtC,EAAG79B,KAAK00B,KAAKyL,EAAG,KAASrC,EAAG99B,KAAK00B,KAAKyL,EAAG,KAASmF,EAAGtlC,KAAK00B,KAAKyL,EAAG,KAASH,EAAGhgC,KAAK00B,KAAKyL,EAAG,KAASxC,EAAG39B,KAAK00B,KAAKyL,EAAG,KAAStE,EAAG77B,KAAK00B,KAAKyL,EAAG,KAASqE,EAAGL,EAAG,GAAOM,EAAGN,EAAG,GAAOpE,EAAGoE,EAAG,GAAOjE,EAAGiE,EAAG,GAAO2B,EAAGpJ,EAAG3P,MAAMkP,EAAGlP,KAAK2P,EAAG3P,MAAMyX,EAAO+C,EAAGI,EAAG5a,MAAMua,EAAGva,KAAK4a,EAAG5a,MAAMyX,EAAOsD,EAAG9L,EAAGjP,MAAMmP,EAAGnP,KAAKiP,EAAGjP,MAAMyX,EAAOgD,EAAGxD,EAAGjX,MAAMgX,EAAGhX,KAAKiX,EAAGjX,MAAMyX,EAAOoD,EAAGrC,EAAGxY,MAAM+X,EAAG/X,KAAKwY,EAAGxY,MAAMyX,EAAOS,EAAGpH,EAAG9Q,MAAM+Q,EAAG/Q,KAAK8Q,EAAG9Q,MAAMyX,EAAOE,EAAGY,EAAGvY,MAAMiT,EAAGjT,KAAKuY,EAAGvY,MAAMyX,EAAOG,EAAGhH,EAAG5Q,MAAM8O,EAAG9O,KAAK4Q,EAAG5Q,MAAMyX,CAAGK,GAAG/P,KAAK/H,MAAM,EAAEmT,KAAM,EAAEH,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,IAAKvE,IAAK,EAAEH,IAAK6H,GAAI3C,EAAG2C,GAAInD,GAAI1E,GAAI2E,GAAIC,EAAGD,GAAID,IAAKqB,EAAGpJ,EAAG1P,MAAMiP,EAAGjP,KAAK0P,EAAG1P,MAAMwX,EAAG+C,EAAGI,EAAG3a,MAAMsa,EAAGta,KAAK2a,EAAG3a,MAAMwX,EAAGsD,EAAG9L,EAAGhP,MAAMkP,EAAGlP,KAAKgP,EAAGhP,MAAMwX,EAAGgD,EAAGxD,EAAGhX,MAAM+W,EAAG/W,KAAKgX,EAAGhX,MAAMwX,EAAGoD,EAAGrC,EAAGvY,MAAM8X,EAAG9X,KAAKuY,EAAGvY,MAAMwX,EAAGS,EAAGpH,EAAG7Q,MAAM8Q,EAAG9Q,KAAK6Q,EAAG7Q,MAAMwX,EAAGE,EAAGY,EAAGtY,MAAMgT,EAAGhT,KAAKsY,EAAGtY,MAAMwX,EAAGG,EAAGhH,EAAG3Q,MAAM6O,EAAG7O,KAAK2Q,EAAG3Q,MAAMwX,EAAGK,EAAG/P,KAAK9H,MAAM,EAAEkT,KAAM,EAAEH,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,IAAKvE,IAAK,EAAEH,IAAK6H,GAAI3C,EAAG2C,GAAInD,GAAI1E,GAAI2E,GAAIC,EAAGD,GAAID,IAAKqB,EAAGpJ,EAAGzP,MAAMgP,EAAGhP,KAAKyP,EAAGzP,MAAMuX,EAAG+C,EAAGI,EAAG1a,MAAMqa,EAAGra,KAAK0a,EAAG1a,MAAMuX,EAAGsD,EAAG9L,EAAG/O,MAAMiP,EAAGjP,KAAK+O,EAAG/O,MAAMuX,EAAGgD,EAAGxD,EAAG/W,MAAM8W,EAAG9W,KAAK+W,EAAG/W,MAAMuX,EAAGoD,EAAGrC,EAAGtY,MAAM6X,EAAG7X,KAAKsY,EAAGtY,MAAMuX,EAAGS,EAAGpH,EAAG5Q,MAAM6Q,EAAG7Q,KAAK4Q,EAAG5Q,MAAMuX,EAAGE,EAAGY,EAAGrY,MAAM+S,EAAG/S,KAAKqY,EAAGrY,MAAMuX,EAAGG,EAAGhH,EAAG1Q,MAAM4O,EAAG5O,KAAK0Q,EAAG1Q,MAAMuX,EAAGK,EAAG/P,KAAK7H,MAAM,EAAEiT,KAAM,EAAEH,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,IAAKvE,IAAK,EAAEH,IAAK6H,GAAI3C,EAAG2C,GAAInD,GAAI1E,GAAI2E,GAAIC,EAAGD,GAAID,IAAKqB,EAAGpJ,EAAGxP,MAAM+O,EAAG/O,KAAKwP,EAAGxP,MAAMsX,EAAG+C,EAAGI,EAAGza,MAAMoa,EAAGpa,KAAKya,EAAGza,MAAMsX,EAAGsD,EAAG9L,EAAG9O,MAAMgP,EAAGhP,KAAK8O,EAAG9O,MAAMsX,EAAGgD,EAAGxD,EAAG9W,MAAM6W,EAAG7W,KAAK8W,EAAG9W,MAAMsX,EAAGoD,EAAGrC,EAAGrY,MAAM4X,EAAG5X,KAAKqY,EAAGrY,MAAMsX,EAAGS,EAAGpH,EAAG3Q,MAAM4Q,EAAG5Q,KAAK2Q,EAAG3Q,MAAMsX,EAAGE,EAAGY,EAAGpY,MAAM8S,EAAG9S,KAAKoY,EAAGpY,MAAMsX,EAAGG,EAAGhH,EAAGzQ,MAAM2O,EAAG3O,KAAKyQ,EAAGzQ,MAAMsX,EAAGK,EAAG/P,KAAK5H,MAAM,EAAEgT,KAAM,EAAEH,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,IAAKvE,IAAK,EAAEH,IAAK6H,GAAI3C,EAAG2C,GAAInD,GAAI1E,GAAI2E,GAAIC,EAAGD,GAAID,IAAKqB,EAAGpJ,EAAGvP,MAAM8O,EAAG9O,KAAKuP,EAAGvP,MAAMqX,EAAG+C,EAAGI,EAAGxa,MAAMma,EAAGna,KAAKwa,EAAGxa,MAAMqX,EAAGsD,EAAG9L,EAAG7O,MAAM+O,EAAG/O,KAAK6O,EAAG7O,MAAMqX,EAAGgD,EAAGxD,EAAG7W,MAAM4W,EAAG5W,KAAK6W,EAAG7W,MAAMqX,EAAGoD,EAAGrC,EAAGpY,MAAM2X,EAAG3X,KAAKoY,EAAGpY,MAAMqX,EAAGS,EAAGpH,EAAG1Q,MAAM2Q,EAAG3Q,KAAK0Q,EAAG1Q,MAAMqX,EAAGE,EAAGY,EAAGnY,MAAM6S,EAAG7S,KAAKmY,EAAGnY,MAAMqX,EAAGG,EAAGhH,EAAGxQ,MAAM0O,EAAG1O,KAAKwQ,EAAGxQ,MAAMqX,EAAGK,EAAG/P,KAAK3H,MAAM,EAAE+S,KAAM,EAAEH,IAAK+F,GAAIyB,EAAGzB,GAAIrB,GAAI1E,GAAI+H,GAAIN,EAAGM,GAAIrD,IAAKvE,IAAK,EAAEH,IAAK6H,GAAI3C,EAAG2C,GAAInD,GAAI1E,GAAI2E,GAAIC,EAAGD,GAAID,QAAU,CAAqD,IAAI,GAApD1G,GAAkB,EAAfzxB,KAAK8oC,IAAI,EAAE9U,GAAUtC,EAAG,GAAIh7B,cAAa+6B,GAAYoH,EAAG,EAAEA,EAAGpH,EAAGoH,IAAK,CAAoB,IAAI,GAAnBrc,GAAGqc,EAAOlc,EAAG,EAAUqT,EAAG,EAAEA,EAAGgE,EAAGhE,IAAMrT,GAAKH,EAAG,GAAG,EAAI,EAAEqb,EAAG7H,GAAK6H,EAAG7H,GAAIxT,GAAI,CAAGkV,GAAGmH,GAAIlc,EAAuB,IAAI,GAAnB4e,IAAG,GAAIhmC,OAAgBi6B,GAAG,EAAEA,GAAGiC,EAAGjC,KAAM+L,GAAG/L,IAAI97B,KAAK00B,KAAKyL,EAAGrE,IAAmC,KAAI,GAA7BsJ,IAAG,EAAEC,GAAG,EAAEI,GAAG,EAAE3B,GAAG,EAAElE,GAAG,EAAU9D,GAAG,EAAEA,GAAGiC,EAAGjC,KAAMsJ,IAAIpH,EAAGlC,IAAI+L,GAAG/L,IAAI/O,KAAKsY,IAAIrH,EAAGlC,IAAI+L,GAAG/L,IAAI9O,KAAKyY,IAAIzH,EAAGlC,IAAI+L,GAAG/L,IAAI7O,KAAK6W,IAAI9F,EAAGlC,IAAI+L,GAAG/L,IAAI5O,KAAK0S,IAAI5B,EAAGlC,IAAI+L,GAAG/L,IAAI3O,IAAM0X,GAAG/P,KAAK/H,KAAKqY,GAAGP,EAAG/P,KAAK9H,KAAKqY,GAAGR,EAAG/P,KAAK7H,KAAKwY,GAAGZ,EAAG/P,KAAK5H,KAAK4W,GAAGe,EAAG/P,KAAK3H,KAAKyS,GAAQ,GAAIgF,GAAG5kC,KAAK00B,KAAKyL,EAAG,GAAI0E,GAAG/P,KAAK1H,SAASwX,EAAGxX,SAASyX,EAAG/P,KAAKzH,SAASuX,EAAGvX,WAAWoH,EAAG90B,UAAUypC,KAAK,SAASlN,EAAGjT,GAAUjpB,MAAMipB,EAAG0pB,QAAU7qC,QAAQP,IAAI,oBAAsB,IAAIo2B,GAAG1U,CAAiB,IAAd0U,EAAG0X,MAAK,GAAUr1C,KAAK0pC,OAAyG,CAAC,GAAIhN,GAAG18B,KAAKwpC,qBAA2E,IAAlD7L,EAAG/I,MAAMh2B,EAAEi2B,OAAM8I,EAAG/I,KAAKsH,EAAGsV,iBAAiB9U,IAAQiB,EAAG/I,KAAK,EAAMxM,GAAEumB,MAAMlkB,EAAE6S,KAAK,qBAAqBZ,GAAKiB,EAAG0X,MAAK,OAAY,CAAC,GAAIvsB,GAAGoT,EAAGoV,YAAY3T,EAAG/I,KAAM,IAAO,MAAJ9L,EAAS,CAAC,GAAIwT,GAAGJ,EAAGsW,KAAK7U,EAAG/I,MAAUqH,EAAGxH,EAAGmgB,IAAK3Y,GAAG,GAAG0B,EAAG7I,KAAK/H,KAAKkP,EAAG,GAAG0B,EAAG7I,KAAK9H,IAAK,IAAItF,GAAG+M,EAAGogB,IAAKntB,GAAG,GAAG,EAAEA,EAAG,IAAI,EAAW4U,GAAGqW,OAAOvU,WAAiBx/B,EAAEosC,KAAMtjB,EAAG,IAAI,GAASA,EAAG,IAAI,EAAK,IAAImU,GAAGpH,EAAGqgB,IAAK90C,MAAKs1C,KAAKpZ,EAAGpT,EAAGwT,EAAGL,EAAGvU,EAAGmU,EAAI,IAAIe,GAAGvB,GAAGka,KAAK7tB,EAAGmU,EAAI/S,GAAGuiB,KAAKnP,EAAGI,EAAGL,EAAGA,EAAG,EAAE,EAAE,GAAG0B,EAAG5I,KAAKhI,KAAKkP,EAAG,GAAG0B,EAAG5I,KAAK/H,KAAKiP,EAAG,GAAG0B,EAAG5I,KAAK9H,KAAK0Q,EAAG7I,KAAK7H,KAAK0Q,EAAG5I,KAAK7H,KAAKyQ,EAAG7I,KAAK5H,KAAKyQ,EAAG5I,KAAK5H,KAAKwQ,EAAG7I,KAAK3H,KAAKyP,EAAGvB,GAAGma,IAAK,IAAIpsB,GAAGkT,EAAGmZ,eAAgB9X,GAAG+X,2BAA2BtsB,EAAGuU,EAAG5I,KAAK9H,KAAM,IAAI+O,GAAGM,EAAGqZ,iBAAkBhY,GAAGiY,gBAAgB5Z,EAAG2B,EAAGkY,0BAA0BlY,EAAG5I,KAAK3H,SAASuQ,EAAG7I,KAAK1H,SAASuQ,EAAG5I,KAAK1H,SAASsQ,EAAG7I,KAAKzH,SAASsQ,EAAG0X,KAAK/Y,EAAG2D,YAActC,GAAG0X,MAAK,QAAl8B1X,GAAG+X,2BAA2B/X,EAAG7I,KAAK7H,MAAM0Q,EAAGiY,gBAAgBjY,EAAGkY,2BAA44BphB,EAAG90B,UAAU0rC,KAAK,SAAS3jB,EAAGiW,EAAGrB,EAAG4D,EAAGxD,EAAGM,EAAGsD,GAAUtgC,MAAM29B,EAAGgV,QAAU7qC,QAAQP,IAAI,oBAAuU,KAAI,GAAvBy0B,GAAGE,EAA7RjT,EAAG0U,EAAO7B,EAAY,MAAT7S,EAAG8L,KAAW9L,EAAG8L,KAAK9L,EAAG6L,KAAS8I,EAAGtxB,KAAKgW,IAAI+Y,GAAG8H,KAAKrH,EAAG3O,MAAUyP,EAAGtwB,KAAK42B,IAAI7H,GAAG8H,KAAKrH,EAAG3O,MAAUgT,EAAGlX,EAAGwsB,gBAAoB3X,EAAGhC,EAAG1O,UAAU,EAAE,EAAM2Q,EAAGjC,EAAGzO,UAAU,EAAE,EAAM4O,EAAGW,EAAGuD,EAAGrC,EAAOjC,GAAI+B,EAAGuC,EAAGpC,EAAOnrB,EAAGgrB,EAAGuC,EAAGrC,EAAOE,EAAGpB,EAAGuD,EAAGpC,EAAOF,EAAG/B,EAAG/O,KAAS6S,EAAG9D,EAAG9O,KAAmBlE,EAAG4T,EAAG4D,EAAWlX,EAAG4T,EAAG5T,EAAGN,EAAGM,GAAIkX,EAAItE,EAAGM,EAAGlT,GAAI8S,EAAGI,EAAGlT,EAAG,GAAG8W,EAAG9W,GAAI6S,EAAGD,EAAGH,EAAGK,EAAG2B,EAAGqC,EAAG9W,EAAG,GAAGxW,EAAGopB,EAAGgC,EAAG9B,EAAG0D,GAAMnL,EAAG90B,UAAU21C,KAAK,SAAS1Y,EAAGxT,EAAGN,EAAG6U,EAAG9B,EAAG5S,GAAUG,GAAIN,EAAG6pB,QAAU7qC,QAAQP,IAAI,oBAAsB,IAAIy1B,GAAGvI,EAAGsgB,IAAKtgB,GAAGsgB,KAAK,GAAGpX,EAAG,GAAGlJ,EAAGsgB,KAAK,GAAGpX,EAAG,GAAGvU,EAAGiiB,KAAKzO,EAAG9T,EAAGkU,EAAGA,EAAG,EAAE,EAAE,EAAoD,KAAI,GAAjDV,GAAG7H,EAAGugB,KAAS/Y,EAAGxH,EAAGwgB,KAAmBvtB,EAAG,EAAUwU,EAAG,EAAEA,EAAzB,GAA+BA,IAAK,CAAgG,GAA/FD,EAAG,GAAG0B,EAAG,GAAGjW,EAAGmU,EAAG,GAAGI,EAAG,GAAG0B,EAAG,GAAGjW,EAAGmU,EAAG,GAAGzS,EAAGiiB,KAAKzO,EAAG9T,EAAGmT,EAAGK,EAAG,EAAE,EAAE,GAAGA,EAAG,IAAIU,EAAG,GAAGV,EAAG,IAAIU,EAAG,GAAa,GAAPV,EAAG,IAAc,GAAPA,EAAG,GAA+B,MAAxBrT,GAAG,GAAGqT,EAAG,QAAGrT,EAAG,GAAGqT,EAAG,GAA0G,IAA/FL,EAAG,GAAG0B,EAAG,GAAGjW,EAAGmU,EAAG,GAAGI,EAAG,GAAG0B,EAAG,GAAGjW,EAAGmU,EAAG,GAAGzS,EAAGiiB,KAAKzO,EAAG9T,EAAGmT,EAAGK,EAAG,EAAE,EAAE,GAAGA,EAAG,IAAIU,EAAG,GAAGV,EAAG,IAAIU,EAAG,GAAa,GAAPV,EAAG,IAAc,GAAPA,EAAG,GAAyD,MAAlDA,GAAG,IAAIA,EAAG,GAAGA,EAAG,IAAIA,EAAG,GAAGrT,EAAG,GAAGqT,EAAG,QAAGrT,EAAG,GAAGqT,EAAG,GAAW5U,IAAI,GAAQU,GAAEumB,MAAM7mC,QAAQP,IAAI,6BAAqIotB,EAAGh1B,UAAU,GAAI4b,IAA8JtV,EAAEtG,UAAU,GAAI4tB,GAAKtnB,EAAE4uB,MAAM,EAAE5uB,EAAEqiC,KAAK,IAAIriC,EAAEo4B,KAAK,EAAEp4B,EAAEsiC,KAAK,EAAEtiC,EAAE6vC,KAAK,EAAE7vC,EAAEuiC,KAAKviC,EAAEqiC,KAAKriC,EAAEwiC,KAAKxiC,EAAEqiC,KAAKriC,EAAE8vC,KAAK,SAASruB,GAAI,IAAI,GAAIoB,GAAGpB,EAAG3d,OAAO,EAAE+e,GAAI,IAAIA,EAAG,CAAC,GAAIG,GAAGvB,EAAGoB,EAAOG,GAAGhjB,EAAEuiC,KAAMviC,EAAEuiC,KAAKvf,EAAYA,EAAGhjB,EAAEwiC,OAAMxiC,EAAEwiC,KAAKxf,KAAQhjB,EAAEyiC,KAAK,WAAW,MAAOziC,GAAEuiC,MAAOviC,EAAE0iC,KAAK,WAAW,MAAO1iC,GAAEwiC,MAAOxiC,EAAEtG,UAAUsiC,KAAK,SAAShZ,GAAIjpB,KAAKgqB,KAAKf,EAAGsT,OAAOv8B,KAAKwtB,KAAKvE,EAAGsT,OAAOv8B,KAAKytB,KAAKxE,EAAGsT,OAAOv8B,KAAK0tB,KAAKzE,EAAGiZ,OAAOliC,KAAK2tB,KAAK1E,EAAG8f,OAAO/oC,KAAK4tB,KAAK3E,EAAG+f,OAAU/f,EAAGoa,oBAAoBjvB,EAAGioB,MAAMr8B,KAAK6tB,OAAO5E,EAAGsT,OAAOv8B,KAAKqpB,WAAWrpB,KAAK4oC,sBAAsB5oC,KAAK6tB,SAAc7tB,KAAKqpB,WAAW,KAAMpjB,EAAE8vC,KAAK/1C,KAAK2tB,OAAQ1nB,EAAEtG,UAAUk/B,cAAc,WAAW,MAAO7+B,MAAKqpB,YAAapjB,EAAEtG,UAAUupC,KAAK,SAASpgB,EAAGG,GAAqE,GAAjEA,EAAGsS,KAAK,IAAG,EAAMtS,EAAGqS,KAAKhO,EAAGuW,KAAK/a,EAAG9oB,KAAKytB,KAAKxE,EAAGsS,KAAKv7B,KAAK2tB,MAASvF,GAAE+gB,UAAY,IAAGlgB,EAAGsS,KAAK,GAAI,MAAStS,GAAGsO,KAAKjK,EAAGoY,KAAK5c,EAAG9oB,KAAKytB,KAAKxE,EAAGsS,KAAKv7B,KAAK4tB,OAAQ3nB,EAAEtG,UAAUypC,KAAK,SAASngB,KAAMhjB,EAAEtG,UAAUo/B,cAAc,WAAW,MAAO/+B,MAAKgqB,MAAO/jB,EAAEtG,UAAU0pC,KAAK,SAASpgB,GAAIjpB,KAAKgqB,KAAKf,GAAKhjB,EAAEtG,UAAU2pC,WAAW,SAASrgB,EAAGH,GAAI,MAAOA,GAAGyO,MAAOtxB,EAAEtG,UAAU4pC,KAAK,SAAStgB,EAAGH,GAAI,MAAOA,GAAGwS,MAAOr1B,EAAEtG,UAAU6pC,oBAAoB,WAAW,MAAOxpC,MAAKwtB,MAAOvnB,EAAEtG,UAAU8pC,KAAK,SAASxgB,GAAIjpB,KAAKwtB,KAAKvE,GAAKhjB,EAAEtG,UAAU+pC,KAAK,WAAW,MAAkB,OAAX1pC,KAAKwtB,MAAaxtB,KAAKwtB,MAAMjuB,GAAEoqC,QAAW1jC,EAAEtG,UAAUy+B,QAAQ,aAAiGpJ,EAAGxN,KAAK,EAAEwN,EAAGr1B,UAAUq2C,KAAK,WAAW,MAAOh2C,MAAKiyB,MAAO+C,EAAGr1B,UAAUs2C,gBAAgB,WAAW,MAAOj2C,MAAKkyB,MAAO8C,EAAGr1B,UAAUsiC,KAAK,SAAShZ,GAAIjpB,KAAKi1B,KAAKhM,EAAGsT,OAAOv8B,KAAKkyB,KAAKjJ,EAAGsT,OAAOv8B,KAAKiyB,KAAKhJ,EAAGsT,QAASvH,EAAGr1B,UAAUu2C,KAAK,SAASjtB,GAAIA,EAAGmpB,KAAKpyC,KAAKiyB,MAAMhJ,EAAGktB,KAAKn2C,KAAKkyB,MAAMlyB,KAAKiyB,KAAK,KAAKjyB,KAAKkyB,KAAK,MAAyF7rB,EAAE1G,UAAU,GAAIynB,GAAK/gB,EAAE0d,UAAU,SAAS+E,GAAI,GAAIG,GAAG,GAAI5iB,EAAmB,OAAf+gB,GAAGwU,KAAK3S,EAAGH,GAAWG,GAAK5iB,EAAE0d,UAAU,SAAS+E,GAAI,GAAIG,GAAG,GAAI5iB,EAAmB,OAAf+gB,GAAGwU,KAAK3S,EAAGH,GAAWG,GAAK5iB,EAAE+vC,KAAK,WAA0B,MAAR,IAAI/vC,IAAgBA,EAAEgwC,KAAK,SAASna,GAAI,GAAIxU,GAAG,GAAImrB,KAAI,6BAA8B,IAAgB,GAAbnrB,EAAGorB,SAAiB,KAAM,IAAIC,MAAK,wBAAwBrrB,EAAG4uB,OAAwM,KAAI,GAA/LrtB,IAAI,sCAAsC,sCAAsC,sCAAsC,uCAA2CG,EAAG/iB,EAAE0d,UAAU2D,EAAGsrB,QAAgBlqB,EAAG,EAAEA,EAAGG,EAAGlf,OAAO+e,IAAK,CAAC,GAAIwT,GAAG,GAAIuW,KAAI5pB,EAAGH,GAAK,IAAgB,GAAbwT,EAAGwW,SAAiB,KAAM,IAAIC,MAAK,wBAAwBzW,EAAGga,OAASltB,GAAGhE,WAAW0D,EAAGytB,KAAKC,KAAKta,EAAGI,EAAG0W,SAAU,MAAO5pB,IAAK/iB,EAAE1G,UAAUua,MAAM,SAAS+O,GAAIjpB,KAAKk1B,KAAKhb,MAAM+O,IAAM5iB,EAAE1G,UAAU20C,aAAa,SAASrrB,GAAIjpB,KAAKk1B,KAAKof,aAAarrB,IAAM5iB,EAAE1G,UAAU6a,KAAK,WAAWxa,KAAKsnB,KAAK9M,KAAKxa,KAAKk1B,OAAQ7uB,EAAE1G,UAAU69B,KAAK,WAAWx9B,KAAKk1B,KAAKsI,QAASn3B,EAAE1G,UAAUylB,WAAW,SAAS0D,EAAGG,GAAkB,MAAXjpB,KAAKk1B,MAAYzK,EAAE6S,KAAK,2CAA4Ct9B,KAAKk1B,KAAK9P,WAAW0D,EAAGG,IAAM5iB,EAAE1G,UAAUylB,WAAW,SAAS0D,EAAGG,GAAkB,MAAXjpB,KAAKk1B,MAAYzK,EAAE6S,KAAK,2CAA4Ct9B,KAAKk1B,KAAK9P,WAAW0D,EAAGG,IAAM5iB,EAAE1G,UAAU09B,KAAK,WAAW,MAAOr9B,MAAKk1B,KAAKmI,QAASh3B,EAAE1G,UAAU49B,KAAK,SAAStU,GAAIjpB,KAAKk1B,KAAKqI,KAAKtU,IAAM5iB,EAAE1G,UAAUo9B,aAAa,WAAW,MAAO/8B,MAAKk1B,MAA0NC,EAAGx1B,UAAU,GAAIyqB,GAAK+K,EAAG0Z,KAAK,WAAW1Z,EAAG2Z,KAAK,UAAU3Z,EAAGshB,kBAAkB,UAAUthB,EAAGuhB,mBAAmB,WAAWvhB,EAAG1E,KAAK,EAAE0E,EAAG6Z,KAAK,EAAE7Z,EAAG7sB,WAAW,SAASof,GAAI,GAAIoB,GAAGqK,EAAGigB,IAAI1rB,EAA6B,OAAlByN,GAAG7sB,WAAWwgB,IAA+EqM,EAAG7sB,WAAW,SAASo0B,GAAOA,YAAcX,eAAaW,EAAG,GAAI/B,UAAS+B,GAAK,IAAIV,GAAG,GAAI7G,GAASrM,GAAI,GAAO+S,EAAGa,EAAGia,UAAW3a,GAAGrL,KAAK,CAAE,KAAI,GAAIjJ,GAAG,EAAEA,EAAGmU,IAAKnU,EAAG,CAAC,GAAIuU,GAAGp8B,EAAE68B,EAAGhV,GAAQ4U,EAAGL,EAAG2a,WAAW,EAAG,IAAO,MAAJ3a,GAAc,MAAJA,EAAoB,GAAO,KAAJA,EAA+E,GAAO,KAAJA,GAAud,GAAI,IAAIK,GAAIA,GAAI,KAAO,IAAIA,GAAIA,GAAI,IAAS,KAAJL,EAAQ,CAAqB,IAApB,GAAI8B,GAAGrW,EAAO0B,GAAI,EAAO1B,EAAGmU,IAA4B,OAAnBI,EAAGp8B,EAAE68B,EAAGhV,KAAqB,MAAJuU,KAA7BvU,EAA8C,GAAO,KAAJuU,EAAQ,CAAC7S,EAAG1B,CAAG,OAAQ,GAAG0B,GAAI,EAAE,CAAC,GAAI4T,GAAG,GAAInwB,EAAO4iB,GAAEmd,WAAWlQ,EAAGqB,EAAG5I,EAAG0Z,OAAO7R,EAAG5L,KAAKvkB,EAAEoiC,KAAKjS,EAAG9L,KAAKzB,EAAEsd,aAAarQ,EAAGqB,EAAG3U,EAAG2U,IAAatO,EAAEmd,WAAWlQ,EAAGqB,EAAG5I,EAAG2Z,OAAO9R,EAAG9L,KAAKzB,EAAEsd,aAAarQ,EAAGqB,EAAG,EAAE3U,EAAG2U,EAAG,GAAMtO,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,YAAaf,EAAG5L,KAAKvkB,EAAEqiC,KAAczf,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,YAAaf,EAAG5L,KAAKvkB,EAAEsiC,KAAc1f,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,WAAYf,EAAG5L,KAAKvkB,EAAEuiC,KAAc3f,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,WAAYf,EAAG5L,KAAKvkB,EAAEwiC,KAAc5f,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,KAAMf,EAAG5L,KAAKvkB,EAAEyiC,KAAc7f,EAAEmd,WAAWlQ,EAAGqB,EAAG,EAAE,OAAMf,EAAG5L,KAAKvkB,EAAE0iC,QAAiBvS,EAAG5L,KAAKvkB,EAAE2iC,KAAKxS,EAAG9L,KAAKzB,EAAEsd,aAAarQ,EAAGqB,EAAG3U,EAAG2U,IAAM/B,EAAG16B,QAAQsK,KAAKoxB,EAAI,IAAIlB,GAAG,EAAM6B,IAAM,KAAIjW,EAAG0B,EAAG,EAAE1B,EAAGmU,IAA4B,OAAnBI,EAAGp8B,EAAE68B,EAAGhV,KAAqB,MAAJuU,KAA7BvU,EAA8C,GAAO,KAAJuU,GAAa,KAAJA,GAAa,MAAJA,EAArB,CAAyC,GAAIC,GAAGzM,EAAEwd,KAAKvQ,EAAGb,EAAGnU,EAAGoB,EAAI,IAAGA,EAAG,GAAG,EAAE,CAAC6U,EAAG/xB,KAAKswB,GAAIJ,GAAK,IAAI7S,GAAGH,EAAG,EAAG,IAAGG,EAAGvB,EAAG,CAAC5f,QAAQP,IAAI,2CAA4C,OAAOmgB,EAAGuB,EAAG,GAAI+T,EAAG7L,KAAK,GAAInuB,cAAa26B,GAAO7B,EAAGE,EAAGrL,OAAMqL,EAAGrL,KAAKmL,SAAnhD,CAAgC,IAApB,GAAIiC,GAAGrW,EAAO0B,GAAI,EAAO1B,EAAGmU,IAA4B,OAAnBI,EAAGp8B,EAAE68B,EAAGhV,KAAqB,MAAJuU,KAA7BvU,EAA8C,GAAO,KAAJuU,EAAQ,CAAC7S,EAAG1B,CAAG,OAAQ,GAAIkV,IAAG,CAAM,IAAGxT,GAAI,EAA4E,IAAtEA,GAAI2U,EAAG,GAAe,KAAZl+B,EAAE68B,EAAGqB,EAAG,IAAqB,KAAZl+B,EAAE68B,EAAGqB,EAAG,IAAqB,KAAZl+B,EAAE68B,EAAGqB,EAAG,KAASnB,GAAG,GAAUlV,EAAG0B,EAAG,EAAE1B,EAAGmU,IAA4B,OAAnBI,EAAGp8B,EAAE68B,EAAGhV,KAAqB,MAAJuU,KAA7BvU,EAA8C,GAAO,KAAJuU,GAAa,KAAJA,GAAa,MAAJA,EAArB,CAAyC,GAAIC,GAAGzM,EAAEwd,KAAKvQ,EAAGb,EAAGnU,EAAGoB,EAAOA,GAAG,GAAG,GAAM8T,GAAI,EAAEV,GAAIA,EAAG,MAAKF,EAAGtL,KAAKwL,GAAKxU,EAAGoB,EAAG,GAAK,KAAKpB,EAAGmU,IAAsB,MAAVh8B,EAAE68B,EAAGhV,IAAqB,MAAV7nB,EAAE68B,EAAGhV,MAA5BA,QAAve,MAAKA,EAAGmU,IAAsB,MAAVh8B,EAAE68B,EAAGhV,IAAqB,MAAV7nB,EAAE68B,EAAGhV,MAA5BA,IAAsnD,MAAnCsU,GAAG3G,KAAO,IAAK2G,EAAGrL,KAAMqL,EAAGtL,KAAM,EAASsL,GAAK7G,EAAGx1B,UAAUihC,gBAAgB,WAAW,MAAO5gC,MAAK4wB,KAAK,EAAE5wB,KAAKq1B,MAAOF,EAAGx1B,UAAUkhC,oBAAoB,WAAW,MAAO7gC,MAAKq1B,MAAOF,EAAGx1B,UAAUwhC,KAAK,WAAW,IAAI,GAAIzZ,GAAG,EAAEA,EAAG1nB,KAAKsB,QAAQyI,OAAO2d,IAAK,CAAC,GAAIuB,GAAGjpB,KAAKsB,QAAQomB,EAAI5f,SAAQP,IAAI,kBAAkB0hB,EAAGiI,KAAKjI,EAAGkI,KAAKpnB,OAAQ,KAAI,GAAI+e,GAAG,EAAEA,EAAGG,EAAGkI,KAAKpnB,QAAQ+e,EAAG,GAAGA,IAAMhhB,QAAQP,IAAI,UAAU0hB,EAAGkI,KAAKrI,GAAMhhB,SAAQP,IAAI,QAAS4tB,EAAGx1B,UAAUkM,eAAe,SAAS6b,EAAGsU,EAAGH,EAAGsE,GAAwE,IAAI,GAApEnD,GAAGhB,EAAGmE,EAAGnH,KAAS4E,EAAGZ,EAAGh9B,KAAK0wB,KAAK,IAAStH,EAAM,EAAHwU,EAASD,EAAGC,EAAGxU,EAAW4U,EAAG,EAAEA,EAAGh+B,KAAKsB,QAAQyI,OAAOi0B,IAAK,CAAC,GAAID,GAAG/9B,KAAKsB,QAAQ08B,GAAQ1B,EAAGyB,EAAG5M,KAAKpnB,OAAW2yB,EAAGqB,EAAG7M,IAAK,IAAG6M,EAAG3M,MAAMvkB,EAAEoiC,KAAK,CAAC,GAAIrP,GAAG7B,EAAG5M,KAAM/H,GAAIkT,EAAGA,EAAG,EAAElT,EAAK1B,GAAGtb,cAAcswB,EAAGkD,OAAU,IAAG/yB,EAAEyiC,MAAMvR,EAAG3M,MAAM2M,EAAG3M,MAAMvkB,EAAEwiC,UAAW,CAAC,GAA+OvmB,GAA3OG,EAAGvB,EAAG1U,cAAc0pB,GAAQwD,EAAGxY,EAAGmV,kBAAsBgB,EAAGqC,EAAGmS,YAAYppB,GAAQ6U,EAAGoC,EAAGoS,YAAYrpB,GAAmBgT,EAAR,IAAe4B,EAAGC,GAAQhC,EAAGoE,EAAG3tB,cAAc0W,GAAQqX,EAAGvC,EAAG5M,KAAM/H,GAAIkT,EAAGA,EAAG,EAAElT,GAASxW,EAAGmrB,EAAG5M,KAAM/H,EAAG,GAAGkT,EAAGA,EAAG,EAAElT,EAAG,EAAoDN,GAArCwX,EAAG1tB,GAAIA,EAAG0tB,EAAGrE,GAAMqE,EAAG1tB,GAAI0tB,EAAG1tB,EAAGqpB,EAAQqE,EAAYA,GAAI1tB,EAAG0tB,GAAI3C,CAAI,IAAIf,GAAGd,GAAIhT,EAAGgT,GAAID,CAAGnU,GAAGtb,cAAcswB,EAAGE,IAAUxT,GAAIppB,KAAK2wB,OAAS3wB,KAAK4wB,KAAKuP,EAAGnH,KAAKgD,EAAMh8B,KAAK6wB,aAAYsP,EAAGlH,KAAK+C,IAAUmE,EAAGpH,MAAK,GAAO/4B,KAAKs1B,KAAKuG,GAAK1G,EAAGx1B,UAAU+vC,KAAK,WAAW,MAAO1vC,MAAK4wB,KAAMuE,EAAGx1B,UAAUgwC,KAAK,SAAS1mB,GAAIjpB,KAAK4wB,IAAI3H,GAAKkM,EAAGx1B,UAAUk3C,KAAK,WAAW,MAAO72C,MAAK0wB,MAAOyE,EAAGx1B,UAAUm3C,KAAK,SAAS7tB,GAAIjpB,KAAK0wB,KAAKzH,GAAKkM,EAAGx1B,UAAUiwC,aAAa,WAAW,MAAO5vC,MAAK6wB,YAAasE,EAAGx1B,UAAUkwC,cAAc,SAAS5mB,GAAIjpB,KAAK6wB,WAAW5H,GAA+D8H,EAAGpxB,UAAUob,MAAM,WAAW/a,KAAKixB,KAAK,GAAIF,EAAGpxB,UAAUmwC,IAAI,SAAShnB,GAAI,GAAG9oB,KAAKgxB,IAAIjnB,QAAQ/J,KAAKixB,KAAK,CAAC,GAAIhI,GAAG,GAAIjmB,cAAuB,EAAVhD,KAAKixB,KAAQjC,GAAEmX,KAAKnmC,KAAKgxB,IAAI,EAAE/H,EAAG,EAAEjpB,KAAKixB,MAAMjxB,KAAKgxB,IAAI/H,EAAIjpB,KAAKgxB,IAAIhxB,KAAKixB,QAAQnI,GAAKiI,EAAGpxB,UAAU8vC,KAAK,WAAW,GAAIxmB,GAAG,GAAIjmB,cAAahD,KAAKixB,KAAwC,OAAlCjC,GAAEmX,KAAKnmC,KAAKgxB,IAAI,EAAE/H,EAAG,EAAEjpB,KAAKixB,MAAahI,GAAgEpc,EAAE2iC,KAAK,EAAE3iC,EAAEoiC,KAAK,EAAEpiC,EAAEyiC,KAAK,IAAIziC,EAAE0iC,KAAK,IAAI1iC,EAAEqiC,KAAK,IAAIriC,EAAEsiC,KAAK,IAAItiC,EAAEuiC,KAAK,IAAIviC,EAAEwiC,KAAK,IAAuH7Z,EAAE71B,UAAU,GAAIf,GAAI42B,EAAE0f,KAAK,GAAIrzC,OAAQ2zB,EAAE71B,UAAUw9B,KAAK,WAAWn9B,KAAKytB,KAAK,GAAIzE,GAAIhpB,KAAKytB,KAAK0P,QAAS3H,EAAE71B,UAAUsiC,KAAK,SAAShZ,GAAIrqB,EAAEe,UAAUsiC,KAAKvjC,KAAKsB,KAAKipB,GAAIjpB,KAAK01B,IAAIzM,EAAGiZ,OAAOliC,KAAKy1B,IAAIxM,EAAGiZ,OAAOliC,KAAKytB,KAAKxE,EAAGsT,OAAOv8B,KAAK21B,KAAK1M,EAAGsT,OAAO39B,EAAEe,UAAUurC,eAAexsC,KAAKsB,KAAKipB,IAAMuM,EAAE71B,UAAU2Z,KAAK,SAAS2P,GAAI,GAAIH,GAAG,GAAI8M,GAAE51B,MAAU0nB,GAAI1nB,KAAKy1B,IAAI,IAAIz1B,KAAK01B,IAAI,EAAqK,OAAtJ,OAAT5M,EAAG+M,OAAY/M,EAAG+M,KAAK,MAAM/M,EAAG+M,KAAK,GAAI7yB,cAAgB,EAAH0kB,GAAkB,MAAToB,EAAGgN,OAAYhN,EAAGgN,KAAK,MAAS91B,KAAK0pC,OAAQ5gB,EAAGgN,KAAK,GAAI9yB,cAAgB,EAAH0kB,GAAYoB,EAAGgN,KAAK,KAAahN,GAAK0M,EAAE71B,UAAUupC,KAAK,SAASxhB,EAAGoB,GAAI,GAAIM,GAAGN,CAAG,IAAI9oB,KAAKytB,KAAKyf,KAAKxlB,GAAnB,CAAgC,GAAI4U,GAAGt8B,KAAK+2C,OAAW9tB,EAAGuM,EAAE0f,IAAKjsB,GAAG,IAAG,EAAMqE,EAAGqY,KAAKje,EAAG1nB,KAAKytB,KAAKxE,EAAGqT,EAAGt8B,KAAK21B,KAAKvM,EAAGyM,KAAK,EAAE,GAAG/M,EAAGqsB,KAAKlsB,EAAG,IAAIjpB,KAAKmrC,mBAAmBzjB,EAAG1nB,KAAKytB,KAAK3E,EAAGG,KAAMuM,EAAE71B,UAAUypC,KAAK,SAAShgB,EAAG1B,GAAI,GAAI4U,GAAG5U,CAAiB,IAAd4U,EAAG+Y,MAAK,GAAUr1C,KAAK0pC,OAA6D,CAAC,GAAIzgB,GAAGjpB,KAAKwpC,qBAA2E,IAAlDlN,EAAG1H,MAAMh2B,EAAEi2B,OAAMyH,EAAG1H,KAAKxL,EAAGooB,iBAAiBvoB,IAAQqT,EAAG1H,KAAK,EAAMxM,GAAEumB,MAAMlkB,EAAE6S,KAAK,qBAAqBrU,GAAKqT,EAAG+Y,MAAK,OAAY,CAAC,GAAIrZ,GAAG5S,EAAGkoB,YAAYhV,EAAG1H,MAAU9L,EAAGM,EAAGopB,KAAKlW,EAAG1H,KAAM,IAAO,MAAJoH,GAAUlT,EAAGmX,OAAO,CAAC,GAAI/D,GAAGpT,EAAG2sB,eAAgBnZ,GAAGoZ,2BAA2BxZ,EAAI,IAAIc,GAAGlU,EAAG6sB,iBAAkBrZ,GAAGsZ,gBAAgB5Y,EAAGV,EAAGuZ,0BAA0B7Z,EAAGqP,KAAKjiB,EAAGN,EAAGwT,EAAGzG,KAAKyG,EAAGxG,KAAK91B,KAAK+2C,OAAO,EAAE,GAAGza,EAAG+Y,MAAK,OAAY/Y,GAAG+Y,MAAK,QAAjgB/Y,GAAGsZ,gBAAgBtZ,EAAGuZ,2BAAufrgB,EAAE71B,UAAU0rC,KAAK,SAAS/O,EAAGxT,EAAGG,EAAGiT,EAAGc,EAAG5T,EAAG1B,GAAa,GAAIsU,GAAGlT,EAAO8T,EAAa,MAATZ,EAAGlG,KAAYkG,EAAGlG,KAAKkG,EAAGnG,IAAKL,GAAEwhB,qBAAqB/tB,EAAGiT,EAAGc,EAAG5T,EAAG1B,EAAGkV,EAAG58B,KAAKy1B,IAAIz1B,KAAK01B,MAA8DF,EAAEwhB,qBAAqB,SAASpZ,EAAGyH,EAAGrF,EAAGpD,EAAG9T,EAAG6U,EAAG9B,EAAGC,GAAqG,IAAI,GAApFiC,GAAO6G,EAAGC,EAAvB/G,EAAGkC,EAAGlX,EAAwB4T,EAAG,EAAMT,EAAG,EAAMiJ,EAAG,EAAMC,EAAG,EAAMJ,EAAG,EAAMK,EAAG,EAAMpH,GAAG,EAAcmG,EAAGvH,EAAGuH,EAAGrG,EAAGqG,GAAIrb,EAAG,CAAC,GAAI2c,GAAGH,EAAGpF,EAAGN,CAA2C,IAAxCM,EAAGtC,EAAGuG,GAAIvE,EAAGhC,EAAGuG,EAAG,GAAGsB,EAAGvF,EAAGrE,EAAGyJ,EAAG1F,EAAG9D,EAAM2J,EAAG,GAAGH,EAAG,GAAGzJ,GAAI4J,GAAI3J,GAAIwJ,EAAG,CAAC,GAAI1yB,GAAGipB,EAAG,CAAE,KAAImC,EAAG,CAACA,GAAG,EAAKtB,EAAG,KAAMiB,EAAgB,GAAX,EAAI,EAAG/qB,IAAO+qB,EAAiB,GAAZ9B,EAAK,EAAGjpB,IAAO+qB,EAAiB,GAAZ,EAAI7B,EAAIlpB,IAAO+qB,EAAkB,GAAb9B,EAAKC,EAAIlpB,KAAQqpB,EAAG,KAAM0B,EAAgB,GAAX,EAAI,EAAG/qB,GAAM,GAAG+qB,EAAiB,GAAZ9B,EAAK,EAAGjpB,GAAM,GAAG+qB,EAAiB,GAAZ,EAAI7B,EAAIlpB,GAAM,GAAG+qB,EAAkB,GAAb9B,EAAKC,EAAIlpB,GAAM,GAAI,IAAIspB,GAAGyB,EAAkB,GAAb9B,EAAKC,EAAIlpB,IAAO+qB,EAAgB,GAAX,EAAI,EAAG/qB,IAAW0pB,EAAGqB,EAAkB,GAAb9B,EAAKC,EAAIlpB,GAAM,GAAG+qB,EAAgB,GAAX,EAAI,EAAG/qB,GAAM,GAAO2yB,EAAG5H,EAAiB,GAAZ9B,EAAK,EAAGjpB,IAAO+qB,EAAiB,GAAZ,EAAI7B,EAAIlpB,IAAWkyB,EAAGnH,EAAiB,GAAZ9B,EAAK,EAAGjpB,GAAM,GAAG+qB,EAAiB,GAAZ,EAAI7B,EAAIlpB,GAAM,EAAGsyB,GAAW,IAAPhJ,EAAGqJ,GAAQJ,EAAW,IAAP7I,EAAGwI,GAAQC,EAAW,IAAP7I,EAAGqJ,GAAQH,EAAW,IAAP9I,EAAGwI,GAA4CpI,GAAI,IAAKwI,EAAGH,GAAI9I,GAAI,IAAKkJ,EAAGC,GAAK,IAAK,EAAElF,GAAIA,EAAG,IAAM,EAAEN,GAAIA,EAAG,EAAI,GAAGM,GAAI,EAAG,GAAGN,GAAI,EAAE,CAAC,GAAIO,GAAGxC,EAAgB,GAAX,EAAI,EAAG/qB,IAAW0tB,EAAG3C,EAAgB,GAAX,EAAI,EAAG/qB,GAAM,GAAO6xB,EAAG/H,EAAG,EAAEwI,EAAOnF,EAAG9D,EAAG,EAAEkJ,EAAO/b,EAAGsT,EAAG,EAAEqI,EAAOrd,EAAGuU,EAAG,EAAEmJ,EAAOpI,EAAGN,EAAG,EAAEwI,EAAG,EAAEH,EAAO/I,EAAGC,EAAG,EAAEkJ,EAAG,EAAEC,EAAOd,EAAG,IAAKpE,IAAK,GAAQqE,EAAG,IAAK3E,IAAK,EAAO0E,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAW,IAAG3E,GAAI,EAAE,CAAC,GAAIxW,GAAGuU,EAAiB,GAAZ,EAAI7B,EAAIlpB,IAAW8U,EAAGiW,EAAiB,GAAZ,EAAI7B,EAAIlpB,GAAM,GAAOoqB,EAAGN,EAAG,EAAEwI,EAAG,EAAEH,EAAO/I,EAAGC,EAAG,EAAEkJ,EAAG,EAAEC,EAAOjF,EAAGzD,EAAG,EAAEqI,EAAOzE,EAAGrE,EAAG,EAAEmJ,EAAOX,EAAG/H,EAAG,EAAEwI,EAAG,EAAEH,EAAOhF,EAAG9D,EAAG,EAAEkJ,EAAG,EAAEC,EAAOd,EAAG,IAAKpE,IAAK,GAAQqE,EAAG,IAAK3E,EAAI,EAAO0E,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAU,CAAC,GAAItb,GAAO,EAAHqc,CAASrc,IAAI6S,IAAI7S,EAAG6S,EAAG,EAAG,IAAIwI,GAAG,IAAKpE,IAAK,GAAQqE,EAAGe,EAAGrc,EAAO6a,EAAG7a,EAAG6S,EAAO0I,GAAIvb,EAAG,GAAG6S,EAAO1S,EAAGuU,EAAiB,GAAZ,EAAI1U,EAAIrW,IAAW8U,EAAGiW,EAAiB,GAAZ,EAAI1U,EAAIrW,GAAM,GAAOutB,EAAGxC,EAAmB,GAAd,GAAI1U,EAAG,GAAGrW,IAAW0tB,EAAG3C,EAAmB,GAAd,GAAI1U,EAAG,GAAGrW,GAAM,GAAOoqB,EAAGN,EAAG,EAAEwI,EAAGpB,EAAGiB,EAAO/I,EAAGC,EAAG,EAAEkJ,EAAGrB,EAAGsB,EAAOX,EAAG/H,EAAG,EAAEwI,EAAGV,EAAGO,EAAOhF,EAAG9D,EAAG,EAAEkJ,EAAGX,EAAGY,CAAMd,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAa,IAAG,GAAGrE,EAAI,GAAGN,GAAI,EAAE,CAAC,GAAI6E,GAAG9G,EAAiB,GAAZ9B,EAAK,EAAGjpB,IAAWmtB,EAAGpC,EAAiB,GAAZ9B,EAAK,EAAGjpB,GAAM,GAAOutB,EAAGzD,EAAG,EAAEwI,EAAO5E,EAAGrE,EAAG,EAAEkJ,EAAOnI,EAAGN,EAAG,EAAEwI,EAAG,EAAEH,EAAO/I,EAAGC,EAAG,EAAEkJ,EAAG,EAAEC,EAAOhc,EAAGsT,EAAG,EAAEwI,EAAG,EAAEH,EAAOrd,EAAGuU,EAAG,EAAEkJ,EAAG,EAAEC,EAAOd,EAAG,IAAKpE,EAAI,GAAQqE,EAAG,IAAK3E,IAAK,EAAO0E,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAW,IAAG3E,GAAI,EAAE,CAAC,GAAI5C,GAAGW,EAAkB,GAAb9B,EAAKC,EAAIlpB,IAAWopB,EAAG2B,EAAkB,GAAb9B,EAAKC,EAAIlpB,GAAM,GAAOwW,EAAGsT,EAAG,EAAEwI,EAAG,EAAEH,EAAOrd,EAAGuU,EAAG,EAAEkJ,EAAG,EAAEC,EAAOX,EAAG/H,EAAG,EAAEwI,EAAG,EAAEH,EAAOhF,EAAG9D,EAAG,EAAEkJ,EAAG,EAAEC,EAAOjF,EAAGzD,EAAG,EAAEwI,EAAG,EAAEH,EAAOzE,EAAGrE,EAAG,EAAEkJ,EAAG,EAAEC,EAAOd,EAAG,IAAKpE,EAAI,GAAQqE,EAAG,IAAK3E,EAAI,EAAO0E,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAU,CAAC,GAAItb,GAAO,EAAHqc,CAASrc,IAAI6S,IAAI7S,EAAG6S,EAAG,EAAG,IAAIwI,GAAG,IAAKpE,EAAI,GAAQqE,EAAGe,EAAGrc,EAAO6a,EAAG7a,EAAG6S,EAAO0I,GAAIvb,EAAG,GAAG6S,EAAOkB,EAAGW,EAAkB,GAAb9B,EAAK5S,EAAIrW,IAAWopB,EAAG2B,EAAkB,GAAb9B,EAAK5S,EAAIrW,GAAM,GAAO6xB,EAAG9G,EAAoB,GAAf9B,GAAK5S,EAAG,GAAGrW,IAAWmtB,EAAGpC,EAAoB,GAAf9B,GAAK5S,EAAG,GAAGrW,GAAM,GAAOwW,EAAGsT,EAAG,EAAEwI,EAAGpB,EAAGiB,EAAOrd,EAAGuU,EAAG,EAAEkJ,EAAGrB,EAAGsB,EAAOjF,EAAGzD,EAAG,EAAEwI,EAAGV,EAAGO,EAAOzE,EAAGrE,EAAG,EAAEkJ,EAAGX,EAAGY,CAAMd,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAa,IAAG3E,GAAI,EAAE,CAAC,GAAI/B,GAAO,EAAH4H,CAAS5H,IAAIhC,IAAIgC,EAAGhC,EAAG,EAAG,IAAIyI,GAAGmB,EAAG5H,EAAO0G,EAAG,IAAK3E,IAAK,GAAQoE,EAAGnG,EAAGhC,EAAOkI,GAAIlG,EAAG,GAAGhC,EAAO4I,EAAG9G,EAAiB,GAAZE,EAAK,EAAGjrB,IAAWmtB,EAAGpC,EAAiB,GAAZE,EAAK,EAAGjrB,GAAM,GAAOutB,EAAGxC,EAAmB,GAAdE,EAAG,EAAI,EAAGjrB,IAAW0tB,EAAG3C,EAAmB,GAAdE,EAAG,EAAI,EAAGjrB,GAAM,GAAOoqB,EAAGN,EAAGsH,EAAGkB,EAAG,EAAEH,EAAO/I,EAAGC,EAAG+H,EAAGmB,EAAG,EAAEC,EAAOhc,EAAGsT,EAAGqH,EAAGmB,EAAG,EAAEH,EAAOrd,EAAGuU,EAAG8H,EAAGoB,EAAG,EAAEC,CAAMd,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAW,IAAG3E,GAAI,EAAE,CAAC,GAAI/B,GAAO,EAAH4H,CAAS5H,IAAIhC,IAAIgC,EAAGhC,EAAG,EAAG,IAAIyI,GAAGmB,EAAG5H,EAAO0G,EAAG,IAAK3E,EAAI,GAAQoE,EAAGnG,EAAGhC,EAAOkI,GAAIlG,EAAG,GAAGhC,EAAOmB,EAAGW,EAAkB,GAAbE,EAAK/B,EAAIlpB,IAAWopB,EAAG2B,EAAkB,GAAbE,EAAK/B,EAAIlpB,GAAM,GAAOwW,EAAGuU,EAAoB,GAAfE,EAAG,EAAI/B,EAAIlpB,IAAW8U,EAAGiW,EAAoB,GAAfE,EAAG,EAAI/B,EAAIlpB,GAAM,GAAO6xB,EAAG/H,EAAGsH,EAAGkB,EAAG,EAAEH,EAAOhF,EAAG9D,EAAG+H,EAAGmB,EAAG,EAAEC,EAAOjF,EAAGzD,EAAGqH,EAAGmB,EAAG,EAAEH,EAAOzE,EAAGrE,EAAG8H,EAAGoB,EAAG,EAAEC,CAAMd,GAAGC,GAAI,GAAGc,EAAGlB,GAAInH,GAAI5T,EAAG4T,GAAIsH,GAAIG,EAAGzH,GAAIuH,EAAGc,EAAGlB,EAAG,GAAGnI,GAAItU,EAAGsU,GAAIsI,GAAIvE,EAAG/D,GAAIuI,IAASc,EAAGlB,GAAIhE,GAAIsE,EAAGtE,IAAK,EAAEmE,IAAKlb,EAAG+W,IAAK,EAAEoE,GAAIc,EAAGlB,EAAG,GAAG7D,GAAIP,EAAGO,IAAK,EAAEgE,IAAK5c,EAAG4Y,IAAK,EAAEiE,QAAWpd,GAAO8vB,IAAIC,OAAO,iDAA4ChX,EAAGN,OAAcyF,GAAGlB,GAAIzH,EAAGwD,EAAGgF,EAAGtF,EAAGmF,EAAGM,EAAGlB,EAAG,GAAGlI,EAAGiE,EAAGiF,EAAGvF,EAAGwF,MAAUR,GAAGa,GAAO,EAAHA,GAAMZ,EAAGS,GAAO,EAAHA,GAAMvH,EAAG,IAAO,EAAH0H,IAAW,EAAHH,IAAQzJ,EAAG,IAAO+I,EAAGC,EAAG,GAAGQ,EAAGlB,GAAIxG,EAAGI,IAAK,EAAE6G,EAAGC,GAAIlH,EAAGI,EAAG,GAAG6G,EAAGjH,EAAGI,EAAG,GAAGlC,EAAG,IAAIgJ,EAAGQ,EAAGlB,EAAG,GAAGxG,EAAGI,EAAG,IAAI,EAAE6G,EAAGC,GAAIlH,EAAGI,EAAG,GAAG6G,EAAGjH,EAAGI,EAAG,GAAGlC,EAAG,GAAG,GAAGgJ,IAASQ,EAAGlB,GAAIxG,EAAGI,EAAG,GAAGlC,EAAG,GAAG,IAAI+I,EAAG,EAAEC,GAAIlH,EAAGI,EAAG,GAAGlC,EAAG,KAAK,EAAE+I,GAAIjH,EAAGI,EAAG,IAAI,EAAE8G,GAAIQ,EAAGlB,EAAG,GAAGxG,EAAGI,EAAG,GAAGlC,EAAG,GAAG,IAAI+I,EAAG,EAAEC,GAAIlH,EAAGI,EAAG,GAAGlC,EAAG,GAAG,IAAI,EAAE+I,GAAIjH,EAAGI,EAAG,IAAI,EAAE8G,MAASrP,EAAE71B,UAAUw3C,qBAAqB,SAASzvB,EAAGiW,EAAGrB,EAAGsB,EAAG9B,EAAGc,EAAGoB,GAAuI,IAAI,GAAzHhB,GAAGhB,EAAoDC,EAAG4B,EAAOE,EAAO6B,EAAG9B,EAArF7U,EAAG0U,EAAiBzB,EAAGl8B,KAAKy1B,IAAQoG,EAAG77B,KAAK01B,IAAQ5M,EAAGgT,EAAGkC,EAAkCtB,EAAa,MAATzT,EAAG6M,KAAY7M,EAAG6M,KAAK7M,EAAG4M,KAAazM,EAAGwT,EAAGxT,EAAGN,EAAGM,GAAI4U,EAAO5V,GAAEgvB,MAAMpa,EAAGV,EAAGlT,GAAI4S,EAAGM,EAAGlT,EAAG,GAAM4T,EAAG,EAAGA,EAAG,EAAWA,EAAG,IAAGA,EAAG,GAAOhB,EAAG,EAAGA,EAAG,EAAWA,EAAG,IAAGA,EAAG,GAAIgB,GAAId,EAAGF,GAAIH,EAAGI,EAAO,EAAHe,EAAMa,EAAO,EAAH7B,EAASC,EAAGC,EAAG,IAAGD,EAAGC,EAAG,GAAM2B,EAAGhC,EAAG,IAAGgC,EAAGhC,EAAG,GAAG+D,EAAG5C,EAAGf,EAAG6B,EAAG9B,EAAG6B,EAAGE,EAAG,GAAG9B,EAAG4B,GAAI3B,EAAG,MAAUc,EAAGV,EAAGlT,GAAI8S,EAAGF,EAAGM,EAAGlT,EAAG,GAAGyS,EAAG+D,EAAG5C,GAAO,EAAHA,GAAMc,EAAG9B,GAAO,EAAHA,GAAM+B,EAAG,IAAO,EAAHf,IAAU,EAAHhB,IAAOE,EAAG,KAAQ0D,EAAG9B,EAAG,GAAGF,EAAGxU,GAAIsT,EAAGqB,IAAK,EAAE6B,EAAG9B,GAAIpB,EAAGqB,EAAG,GAAG6B,EAAGlD,EAAGqB,EAAG,GAAG7B,EAAG,IAAI4B,EAAGF,EAAGxU,EAAG,GAAGsT,EAAGqB,EAAG,IAAI,EAAE6B,EAAG9B,GAAIpB,EAAGqB,EAAG,GAAG6B,EAAGlD,EAAGqB,EAAG,GAAG7B,EAAG,GAAG,GAAG4B,IAASF,EAAGxU,GAAIsT,EAAGqB,EAAG,GAAG7B,EAAG,GAAG,IAAI0D,EAAG,EAAE9B,GAAIpB,EAAGqB,EAAG,GAAG7B,EAAG,KAAK,EAAE0D,GAAIlD,EAAGqB,EAAG,IAAI,EAAED,GAAIF,EAAGxU,EAAG,GAAGsT,EAAGqB,EAAG,GAAG7B,EAAG,GAAG,IAAI0D,EAAG,EAAE9B,GAAIpB,EAAGqB,EAAG,GAAG7B,EAAG,GAAG,IAAI,EAAE0D,GAAIlD,EAAGqB,EAAG,IAAI,EAAED,KAAQtI,EAAE71B,UAAUo3C,KAAK,WAAW,OAAO/2C,KAAKy1B,IAAI,IAAIz1B,KAAK01B,IAAI,IAAKF,EAAE71B,UAAUy+B,QAAQ,WAAW,MAAOx/B,GAAEqsC,MAA4GrV,EAAEj2B,UAAU,GAAI4b,IAAwHzb,GAAE0nB,KAAK,EAAE1nB,GAAEH,UAAUw9B,KAAK,WAAWn9B,KAAKiyB,KAAK,GAAIpwB,OAAQ7B,KAAKkyB,KAAK,GAAIrwB,QAAU/B,GAAEH,UAAUsiC,KAAK,SAAShZ,GAAIjpB,KAAKg2B,KAAK/M,EAAGouB,OAAOr3C,KAAK+1B,QAAQ9M,EAAGouB,OAAOr3C,KAAKi1B,KAAKhM,EAAGsT,OAAOv8B,KAAKiyB,KAAKhJ,EAAGsT,OAAOv8B,KAAKkyB,KAAKjJ,EAAGsT,QAASz8B,GAAEH,UAAU2Z,KAAK,SAASwP,GAAI,GAAIG,GAAG,GAAIgN,IAAGj2B,KAA+C,OAAzCipB,GAAGzW,gBAAgBxS,KAAKs3C,YAAY,EAAE,GAAUruB,GAAKnpB,GAAEH,UAAU43C,KAAK,SAAStuB,GAAI,GAAc,MAAXjpB,KAAKiyB,KAAY,KAAM,IAAIwiB,OAAM,qBAAuBz0C,MAAKiyB,KAAKrmB,KAAKqd,IAAMnpB,GAAEH,UAAU63C,KAAK,SAASvuB,GAAI,GAAc,MAAXjpB,KAAKkyB,KAAY,KAAM,IAAIuiB,OAAM,qBAAuBz0C,MAAKkyB,KAAKtmB,KAAKqd,IAAMnpB,GAAEH,UAAUyyC,KAAK,SAASnpB,GAAIjpB,KAAKiyB,KAAKhJ,GAAKnpB,GAAEH,UAAUw2C,KAAK,SAASltB,GAAIjpB,KAAKkyB,KAAKjJ,GAAKnpB,GAAEH,UAAU23C,UAAU,WAAW,MAAOt3C,MAAK+1B,SAAUj2B,GAAEH,UAAU83C,KAAK,WAAW,MAAOz3C,MAAKg2B,MAAOl2B,GAAEH,UAAU+3C,KAAK,SAASzuB,GAAIjpB,KAAK+1B,QAAQ9M,GAAKnpB,GAAEH,UAAUg4C,KAAK,SAAS1uB,GAAIjpB,KAAKg2B,KAAK/M,GAAKnpB,GAAEH,UAAU2xC,YAAY,WAAW,MAAOtxC,MAAKiyB,MAAOnyB,GAAEH,UAAUs+B,YAAY,WAAW,MAAOj+B,MAAKkyB,MAAOpyB,GAAEH,UAAU4yC,KAAK,WAAW,MAAOvyC,MAAKi1B,MAAOn1B,GAAEH,UAAUi4C,KAAK,SAAS3uB,GAAIjpB,KAAKi1B,KAAKhM,GAAKnpB,GAAEH,UAAUk4C,WAAW,WAAW,MAAO73C,MAAKi1B,MAAOn1B,GAAEH,UAAUm4C,KAAK,SAAS7uB,GAAIjpB,KAAKi1B,KAAKhM,GAAiEgN,GAAGt2B,UAAU,GAAIorB,GAAIkL,GAAGt2B,UAAUgT,gBAAgB,WAAW,MAAO3S,MAAKk2B,MAAOD,GAAGt2B,UAAU6S,gBAAgB,SAASyW,GAAIjpB,KAAKk2B,KAAKjN,GAA+C6B,GAAG2T,KAAK,WAAW33B,EAAEi7B,OAAOxiC,GAAEwiC,OAAOpS,EAAEoS,OAAOvjC,EAAEujC,QAASjX,GAAGnrB,UAAUyL,SAAS,WAAW,MAAOpL,MAAK+B,IAAmBq0B,GAAEz2B,UAAUsiC,KAAK,SAAShZ,KAAkDoN,GAAG12B,UAAU8xC,KAAK,WAAW,MAAOzxC,MAAKs2B,MAAOD,GAAG12B,UAAUw9B,KAAK,WAAWn9B,KAAKs2B,KAAK,GAAIz0B,QAAUw0B,GAAG12B,UAAUsiC,KAAK,SAAShZ,GAAIjpB,KAAKs2B,KAAKrN,EAAGsT,QAASlG,GAAG12B,UAAUo4C,KAAK,SAAS9uB,GAAIjpB,KAAKs2B,KAAK1qB,KAAKqd,IAA0LsN,GAAGxzB,GAAG,GAAIs2B,IAAK9C,GAAGyhB,KAAK,GAAI3e,IAAK9C,GAAG0hB,KAAK,GAAIp2C,OAAM,EAAE,GAAG00B,GAAG2hB,KAAK,GAAIr2C,OAAM,EAAE,GAAG00B,GAAG4hB,IAAI,GAAIt2C,OAAM,EAAE,GAAG00B,GAAG52B,UAAUy4C,KAAK,SAAStvB,EAAGM,EAAG1B,EAAGuB,GAAIjpB,KAAKw2B,SAAS,GAAI30B,OAAMinB,EAAGM,EAAG1B,EAAGuB,IAAMsN,GAAG52B,UAAU04C,KAAK,WAAWr4C,KAAKuY,QAAQ+/B,MAAO,IAAIrvB,GAAGjpB,KAAKw2B,QAAgB,OAAJvN,IAAUjpB,KAAKuY,QAAQggC,YAAYv4C,KAAKuY,QAAQigC,KAAKvvB,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,IAAIjpB,KAAKuY,QAAQkgC,SAAUliB,GAAG52B,UAAU+4C,KAAK,WAAW14C,KAAKuY,QAAQogC,WAAYpiB,GAAG52B,UAAU60C,aAAa,SAASnP,EAAGR,EAAGjF,EAAGlY,EAAGmgB,EAAG3L,EAAGgJ,EAAG4C,GAAI,IAAOD,GAAI7nC,KAAK62B,OAAM72B,KAAK62B,KAAKgR,EAAG7nC,KAAKuY,QAAQqgC,YAAY/Q,EAAuM,KAAI,GAAnMvH,GAAGuE,EAAG96B,OAAW6yB,EAAGyI,EAAGhiC,MAAU28B,EAAGqF,EAAG/hC,OAAWqkC,EAAG3nC,KAAKuY,QAAY+sB,EAAGtlC,KAAK02B,KAASqJ,EAAG//B,KAAK42B,KAAShkB,EAAG5S,KAAKy2B,KAASuH,EAAGh+B,KAAK22B,KAAS2Q,EAAG/Q,GAAGxzB,GAAO+lB,EAAGyN,GAAG0hB,KAAShvB,EAAGsN,GAAG2hB,KAASlT,EAAGzO,GAAG4hB,IAAY3Q,EAAG,EAAEA,EAAGlH,EAAGkH,GAAI,EAAE,CAACG,EAAG2Q,MAAO,IAAIxa,GAAG+G,EAAG2C,GAAQzJ,EAAG8G,EAAG2C,EAAG,GAAO9K,EAAGmI,EAAG2C,EAAG,GAAOlL,EAAGgJ,EAAG1yB,EAAGgtB,EAAM,EAAH9B,GAAU1U,EAAG2W,EAAG/B,EAAG4B,EAAM,EAAH9B,EAAK,GAAO4G,EAAGY,EAAG1yB,EAAGgtB,EAAM,EAAH7B,GAAUiG,EAAGjE,EAAG/B,EAAG4B,EAAM,EAAH7B,EAAK,GAAOwH,EAAGD,EAAG1yB,EAAGgtB,EAAM,EAAHlD,GAAUqI,EAAGhF,EAAG/B,EAAG4B,EAAM,EAAHlD,EAAK,EAAMwI,KAAIA,EAAG2T,KAAKvc,EAAGlT,EAAG4b,GAAI1I,EAAG0I,EAAG,GAAG5b,EAAG4b,EAAG,GAAGE,EAAG2T,KAAKnU,EAAGV,EAAGgB,GAAIN,EAAGM,EAAG,GAAGhB,EAAGgB,EAAG,GAAGE,EAAG2T,KAAKtT,EAAGR,EAAGC,GAAIO,EAAGP,EAAG,GAAGD,EAAGC,EAAG,GAAI,IAAI/I,GAAGW,EAAGlV,EAAM,EAAHoW,GAAUjC,EAAGmE,EAAGA,EAAGtY,EAAM,EAAHoW,EAAK,GAAO2J,EAAG7K,EAAGlV,EAAM,EAAHqW,GAAUkI,EAAGjG,EAAGA,EAAGtY,EAAM,EAAHqW,EAAK,GAAOoH,EAAGvI,EAAGlV,EAAM,EAAHgV,GAAU4H,EAAGtE,EAAGA,EAAGtY,EAAM,EAAHgV,EAAK,GAAOyD,EAAG7zB,KAAKw2B,MAAMmD,EAAGpK,EAAG4L,EAAGxL,GAAQ2B,EAAGtxB,KAAKw2B,MAAMkB,EAAG5a,EAAGsb,EAAGpI,GAAQU,EAAG0H,EAAGpI,EAAON,EAAGgI,EAAG5a,EAAOmb,EAAGj4B,KAAK0H,KAAKgpB,EAAGA,EAAGhB,EAAGA,GAAQF,EAAG2L,EAAGxL,EAAO0B,EAAGsI,EAAGpK,EAAOoJ,EAAG34B,KAAK0H,KAAK8nB,EAAGA,EAAG6B,EAAGA,GAAQiK,EAAGrD,EAAGU,CAAGxB,IAAGC,KAAKyB,EAAGb,EAAGrI,EAAGJ,EAAI4L,EAAGxL,EAAKgK,EAAGpK,IAAMoK,EAAGpK,GAAK4L,EAAGxL,EAAInT,GAAI2a,GAAGC,KAAK6B,EAAGR,EAAGzI,EAAGlT,EAAIsb,EAAGpI,EAAK0H,EAAG5a,IAAM4a,EAAG5a,GAAKsb,EAAGpI,EAAIrT,EAAI,IAAI4U,IAAI5U,EAAG,GAAGH,EAAG,IAAIA,EAAG,GAAO0c,EAAGl5B,KAAK1G,IAAIq2B,EAAGwL,EAAGtC,GAAQL,EAAGx4B,KAAK7G,IAAIw2B,EAAGwL,EAAGtC,GAAQR,EAAGr4B,KAAK1G,IAAIi2B,EAAGoK,EAAG3B,GAAQc,EAAG94B,KAAK7G,IAAIo2B,EAAGoK,EAAG3B,GAAQP,EAAGz3B,KAAKylC,MAAMvM,GAAQ1B,EAAGx3B,KAAKylC,MAAMpN,GAAQzE,EAAG5zB,KAAKwsC,KAAKhU,GAAQgB,GAAGx5B,KAAKwsC,KAAK1T,EAAIkC,GAAGrkC,WAAWqkC,EAAGp5B,UAAUouB,EAAGlT,GAAIke,EAAGyR,OAAOnb,GAAI0J,EAAG94B,MAAM,EAAEya,EAAG,GAAGH,EAAG,IAAIwe,EAAG0R,MAAMnb,EAAG,GAAGyJ,EAAG94B,MAAMo5B,EAAGA,GAAIN,EAAGyR,QAAQ5Y,GAAImH,EAAGp5B,WAAW+tB,GAAIJ,GAAIyL,EAAGjvB,WAAWsvB,EAAyE,IAA1CzL,IAAIA,EAAZ,KAA2B9T,GAAE6wB,gBAAe/c,EAAG,GAAM9T,GAAE8wB,yBAAyB,CAAC,GAAIzT,IAAGqC,EAAG3R,IAA2C,IAAtCsP,GAAGrN,cAAcqN,GAAGrN,mBAAsBqN,GAAGrN,cAAcoP,GAAI,CAAC,GAAI5C,IAAGrO,GAAG4iB,aAAajZ,EAAG6D,EAAG+B,GAAGhC,EAAI1b,IAAEgxB,WAAWC,eAAejxB,GAAEgxB,WAAWC,gBAAgB,EAAEjxB,GAAEgxB,WAAWC,iBAAiBnZ,EAAG6D,IAAK+B,GAAGhC,GAAI,CAAE,IAAIK,IAAGS,GAAGpsB,WAAW,KAAM2rB,IAAGj2B,WAAW61B,GAAID,GAAIvN,GAAGkiB,KAAKtU,GAAGmD,EAAGpL,EAAGqI,EAAGtI,EAAGJ,EAAG4L,EAAGxB,EAAGd,EAAGb,EAAGhI,EAAGlT,EAAGsb,EAAGV,EAAGuB,EAAGR,GAAIZ,GAAGmV,UAAUjU,EAAG,EAAE,GAAGI,GAAGrN,cAAcoP,IAAK+R,YAAY3U,GAAG4U,aAAarV,IAAKwD,EAAG2R,UAAU7T,GAAGrN,cAAcoP,GAAjB,YAAoCzD,EAAGD,OAAc1b,IAAEqxB,aAAaljB,GAAGkiB,KAAK9Q,EAAGL,EAAGpL,EAAGqI,EAAGtI,EAAGJ,EAAG4L,EAAGxB,EAAGd,EAAGb,EAAGhI,EAAGlT,EAAGsb,EAAGV,EAAGuB,EAAGR,GAAQ3c,GAAEsxB,yBAAwBlU,EAAG,EAAEV,EAAGlI,EAAG+H,EAAG,EAAES,EAAGpF,GAAI2H,EAAG2R,UAAUjU,EAAGG,EAAGb,EAAGG,EAAGU,EAAGJ,EAAGT,EAAGa,EAAGb,EAAGG,EAAGU,EAAGJ,EAAGT,EAAKgD,GAAGgR,WAAY,MAAMpR,GAAI9c,EAAEwS,KAAKsK,KAAOhR,GAAGkiB,KAAK,SAASrvB,EAAG1B,EAAGqW,EAAGjV,EAAGoT,EAAGI,EAAGR,EAAGY,EAAGb,EAAGe,EAAGI,EAAGhB,EAAG/S,EAAG6U,EAAG7B,EAAG0B,GAAOI,EAAG,IAAMxH,GAAGojB,WAAWvwB,EAAG1B,EAAGqW,EAAGjV,EAAGkU,EAAGhB,EAAG/S,EAAG6U,EAAG7B,EAAG0B,GAAUpH,GAAGqjB,kBAAkBxwB,EAAG,KAAK8S,EAAGI,EAAGR,EAAGY,EAAGb,EAAGe,IAAOrG,GAAGojB,WAAW,SAAS5b,EAAG+G,EAAG1b,EAAG+W,EAAGzY,EAAGoB,EAAGsc,EAAGjB,EAAGnG,EAAG4B,GAAI,GAAIhD,GAAGwI,EAAG1d,EAAOsV,EAAGmH,EAAGrb,EAAOyb,EAAGvG,EAAGtW,EAAO6d,EAAG3F,EAAG9W,EAAOwb,EAAG1H,EAAG2I,EAAGvI,EAAGuH,EAAG,EAAEnb,GAAIA,EAAOkT,GAAIU,EAAO/T,EAAG2T,EAAOyI,EAAGrH,EAAGoH,EAAOX,EAAG7E,EAAGuE,EAAOmB,GAAIb,EAAO1E,EAAGsF,EAAOxJ,EAAGvvB,KAAK0H,KAAKqxB,EAAGA,EAAGZ,EAAGA,GAAQM,GAAIQ,EAAOzB,EAAGS,EAAOjE,EAAGh0B,KAAK0H,KAAKuwB,EAAGA,EAAGgB,EAAGA,GAAQE,EAAG/d,EAAG4c,EAAGhI,EAAG6D,EAAOqE,EAAG1b,EAAGwb,EAAGrb,EAAGkX,EAAOtC,EAAGuH,EAAGd,EAAGhI,EAAG6D,EAAOrC,EAAGqG,EAAGG,EAAGrb,EAAGkX,EAAOH,EAAGoF,EAAGd,EAAGgB,EAAGzJ,EAAOqE,EAAGiE,EAAGG,EAAGvE,EAAGlE,EAAOI,EAAG+B,EAAGsG,EAAGgB,EAAGzJ,EAAO8B,EAAGiC,EAAG0E,EAAGvE,EAAGlE,EAAOG,EAAGtU,EAAG4c,EAAGS,EAAGzE,EAAOpE,EAAGpT,EAAGwb,EAAGR,EAAGxD,EAAO1tB,EAAGorB,EAAGsG,EAAGS,EAAGzE,EAAO1C,EAAGgC,EAAG0E,EAAGR,EAAGxD,EAAOxE,EAAGvF,GAAGyhB,IAAwB,OAAO,OAAnBlT,EAAG+U,KAAK/d,KAA+BvF,GAAGqjB,kBAAkB7b,EAAGjC,EAAG2J,EAAGjB,EAAG3G,EAAGC,EAAGkC,EAAGE,EAAGjE,EAAG0B,EAAG/qB,EAAGgrB,EAAG5B,EAAGE,IAAW,IAAO3F,GAAGqjB,kBAAkB,SAAS3wB,EAAGH,EAAGmT,EAAGD,EAAGH,EAAGzS,EAAGwT,EAAGlV,GAAI,GAAG0V,UAAUrzB,OAAQ,EAAqC,WAA7B0gB,GAAE6S,KAAK,qBAA8B,MAAKF,UAAU,YAAc/D,KAA0D,WAArD5O,GAAE6S,KAAK,6CAAsD,IAAIpB,GAAG3F,GAAG4hB,IAAQnb,EAAGlU,EAAO6U,EAAGP,SAAyB,IAAfnU,EAAGsvB,YAAevb,EAAG,CAACA,EAAG6b,KAAKlb,EAAG,GAAGA,EAAG,GAAGzB,GAAIjT,EAAG6wB,OAAO5d,EAAG,GAAGA,EAAG,GAAI,KAAI,GAAII,GAAG,EAAEA,EAAGqB,EAAG5zB,OAAOuyB,GAAI,EAAGU,EAAG6b,KAAKlb,EAAGrB,GAAIqB,EAAGrB,EAAG,GAAGJ,GAAIjT,EAAG8wB,OAAO7d,EAAG,GAAGA,EAAG,QAAU,CAACjT,EAAG6wB,OAAOnc,EAAG,GAAGA,EAAG,GAAI,KAAI,GAAIrB,GAAG,EAAEA,EAAGqB,EAAG5zB,OAAOuyB,GAAI,EAAGrT,EAAG8wB,OAAOpc,EAAGrB,GAAIqB,EAAGrB,EAAG,IAAMrT,EAAGwvB,QAASliB,GAAG4iB,aAAa,SAASlwB,EAAGvB,GAAI,GAAIoB,GAAG9P,SAAS8J,cAAc,SAAgG,OAAtFgG,GAAGkxB,aAAa,QAAQ/wB,GAAIH,EAAGkxB,aAAa,SAAStyB,GAAQoB,GAAI2B,EAAE6S,KAAK,SAASxU,GAAYA,GAAKyN,GAAG0jB,WAAW,WAAqB,IAAI,GAAVnxB,GAAG,GAAWG,EAAG,EAAEA,EAAGmU,UAAUrzB,OAAOkf,IAAMH,GAAI,IAAIG,EAAG,MAAMmU,UAAUnU,GAAIixB,QAAQ,GAAG,KAAOpyC,SAAQP,IAAIuhB,IAA8FiO,GAAEp3B,UAAUsiC,KAAK,SAAShZ,GAAIjpB,KAAKg3B,KAAK/N,EAAGma,OAAOpjC,KAAKi3B,KAAKhO,EAAGma,OAAOpjC,KAAKk3B,KAAKjO,EAAGma,OAAOpjC,KAAK0sB,KAAKzD,EAAGsT,QAASxF,GAAEp3B,UAAUiyC,YAAY,WAAW,MAAO5xC,MAAKg3B,MAAOD,GAAEp3B,UAAUkyC,YAAY,WAAW,MAAO7xC,MAAKi3B,MAAOF,GAAEp3B,UAAUgyC,gBAAgB,WAAW,MAAO3xC,MAAKk3B,MAAOH,GAAEp3B,UAAUwsC,WAAW,WAAW,MAAOnsC,MAAK0sB,MAAiKnR,GAAE5b,UAAUsgC,KAAK,WAAW,MAAOjgC,MAAKq3B,OAAOr3B,KAAKo3B,MAAO7b,GAAE5b,UAAU01C,KAAK,SAASpsB,GAAIjpB,KAAKq3B,KAAKpO,GAAK1N,GAAE5b,UAAUgzC,KAAK,WAAW,MAAO3yC,MAAKm2B,MAAO5a,GAAE5b,UAAU4xC,KAAK,SAAStoB,GAAIjpB,KAAKm3B,KAAKlO,GAAK1N,GAAE5b,UAAUw6C,cAAc,WAAW,MAAOn6C,MAAKm3B,MAAO5b,GAAE5b,UAAUy6C,KAAK,WAAW,MAAOp6C,MAAKo3B,MAAO7b,GAAE5b,UAAUw1C,KAAK,SAASlsB,GAAIjpB,KAAKo3B,KAAKnO,GAAK1N,GAAE5b,UAAU81C,cAAc,WAAW,MAAOz1C,MAAKs3B,YAAa/b,GAAE5b,UAAU+1C,2BAA2B,SAASzsB,GAAIjpB,KAAKs3B,WAAWrO,GAAK1N,GAAE5b,UAAUk2C,uBAAuB,WAAW,MAAO71C,MAAKu3B,MAAOhc,GAAE5b,UAAUyrC,uBAAuB,SAASniB,GAAIjpB,KAAKu3B,KAAKtO,GAAK1N,GAAE5b,UAAUg2C,gBAAgB,SAAS1sB,GAAI,MAAOjpB,MAAKw3B,cAAejc,GAAE5b,UAAUi2C,gBAAgB,SAAS3sB,GAAIjpB,KAAKw3B,aAAavO,GAAmBb,GAAEiyB,KAAK,WAAWjyB,GAAEkyB,KAAK,SAAUlyB,GAAEmyB,MAAK,EAAKnyB,GAAEumB,MAAK,EAAKvmB,GAAEoyB,MAAK,EAAMpyB,GAAEolB,MAAK,EAAKplB,GAAEqyB,MAAK,EAAKryB,GAAEsyB,MAAK,EAAKtyB,GAAEgvB,MAAK,EAAKhvB,GAAEuyB,qBAAoB,EAAKvyB,GAAEwyB,MAAK,CAAMxyB,IAAEyyB,MAAK,EAAMzyB,GAAE+gB,MAAK,EAAM/gB,GAAE0yB,aAAa,EAAE1yB,GAAE2yB,KAAK,IAAK3yB,GAAE4yB,KAAK,KAAK5yB,GAAE6yB,KAAK,KAAK7yB,GAAE8yB,KAAK,IAAK9yB,GAAE+yB,KAAK,KAAK/yB,GAAEgzB,KAAK,KAAKhzB,GAAE6pB,KAAK,IAAK7pB,GAAEyG,0BAA0B,EAAEzG,GAAEizB,yBAAyB,EAAEjzB,GAAEkzB,iCAAiC,EAAElzB,GAAEmzB,MAAK,EAAKnzB,GAAEozB,KAAK,EAAEpzB,GAAEkX,uBAAuB,IAAIlX,GAAEC,UAAU,GAAIxmB,OAAQumB,GAAEE,aAAa,GAAIzmB,OAAQumB,GAAEqzB,SAAS,GAAI55C,OAAQumB,GAAEqxB,aAAY,EAAMrxB,GAAE6wB,eAAc,EAAM7wB,GAAEmsB,SAAS,EAAEnsB,GAAEsxB,wBAAuB,EAAKtxB,GAAEszB,sBAAqB,EAAKtzB,GAAE8wB,0BAAyB,EAAM9wB,GAAEgxB,cAAchxB,GAAEuzB,mBAAmBC,aAAa,YAAYlC,wBAAuB,EAAKR,0BAAyB,EAAK3E,SAAS,GAAGnsB,GAAEyzB,qBAAqBD,aAAa,UAAUlC,wBAAuB,EAAKR,0BAAyB,EAAM3E,SAAS,GAAGnsB,GAAE0zB,oBAAoB1zB,GAAEyzB,oBAAoBzzB,GAAE2zB,iBAAiBH,aAAa,UAAUlC,wBAAuB,EAAMR,0BAAyB,EAAM3E,SAAS,GAAGnsB,GAAE4zB,iBAAiBJ,aAAa,UAAUlC,wBAAuB,EAAMR,0BAAyB,EAAM3E,SAAS,GAAGnsB,GAAE6zB,YAAY,WAAclzB,GAAEmzB,QAAS9zB,GAAE+zB,aAAa/zB,GAAE0zB,qBAA8B/yB,GAAEqzB,YAAah0B,GAAE+zB,aAAa/zB,GAAE2zB,iBAAuB3zB,GAAE+zB,aAAa/zB,GAAE4zB,kBAAqB5zB,GAAE+zB,aAAa,SAASrzB,EAAGpB,GAAI,GAAc,gBAAJoB,GAAc,OAAOA,GAAI,IAAK,MAAKA,EAAGV,GAAEuzB,iBAAkB,MAAM,KAAK,MAAK7yB,EAAGV,GAAEyzB,mBAAoB,MAAM,KAAK,MAAK/yB,EAAGV,GAAE0zB,mBAAoB,MAAM,KAAK,MAAKhzB,EAAGV,GAAE2zB,eAAgB,MAAM,KAAK,MAAKjzB,EAAGV,GAAE4zB,eAAgB,MAAM,SAAQK,MAAM,sBAAsBvzB,GAAesU,UAAUrzB,OAAO,IAAG2d,GAAG,GAASA,GAAI5f,QAAQP,IAAI,aAAauhB,EAAG8yB,aAAe,KAAI,GAAI3yB,KAAMH,GAAIV,GAAEa,GAAIH,EAAGG,GAAOvB,GAAI5f,QAAQP,IAAI,MAAM0hB,EAAG,OAAOH,EAAGG,KAASb,GAAE9O,KAAK,WAAW,GAAG8O,GAAEmzB,KAAK,CAACzzC,QAAQP,IAAI,YAAY6gB,GAAEiyB,MAAMjyB,GAAEmzB,MAAK,GAAsB,EAAKnzB,GAAE6zB,gBAAiB7zB,GAAEk0B,cAAc,WAAW,MAAOl0B,IAAEiyB,MAAOjyB,GAAEm0B,aAAa,WAAW,MAAOn0B,IAAEkyB,MAAOlyB,GAAE4pB,KAAK,SAAS/oB,GAAIb,GAAEozB,KAAKvyB,GAAKb,GAAEvgB,SAAS,WAAW,GAAIohB,GAAGb,GAAEozB,IAAc,OAATpzB,IAAEozB,KAAK,EAASvyB,GAAKb,GAAEo0B,QAAQ,WAAWp0B,GAAEC,aAAaD,GAAEE,gBAAgBF,GAAEqzB,aAAcrzB,GAAElO,MAAM,SAASwN,EAAGoB,GAAI,GAAIG,GAAGH,GAAI,CAAEV,IAAEC,UAAUY,GAAIvB,GAAKU,GAAEsQ,MAAM,SAASzP,GAAI,MAAOb,IAAEC,UAAUY,IAAMb,GAAEq0B,0BAA0B,SAASxzB,GAAIb,GAAEkX,uBAAuBrW,GAAKb,GAAEs0B,0BAA0B,WAAW,MAAOt0B,IAAEkX,wBAAyBlX,GAAEu0B,aAAa,SAAS7zB,GAAWV,GAAEsQ,MAAM5P,GAAO6V,kBAAkBvW,GAAEE,aAAaQ,GAAI8V,mBAAoBxW,IAAEE,aAAaQ,SAAWV,IAAEC,UAAUS,IAAoBxN,GAAEwlB,KAAK,SAAS7X,GAAI,MAAGA,GAAG,EAAU,EAAWA,EAAG,EAAU,EAAW,GAAI,GAAI3c,KAAK42B,IAAIja,EAAGoS,GAAGuhB,OAAoDnlB,GAAEolB,MAAM,EAAEplB,GAAE93B,UAAUyL,SAAS,WAAW,MAAOpL,MAAK03B,MAA0QvqB,GAAExN,UAAU,GAAIsG,GAAIkH,GAAEqa,KAAK,EAAEra,GAAE2vC,KAAK,GAAG3vC,GAAEgrB,KAAK,EAAEhrB,GAAE4vC,KAAK,EAAE5vC,GAAE6vC,KAAK,EAAE7vC,GAAE+nC,KAAK,GAAIrzC,OAAQsL,GAAExN,UAAUs9C,KAAK,SAASh0B,GAAIjpB,KAAK23B,KAAK1O,GAAK9b,GAAExN,UAAUu9C,aAAa,WAAW,MAAOl9C,MAAK23B,MAAOxqB,GAAExN,UAAUw9C,KAAK,WAAW,MAAOn9C,MAAKi4B,MAAO9qB,GAAExN,UAAUy9C,KAAK,WAAW,MAAOp9C,MAAK83B,MAAO3qB,GAAExN,UAAU09C,aAAa,WAAW,MAAOr9C,MAAK43B,MAAOzqB,GAAExN,UAAUy+B,QAAQ,WAAW,MAAOn4B,GAAEo4B,MAAOlxB,GAAExN,UAAUkqC,KAAK,SAASvN,EAAGrT,EAAG+T,GAAI,GAAId,GAAGjT,EAAO+S,EAAa,MAATE,EAAGpG,KAAYoG,EAAGpG,KAAKoG,EAAGrG,IAAoB,QAARxE,EAAG4e,MAAgB,QAAQ,IAAK5e,GAAG0e,KAAK,KAAM,IAAI0E,OAAM,YAAa,KAAKpjB,GAAG2e,KAAK,IAAI,GAAItoB,GAAG1nB,KAAK43B,KAAK,EAAElQ,GAAI,IAAIA,EAAsBsU,EAAXtU,EAAG2J,EAAGgP,KAAW,GAAGrD,IAAa7vB,GAAExN,UAAUw9B,KAAK,WAAWn9B,KAAKytB,KAAK,GAAIzE,GAAIhpB,KAAKytB,KAAK0P,QAAShwB,GAAExN,UAAUsiC,KAAK,SAAS7Y,GAAInjB,EAAEtG,UAAUsiC,KAAKvjC,KAAKsB,KAAKopB,GAAIppB,KAAK23B,KAAKvO,EAAG8Y,OAAOliC,KAAK43B,KAAKxO,EAAG8Y,OAAOliC,KAAK63B,KAAKzO,EAAG8Y,MAAO,IAAIjZ,GAAGG,EAAGmT,MAAOv8B,MAAKg4B,KAAK,GAAIrF,YAAqB,EAAV3yB,KAAK63B,KAAQ,KAAI,GAAInQ,GAAa,EAAV1nB,KAAK63B,KAAO,EAAEnQ,GAAI,IAAIA,EAAI1nB,KAAKg4B,KAAKtQ,GAAIuB,EAAGvB,EAA6C,IAAxC1nB,KAAK21B,KAAKvM,EAAGmT,OAAOv8B,KAAKi4B,KAAK7O,EAAGmT,OAAUnT,EAAGia,oBAAoBjvB,EAAGooB,MAA0B,GAApBx8B,KAAK83B,KAAK1O,EAAG8Y,OAAqB,GAAXliC,KAAK83B,KAAQ,CAAC,GAAkB,IAAJ,EAAV93B,KAAK83B,MAAW,CAAC,GAAIhP,GAAGM,EAAG8Y,MAAqB,OAAXliC,KAAK+3B,OAAY/3B,KAAK+3B,KAAK,GAAI74B,SAAUc,KAAK+3B,KAAKulB,KAAK1yC,SAASke,GAA4B,IAAnB9oB,KAAK83B,KAAK3qB,GAAE2vC,MAAU98C,KAAKk4B,MAAMl4B,KAAK83B,KAAK3qB,GAAE2vC,OAAO,EAAQ98C,KAAKk4B,KAAK/qB,GAAEgrB,KAAyB,IAAL,GAAVn4B,KAAK83B,QAAa93B,KAAKouB,SAAQ,QAAcpuB,MAAK83B,KAAK,GAAK3qB,GAAExN,UAAU2Z,KAAK,SAASgjB,GAAI,GAAIN,GAAG,GAAI1D,IAAGt4B,MAAU8oB,EAAG9oB,KAAK43B,KAAKvG,EAAGgP,KAASpX,EAAGjpB,KAAK0pC,MAAwJ,QAArI,MAAT1N,EAAGnG,OAAYmG,EAAGnG,KAAK,MAAMmG,EAAGnG,KAAK,GAAI7yB,cAAa8lB,GAAgB,MAATkT,EAAGlG,OAAYkG,EAAGlG,KAAK,MAAMkG,EAAGlG,KAAK7M,EAAG,GAAIjmB,cAAa8lB,GAAI,KAAYuI,EAAG4e,MAAgB,QAAQ,IAAK5e,GAAG0e,KAAK,GAAG1e,EAAG6e,KAAM,IAAI,GAAIxoB,GAAG1nB,KAAK43B,KAAK,EAAElQ,GAAI,IAAIA,EAAG,CAAC,GAAIsV,GAAGtV,GAAI,CAAE1nB,MAAKi4B,KAAK+E,EAAG,GAAG,EAAEh9B,KAAKi4B,KAAK+E,EAAG,GAAK,KAAM,KAAK3L,GAAG2e,KAAK,IAAI,GAAItoB,GAAG1nB,KAAK43B,KAAK,EAAElQ,GAAI,IAAIA,EAAG,CAAC,GAAIsV,GAAGtV,GAAI,EAAM0B,EAAG1B,EAAG2J,EAAGgP,KAASxE,EAAG77B,KAAKi4B,KAAK+E,GAAQJ,EAAG58B,KAAKi4B,KAAK+E,EAAG,EAAGhB,GAAGnG,KAAKzM,GAAIyS,EAAGG,EAAGnG,KAAKzM,EAAG,GAAGwT,EAAGZ,EAAGnG,KAAKzM,EAAG,GAAG,EAAKH,IAAI+S,EAAGlG,KAAK1M,GAAIyS,EAAGG,EAAGlG,KAAK1M,EAAG,GAAGwT,EAAGZ,EAAGlG,KAAK1M,EAAG,GAAG,IAAW,MAAO4S,IAAK7uB,GAAExN,UAAUupC,KAAK,SAASxhB,EAAGuB,GAAI,GAAIG,GAAGH,CAA8D,IAArDjpB,MAAMopB,EAAGupB,QAAU7qC,QAAQP,IAAI,qBAA0BvH,KAAKytB,KAAKyf,KAAKxlB,KAAazhB,EAAEtG,UAAUupC,KAAKxqC,KAAKsB,KAAK0nB,EAAG0B,IAAOA,EAAGmS,KAAK,IAAX,CAAuB,GAAIzS,GAAG3b,GAAE+nC,IAAKpsB,GAAG,IAAG,EAAMwE,EAAGqY,KAAKje,EAAG1nB,KAAKytB,KAAK3E,EAAG9oB,KAAK43B,KAAK53B,KAAK21B,KAAKvM,EAAGyM,KAAKxE,EAAG+O,KAAK/O,EAAGgP,QAAQlzB,GAAExN,UAAUypC,KAAK,SAAShgB,EAAGN,GAAI,IAAU9oB,MAAM8oB,EAAG6pB,QAAU7qC,QAAQP,IAAI,oBAAsB,IAAI+0B,IAAG,CAASxT,GAAGyS,KAAK,KAAIe,GAAG,EAAM,IAAIJ,GAAGpT,CAAG,KAAIwT,IAAIr2B,EAAEtG,UAAUypC,KAAK1qC,KAAKsB,KAAKopB,GAAOppB,KAAK0pC,QAAO,CAAC,GAAIzgB,GAAGjpB,KAAKwpC,qBAA2E,IAAlDtN,EAAGtH,MAAM3uB,EAAE4uB,OAAMqH,EAAGtH,KAAKxL,EAAGooB,iBAAiBvoB,IAAQiT,EAAGtH,KAAK,EAAMxM,GAAEumB,MAAMlkB,EAAE6S,KAAK,qBAAqBrU,OAAU,CAAC,GAAI+T,GAAG5T,EAAGkoB,YAAYpV,EAAGtH,MAAUlN,EAAG0B,EAAGopB,KAAKtW,EAAGtH,KAAa,OAAJoI,GAAWtV,EAAG0yB,OAAoFle,EAAG7E,MAAK,GAApF2F,EAAGqO,KAAKjiB,EAAG1B,EAAGwU,EAAGrG,KAAKqG,EAAGpG,KAAK91B,KAAK43B,KAAKvG,EAAG+O,KAAK/O,EAAGgP,MAAMnE,EAAG7E,MAAK,GAA0B6E,EAAGV,YAAY9T,EAAGiuB,oBAAsB,MAAM3Z,GAAI,KAAMA,KAAM7uB,GAAExN,UAAU6a,KAAK,SAASwhB,EAAG5S,EAAGN,GAA+D,GAArD9oB,MAAM8oB,EAAG6pB,QAAU7qC,QAAQP,IAAI,sBAAyBuhB,EAAGyS,KAAK,GAAX,CAAuB,GAAIe,GAAGxT,EAAOpB,EAAG1nB,KAAK23B,IAAQjQ,GAAG,IAAGA,EAAG,EAAG,IAAIuB,GAAGjpB,KAAKspC,WAAWlgB,EAAGkT,GAAIxT,EAAGoN,KAAKpN,EAAG0S,YAAgBU,EAAa,MAATI,EAAGxG,KAAYwG,EAAGxG,KAAKwG,EAAGzG,IAAKmG,GAAG8O,iCAAiChiB,EAAG2S,wBAAwBO,EAAGsO,KAAKtqC,KAAKouB,SAAS4N,EAAGoO,KAAK1iB,EAAG,EAAE1nB,KAAK63B,KAAK73B,KAAKg4B,KAAKkE,EAAGl8B,KAAKi4B,KAAKhP,EAAGjpB,KAAKk4B,KAAKoE,KAAMnvB,GAAExN,UAAUwhC,KAAK,WAAWr5B,QAAQP,IAAI,4CAA4CvH,KAAK23B,KAAK33B,KAAK43B,KAAK53B,KAAK63B,MAAM/vB,QAAQP,IAAI,mBAAoB,KAAI,GAAImgB,GAAG,EAAEA,EAAG1nB,KAAKg4B,KAAKjuB,OAAO2d,IAAM5f,QAAQP,IAAI,QAAQvH,KAAKg4B,KAAKtQ,GAAM5f,SAAQP,IAAI,gBAAiB,KAAI,GAAImgB,GAAG,EAAEA,EAAG1nB,KAAK21B,KAAK5rB,OAAO2d,IAAK,CAAC5f,QAAQP,IAAI,oBAAoBmgB,EAAyB,KAAI,GAArBuB,GAAGjpB,KAAK21B,KAAKjO,GAAYoB,EAAG,EAAEA,EAAGG,EAAGlf,OAAO+e,IAAMhhB,QAAQP,IAAI,UAAU0hB,EAAGH,IAAOhhB,QAAQP,IAAI,OAAQ4F,GAAExN,UAAU49C,KAAK,SAASt0B,GAAI,MAAc,OAAXjpB,KAAK+3B,KAAmB,KAAa/3B,KAAK+3B,KAAK9O,IAAM9b,GAAExN,UAAUw+B,cAAc,WAAW,MAAOn+B,MAAKg4B,MAA8GM,GAAG34B,UAAU,GAAI44B,IAAKD,GAAG34B,UAAU8J,qBAAqB,WAAW,MAAkB,OAAXzJ,KAAK81B,KAAY91B,KAAK81B,KAAK91B,KAAK61B,MAA2DxoB,GAAE1N,UAAU0oC,KAAK,SAASpf,GAAIjpB,KAAK4G,EAAEqiB,EAAGriB,EAAE5G,KAAK6G,EAAEoiB,EAAGpiB,GAAIwG,GAAE1N,UAAU0oC,KAAK,SAASpf,EAAGH,GAAI9oB,KAAK4G,EAAEqiB,EAAGjpB,KAAK6G,EAAEiiB,GAA4IrqB,GAAEkB,UAAU,GAAIynB,GAAK3oB,GAAEslB,UAAU,SAAS+E,GAAI,GAAIG,GAAG,GAAIxqB,GAAmB,OAAf2oB,GAAGwU,KAAK3S,EAAGH,GAAWG,GAAKxqB,GAAEslB,UAAU,SAAS+E,EAAGM,GAAI,GAAI1B,GAAG0B,GAAI,EAAMH,EAAG,GAAIxqB,IAAEipB,EAAmB,OAAfN,GAAGwU,KAAK3S,EAAGH,GAAWG,GAAKxqB,GAAE23C,KAAK,WAA0B,MAAR,IAAI33C,KAAgBA,GAAE43C,KAAK,SAASna,GAAI,GAAIxU,GAAG,GAAImrB,KAAI,6BAA8B,IAAgB,GAAbnrB,EAAGorB,SAAiB,KAAM,IAAIC,MAAK,wBAAwBrrB,EAAG4uB,OAAwM,KAAI,GAA/LrtB,IAAI,sCAAsC,sCAAsC,sCAAsC,uCAA2CG,EAAG3qB,GAAEslB,UAAU2D,EAAGsrB,QAAgBlqB,EAAG,EAAEA,EAAGG,EAAGlf,OAAO+e,IAAK,CAAC,GAAIwT,GAAG,GAAIuW,KAAI5pB,EAAGH,GAAK,IAAgB,GAAbwT,EAAGwW,SAAiB,KAAM,IAAIC,MAAK,wBAAwBzW,EAAGga,OAASltB,GAAGhE,WAAW0D,EAAGytB,KAAKC,KAAKta,EAAGI,EAAG0W,SAAU,MAAO5pB,IAAK3qB,GAAEkB,UAAUua,MAAM,SAAS+O,GAAIb,GAAElO,MAAM+O,IAAMxqB,GAAEkB,UAAU20C,aAAa,SAASrrB,GAAIjpB,KAAKw4B,eAAe8b,aAAarrB,IAAMxqB,GAAEkB,UAAUqR,OAAO,WAAWhR,KAAKsnB,KAAKtW,SAAShR,KAAKsnB,KAAKsiB,QAAQ5pC,KAAKw4B,iBAAkB/5B,GAAEkB,UAAU6a,KAAK,WAAWxa,KAAKsnB,KAAK9M,KAAKxa,KAAKw4B,iBAAkB/5B,GAAEkB,UAAU69B,KAAK,WAAWx9B,KAAKw4B,eAAegF,QAAS/+B,GAAEkB,UAAUylB,WAAW,SAAS0D,EAAGG,GAA4B,MAArBjpB,KAAKw4B,gBAAsB/N,EAAE6S,KAAK,2CAA4Ct9B,KAAKw4B,eAAepT,WAAW0D,EAAGG,IAAMxqB,GAAEkB,UAAUylB,WAAW,SAAS0D,EAAGG,GAA4B,MAArBjpB,KAAKw4B,gBAAsB/N,EAAE6S,KAAK,2CAA4Ct9B,KAAKw4B,eAAepT,WAAW0D,EAAGG,IAAMxqB,GAAEkB,UAAU09B,KAAK,WAAW,MAAOr9B,MAAKw4B,eAAe6E,QAAS5+B,GAAEkB,UAAU49B,KAAK,SAAStU,GAAIjpB,KAAKw4B,eAAe+E,KAAKtU,IAAMxqB,GAAEkB,UAAUo9B,aAAa,WAAW,MAAO/8B,MAAKw4B,gBAAiB/5B,GAAEkB,UAAU6N,UAAU,SAASyb,GAAIjpB,KAAKw4B,eAAehrB,UAAUyb,IAAMxqB,GAAEkB,UAAU6qC,sBAAsB,SAASvhB,GAAIjpB,KAAKw4B,eAAegS,sBAAsBvhB,IAAMxqB,GAAEkB,UAAUwkB,qBAAqB,WAAW,MAAOnkB,MAAKw4B,eAAerU,wBAAyB1lB,GAAEkB,UAAU8qC,cAAc,SAASxhB,GAAIjpB,KAAKw4B,eAAeiS,cAAcxhB,IAAMxqB,GAAEkB,UAAU+qC,cAAc,WAAW,MAAO1qC,MAAKw4B,eAAekS,iBAAyG/R,GAAEh5B,UAAU69C,KAAK,WAAW,MAAOx9C,MAAKsB,SAAUq3B,GAAEh5B,UAAU4P,YAAY,SAASmY,EAAGoB,GAAuD,IAAI,GAAvCwT,GAAG,KAASrT,EAAGjpB,KAAKsB,QAAQyI,OAAeqf,EAAG,EAAEA,EAAGH,IAAKG,EAA+B,OAA3BkT,EAAGt8B,KAAKsB,QAAQ8nB,MAA2BkT,EAAGmhB,KAAKnhB,EAAGxD,KAAK2H,cAAiBzgC,KAAK44B,MAAMnO,EAAE4W,KAAK,sEAAsEpY,EAAGqT,EAAGnD,MAAQ,IAAO,MAAJzR,EAAU,OAAQ,CAAG4U,GAAG,GAAIzD,IAAIyD,EAAGxD,KAAKpR,EAAG1nB,KAAKsB,QAAQsK,KAAK0wB,EAAI,IAAIN,GAAGM,EAAGnD,IAAmG,OAA3Fn5B,MAAK44B,MAAMnO,EAAE4W,KAAK,iEAAiEpY,EAAG+S,GAAYA,GAAKrD,GAAEh5B,UAAU+M,YAAY,SAASgb,GAAI,IAAiB,IAAI,GAAboB,IAAG,EAAcM,EAAG,EAAEA,EAAGppB,KAAKsB,QAAQyI,OAAOqf,IAAK,CAAC,GAAIkT,GAAGt8B,KAAKsB,QAAQ8nB,EAAI,IAAO,MAAJkT,EAAH,CAAsD,GAAIrT,GAAGqT,EAAGxD,IAAY,OAAJ7P,GAAgEA,EAAGvc,YAAYgb,EAAG4U,GAAIxT,GAAG,EAAQwT,EAAGjtB,eAAiBrP,KAAK44B,MAAMnO,EAAE4W,KAAK,kEAAkErhC,KAAKsB,QAAQyI,OAAO,EAAEuyB,EAAGnD,MAAOn5B,KAAKsB,QAAQke,OAAO4J,EAAG,GAAGA,OAAzPppB,KAAKsB,QAAQtB,KAAKsB,QAAQke,OAAO4J,EAAG,GAAGA,SAA5GppB,MAAKsB,QAAQke,OAAO4J,EAAG,GAAGA,IAAiT,MAAON,GAAI,MAAMoT,GAAe,MAAXzR,GAAE6S,KAAKpB,IAAW,IAAQvD,GAAEh5B,UAAU0P,WAAW,SAAS+Z,GAAI,GAAGgU,UAAUrzB,QAAQ,EAAE,CAAC,IAAI,GAAI+e,GAAG,EAAEA,EAAG9oB,KAAKsB,QAAQyI,OAAO+e,IAAK,CAAC,GAAIpB,GAAG1nB,KAAKsB,QAAQwnB,EAAI,IAAO,MAAJpB,IAAuBA,EAAGyR,MAAM/P,IAAK1B,EAAGrY,cAAc,OAAO,EAAQ,OAAO,EAAW,IAAI,GAAIyZ,GAAG,EAAEA,EAAG9oB,KAAKsB,QAAQyI,OAAO+e,IAAK,CAAC,GAAIpB,GAAG1nB,KAAKsB,QAAQwnB,EAAI,IAAO,MAAJpB,EAAH,CAAqE,GAAO,MAAfA,EAAGoR,MAA2D,IAAIpR,EAAGrY,aAAc,OAAO,MAArErP,MAAKsB,QAAQke,OAAOsJ,EAAG,GAAGA,QAA/F9oB,MAAKsB,QAAQke,OAAOsJ,EAAG,GAAGA,IAAwH,OAAO,GAAQ6P,GAAEh5B,UAAUiiB,eAAe,WAAW,IAAI,GAAIkH,GAAG,EAAEA,EAAG9oB,KAAKsB,QAAQyI,OAAO+e,IAAK,CAAC,GAAIpB,GAAG1nB,KAAKsB,QAAQwnB,EAAI,IAAO,MAAJpB,EAAH,CAA6DA,EAAGoR,IAAoE94B,MAAKsB,QAAQke,OAAOsJ,EAAG,GAAGA,QAAjJ9oB,MAAKsB,QAAQke,OAAOsJ,EAAG,GAAGA,MAAgI6P,GAAEh5B,UAAU+9C,KAAK,SAASz0B,GAAIjpB,KAAK44B,KAAK3P,GAAK0P,GAAEh5B,UAAU6jC,IAAI,WAAW17B,QAAQP,IAAI,cAAe,KAAI,GAAI0hB,GAAG,EAAEA,EAAGjpB,KAAKsB,QAAQyI,OAAOkf,IAAK,CAAC,GAAIH,GAAG9oB,KAAKsB,QAAQ2nB,GAAQvB,EAAGoB,EAAGgQ,IAAKhxB,SAAQP,IAAI,6BAA6BvH,KAAKsB,QAAQyI,OAAO2d,EAAGtc,cAAoJytB,GAAEO,KAAK,EAAEP,GAAEl5B,UAAU0P,WAAW,WAAW,MAAOrP,MAAK+4B,MAAOF,GAAEl5B,UAAU89C,KAAK,SAAS/1B,GAAI,GAAIoB,GAAGkG,EAAElrB,kBAAsBmlB,EAAGH,EAAGpB,GAAM1nB,KAAKk5B,KAAK,GAAGjQ,EAAGjpB,KAAKk5B,QAAMl5B,KAAKk5B,KAAKjQ,IAAM4P,GAAEl5B,UAAUg+C,KAAK,WAAW,MAAO39C,MAAKm5B,MAA0DE,GAAG15B,UAAU0Y,WAAW,SAASyQ,GAAI,GAAIG,GAAGjpB,KAAKrB,CAAEmqB,GAAGnN,UAAUsN,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,KAAMoQ,GAAG15B,UAAUyL,SAAS,WAAmC,IAAI,GAAxB0d,GAAG,iBAAyBG,EAAG,EAAEA,EAAG,EAAEA,IAAMH,GAAI9oB,KAAKrB,EAAEsqB,GAAIixB,QAAQ,GAAG,IAAe,OAATpxB,IAAI,MAAiBuQ,GAAG15B,UAAUsD,SAAS,WAAW,GAAIgmB,GAAGjpB,KAAKrB,CAAEsqB,GAAG,GAAGA,EAAG,GAAGA,EAAG,GAAG,EAAEA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAG,GAAIoQ,GAAG15B,UAAUk5C,KAAK,SAAS/vB,EAAGM,EAAG1B,GAAW,MAAJA,IAAUA,EAAG,GAAI7lB,OAAM,EAAE,GAAI,IAAIonB,GAAGjpB,KAAKrB,CAA8D,OAA5D+oB,GAAG,GAAGuB,EAAG,GAAGH,EAAGG,EAAG,GAAGG,EAAGH,EAAG,GAAGvB,EAAG,GAAGuB,EAAG,GAAGH,EAAGG,EAAG,GAAGG,EAAGH,EAAG,GAAUvB,GAAK2R,GAAG15B,UAAUk6C,KAAK,SAASzwB,GAAQA,IAAIA,EAAG,GAAIiQ,IAAM,IAAIvQ,GAAG9oB,KAAKrB,EAAM+9B,EAAG5T,EAAG,GAAOmT,EAAGnT,EAAG,GAAO6U,EAAG7U,EAAG,GAAO+S,EAAG/S,EAAG,GAAO8T,EAAG9T,EAAG,GAAOkU,EAAGlU,EAAG,GAAOkT,EAAGlT,EAAG,GAAOoT,EAAGpT,EAAG,GAAOwT,EAAGxT,EAAG,GAAOpB,EAAGgV,EAAGE,EAAGN,EAAGL,EAAGe,EAAGhB,EAAG2B,EAAG9B,EAAGK,EAAGQ,EAAGM,EAAGd,EAAGyB,EAAGf,EAAGZ,EAAGC,EAAGJ,EAAGS,CAAG,IAAO,GAAJ5U,EAAO,MAAO,KAAW,IAAIuB,GAAG,EAAEvB,CAAoO,OAAjO0B,GAAGzqB,EAAE,GAAGsqB,GAAI2T,EAAGN,EAAGJ,EAAGc,GAAI5T,EAAGzqB,EAAE,GAAGsqB,GAAIiT,EAAGyB,EAAG1B,EAAGK,GAAIlT,EAAGzqB,EAAE,GAAGsqB,GAAIgT,EAAGe,EAAGJ,EAAGe,GAAIvU,EAAGzqB,EAAE,GAAGsqB,GAAI+S,EAAGgB,EAAGnB,EAAGS,GAAIlT,EAAGzqB,EAAE,GAAGsqB,GAAIyT,EAAGJ,EAAGN,EAAG2B,GAAIvU,EAAGzqB,EAAE,GAAGsqB,GAAI4S,EAAG8B,EAAGjB,EAAGM,GAAI5T,EAAGzqB,EAAE,GAAGsqB,GAAI4S,EAAGK,EAAGF,EAAGY,GAAIxT,EAAGzqB,EAAE,GAAGsqB,GAAI+S,EAAGC,EAAGS,EAAGR,GAAI9S,EAAGzqB,EAAE,GAAGsqB,GAAIyT,EAAGE,EAAGf,EAAGI,GAAW7S,GAAMiQ,GAAG15B,UAAUgc,UAAU,SAASmN,EAAGM,EAAG1B,GAAW,MAAJA,IAAUA,EAAG,GAAI7lB,OAAM,EAAE,GAAI,IAAIonB,GAAGjpB,KAAKrB,CAA8D,OAA5D+oB,GAAG,GAAGuB,EAAG,GAAGH,EAAGG,EAAG,GAAGG,EAAGH,EAAG,GAAGvB,EAAG,GAAGuB,EAAG,GAAGH,EAAGG,EAAG,GAAGG,EAAGH,EAAG,GAAUvB,GAAK2R,GAAG15B,UAAUuO,UAAU,SAAS4a,EAAGpB,GAAI,GAAIuB,GAAGjpB,KAAKrB,CAAEsqB,GAAG,GAAGA,EAAG,GAAGH,EAAGG,EAAG,GAAGvB,EAAGuB,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGH,EAAGG,EAAG,GAAGvB,EAAGuB,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGH,EAAGG,EAAG,GAAGvB,EAAGuB,EAAG,IAAKoQ,GAAG15B,UAAU6O,MAAM,SAASkZ,EAAGoB,GAAI,GAAIG,GAAGjpB,KAAKrB,CAAEsqB,GAAG,IAAIvB,EAAGuB,EAAG,IAAIvB,EAAGuB,EAAG,IAAIvB,EAAGuB,EAAG,IAAIH,EAAGG,EAAG,IAAIH,EAAGG,EAAG,IAAIH,GAAKuQ,GAAG15B,UAAUq5C,MAAM,SAAS9c,EAAGI,GAAI,GAAIrT,GAAGjpB,KAAKrB,EAAMyqB,EAAGH,EAAG,GAAGA,EAAG,GAAGqT,EAAO5U,EAAGuB,EAAG,GAAGA,EAAG,GAAGqT,EAAOxT,EAAGG,EAAG,GAAGA,EAAG,GAAGqT,CAAGrT,GAAG,GAAGA,EAAG,GAAGiT,EAAGjT,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGiT,EAAGjT,EAAG,GAAGA,EAAG,GAAGA,EAAG,GAAGiT,EAAGjT,EAAG,GAAGA,EAAG,GAAGG,EAAGH,EAAG,GAAGvB,EAAGuB,EAAG,GAAGH,GAAKuQ,GAAG15B,UAAUo5C,OAAO,SAAS7c,GAAI,GAAIjT,GAAGjpB,KAAKrB,EAAMq9B,EAAG1vB,KAAK42B,IAAIhH,GAAQI,EAAGhwB,KAAKgW,IAAI4Z,GAAQ9S,EAAGH,EAAG,GAAG+S,EAAG/S,EAAG,GAAGqT,EAAO5U,EAAGuB,EAAG,GAAG+S,EAAG/S,EAAG,GAAGqT,EAAOxT,EAAGG,EAAG,GAAG+S,EAAG/S,EAAG,GAAGqT,CAAGrT,GAAG,IAAIA,EAAG,GAAGqT,EAAGrT,EAAG,GAAG+S,EAAG/S,EAAG,IAAIA,EAAG,GAAGqT,EAAGrT,EAAG,GAAG+S,EAAG/S,EAAG,IAAIA,EAAG,GAAGqT,EAAGrT,EAAG,GAAG+S,EAAG/S,EAAG,GAAGG,EAAGH,EAAG,GAAGvB,EAAGuB,EAAG,GAAGH,GAAKuQ,GAAG15B,UAAUi+C,YAAY,SAASthB,GAAI,GAAIU,GAAGh9B,KAAKrB,EAAMu9B,EAAGI,EAAG39B,EAAMs9B,EAAGe,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOyB,EAAGX,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOL,EAAGmB,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOU,EAAGI,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOF,EAAGgB,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAO9S,EAAG4T,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOxU,EAAGsV,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOpT,EAAGkU,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAOjT,EAAG+T,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,GAAGc,EAAG,GAAGd,EAAG,EAAGv9B,GAAE,GAAGs9B,EAAGt9B,EAAE,GAAGg/B,EAAGh/B,EAAE,GAAGk9B,EAAGl9B,EAAE,GAAGi+B,EAAGj+B,EAAE,GAAGq9B,EAAGr9B,EAAE,GAAGyqB,EAAGzqB,EAAE,GAAG+oB,EAAG/oB,EAAE,GAAGmqB,EAAGnqB,EAAE,GAAGsqB,GAA0E1pB,GAAEI,UAAU,GAAImrB,IAAKvrB,GAAEs+C,KAAK,KAAKt+C,GAAEuiC,KAAK,GAAI5iC,QAASK,GAAEoqC,KAAK,WAAwD,MAAlC,OAARpqC,GAAEs+C,OAAYt+C,GAAEs+C,KAAKt+C,GAAE4T,MAAM,aAAoB5T,GAAEs+C,MAAOt+C,GAAEwiC,KAAK,WAAWxiC,GAAEuiC,KAAK/mB,QAAQxb,GAAEs+C,KAAK,MAAOt+C,GAAE4T,MAAM,SAAS8V,GAAI,GAAIH,GAAGvpB,GAAEuiC,KAAK7Y,EAA6C,OAAlC,OAAJH,IAAUA,EAAG,GAAIvpB,IAAE0pB,GAAI1pB,GAAEuiC,KAAK7Y,GAAIH,GAAWA,GAAKvpB,GAAEI,UAAUqiC,KAAK,WAAW,MAAO,IAAIziC,KAAqXk5B,GAAE94B,UAAU,GAAIwU,GAAKskB,GAAEpE,KAAK,SAASpL,GAAgC,MAArB,IAAIjmB,cAAaimB,IAAgBwP,GAAEjE,KAAK,SAASvL,GAA8B,MAAnB,IAAI0J,YAAW1J,IAAgBwP,GAAEsb,KAAK,SAASjrB,EAAGG,GAA2H,MAAhH,OAAJH,GAAUA,EAAGkrB,OAAO/qB,EAAGlf,QAAQ+e,EAAG2P,GAAEpE,KAAe,EAAVpL,EAAGlf,QAAU+e,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,KAASprB,EAAG/N,QAAQ+N,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,IAAWprB,GAAK2P,GAAE0b,KAAK,SAASrrB,EAAGG,GAA2H,MAAhH,OAAJH,GAAUA,EAAGkrB,OAAO/qB,EAAGlf,QAAQ+e,EAAG2P,GAAEjE,KAAe,EAAVvL,EAAGlf,QAAU+e,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,KAASprB,EAAG/N,QAAQ+N,EAAGmrB,IAAIhrB,GAAIH,EAAGorB,KAAK,IAAWprB,GAAK2P,GAAE2b,KAAK,WAAW,MAAOp0C,MAAK25B,MAAOlB,GAAE4b,KAAK,SAASprB,GAAIjpB,KAAK25B,KAAK1Q,GAAKwP,GAAE94B,UAAU+4B,MAAM,WAAW,MAAO14B,MAAK+Z,IAAK0e,GAAE94B,UAAUua,MAAM,SAAS+O,GAAIjpB,KAAK+Z,GAAGkP,GAAKwP,GAAE94B,UAAU20C,aAAa,SAASrrB,GAAIjpB,KAAK2b,UAAUsN,GAAKwP,GAAE94B,UAAUwqC,KAAK,WAAW,GAAIlhB,GAAGjpB,KAAK+Z,EAAM/Z,MAAKw5B,YAAWx5B,KAAK89C,aAAa99C,KAAKw5B,WAAU,EAAMx5B,KAAKy5B,cAAcxQ,EAAG80B,aAAa,mCAAmC90B,EAAG80B,aAAa,0CAA0C90B,EAAG80B,aAAa,sCAAyC/9C,KAAKy5B,gBAAez5B,KAAK05B,cAAczQ,EAAGmW,aAAap/B,KAAKy5B,cAAcukB,kCAAkC/0B,EAAGg1B,QAAQh1B,EAAGi1B,cAAcj1B,EAAGg1B,QAAQh1B,EAAGk1B,cAAcl1B,EAAGg1B,QAAQh1B,EAAGm1B,YAAYn1B,EAAGo1B,UAAUp1B,EAAGq1B,IAAIr1B,EAAGs1B,OAAOt1B,EAAGu1B,OAAOv1B,EAAGw1B,UAAU,EAAE,EAAE,EAAE,GAAGx1B,EAAGiR,WAAWjR,EAAGkR,aAAa,MAAMlR,EAAGiR,WAAWjR,EAAGsR,qBAAqB,OAAQ9B,GAAE94B,UAAUyqC,KAAK,SAASnO,EAAGS,EAAGJ,EAAGR,EAAGiC,EAAG/B,EAAGE,EAAGc,GAAI,KAAGhB,EAAG,KAAuC,MAAjCh8B,KAAKyuB,4BAAjB,CAA2D,GAA+BmP,IAAxB5B,EAAG,IAAI5T,GAAEmsB,SAAkBv0C,KAAK+Z,GAAG,IAAY,MAAT/Z,KAAK+Z,GAAU,KAAM,IAAI06B,OAAM,aAAe,IAAqD3W,GAAxB,EAA2B99B,KAAKiuB,KAAQ+N,EAAOsE,EAAtC,EAAyCtgC,KAAKkuB,KAAQ8N,EAAOgE,EAApD,EAAuDhgC,KAAKmuB,KAAQ6N,EAAOsJ,EAAGtlC,KAAKguB,KAAKgO,CAAG,IAAoC,MAAjCh8B,KAAKyuB,2BAAiC,CAACmP,EAAGygB,UAAUzgB,EAAG8gB,KAAK9gB,EAAG+gB,WAAW3+C,KAAK4+C,eAAe5+C,KAAKs0B,KAAK0F,GAAE4D,EAAG59B,KAAKs0B,KAAKwH,GAAI97B,KAAKu0B,KAAK+F,GAAEsD,EAAG59B,KAAKu0B,KAAK+H,GAAIsB,EAAGihB,wBAAwB7+C,KAAK8+C,gBAAgBlhB,EAAGmhB,oBAAoB/+C,KAAK8+C,eAAe,EAAElhB,EAAGohB,OAAM,EAAM,EAAE,GAAGh/C,KAAKo0B,KAAK4F,GAAE4D,EAAG59B,KAAKo0B,KAAK2J,GAAIH,EAAGrZ,cAAcqZ,EAAGqhB,UAAUrhB,EAAGnZ,YAAYmZ,EAAGlZ,WAAW1kB,KAAKs5B,SAAS2C,IAAK2B,EAAGshB,UAAUl/C,KAAKm/C,eAAe,GAAGvhB,EAAGihB,wBAAwB7+C,KAAKo/C,gBAAgBxhB,EAAGmhB,oBAAoB/+C,KAAKo/C,eAAe,EAAExhB,EAAGohB,OAAM,EAAM,EAAE,GAAGphB,EAAGyhB,iBAAiBr/C,KAAKs/C,cAAa,EAAMt/C,KAAK6qC,gCAAgCjhB,cAAe,IAAIiU,GAAG79B,KAAK6qC,gCAAgCphB,gBAAoByW,EAAGlgC,KAAKkqC,sBAAsBrM,EAAID,GAAG2hB,UAAUv/C,KAAKw/C,cAActf,EAAGnX,EAAEmX,EAAGlX,EAAEkX,EAAG/yB,EAAE+yB,EAAGj6B,EAAG,IAAI6iB,GAAG9oB,KAAK6qC,gCAAgCnhB,YAAakU,GAAG2hB,UAAUv/C,KAAKy/C,gBAAqB,EAAL32B,EAAGliB,EAAI,EAAO,EAALkiB,EAAGjiB,EAAI,EAAY,EAAViiB,EAAG8Y,OAAS,EAAY,EAAV9Y,EAAG+Y,OAAS,GAAGjE,EAAGshB,UAAUl/C,KAAK0/C,gBAAe,OAA0D,IAAL,MAAtC1/C,KAAK+qC,gCAA4C,CAACnN,EAAG+gB,WAAW3+C,KAAK2/C,kBAAkB3/C,KAAKs0B,KAAK0F,GAAE4D,EAAG59B,KAAKs0B,KAAKwH,GAAI97B,KAAKu0B,KAAK+F,GAAEsD,EAAG59B,KAAKu0B,KAAK+H,GAAIsB,EAAGihB,wBAAwB7+C,KAAK4/C,oBAAoBhiB,EAAGmhB,oBAAoB/+C,KAAK4/C,mBAAmB,EAAEhiB,EAAGohB,OAAM,EAAM,EAAE,GAAGh/C,KAAKo0B,KAAK4F,GAAE4D,EAAG59B,KAAKo0B,KAAK2J,GAAIH,EAAGrZ,cAAcqZ,EAAGqhB,UAAUrhB,EAAGnZ,YAAYmZ,EAAGlZ,WAAW1kB,KAAKs5B,SAAS2C,IAAK2B,EAAGshB,UAAUl/C,KAAK6/C,mBAAmB,GAAGjiB,EAAGihB,wBAAwB7+C,KAAK8/C,oBAAoBliB,EAAGmhB,oBAAoB/+C,KAAK8/C,mBAAmB,EAAEliB,EAAGohB,OAAM,EAAM,EAAE,GAAGphB,EAAGyhB,iBAAiBr/C,KAAK+/C,sBAAqB,EAAM//C,KAAK+qC,gCAAgClhB,eAAe+T,EAAGyhB,iBAAiBr/C,KAAKggD,kBAAiB,EAAMhgD,KAAKquB,WAAWuP,EAAGrZ,cAAcqZ,EAAGqiB,UAAUriB,EAAGnZ,YAAYmZ,EAAGlZ,WAAW0D,GAAEqzB,SAASz7C,KAAKu5B,OAAOqE,EAAGshB,UAAUl/C,KAAKkgD,mBAAmB,EAAG,IAAIriB,GAAG79B,KAAK+qC,gCAAgCthB,gBAAoByW,EAAGlgC,KAAKkqC,sBAAsBrM,EAAID,GAAG2hB,UAAUv/C,KAAKmgD,sBAAsBjgB,EAAGnX,EAAEmX,EAAGlX,EAAEkX,EAAG/yB,EAAE+yB,EAAGj6B,GAAG23B,EAAG2hB,UAAUv/C,KAAKogD,oBAAoBtiB,EAAGwC,EAAGN,EAAGsF,OAAU1H,GAAG+gB,WAAW3+C,KAAK4+C,eAAe5+C,KAAKs0B,KAAK0F,GAAE4D,EAAG59B,KAAKs0B,KAAKwH,GAAI97B,KAAKu0B,KAAK+F,GAAEsD,EAAG59B,KAAKu0B,KAAK+H,GAAIsB,EAAGihB,wBAAwB7+C,KAAK8+C,gBAAgBlhB,EAAGmhB,oBAAoB/+C,KAAK8+C,eAAe,EAAElhB,EAAGohB,OAAM,EAAM,EAAE,GAAGh/C,KAAKo0B,KAAK4F,GAAE4D,EAAG59B,KAAKo0B,KAAK2J,GAAIH,EAAGrZ,cAAcqZ,EAAGqhB,UAAUrhB,EAAGnZ,YAAYmZ,EAAGlZ,WAAW1kB,KAAKs5B,SAAS2C,IAAK2B,EAAGshB,UAAUl/C,KAAKm/C,eAAe,GAAGvhB,EAAGihB,wBAAwB7+C,KAAKo/C,gBAAgBxhB,EAAGmhB,oBAAoB/+C,KAAKo/C,eAAe,EAAExhB,EAAGohB,OAAM,EAAM,EAAE,GAAGphB,EAAGyhB,iBAAiBr/C,KAAKs/C,cAAa,EAAMt/C,KAAKquB,WAAWuP,EAAG2hB,UAAUv/C,KAAKy/C,gBAAgB3hB,EAAGwC,EAAGN,EAAGsF,GAAI1H,EAAGshB,UAAUl/C,KAAK0/C,gBAAe,EAAY1/C,MAAKouB,QAASpuB,KAAK+Z,GAAGwkC,OAAO3gB,EAAGyiB,WAAiBrgD,KAAK+Z,GAAGkkC,QAAQrgB,EAAGyiB,WAAYrgD,KAAK+Z,GAAGwkC,OAAO3gB,EAAG4gB,MAAO,IAAIze,GAAOH,EAAOjC,EAAOvU,CAAG,IAAoC,MAAjCppB,KAAKyuB,2BAAkCsR,EAAGnC,EAAG0iB,IAAI1gB,EAAGhC,EAAG2iB,oBAAoB5iB,EAAGC,EAAG0iB,IAAIl3B,EAAGwU,EAAG2iB,wBAA0B,QAAOrkB,GAAI,IAAK/uB,IAAEgrB,KAAK4H,EAAGnC,EAAG0iB,IAAI1gB,EAAGhC,EAAG2iB,oBAAoB5iB,EAAGC,EAAG0iB,IAAIl3B,EAAGwU,EAAG2iB,mBAAoB,MAAM,KAAKpzC,IAAE4vC,KAAKhd,EAAGnC,EAAG0iB,IAAI1gB,EAAGhC,EAAG0iB,IAAI3iB,EAAGC,EAAG4iB,KAAKp3B,EAAGwU,EAAG0iB,GAAI,MAAM,KAAKnzC,IAAE6vC,KAAKjd,EAAGnC,EAAG6iB,UAAU7gB,EAAGhC,EAAG2iB,oBAAoB5iB,EAAGC,EAAG4iB,KAAKp3B,EAAGwU,EAAG0iB,IAAY1iB,EAAG8iB,sBAAsB9iB,EAAG+iB,SAAS/iB,EAAG+iB,UAAU/iB,EAAGgjB,kBAAkB7gB,EAAGH,EAAGjC,EAAGvU,GAAOppB,KAAKy5B,eAAemE,EAAG9Y,cAAc8Y,EAAGlZ,WAAW1kB,KAAKy5B,cAAconB,2BAA2B7gD,KAAK05B,cAAgB,IAAIhS,GAAG4U,EAAGvyB,MAAO6zB,GAAG4W,aAAa5W,EAAGkjB,UAAUp5B,EAAGkW,EAAGmjB,eAAe,GAAGnjB,EAAGnZ,YAAYmZ,EAAGlZ,WAAW,QAAsU+T,GAAE94B,UAAU09B,KAAK,WAAW,KAAM,IAAIoX,OAAM,SAAUhc,GAAE94B,UAAU49B,KAAK,SAAStU,GAAI,KAAM,IAAIwrB,OAAM,SAAUhc,GAAE94B,UAAU69B,KAAK,WAAW,IAAI,GAAIvU,GAAG,EAAEA,EAAGjpB,KAAKs5B,SAASvvB,OAAOkf,IAAK,CAAiC,GAAzBjpB,KAAKs5B,SAASrQ,KAAcjpB,KAAK+Z,GAAGyjB,KAAK,EAAEx9B,KAAKs5B,SAASrQ,GAAIjpB,KAAKs5B,SAASrQ,GAAI,QAASwP,GAAE94B,UAAUylB,WAAW,SAAS6D,EAAGH,GAAI9oB,KAAKs5B,SAASrQ,GAAIH,GAAK2P,GAAE94B,UAAUm+C,WAAW,WAAW,GAAI70B,GAAGjpB,KAAK+Z,EAAG/Z,MAAKghD,eAAehhD,KAAK8+C,eAAe71B,EAAGg4B,kBAAkBjhD,KAAK4+C,cAAc,cAAc5+C,KAAKo/C,eAAen2B,EAAGg4B,kBAAkBjhD,KAAK4+C,cAAc,cAAc5+C,KAAKs/C,aAAar2B,EAAGi4B,mBAAmBlhD,KAAK4+C,cAAc,eAAe5+C,KAAKm/C,eAAel2B,EAAGi4B,mBAAmBlhD,KAAK4+C,cAAc,cAAc5+C,KAAKw/C,cAAcv2B,EAAGi4B,mBAAmBlhD,KAAK4+C,cAAc,iBAAiB5+C,KAAKy/C,gBAAgBx2B,EAAGi4B,mBAAmBlhD,KAAK4+C,cAAc,eAAe5+C,KAAK0/C,eAAez2B,EAAGi4B,mBAAmBlhD,KAAK4+C,cAAc,cAAc5+C,KAAK4/C,mBAAmB32B,EAAGg4B,kBAAkBjhD,KAAK2/C,iBAAiB,cAAc3/C,KAAK8/C,mBAAmB72B,EAAGg4B,kBAAkBjhD,KAAK2/C,iBAAiB,cAAc3/C,KAAKggD,iBAAiB/2B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,eAAe3/C,KAAK+/C,qBAAqB92B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,gBAAgB3/C,KAAK6/C,mBAAmB52B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,cAAc3/C,KAAKkgD,mBAAmBj3B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,cAAc3/C,KAAKmgD,sBAAsBl3B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,iBAAiB3/C,KAAKogD,oBAAoBn3B,EAAGi4B,mBAAmBlhD,KAAK2/C,iBAAiB,gBAAiBlnB,GAAE94B,UAAUwhD,cAAc,WAAW,GAAIl4B,GAAGjpB,KAAK+Z,EAAM/Z,MAAK4+C,gBAAe31B,EAAGm4B,cAAcphD,KAAK4+C,eAAe5+C,KAAK4+C,cAAc,MAAS5+C,KAAK2/C,mBAAkB12B,EAAGm4B,cAAcphD,KAAK2/C,kBAAkB3/C,KAAK2/C,iBAAiB,OAAQlnB,GAAE94B,UAAU0hD,cAAc,SAAS35B,EAAGsU,GAAI,GAAIE,GAAGl8B,KAAK+Z,GAAcuiB,EAAGN,EAAO5S,EAAG8S,EAAGolB,aAAa55B,EAAI,IAAO,MAAJ0B,EAA0C,MAAhCqB,GAAE4W,KAAK,yBAAgC,IAAqG,IAA/FnF,EAAGqlB,aAAan4B,EAAGkT,GAAIJ,EAAGmlB,cAAcj4B,IAAW8S,EAAGslB,mBAAmBp4B,EAAG8S,EAAGulB,gBAAuB,CAAC,GAAI34B,GAAGoT,EAAGwlB,iBAAiBt4B,EAA+D,OAA3DqB,GAAE4W,KAAK,4BAA4BvY,GAAIoT,EAAGylB,aAAav4B,GAAW,KAAM,MAAOA,IAAKqP,GAAE94B,UAAUqhD,aAAa,WAAW,GAAIhlB,GAAGh8B,KAAK+Z,EAAyC,IAAtC/Z,KAAK4+C,cAAc5iB,EAAG4lB,iBAAoB5hD,KAAK4+C,cAAe,OAAO,CAAgD,IAAzC5+C,KAAK2/C,iBAAiB3jB,EAAG4lB,iBAAoB5hD,KAAK2/C,iBAAkB,OAAO,CAAq3D,IAAxD3/C,KAAK45B,WAAW55B,KAAKqhD,cAAcrlB,EAAG6lB,cAAr1D,wRAA22D7hD,KAAK45B,WAAkD,MAAtCnP,GAAE4W,KAAK,gCAAsC,CAAkE,IAA3DrhC,KAAK85B,cAAc95B,KAAKqhD,cAAcrlB,EAAG6lB,cAAp/B,0TAA0gC7hD,KAAK85B,cAAwD,MAAzCrP,GAAE4W,KAAK,mCAAyC,CAAiE,IAA1DrhC,KAAK65B,WAAW75B,KAAKqhD,cAAcrlB,EAAG8lB,gBAAn0D,msBAA21D9hD,KAAK65B,WAAoD,MAAxCpP,GAAE4W,KAAK,kCAAwC,CAAoE,IAA7DrhC,KAAK+5B,cAAc/5B,KAAKqhD,cAAcrlB,EAAG8lB,gBAAp8B,6gBAA49B9hD,KAAK+5B,cAA0D,MAA3CtP,GAAE4W,KAAK,qCAA2C,CAA6W,IAAtWrF,EAAG+lB,aAAa/hD,KAAK4+C,cAAc5+C,KAAK45B,YAAYoC,EAAG+lB,aAAa/hD,KAAK4+C,cAAc5+C,KAAK65B,YAAYmC,EAAG+lB,aAAa/hD,KAAK2/C,iBAAiB3/C,KAAK85B,eAAekC,EAAG+lB,aAAa/hD,KAAK2/C,iBAAiB3/C,KAAK+5B,eAAeiC,EAAGgmB,YAAYhiD,KAAK4+C,eAAe5iB,EAAGgmB,YAAYhiD,KAAK2/C,mBAAyB3jB,EAAGimB,oBAAoBjiD,KAAK4+C,cAAc5iB,EAAGkmB,aAAoB,CAAC,GAAIp5B,GAAGkT,EAAGmmB,kBAAkBniD,KAAK4+C,cAAkhB,OAAngBn0B,GAAE4W,KAAK,yBAAyBvY,GAAO9oB,KAAK45B,aAAYoC,EAAG2lB,aAAa3hD,KAAK45B,YAAY55B,KAAK45B,WAAW,GAAM55B,KAAK65B,aAAYmC,EAAG2lB,aAAa3hD,KAAK65B,YAAY75B,KAAK65B,WAAW,GAAM75B,KAAK4+C,gBAAe5iB,EAAGolB,cAAcphD,KAAK4+C,eAAe5+C,KAAK4+C,cAAc,GAAM5+C,KAAK85B,gBAAekC,EAAG2lB,aAAa3hD,KAAK85B,eAAe95B,KAAK85B,cAAc,GAAM95B,KAAK+5B,gBAAeiC,EAAG2lB,aAAa3hD,KAAK+5B,eAAe/5B,KAAK+5B,cAAc,GAAM/5B,KAAK2/C,mBAAkB3jB,EAAGolB,cAAcphD,KAAK2/C,kBAAkB3/C,KAAK2/C,iBAAiB,IAAU,EAAO,OAAO,GAAOlnB,GAAE94B,UAAUs/B,kBAAkB,WAAW,GAAI3C,GAAGt8B,KAAK+Z,GAAOqP,EAAGhB,GAAEkX,uBAA2B5X,EAAG4U,EAAG2C,mBAAoB3C,GAAGkD,gBAAgBlD,EAAGmD,YAAY/X,EAAI,IAAIuB,GAAGqT,EAAG8lB,oBAAqB9lB,GAAG+lB,iBAAiB/lB,EAAGgmB,aAAar5B,GAAIqT,EAAGimB,oBAAoBjmB,EAAGgmB,aAAahmB,EAAGkmB,MAAMp5B,EAAGA,GAAIkT,EAAGmmB,wBAAwBnmB,EAAGmD,YAAYnD,EAAGomB,kBAAkBpmB,EAAGgmB,aAAar5B,EAAI,IAAIH,GAAGwT,EAAGpY,eAAkmB,OAAllBoY,GAAG7X,YAAY6X,EAAG5X,WAAWoE,GAAIwT,EAAG3X,WAAW2X,EAAG5X,WAAW,EAAE4X,EAAG1X,KAAKwE,EAAGA,EAAG,EAAEkT,EAAG1X,KAAK0X,EAAGzX,cAAc,MAAMyX,EAAGxX,cAAcwX,EAAG5X,WAAW4X,EAAGrX,mBAAmBqX,EAAGtX,QAAQsX,EAAGxX,cAAcwX,EAAG5X,WAAW4X,EAAGvX,mBAAmBuX,EAAGtX,QAAQsX,EAAGxX,cAAcwX,EAAG5X,WAAW4X,EAAGqmB,eAAermB,EAAGsmB,eAAetmB,EAAGxX,cAAcwX,EAAG5X,WAAW4X,EAAGumB,eAAevmB,EAAGsmB,eAAetmB,EAAGwmB,qBAAqBxmB,EAAGmD,YAAYnD,EAAGomB,kBAAkBpmB,EAAG5X,WAAWoE,EAAG,GAAGwT,EAAG7X,YAAY6X,EAAG5X,WAAW,MAAM4X,EAAG+lB,iBAAiB/lB,EAAGgmB,aAAa,MAAMhmB,EAAGkD,gBAAgBlD,EAAGmD,YAAY,MAAMrX,GAAEqzB,SAASz7C,KAAKu5B,MAAMzQ,GAAU8V,YAAYlX,EAAGq7B,aAAa95B,EAAGnH,QAAQsG,GAAEqzB,SAASz7C,KAAKu5B,QAAwNiB,GAAE76B,UAAUqjD,KAAK,WAAW,GAAuBt7B,GAAGoB,EAAGG,EAAzBG,EAAGppB,KAAKm8B,MAAoB,IAAa,IAAN,IAAH/S,GAAY,MAAU,KAAHA,CAAa,IAA2B,IAAN,KAAhB1B,EAAG1nB,KAAKm8B,SAAiB,OAAW,IAAH/S,IAAS,EAAO,IAAH1B,CAAc,IAA2B,IAAN,KAAhBoB,EAAG9oB,KAAKm8B,SAAiB,OAAW,IAAH/S,IAAS,IAAS,IAAH1B,IAAS,EAAO,IAAHoB,CAAc,IAA2B,IAAN,KAAhBG,EAAGjpB,KAAKm8B,SAAiB,OAAW,IAAH/S,IAAS,IAAS,IAAH1B,IAAS,IAAS,IAAHoB,IAAS,EAAO,IAAHG,CAAc,MAAM,IAAIwO,IAAE,gBAAqB+C,GAAE76B,UAAU0jC,iBAAiB,WAAW,MAAOrjC,MAAKg7B,MAAOR,GAAE76B,UAAUy8B,KAAK,SAASnT,GAAIjpB,KAAKg7B,KAAK/R,GAAKuR,GAAE76B,UAAUsjD,KAAK,WAAW,MAAOjjD,MAAKgjD,QAASxoB,GAAE76B,UAAUujD,KAAK,WAAmC,MAAxBljD,MAAKmjD,OAAOnjD,KAAKm7B,KAAK,EAASn7B,KAAKk7B,IAAIkoB,WAAWpjD,KAAKm7B,IAAI,IAAKX,GAAE76B,UAAUyjC,KAAK,WAAmC,MAAxBpjC,MAAKmjD,OAAOnjD,KAAKm7B,KAAK,EAASn7B,KAAKk7B,IAAImoB,WAAWrjD,KAAKm7B,IAAI,IAAKX,GAAE76B,UAAUuiC,KAAK,WAAmC,MAAxBliC,MAAKmjD,OAAOnjD,KAAKm7B,KAAK,EAASn7B,KAAKk7B,IAAIooB,SAAStjD,KAAKm7B,IAAI,IAAKX,GAAE76B,UAAUw8B,KAAK,WAAuB,MAAZn8B,MAAKmjD,OAAcnjD,KAAKk7B,IAAIqoB,QAAQvjD,KAAKm7B,QAASX,GAAE76B,UAAU88B,KAAK,WAAmC,MAAxBz8B,MAAKmjD,OAAOnjD,KAAKm7B,KAAK,EAASn7B,KAAKk7B,IAAIsoB,SAASxjD,KAAKm7B,IAAI,IAAKX,GAAE76B,UAAU8jD,KAAK,WAAmC,KAAxBzjD,MAAKmjD,OAAOnjD,KAAKm7B,KAAK,EAAQ,GAAI1D,IAAE,sBAAuB+C,GAAE76B,UAAU4jC,KAAK,WAAuB,MAAZvjC,MAAKmjD,OAA4C,GAA9BnjD,KAAKk7B,IAAIqoB,QAAQvjD,KAAKm7B,OAAY,IAAIuoB,KAAE,CAAKlpB,IAAE76B,UAAUgkD,KAAK,WAAW3jD,KAAKmjD,MAAO,IAAIl6B,GAAGjpB,KAAKijD,OAAW75B,EAAG,IAAK,IAAGs6B,GAAG,IAAI,GAAIxnB,GAAG,GAAIH,aAAe,EAAH9S,EAAMG,GAAG,GAAI4jB,aAAY9Q,EAAI,KAAI,GAAIxU,GAAG,EAAEA,EAAGuB,IAAKvB,EAAI0B,EAAG1B,GAAI1nB,KAAKk7B,IAAI3F,SAASv1B,KAAKm7B,MAAQ,OAAO1V,QAAOC,aAAaC,MAAM,KAAKyD,GAAK,MAAMkT,GAAIonB,IAAE,EAAQ,IAAI,GAAI56B,GAAG,GAAIjnB,MAAQ,IAAO,MAAJunB,EAAU,IAAI,GAAI1B,GAAG,EAAEA,EAAGuB,IAAKvB,EAAIoB,EAAGpB,GAAI1nB,KAAKk7B,IAAI3F,SAASv1B,KAAKm7B,WAAc,KAAI,GAAIzT,GAAG,EAAEA,EAAGuB,IAAKvB,EAAIoB,EAAGpB,GAAI0B,EAAG1B,EAAM,OAAOjC,QAAOC,aAAaC,MAAM,KAAKmD,GAAK,MAAMwT,GAAIx0B,QAAQP,IAAI,8BAA8B+0B,KAAO9B,GAAE76B,UAAUopC,KAAK,WAAW/oC,KAAKmjD,MAAoD,KAAI,GAA7Cr6B,GAAG9oB,KAAKijD,OAAWh6B,EAAG,GAAIgL,YAAWnL,GAAYpB,EAAG,EAAEA,EAAGoB,EAAGpB,IAAMuB,EAAGvB,GAAI1nB,KAAKk7B,IAAIooB,SAAStjD,KAAKm7B,KAAKn7B,KAAKm7B,KAAK,CAAG,OAAOlS,IAAKuR,GAAE76B,UAAUqpC,KAAK,WAAWhpC,KAAKmjD,MAAsD,KAAI,GAA/Cr6B,GAAG9oB,KAAKijD,OAAWh6B,EAAG,GAAIjmB,cAAa8lB,GAAYpB,EAAG,EAAEA,EAAGoB,EAAGpB,IAAMuB,EAAGvB,GAAI1nB,KAAKk7B,IAAImoB,WAAWrjD,KAAKm7B,KAAKn7B,KAAKm7B,KAAK,CAAG,OAAOlS,IAAKuR,GAAE76B,UAAUikD,KAAK,WAAW5jD,KAAKmjD,MAAsD,KAAI,GAA/Cr6B,GAAG9oB,KAAKijD,OAAWh6B,EAAG,GAAI46B,cAAa/6B,GAAYpB,EAAG,EAAEA,EAAGoB,EAAGpB,IAAMuB,EAAGvB,GAAI1nB,KAAKk7B,IAAIkoB,WAAWpjD,KAAKm7B,KAAKn7B,KAAKm7B,KAAK,CAAG,OAAOlS,IAAKuR,GAAE76B,UAAU48B,KAAK,WAAW,MAAOv8B,MAAK8jD,MAAM,IAAKtpB,GAAE76B,UAAUmkD,KAAK,SAASp8B,GAAyC,GAArC1nB,KAAKmjD,OAAUz7B,EAAG,IAAGA,EAAG1nB,KAAKijD,QAAWv7B,GAAItT,EAAGw8B,KAAK,CAAC,GAAI3nB,GAAGjpB,KAAKkiC,MAAO,IAAG,GAAGjZ,GAAIA,EAAGjpB,KAAKi7B,KAAKlxB,OAAQ,MAAO/J,MAAKi7B,KAAKhS,EAAU,MAAM,IAAIwO,IAAE,mBAA0B,GAAI3O,GAAG9oB,KAAK+jD,KAAKr8B,EAAuB,OAAnB1nB,MAAKi7B,KAAKrvB,KAAKkd,GAAWA,GAAM0R,GAAE76B,UAAUokD,KAAK,SAAS/nB,GAAI,GAAO,GAAJA,EAAO,MAAO,KAAM,IAAO,IAAJA,EAAO,CAAC,GAAI5S,GAAGppB,KAAK2jD,OAAW76B,EAAG6G,EAAExc,MAAMiW,EAAI,OAAON,GAAS,GAAO,IAAJkT,EAAO,CAAC,GAAI5S,GAAGppB,KAAK2jD,OAAW76B,EAAGvpB,GAAE4T,MAAMiW,EAAI,OAAON,GAAS,GAAO,KAAJkT,EAAQ,CAAC,GAAI5S,GAAGppB,KAAK2jD,OAAW76B,EAAGtqB,EAAE2U,MAAMiW,EAAI,OAAON,GAAS,GAAO,IAAJkT,EAAO,CAAC,GAAI5S,GAAGppB,KAAK2jD,OAAW76B,EAAGhiB,EAAEqM,MAAMiW,EAAI,OAAON,GAAO,GAAGkT,GAAI,GAAG,CAAC,GAAIM,GAAGloB,EAAG08B,KAAK9U,EAAI,OAAO,OAAJM,GAAUA,EAAG2F,KAAKjiC,MAAas8B,GAAgB,KAAO,OAAON,GAAI,IAAK,GAAE,MAAOh8B,MAAK2jD,MAAO,KAAK,IAAsB,MAAO,IAAIz5B,GAAvBlqB,KAAKkiC,QAAuB,EAAM,KAAK,IAAG,MAAO,IAAI/Z,GAAGnoB,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAQ,KAAK,IAAG,MAAO,IAAI/6B,GAAGnoB,KAAKojC,OAAOpjC,KAAKojC,OAAOpjC,KAAKojC,OAAOpjC,KAAKojC,OAAQ,KAAK,IAAG,MAAO,IAAIr6B,GAAE/I,KAAKkjD,OAAOljD,KAAKkjD,OAAQ,KAAK,IAAG,MAAO,IAAIn6C,GAAE/I,KAAKojC,OAAOpjC,KAAKojC,OAAQ,KAAK,IAA2C,IAAI,GAAxCna,GAAGjpB,KAAKijD,OAAWn6B,EAAG,GAAIjnB,OAAMonB,GAAYvB,EAAG,EAAEA,EAAGuB,EAAGvB,IAAMoB,EAAGpB,GAAI1nB,KAAKu8B,MAAQ,OAAOzT,EAAG,KAAK,IAAG,GAAIA,GAAG,GAAI8G,GAAG5vB,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAOljD,KAAKkjD,OAAQ,OAAOp6B,EAAG,KAAK,IAAG,MAAO,IAAI+B,GAAE7qB,KAAKkiC,OAAOliC,KAAKkiC,OAAOliC,KAAKkiC,OAAOliC,KAAKkiC,OAAQ,KAAK,IAAG,MAAO,IAAI70B,IAAErN,KAAKkiC,OAAOliC,KAAKkiC,OAAQ,KAAK,IAAG,KAAM,IAAIuS,OAAM,YAAa,KAAK,IAAG,IAAK,IAAG,MAAOz0C,MAAK+oC,MAAO,KAAK,IAAG,MAAO/oC,MAAK4jD,MAAO,KAAK,IAAG,MAAO5jD,MAAKgpC,MAAO,KAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,KAAM,IAAIvR,IAAE,6CAA6CuE,EAAI,SAAQ,KAAM,IAAIvE,IAAE,6BAA6BuE,KAAOxB,GAAE76B,UAAU03C,KAAK,WAA6G,MAApF,IAAXr3C,KAAK86B,KAAS96B,KAAK+6B,KAAK/6B,KAAKm8B,OAA2B,GAAXn8B,KAAK86B,OAAS96B,KAAK+6B,KAAK/6B,KAAKm8B,OAAOn8B,KAAK86B,KAAK,GAA4C,IAAhC96B,KAAK+6B,MAAO,EAAE/6B,KAAK86B,OAAS,IAAQN,GAAE76B,UAAUwjD,KAAK,WAAyB,GAAXnjD,KAAK86B,OAAS96B,KAAK86B,KAAK,IAAoBM,GAAGz7B,UAAUqkD,KAAK,SAAS9nB,EAAGpT,EAAGM,GAAI,IAAI,GAAIkT,GAAG,EAAEA,EAAGlT,EAAGkT,IAAK,CAAC,IAAI,GAAIrT,GAAG,EAAEA,EAAGH,EAAGG,IAAK,CAAC,GAAIvB,GAAG,GAAGuB,EAAGqT,EAAGxT,EAAIhhB,SAAQP,IAAI,uBAAuB20B,EAAGxU,GAAIwU,EAAGxU,EAAG,IAAK5f,QAAQP,IAAI,MAAOO,QAAQP,IAAI,OAAuB8zB,GAAG4oB,KAAK33C,KAAK2P,GAAG,IAAIof,GAAG8H,KAAM72B,KAAK2P,GAAG,IAAKof,GAAG6oB,KAAK,IAAI53C,KAAK2P,GAAGof,GAAGma,KAAM,IAAIlpC,KAAK2P,GAAIof,GAAGuhB,KAAKtwC,KAAK2P,GAAGof,GAAG8oB,MAAM,EAAE,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,GAAG9oB,GAAGka,KAAK,SAASnsB,EAAGN,GAAI,GAAIG,GAAG3c,KAAKw2B,MAAM1Z,EAAG,GAAGA,EAAG,IAAQ1B,EAAGpb,KAAKw2B,MAAMha,EAAG,GAAGA,EAAG,GAAI,OAAOuS,IAAG+oB,KAAKn7B,EAAGvB,IAAM2T,GAAG+oB,KAAK,SAASt7B,EAAGG,GAAiB,IAAb,GAAIvB,GAAGoB,EAAGG,EAASvB,GAAIpb,KAAK2P,IAAIyL,GAAI,EAAEpb,KAAK2P,EAAI,MAAMyL,EAAGpb,KAAK2P,IAAIyL,GAAI,EAAEpb,KAAK2P,EAAI,OAAOyL,IAAK2T,GAAG6S,IAAI,SAASjlB,GAAI,MAAO3c,MAAKgW,IAAI2G,IAAMoS,GAAG4S,KAAK,SAAShlB,GAAI,MAAO3c,MAAK42B,IAAIja,IAAkNsP,GAAG54B,UAAUmyC,KAAK,WAAW,MAAO9xC,MAAKu7B,KAAK,IAAKhD,GAAG54B,UAAUsgC,KAAK,WAAW,MAAOjgC,MAAKq3B,OAAOr3B,KAAKu7B,KAAK,IAAKhD,GAAG54B,UAAUgzC,KAAK,WAAW,MAAO3yC,MAAKm2B,MAAqBpN,GAAEyiB,KAAK,EAAEziB,GAAEs7B,YAAY,KAAKt7B,GAAEu7B,WAAW1lC,UAAU2lC,UAAUx7B,GAAEy7B,SAAS,WAAyC,MAA1Bz7B,IAAEs7B,aAAat7B,GAAErZ,QAAgBqZ,GAAEs7B,YAAYI,WAAY17B,GAAEmzB,MAAM,WAAyC,MAA1BnzB,IAAEs7B,aAAat7B,GAAErZ,QAAgBqZ,GAAEs7B,YAAYI,WAAW17B,GAAEs7B,YAAYK,SAAU37B,GAAEqzB,UAAU,WAAyC,MAA1BrzB,IAAEs7B,aAAat7B,GAAErZ,QAAgBqZ,GAAEs7B,YAAYM,YAAa57B,GAAE67B,aAAa,WAAyC,MAA1B77B,IAAEs7B,aAAat7B,GAAErZ,QAAgBqZ,GAAEs7B,YAAYQ,SAAU97B,GAAE+7B,MAAM,WAAyC,MAA1B/7B,IAAEs7B,aAAat7B,GAAErZ,QAAYqZ,GAAEs7B,YAAYI,WAAW17B,GAAEs7B,YAAYK,QAAe,MAAU37B,GAAEs7B,YAAYM,WAAkB,UAAsB,WAAa57B,GAAErZ,MAAM,WAA+B,QAASoZ,GAAGkU,EAAGW,GAAuD,IAAI,GAAnD3B,GAAGgB,EAAG3c,UAAUsd,GAAImL,MAAM,YAAgBjN,EAAG,EAAUK,EAAG,EAAEA,GAAI,IAAWyH,MAAM3H,EAAGE,IAAlBA,IAAK,CAA0B,GAAIU,GAAGhyB,SAASoxB,EAAGE,GAAK,IAAGU,EAAG,GAAGA,EAAG,IAAI,CAACnS,EAAE6S,KAAK,SAASV,EAAG,qBAAqBf,EAAG,CAAE,OAAOA,GAAIe,EAAGtwB,KAAK8oC,IAAI,IAAM,EAAElZ,GAAM,MAAOL,GAA9Q,GAAsRS,GAAlRlT,EAAGL,GAAEu7B,WAA2R58B,EAAGqB,GAAEs7B,aAAaE,UAAUn7B,EAAI,KAAIkT,EAAGlT,EAAG27B,QAAQ,gBAAgB,EAAGr9B,EAAGs9B,GAAG,SAASt9B,EAAG+8B,WAAU,EAAK/8B,EAAGm9B,QAAQ/7B,EAAGM,EAAGkT,EAAG,aAAavyB,YAAc,KAAIuyB,EAAGlT,EAAG27B,QAAQ,UAAU,EAAE,CAAyB,IAAxBzoB,EAAGlT,EAAG27B,QAAQ,WAAgB,EAA4C,WAAzCt6B,GAAE6S,KAAK,UAAUlU,EAAG,oBAA6B1B,GAAGs9B,GAAG,OAAOt9B,EAAGg9B,SAAQ,EAAKh9B,EAAGm9B,QAAQ/7B,EAAGM,EAAGkT,EAAG,UAAUvyB,aAAkBuyB,EAAGlT,EAAG27B,QAAQ,aAAa,GAAGr9B,EAAGs9B,GAAG,UAAUt9B,EAAGi9B,YAAW,EAAKj9B,EAAGm9B,QAAQ/7B,EAAGM,EAAGkT,EAAG,WAAWvyB,UAAc2d,EAAGs9B,GAAG,IAAIt9B,EAAGm9B,SAAS,IAAO1rC,OAAOtV,SAASmrB,EAAE7V,OAAO7I,QAAQma,EAAEtR,OAAO8rC,YAAY5rB,GAAGlgB,OAAO+rC,KAAK3uB,GAAGpd,OAAOvR,OAAOwgB,GAAEjP,OAAO2K,iBAAiBrlB,GAAE0a,OAAOgsC,cAAc9+C,EAAE8S,OAAOzQ,aAAaysB,EAAGhc,OAAO5V,mBAAmBo1B,GAAExf,OAAO1J,YAAY2b,EAAEjS,OAAOzX,QAAQ0oB,EAAGjR,OAAOjG,YAAY1U,EAAE2a,OAAOisC,WAAWz1B,EAAExW,OAAOksC,WAAW9lD,GAAE4Z,OAAOmsC,QAAQx+C,EAAEshB,GAAE9O,MAAO,IAAIxP,KAAE,OXy0Lt/7HpL,KAAKJ,EAASH,EAAoB,MAIzD,SAAUI,EAAQD,GY70LxBC,EAAAD,SAEAinD,OAAA,WACA,SAAA9Q,OAAA,8CZu1LM,SAAUl2C,EAAQD,EAASH,GAEjCI,EAAOD,QAAUH,EAAoB","file":"bundle.js","sourcesContent":["/******/ (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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\r\n * EYHN 基于 live2d 官方 Live2DFramework.js 修改\r\n * \r\n * Copyright © 2016 - 2017 EYHN\r\n */\n//============================================================\n//============================================================\n// class L2DBaseModel \n//============================================================\n//============================================================\nfunction L2DBaseModel() {\n this.live2DModel = null; // ALive2DModel\n this.modelMatrix = null; // L2DModelMatrix\n this.eyeBlink = null; // L2DEyeBlink\n this.physics = null; // L2DPhysics\n this.pose = null; // L2DPose\n this.debugMode = false;\n this.initialized = false;\n this.updating = false;\n this.alpha = 1;\n this.accAlpha = 0;\n this.lipSync = false;\n this.lipSyncValue = 0;\n this.accelX = 0;\n this.accelY = 0;\n this.accelZ = 0;\n this.dragX = 0;\n this.dragY = 0;\n this.startTimeMSec = null;\n this.mainMotionManager = new L2DMotionManager(); //L2DMotionManager\n this.expressionManager = new L2DMotionManager(); //L2DMotionManager\n this.motions = {};\n this.expressions = {};\n\n this.isTexLoaded = false;\n}\n\nvar texCounter = 0;\n\n//============================================================\n// L2DBaseModel # getModelMatrix()\n//============================================================\nL2DBaseModel.prototype.getModelMatrix = function () {\n return this.modelMatrix;\n};\n\n//============================================================\n// L2DBaseModel # setAlpha()\n//============================================================\nL2DBaseModel.prototype.setAlpha = function (a /*float*/) {\n if (a > 0.999) a = 1;\n if (a < 0.001) a = 0;\n this.alpha = a;\n};\n\n//============================================================\n// L2DBaseModel # getAlpha()\n//============================================================\nL2DBaseModel.prototype.getAlpha = function () {\n return this.alpha;\n};\n\n//============================================================\n// L2DBaseModel # isInitialized()\n//============================================================\nL2DBaseModel.prototype.isInitialized = function () {\n return this.initialized;\n};\n\n//============================================================\n// L2DBaseModel # setInitialized()\n//============================================================\nL2DBaseModel.prototype.setInitialized = function (v /*boolean*/) {\n this.initialized = v;\n};\n\n//============================================================\n// L2DBaseModel # isUpdating()\n//============================================================\nL2DBaseModel.prototype.isUpdating = function () {\n return this.updating;\n};\n\n//============================================================\n// L2DBaseModel # setUpdating()\n//============================================================\nL2DBaseModel.prototype.setUpdating = function (v /*boolean*/) {\n this.updating = v;\n};\n\n//============================================================\n// L2DBaseModel # getLive2DModel()\n//============================================================\nL2DBaseModel.prototype.getLive2DModel = function () {\n return this.live2DModel;\n};\n\n//============================================================\n// L2DBaseModel # setLipSync()\n//============================================================\nL2DBaseModel.prototype.setLipSync = function (v /*boolean*/) {\n this.lipSync = v;\n};\n\n//============================================================\n// L2DBaseModel # setLipSyncValue()\n//============================================================\nL2DBaseModel.prototype.setLipSyncValue = function (v /*float*/) {\n this.lipSyncValue = v;\n};\n\n//============================================================\n// L2DBaseModel # setAccel()\n//============================================================\nL2DBaseModel.prototype.setAccel = function (x /*float*/, y /*float*/, z /*float*/) {\n this.accelX = x;\n this.accelY = y;\n this.accelZ = z;\n};\n\n//============================================================\n// L2DBaseModel # setDrag()\n//============================================================\nL2DBaseModel.prototype.setDrag = function (x /*float*/, y /*float*/) {\n this.dragX = x;\n this.dragY = y;\n};\n\n//============================================================\n// L2DBaseModel # getMainMotionManager()\n//============================================================\nL2DBaseModel.prototype.getMainMotionManager = function () {\n return this.mainMotionManager;\n};\n\n//============================================================\n// L2DBaseModel # getExpressionManager()\n//============================================================\nL2DBaseModel.prototype.getExpressionManager = function () {\n return this.expressionManager;\n};\n\n//============================================================\n// L2DBaseModel # loadModelData()\n//============================================================\nL2DBaseModel.prototype.loadModelData = function (path /*String*/, callback) {\n /*\r\n if( this.live2DModel != null ) {\r\n this.live2DModel.deleteTextures();\r\n }\r\n */\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load model : \" + path);\n\n var thisRef = this;\n pm.loadLive2DModel(path, function (l2dModel) {\n thisRef.live2DModel = l2dModel;\n thisRef.live2DModel.saveParam();\n\n var _err = Live2D.getError();\n\n if (_err != 0) {\n console.error(\"Error : Failed to loadModelData().\");\n return;\n }\n\n thisRef.modelMatrix = new L2DModelMatrix(thisRef.live2DModel.getCanvasWidth(), thisRef.live2DModel.getCanvasHeight()); //L2DModelMatrix\n thisRef.modelMatrix.setWidth(2);\n thisRef.modelMatrix.setCenterPosition(0, 0);\n\n callback(thisRef.live2DModel);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadTexture()\n//============================================================\nL2DBaseModel.prototype.loadTexture = function (no /*int*/, path /*String*/, callback) {\n texCounter++;\n\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Texture : \" + path);\n\n var thisRef = this;\n pm.loadTexture(this.live2DModel, no, path, function () {\n texCounter--;\n if (texCounter == 0) thisRef.isTexLoaded = true;\n if (typeof callback == \"function\") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadMotion()\n//============================================================\nL2DBaseModel.prototype.loadMotion = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Motion : \" + path);\n\n var motion = null; //Live2DMotion\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n motion = Live2DMotion.loadMotion(buf);\n if (name != null) {\n thisRef.motions[name] = motion;\n }\n callback(motion);\n });\n};\n\n//============================================================\n// L2DBaseModel # loadExpression()\n//============================================================\nL2DBaseModel.prototype.loadExpression = function (name /*String*/, path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n\n if (this.debugMode) pm.log(\"Load Expression : \" + path);\n\n var thisRef = this;\n pm.loadBytes(path, function (buf) {\n if (name != null) {\n thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf);\n }\n if (typeof callback == \"function\") callback();\n });\n};\n\n//============================================================\n// L2DBaseModel # loadPose()\n//============================================================\nL2DBaseModel.prototype.loadPose = function (path /*String*/, callback) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load Pose : \" + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.pose = L2DPose.load(buf);\n if (typeof callback == \"function\") callback();\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # loadPhysics()\n//============================================================\nL2DBaseModel.prototype.loadPhysics = function (path /*String*/) {\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\n if (this.debugMode) pm.log(\"Load Physics : \" + path);\n var thisRef = this;\n try {\n pm.loadBytes(path, function (buf) {\n thisRef.physics = L2DPhysics.load(buf);\n });\n } catch (e) {\n console.warn(e);\n }\n};\n\n//============================================================\n// L2DBaseModel # hitTestSimple()\n//============================================================\nL2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) {\n\n if (this.live2DModel === null) return !1;\n\n var drawIndex = this.live2DModel.getDrawDataIndex(drawID);\n\n if (drawIndex < 0) return false;\n\n var points = this.live2DModel.getTransformedPoints(drawIndex);\n var left = this.live2DModel.getCanvasWidth();\n var right = 0;\n var top = this.live2DModel.getCanvasHeight();\n var bottom = 0;\n\n for (var j = 0; j < points.length; j = j + 2) {\n var x = points[j];\n var y = points[j + 1];\n\n if (x < left) left = x;\n if (x > right) right = x;\n if (y < top) top = y;\n if (y > bottom) bottom = y;\n }\n var tx = this.modelMatrix.invertTransformX(testX);\n var ty = this.modelMatrix.invertTransformY(testY);\n\n return left <= tx && tx <= right && top <= ty && ty <= bottom;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DExpressionMotion extends AMotion\n//============================================================\n//============================================================\nfunction L2DExpressionMotion() {\n AMotion.prototype.constructor.call(this);\n this.paramList = new Array(); //ArrayList\n}\n\nL2DExpressionMotion.prototype = new AMotion(); // L2DExpressionMotion extends AMotion\n\n//============================================================\nL2DExpressionMotion.EXPRESSION_DEFAULT = \"DEFAULT\";\nL2DExpressionMotion.TYPE_SET = 0;\nL2DExpressionMotion.TYPE_ADD = 1;\nL2DExpressionMotion.TYPE_MULT = 2;\n\n//============================================================\n// static L2DExpressionMotion.loadJson()\n//============================================================\nL2DExpressionMotion.loadJson = function (buf) {\n var ret = new L2DExpressionMotion();\n\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n\n ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);\n ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);\n\n if (json.params == null) {\n return ret;\n }\n\n var params = json.params;\n var paramNum = params.length;\n ret.paramList = []; //ArrayList\n for (var i = 0; i < paramNum; i++) {\n var param = params[i];\n var paramID = param.id.toString();\n var value = parseFloat(param.val);\n var calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n var calc = param.calc != null ? param.calc.toString() : \"add\";\n if (calc === \"add\") {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n } else if (calc === \"mult\") {\n calcTypeInt = L2DExpressionMotion.TYPE_MULT;\n } else if (calc === \"set\") {\n calcTypeInt = L2DExpressionMotion.TYPE_SET;\n } else {\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\n }\n if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {\n var defaultValue = param.def == null ? 0 : parseFloat(param.def);\n value = value - defaultValue;\n } else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {\n var defaultValue = param.def == null ? 1 : parseFloat(param.def);\n if (defaultValue == 0) defaultValue = 1;\n value = value / defaultValue;\n }\n\n var item = new L2DExpressionParam();\n item.id = paramID;\n item.type = calcTypeInt;\n item.value = value;\n\n ret.paramList.push(item);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DExpressionMotion # updateParamExe()\n//============================================================\nL2DExpressionMotion.prototype.updateParamExe = function (model /*ALive2DModel*/, timeMSec /*long*/, weight /*float*/, motionQueueEnt /*MotionQueueEnt*/) {\n for (var i = this.paramList.length - 1; i >= 0; --i) {\n var param = this.paramList[i]; //L2DExpressionParam\n // if (!param || !param.type) continue;\n if (param.type == L2DExpressionMotion.TYPE_ADD) {\n model.addToParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_MULT) {\n model.multParamFloat(param.id, param.value, weight);\n } else if (param.type == L2DExpressionMotion.TYPE_SET) {\n model.setParamFloat(param.id, param.value, weight);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DExpressionParam \n//============================================================\n//============================================================\nfunction L2DExpressionParam() {\n this.id = \"\";\n this.type = -1;\n this.value = null;\n}\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DEyeBlink \n//============================================================\n//============================================================\nfunction L2DEyeBlink() {\n this.nextBlinkTime = null /* TODO NOT INIT */; // \n this.stateStartTime = null /* TODO NOT INIT */; // \n this.blinkIntervalMsec = null /* TODO NOT INIT */; // \n this.eyeState = EYE_STATE.STATE_FIRST;\n this.blinkIntervalMsec = 4000;\n this.closingMotionMsec = 100;\n this.closedMotionMsec = 50;\n this.openingMotionMsec = 150;\n this.closeIfZero = true;\n this.eyeID_L = \"PARAM_EYE_L_OPEN\";\n this.eyeID_R = \"PARAM_EYE_R_OPEN\";\n}\n\n//============================================================\n// L2DEyeBlink # calcNextBlink()\n//============================================================\nL2DEyeBlink.prototype.calcNextBlink = function () {\n var time /*long*/ = UtSystem.getUserTimeMSec();\n var r /*Number*/ = Math.random();\n return (/*(long)*/time + r * (2 * this.blinkIntervalMsec - 1)\n );\n};\n\n//============================================================\n// L2DEyeBlink # setInterval()\n//============================================================\nL2DEyeBlink.prototype.setInterval = function (blinkIntervalMsec /*int*/) {\n this.blinkIntervalMsec = blinkIntervalMsec;\n};\n\n//============================================================\n// L2DEyeBlink # setEyeMotion()\n//============================================================\nL2DEyeBlink.prototype.setEyeMotion = function (closingMotionMsec /*int*/, closedMotionMsec /*int*/, openingMotionMsec /*int*/) {\n this.closingMotionMsec = closingMotionMsec;\n this.closedMotionMsec = closedMotionMsec;\n this.openingMotionMsec = openingMotionMsec;\n};\n\n//============================================================\n// L2DEyeBlink # updateParam()\n//============================================================\nL2DEyeBlink.prototype.updateParam = function (model /*ALive2DModel*/) {\n var time /*:long*/ = UtSystem.getUserTimeMSec();\n var eyeParamValue /*:Number*/;\n var t /*:Number*/ = 0;\n switch (this.eyeState) {\n case EYE_STATE.STATE_CLOSING:\n t = (time - this.stateStartTime) / this.closingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_CLOSED;\n this.stateStartTime = time;\n }\n eyeParamValue = 1 - t;\n break;\n case EYE_STATE.STATE_CLOSED:\n t = (time - this.stateStartTime) / this.closedMotionMsec;\n if (t >= 1) {\n this.eyeState = EYE_STATE.STATE_OPENING;\n this.stateStartTime = time;\n }\n eyeParamValue = 0;\n break;\n case EYE_STATE.STATE_OPENING:\n t = (time - this.stateStartTime) / this.openingMotionMsec;\n if (t >= 1) {\n t = 1;\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n }\n eyeParamValue = t;\n break;\n case EYE_STATE.STATE_INTERVAL:\n if (this.nextBlinkTime < time) {\n this.eyeState = EYE_STATE.STATE_CLOSING;\n this.stateStartTime = time;\n }\n eyeParamValue = 1;\n break;\n case EYE_STATE.STATE_FIRST:\n default:\n this.eyeState = EYE_STATE.STATE_INTERVAL;\n this.nextBlinkTime = this.calcNextBlink();\n eyeParamValue = 1;\n break;\n }\n if (!this.closeIfZero) eyeParamValue = -eyeParamValue;\n model.setParamFloat(this.eyeID_L, eyeParamValue);\n model.setParamFloat(this.eyeID_R, eyeParamValue);\n};\n\n//== enum EYE_STATE ==\nvar EYE_STATE = function EYE_STATE() {};\n\nEYE_STATE.STATE_FIRST = \"STATE_FIRST\";\nEYE_STATE.STATE_INTERVAL = \"STATE_INTERVAL\";\nEYE_STATE.STATE_CLOSING = \"STATE_CLOSING\";\nEYE_STATE.STATE_CLOSED = \"STATE_CLOSED\";\nEYE_STATE.STATE_OPENING = \"STATE_OPENING\";\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMatrix44 \n//============================================================\n//============================================================\nfunction L2DMatrix44() {\n this.tr = new Float32Array(16); // \n this.identity();\n}\n\n//============================================================\n// static L2DMatrix44.mul()\n//============================================================\nL2DMatrix44.mul = function (a /*float[]*/, b /*float[]*/, dst /*float[]*/) {\n var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var n = 4;\n var i, j, k;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n for (k = 0; k < n; k++) {\n c[i + j * 4] += a[i + k * 4] * b[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n dst[i] = c[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # identity()\n//============================================================\nL2DMatrix44.prototype.identity = function () {\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\n//============================================================\n// L2DMatrix44 # getArray()\n//============================================================\nL2DMatrix44.prototype.getArray = function () {\n return this.tr;\n};\n\n//============================================================\n// L2DMatrix44 # getCopyMatrix()\n//============================================================\nL2DMatrix44.prototype.getCopyMatrix = function () {\n return new Float32Array(this.tr); // this.tr.clone();\n};\n\n//============================================================\n// L2DMatrix44 # setMatrix()\n//============================================================\nL2DMatrix44.prototype.setMatrix = function (tr /*float[]*/) {\n if (this.tr == null || this.tr.length != this.tr.length) return;\n for (var i /*:int*/ = 0; i < 16; i++) {\n this.tr[i] = tr[i];\n }\n};\n\n//============================================================\n// L2DMatrix44 # getScaleX()\n//============================================================\nL2DMatrix44.prototype.getScaleX = function () {\n return this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # getScaleY()\n//============================================================\nL2DMatrix44.prototype.getScaleY = function () {\n return this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # transformX()\n//============================================================\nL2DMatrix44.prototype.transformX = function (src /*float*/) {\n return this.tr[0] * src + this.tr[12];\n};\n\n//============================================================\n// L2DMatrix44 # transformY()\n//============================================================\nL2DMatrix44.prototype.transformY = function (src /*float*/) {\n return this.tr[5] * src + this.tr[13];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformX()\n//============================================================\nL2DMatrix44.prototype.invertTransformX = function (src /*float*/) {\n return (src - this.tr[12]) / this.tr[0];\n};\n\n//============================================================\n// L2DMatrix44 # invertTransformY()\n//============================================================\nL2DMatrix44.prototype.invertTransformY = function (src /*float*/) {\n return (src - this.tr[13]) / this.tr[5];\n};\n\n//============================================================\n// L2DMatrix44 # multTranslate()\n//============================================================\nL2DMatrix44.prototype.multTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # translate()\n//============================================================\nL2DMatrix44.prototype.translate = function (x /*float*/, y /*float*/) {\n this.tr[12] = x;\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # translateX()\n//============================================================\nL2DMatrix44.prototype.translateX = function (x /*float*/) {\n this.tr[12] = x;\n};\n\n//============================================================\n// L2DMatrix44 # translateY()\n//============================================================\nL2DMatrix44.prototype.translateY = function (y /*float*/) {\n this.tr[13] = y;\n};\n\n//============================================================\n// L2DMatrix44 # multScale()\n//============================================================\nL2DMatrix44.prototype.multScale = function (scaleX /*float*/, scaleY /*float*/) {\n var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DMatrix44 # scale()\n//============================================================\nL2DMatrix44.prototype.scale = function (scaleX /*float*/, scaleY /*float*/) {\n this.tr[0] = scaleX;\n this.tr[5] = scaleY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DModelMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DModelMatrix(w /*float*/, h /*float*/) {\n L2DMatrix44.prototype.constructor.call(this);\n this.width = w;\n this.height = h;\n}\n\n//L2DModelMatrix extends L2DMatrix44\nL2DModelMatrix.prototype = new L2DMatrix44();\n\n//============================================================\n// L2DModelMatrix # setPosition()\n//============================================================\nL2DModelMatrix.prototype.setPosition = function (x /*float*/, y /*float*/) {\n this.translate(x, y);\n};\n\n//============================================================\n// L2DModelMatrix # setCenterPosition()\n//============================================================\nL2DModelMatrix.prototype.setCenterPosition = function (x /*float*/, y /*float*/) {\n var w = this.width * this.getScaleX();\n var h = this.height * this.getScaleY();\n this.translate(x - w / 2, y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # top()\n//============================================================\nL2DModelMatrix.prototype.top = function (y /*float*/) {\n this.setY(y);\n};\n\n//============================================================\n// L2DModelMatrix # bottom()\n//============================================================\nL2DModelMatrix.prototype.bottom = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h);\n};\n\n//============================================================\n// L2DModelMatrix # left()\n//============================================================\nL2DModelMatrix.prototype.left = function (x /*float*/) {\n this.setX(x);\n};\n\n//============================================================\n// L2DModelMatrix # right()\n//============================================================\nL2DModelMatrix.prototype.right = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w);\n};\n\n//============================================================\n// L2DModelMatrix # centerX()\n//============================================================\nL2DModelMatrix.prototype.centerX = function (x /*float*/) {\n var w = this.width * this.getScaleX();\n this.translateX(x - w / 2);\n};\n\n//============================================================\n// L2DModelMatrix # centerY()\n//============================================================\nL2DModelMatrix.prototype.centerY = function (y /*float*/) {\n var h = this.height * this.getScaleY();\n this.translateY(y - h / 2);\n};\n\n//============================================================\n// L2DModelMatrix # setX()\n//============================================================\nL2DModelMatrix.prototype.setX = function (x /*float*/) {\n this.translateX(x);\n};\n\n//============================================================\n// L2DModelMatrix # setY()\n//============================================================\nL2DModelMatrix.prototype.setY = function (y /*float*/) {\n this.translateY(y);\n};\n\n//============================================================\n// L2DModelMatrix # setHeight()\n//============================================================\nL2DModelMatrix.prototype.setHeight = function (h /*float*/) {\n var scaleX = h / this.height;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n//============================================================\n// L2DModelMatrix # setWidth()\n//============================================================\nL2DModelMatrix.prototype.setWidth = function (w /*float*/) {\n var scaleX = w / this.width;\n var scaleY = -scaleX;\n this.scale(scaleX, scaleY);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DMotionManager extends MotionQueueManager\n//============================================================\n//============================================================\nfunction L2DMotionManager() {\n MotionQueueManager.prototype.constructor.call(this);\n this.currentPriority = null;\n this.reservePriority = null;\n\n this.super = MotionQueueManager.prototype;\n}\n\nL2DMotionManager.prototype = new MotionQueueManager();\n\n//============================================================\n// L2DMotionManager # getCurrentPriority()\n//============================================================\nL2DMotionManager.prototype.getCurrentPriority = function () {\n return this.currentPriority;\n};\n\n//============================================================\n// L2DMotionManager # getReservePriority()\n//============================================================\nL2DMotionManager.prototype.getReservePriority = function () {\n return this.reservePriority;\n};\n\n//============================================================\n// L2DMotionManager # reserveMotion()\n//============================================================\nL2DMotionManager.prototype.reserveMotion = function (priority /*int*/) {\n if (this.reservePriority >= priority) {\n return false;\n }\n if (this.currentPriority >= priority) {\n return false;\n }\n\n this.reservePriority = priority;\n\n return true;\n};\n\n//============================================================\n// L2DMotionManager # setReservePriority()\n//============================================================\nL2DMotionManager.prototype.setReservePriority = function (val /*int*/) {\n this.reservePriority = val;\n};\n\n//============================================================\n// L2DMotionManager # updateParam()\n//============================================================\nL2DMotionManager.prototype.updateParam = function (model /*ALive2DModel*/) {\n var updated = MotionQueueManager.prototype.updateParam.call(this, model);\n\n if (this.isFinished()) {\n this.currentPriority = 0;\n }\n\n return updated;\n};\n\n//============================================================\n// L2DMotionManager # startMotionPrio()\n//============================================================\nL2DMotionManager.prototype.startMotionPrio = function (motion /*AMotion*/, priority /*int*/) {\n if (priority == this.reservePriority) {\n this.reservePriority = 0;\n }\n this.currentPriority = priority;\n return this.startMotion(motion, false);\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPhysics \n//============================================================\n//============================================================\nfunction L2DPhysics() {\n this.physicsList = new Array(); //ArrayList\n this.startTimeMSec = UtSystem.getUserTimeMSec();\n}\n\n//============================================================\n// static L2DPhysics.load()\n//============================================================\nL2DPhysics.load = function (buf /*byte[]*/) {\n var ret = new L2DPhysics(); //L2DPhysicsL2DPhysics\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var params = json.physics_hair;\n var paramNum = params.length;\n for (var i = 0; i < paramNum; i++) {\n var param = params[i]; //Value\n var physics = new PhysicsHair(); //PhysicsHairPhysicsHair\n var setup = param.setup; //Value\n var length = parseFloat(setup.length);\n var resist = parseFloat(setup.regist);\n var mass = parseFloat(setup.mass);\n physics.setup(length, resist, mass);\n var srcList = param.src; //Value\n var srcNum = srcList.length;\n for (var j = 0; j < srcNum; j++) {\n var src = srcList[j]; //Value\n var id = src.id; //String\n var type = PhysicsHair.Src.SRC_TO_X;\n var typeStr = src.ptype; //String\n if (typeStr === \"x\") {\n type = PhysicsHair.Src.SRC_TO_X;\n } else if (typeStr === \"y\") {\n type = PhysicsHair.Src.SRC_TO_Y;\n } else if (typeStr === \"angle\") {\n type = PhysicsHair.Src.SRC_TO_G_ANGLE;\n } else {\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Src\");\n }\n var scale = parseFloat(src.scale);\n var weight = parseFloat(src.weight);\n physics.addSrcParam(type, id, scale, weight);\n }\n var targetList = param.targets; //Value\n var targetNum = targetList.length;\n for (var j = 0; j < targetNum; j++) {\n var target = targetList[j]; //Value\n var id = target.id; //String\n var type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n var typeStr = target.ptype; //String\n if (typeStr === \"angle\") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE;\n } else if (typeStr === \"angle_v\") {\n type = PhysicsHair.Target.TARGET_FROM_ANGLE_V;\n } else {\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Target\");\n }\n var scale = parseFloat(target.scale);\n var weight = parseFloat(target.weight);\n physics.addTargetParam(type, id, scale, weight);\n }\n ret.physicsList.push(physics);\n }\n return ret;\n};\n\n//============================================================\n// L2DPhysics # updateParam()\n//============================================================\nL2DPhysics.prototype.updateParam = function (model /*ALive2DModel*/) {\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n for (var i = 0; i < this.physicsList.length; i++) {\n this.physicsList[i].update(model, timeMSec);\n }\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DPose \n//============================================================\n//============================================================\nfunction L2DPose() {\n this.lastTime = 0;\n this.lastModel = null; //ALive2DModel\n this.partsGroups = new Array(); //ArrayList\n}\n\n//============================================================\n// static L2DPose.load()\n//============================================================\nL2DPose.load = function (buf /*byte[]*/) {\n var ret = new L2DPose(); //L2DPose\n var pm = Live2DFramework.getPlatformManager();\n var json = pm.jsonParseFromBytes(buf);\n var poseListInfo = json.parts_visible; //Value\n var poseNum = poseListInfo.length;\n for (var i_pose = 0; i_pose < poseNum; i_pose++) {\n var poseInfo = poseListInfo[i_pose]; //Value\n var idListInfo = poseInfo.group; //Value\n var idNum = idListInfo.length;\n var partsGroup /*L2DPartsParam*/ = new Array();\n for (var i_group = 0; i_group < idNum; i_group++) {\n var partsInfo = idListInfo[i_group]; //Value\n var parts = new L2DPartsParam(partsInfo.id); //L2DPartsParamL2DPartsParam\n partsGroup[i_group] = parts;\n if (partsInfo.link == null) continue;\n var linkListInfo = partsInfo.link; //Value\n var linkNum = linkListInfo.length;\n parts.link = new Array(); //ArrayList\n for (var i_link = 0; i_link < linkNum; i_link++) {\n var linkParts = new L2DPartsParam(linkListInfo[i_link]); //L2DPartsParamL2DPartsParam\n parts.link.push(linkParts);\n }\n }\n ret.partsGroups.push(partsGroup);\n }\n\n return ret;\n};\n\n//============================================================\n// L2DPose # updateParam()\n//============================================================\nL2DPose.prototype.updateParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n\n if (!(model == this.lastModel)) {\n this.initParam(model);\n }\n this.lastModel = model;\n\n var curTime = UtSystem.getUserTimeMSec();\n var deltaTimeSec = this.lastTime == 0 ? 0 : (curTime - this.lastTime) / 1000.0;\n this.lastTime = curTime;\n if (deltaTimeSec < 0) deltaTimeSec = 0;\n for (var i = 0; i < this.partsGroups.length; i++) {\n this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);\n this.copyOpacityOtherParts(model, this.partsGroups[i]);\n }\n};\n\n//============================================================\n// L2DPose # initParam()\n//============================================================\nL2DPose.prototype.initParam = function (model /*ALive2DModel*/) {\n if (model == null) return;\n for (var i = 0; i < this.partsGroups.length; i++) {\n var partsGroup = this.partsGroups[i]; //L2DPartsParam\n for (var j = 0; j < partsGroup.length; j++) {\n partsGroup[j].initIndex(model);\n var partsIndex = partsGroup[j].partsIndex;\n var paramIndex = partsGroup[j].paramIndex;\n if (partsIndex < 0) continue;\n var v /*:Boolean*/ = model.getParamFloat(paramIndex) != 0;\n model.setPartsOpacity(partsIndex, v ? 1.0 : 0.0);\n model.setParamFloat(paramIndex, v ? 1.0 : 0.0);\n if (partsGroup[j].link == null) continue;\n for (var k = 0; k < partsGroup[j].link.length; k++) {\n partsGroup[j].link[k].initIndex(model);\n }\n }\n }\n};\n\n//============================================================\n// L2DPose # normalizePartsOpacityGroup()\n//============================================================\nL2DPose.prototype.normalizePartsOpacityGroup = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/, deltaTimeSec /*float*/) {\n var visibleParts = -1;\n var visibleOpacity = 1.0;\n var CLEAR_TIME_SEC = 0.5;\n var phi = 0.5;\n var maxBackOpacity = 0.15;\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n var paramIndex = partsGroup[i].paramIndex;\n if (partsIndex < 0) continue;if (model.getParamFloat(paramIndex) != 0) {\n if (visibleParts >= 0) {\n break;\n }\n visibleParts = i;\n visibleOpacity = model.getPartsOpacity(partsIndex);\n visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;\n if (visibleOpacity > 1) {\n visibleOpacity = 1;\n }\n }\n }\n if (visibleParts < 0) {\n visibleParts = 0;\n visibleOpacity = 1;\n }\n for (var i = 0; i < partsGroup.length; i++) {\n var partsIndex = partsGroup[i].partsIndex;\n if (partsIndex < 0) continue;if (visibleParts == i) {\n model.setPartsOpacity(partsIndex, visibleOpacity);\n } else {\n var opacity = model.getPartsOpacity(partsIndex);\n var a1;\n if (visibleOpacity < phi) {\n a1 = visibleOpacity * (phi - 1) / phi + 1;\n } else {\n a1 = (1 - visibleOpacity) * phi / (1 - phi);\n }\n var backOp = (1 - a1) * (1 - visibleOpacity);\n if (backOp > maxBackOpacity) {\n a1 = 1 - maxBackOpacity / (1 - visibleOpacity);\n }\n if (opacity > a1) {\n opacity = a1;\n }\n model.setPartsOpacity(partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n// L2DPose # copyOpacityOtherParts()\n//============================================================\nL2DPose.prototype.copyOpacityOtherParts = function (model /*ALive2DModel*/, partsGroup /*L2DPartsParam[]*/) {\n for (var i_group = 0; i_group < partsGroup.length; i_group++) {\n var partsParam = partsGroup[i_group]; //L2DPartsParam\n if (partsParam.link == null) continue;\n if (partsParam.partsIndex < 0) continue;\n var opacity = model.getPartsOpacity(partsParam.partsIndex);\n for (var i_link = 0; i_link < partsParam.link.length; i_link++) {\n var linkParts = partsParam.link[i_link]; //L2DPartsParam\n if (linkParts.partsIndex < 0) continue;\n model.setPartsOpacity(linkParts.partsIndex, opacity);\n }\n }\n};\n\n//============================================================\n//============================================================\n// class L2DPartsParam \n//============================================================\n//============================================================\nfunction L2DPartsParam(id /*String*/) {\n this.paramIndex = -1;\n this.partsIndex = -1;\n this.link = null; // ArrayList\n this.id = id;\n}\n\n//============================================================\n// L2DPartsParam # initIndex()\n//============================================================\nL2DPartsParam.prototype.initIndex = function (model /*ALive2DModel*/) {\n this.paramIndex = model.getParamIndex(\"VISIBLE:\" + this.id);\n this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));\n model.setParamFloat(this.paramIndex, 1);\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DTargetPoint \n//============================================================\n//============================================================\nfunction L2DTargetPoint() {\n this.EPSILON = 0.01; // 変化の最小値(この値以下は無視される)\n this.faceTargetX = 0;\n this.faceTargetY = 0;\n this.faceX = 0;\n this.faceY = 0;\n this.faceVX = 0;\n this.faceVY = 0;\n this.lastTimeSec = 0;\n}\n\n//============================================================\nL2DTargetPoint.FRAME_RATE = 30;\n\n//============================================================\n// L2DTargetPoint # set()\n//============================================================\nL2DTargetPoint.prototype.setPoint = function (x /*float*/, y /*float*/) {\n this.faceTargetX = x;\n this.faceTargetY = y;\n};\n\n//============================================================\n// L2DTargetPoint # getX()\n//============================================================\nL2DTargetPoint.prototype.getX = function () {\n return this.faceX;\n};\n\n//============================================================\n// L2DTargetPoint # getY()\n//============================================================\nL2DTargetPoint.prototype.getY = function () {\n return this.faceY;\n};\n\n//============================================================\n// L2DTargetPoint # update()\n//============================================================\nL2DTargetPoint.prototype.update = function () {\n var TIME_TO_MAX_SPEED = 0.15;\n var FACE_PARAM_MAX_V = 40.0 / 7.5;\n var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;\n if (this.lastTimeSec == 0) {\n this.lastTimeSec = UtSystem.getUserTimeMSec();\n return;\n }\n var curTimeSec = UtSystem.getUserTimeMSec();\n var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;\n this.lastTimeSec = curTimeSec;\n var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;\n var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;\n var dx = this.faceTargetX - this.faceX;\n var dy = this.faceTargetY - this.faceY;\n // if(dx == 0 && dy == 0) return;\n if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;\n var d = Math.sqrt(dx * dx + dy * dy);\n var vx = MAX_V * dx / d;\n var vy = MAX_V * dy / d;\n var ax = vx - this.faceVX;\n var ay = vy - this.faceVY;\n var a = Math.sqrt(ax * ax + ay * ay);\n if (a < -MAX_A || a > MAX_A) {\n ax *= MAX_A / a;\n ay *= MAX_A / a;\n a = MAX_A;\n }\n this.faceVX += ax;\n this.faceVY += ay;\n {\n var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);\n var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);\n if (cur_v > max_v) {\n this.faceVX *= max_v / cur_v;\n this.faceVY *= max_v / cur_v;\n }\n }\n this.faceX += this.faceVX;\n this.faceY += this.faceVY;\n};\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class L2DViewMatrix extends L2DMatrix44\n//============================================================\n//============================================================\nfunction L2DViewMatrix() {\n L2DMatrix44.prototype.constructor.call(this);\n this.screenLeft = null;\n this.screenRight = null;\n this.screenTop = null;\n this.screenBottom = null;\n this.maxLeft = null;\n this.maxRight = null;\n this.maxTop = null;\n this.maxBottom = null;\n this.max = Number.MAX_VALUE;\n this.min = 0;\n}\n\nL2DViewMatrix.prototype = new L2DMatrix44(); //L2DViewMatrix extends L2DMatrix44\n\n//============================================================\n// L2DViewMatrix # getMaxScale()\n//============================================================\nL2DViewMatrix.prototype.getMaxScale = function () {\n return this.max;\n};\n\n//============================================================\n// L2DViewMatrix # getMinScale()\n//============================================================\nL2DViewMatrix.prototype.getMinScale = function () {\n return this.min;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScale()\n//============================================================\nL2DViewMatrix.prototype.setMaxScale = function (v /*float*/) {\n this.max = v;\n};\n\n//============================================================\n// L2DViewMatrix # setMinScale()\n//============================================================\nL2DViewMatrix.prototype.setMinScale = function (v /*float*/) {\n this.min = v;\n};\n\n//============================================================\n// L2DViewMatrix # isMaxScale()\n//============================================================\nL2DViewMatrix.prototype.isMaxScale = function () {\n return this.getScaleX() == this.max;\n};\n\n//============================================================\n// L2DViewMatrix # isMinScale()\n//============================================================\nL2DViewMatrix.prototype.isMinScale = function () {\n return this.getScaleX() == this.min;\n};\n\n//============================================================\n// L2DViewMatrix # adjustTranslate()\n//============================================================\nL2DViewMatrix.prototype.adjustTranslate = function (shiftX /*float*/, shiftY /*float*/) {\n if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft) shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];\n if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight) shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];\n if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop) shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];\n if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom) shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];\n\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # adjustScale()\n//============================================================\nL2DViewMatrix.prototype.adjustScale = function (cx /*float*/, cy /*float*/, scale /*float*/) {\n var targetScale = scale * this.tr[0];\n if (targetScale < this.min) {\n if (this.tr[0] > 0) scale = this.min / this.tr[0];\n } else if (targetScale > this.max) {\n if (this.tr[0] > 0) scale = this.max / this.tr[0];\n }\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, cx, cy, 0, 1];\n var tr2 = [scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n var tr3 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -cx, -cy, 0, 1];\n L2DMatrix44.mul(tr3, this.tr, this.tr);\n L2DMatrix44.mul(tr2, this.tr, this.tr);\n L2DMatrix44.mul(tr1, this.tr, this.tr);\n};\n\n//============================================================\n// L2DViewMatrix # setScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.screenLeft = left;\n this.screenRight = right;\n this.screenTop = top;\n this.screenBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # setMaxScreenRect()\n//============================================================\nL2DViewMatrix.prototype.setMaxScreenRect = function (left /*float*/, right /*float*/, bottom /*float*/, top /*float*/) {\n this.maxLeft = left;\n this.maxRight = right;\n this.maxTop = top;\n this.maxBottom = bottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenLeft()\n//============================================================\nL2DViewMatrix.prototype.getScreenLeft = function () {\n return this.screenLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenRight()\n//============================================================\nL2DViewMatrix.prototype.getScreenRight = function () {\n return this.screenRight;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenBottom()\n//============================================================\nL2DViewMatrix.prototype.getScreenBottom = function () {\n return this.screenBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getScreenTop()\n//============================================================\nL2DViewMatrix.prototype.getScreenTop = function () {\n return this.screenTop;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxLeft()\n//============================================================\nL2DViewMatrix.prototype.getMaxLeft = function () {\n return this.maxLeft;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxRight()\n//============================================================\nL2DViewMatrix.prototype.getMaxRight = function () {\n return this.maxRight;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxBottom()\n//============================================================\nL2DViewMatrix.prototype.getMaxBottom = function () {\n return this.maxBottom;\n};\n\n//============================================================\n// L2DViewMatrix # getMaxTop()\n//============================================================\nL2DViewMatrix.prototype.getMaxTop = function () {\n return this.maxTop;\n};\n\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\n\n//============================================================\n//============================================================\n// class Live2DFramework \n//============================================================\n//============================================================\nfunction Live2DFramework() {}\n\n//============================================================\nLive2DFramework.platformManager = null;\n\n//============================================================\n// static Live2DFramework.getPlatformManager()\n//============================================================\nLive2DFramework.getPlatformManager = function () {\n return Live2DFramework.platformManager;\n};\n\n//============================================================\n// static Live2DFramework.setPlatformManager()\n//============================================================\nLive2DFramework.setPlatformManager = function (platformManager /*IPlatformManager*/) {\n Live2DFramework.platformManager = platformManager;\n};\n\nmodule.exports = {\n L2DTargetPoint: L2DTargetPoint,\n Live2DFramework: Live2DFramework,\n L2DViewMatrix: L2DViewMatrix,\n L2DPose: L2DPose,\n L2DPartsParam: L2DPartsParam,\n L2DPhysics: L2DPhysics,\n L2DMotionManager: L2DMotionManager,\n L2DModelMatrix: L2DModelMatrix,\n L2DMatrix44: L2DMatrix44,\n EYE_STATE: EYE_STATE,\n L2DEyeBlink: L2DEyeBlink,\n L2DExpressionParam: L2DExpressionParam,\n L2DExpressionMotion: L2DExpressionMotion,\n L2DBaseModel: L2DBaseModel\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LAppDefine = {\n\n DEBUG_LOG: false,\n DEBUG_MOUSE_LOG: false,\n // DEBUG_DRAW_HIT_AREA : false, \n // DEBUG_DRAW_ALPHA_MODEL : false, \n\n\n VIEW_MAX_SCALE: 2,\n VIEW_MIN_SCALE: 0.8,\n\n VIEW_LOGICAL_LEFT: -1,\n VIEW_LOGICAL_RIGHT: 1,\n\n VIEW_LOGICAL_MAX_LEFT: -2,\n VIEW_LOGICAL_MAX_RIGHT: 2,\n VIEW_LOGICAL_MAX_BOTTOM: -2,\n VIEW_LOGICAL_MAX_TOP: 2,\n\n PRIORITY_NONE: 0,\n PRIORITY_IDLE: 1,\n PRIORITY_NORMAL: 2,\n PRIORITY_FORCE: 3,\n\n MOTION_GROUP_IDLE: \"idle\",\n MOTION_GROUP_TAP_BODY: \"tap_body\",\n MOTION_GROUP_FLICK_HEAD: \"flick_head\",\n MOTION_GROUP_PINCH_IN: \"pinch_in\",\n MOTION_GROUP_PINCH_OUT: \"pinch_out\",\n MOTION_GROUP_SHAKE: \"shake\",\n\n HIT_AREA_HEAD: \"head\",\n HIT_AREA_BODY: \"body\"\n\n};\n\nmodule.exports = LAppDefine;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\n/**\n * EYHN 修改\n * \n * Copyright © 2016 - 2017 EYHN\n */\n\nfunction MatrixStack() {}\n\nMatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.depth = 0;\n\nMatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nMatrixStack.tmp = new Array(16);\n\nMatrixStack.reset = function () {\n this.depth = 0;\n};\n\nMatrixStack.loadIdentity = function () {\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = i % 5 == 0 ? 1 : 0;\n }\n};\n\nMatrixStack.push = function () {\n var offset = this.depth * 16;\n var nextOffset = (this.depth + 1) * 16;\n\n if (this.matrixStack.length < nextOffset + 16) {\n this.matrixStack.length = nextOffset + 16;\n }\n\n for (var i = 0; i < 16; i++) {\n this.matrixStack[nextOffset + i] = this.currentMatrix[i];\n }\n\n this.depth++;\n};\n\nMatrixStack.pop = function () {\n this.depth--;\n if (this.depth < 0) {\n myError(\"Invalid matrix stack.\");\n this.depth = 0;\n }\n\n var offset = this.depth * 16;\n for (var i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.matrixStack[offset + i];\n }\n};\n\nMatrixStack.getMatrix = function () {\n return this.currentMatrix;\n};\n\nMatrixStack.multMatrix = function (matNew) {\n var i, j, k;\n\n for (i = 0; i < 16; i++) {\n this.tmp[i] = 0;\n }\n\n for (i = 0; i < 4; i++) {\n for (j = 0; j < 4; j++) {\n for (k = 0; k < 4; k++) {\n this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++) {\n this.currentMatrix[i] = this.tmp[i];\n }\n};\n\nmodule.exports = MatrixStack;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setContext = setContext;\nexports.getContext = getContext;\n\nvar context = undefined;\n\nfunction setContext(webglContext) {\n context = webglContext;\n}\n\nfunction getContext() {\n return context;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(9);\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _LAppLive2DManager = __webpack_require__(5);\n\nvar _LAppLive2DManager2 = _interopRequireDefault(_LAppLive2DManager);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nvar _webglcontext = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// window.onerror = function (msg, url, line, col, error) {\n// let errmsg = \"file:\" + url + \"
line:\" + line + \" \" + msg;\n// console.error(errmsg);\n// }\n\nvar platform = window.navigator.platform.toLowerCase();\n\nvar live2DMgr = new _LAppLive2DManager2.default();\n\nvar isDrawStart = false;\n\nvar gl = null;\n\nvar canvas = null;\n\nvar dragMgr = null;\n\nvar viewMatrix = null;\n\nvar projMatrix = null;\n\nvar deviceToScreen = null;\n\nvar drag = false;\n\nvar oldLen = 0;\n\nvar lastMouseX = 0;\n\nvar lastMouseY = 0;\n\nvar isModelShown = 0;\n\nvar modelurl = \"\";\n\nvar head_pos = 0.5;\n\nfunction initL2dCanvas(canvasId) {\n canvas = document.getElementById(canvasId);\n if (canvas.addEventListener) {\n //canvas.addEventListener(\"mousewheel\", mouseEvent);\n window.addEventListener(\"click\", mouseEvent);\n window.addEventListener(\"mousedown\", mouseEvent);\n window.addEventListener(\"mousemove\", mouseEvent);\n window.addEventListener(\"mouseup\", mouseEvent);\n document.addEventListener(\"mouseleave\", mouseEvent);\n //canvas.addEventListener(\"contextmenu\", mouseEvent);\n window.addEventListener(\"touchstart\", touchEvent);\n window.addEventListener(\"touchend\", touchEvent);\n window.addEventListener(\"touchmove\", touchEvent);\n }\n}\n\nfunction init(modelurl) {\n var width = canvas.width;\n var height = canvas.height;\n\n dragMgr = new _Live2DFramework.L2DTargetPoint();\n\n var ratio = height / width;\n var left = _LAppDefine2.default.VIEW_LOGICAL_LEFT;\n var right = _LAppDefine2.default.VIEW_LOGICAL_RIGHT;\n var bottom = -ratio;\n var top = ratio;\n\n viewMatrix = new _Live2DFramework.L2DViewMatrix();\n\n viewMatrix.setScreenRect(left, right, bottom, top);\n\n viewMatrix.setMaxScreenRect(_LAppDefine2.default.VIEW_LOGICAL_MAX_LEFT, _LAppDefine2.default.VIEW_LOGICAL_MAX_RIGHT, _LAppDefine2.default.VIEW_LOGICAL_MAX_BOTTOM, _LAppDefine2.default.VIEW_LOGICAL_MAX_TOP);\n\n viewMatrix.setMaxScale(_LAppDefine2.default.VIEW_MAX_SCALE);\n viewMatrix.setMinScale(_LAppDefine2.default.VIEW_MIN_SCALE);\n\n projMatrix = new _Live2DFramework.L2DMatrix44();\n projMatrix.multScale(1, width / height);\n\n deviceToScreen = new _Live2DFramework.L2DMatrix44();\n deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);\n deviceToScreen.multScale(2 / width, -2 / width);\n\n gl = getWebGLContext();\n (0, _webglcontext.setContext)(gl);\n if (!gl) {\n console.error(\"Failed to create WebGL context.\");\n return;\n }\n window.Live2D.setGL(gl);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n changeModel(modelurl);\n startDraw();\n}\n\nfunction startDraw() {\n if (!isDrawStart) {\n isDrawStart = true;\n (function tick() {\n draw();\n var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;\n\n requestAnimationFrame(tick, canvas);\n })();\n }\n}\n\nfunction draw() {\n _MatrixStack2.default.reset();\n _MatrixStack2.default.loadIdentity();\n dragMgr.update();\n live2DMgr.setDrag(dragMgr.getX(), dragMgr.getY());\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n _MatrixStack2.default.multMatrix(projMatrix.getArray());\n _MatrixStack2.default.multMatrix(viewMatrix.getArray());\n _MatrixStack2.default.push();\n\n for (var i = 0; i < live2DMgr.numModels(); i++) {\n var model = live2DMgr.getModel(i);\n\n if (model == null) return;\n\n if (model.initialized && !model.updating) {\n model.update();\n model.draw(gl);\n }\n }\n _MatrixStack2.default.pop();\n}\n\nfunction changeModel(modelurl) {\n live2DMgr.reloadFlg = true;\n live2DMgr.count++;\n live2DMgr.changeModel(gl, modelurl);\n}\n\nfunction modelScaling(scale) {\n var isMaxScale = viewMatrix.isMaxScale();\n var isMinScale = viewMatrix.isMinScale();\n\n viewMatrix.adjustScale(0, 0, scale);\n\n if (!isMaxScale) {\n if (viewMatrix.isMaxScale()) {\n live2DMgr.maxScaleEvent();\n }\n }\n\n if (!isMinScale) {\n if (viewMatrix.isMinScale()) {\n live2DMgr.minScaleEvent();\n }\n }\n}\n\nfunction transformRange(center, transform, range) {\n var a = {\n x: transform.x - center.x,\n y: transform.y - center.y\n };\n var r = Math.sqrt(Math.pow(a.x, 2) + Math.pow(a.y, 2));\n if (r > range) {\n a = {\n x: a.x / r * range + center.x,\n y: a.y / r * range + center.y\n };\n return a;\n } else {\n return transform;\n }\n}\n\nfunction dot(A, B) {\n return A.x * B.x + A.y * B.y;\n}\n\nfunction normalize(x, y) {\n var length = Math.sqrt(x * x + y * y);\n return {\n x: x / length,\n y: y / length\n };\n}\n\nfunction transformRect(center, transform, rect) {\n if (transform.x < rect.left + rect.width && transform.y < rect.top + rect.height && transform.x > rect.left && transform.y > rect.top) return transform;\n var Len_X = center.x - transform.x;\n var Len_Y = center.y - transform.y;\n\n function angle(Len_X, Len_Y) {\n return Math.acos(dot({\n x: 0,\n y: 1\n }, normalize(Len_X, Len_Y))) * 180 / Math.PI;\n }\n\n var angleTarget = angle(Len_X, Len_Y);\n if (transform.x < center.x) angleTarget = 360 - angleTarget;\n var angleLeftTop = 360 - angle(rect.left - center.x, (rect.top - center.y) * -1);\n var angleLeftBottom = 360 - angle(rect.left - center.x, (rect.top + rect.height - center.y) * -1);\n var angleRightTop = angle(rect.left + rect.width - center.x, (rect.top - center.y) * -1);\n var angleRightBottom = angle(rect.left + rect.width - center.x, (rect.top + rect.height - center.y) * -1);\n var scale = Len_Y / Len_X;\n var res = {};\n\n if (angleTarget < angleRightTop) {\n var y3 = rect.top - center.y;\n var x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n };\n } else if (angleTarget < angleRightBottom) {\n var _x = rect.left + rect.width - center.x;\n var _y = _x * scale;\n res = {\n y: center.y + _y,\n x: center.x + _x\n };\n } else if (angleTarget < angleLeftBottom) {\n var _y2 = rect.top + rect.height - center.y;\n var _x2 = _y2 / scale;\n res = {\n y: center.y + _y2,\n x: center.x + _x2\n };\n } else if (angleTarget < angleLeftTop) {\n var _x3 = center.x - rect.left;\n var _y3 = _x3 * scale;\n res = {\n y: center.y - _y3,\n x: center.x - _x3\n };\n } else {\n var _y4 = rect.top - center.y;\n var _x4 = _y4 / scale;\n res = {\n y: center.y + _y4,\n x: center.x + _x4\n };\n }\n\n return res;\n}\n\nfunction modelTurnHead(event) {\n drag = true;\n\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log(\"onMouseDown device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n lastMouseX = sx;\n lastMouseY = sy;\n\n dragMgr.setPoint(vx, vy);\n\n live2DMgr.tapEvent(vx, vy);\n}\n\nfunction followPointer(event) {\n var rect = canvas.getBoundingClientRect();\n\n var sx = transformScreenX(event.clientX - rect.left);\n var sy = transformScreenY(event.clientY - rect.top);\n var target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect);\n var vx = transformViewX(target.x - rect.left);\n var vy = transformViewY(target.y - rect.top);\n\n if (_LAppDefine2.default.DEBUG_MOUSE_LOG) console.log(\"onMouseMove device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n if (drag) {\n lastMouseX = sx;\n lastMouseY = sy;\n dragMgr.setPoint(vx, vy);\n }\n}\n\nfunction lookFront() {\n if (drag) {\n drag = false;\n }\n dragMgr.setPoint(0, 0);\n}\n\nfunction mouseEvent(e) {\n //e.preventDefault();\n if (e.type == \"mousewheel\") {\n // if (e.clientX < 0 || canvas.clientWidth < e.clientX || \n // e.clientY < 0 || canvas.clientHeight < e.clientY)\n // {\n // return;\n // }\n // if (e.wheelDelta > 0) modelScaling(1.1); \n // else modelScaling(0.9); \n } else if (e.type == \"mousedown\") {\n if (\"button\" in e && e.button != 0) return;\n // modelTurnHead(e);\n } else if (e.type == \"mousemove\") {\n modelTurnHead(e);\n } else if (e.type == \"mouseup\") {\n if (\"button\" in e && e.button != 0) return;\n // lookFront();\n } else if (e.type == \"mouseleave\") {\n lookFront();\n }\n}\n\nfunction touchEvent(e) {\n var touch = e.touches[0];\n if (e.type == \"touchstart\") {\n if (e.touches.length == 1) modelTurnHead(touch);\n // onClick(touch);\n } else if (e.type == \"touchmove\") {\n followPointer(touch);\n } else if (e.type == \"touchend\") {\n lookFront();\n }\n}\n\nfunction transformViewX(deviceX) {\n var screenX = deviceToScreen.transformX(deviceX);\n return viewMatrix.invertTransformX(screenX);\n}\n\nfunction transformViewY(deviceY) {\n var screenY = deviceToScreen.transformY(deviceY);\n return viewMatrix.invertTransformY(screenY);\n}\n\nfunction transformScreenX(deviceX) {\n return deviceToScreen.transformX(deviceX);\n}\n\nfunction transformScreenY(deviceY) {\n return deviceToScreen.transformY(deviceY);\n}\n\nfunction getWebGLContext() {\n var NAMES = [\"webgl\", \"experimental-webgl\", \"webkit-3d\", \"moz-webgl\"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};\n\nfunction loadlive2d(id, modelurl, headPos) {\n head_pos = typeof headPos === 'undefined' ? 0.5 : headPos;\n initL2dCanvas(id);\n init(modelurl);\n}\n\nwindow.loadlive2d = loadlive2d;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = LAppLive2DManager;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _PlatformManager = __webpack_require__(7);\n\nvar _PlatformManager2 = _interopRequireDefault(_PlatformManager);\n\nvar _LAppModel = __webpack_require__(6);\n\nvar _LAppModel2 = _interopRequireDefault(_LAppModel);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction LAppLive2DManager() {\n // console.log(\"--> LAppLive2DManager()\");\n\n\n this.models = [];\n\n this.count = -1;\n this.reloadFlg = false;\n\n Live2D.init();\n _Live2DFramework.Live2DFramework.setPlatformManager(new _PlatformManager2.default());\n}\n\nLAppLive2DManager.prototype.createModel = function () {\n\n var model = new _LAppModel2.default();\n this.models.push(model);\n\n return model;\n};\n\nLAppLive2DManager.prototype.changeModel = function (gl, modelurl) {\n // console.log(\"--> LAppLive2DManager.update(gl)\");\n\n if (this.reloadFlg) {\n\n this.reloadFlg = false;\n\n var thisRef = this;\n this.releaseModel(0, gl);\n this.createModel();\n this.models[0].load(gl, modelurl);\n }\n};\n\nLAppLive2DManager.prototype.getModel = function (no) {\n // console.log(\"--> LAppLive2DManager.getModel(\" + no + \")\");\n\n if (no >= this.models.length) return null;\n\n return this.models[no];\n};\n\nLAppLive2DManager.prototype.releaseModel = function (no, gl) {\n // console.log(\"--> LAppLive2DManager.releaseModel(\" + no + \")\");\n\n if (this.models.length <= no) return;\n\n this.models[no].release(gl);\n\n delete this.models[no];\n this.models.splice(no, 1);\n};\n\nLAppLive2DManager.prototype.numModels = function () {\n return this.models.length;\n};\n\nLAppLive2DManager.prototype.setDrag = function (x, y) {\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].setDrag(x, y);\n }\n};\n\nLAppLive2DManager.prototype.maxScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Max scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_IN, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.minScaleEvent = function () {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Min scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_PINCH_OUT, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n};\n\nLAppLive2DManager.prototype.tapEvent = function (x, y) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"tapEvent view x:\" + x + \" y:\" + y);\n\n for (var i = 0; i < this.models.length; i++) {\n\n if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_HEAD, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Tap face.\");\n\n this.models[i].setRandomExpression();\n } else if (this.models[i].hitTest(_LAppDefine2.default.HIT_AREA_BODY, x, y)) {\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Tap body.\" + \" models[\" + i + \"]\");\n\n this.models[i].startRandomMotion(_LAppDefine2.default.MOTION_GROUP_TAP_BODY, _LAppDefine2.default.PRIORITY_NORMAL);\n }\n }\n\n return true;\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = LAppModel;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nvar _ModelSettingJson = __webpack_require__(8);\n\nvar _ModelSettingJson2 = _interopRequireDefault(_ModelSettingJson);\n\nvar _LAppDefine = __webpack_require__(1);\n\nvar _LAppDefine2 = _interopRequireDefault(_LAppDefine);\n\nvar _MatrixStack = __webpack_require__(2);\n\nvar _MatrixStack2 = _interopRequireDefault(_MatrixStack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//============================================================\n//============================================================\n// class LAppModel extends L2DBaseModel \n//============================================================\n//============================================================\nfunction LAppModel() {\n //L2DBaseModel.apply(this, arguments);\n _Live2DFramework.L2DBaseModel.prototype.constructor.call(this);\n\n this.modelHomeDir = \"\";\n this.modelSetting = null;\n this.tmpMatrix = [];\n}\n\nLAppModel.prototype = new _Live2DFramework.L2DBaseModel();\n\nLAppModel.prototype.load = function (gl, modelSettingPath, callback) {\n this.setUpdating(true);\n this.setInitialized(false);\n\n this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf(\"/\") + 1);\n\n this.modelSetting = new _ModelSettingJson2.default();\n\n var thisRef = this;\n\n this.modelSetting.loadModelSetting(modelSettingPath, function () {\n\n var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();\n thisRef.loadModelData(path, function (model) {\n\n for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++) {\n\n var texPaths = thisRef.modelHomeDir + thisRef.modelSetting.getTextureFile(i);\n\n thisRef.loadTexture(i, texPaths, function () {\n\n if (thisRef.isTexLoaded) {\n\n if (thisRef.modelSetting.getExpressionNum() > 0) {\n\n thisRef.expressions = {};\n\n for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++) {\n var expName = thisRef.modelSetting.getExpressionName(j);\n var expFilePath = thisRef.modelHomeDir + thisRef.modelSetting.getExpressionFile(j);\n\n thisRef.loadExpression(expName, expFilePath);\n }\n } else {\n thisRef.expressionManager = null;\n thisRef.expressions = {};\n }\n\n if (thisRef.eyeBlink == null) {\n thisRef.eyeBlink = new _Live2DFramework.L2DEyeBlink();\n }\n\n if (thisRef.modelSetting.getPhysicsFile() != null) {\n thisRef.loadPhysics(thisRef.modelHomeDir + thisRef.modelSetting.getPhysicsFile());\n } else {\n thisRef.physics = null;\n }\n\n if (thisRef.modelSetting.getPoseFile() != null) {\n thisRef.loadPose(thisRef.modelHomeDir + thisRef.modelSetting.getPoseFile(), function () {\n thisRef.pose.updateParam(thisRef.live2DModel);\n });\n } else {\n thisRef.pose = null;\n }\n\n if (thisRef.modelSetting.getLayout() != null) {\n var layout = thisRef.modelSetting.getLayout();\n if (layout[\"width\"] != null) thisRef.modelMatrix.setWidth(layout[\"width\"]);\n if (layout[\"height\"] != null) thisRef.modelMatrix.setHeight(layout[\"height\"]);\n\n if (layout[\"x\"] != null) thisRef.modelMatrix.setX(layout[\"x\"]);\n if (layout[\"y\"] != null) thisRef.modelMatrix.setY(layout[\"y\"]);\n if (layout[\"center_x\"] != null) thisRef.modelMatrix.centerX(layout[\"center_x\"]);\n if (layout[\"center_y\"] != null) thisRef.modelMatrix.centerY(layout[\"center_y\"]);\n if (layout[\"top\"] != null) thisRef.modelMatrix.top(layout[\"top\"]);\n if (layout[\"bottom\"] != null) thisRef.modelMatrix.bottom(layout[\"bottom\"]);\n if (layout[\"left\"] != null) thisRef.modelMatrix.left(layout[\"left\"]);\n if (layout[\"right\"] != null) thisRef.modelMatrix.right(layout[\"right\"]);\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++) {\n\n thisRef.live2DModel.setParamFloat(thisRef.modelSetting.getInitParamID(j), thisRef.modelSetting.getInitParamValue(j));\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++) {\n\n thisRef.live2DModel.setPartsOpacity(thisRef.modelSetting.getInitPartsVisibleID(j), thisRef.modelSetting.getInitPartsVisibleValue(j));\n }\n\n thisRef.live2DModel.saveParam();\n // thisRef.live2DModel.setGL(gl);\n\n\n thisRef.preloadMotionGroup(_LAppDefine2.default.MOTION_GROUP_IDLE);\n thisRef.mainMotionManager.stopAllMotions();\n\n thisRef.setUpdating(false);\n thisRef.setInitialized(true);\n\n if (typeof callback == \"function\") callback();\n }\n });\n }\n });\n });\n};\n\nLAppModel.prototype.release = function (gl) {\n // this.live2DModel.deleteTextures();\n var pm = Live2DFramework.getPlatformManager();\n\n gl.deleteTexture(pm.texture);\n};\n\nLAppModel.prototype.preloadMotionGroup = function (name) {\n var thisRef = this;\n\n for (var i = 0; i < this.modelSetting.getMotionNum(name); i++) {\n var file = this.modelSetting.getMotionFile(name, i);\n this.loadMotion(file, this.modelHomeDir + file, function (motion) {\n motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));\n motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i));\n });\n }\n};\n\nLAppModel.prototype.update = function () {\n // console.log(\"--> LAppModel.update()\");\n\n if (this.live2DModel == null) {\n if (_LAppDefine2.default.DEBUG_LOG) console.error(\"Failed to update.\");\n\n return;\n }\n\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n var timeSec = timeMSec / 1000.0;\n var t = timeSec * 2 * Math.PI;\n\n if (this.mainMotionManager.isFinished()) {\n\n this.startRandomMotion(_LAppDefine2.default.MOTION_GROUP_IDLE, _LAppDefine2.default.PRIORITY_IDLE);\n }\n\n //-----------------------------------------------------------------\t\t\n\n\n this.live2DModel.loadParam();\n\n var update = this.mainMotionManager.updateParam(this.live2DModel);\n if (!update) {\n\n if (this.eyeBlink != null) {\n this.eyeBlink.updateParam(this.live2DModel);\n }\n }\n\n this.live2DModel.saveParam();\n\n //-----------------------------------------------------------------\t\t\n\n\n if (this.expressionManager != null && this.expressions != null && !this.expressionManager.isFinished()) {\n this.expressionManager.updateParam(this.live2DModel);\n }\n\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", this.dragX * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", this.dragY * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", this.dragX * this.dragY * -30, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", this.dragX * 10, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_X\", this.dragX, 1);\n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_Y\", this.dragY, 1);\n\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", Number(15 * Math.sin(t / 6.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", Number(8 * Math.sin(t / 3.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", Number(10 * Math.sin(t / 5.5345)), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", Number(4 * Math.sin(t / 15.5345)), 0.5);\n this.live2DModel.setParamFloat(\"PARAM_BREATH\", Number(0.5 + 0.5 * Math.sin(t / 3.2345)), 1);\n\n if (this.physics != null) {\n this.physics.updateParam(this.live2DModel);\n }\n\n if (this.lipSync == null) {\n this.live2DModel.setParamFloat(\"PARAM_MOUTH_OPEN_Y\", this.lipSyncValue);\n }\n\n if (this.pose != null) {\n this.pose.updateParam(this.live2DModel);\n }\n\n this.live2DModel.update();\n};\n\nLAppModel.prototype.setRandomExpression = function () {\n var tmp = [];\n for (var name in this.expressions) {\n tmp.push(name);\n }\n\n var no = parseInt(Math.random() * tmp.length);\n\n this.setExpression(tmp[no]);\n};\n\nLAppModel.prototype.startRandomMotion = function (name, priority) {\n var max = this.modelSetting.getMotionNum(name);\n var no = parseInt(Math.random() * max);\n this.startMotion(name, no, priority);\n};\n\nLAppModel.prototype.startMotion = function (name, no, priority) {\n // console.log(\"startMotion : \" + name + \" \" + no + \" \" + priority);\n\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n if (motionName == null || motionName == \"\") {\n if (_LAppDefine2.default.DEBUG_LOG) console.error(\"Failed to motion.\");\n return;\n }\n\n if (priority == _LAppDefine2.default.PRIORITY_FORCE) {\n this.mainMotionManager.setReservePriority(priority);\n } else if (!this.mainMotionManager.reserveMotion(priority)) {\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Motion is running.\");\n return;\n }\n\n var thisRef = this;\n var motion;\n\n if (this.motions[name] == null) {\n this.loadMotion(null, this.modelHomeDir + motionName, function (mtn) {\n motion = mtn;\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n });\n } else {\n motion = this.motions[name];\n\n thisRef.setFadeInFadeOut(name, no, priority, motion);\n }\n};\n\nLAppModel.prototype.setFadeInFadeOut = function (name, no, priority, motion) {\n var motionName = this.modelSetting.getMotionFile(name, no);\n\n motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));\n motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Start motion : \" + motionName);\n\n if (this.modelSetting.getMotionSound(name, no) == null) {\n this.mainMotionManager.startMotionPrio(motion, priority);\n } else {\n var soundName = this.modelSetting.getMotionSound(name, no);\n // var player = new Sound(this.modelHomeDir + soundName);\n\n var snd = document.createElement(\"audio\");\n snd.src = this.modelHomeDir + soundName;\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Start sound : \" + soundName);\n\n snd.play();\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n};\n\nLAppModel.prototype.setExpression = function (name) {\n var motion = this.expressions[name];\n\n if (_LAppDefine2.default.DEBUG_LOG) console.log(\"Expression : \" + name);\n\n this.expressionManager.startMotion(motion, false);\n};\n\nLAppModel.prototype.draw = function (gl) {\n //console.log(\"--> LAppModel.draw()\");\n\n // if(this.live2DModel == null) return;\n\n\n _MatrixStack2.default.push();\n\n _MatrixStack2.default.multMatrix(this.modelMatrix.getArray());\n\n this.tmpMatrix = _MatrixStack2.default.getMatrix();\n this.live2DModel.setMatrix(this.tmpMatrix);\n this.live2DModel.draw();\n\n _MatrixStack2.default.pop();\n};\n\nLAppModel.prototype.hitTest = function (id, testX, testY) {\n var len = this.modelSetting.getHitAreaNum();\n for (var i = 0; i < len; i++) {\n if (id == this.modelSetting.getHitAreaName(i)) {\n var drawID = this.modelSetting.getHitAreaID(i);\n\n return this.hitTestSimple(drawID, testX, testY);\n }\n }\n\n return false;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = PlatformManager;\n\nvar _webglcontext = __webpack_require__(3);\n\n//============================================================\n//============================================================\n// class PlatformManager extend IPlatformManager\n//============================================================\n//============================================================\nfunction PlatformManager() {}\n\n//============================================================\n// PlatformManager # loadBytes()\n//============================================================\n/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\nPlatformManager.prototype.loadBytes = function (path /*String*/, callback) {\n var request = new XMLHttpRequest();\n request.open(\"GET\", path, true);\n request.responseType = \"arraybuffer\";\n request.onload = function () {\n switch (request.status) {\n case 200:\n callback(request.response);\n break;\n default:\n console.error(\"Failed to load (\" + request.status + \") : \" + path);\n break;\n }\n };\n request.send(null);\n //return request;\n};\n\n//============================================================\n// PlatformManager # loadString()\n//============================================================\nPlatformManager.prototype.loadString = function (path /*String*/) {\n\n this.loadBytes(path, function (buf) {\n return buf;\n });\n};\n\n//============================================================\n// PlatformManager # loadLive2DModel()\n//============================================================\nPlatformManager.prototype.loadLive2DModel = function (path /*String*/, callback) {\n var model = null;\n\n // load moc\n this.loadBytes(path, function (buf) {\n model = Live2DModelWebGL.loadModel(buf);\n callback(model);\n });\n};\n\n//============================================================\n// PlatformManager # loadTexture()\n//============================================================\nPlatformManager.prototype.loadTexture = function (model /*ALive2DModel*/, no /*int*/, path /*String*/, callback) {\n // load textures\n var loadedImage = new Image();\n loadedImage.src = path;\n\n var thisRef = this;\n loadedImage.onload = function () {\n // create texture\n var gl = (0, _webglcontext.getContext)();\n var texture = gl.createTexture();\n if (!texture) {\n console.error(\"Failed to generate gl texture name.\");return -1;\n }\n\n if (model.isPremultipliedAlpha() == false) {\n // 乗算済アルファテクスチャ以外の場合\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n }\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, loadedImage);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n model.setTexture(no, texture);\n\n // テクスチャオブジェクトを解放\n texture = null;\n\n if (typeof callback == \"function\") callback();\n };\n\n loadedImage.onerror = function () {\n console.error(\"Failed to load image : \" + path);\n };\n};\n\n//============================================================\n// PlatformManager # parseFromBytes(buf)\n\n//============================================================\nPlatformManager.prototype.jsonParseFromBytes = function (buf) {\n\n var jsonStr;\n\n var bomCode = new Uint8Array(buf, 0, 3);\n if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3));\n } else {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n\n var jsonObj = JSON.parse(jsonStr);\n\n return jsonObj;\n};\n\n//============================================================\n// PlatformManager # log()\n//============================================================\nPlatformManager.prototype.log = function (txt /*String*/) {\n //console.log(txt);\n};\n\nfunction getWebGLContext(canvas) {\n var NAMES = [\"webgl\", \"experimental-webgl\", \"webkit-3d\", \"moz-webgl\"];\n for (var i = 0; i < NAMES.length; i++) {\n try {\n var ctx = canvas.getContext(NAMES[i], { premultipliedAlpha: true });\n if (ctx) return ctx;\n } catch (e) {}\n }\n return null;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ModelSettingJson;\n\nvar _Live2DFramework = __webpack_require__(0);\n\nfunction ModelSettingJson() {\n this.NAME = \"name\";\n this.ID = \"id\";\n this.MODEL = \"model\";\n this.TEXTURES = \"textures\";\n this.HIT_AREAS = \"hit_areas\";\n this.PHYSICS = \"physics\";\n this.POSE = \"pose\";\n this.EXPRESSIONS = \"expressions\";\n this.MOTION_GROUPS = \"motions\";\n this.SOUND = \"sound\";\n this.FADE_IN = \"fade_in\";\n this.FADE_OUT = \"fade_out\";\n this.LAYOUT = \"layout\";\n this.INIT_PARAM = \"init_param\";\n this.INIT_PARTS_VISIBLE = \"init_parts_visible\";\n this.VALUE = \"val\";\n this.FILE = \"file\";\n\n this.json = {};\n}\n\nModelSettingJson.prototype.loadModelSetting = function (path, callback) {\n var thisRef = this;\n var pm = _Live2DFramework.Live2DFramework.getPlatformManager();\n pm.loadBytes(path, function (buf) {\n var str = String.fromCharCode.apply(null, new Uint8Array(buf));\n thisRef.json = JSON.parse(str);\n callback();\n });\n};\n\nModelSettingJson.prototype.getTextureFile = function (n) {\n if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null) return null;\n\n return this.json[this.TEXTURES][n];\n};\n\nModelSettingJson.prototype.getModelFile = function () {\n return this.json[this.MODEL];\n};\n\nModelSettingJson.prototype.getTextureNum = function () {\n if (this.json[this.TEXTURES] == null) return 0;\n\n return this.json[this.TEXTURES].length;\n};\n\nModelSettingJson.prototype.getHitAreaNum = function () {\n if (this.json[this.HIT_AREAS] == null) return 0;\n\n return this.json[this.HIT_AREAS].length;\n};\n\nModelSettingJson.prototype.getHitAreaID = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.ID];\n};\n\nModelSettingJson.prototype.getHitAreaName = function (n) {\n if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;\n\n return this.json[this.HIT_AREAS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getPhysicsFile = function () {\n return this.json[this.PHYSICS];\n};\n\nModelSettingJson.prototype.getPoseFile = function () {\n return this.json[this.POSE];\n};\n\nModelSettingJson.prototype.getExpressionNum = function () {\n return this.json[this.EXPRESSIONS] == null ? 0 : this.json[this.EXPRESSIONS].length;\n};\n\nModelSettingJson.prototype.getExpressionFile = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.FILE];\n};\n\nModelSettingJson.prototype.getExpressionName = function (n) {\n if (this.json[this.EXPRESSIONS] == null) return null;\n return this.json[this.EXPRESSIONS][n][this.NAME];\n};\n\nModelSettingJson.prototype.getLayout = function () {\n return this.json[this.LAYOUT];\n};\n\nModelSettingJson.prototype.getInitParamNum = function () {\n return this.json[this.INIT_PARAM] == null ? 0 : this.json[this.INIT_PARAM].length;\n};\n\nModelSettingJson.prototype.getMotionNum = function (name) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null) return 0;\n\n return this.json[this.MOTION_GROUPS][name].length;\n};\n\nModelSettingJson.prototype.getMotionFile = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FILE];\n};\n\nModelSettingJson.prototype.getMotionSound = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null) return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.SOUND];\n};\n\nModelSettingJson.prototype.getMotionFadeIn = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN];\n};\n\nModelSettingJson.prototype.getMotionFadeOut = function (name, n) {\n if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null) return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT];\n};\n\nModelSettingJson.prototype.getInitParamID = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return null;\n\n return this.json[this.INIT_PARAM][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitParamValue = function (n) {\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return NaN;\n\n return this.json[this.INIT_PARAM][n][this.VALUE];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleNum = function () {\n return this.json[this.INIT_PARTS_VISIBLE] == null ? 0 : this.json[this.INIT_PARTS_VISIBLE].length;\n};\n\nModelSettingJson.prototype.getInitPartsVisibleID = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return null;\n return this.json[this.INIT_PARTS_VISIBLE][n][this.ID];\n};\n\nModelSettingJson.prototype.getInitPartsVisibleValue = function (n) {\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return NaN;\n\n return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE];\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(System) {\n\n(function () {\n var j = true;function aa() {\n if (j) {\n return;\n }this._$MT = null;this._$5S = null;this._$NP = 0;aa._$42++;this._$5S = new y(this);\n }aa._$0s = 1;aa._$4s = 2;aa._$42 = 0;aa._$62 = function (aQ, aU) {\n try {\n if (aU instanceof ArrayBuffer) {\n aU = new DataView(aU);\n }if (!(aU instanceof DataView)) {\n throw new J(\"_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer\");\n }var aS = new K(aU);var aM = aS._$ST();var aK = aS._$ST();var aJ = aS._$ST();var aN;if (aM == 109 && aK == 111 && aJ == 99) {\n aN = aS._$ST();\n } else {\n throw new J(\"_$gi _$C _$li , _$Q0 _$P0.\");\n }aS._$gr(aN);if (aN > ay._$T7) {\n aQ._$NP |= aa._$4s;var aR = ay._$T7;var aI = \"_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : \" + aR + \" < _$f0 : \" + aN + \" )@_$SS#loadModel()\\n\";throw new J(aI);\n }var aL = aS._$nP();if (aN >= ay._$s7) {\n var aH = aS._$9T();var aT = aS._$9T();if (aH != -30584 || aT != -30584) {\n aQ._$NP |= aa._$0s;throw new J(\"_$gi _$C _$li , _$0 _$6 _$Ui.\");\n }\n }aQ._$KS(aL);var aP = aQ.getModelContext();aP.setDrawParam(aQ.getDrawParam());aP.init();\n } catch (aO) {\n q._$Rb(aO);\n }\n };aa.prototype._$KS = function (aH) {\n this._$MT = aH;\n };aa.prototype.getModelImpl = function () {\n if (this._$MT == null) {\n this._$MT = new w();this._$MT._$zP();\n }return this._$MT;\n };aa.prototype.getCanvasWidth = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasWidth();\n };aa.prototype.getCanvasHeight = function () {\n if (this._$MT == null) {\n return 0;\n }return this._$MT.getCanvasHeight();\n };aa.prototype.getParamFloat = function (aH) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }return this._$5S.getParamFloat(aH);\n };aa.prototype.setParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 - aI) + aJ * aI);\n };aa.prototype.addToParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) + aJ * aI);\n };aa.prototype.multParamFloat = function (aH, aJ, aI) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getParamIndex(z.getID(aH));\n }if (arguments.length < 3) {\n aI = 1;\n }this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 + (aJ - 1) * aI));\n };aa.prototype.getParamIndex = function (aH) {\n return this._$5S.getParamIndex(z.getID(aH));\n };aa.prototype.loadParam = function () {\n this._$5S.loadParam();\n };aa.prototype.saveParam = function () {\n this._$5S.saveParam();\n };aa.prototype.init = function () {\n this._$5S.init();\n };aa.prototype.update = function () {\n this._$5S.update();\n };aa.prototype._$Rs = function () {\n q._$li(\"_$60 _$PT _$Rs()\");return -1;\n };aa.prototype._$Ds = function (aH) {\n q._$li(\"_$60 _$PT _$SS#_$Ds() \\n\");\n };aa.prototype._$K2 = function () {};aa.prototype.draw = function () {};aa.prototype.getModelContext = function () {\n return this._$5S;\n };aa.prototype._$s2 = function () {\n return this._$NP;\n };aa.prototype._$P7 = function (aK, aR, aH, a0) {\n var aU = -1;var aY = 0;var aM = this;var aJ = 0.5;var aI = 0.15;var aX = true;if (aH == 0) {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aO = aR[aV];var aS = aM.getParamFloat(aP) != 0;aM.setPartsOpacity(aO, aS ? 1 : 0);\n }return;\n } else {\n if (aK.length == 1) {\n var aP = aK[0];var aT = aM.getParamFloat(aP) != 0;var aO = aR[0];var aQ = aM.getPartsOpacity(aO);var aW = aH / a0;if (aT) {\n aQ += aW;if (aQ > 1) {\n aQ = 1;\n }\n } else {\n aQ -= aW;if (aQ < 0) {\n aQ = 0;\n }\n }aM.setPartsOpacity(aO, aQ);\n } else {\n for (var aV = 0; aV < aK.length; aV++) {\n var aP = aK[aV];var aS = aM.getParamFloat(aP) != 0;if (aS) {\n if (aU >= 0) {\n break;\n }aU = aV;var aO = aR[aV];aY = aM.getPartsOpacity(aO);aY += aH / a0;if (aY > 1) {\n aY = 1;\n }\n }\n }if (aU < 0) {\n console.log(\"No _$wi _$q0/ _$U default[%s]\", aK[0]);aU = 0;aY = 1;aM.loadParam();aM.setParamFloat(aK[aU], aY);aM.saveParam();\n }for (var aV = 0; aV < aK.length; aV++) {\n var aO = aR[aV];if (aU == aV) {\n aM.setPartsOpacity(aO, aY);\n } else {\n var aL = aM.getPartsOpacity(aO);var aZ;if (aY < aJ) {\n aZ = aY * (aJ - 1) / aJ + 1;\n } else {\n aZ = (1 - aY) * aJ / (1 - aJ);\n }if (aX) {\n var aN = (1 - aZ) * (1 - aY);if (aN > aI) {\n aZ = 1 - aI / (1 - aY);\n }\n }if (aL > aZ) {\n aL = aZ;\n }aM.setPartsOpacity(aO, aL);\n }\n }\n }\n }\n };aa.prototype.setPartsOpacity = function (aI, aH) {\n if (typeof aI != \"number\") {\n aI = this._$5S.getPartsDataIndex(i.getID(aI));\n }this._$5S.setPartsOpacity(aI, aH);\n };aa.prototype.getPartsDataIndex = function (aH) {\n if (!(aH instanceof i)) {\n aH = i.getID(aH);\n }return this._$5S.getPartsDataIndex(aH);\n };aa.prototype.getPartsOpacity = function (aH) {\n if (typeof aH != \"number\") {\n aH = this._$5S.getPartsDataIndex(i.getID(aH));\n }if (aH < 0) {\n return 0;\n }return this._$5S.getPartsOpacity(aH);\n };aa.prototype.getDrawParam = function () {};aa.prototype.getDrawDataIndex = function (aH) {\n return this._$5S.getDrawDataIndex(Z.getID(aH));\n };aa.prototype.getDrawData = function (aH) {\n return this._$5S.getDrawData(aH);\n };aa.prototype.getTransformedPoints = function (aH) {\n var aI = this._$5S._$C2(aH);if (aI instanceof ag) {\n return aI.getTransformedPoints();\n }return null;\n };aa.prototype.getIndexArray = function (aI) {\n if (aI < 0 || aI >= this._$5S._$aS.length) {\n return null;\n }var aH = this._$5S._$aS[aI];if (aH != null && aH.getType() == a._$wb) {\n if (aH instanceof b) {\n return aH.getIndexArray();\n }\n }return null;\n };function W(aJ) {\n if (j) {\n return;\n }this.clipContextList = new Array();this.glcontext = aJ.gl;this.dp_webgl = aJ;this.curFrameNo = 0;this.firstError_clipInNotUpdate = true;this.colorBuffer = 0;this.isInitGLFBFunc = false;this.tmpBoundsOnModel = new av();if (Q.glContext.length > Q.frameBuffers.length) {\n this.curFrameNo = this.getMaskRenderTexture();\n } else {}this.tmpModelToViewMatrix = new ac();this.tmpMatrix2 = new ac();this.tmpMatrixForMask = new ac();this.tmpMatrixForDraw = new ac();this.CHANNEL_COLORS = new Array();var aI = new o();aI = new o();aI.r = 0;aI.g = 0;aI.b = 0;aI.a = 1;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 1;aI.g = 0;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 1;aI.b = 0;aI.a = 0;this.CHANNEL_COLORS.push(aI);aI = new o();aI.r = 0;aI.g = 0;aI.b = 1;aI.a = 0;this.CHANNEL_COLORS.push(aI);for (var aH = 0; aH < this.CHANNEL_COLORS.length; aH++) {\n this.dp_webgl.setChannelFlagAsColor(aH, this.CHANNEL_COLORS[aH]);\n }\n }W.CHANNEL_COUNT = 4;W.RENDER_TEXTURE_USE_MIPMAP = false;W.NOT_USED_FRAME = -100;W.prototype._$L7 = function () {\n if (this.tmpModelToViewMatrix) {\n this.tmpModelToViewMatrix = null;\n }if (this.tmpMatrix2) {\n this.tmpMatrix2 = null;\n }if (this.tmpMatrixForMask) {\n this.tmpMatrixForMask = null;\n }if (this.tmpMatrixForDraw) {\n this.tmpMatrixForDraw = null;\n }if (this.tmpBoundsOnModel) {\n this.tmpBoundsOnModel = null;\n }if (this.CHANNEL_COLORS) {\n for (var aH = this.CHANNEL_COLORS.length - 1; aH >= 0; --aH) {\n this.CHANNEL_COLORS.splice(aH, 1);\n }this.CHANNEL_COLORS = [];\n }this.releaseShader();\n };W.prototype.releaseShader = function () {\n var aI = Q.frameBuffers.length;for (var aH = 0; aH < aI; aH++) {\n this.gl.deleteFramebuffer(Q.frameBuffers[aH].framebuffer);\n }Q.frameBuffers = [];Q.glContext = [];\n };W.prototype.init = function (aO, aN, aL) {\n for (var aM = 0; aM < aN.length; aM++) {\n var aH = aN[aM].getClipIDList();if (aH == null) {\n continue;\n }var aJ = this.findSameClip(aH);if (aJ == null) {\n aJ = new U(this, aO, aH);this.clipContextList.push(aJ);\n }var aI = aN[aM].getDrawDataID();var aK = aO.getDrawDataIndex(aI);aJ.addClippedDrawData(aI, aK);var aP = aL[aM];aP.clipBufPre_clipContext = aJ;\n }\n };W.prototype.getMaskRenderTexture = function () {\n var aH = null;aH = this.dp_webgl.createFramebuffer();Q.frameBuffers[this.dp_webgl.glno] = aH;return this.dp_webgl.glno;\n };W.prototype.setupClip = function (a1, aQ) {\n var aK = 0;for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];this.calcClippedDrawTotalBounds(a1, aP);if (aP.isUsing) {\n aK++;\n }\n }if (aK > 0) {\n var aM = aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);var aW = new Array(4);aW[0] = 0;aW[1] = 0;aW[2] = aQ.gl.canvas.width;aW[3] = aQ.gl.canvas.height;aQ.gl.viewport(0, 0, Q.clippingMaskBufferSize, Q.clippingMaskBufferSize);this.setupLayoutBounds(aK);aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, Q.frameBuffers[this.curFrameNo].framebuffer);aQ.gl.clearColor(0, 0, 0, 0);aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);for (var aO = 0; aO < this.clipContextList.length; aO++) {\n var aP = this.clipContextList[aO];var aT = aP.allClippedDrawRect;var aN = aP.layoutChannelNo;var aV = aP.layoutBounds;var aJ = 0.05;this.tmpBoundsOnModel._$jL(aT);this.tmpBoundsOnModel.expand(aT.width * aJ, aT.height * aJ);var aZ = aV.width / this.tmpBoundsOnModel.width;var aY = aV.height / this.tmpBoundsOnModel.height;this.tmpMatrix2.identity();this.tmpMatrix2.translate(-1, -1, 0);this.tmpMatrix2.scale(2, 2, 1);this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m);this.tmpMatrix2.identity();this.tmpMatrix2.translate(aV.x, aV.y, 0);this.tmpMatrix2.scale(aZ, aY, 1);this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);var aH = this.tmpMatrixForMask.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForMask[aX] = aH[aX];\n }var a0 = this.tmpMatrixForDraw.getArray();for (var aX = 0; aX < 16; aX++) {\n aP.matrixForDraw[aX] = a0[aX];\n }var aS = aP.clippingMaskDrawIndexList.length;for (var aU = 0; aU < aS; aU++) {\n var aR = aP.clippingMaskDrawIndexList[aU];var aI = a1.getDrawData(aR);var aL = a1._$C2(aR);aQ.setClipBufPre_clipContextForMask(aP);aI.draw(aQ, a1, aL);\n }\n }aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, aM);aQ.setClipBufPre_clipContextForMask(null);aQ.gl.viewport(aW[0], aW[1], aW[2], aW[3]);\n }\n };W.prototype.getColorBuffer = function () {\n return this.colorBuffer;\n };W.prototype.findSameClip = function (aK) {\n for (var aN = 0; aN < this.clipContextList.length; aN++) {\n var aO = this.clipContextList[aN];var aH = aO.clipIDList.length;if (aH != aK.length) {\n continue;\n }var aI = 0;for (var aM = 0; aM < aH; aM++) {\n var aL = aO.clipIDList[aM];for (var aJ = 0; aJ < aH; aJ++) {\n if (aK[aJ] == aL) {\n aI++;break;\n }\n }\n }if (aI == aH) {\n return aO;\n }\n }return null;\n };W.prototype.calcClippedDrawTotalBounds = function (a6, aV) {\n var aU = a6._$Ri.getModelImpl().getCanvasWidth();var a5 = a6._$Ri.getModelImpl().getCanvasHeight();var aJ = aU > a5 ? aU : a5;var aT = aJ;var aR = aJ;var aS = 0;var aP = 0;var aL = aV.clippedDrawContextList.length;for (var aM = 0; aM < aL; aM++) {\n var aW = aV.clippedDrawContextList[aM];var aN = aW.drawDataIndex;var aK = a6._$C2(aN);if (aK._$yo()) {\n var aX = aK.getTransformedPoints();var a4 = aX.length;var aI = [];var aH = [];var aO = 0;for (var a3 = aw._$i2; a3 < a4; a3 += aw._$No) {\n aI[aO] = aX[a3];aH[aO] = aX[a3 + 1];aO++;\n }var a2 = Math.min.apply(null, aI);var a1 = Math.min.apply(null, aH);var a0 = Math.max.apply(null, aI);var aZ = Math.max.apply(null, aH);if (a2 < aT) {\n aT = a2;\n }if (a1 < aR) {\n aR = a1;\n }if (a0 > aS) {\n aS = a0;\n }if (aZ > aP) {\n aP = aZ;\n }\n }\n }if (aT == aJ) {\n aV.allClippedDrawRect.x = 0;aV.allClippedDrawRect.y = 0;aV.allClippedDrawRect.width = 0;aV.allClippedDrawRect.height = 0;aV.isUsing = false;\n } else {\n var aQ = aS - aT;var aY = aP - aR;aV.allClippedDrawRect.x = aT;aV.allClippedDrawRect.y = aR;aV.allClippedDrawRect.width = aQ;aV.allClippedDrawRect.height = aY;aV.isUsing = true;\n }\n };W.prototype.setupLayoutBounds = function (aQ) {\n var aI = aQ / W.CHANNEL_COUNT;var aP = aQ % W.CHANNEL_COUNT;aI = ~~aI;aP = ~~aP;var aH = 0;for (var aJ = 0; aJ < W.CHANNEL_COUNT; aJ++) {\n var aM = aI + (aJ < aP ? 1 : 0);if (aM == 0) {} else {\n if (aM == 1) {\n var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = 0;aL.layoutBounds.y = 0;aL.layoutBounds.width = 1;aL.layoutBounds.height = 1;\n } else {\n if (aM == 2) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = 0;aN = ~~aN;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = 0;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 1;\n }\n } else {\n if (aM <= 4) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 2;var aK = aO / 2;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN * 0.5;aL.layoutBounds.y = aK * 0.5;aL.layoutBounds.width = 0.5;aL.layoutBounds.height = 0.5;\n }\n } else {\n if (aM <= 9) {\n for (var aO = 0; aO < aM; aO++) {\n var aN = aO % 3;var aK = aO / 3;aN = ~~aN;aK = ~~aK;var aL = this.clipContextList[aH++];aL.layoutChannelNo = aJ;aL.layoutBounds.x = aN / 3;aL.layoutBounds.y = aK / 3;aL.layoutBounds.width = 1 / 3;aL.layoutBounds.height = 1 / 3;\n }\n } else {\n q._$li(\"_$6 _$0P mask count : %d\", aM);\n }\n }\n }\n }\n }\n }\n };function U(aH, aK, aI) {\n this.clipIDList = new Array();this.clipIDList = aI;this.clippingMaskDrawIndexList = new Array();for (var aJ = 0; aJ < aI.length; aJ++) {\n this.clippingMaskDrawIndexList.push(aK.getDrawDataIndex(aI[aJ]));\n }this.clippedDrawContextList = new Array();this.isUsing = true;this.layoutChannelNo = 0;this.layoutBounds = new av();this.allClippedDrawRect = new av();this.matrixForMask = new Float32Array(16);this.matrixForDraw = new Float32Array(16);this.owner = aH;\n }U.prototype.addClippedDrawData = function (aJ, aI) {\n var aH = new R(aJ, aI);this.clippedDrawContextList.push(aH);\n };function R(aI, aH) {\n this._$gP = aI;this.drawDataIndex = aH;\n }function I() {\n if (j) {\n return;\n }this.color = null;\n }function ah() {\n if (j) {\n return;\n }this._$dP = null;this._$eo = null;this._$V0 = null;this._$dP = 1000;this._$eo = 1000;this._$V0 = 1;this._$a0();\n }ah._$JT = function (aP, aN, aO) {\n var aQ = aP / aN;var a1 = aO / aN;var aU = a1;var aZ = 1 / 3;var aR = 2 / 3;var a0 = 1 - (1 - a1) * (1 - a1);var a2 = 1 - (1 - aU) * (1 - aU);var aM = 0;var aL = (1 - a1) * aZ * a0 + (aU * aR + (1 - aU) * aZ) * (1 - a0);var aK = (aU + (1 - aU) * aR) * a2 + (a1 * aZ + (1 - a1) * aR) * (1 - a2);var aJ = 1;var aY = aJ - 3 * aK + 3 * aL - aM;var aX = 3 * aK - 6 * aL + 3 * aM;var aW = 3 * aL - 3 * aM;var aV = aM;if (aQ <= 0) {\n return 0;\n } else {\n if (aQ >= 1) {\n return 1;\n }\n }var aS = aQ;var aI = aS * aS;var aH = aS * aI;var aT = aY * aH + aX * aI + aW * aS + aV;return aT;\n };ah.prototype._$a0 = function () {};ah.prototype.setFadeIn = function (aH) {\n this._$dP = aH;\n };ah.prototype.setFadeOut = function (aH) {\n this._$eo = aH;\n };ah.prototype._$pT = function (aH) {\n this._$V0 = aH;\n };ah.prototype.getFadeOut = function () {\n return this._$eo;\n };ah.prototype._$4T = function () {\n return this._$eo;\n };ah.prototype._$mT = function () {\n return this._$V0;\n };ah.prototype.getDurationMSec = function () {\n return -1;\n };ah.prototype.getLoopDurationMSec = function () {\n return -1;\n };ah.prototype.updateParam = function (aJ, aN) {\n if (!aN._$AT || aN._$9L) {\n return;\n }var aL = P.getUserTimeMSec();if (aN._$z2 < 0) {\n aN._$z2 = aL;aN._$bs = aL;var aM = this.getDurationMSec();if (aN._$Do < 0) {\n aN._$Do = aM <= 0 ? -1 : aN._$z2 + aM;\n }\n }var aI = this._$V0;var aH = this._$dP == 0 ? 1 : A._$r2((aL - aN._$bs) / this._$dP);var aK = this._$eo == 0 || aN._$Do < 0 ? 1 : A._$r2((aN._$Do - aL) / this._$eo);aI = aI * aH * aK;if (!(0 <= aI && aI <= 1)) {\n console.log(\"### assert!! ### \");\n }this.updateParamExe(aJ, aL, aI, aN);if (aN._$Do > 0 && aN._$Do < aL) {\n aN._$9L = true;\n }\n };ah.prototype.updateParamExe = function (aH, aI, aJ, aK) {};function q() {}q._$8s = 0;q._$fT = new Object();q.start = function (aI) {\n var aH = q._$fT[aI];if (aH == null) {\n aH = new af();aH._$r = aI;q._$fT[aI] = aH;\n }aH._$0S = P.getSystemTimeMSec();\n };q.dump = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();var aK = aI - aH._$0S;console.log(aJ + \" : \" + aK + \"ms\");return aK;\n } else {\n return -1;\n }\n };q.end = function (aJ) {\n var aH = q._$fT[aJ];if (aH != null) {\n var aI = P.getSystemTimeMSec();return aI - aH._$0S;\n } else {\n return -1;\n }\n };q._$li = function (aI, aH) {\n console.log(\"_$li : \" + aI + \"\\n\", aH);\n };q._$Ji = function (aI, aH) {\n console.log(aI, aH);\n };q._$dL = function (aI, aH) {\n console.log(aI, aH);console.log(\"\\n\");\n };q._$KL = function (aJ, aI) {\n for (var aH = 0; aH < aI; aH++) {\n if (aH % 16 == 0 && aH > 0) {\n console.log(\"\\n\");\n } else {\n if (aH % 8 == 0 && aH > 0) {\n console.log(\" \");\n }\n }console.log(\"%02X \", aJ[aH] & 255);\n }console.log(\"\\n\");\n };q._$nr = function (aL, aI, aK) {\n console.log(\"%s\\n\", aL);var aH = aI.length;for (var aJ = 0; aJ < aH; ++aJ) {\n console.log(\"%5d\", aI[aJ]);console.log(\"%s\\n\", aK);console.log(\",\");\n }console.log(\"\\n\");\n };q._$Rb = function (aH) {\n console.log(\"dump exception : \" + aH);console.log(\"stack :: \" + aH.stack);\n };function af() {\n this._$r = null;this._$0S = null;\n }function F() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }F.prototype._$8P = function () {\n return 0.5 * (this.x + this.x + this.width);\n };F.prototype._$6P = function () {\n return 0.5 * (this.y + this.y + this.height);\n };F.prototype._$EL = function () {\n return this.x + this.width;\n };F.prototype._$5T = function () {\n return this.y + this.height;\n };F.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };F.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };function i(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }i.prototype = new ak();i._$tP = new Object();i._$27 = function () {\n i._$tP.clear();\n };i.getID = function (aH) {\n var aI = i._$tP[aH];if (aI == null) {\n aI = new i(aH);i._$tP[aH] = aI;\n }return aI;\n };i.prototype._$3s = function () {\n return new i();\n };function S() {}function z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }z.prototype = new ak();z._$tP = new Object();z._$27 = function () {\n z._$tP.clear();\n };z.getID = function (aH) {\n var aI = z._$tP[aH];if (aI == null) {\n aI = new z(aH);z._$tP[aH] = aI;\n }return aI;\n };z.prototype._$3s = function () {\n return new z();\n };function w() {\n if (j) {\n return;\n }this._$vo = null;this._$F2 = null;this._$ao = 400;this._$1S = 400;w._$42++;\n }w._$42 = 0;w.prototype._$zP = function () {\n if (this._$vo == null) {\n this._$vo = new an();\n }if (this._$F2 == null) {\n this._$F2 = new Array();\n }\n };w.prototype.getCanvasWidth = function () {\n return this._$ao;\n };w.prototype.getCanvasHeight = function () {\n return this._$1S;\n };w.prototype._$F0 = function (aH) {\n this._$vo = aH._$nP();this._$F2 = aH._$nP();this._$ao = aH._$6L();this._$1S = aH._$6L();\n };w.prototype._$6S = function (aH) {\n this._$F2.push(aH);\n };w.prototype._$Xr = function () {\n return this._$F2;\n };w.prototype._$E2 = function () {\n return this._$vo;\n };function u() {\n if (j) {\n return;\n }this.p1 = new N();this.p2 = new N();this._$Fo = 0;this._$Db = 0;this._$L2 = 0;this._$M2 = 0;this._$ks = 0;this._$9b = 0;this._$iP = 0;this._$iT = 0;this._$lL = new Array();this._$qP = new Array();this.setup(0.3, 0.5, 0.1);\n }u.prototype.setup = function (aJ, aI, aH) {\n this._$ks = this._$Yb();this.p2._$xT();if (arguments.length == 3) {\n this._$Fo = aJ;this._$L2 = aI;this.p1._$p = aH;this.p2._$p = aH;this.p2.y = aJ;this.setup();\n }\n };u.prototype.getPhysicsPoint1 = function () {\n return this.p1;\n };u.prototype.getPhysicsPoint2 = function () {\n return this.p2;\n };u.prototype._$qr = function () {\n return this._$Db;\n };u.prototype._$pr = function (aH) {\n this._$Db = aH;\n };u.prototype._$5r = function () {\n return this._$M2;\n };u.prototype._$Cs = function () {\n return this._$9b;\n };u.prototype._$Yb = function () {\n return -180 * Math.atan2(this.p1.x - this.p2.x, -(this.p1.y - this.p2.y)) / Math.PI;\n };u.prototype.addSrcParam = function (aJ, aH, aL, aI) {\n var aK = new h(aJ, aH, aL, aI);this._$lL.push(aK);\n };u.prototype.addTargetParam = function (aJ, aH, aK, aI) {\n var aL = new aF(aJ, aH, aK, aI);this._$qP.push(aL);\n };u.prototype.update = function (aI, aL) {\n if (this._$iP == 0) {\n this._$iP = this._$iT = aL;this._$Fo = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));return;\n }var aK = (aL - this._$iT) / 1000;if (aK != 0) {\n for (var aJ = this._$lL.length - 1; aJ >= 0; --aJ) {\n var aM = this._$lL[aJ];aM._$oP(aI, this);\n }this._$oo(aI, aK);this._$M2 = this._$Yb();this._$9b = (this._$M2 - this._$ks) / aK;this._$ks = this._$M2;\n }for (var aJ = this._$qP.length - 1; aJ >= 0; --aJ) {\n var aH = this._$qP[aJ];aH._$YS(aI, this);\n }this._$iT = aL;\n };u.prototype._$oo = function (aN, aI) {\n if (aI < 0.033) {\n aI = 0.033;\n }var aU = 1 / aI;this.p1.vx = (this.p1.x - this.p1._$s0) * aU;this.p1.vy = (this.p1.y - this.p1._$70) * aU;this.p1.ax = (this.p1.vx - this.p1._$7L) * aU;this.p1.ay = (this.p1.vy - this.p1._$HL) * aU;this.p1.fx = this.p1.ax * this.p1._$p;this.p1.fy = this.p1.ay * this.p1._$p;this.p1._$xT();var aM = -Math.atan2(this.p1.y - this.p2.y, this.p1.x - this.p2.x);var aL;var aV;var aR = Math.cos(aM);var aH = Math.sin(aM);var aW = 9.8 * this.p2._$p;var aQ = this._$Db * aC._$bS;var aP = aW * Math.cos(aM - aQ);aL = aP * aH;aV = aP * aR;var aK = -this.p1.fx * aH * aH;var aT = -this.p1.fy * aH * aR;var aJ = -this.p2.vx * this._$L2;var aS = -this.p2.vy * this._$L2;this.p2.fx = aL + aK + aJ;this.p2.fy = aV + aT + aS;this.p2.ax = this.p2.fx / this.p2._$p;this.p2.ay = this.p2.fy / this.p2._$p;this.p2.vx += this.p2.ax * aI;this.p2.vy += this.p2.ay * aI;this.p2.x += this.p2.vx * aI;this.p2.y += this.p2.vy * aI;var aO = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));this.p2.x = this.p1.x + this._$Fo * (this.p2.x - this.p1.x) / aO;this.p2.y = this.p1.y + this._$Fo * (this.p2.y - this.p1.y) / aO;this.p2.vx = (this.p2.x - this.p2._$s0) * aU;this.p2.vy = (this.p2.y - this.p2._$70) * aU;this.p2._$xT();\n };function N() {\n this._$p = 1;this.x = 0;this.y = 0;this.vx = 0;this.vy = 0;this.ax = 0;this.ay = 0;this.fx = 0;this.fy = 0;this._$s0 = 0;this._$70 = 0;this._$7L = 0;this._$HL = 0;\n }N.prototype._$xT = function () {\n this._$s0 = this.x;this._$70 = this.y;this._$7L = this.vx;this._$HL = this.vy;\n };function at(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }at.prototype._$oP = function (aI, aH) {};function h(aJ, aK, aI, aH) {\n at.prototype.constructor.call(this, aK, aI, aH);this._$tL = null;this._$tL = aJ;\n }h.prototype = new at();h.prototype._$oP = function (aJ, aH) {\n var aK = this.scale * aJ.getParamFloat(this._$wL);var aL = aH.getPhysicsPoint1();switch (this._$tL) {default:case u.Src.SRC_TO_X:\n aL.x = aL.x + (aK - aL.x) * this._$V0;break;case u.Src.SRC_TO_Y:\n aL.y = aL.y + (aK - aL.y) * this._$V0;break;case u.Src.SRC_TO_G_ANGLE:\n var aI = aH._$qr();aI = aI + (aK - aI) * this._$V0;aH._$pr(aI);break;}\n };function d(aJ, aI, aH) {\n this._$wL = null;this.scale = null;this._$V0 = null;this._$wL = aJ;this.scale = aI;this._$V0 = aH;\n }d.prototype._$YS = function (aI, aH) {};function aF(aI, aK, aJ, aH) {\n d.prototype.constructor.call(this, aK, aJ, aH);this._$YP = null;this._$YP = aI;\n }aF.prototype = new d();aF.prototype._$YS = function (aI, aH) {\n switch (this._$YP) {default:case u.Target.TARGET_FROM_ANGLE:\n aI.setParamFloat(this._$wL, this.scale * aH._$5r(), this._$V0);break;case u.Target.TARGET_FROM_ANGLE_V:\n aI.setParamFloat(this._$wL, this.scale * aH._$Cs(), this._$V0);break;}\n };u.Src = function () {};u.Src.SRC_TO_X = \"SRC_TO_X\";u.Src.SRC_TO_Y = \"SRC_TO_Y\";u.Src.SRC_TO_G_ANGLE = \"SRC_TO_G_ANGLE\";u.Target = function () {};u.Target.TARGET_FROM_ANGLE = \"TARGET_FROM_ANGLE\";u.Target.TARGET_FROM_ANGLE_V = \"TARGET_FROM_ANGLE_V\";function X() {\n if (j) {\n return;\n }this._$fL = 0;this._$gL = 0;this._$B0 = 1;this._$z0 = 1;this._$qT = 0;this.reflectX = false;this.reflectY = false;\n }X.prototype.init = function (aH) {\n this._$fL = aH._$fL;this._$gL = aH._$gL;this._$B0 = aH._$B0;this._$z0 = aH._$z0;this._$qT = aH._$qT;this.reflectX = aH.reflectX;this.reflectY = aH.reflectY;\n };X.prototype._$F0 = function (aH) {\n this._$fL = aH._$_T();this._$gL = aH._$_T();this._$B0 = aH._$_T();this._$z0 = aH._$_T();this._$qT = aH._$_T();if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this.reflectX = aH._$po();this.reflectY = aH._$po();\n }\n };X.prototype._$e = function () {};var ad = function ad() {};ad._$ni = function (aL, aJ, aR, aQ, aK, aI, aH, aS, aN) {\n var aM = aH * aI - aS * aK;if (aM == 0) {\n return null;\n } else {\n var aO = ((aL - aR) * aI - (aJ - aQ) * aK) / aM;var aP;if (aK != 0) {\n aP = (aL - aR - aO * aH) / aK;\n } else {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n aP = (aL - aR - aO * aH) / aK;if (isNaN(aP)) {\n aP = (aJ - aQ - aO * aS) / aI;\n }if (isNaN(aP)) {\n console.log(\"a is NaN @UtVector#_$ni() \");console.log(\"v1x : \" + aK);console.log(\"v1x != 0 ? \" + (aK != 0));\n }\n }if (aN == null) {\n return new Array(aP, aO);\n } else {\n aN[0] = aP;aN[1] = aO;return aN;\n }\n }\n };function av() {\n if (j) {\n return;\n }this.x = null;this.y = null;this.width = null;this.height = null;\n }av.prototype._$8P = function () {\n return this.x + 0.5 * this.width;\n };av.prototype._$6P = function () {\n return this.y + 0.5 * this.height;\n };av.prototype._$EL = function () {\n return this.x + this.width;\n };av.prototype._$5T = function () {\n return this.y + this.height;\n };av.prototype._$jL = function (aI, aK, aJ, aH) {\n this.x = aI;this.y = aK;this.width = aJ;this.height = aH;\n };av.prototype._$jL = function (aH) {\n this.x = aH.x;this.y = aH.y;this.width = aH.width;this.height = aH.height;\n };av.prototype.contains = function (aH, aI) {\n return this.x <= this.x && this.y <= this.y && this.x <= this.x + this.width && this.y <= this.y + this.height;\n };av.prototype.expand = function (aH, aI) {\n this.x -= aH;this.y -= aI;this.width += aH * 2;this.height += aI * 2;\n };function aG() {}aG._$Z2 = function (bb, bo, bp, a2) {\n var a1 = bo._$Q2(bb, bp);var a3 = bb._$vs();var ba = bb._$Tr();bo._$zr(a3, ba, a1);if (a1 <= 0) {\n return a2[a3[0]];\n } else {\n if (a1 == 1) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a9 = ba[0];return bj + (bi - bj) * a9 | 0;\n } else {\n if (a1 == 2) {\n var bj = a2[a3[0]];var bi = a2[a3[1]];var a0 = a2[a3[2]];var aZ = a2[a3[3]];var a9 = ba[0];var a8 = ba[1];var br = bj + (bi - bj) * a9 | 0;var bq = a0 + (aZ - a0) * a9 | 0;return br + (bq - br) * a8 | 0;\n } else {\n if (a1 == 3) {\n var aP = a2[a3[0]];var aO = a2[a3[1]];var bn = a2[a3[2]];var bm = a2[a3[3]];var aK = a2[a3[4]];var aJ = a2[a3[5]];var bg = a2[a3[6]];var bf = a2[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bj = aP + (aO - aP) * a9 | 0;var bi = bn + (bm - bn) * a9 | 0;var a0 = aK + (aJ - aK) * a9 | 0;var aZ = bg + (bf - bg) * a9 | 0;var br = bj + (bi - bj) * a8 | 0;var bq = a0 + (aZ - a0) * a8 | 0;return br + (bq - br) * a6 | 0;\n } else {\n if (a1 == 4) {\n var aT = a2[a3[0]];var aS = a2[a3[1]];var bu = a2[a3[2]];var bt = a2[a3[3]];var aN = a2[a3[4]];var aM = a2[a3[5]];var bl = a2[a3[6]];var bk = a2[a3[7]];var be = a2[a3[8]];var bc = a2[a3[9]];var aX = a2[a3[10]];var aW = a2[a3[11]];var a7 = a2[a3[12]];var a5 = a2[a3[13]];var aR = a2[a3[14]];var aQ = a2[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var aP = aT + (aS - aT) * a9 | 0;var aO = bu + (bt - bu) * a9 | 0;var bn = aN + (aM - aN) * a9 | 0;var bm = bl + (bk - bl) * a9 | 0;var aK = be + (bc - be) * a9 | 0;var aJ = aX + (aW - aX) * a9 | 0;var bg = a7 + (a5 - a7) * a9 | 0;var bf = aR + (aQ - aR) * a9 | 0;var bj = aP + (aO - aP) * a8 | 0;var bi = bn + (bm - bn) * a8 | 0;var a0 = aK + (aJ - aK) * a8 | 0;var aZ = bg + (bf - bg) * a8 | 0;var br = bj + (bi - bj) * a6 | 0;var bq = a0 + (aZ - a0) * a6 | 0;return br + (bq - br) * a4 | 0;\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aY[bh] = aH;\n }var bs = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bs[aU] = a2[a3[aU]];\n }var bd = 0;for (var aU = 0; aU < aV; aU++) {\n bd += aY[aU] * bs[aU];\n }return bd + 0.5 | 0;\n }\n }\n }\n }\n }\n };aG._$br = function (ba, bo, bp, bg) {\n var a1 = bo._$Q2(ba, bp);var a2 = ba._$vs();var a9 = ba._$Tr();bo._$zr(a2, a9, a1);if (a1 <= 0) {\n return bg[a2[0]];\n } else {\n if (a1 == 1) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a8 = a9[0];return bj + (bi - bj) * a8;\n } else {\n if (a1 == 2) {\n var bj = bg[a2[0]];var bi = bg[a2[1]];var a0 = bg[a2[2]];var aZ = bg[a2[3]];var a8 = a9[0];var a7 = a9[1];return (1 - a7) * (bj + (bi - bj) * a8) + a7 * (a0 + (aZ - a0) * a8);\n } else {\n if (a1 == 3) {\n var aP = bg[a2[0]];var aO = bg[a2[1]];var bn = bg[a2[2]];var bm = bg[a2[3]];var aK = bg[a2[4]];var aJ = bg[a2[5]];var bf = bg[a2[6]];var be = bg[a2[7]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];return (1 - a5) * ((1 - a7) * (aP + (aO - aP) * a8) + a7 * (bn + (bm - bn) * a8)) + a5 * ((1 - a7) * (aK + (aJ - aK) * a8) + a7 * (bf + (be - bf) * a8));\n } else {\n if (a1 == 4) {\n var aT = bg[a2[0]];var aS = bg[a2[1]];var bs = bg[a2[2]];var br = bg[a2[3]];var aN = bg[a2[4]];var aM = bg[a2[5]];var bl = bg[a2[6]];var bk = bg[a2[7]];var bd = bg[a2[8]];var bb = bg[a2[9]];var aX = bg[a2[10]];var aW = bg[a2[11]];var a6 = bg[a2[12]];var a4 = bg[a2[13]];var aR = bg[a2[14]];var aQ = bg[a2[15]];var a8 = a9[0];var a7 = a9[1];var a5 = a9[2];var a3 = a9[3];return (1 - a3) * ((1 - a5) * ((1 - a7) * (aT + (aS - aT) * a8) + a7 * (bs + (br - bs) * a8)) + a5 * ((1 - a7) * (aN + (aM - aN) * a8) + a7 * (bl + (bk - bl) * a8))) + a3 * ((1 - a5) * ((1 - a7) * (bd + (bb - bd) * a8) + a7 * (aX + (aW - aX) * a8)) + a5 * ((1 - a7) * (a6 + (a4 - a6) * a8) + a7 * (aR + (aQ - aR) * a8)));\n } else {\n var aV = 1 << a1;var aY = new Float32Array(aV);for (var bh = 0; bh < aV; bh++) {\n var aI = bh;var aH = 1;for (var aL = 0; aL < a1; aL++) {\n aH *= aI % 2 == 0 ? 1 - a9[aL] : a9[aL];aI /= 2;\n }aY[bh] = aH;\n }var bq = new Float32Array(aV);for (var aU = 0; aU < aV; aU++) {\n bq[aU] = bg[a2[aU]];\n }var bc = 0;for (var aU = 0; aU < aV; aU++) {\n bc += aY[aU] * bq[aU];\n }return bc;\n }\n }\n }\n }\n }\n };aG._$Vr = function (bV, bW, a5, aI, bC, a3, bX, bH) {\n var aN = bW._$Q2(bV, a5);var bw = bV._$vs();var a2 = bV._$Tr();bW._$zr(bw, a2, aN);var aJ = aI * 2;var aQ = bX;if (aN <= 0) {\n var bI = bw[0];var bq = bC[bI];if (bH == 2 && bX == 0) {\n P._$jT(bq, 0, a3, 0, aJ);\n } else {\n for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt++];a3[aQ + 1] = bq[bt++];aQ += bH;\n }\n }\n } else {\n if (aN == 1) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var b3 = a2[0];var bT = 1 - b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bq[bt] * bT + bp[bt] * b3;++bt;a3[aQ + 1] = bq[bt] * bT + bp[bt] * b3;++bt;aQ += bH;\n }\n } else {\n if (aN == 2) {\n var bq = bC[bw[0]];var bp = bC[bw[1]];var aZ = bC[bw[2]];var aY = bC[bw[3]];var b3 = a2[0];var b1 = a2[1];var bT = 1 - b3;var bP = 1 - b1;var b2 = bP * bT;var b0 = bP * b3;var bM = b1 * bT;var bL = b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;a3[aQ + 1] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 3) {\n var ba = bC[bw[0]];var a9 = bC[bw[1]];var aP = bC[bw[2]];var aO = bC[bw[3]];var a6 = bC[bw[4]];var a4 = bC[bw[5]];var aL = bC[bw[6]];var aK = bC[bw[7]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var b8 = bN * bP * bT;var b7 = bN * bP * b3;var bU = bN * b1 * bT;var bS = bN * b1 * b3;var b6 = bZ * bP * bT;var b5 = bZ * bP * b3;var bQ = bZ * b1 * bT;var bO = bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;a3[aQ + 1] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];++bt;aQ += bH;\n }\n } else {\n if (aN == 4) {\n var bD = bC[bw[0]];var bB = bC[bw[1]];var bo = bC[bw[2]];var bm = bC[bw[3]];var by = bC[bw[4]];var bx = bC[bw[5]];var be = bC[bw[6]];var bd = bC[bw[7]];var bG = bC[bw[8]];var bE = bC[bw[9]];var bv = bC[bw[10]];var bu = bC[bw[11]];var bA = bC[bw[12]];var bz = bC[bw[13]];var bn = bC[bw[14]];var bl = bC[bw[15]];var b3 = a2[0];var b1 = a2[1];var bZ = a2[2];var bY = a2[3];var bT = 1 - b3;var bP = 1 - b1;var bN = 1 - bZ;var bK = 1 - bY;var bk = bK * bN * bP * bT;var bi = bK * bN * bP * b3;var aW = bK * bN * b1 * bT;var aV = bK * bN * b1 * b3;var bc = bK * bZ * bP * bT;var bb = bK * bZ * bP * b3;var aS = bK * bZ * b1 * bT;var aR = bK * bZ * b1 * b3;var bs = bY * bN * bP * bT;var br = bY * bN * bP * b3;var a1 = bY * bN * b1 * bT;var a0 = bY * bN * b1 * b3;var bh = bY * bZ * bP * bT;var bf = bY * bZ * bP * b3;var aU = bY * bZ * b1 * bT;var aT = bY * bZ * b1 * b3;for (var bt = 0; bt < aJ;) {\n a3[aQ] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;a3[aQ + 1] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];++bt;aQ += bH;\n }\n } else {\n var b4 = 1 << aN;var bJ = new Float32Array(b4);for (var bj = 0; bj < b4; bj++) {\n var aH = bj;var aM = 1;for (var bF = 0; bF < aN; bF++) {\n aM *= aH % 2 == 0 ? 1 - a2[bF] : a2[bF];aH /= 2;\n }bJ[bj] = aM;\n }var bg = new Float32Array(b4);for (var aX = 0; aX < b4; aX++) {\n bg[aX] = bC[bw[aX]];\n }for (var bt = 0; bt < aJ;) {\n var a8 = 0,\n a7 = 0;var bR = bt + 1;for (var aX = 0; aX < b4; aX++) {\n a8 += bJ[aX] * bg[aX][bt];a7 += bJ[aX] * bg[aX][bR];\n }bt += 2;a3[aQ] = a8;a3[aQ + 1] = a7;aQ += bH;\n }\n }\n }\n }\n }\n }\n };function e() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }e.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };e.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };function ae() {\n if (j) {\n return;\n }this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;this.clipID = null;this.clipIDList = new Array();\n }ae._$ur = -2;ae._$ES = 500;ae._$wb = 2;ae._$8S = 3;ae._$52 = ae._$ES;ae._$R2 = ae._$ES;ae._$or = function () {\n return ae._$52;\n };ae._$Pr = function () {\n return ae._$R2;\n };ae.prototype.convertClipIDForV2_11 = function (aI) {\n var aH = [];if (aI == null) {\n return null;\n }if (aI.length == 0) {\n return null;\n }if (!/,/.test(aI)) {\n aH.push(aI.id);return aH;\n }aH = aI.id.split(\",\");return aH;\n };ae.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = [];\n }this._$MS(this._$Lb);\n };ae.prototype.getClipIDList = function () {\n return this.clipIDList;\n };ae.prototype.init = function (aH) {};ae.prototype._$Nr = function (aH, aI) {\n aI._$IS[0] = false;aI._$Us = aG._$Z2(aH, this._$GS, aI._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aI._$IS[0]) {\n return;\n }\n }aI._$7s = aG._$br(aH, this._$GS, aI._$IS, this._$mS);\n };ae.prototype._$2b = function (aH, aI) {};ae.prototype.getDrawDataID = function () {\n return this._$gP;\n };ae.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };ae.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };ae.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };ae.prototype._$MS = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < ae._$52) {\n ae._$52 = aH;\n } else {\n if (aH > ae._$R2) {\n ae._$R2 = aH;\n }\n }\n }\n };ae.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };ae.prototype._$gs = function (aH) {\n this._$dr = aH;\n };ae.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };ae.prototype.preDraw = function (aJ, aH, aI) {};ae.prototype.draw = function (aJ, aH, aI) {};ae.prototype.getType = function () {};ae.prototype._$B2 = function (aI, aH, aJ) {};function ax() {\n if (j) {\n return;\n }this._$Eb = ax._$ps;this._$lT = 1;this._$C0 = 1;this._$tT = 1;this._$WL = 1;this.culling = false;this.matrix4x4 = new Float32Array(16);this.premultipliedAlpha = false;this.anisotropy = 0;this.clippingProcess = ax.CLIPPING_PROCESS_NONE;this.clipBufPre_clipContextMask = null;this.clipBufPre_clipContextDraw = null;this.CHANNEL_COLORS = new Array();\n }ax._$ps = 32;ax.CLIPPING_PROCESS_NONE = 0;ax.CLIPPING_PROCESS_OVERWRITE_ALPHA = 1;ax.CLIPPING_PROCESS_MULTIPLY_ALPHA = 2;ax.CLIPPING_PROCESS_DRAW = 3;ax.CLIPPING_PROCESS_CLEAR_ALPHA = 4;ax.prototype.setChannelFlagAsColor = function (aH, aI) {\n this.CHANNEL_COLORS[aH] = aI;\n };ax.prototype.getChannelFlagAsColor = function (aH) {\n return this.CHANNEL_COLORS[aH];\n };ax.prototype._$ZT = function () {};ax.prototype._$Uo = function (aM, aK, aJ, aL, aN, aI, aH) {};ax.prototype._$Rs = function () {\n return -1;\n };ax.prototype._$Ds = function (aH) {};ax.prototype.setBaseColor = function (aK, aJ, aI, aH) {\n if (aK < 0) {\n aK = 0;\n } else {\n if (aK > 1) {\n aK = 1;\n }\n }if (aJ < 0) {\n aJ = 0;\n } else {\n if (aJ > 1) {\n aJ = 1;\n }\n }if (aI < 0) {\n aI = 0;\n } else {\n if (aI > 1) {\n aI = 1;\n }\n }if (aH < 0) {\n aH = 0;\n } else {\n if (aH > 1) {\n aH = 1;\n }\n }this._$lT = aK;this._$C0 = aJ;this._$tT = aI;this._$WL = aH;\n };ax.prototype._$WP = function (aH) {\n this.culling = aH;\n };ax.prototype.setMatrix = function (aH) {\n for (var aI = 0; aI < 16; aI++) {\n this.matrix4x4[aI] = aH[aI];\n }\n };ax.prototype._$IT = function () {\n return this.matrix4x4;\n };ax.prototype.setPremultipliedAlpha = function (aH) {\n this.premultipliedAlpha = aH;\n };ax.prototype.isPremultipliedAlpha = function () {\n return this.premultipliedAlpha;\n };ax.prototype.setAnisotropy = function (aH) {\n this.anisotropy = aH;\n };ax.prototype.getAnisotropy = function () {\n return this.anisotropy;\n };ax.prototype.getClippingProcess = function () {\n return this.clippingProcess;\n };ax.prototype.setClippingProcess = function (aH) {\n this.clippingProcess = aH;\n };ax.prototype.setClipBufPre_clipContextForMask = function (aH) {\n this.clipBufPre_clipContextMask = aH;\n };ax.prototype.getClipBufPre_clipContextMask = function () {\n return this.clipBufPre_clipContextMask;\n };ax.prototype.setClipBufPre_clipContextForDraw = function (aH) {\n this.clipBufPre_clipContextDraw = aH;\n };ax.prototype.getClipBufPre_clipContextDraw = function () {\n return this.clipBufPre_clipContextDraw;\n };function o() {\n if (j) {\n return;\n }this.a = 1;this.r = 1;this.g = 1;this.b = 1;this.scale = 1;this._$ho = 1;this.blendMode = Q.L2D_COLOR_BLEND_MODE_MULT;\n }function c() {\n if (j) {\n return;\n }this._$kP = null;this._$dr = null;this._$Ai = true;this._$mS = null;\n }c._$ur = -2;c._$c2 = 1;c._$_b = 2;c.prototype._$F0 = function (aH) {\n this._$kP = aH._$nP();this._$dr = aH._$nP();\n };c.prototype.readV2_opacity = function (aH) {\n if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {\n this._$mS = aH._$Tb();\n }\n };c.prototype.init = function (aH) {};c.prototype._$Nr = function (aI, aH) {};c.prototype.interpolateOpacity = function (aJ, aK, aI, aH) {\n if (this._$mS == null) {\n aI.setInterpolatedOpacity(1);\n } else {\n aI.setInterpolatedOpacity(aG._$br(aJ, aK, aH, this._$mS));\n }\n };c.prototype._$2b = function (aI, aH) {};c.prototype._$nb = function (aL, aK, aM, aH, aI, aJ, aN) {};c.prototype.getType = function () {};c.prototype._$gs = function (aH) {\n this._$dr = aH;\n };c.prototype._$a2 = function (aH) {\n this._$kP = aH;\n };c.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };c.prototype.getBaseDataID = function () {\n return this._$kP;\n };c.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };function P() {}P._$W2 = 0;P._$CS = P._$W2;P._$Mo = function () {\n return true;\n };P._$XP = function (aI) {\n try {\n var aJ = getTimeMSec();while (getTimeMSec() - aJ < aI) {}\n } catch (aH) {\n aH._$Rb();\n }\n };P.getUserTimeMSec = function () {\n return P._$CS == P._$W2 ? P.getSystemTimeMSec() : P._$CS;\n };P.setUserTimeMSec = function (aH) {\n P._$CS = aH;\n };P.updateUserTimeMSec = function () {\n return P._$CS = P.getSystemTimeMSec();\n };P.getTimeMSec = function () {\n return new Date().getTime();\n };P.getSystemTimeMSec = function () {\n return new Date().getTime();\n };P._$Q = function (aH) {};P._$jT = function (aM, aJ, aI, aL, aH) {\n for (var aK = 0; aK < aH; aK++) {\n aI[aL + aK] = aM[aJ + aK];\n }\n };function aA() {\n if (j) {\n return;\n }this._$VP = 0;this._$wL = null;this._$GP = null;this._$8o = aA._$ds;this._$2r = -1;this._$O2 = 0;this._$ri = 0;\n }aA._$ds = -2;aA.prototype._$F0 = function (aH) {\n this._$wL = aH._$nP();this._$VP = aH._$6L();this._$GP = aH._$nP();\n };aA.prototype.getParamIndex = function (aH) {\n if (this._$2r != aH) {\n this._$8o = aA._$ds;\n }return this._$8o;\n };aA.prototype._$Pb = function (aI, aH) {\n this._$8o = aI;this._$2r = aH;\n };aA.prototype.getParamID = function () {\n return this._$wL;\n };aA.prototype._$yP = function (aH) {\n this._$wL = aH;\n };aA.prototype._$N2 = function () {\n return this._$VP;\n };aA.prototype._$d2 = function () {\n return this._$GP;\n };aA.prototype._$t2 = function (aI, aH) {\n this._$VP = aI;this._$GP = aH;\n };aA.prototype._$Lr = function () {\n return this._$O2;\n };aA.prototype._$wr = function (aH) {\n this._$O2 = aH;\n };aA.prototype._$SL = function () {\n return this._$ri;\n };aA.prototype._$AL = function (aH) {\n this._$ri = aH;\n };function G() {}G.startsWith = function (aJ, aL, aK) {\n var aH = aL + aK.length;if (aH >= aJ.length) {\n return false;\n }for (var aI = aL; aI < aH; aI++) {\n if (G.getChar(aJ, aI) != aK.charAt(aI - aL)) {\n return false;\n }\n }return true;\n };G.getChar = function (aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n };G.createString = function (aM, aL, aJ) {\n var aH = new ArrayBuffer(aJ * 2);var aK = new Uint16Array(aH);for (var aI = 0; aI < aJ; aI++) {\n aK[aI] = aM.getUint8(aL + aI);\n }return String.fromCharCode.apply(null, aK);\n };G._$LS = function (aP, aM, aR, aK) {\n if (aP instanceof ArrayBuffer) {\n aP = new DataView(aP);\n }var aL = aR;var aJ = false;var aQ = false;var aS = 0;var aO = G.getChar(aP, aL);if (aO == \"-\") {\n aJ = true;aL++;\n }var aN = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case \"0\":\n aS = aS * 10;break;case \"1\":\n aS = aS * 10 + 1;break;case \"2\":\n aS = aS * 10 + 2;break;case \"3\":\n aS = aS * 10 + 3;break;case \"4\":\n aS = aS * 10 + 4;break;case \"5\":\n aS = aS * 10 + 5;break;case \"6\":\n aS = aS * 10 + 6;break;case \"7\":\n aS = aS * 10 + 7;break;case \"8\":\n aS = aS * 10 + 8;break;case \"9\":\n aS = aS * 10 + 9;break;case \".\":\n aQ = true;aL++;aN = true;break;default:\n aN = true;break;}if (aN) {\n break;\n }\n }if (aQ) {\n var aI = 0.1;var aH = false;for (; aL < aM; aL++) {\n aO = G.getChar(aP, aL);switch (aO) {case \"0\":\n break;case \"1\":\n aS += aI * 1;break;case \"2\":\n aS += aI * 2;break;case \"3\":\n aS += aI * 3;break;case \"4\":\n aS += aI * 4;break;case \"5\":\n aS += aI * 5;break;case \"6\":\n aS += aI * 6;break;case \"7\":\n aS += aI * 7;break;case \"8\":\n aS += aI * 8;break;case \"9\":\n aS += aI * 9;break;default:\n aH = true;break;}aI *= 0.1;if (aH) {\n break;\n }\n }\n }if (aJ) {\n aS = -aS;\n }aK[0] = aL;return aS;\n };function g() {\n if (j) {\n return;\n }this._$Ob = null;\n }g.prototype._$zP = function () {\n this._$Ob = new Array();\n };g.prototype._$F0 = function (aH) {\n this._$Ob = aH._$nP();\n };g.prototype._$Ur = function (aK) {\n if (aK._$WS()) {\n return true;\n }var aH = aK._$v2();for (var aJ = this._$Ob.length - 1; aJ >= 0; --aJ) {\n var aI = this._$Ob[aJ].getParamIndex(aH);if (aI == aA._$ds) {\n aI = aK.getParamIndex(this._$Ob[aJ].getParamID());\n }if (aK._$Xb(aI)) {\n return true;\n }\n }return false;\n };g.prototype._$Q2 = function (aL, aV) {\n var aX = this._$Ob.length;var aJ = aL._$v2();var aN = 0;var aI;var aQ;for (var aK = 0; aK < aX; aK++) {\n var aH = this._$Ob[aK];aI = aH.getParamIndex(aJ);if (aI == aA._$ds) {\n aI = aL.getParamIndex(aH.getParamID());aH._$Pb(aI, aJ);\n }if (aI < 0) {\n throw new Exception(\"err 23242 : \" + aH.getParamID());\n }var aU = aI < 0 ? 0 : aL.getParamFloat(aI);aQ = aH._$N2();var aM = aH._$d2();var aP = -1;var aT = 0;var aS;var aR;if (aQ < 1) {} else {\n if (aQ == 1) {\n aS = aM[0];if (aS - aw._$J < aU && aU < aS + aw._$J) {\n aP = 0;aT = 0;\n } else {\n aP = 0;aV[0] = true;\n }\n } else {\n aS = aM[0];if (aU < aS - aw._$J) {\n aP = 0;aV[0] = true;\n } else {\n if (aU < aS + aw._$J) {\n aP = 0;\n } else {\n var aW = false;for (var aO = 1; aO < aQ; ++aO) {\n aR = aM[aO];if (aU < aR + aw._$J) {\n if (aR - aw._$J < aU) {\n aP = aO;\n } else {\n aP = aO - 1;aT = (aU - aS) / (aR - aS);aN++;\n }aW = true;break;\n }aS = aR;\n }if (!aW) {\n aP = aQ - 1;aT = 0;aV[0] = true;\n }\n }\n }\n }\n }aH._$wr(aP);aH._$AL(aT);\n }return aN;\n };g.prototype._$zr = function (aN, aT, aP) {\n var aR = 1 << aP;if (aR + 1 > aw._$Qb) {\n console.log(\"err 23245\\n\");\n }var aS = this._$Ob.length;var aK = 1;var aH = 1;var aJ = 0;for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] = 0;\n }for (var aL = 0; aL < aS; ++aL) {\n var aI = this._$Ob[aL];if (aI._$SL() == 0) {\n var aO = aI._$Lr() * aK;if (aO < 0 && Q._$3T) {\n throw new Exception(\"err 23246\");\n }for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += aO;\n }\n } else {\n var aO = aK * aI._$Lr();var aM = aK * (aI._$Lr() + 1);for (var aQ = 0; aQ < aR; ++aQ) {\n aN[aQ] += (aQ / aH | 0) % 2 == 0 ? aO : aM;\n }aT[aJ++] = aI._$SL();aH *= 2;\n }aK *= aI._$N2();\n }aN[aR] = 65535;aT[aJ] = -1;\n };g.prototype._$h2 = function (aJ, aH, aK) {\n var aM = new Float32Array(aH);for (var aL = 0; aL < aH; ++aL) {\n aM[aL] = aK[aL];\n }var aI = new aA();aI._$yP(aJ);aI._$t2(aH, aM);this._$Ob.push(aI);\n };g.prototype._$J2 = function (aO) {\n var aN = aO;var aM = this._$Ob.length;for (var aK = 0; aK < aM; ++aK) {\n var aI = this._$Ob[aK];var aH = aI._$N2();var aJ = aN % aI._$N2();var aL = aI._$d2()[aJ];console.log(\"%s[%d]=%7.2f / \", aI.getParamID(), aJ, aL);aN /= aH;\n }console.log(\"\\n\");\n };g.prototype.getParamCount = function () {\n return this._$Ob.length;\n };g.prototype._$zs = function () {\n return this._$Ob;\n };function ac() {\n this.m = new Float32Array(16);this.identity();\n }ac.prototype.identity = function () {\n for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aH % 5 == 0 ? 1 : 0;\n }\n };ac.prototype.getArray = function () {\n return this.m;\n };ac.prototype.getCopyMatrix = function () {\n return new Float32Array(this.m);\n };ac.prototype.setMatrix = function (aI) {\n if (aI == null || aI.length != 16) {\n return;\n }for (var aH = 0; aH < 16; aH++) {\n this.m[aH] = aI[aH];\n }\n };ac.prototype.mult = function (aH, aJ, aI) {\n if (aJ == null) {\n return null;\n }if (this == aJ) {\n this.mult_safe(this.m, aH.m, aJ.m, aI);\n } else {\n this.mult_fast(this.m, aH.m, aJ.m, aI);\n }return aJ;\n };ac.prototype.mult_safe = function (aI, aH, aM, aJ) {\n if (aI == aM) {\n var aL = new Array(16);this.mult_fast(aI, aH, aL, aJ);for (var aK = 15; aK >= 0; --aK) {\n aM[aK] = aL[aK];\n }\n } else {\n this.mult_fast(aI, aH, aM, aJ);\n }\n };ac.prototype.mult_fast = function (aI, aH, aK, aJ) {\n if (aJ) {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14];aK[3] = aK[7] = aK[11] = 0;aK[15] = 1;\n } else {\n aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2] + aI[12] * aH[3];aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6] + aI[12] * aH[7];aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10] + aI[12] * aH[11];aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12] * aH[15];aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2] + aI[13] * aH[3];aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6] + aI[13] * aH[7];aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10] + aI[13] * aH[11];aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13] * aH[15];aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2] + aI[14] * aH[3];aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6] + aI[14] * aH[7];aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10] + aI[14] * aH[11];aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14] * aH[15];aK[3] = aI[3] * aH[0] + aI[7] * aH[1] + aI[11] * aH[2] + aI[15] * aH[3];aK[7] = aI[3] * aH[4] + aI[7] * aH[5] + aI[11] * aH[6] + aI[15] * aH[7];aK[11] = aI[3] * aH[8] + aI[7] * aH[9] + aI[11] * aH[10] + aI[15] * aH[11];aK[15] = aI[3] * aH[12] + aI[7] * aH[13] + aI[11] * aH[14] + aI[15] * aH[15];\n }\n };ac.prototype.translate = function (aH, aJ, aI) {\n this.m[12] = this.m[0] * aH + this.m[4] * aJ + this.m[8] * aI + this.m[12];this.m[13] = this.m[1] * aH + this.m[5] * aJ + this.m[9] * aI + this.m[13];this.m[14] = this.m[2] * aH + this.m[6] * aJ + this.m[10] * aI + this.m[14];this.m[15] = this.m[3] * aH + this.m[7] * aJ + this.m[11] * aI + this.m[15];\n };ac.prototype.scale = function (aJ, aI, aH) {\n this.m[0] *= aJ;this.m[4] *= aI;this.m[8] *= aH;this.m[1] *= aJ;this.m[5] *= aI;this.m[9] *= aH;this.m[2] *= aJ;this.m[6] *= aI;this.m[10] *= aH;this.m[3] *= aJ;this.m[7] *= aI;this.m[11] *= aH;\n };ac.prototype.rotateX = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[4];this.m[4] = aI * aK + this.m[8] * aJ;this.m[8] = aI * -aJ + this.m[8] * aK;aI = this.m[5];this.m[5] = aI * aK + this.m[9] * aJ;this.m[9] = aI * -aJ + this.m[9] * aK;aI = this.m[6];this.m[6] = aI * aK + this.m[10] * aJ;this.m[10] = aI * -aJ + this.m[10] * aK;aI = this.m[7];this.m[7] = aI * aK + this.m[11] * aJ;this.m[11] = aI * -aJ + this.m[11] * aK;\n };ac.prototype.rotateY = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[8] * -aJ;this.m[8] = aI * aJ + this.m[8] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[9] * -aJ;this.m[9] = aI * aJ + this.m[9] * aK;aI = m[2];this.m[2] = aI * aK + this.m[10] * -aJ;this.m[10] = aI * aJ + this.m[10] * aK;aI = m[3];this.m[3] = aI * aK + this.m[11] * -aJ;this.m[11] = aI * aJ + this.m[11] * aK;\n };ac.prototype.rotateZ = function (aH) {\n var aK = aC.fcos(aH);var aJ = aC._$9(aH);var aI = this.m[0];this.m[0] = aI * aK + this.m[4] * aJ;this.m[4] = aI * -aJ + this.m[4] * aK;aI = this.m[1];this.m[1] = aI * aK + this.m[5] * aJ;this.m[5] = aI * -aJ + this.m[5] * aK;aI = this.m[2];this.m[2] = aI * aK + this.m[6] * aJ;this.m[6] = aI * -aJ + this.m[6] * aK;aI = this.m[3];this.m[3] = aI * aK + this.m[7] * aJ;this.m[7] = aI * -aJ + this.m[7] * aK;\n };function Z(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }Z.prototype = new ak();Z._$tP = new Object();Z._$27 = function () {\n Z._$tP.clear();\n };Z.getID = function (aH) {\n var aI = Z._$tP[aH];if (aI == null) {\n aI = new Z(aH);Z._$tP[aH] = aI;\n }return aI;\n };Z.prototype._$3s = function () {\n return new Z();\n };function aD() {\n if (j) {\n return;\n }this._$7 = 1;this._$f = 0;this._$H = 0;this._$g = 1;this._$k = 0;this._$w = 0;this._$hi = STATE_IDENTITY;this._$Z = _$pS;\n }aD._$kS = -1;aD._$pS = 0;aD._$hb = 1;aD.STATE_IDENTITY = 0;aD._$gb = 1;aD._$fo = 2;aD._$go = 4;aD.prototype.transform = function (aK, aI, aH) {\n var aT, aS, aR, aM, aL, aJ;var aQ = 0;var aN = 0;switch (this._$hi) {default:\n return;case aD._$go | aD._$fo | aD._$gb:\n aT = this._$7;aS = this._$H;aR = this._$k;aM = this._$f;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO + aR;aI[aN++] = aM * aP + aL * aO + aJ;\n }return;case aD._$go | aD._$fo:\n aT = this._$7;aS = this._$H;aM = this._$f;aL = this._$g;while (--aH >= 0) {\n var aP = aK[aQ++];var aO = aK[aQ++];aI[aN++] = aT * aP + aS * aO;aI[aN++] = aM * aP + aL * aO;\n }return;case aD._$go | aD._$gb:\n aS = this._$H;aR = this._$k;aM = this._$f;aJ = this._$w;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++] + aR;aI[aN++] = aM * aP + aJ;\n }return;case aD._$go:\n aS = this._$H;aM = this._$f;while (--aH >= 0) {\n var aP = aK[aQ++];aI[aN++] = aS * aK[aQ++];aI[aN++] = aM * aP;\n }return;case aD._$fo | aD._$gb:\n aT = this._$7;aR = this._$k;aL = this._$g;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++] + aR;aI[aN++] = aL * aK[aQ++] + aJ;\n }return;case aD._$fo:\n aT = this._$7;aL = this._$g;while (--aH >= 0) {\n aI[aN++] = aT * aK[aQ++];aI[aN++] = aL * aK[aQ++];\n }return;case aD._$gb:\n aR = this._$k;aJ = this._$w;while (--aH >= 0) {\n aI[aN++] = aK[aQ++] + aR;aI[aN++] = aK[aQ++] + aJ;\n }return;case aD.STATE_IDENTITY:\n if (aK != aI || aQ != aN) {\n P._$jT(aK, aQ, aI, aN, aH * 2);\n }return;}\n };aD.prototype.update = function () {\n if (this._$H == 0 && this._$f == 0) {\n if (this._$7 == 1 && this._$g == 1) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD.STATE_IDENTITY;this._$Z = aD._$pS;\n } else {\n this._$hi = aD._$gb;this._$Z = aD._$hb;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n } else {\n if (this._$7 == 0 && this._$g == 0) {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$gb;this._$Z = aD._$kS;\n }\n } else {\n if (this._$k == 0 && this._$w == 0) {\n this._$hi = aD._$go | aD._$fo;this._$Z = aD._$kS;\n } else {\n this._$hi = aD._$go | aD._$fo | aD._$gb;this._$Z = aD._$kS;\n }\n }\n }\n };aD.prototype._$RT = function (aK) {\n this._$IT(aK);var aJ = aK[0];var aH = aK[2];var aN = aK[1];var aM = aK[3];var aI = Math.sqrt(aJ * aJ + aN * aN);var aL = aJ * aM - aH * aN;if (aI == 0) {\n if (Q._$so) {\n console.log(\"affine._$RT() / rt==0\");\n }\n } else {\n aK[0] = aI;aK[1] = aL / aI;aK[2] = (aN * aM + aJ * aH) / aL;aK[3] = Math.atan2(aN, aJ);\n }\n };aD.prototype._$ho = function (aN, aM, aI, aH) {\n var aL = new Float32Array(6);var aK = new Float32Array(6);aN._$RT(aL);aM._$RT(aK);var aJ = new Float32Array(6);aJ[0] = aL[0] + (aK[0] - aL[0]) * aI;aJ[1] = aL[1] + (aK[1] - aL[1]) * aI;aJ[2] = aL[2] + (aK[2] - aL[2]) * aI;aJ[3] = aL[3] + (aK[3] - aL[3]) * aI;aJ[4] = aL[4] + (aK[4] - aL[4]) * aI;aJ[5] = aL[5] + (aK[5] - aL[5]) * aI;aH._$CT(aJ);\n };aD.prototype._$CT = function (aJ) {\n var aI = Math.cos(aJ[3]);var aH = Math.sin(aJ[3]);this._$7 = aJ[0] * aI;this._$f = aJ[0] * aH;this._$H = aJ[1] * (aJ[2] * aI - aH);this._$g = aJ[1] * (aJ[2] * aH + aI);this._$k = aJ[4];this._$w = aJ[5];this.update();\n };aD.prototype._$IT = function (aH) {\n aH[0] = this._$7;aH[1] = this._$f;aH[2] = this._$H;aH[3] = this._$g;aH[4] = this._$k;aH[5] = this._$w;\n };function Y() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$7r = null;this._$7r = Y._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = true;this.loopFadeIn = true;this._$AS = -1;_$a0();\n }Y.prototype = new ah();Y._$cs = \"VISIBLE:\";Y._$ar = \"LAYOUT:\";Y._$Co = 0;Y._$D2 = [];Y._$1T = 1;Y.loadMotion = function (aR) {\n var aM = new Y();var aI = [0];var aP = aR.length;aM._$yT = 0;for (var aJ = 0; aJ < aP; ++aJ) {\n var aQ = aR[aJ] & 255;if (aQ == \"\\n\" || aQ == \"\\r\") {\n continue;\n }if (aQ == \"#\") {\n for (; aJ < aP; ++aJ) {\n if (aR[aJ] == \"\\n\" || aR[aJ] == \"\\r\") {\n break;\n }\n }continue;\n }if (aQ == \"$\") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \"=\") {\n aK = aJ;break;\n }\n }var aO = false;if (aK >= 0) {\n if (aK == aT + 4 && aR[aT + 1] == \"f\" && aR[aT + 2] == \"p\" && aR[aT + 3] == \"s\") {\n aO = true;\n }for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \",\" || aQ == \" \" || aQ == \"\\t\") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n if (aO && 5 < aL && aL < 121) {\n aM._$D0 = aL;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aP; ++aJ) {\n if (aR[aJ] == \"\\n\" || aR[aJ] == \"\\r\") {\n break;\n }\n }continue;\n }if (\"a\" <= aQ && aQ <= \"z\" || \"A\" <= aQ && aQ <= \"Z\" || aQ == \"_\") {\n var aT = aJ;var aK = -1;for (; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \"=\") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aN = new t();if (G.startsWith(aR, aT, Y._$cs)) {\n aN._$RP = t._$hs;aN._$4P = new String(aR, aT, aK - aT);\n } else {\n if (G.startsWith(aR, aT, Y._$ar)) {\n aN._$4P = new String(aR, aT + 7, aK - aT - 7);if (G.startsWith(aR, aT + 7, \"ANCHOR_X\")) {\n aN._$RP = t._$xs;\n } else {\n if (G.startsWith(aR, aT + 7, \"ANCHOR_Y\")) {\n aN._$RP = t._$us;\n } else {\n if (G.startsWith(aR, aT + 7, \"SCALE_X\")) {\n aN._$RP = t._$qs;\n } else {\n if (G.startsWith(aR, aT + 7, \"SCALE_Y\")) {\n aN._$RP = t._$Ys;\n } else {\n if (G.startsWith(aR, aT + 7, \"X\")) {\n aN._$RP = t._$ws;\n } else {\n if (G.startsWith(aR, aT + 7, \"Y\")) {\n aN._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aN._$RP = t._$Fr;aN._$4P = new String(aR, aT, aK - aT);\n }\n }aM.motions.push(aN);var aS = 0;Y._$D2.clear();for (aJ = aK + 1; aJ < aP; ++aJ) {\n aQ = aR[aJ] & 255;if (aQ == \"\\r\" || aQ == \"\\n\") {\n break;\n }if (aQ == \",\" || aQ == \" \" || aQ == \"\\t\") {\n continue;\n }var aL = G._$LS(aR, aP, aJ, aI);if (aI[0] > 0) {\n Y._$D2.push(aL);aS++;var aH = aI[0];if (aH < aJ) {\n console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break;\n }aJ = aH;\n }\n }aN._$I0 = Y._$D2._$BL();if (aS > aM._$yT) {\n aM._$yT = aS;\n }\n }\n }\n }aM._$AS = 1000 * aM._$yT / aM._$D0 | 0;return aM;\n };Y.prototype.getDurationMSec = function () {\n return this._$AS;\n };Y.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log(\"_$wL[%s] [%d]. \", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log(\"%5.2f ,\", aH._$I0[aI]);\n }console.log(\"\\n\");\n }\n };Y.prototype.updateParamExe = function (aH, aL, aO, aX) {\n var aM = aL - aX._$z2;var aV = aM * this._$D0 / 1000;var aJ = aV | 0;var aP = aV - aJ;for (var aU = 0; aU < this.motions.length; aU++) {\n var aS = this.motions[aU];var aK = aS._$I0.length;var aQ = aS._$4P;if (aS._$RP == t._$hs) {\n var aT = aS._$I0[aJ >= aK ? aK - 1 : aJ];aH.setParamFloat(aQ, aT);\n } else {\n if (t._$ws <= aS._$RP && aS._$RP <= t._$Ys) {} else {\n var aR = aH.getParamFloat(aQ);var aY = aS._$I0[aJ >= aK ? aK - 1 : aJ];var aW = aS._$I0[aJ + 1 >= aK ? aK - 1 : aJ + 1];var aI = aY + (aW - aY) * aP;var aN = aR + (aI - aR) * aO;aH.setParamFloat(aQ, aN);\n }\n }\n }if (aJ >= this._$yT) {\n if (this._$E) {\n aX._$z2 = aL;if (this.loopFadeIn) {\n aX._$bs = aL;\n }\n } else {\n aX._$9L = true;\n }\n }\n };Y.prototype._$r0 = function () {\n return this._$E;\n };Y.prototype._$aL = function (aH) {\n this._$E = aH;\n };Y.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };Y.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function aw() {}aw._$Ms = 1;aw._$Qs = 2;aw._$i2 = 0;aw._$No = 2;aw._$do = aw._$Ms;aw._$Ls = true;aw._$1r = 5;aw._$Qb = 65;aw._$J = 0.0001;aw._$FT = 0.001;aw._$Ss = 3;function ay() {}ay._$o7 = 6;ay._$S7 = 7;ay._$s7 = 8;ay._$77 = 9;ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2 = 10;ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1 = 11;ay._$T7 = ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;ay._$Is = -2004318072;ay._$h0 = 0;ay._$4L = 23;ay._$7P = 33;ay._$uT = function (aH) {\n console.log(\"_$bo :: _$6 _$mo _$E0 : %d\\n\", aH);\n };ay._$9o = function (aH) {\n if (aH < 40) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 50) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 60) {\n ay._$uT(aH);return null;\n } else {\n if (aH < 100) {\n switch (aH) {case 65:\n return new E();case 66:\n return new g();case 67:\n return new aA();case 68:\n return new ab();case 69:\n return new X();case 70:\n return new b();default:\n ay._$uT(aH);return null;}\n } else {\n if (aH < 150) {\n switch (aH) {case 131:\n return new f();case 133:\n return new s();case 136:\n return new w();case 137:\n return new an();case 142:\n return new aq();}\n }\n }\n }\n }\n }ay._$uT(aH);return null;\n };function y(aH) {\n if (j) {\n return;\n }this._$QT = true;this._$co = -1;this._$qo = 0;this._$pb = new Array(y._$is);this._$_2 = new Float32Array(y._$is);this._$vr = new Float32Array(y._$is);this._$Rr = new Float32Array(y._$is);this._$Or = new Float32Array(y._$is);this._$fs = new Float32Array(y._$is);this._$Js = new Array(y._$is);this._$3S = new Array();this._$aS = new Array();this._$Bo = null;this._$F2 = new Array();this._$db = new Array();this._$8b = new Array();this._$Hr = new Array();this._$Ws = null;this._$Vs = null;this._$Er = null;this._$Es = new Int16Array(aw._$Qb);this._$ZP = new Float32Array(aw._$1r * 2);this._$Ri = aH;this._$b0 = y._$HP++;this.clipManager = null;this.dp_webgl = null;\n }y._$HP = 0;y._$_0 = true;y._$V2 = -1;y._$W0 = -1;y._$jr = false;y._$ZS = true;y._$tr = -1000000;y._$lr = 1000000;y._$is = 32;y._$e = false;y.prototype.getDrawDataIndex = function (aI) {\n for (var aH = this._$aS.length - 1; aH >= 0; --aH) {\n if (this._$aS[aH] != null && this._$aS[aH].getDrawDataID() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype.getDrawData = function (aH) {\n if (aH instanceof Z) {\n if (this._$Bo == null) {\n this._$Bo = new Object();var aJ = this._$aS.length;for (var aI = 0; aI < aJ; aI++) {\n var aL = this._$aS[aI];var aK = aL.getDrawDataID();if (aK == null) {\n continue;\n }this._$Bo[aK] = aL;\n }\n }return this._$Bo[id];\n } else {\n if (aH < this._$aS.length) {\n return this._$aS[aH];\n } else {\n return null;\n }\n }\n };y.prototype.release = function () {\n this._$3S.clear();this._$aS.clear();this._$F2.clear();if (this._$Bo != null) {\n this._$Bo.clear();\n }this._$db.clear();this._$8b.clear();this._$Hr.clear();\n };y.prototype.init = function () {\n this._$co++;if (this._$F2.length > 0) {\n this.release();\n }var aO = this._$Ri.getModelImpl();var aT = aO._$Xr();var aS = aT.length;var aH = new Array();var a3 = new Array();for (var aV = 0; aV < aS; ++aV) {\n var a4 = aT[aV];this._$F2.push(a4);this._$Hr.push(a4.init(this));var aK = a4.getBaseData();var aR = aK.length;for (var aU = 0; aU < aR; ++aU) {\n aH.push(aK[aU]);\n }for (var aU = 0; aU < aR; ++aU) {\n var aM = aK[aU].init(this);aM._$l2(aV);a3.push(aM);\n }var a1 = a4.getDrawData();var aP = a1.length;for (var aU = 0; aU < aP; ++aU) {\n var aZ = a1[aU];var a0 = aZ.init(this);a0._$IP = aV;this._$aS.push(aZ);this._$8b.push(a0);\n }\n }var aY = aH.length;var aN = n._$2o();while (true) {\n var aX = false;for (var aV = 0; aV < aY; ++aV) {\n var aL = aH[aV];if (aL == null) {\n continue;\n }var a2 = aL.getTargetBaseDataID();if (a2 == null || a2 == aN || this.getBaseDataIndex(a2) >= 0) {\n this._$3S.push(aL);this._$db.push(a3[aV]);aH[aV] = null;aX = true;\n }\n }if (!aX) {\n break;\n }\n }var aI = aO._$E2();if (aI != null) {\n var aJ = aI._$1s();if (aJ != null) {\n var aW = aJ.length;for (var aV = 0; aV < aW; ++aV) {\n var aQ = aJ[aV];if (aQ == null) {\n continue;\n }this._$02(aQ.getParamID(), aQ.getDefaultValue(), aQ.getMinValue(), aQ.getMaxValue());\n }\n }\n }this.clipManager = new W(this.dp_webgl);this.clipManager.init(this, this._$aS, this._$8b);this._$QT = true;\n };y.prototype.update = function () {\n if (y._$e) {\n q.start(\"_$zL\");\n }var aK = this._$_2.length;for (var aW = 0; aW < aK; aW++) {\n if (this._$_2[aW] != this._$vr[aW]) {\n this._$Js[aW] = y._$ZS;this._$vr[aW] = this._$_2[aW];\n }\n }var aX = false;var aQ = this._$3S.length;var aN = this._$aS.length;var aS = a._$or();var aZ = a._$Pr();var aU = aZ - aS + 1;if (this._$Ws == null || this._$Ws.length < aU) {\n this._$Ws = new Int16Array(aU);this._$Vs = new Int16Array(aU);\n }for (var aW = 0; aW < aU; aW++) {\n this._$Ws[aW] = y._$V2;this._$Vs[aW] = y._$V2;\n }if (this._$Er == null || this._$Er.length < aN) {\n this._$Er = new Int16Array(aN);\n }for (var aW = 0; aW < aN; aW++) {\n this._$Er[aW] = y._$W0;\n }if (y._$e) {\n q.dump(\"_$zL\");\n }if (y._$e) {\n q.start(\"_$UL\");\n }var aL = null;for (var aV = 0; aV < aQ; ++aV) {\n var aJ = this._$3S[aV];var aH = this._$db[aV];try {\n aJ._$Nr(this, aH);aJ._$2b(this, aH);\n } catch (aY) {\n if (aL == null) {\n aL = aY;\n }\n }\n }if (aL != null) {\n if (y._$_0) {\n q._$Rb(aL);\n }\n }if (y._$e) {\n q.dump(\"_$UL\");\n }if (y._$e) {\n q.start(\"_$DL\");\n }var aR = null;for (var aO = 0; aO < aN; ++aO) {\n var aM = this._$aS[aO];var aI = this._$8b[aO];try {\n aM._$Nr(this, aI);if (aI._$u2()) {\n continue;\n }aM._$2b(this, aI);var aT = Math.floor(aM._$zS(this, aI) - aS);var aP;try {\n aP = this._$Vs[aT];\n } catch (aY) {\n console.log(\"_$li :: %s / %s \t\t\t\t@@_$fS\\n\", aY.toString(), aM.getDrawDataID().toString());aT = Math.floor(aM._$zS(this, aI) - aS);continue;\n }if (aP == y._$V2) {\n this._$Ws[aT] = aO;\n } else {\n this._$Er[aP] = aO;\n }this._$Vs[aT] = aO;\n } catch (aY) {\n if (aR == null) {\n aR = aY;Q._$sT(Q._$H7);\n }\n }\n }if (aR != null) {\n if (y._$_0) {\n q._$Rb(aR);\n }\n }if (y._$e) {\n q.dump(\"_$DL\");\n }if (y._$e) {\n q.start(\"_$eL\");\n }for (var aW = this._$Js.length - 1; aW >= 0; aW--) {\n this._$Js[aW] = y._$jr;\n }this._$QT = false;if (y._$e) {\n q.dump(\"_$eL\");\n }return aX;\n };y.prototype.preDraw = function (aH) {\n if (this.clipManager != null) {\n aH._$ZT();this.clipManager.setupClip(this, aH);\n }\n };y.prototype.draw = function (aM) {\n if (this._$Ws == null) {\n q._$li(\"call _$Ri.update() before _$Ri.draw() \");return;\n }var aP = this._$Ws.length;aM._$ZT();for (var aK = 0; aK < aP; ++aK) {\n var aN = this._$Ws[aK];if (aN == y._$V2) {\n continue;\n }do {\n var aH = this._$aS[aN];var aI = this._$8b[aN];if (aI._$yo()) {\n var aJ = aI._$IP;var aL = this._$Hr[aJ];aI._$VS = aL.getPartsOpacity();aH.draw(aM, this, aI);\n }var aO = this._$Er[aN];if (aO <= aN || aO == y._$W0) {\n break;\n }aN = aO;\n } while (true);\n }\n };y.prototype.getParamIndex = function (aH) {\n for (var aI = this._$pb.length - 1; aI >= 0; --aI) {\n if (this._$pb[aI] == aH) {\n return aI;\n }\n }return this._$02(aH, 0, y._$tr, y._$lr);\n };y.prototype._$BS = function (aH) {\n return this.getBaseDataIndex(aH);\n };y.prototype.getBaseDataIndex = function (aH) {\n for (var aI = this._$3S.length - 1; aI >= 0; --aI) {\n if (this._$3S[aI] != null && this._$3S[aI].getBaseDataID() == aH) {\n return aI;\n }\n }return -1;\n };y.prototype._$UT = function (aJ, aH) {\n var aI = new Float32Array(aH);P._$jT(aJ, 0, aI, 0, aJ.length);return aI;\n };y.prototype._$02 = function (aN, aM, aL, aH) {\n if (this._$qo >= this._$pb.length) {\n var aK = this._$pb.length;var aJ = new Array(aK * 2);P._$jT(this._$pb, 0, aJ, 0, aK);this._$pb = aJ;this._$_2 = this._$UT(this._$_2, aK * 2);this._$vr = this._$UT(this._$vr, aK * 2);this._$Rr = this._$UT(this._$Rr, aK * 2);this._$Or = this._$UT(this._$Or, aK * 2);var aI = new Array();P._$jT(this._$Js, 0, aI, 0, aK);this._$Js = aI;\n }this._$pb[this._$qo] = aN;this._$_2[this._$qo] = aM;this._$vr[this._$qo] = aM;this._$Rr[this._$qo] = aL;this._$Or[this._$qo] = aH;this._$Js[this._$qo] = y._$ZS;return this._$qo++;\n };y.prototype._$Zo = function (aI, aH) {\n this._$3S[aI] = aH;\n };y.prototype.setParamFloat = function (aH, aI) {\n if (aI < this._$Rr[aH]) {\n aI = this._$Rr[aH];\n }if (aI > this._$Or[aH]) {\n aI = this._$Or[aH];\n }this._$_2[aH] = aI;\n };y.prototype.loadParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n aH = this._$fs.length;\n }P._$jT(this._$fs, 0, this._$_2, 0, aH);\n };y.prototype.saveParam = function () {\n var aH = this._$_2.length;if (aH > this._$fs.length) {\n this._$fs = new Float32Array(aH);\n }P._$jT(this._$_2, 0, this._$fs, 0, aH);\n };y.prototype._$v2 = function () {\n return this._$co;\n };y.prototype._$WS = function () {\n return this._$QT;\n };y.prototype._$Xb = function (aH) {\n return this._$Js[aH] == y._$ZS;\n };y.prototype._$vs = function () {\n return this._$Es;\n };y.prototype._$Tr = function () {\n return this._$ZP;\n };y.prototype.getBaseData = function (aH) {\n return this._$3S[aH];\n };y.prototype.getParamFloat = function (aH) {\n return this._$_2[aH];\n };y.prototype.getParamMax = function (aH) {\n return this._$Or[aH];\n };y.prototype.getParamMin = function (aH) {\n return this._$Rr[aH];\n };y.prototype.setPartsOpacity = function (aJ, aH) {\n var aI = this._$Hr[aJ];aI.setPartsOpacity(aH);\n };y.prototype.getPartsOpacity = function (aI) {\n var aH = this._$Hr[aI];return aH.getPartsOpacity();\n };y.prototype.getPartsDataIndex = function (aI) {\n for (var aH = this._$F2.length - 1; aH >= 0; --aH) {\n if (this._$F2[aH] != null && this._$F2[aH]._$p2() == aI) {\n return aH;\n }\n }return -1;\n };y.prototype._$q2 = function (aH) {\n return this._$db[aH];\n };y.prototype._$C2 = function (aH) {\n return this._$8b[aH];\n };y.prototype._$Bb = function (aH) {\n return this._$Hr[aH];\n };y.prototype._$5s = function (aO, aK) {\n var aJ = this._$Ws.length;var aN = aO;for (var aL = 0; aL < aJ; ++aL) {\n var aI = this._$Ws[aL];if (aI == y._$V2) {\n continue;\n }do {\n var aM = this._$8b[aI];if (aM._$yo()) {\n aM._$GT()._$B2(this, aM, aN);aN += aK;\n }var aH = this._$Er[aI];if (aH <= aI || aH == y._$W0) {\n break;\n }aI = aH;\n } while (true);\n }\n };y.prototype.setDrawParam = function (aH) {\n this.dp_webgl = aH;\n };y.prototype.getDrawParam = function () {\n return this.dp_webgl;\n };function ap() {}ap._$0T = function (aH) {\n return ap._$0T(new _$5(aH));\n };ap._$0T = function (aJ) {\n if (!aJ.exists()) {\n throw new _$ls(aJ._$3b());\n }var aH = aJ.length();var aI = new Int8Array(aH);var aM = new _$Xs(new _$kb(aJ), 8192);var aK;var aL = 0;while ((aK = aM.read(aI, aL, aH - aL)) > 0) {\n aL += aK;\n }return aI;\n };ap._$C = function (aJ) {\n var aI = null;var aL = null;try {\n aI = aJ instanceof Array ? aJ : new _$Xs(aJ, 8192);aL = new _$js();var aM = 1000;var aK;var aH = new Int8Array(aM);while ((aK = aI.read(aH)) > 0) {\n aL.write(aH, 0, aK);\n }return aL._$TS();\n } finally {\n if (aJ != null) {\n aJ.close();\n }if (aL != null) {\n aL.flush();aL.close();\n }\n }\n };function ar() {\n if (j) {\n return;\n }this._$12 = null;this._$bb = null;this._$_L = null;this._$jo = null;this._$iL = null;this._$0L = null;this._$Br = null;this._$Dr = null;this._$Cb = null;this._$mr = null;this._$_L = az.STATE_FIRST;this._$Br = 4000;this._$Dr = 100;this._$Cb = 50;this._$mr = 150;this._$jo = true;this._$iL = \"PARAM_EYE_L_OPEN\";this._$0L = \"PARAM_EYE_R_OPEN\";\n }ar.prototype._$T2 = function () {\n var aI = P.getUserTimeMSec();var aH = Math._$10();return aI + aH * (2 * this._$Br - 1);\n };ar.prototype._$uo = function (aH) {\n this._$Br = aH;\n };ar.prototype._$QS = function (aI, aH, aJ) {\n this._$Dr = aI;this._$Cb = aH;this._$mr = aJ;\n };ar.prototype._$7T = function (aI) {\n var aK = P.getUserTimeMSec();var aH;var aJ = 0;switch (this._$_L) {case STATE_CLOSING:\n aJ = (aK - this._$bb) / this._$Dr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_CLOSED;this._$bb = aK;\n }aH = 1 - aJ;break;case STATE_CLOSED:\n aJ = (aK - this._$bb) / this._$Cb;if (aJ >= 1) {\n this._$_L = az.STATE_OPENING;this._$bb = aK;\n }aH = 0;break;case STATE_OPENING:\n aJ = (aK - this._$bb) / this._$mr;if (aJ >= 1) {\n aJ = 1;this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();\n }aH = aJ;break;case STATE_INTERVAL:\n if (this._$12 < aK) {\n this._$_L = az.STATE_CLOSING;this._$bb = aK;\n }aH = 1;break;case STATE_FIRST:default:\n this._$_L = az.STATE_INTERVAL;this._$12 = this._$T2();aH = 1;break;}if (!this._$jo) {\n aH = -aH;\n }aI.setParamFloat(this._$iL, aH);aI.setParamFloat(this._$0L, aH);\n };var az = function az() {};az.STATE_FIRST = \"STATE_FIRST\";az.STATE_INTERVAL = \"STATE_INTERVAL\";az.STATE_CLOSING = \"STATE_CLOSING\";az.STATE_CLOSED = \"STATE_CLOSED\";az.STATE_OPENING = \"STATE_OPENING\";function x() {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this._$sb = new Int32Array(x._$As);this._$U2 = new Array();this.transform = null;this.gl = null;if (x._$NT == null) {\n x._$NT = x._$9r(256);x._$vS = x._$9r(256);x._$no = x._$vb(256);\n }\n }x.prototype = new ax();x._$As = 32;x._$Gr = false;x._$NT = null;x._$vS = null;x._$no = null;x._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };x._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };x._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = x._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };x._$Hs = function () {\n return x._$Gr;\n };x._$as = function (aH) {\n x._$Gr = aH;\n };x.prototype.setGL = function (aH) {\n this.gl = aH;\n };x.prototype.setTransform = function (aH) {\n this.transform = aH;\n };x.prototype._$ZT = function () {};x.prototype._$Uo = function (aO, aH, aP, aI, aQ, aM, aK, aJ) {\n if (aM < 0.01) {\n return;\n }var aL = this._$U2[aO];var aN = aM > 0.9 ? Q.EXPAND_W : 0;this.gl.drawElements(aL, aP, aI, aQ, aM, aN, this.transform, aJ);\n };x.prototype._$Rs = function () {\n throw new Error(\"_$Rs\");\n };x.prototype._$Ds = function (aH) {\n throw new Error(\"_$Ds\");\n };x.prototype._$K2 = function () {\n for (var aH = 0; aH < this._$sb.length; aH++) {\n var aI = this._$sb[aH];if (aI != 0) {\n this.gl._$Sr(1, this._$sb, aH);this._$sb[aH] = 0;\n }\n }\n };x.prototype.setTexture = function (aI, aH) {\n if (this._$sb.length < aI + 1) {\n this._$nS(aI);\n }this._$sb[aI] = aH;\n };x.prototype.setTexture = function (aH, aI) {\n if (this._$sb.length < aH + 1) {\n this._$nS(aH);\n }this._$U2[aH] = aI;\n };x.prototype._$nS = function (aH) {\n var aK = Math.max(this._$sb.length * 2, aH + 1 + 10);var aI = new Int32Array(aK);P._$jT(this._$sb, 0, aI, 0, this._$sb.length);this._$sb = aI;var aJ = new Array();P._$jT(this._$U2, 0, aJ, 0, this._$U2.length);this._$U2 = aJ;\n };function ab() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$GS = null;this._$Y0 = null;\n }ab.prototype = new c();ab._$Xo = new Float32Array(2);ab._$io = new Float32Array(2);ab._$0o = new Float32Array(2);ab._$Lo = new Float32Array(2);ab._$To = new Float32Array(2);ab._$Po = new Float32Array(2);ab._$gT = new Array();ab.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();this._$Y0 = new Array();\n };ab.prototype.getType = function () {\n return c._$c2;\n };ab.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$GS = aH._$nP();this._$Y0 = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };ab.prototype.init = function (aH) {\n var aI = new al(this);aI._$Yr = new X();if (this._$32()) {\n aI._$Wr = new X();\n }return aI;\n };ab.prototype._$Nr = function (bf, bx) {\n if (!(this == bx._$GT())) {\n console.log(\"### assert!! ### \");\n }var bm = bx;if (!this._$GS._$Ur(bf)) {\n return;\n }var bw = ab._$gT;bw[0] = false;var a2 = this._$GS._$Q2(bf, bw);bx._$Ib(bw[0]);this.interpolateOpacity(bf, this._$GS, bx, bw);var a3 = bf._$vs();var ba = bf._$Tr();this._$GS._$zr(a3, ba, a2);if (a2 <= 0) {\n var bn = this._$Y0[a3[0]];bm._$Yr.init(bn);\n } else {\n if (a2 == 1) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a9 = ba[0];bm._$Yr._$fL = bn._$fL + (bl._$fL - bn._$fL) * a9;bm._$Yr._$gL = bn._$gL + (bl._$gL - bn._$gL) * a9;bm._$Yr._$B0 = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bm._$Yr._$z0 = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bm._$Yr._$qT = bn._$qT + (bl._$qT - bn._$qT) * a9;\n } else {\n if (a2 == 2) {\n var bn = this._$Y0[a3[0]];var bl = this._$Y0[a3[1]];var a1 = this._$Y0[a3[2]];var a0 = this._$Y0[a3[3]];var a9 = ba[0];var a8 = ba[1];var bC = bn._$fL + (bl._$fL - bn._$fL) * a9;var bB = a1._$fL + (a0._$fL - a1._$fL) * a9;bm._$Yr._$fL = bC + (bB - bC) * a8;bC = bn._$gL + (bl._$gL - bn._$gL) * a9;bB = a1._$gL + (a0._$gL - a1._$gL) * a9;bm._$Yr._$gL = bC + (bB - bC) * a8;bC = bn._$B0 + (bl._$B0 - bn._$B0) * a9;bB = a1._$B0 + (a0._$B0 - a1._$B0) * a9;bm._$Yr._$B0 = bC + (bB - bC) * a8;bC = bn._$z0 + (bl._$z0 - bn._$z0) * a9;bB = a1._$z0 + (a0._$z0 - a1._$z0) * a9;bm._$Yr._$z0 = bC + (bB - bC) * a8;bC = bn._$qT + (bl._$qT - bn._$qT) * a9;bB = a1._$qT + (a0._$qT - a1._$qT) * a9;bm._$Yr._$qT = bC + (bB - bC) * a8;\n } else {\n if (a2 == 3) {\n var aP = this._$Y0[a3[0]];var aO = this._$Y0[a3[1]];var bu = this._$Y0[a3[2]];var bs = this._$Y0[a3[3]];var aK = this._$Y0[a3[4]];var aJ = this._$Y0[a3[5]];var bj = this._$Y0[a3[6]];var bi = this._$Y0[a3[7]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var bC = aP._$fL + (aO._$fL - aP._$fL) * a9;var bB = bu._$fL + (bs._$fL - bu._$fL) * a9;var bz = aK._$fL + (aJ._$fL - aK._$fL) * a9;var by = bj._$fL + (bi._$fL - bj._$fL) * a9;bm._$Yr._$fL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$gL + (aO._$gL - aP._$gL) * a9;bB = bu._$gL + (bs._$gL - bu._$gL) * a9;bz = aK._$gL + (aJ._$gL - aK._$gL) * a9;by = bj._$gL + (bi._$gL - bj._$gL) * a9;bm._$Yr._$gL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$B0 + (aO._$B0 - aP._$B0) * a9;bB = bu._$B0 + (bs._$B0 - bu._$B0) * a9;bz = aK._$B0 + (aJ._$B0 - aK._$B0) * a9;by = bj._$B0 + (bi._$B0 - bj._$B0) * a9;bm._$Yr._$B0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$z0 + (aO._$z0 - aP._$z0) * a9;bB = bu._$z0 + (bs._$z0 - bu._$z0) * a9;bz = aK._$z0 + (aJ._$z0 - aK._$z0) * a9;by = bj._$z0 + (bi._$z0 - bj._$z0) * a9;bm._$Yr._$z0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);bC = aP._$qT + (aO._$qT - aP._$qT) * a9;bB = bu._$qT + (bs._$qT - bu._$qT) * a9;bz = aK._$qT + (aJ._$qT - aK._$qT) * a9;by = bj._$qT + (bi._$qT - bj._$qT) * a9;bm._$Yr._$qT = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);\n } else {\n if (a2 == 4) {\n var aT = this._$Y0[a3[0]];var aS = this._$Y0[a3[1]];var bE = this._$Y0[a3[2]];var bD = this._$Y0[a3[3]];var aN = this._$Y0[a3[4]];var aM = this._$Y0[a3[5]];var bp = this._$Y0[a3[6]];var bo = this._$Y0[a3[7]];var bh = this._$Y0[a3[8]];var bg = this._$Y0[a3[9]];var aY = this._$Y0[a3[10]];var aW = this._$Y0[a3[11]];var a7 = this._$Y0[a3[12]];var a5 = this._$Y0[a3[13]];var aR = this._$Y0[a3[14]];var aQ = this._$Y0[a3[15]];var a9 = ba[0];var a8 = ba[1];var a6 = ba[2];var a4 = ba[3];var bC = aT._$fL + (aS._$fL - aT._$fL) * a9;var bB = bE._$fL + (bD._$fL - bE._$fL) * a9;var bz = aN._$fL + (aM._$fL - aN._$fL) * a9;var by = bp._$fL + (bo._$fL - bp._$fL) * a9;var bv = bh._$fL + (bg._$fL - bh._$fL) * a9;var bt = aY._$fL + (aW._$fL - aY._$fL) * a9;var br = a7._$fL + (a5._$fL - a7._$fL) * a9;var bq = aR._$fL + (aQ._$fL - aR._$fL) * a9;bm._$Yr._$fL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$gL + (aS._$gL - aT._$gL) * a9;bB = bE._$gL + (bD._$gL - bE._$gL) * a9;bz = aN._$gL + (aM._$gL - aN._$gL) * a9;by = bp._$gL + (bo._$gL - bp._$gL) * a9;bv = bh._$gL + (bg._$gL - bh._$gL) * a9;bt = aY._$gL + (aW._$gL - aY._$gL) * a9;br = a7._$gL + (a5._$gL - a7._$gL) * a9;bq = aR._$gL + (aQ._$gL - aR._$gL) * a9;bm._$Yr._$gL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$B0 + (aS._$B0 - aT._$B0) * a9;bB = bE._$B0 + (bD._$B0 - bE._$B0) * a9;bz = aN._$B0 + (aM._$B0 - aN._$B0) * a9;by = bp._$B0 + (bo._$B0 - bp._$B0) * a9;bv = bh._$B0 + (bg._$B0 - bh._$B0) * a9;bt = aY._$B0 + (aW._$B0 - aY._$B0) * a9;br = a7._$B0 + (a5._$B0 - a7._$B0) * a9;bq = aR._$B0 + (aQ._$B0 - aR._$B0) * a9;bm._$Yr._$B0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$z0 + (aS._$z0 - aT._$z0) * a9;bB = bE._$z0 + (bD._$z0 - bE._$z0) * a9;bz = aN._$z0 + (aM._$z0 - aN._$z0) * a9;by = bp._$z0 + (bo._$z0 - bp._$z0) * a9;bv = bh._$z0 + (bg._$z0 - bh._$z0) * a9;bt = aY._$z0 + (aW._$z0 - aY._$z0) * a9;br = a7._$z0 + (a5._$z0 - a7._$z0) * a9;bq = aR._$z0 + (aQ._$z0 - aR._$z0) * a9;bm._$Yr._$z0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));bC = aT._$qT + (aS._$qT - aT._$qT) * a9;bB = bE._$qT + (bD._$qT - bE._$qT) * a9;bz = aN._$qT + (aM._$qT - aN._$qT) * a9;by = bp._$qT + (bo._$qT - bp._$qT) * a9;bv = bh._$qT + (bg._$qT - bh._$qT) * a9;bt = aY._$qT + (aW._$qT - aY._$qT) * a9;br = a7._$qT + (a5._$qT - a7._$qT) * a9;bq = aR._$qT + (aQ._$qT - aR._$qT) * a9;bm._$Yr._$qT = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));\n } else {\n var aV = Math.pow(2, a2) | 0;var aZ = new Float32Array(aV);for (var bk = 0; bk < aV; bk++) {\n var aI = bk;var aH = 1;for (var aL = 0; aL < a2; aL++) {\n aH *= aI % 2 == 0 ? 1 - ba[aL] : ba[aL];aI /= 2;\n }aZ[bk] = aH;\n }var bA = new Array();for (var aU = 0; aU < aV; aU++) {\n bA[aU] = this._$Y0[a3[aU]];\n }var be = 0,\n bc = 0,\n bd = 0,\n bb = 0,\n aX = 0;for (var aU = 0; aU < aV; aU++) {\n be += aZ[aU] * bA[aU]._$fL;bc += aZ[aU] * bA[aU]._$gL;bd += aZ[aU] * bA[aU]._$B0;bb += aZ[aU] * bA[aU]._$z0;aX += aZ[aU] * bA[aU]._$qT;\n }bm._$Yr._$fL = be;bm._$Yr._$gL = bc;bm._$Yr._$B0 = bd;bm._$Yr._$z0 = bb;bm._$Yr._$qT = aX;\n }\n }\n }\n }\n }var bn = this._$Y0[a3[0]];bm._$Yr.reflectX = bn.reflectX;bm._$Yr.reflectY = bn.reflectY;\n };ab.prototype._$2b = function (aM, aH) {\n if (!(this == aH._$GT())) {\n console.log(\"### assert!! ### \");\n }var aR = aH;aR._$hS(true);if (!this._$32()) {\n aR.setTotalScale_notForClient(aR._$Yr._$B0);aR.setTotalOpacity(aR.getInterpolatedOpacity());\n } else {\n var aT = this.getTargetBaseDataID();if (aR._$8r == c._$ur) {\n aR._$8r = aM.getBaseDataIndex(aT);\n }if (aR._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aT);\n }aR._$hS(false);\n } else {\n var aI = aM.getBaseData(aR._$8r);if (aI != null) {\n var aL = aM._$q2(aR._$8r);var aS = ab._$Xo;aS[0] = aR._$Yr._$fL;aS[1] = aR._$Yr._$gL;var aJ = ab._$io;aJ[0] = 0;aJ[1] = -0.1;var aO = aL._$GT().getType();if (aO == c._$c2) {\n aJ[1] = -10;\n } else {\n aJ[1] = -0.1;\n }var aQ = ab._$0o;this._$Jr(aM, aI, aL, aS, aJ, aQ);var aP = aC._$92(aJ, aQ);aI._$nb(aM, aL, aS, aS, 1, 0, 2);aR._$Wr._$fL = aS[0];aR._$Wr._$gL = aS[1];aR._$Wr._$B0 = aR._$Yr._$B0;aR._$Wr._$z0 = aR._$Yr._$z0;aR._$Wr._$qT = aR._$Yr._$qT - aP * aC._$NS;var aK = aL.getTotalScale();aR.setTotalScale_notForClient(aK * aR._$Wr._$B0);var aN = aL.getTotalOpacity();aR.setTotalOpacity(aN * aR.getInterpolatedOpacity());aR._$Wr.reflectX = aR._$Yr.reflectX;aR._$Wr.reflectY = aR._$Yr.reflectY;aR._$hS(aL._$yo());\n } else {\n aR._$hS(false);\n }\n }\n }\n };ab.prototype._$nb = function (aJ, aR, aL, a4, aT, aO, a2) {\n if (!(this == aR._$GT())) {\n console.log(\"### assert!! ### \");\n }var aH = aR;var aU = aH._$Wr != null ? aH._$Wr : aH._$Yr;var a0 = Math.sin(aC._$bS * aU._$qT);var aP = Math.cos(aC._$bS * aU._$qT);var a3 = aH.getTotalScale();var aW = aU.reflectX ? -1 : 1;var aV = aU.reflectY ? -1 : 1;var aS = aP * a3 * aW;var aQ = -a0 * a3 * aV;var a1 = a0 * a3 * aW;var aZ = aP * a3 * aV;var aY = aU._$fL;var aX = aU._$gL;var aN, aM;var aI = aT * a2;for (var aK = aO; aK < aI; aK += a2) {\n aN = aL[aK];aM = aL[aK + 1];a4[aK] = aS * aN + aQ * aM + aY;a4[aK + 1] = a1 * aN + aZ * aM + aX;\n }\n };ab.prototype._$Jr = function (aP, aK, aI, aR, aQ, aH) {\n if (!(aK == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }var aO = ab._$Lo;ab._$Lo[0] = aR[0];ab._$Lo[1] = aR[1];aK._$nb(aP, aI, aO, aO, 1, 0, 2);var aL = ab._$To;var aS = ab._$Po;var aN = 10;var aJ = 1;for (var aM = 0; aM < aN; aM++) {\n aS[0] = aR[0] + aJ * aQ[0];aS[1] = aR[1] + aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aH[0] = aL[0];aH[1] = aL[1];return;\n }aS[0] = aR[0] - aJ * aQ[0];aS[1] = aR[1] - aJ * aQ[1];aK._$nb(aP, aI, aS, aL, 1, 0, 2);aL[0] -= aO[0];aL[1] -= aO[1];if (aL[0] != 0 || aL[1] != 0) {\n aL[0] = -aL[0];aL[0] = -aL[0];aH[0] = aL[0];aH[1] = aL[1];return;\n }aJ *= 0.1;\n }if (Q._$so) {\n console.log(\"_$L0 to transform _$SP\\n\");\n }\n };function al(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Yr = null;this._$Wr = null;\n }al.prototype = new B();function a() {\n if (j) {\n return;\n }ae.prototype.constructor.call(this);this._$gP = null;this._$dr = null;this._$GS = null;this._$qb = null;this._$Lb = null;this._$mS = null;\n }a.prototype = new ae();a._$ur = -2;a._$ES = 500;a._$wb = 2;a._$8S = 3;a._$os = 4;a._$52 = a._$ES;a._$R2 = a._$ES;a._$Sb = function (aJ) {\n for (var aI = aJ.length - 1; aI >= 0; --aI) {\n var aH = aJ[aI];if (aH < a._$52) {\n a._$52 = aH;\n } else {\n if (aH > a._$R2) {\n a._$R2 = aH;\n }\n }\n }\n };a._$or = function () {\n return a._$52;\n };a._$Pr = function () {\n return a._$R2;\n };a.prototype._$F0 = function (aH) {\n this._$gP = aH._$nP();this._$dr = aH._$nP();this._$GS = aH._$nP();this._$qb = aH._$6L();this._$Lb = aH._$cS();this._$mS = aH._$Tb();if (aH.getFormatVersion() >= ay._$T7) {\n this.clipID = aH._$nP();this.clipIDList = this.convertClipIDForV2_11(this.clipID);\n } else {\n this.clipIDList = null;\n }a._$Sb(this._$Lb);\n };a.prototype.getClipIDList = function () {\n return this.clipIDList;\n };a.prototype._$Nr = function (aI, aH) {\n aH._$IS[0] = false;aH._$Us = aG._$Z2(aI, this._$GS, aH._$IS, this._$Lb);if (Q._$Zs) {} else {\n if (aH._$IS[0]) {\n return;\n }\n }aH._$7s = aG._$br(aI, this._$GS, aH._$IS, this._$mS);\n };a.prototype._$2b = function (aH) {};a.prototype.getDrawDataID = function () {\n return this._$gP;\n };a.prototype._$j2 = function (aH) {\n this._$gP = aH;\n };a.prototype.getOpacity = function (aH, aI) {\n return aI._$7s;\n };a.prototype._$zS = function (aH, aI) {\n return aI._$Us;\n };a.prototype.getTargetBaseDataID = function () {\n return this._$dr;\n };a.prototype._$gs = function (aH) {\n this._$dr = aH;\n };a.prototype._$32 = function () {\n return this._$dr != null && this._$dr != n._$2o();\n };a.prototype.getType = function () {};function aq() {\n if (j) {\n return;\n }this._$NL = null;this._$3S = null;this._$aS = null;aq._$42++;\n }aq._$42 = 0;aq.prototype._$1b = function () {\n return this._$3S;\n };aq.prototype.getDrawDataList = function () {\n return this._$aS;\n };aq.prototype._$F0 = function (aH) {\n this._$NL = aH._$nP();this._$aS = aH._$nP();this._$3S = aH._$nP();\n };aq.prototype._$kr = function (aH) {\n aH._$Zo(this._$3S);aH._$xo(this._$aS);this._$3S = null;this._$aS = null;\n };function v() {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this._$zo = new x();\n }v.prototype = new aa();v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v.loadModel = function (aI) {\n var aH = new v();aa._$62(aH, aI);return aH;\n };v._$to = function () {\n var aH = new v();return aH;\n };v._$er = function (aM) {\n var aJ = new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if (aJ.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aJ._$PL());\n }var aH = [\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK = v.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };v.prototype.setGL = function (aH) {\n this._$zo.setGL(aH);\n };v.prototype.setTransform = function (aH) {\n this._$zo.setTransform(aH);\n };v.prototype.draw = function () {\n this._$5S.draw(this._$zo);\n };v.prototype._$K2 = function () {\n this._$zo._$K2();\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this._$zo.setTexture(aI, aH);\n };v.prototype.setTexture = function (aI, aH) {\n if (this._$zo == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this._$zo.setTexture(aI, aH);\n };v.prototype._$Rs = function () {\n return this._$zo._$Rs();\n };v.prototype._$Ds = function (aH) {\n this._$zo._$Ds(aH);\n };v.prototype.getDrawParam = function () {\n return this._$zo;\n };function ao() {\n if (j) {\n return;\n }ah.prototype.constructor.call(this);this.motions = new Array();this._$o2 = null;this._$7r = ao._$Co++;this._$D0 = 30;this._$yT = 0;this._$E = false;this.loopFadeIn = true;this._$rr = -1;this._$eP = 0;\n }ao.prototype = new ah();ao._$cs = \"VISIBLE:\";ao._$ar = \"LAYOUT:\";ao.MTN_PREFIX_FADEIN = \"FADEIN:\";ao.MTN_PREFIX_FADEOUT = \"FADEOUT:\";ao._$Co = 0;ao._$1T = 1;ao.loadMotion = function (aJ) {\n var aI = ap._$C(aJ);var aH = ao.loadMotion(aI);return aH;\n };function p(aI, aH) {\n return String.fromCharCode(aI.getUint8(aH));\n }ao.loadMotion = function (aT) {\n if (aT instanceof ArrayBuffer) {\n aT = new DataView(aT);\n }var aN = new ao();var aI = [0];var aQ = aT.byteLength;aN._$yT = 0;for (var aJ = 0; aJ < aQ; ++aJ) {\n var aS = p(aT, aJ);var aL = aS.charCodeAt(0);if (aS == \"\\n\" || aS == \"\\r\") {\n continue;\n }if (aS == \"#\") {\n for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == \"\\n\" || p(aT, aJ) == \"\\r\") {\n break;\n }\n }continue;\n }if (aS == \"$\") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \"=\") {\n aK = aJ;break;\n }\n }var aP = false;if (aK >= 0) {\n if (aK == aV + 4 && p(aT, aV + 1) == \"f\" && p(aT, aV + 2) == \"p\" && p(aT, aV + 3) == \"s\") {\n aP = true;\n }for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \",\" || aS == \" \" || aS == \"\\t\") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n if (aP && 5 < aM && aM < 121) {\n aN._$D0 = aM;\n }\n }aJ = aI[0];\n }\n }for (; aJ < aQ; ++aJ) {\n if (p(aT, aJ) == \"\\n\" || p(aT, aJ) == \"\\r\") {\n break;\n }\n }continue;\n }if (97 <= aL && aL <= 122 || 65 <= aL && aL <= 90 || aS == \"_\") {\n var aV = aJ;var aK = -1;for (; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \"=\") {\n aK = aJ;break;\n }\n }if (aK >= 0) {\n var aO = new t();if (G.startsWith(aT, aV, ao._$cs)) {\n aO._$RP = t._$hs;aO._$4P = G.createString(aT, aV, aK - aV);\n } else {\n if (G.startsWith(aT, aV, ao._$ar)) {\n aO._$4P = G.createString(aT, aV + 7, aK - aV - 7);if (G.startsWith(aT, aV + 7, \"ANCHOR_X\")) {\n aO._$RP = t._$xs;\n } else {\n if (G.startsWith(aT, aV + 7, \"ANCHOR_Y\")) {\n aO._$RP = t._$us;\n } else {\n if (G.startsWith(aT, aV + 7, \"SCALE_X\")) {\n aO._$RP = t._$qs;\n } else {\n if (G.startsWith(aT, aV + 7, \"SCALE_Y\")) {\n aO._$RP = t._$Ys;\n } else {\n if (G.startsWith(aT, aV + 7, \"X\")) {\n aO._$RP = t._$ws;\n } else {\n if (G.startsWith(aT, aV + 7, \"Y\")) {\n aO._$RP = t._$Ns;\n }\n }\n }\n }\n }\n }\n } else {\n aO._$RP = t._$Fr;aO._$4P = G.createString(aT, aV, aK - aV);\n }\n }aN.motions.push(aO);var aU = 0;var aR = [];for (aJ = aK + 1; aJ < aQ; ++aJ) {\n aS = p(aT, aJ);if (aS == \"\\r\" || aS == \"\\n\") {\n break;\n }if (aS == \",\" || aS == \" \" || aS == \"\\t\") {\n continue;\n }var aM = G._$LS(aT, aQ, aJ, aI);if (aI[0] > 0) {\n aR.push(aM);aU++;var aH = aI[0];if (aH < aJ) {\n console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break;\n }aJ = aH - 1;\n }\n }aO._$I0 = new Float32Array(aR);if (aU > aN._$yT) {\n aN._$yT = aU;\n }\n }\n }\n }aN._$rr = 1000 * aN._$yT / aN._$D0 | 0;return aN;\n };ao.prototype.getDurationMSec = function () {\n return this._$E ? -1 : this._$rr;\n };ao.prototype.getLoopDurationMSec = function () {\n return this._$rr;\n };ao.prototype.dump = function () {\n for (var aJ = 0; aJ < this.motions.length; aJ++) {\n var aH = this.motions[aJ];console.log(\"_$wL[%s] [%d]. \", aH._$4P, aH._$I0.length);for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {\n console.log(\"%5.2f ,\", aH._$I0[aI]);\n }console.log(\"\\n\");\n }\n };ao.prototype.updateParamExe = function (aJ, aN, aQ, a3) {\n var aO = aN - a3._$z2;var a0 = aO * this._$D0 / 1000;var aK = a0 | 0;var aR = a0 - aK;for (var aZ = 0; aZ < this.motions.length; aZ++) {\n var aV = this.motions[aZ];var aL = aV._$I0.length;var aT = aV._$4P;if (aV._$RP == t._$hs) {\n var aX = aV._$I0[aK >= aL ? aL - 1 : aK];aJ.setParamFloat(aT, aX);\n } else {\n if (t._$ws <= aV._$RP && aV._$RP <= t._$Ys) {} else {\n var aH = aJ.getParamIndex(aT);var a4 = aJ.getModelContext();var aY = a4.getParamMax(aH);var aW = a4.getParamMin(aH);var aM = 0.4;var aS = aM * (aY - aW);var aU = a4.getParamFloat(aH);var a2 = aV._$I0[aK >= aL ? aL - 1 : aK];var a1 = aV._$I0[aK + 1 >= aL ? aL - 1 : aK + 1];var aI;if (a2 < a1 && a1 - a2 > aS || a2 > a1 && a2 - a1 > aS) {\n aI = a2;\n } else {\n aI = a2 + (a1 - a2) * aR;\n }var aP = aU + (aI - aU) * aQ;aJ.setParamFloat(aT, aP);\n }\n }\n }if (aK >= this._$yT) {\n if (this._$E) {\n a3._$z2 = aN;if (this.loopFadeIn) {\n a3._$bs = aN;\n }\n } else {\n a3._$9L = true;\n }\n }this._$eP = aQ;\n };ao.prototype._$r0 = function () {\n return this._$E;\n };ao.prototype._$aL = function (aH) {\n this._$E = aH;\n };ao.prototype._$S0 = function () {\n return this._$D0;\n };ao.prototype._$U0 = function (aH) {\n this._$D0 = aH;\n };ao.prototype.isLoopFadeIn = function () {\n return this.loopFadeIn;\n };ao.prototype.setLoopFadeIn = function (aH) {\n this.loopFadeIn = aH;\n };function aE() {\n this._$P = new Float32Array(100);this.size = 0;\n }aE.prototype.clear = function () {\n this.size = 0;\n };aE.prototype.add = function (aI) {\n if (this._$P.length <= this.size) {\n var aH = new Float32Array(this.size * 2);P._$jT(this._$P, 0, aH, 0, this.size);this._$P = aH;\n }this._$P[this.size++] = aI;\n };aE.prototype._$BL = function () {\n var aH = new Float32Array(this.size);P._$jT(this._$P, 0, aH, 0, this.size);return aH;\n };function t() {\n this._$4P = null;this._$I0 = null;this._$RP = null;\n }t._$Fr = 0;t._$hs = 1;t._$ws = 100;t._$Ns = 101;t._$xs = 102;t._$us = 103;t._$qs = 104;t._$Ys = 105;function E() {\n if (j) {\n return;\n }c.prototype.constructor.call(this);this._$o = 0;this._$A = 0;this._$GS = null;this._$Eo = null;\n }E.prototype = new c();E._$gT = new Array();E.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };E.prototype._$F0 = function (aH) {\n c.prototype._$F0.call(this, aH);this._$A = aH._$6L();this._$o = aH._$6L();this._$GS = aH._$nP();this._$Eo = aH._$nP();c.prototype.readV2_opacity.call(this, aH);\n };E.prototype.init = function (aH) {\n var aI = new H(this);var aJ = (this._$o + 1) * (this._$A + 1);if (aI._$Cr != null) {\n aI._$Cr = null;\n }aI._$Cr = new Float32Array(aJ * 2);if (aI._$hr != null) {\n aI._$hr = null;\n }if (this._$32()) {\n aI._$hr = new Float32Array(aJ * 2);\n } else {\n aI._$hr = null;\n }return aI;\n };E.prototype._$Nr = function (aJ, aI) {\n var aK = aI;if (!this._$GS._$Ur(aJ)) {\n return;\n }var aL = this._$VT();var aH = E._$gT;aH[0] = false;aG._$Vr(aJ, this._$GS, aH, aL, this._$Eo, aK._$Cr, 0, 2);aI._$Ib(aH[0]);this.interpolateOpacity(aJ, this._$GS, aI, aH);\n };E.prototype._$2b = function (aK, aJ) {\n var aL = aJ;aL._$hS(true);if (!this._$32()) {\n aL.setTotalOpacity(aL.getInterpolatedOpacity());\n } else {\n var aH = this.getTargetBaseDataID();if (aL._$8r == c._$ur) {\n aL._$8r = aK.getBaseDataIndex(aH);\n }if (aL._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aH);\n }aL._$hS(false);\n } else {\n var aN = aK.getBaseData(aL._$8r);var aI = aK._$q2(aL._$8r);if (aN != null && aI._$yo()) {\n var aM = aI.getTotalScale();aL.setTotalScale_notForClient(aM);var aO = aI.getTotalOpacity();aL.setTotalOpacity(aO * aL.getInterpolatedOpacity());aN._$nb(aK, aI, aL._$Cr, aL._$hr, this._$VT(), 0, 2);aL._$hS(true);\n } else {\n aL._$hS(false);\n }\n }\n }\n };E.prototype._$nb = function (aL, aI, aH, aM, aO, aK, aJ) {\n if (true) {\n var aN = aI;var aP = aN._$hr != null ? aN._$hr : aN._$Cr;E.transformPoints_sdk2(aH, aM, aO, aK, aJ, aP, this._$o, this._$A);\n } else {\n this.transformPoints_sdk1(aL, aI, aH, aM, aO, aK, aJ);\n }\n };E.transformPoints_sdk2 = function (a0, bc, a5, aP, aI, aR, aQ, aU) {\n var aW = a5 * aI;var aV;var bn, bm;var aT = 0;var aS = 0;var bl = 0;var bk = 0;var bf = 0;var be = 0;var aZ = false;for (var ba = aP; ba < aW; ba += aI) {\n var bd, a7, a4, aX;a4 = a0[ba];aX = a0[ba + 1];bd = a4 * aQ;a7 = aX * aU;if (bd < 0 || a7 < 0 || aQ <= bd || aU <= a7) {\n var a1 = aQ + 1;if (!aZ) {\n aZ = true;aT = 0.25 * (aR[(0 + 0 * a1) * 2] + aR[(aQ + 0 * a1) * 2] + aR[(0 + aU * a1) * 2] + aR[(aQ + aU * a1) * 2]);aS = 0.25 * (aR[(0 + 0 * a1) * 2 + 1] + aR[(aQ + 0 * a1) * 2 + 1] + aR[(0 + aU * a1) * 2 + 1] + aR[(aQ + aU * a1) * 2 + 1]);var aM = aR[(aQ + aU * a1) * 2] - aR[(0 + 0 * a1) * 2];var aL = aR[(aQ + aU * a1) * 2 + 1] - aR[(0 + 0 * a1) * 2 + 1];var bh = aR[(aQ + 0 * a1) * 2] - aR[(0 + aU * a1) * 2];var bg = aR[(aQ + 0 * a1) * 2 + 1] - aR[(0 + aU * a1) * 2 + 1];bl = (aM + bh) * 0.5;bk = (aL + bg) * 0.5;bf = (aM - bh) * 0.5;be = (aL - bg) * 0.5;if (bl == 0 && bk == 0) {}if (bf == 0 && be == 0) {}aT -= 0.5 * (bl + bf);aS -= 0.5 * (bk + be);\n }if (-2 < a4 && a4 < 3 && -2 < aX && aX < 3) {\n if (a4 <= 0) {\n if (aX <= 0) {\n var a3 = aR[(0 + 0 * a1) * 2];var a2 = aR[(0 + 0 * a1) * 2 + 1];var a8 = aT - 2 * bl;var a6 = aS - 2 * bk;var aK = aT - 2 * bf;var aJ = aS - 2 * be;var aO = aT - 2 * bl - 2 * bf;var aN = aS - 2 * bk - 2 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aK = aR[(0 + aU * a1) * 2];var aJ = aR[(0 + aU * a1) * 2 + 1];var aO = aT - 2 * bl + 1 * bf;var aN = aS - 2 * bk + 1 * be;var a3 = aT + 3 * bf;var a2 = aS + 3 * be;var a8 = aT - 2 * bl + 3 * bf;var a6 = aS - 2 * bk + 3 * be;var bj = 0.5 * (a4 - -2);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - -2);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aK = aR[(0 + aH * a1) * 2];var aJ = aR[(0 + aH * a1) * 2 + 1];var a3 = aR[(0 + (aH + 1) * a1) * 2];var a2 = aR[(0 + (aH + 1) * a1) * 2 + 1];var aO = aT - 2 * bl + bb * bf;var aN = aS - 2 * bk + bb * be;var a8 = aT - 2 * bl + a9 * bf;var a6 = aS - 2 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (1 <= a4) {\n if (aX <= 0) {\n var a8 = aR[(aQ + 0 * a1) * 2];var a6 = aR[(aQ + 0 * a1) * 2 + 1];var a3 = aT + 3 * bl;var a2 = aS + 3 * bk;var aO = aT + 1 * bl - 2 * bf;var aN = aS + 1 * bk - 2 * be;var aK = aT + 3 * bl - 2 * bf;var aJ = aS + 3 * bk - 2 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - -2);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aO = aR[(aQ + aU * a1) * 2];var aN = aR[(aQ + aU * a1) * 2 + 1];var aK = aT + 3 * bl + 1 * bf;var aJ = aS + 3 * bk + 1 * be;var a8 = aT + 1 * bl + 3 * bf;var a6 = aS + 1 * bk + 3 * be;var a3 = aT + 3 * bl + 3 * bf;var a2 = aS + 3 * bk + 3 * be;var bj = 0.5 * (a4 - 1);var bi = 0.5 * (aX - 1);if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n var aH = a7 | 0;if (aH == aU) {\n aH = aU - 1;\n }var bj = 0.5 * (a4 - 1);var bi = a7 - aH;var bb = aH / aU;var a9 = (aH + 1) / aU;var aO = aR[(aQ + aH * a1) * 2];var aN = aR[(aQ + aH * a1) * 2 + 1];var a8 = aR[(aQ + (aH + 1) * a1) * 2];var a6 = aR[(aQ + (aH + 1) * a1) * 2 + 1];var aK = aT + 3 * bl + bb * bf;var aJ = aS + 3 * bk + bb * be;var a3 = aT + 3 * bl + a9 * bf;var a2 = aS + 3 * bk + a9 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n }\n }\n } else {\n if (aX <= 0) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - -2);var bp = aY / aQ;var bo = (aY + 1) / aQ;var a8 = aR[(aY + 0 * a1) * 2];var a6 = aR[(aY + 0 * a1) * 2 + 1];var a3 = aR[(aY + 1 + 0 * a1) * 2];var a2 = aR[(aY + 1 + 0 * a1) * 2 + 1];var aO = aT + bp * bl - 2 * bf;var aN = aS + bp * bk - 2 * be;var aK = aT + bo * bl - 2 * bf;var aJ = aS + bo * bk - 2 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n if (aX >= 1) {\n var aY = bd | 0;if (aY == aQ) {\n aY = aQ - 1;\n }var bj = bd - aY;var bi = 0.5 * (aX - 1);var bp = aY / aQ;var bo = (aY + 1) / aQ;var aO = aR[(aY + aU * a1) * 2];var aN = aR[(aY + aU * a1) * 2 + 1];var aK = aR[(aY + 1 + aU * a1) * 2];var aJ = aR[(aY + 1 + aU * a1) * 2 + 1];var a8 = aT + bp * bl + 3 * bf;var a6 = aS + bp * bk + 3 * be;var a3 = aT + bo * bl + 3 * bf;var a2 = aS + bo * bk + 3 * be;if (bj + bi <= 1) {\n bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi;\n } else {\n bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi);\n }\n } else {\n System.err.printf(\"_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\\n\", a4, aX);\n }\n }\n }\n }\n } else {\n bc[ba] = aT + a4 * bl + aX * bf;bc[ba + 1] = aS + a4 * bk + aX * be;\n }\n } else {\n bn = bd - (bd | 0);bm = a7 - (a7 | 0);aV = 2 * ((bd | 0) + (a7 | 0) * (aQ + 1));if (bn + bm < 1) {\n bc[ba] = aR[aV] * (1 - bn - bm) + aR[aV + 2] * bn + aR[aV + 2 * (aQ + 1)] * bm;bc[ba + 1] = aR[aV + 1] * (1 - bn - bm) + aR[aV + 3] * bn + aR[aV + 2 * (aQ + 1) + 1] * bm;\n } else {\n bc[ba] = aR[aV + 2 * (aQ + 1) + 2] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1)] * (1 - bn) + aR[aV + 2] * (1 - bm);bc[ba + 1] = aR[aV + 2 * (aQ + 1) + 3] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1) + 1] * (1 - bn) + aR[aV + 3] * (1 - bm);\n }\n }\n }\n };E.prototype.transformPoints_sdk1 = function (aJ, aR, aL, a0, aU, aP, aZ) {\n var aH = aR;var aO, aN;var aM = this._$o;var aQ = this._$A;var aI = aU * aZ;var aS, aY;var aV;var aX, aW;var aT = aH._$hr != null ? aH._$hr : aH._$Cr;for (var aK = aP; aK < aI; aK += aZ) {\n if (Q._$ts) {\n aO = aL[aK];aN = aL[aK + 1];if (aO < 0) {\n aO = 0;\n } else {\n if (aO > 1) {\n aO = 1;\n }\n }if (aN < 0) {\n aN = 0;\n } else {\n if (aN > 1) {\n aN = 1;\n }\n }aO *= aM;aN *= aQ;aS = aO | 0;aY = aN | 0;if (aS > aM - 1) {\n aS = aM - 1;\n }if (aY > aQ - 1) {\n aY = aQ - 1;\n }aX = aO - aS;aW = aN - aY;aV = 2 * (aS + aY * (aM + 1));\n } else {\n aO = aL[aK] * aM;aN = aL[aK + 1] * aQ;aX = aO - (aO | 0);aW = aN - (aN | 0);aV = 2 * ((aO | 0) + (aN | 0) * (aM + 1));\n }if (aX + aW < 1) {\n a0[aK] = aT[aV] * (1 - aX - aW) + aT[aV + 2] * aX + aT[aV + 2 * (aM + 1)] * aW;a0[aK + 1] = aT[aV + 1] * (1 - aX - aW) + aT[aV + 3] * aX + aT[aV + 2 * (aM + 1) + 1] * aW;\n } else {\n a0[aK] = aT[aV + 2 * (aM + 1) + 2] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1)] * (1 - aX) + aT[aV + 2] * (1 - aW);a0[aK + 1] = aT[aV + 2 * (aM + 1) + 3] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1) + 1] * (1 - aX) + aT[aV + 3] * (1 - aW);\n }\n }\n };E.prototype._$VT = function () {\n return (this._$o + 1) * (this._$A + 1);\n };E.prototype.getType = function () {\n return c._$_b;\n };function H(aH) {\n B.prototype.constructor.call(this, aH);this._$8r = c._$ur;this._$Cr = null;this._$hr = null;\n }H.prototype = new B();function s() {\n if (j) {\n return;\n }this.visible = true;this._$g0 = false;this._$NL = null;this._$3S = null;this._$aS = null;s._$42++;\n }s._$42 = 0;s.prototype._$zP = function () {\n this._$3S = new Array();this._$aS = new Array();\n };s.prototype._$F0 = function (aH) {\n this._$g0 = aH._$8L();this.visible = aH._$8L();this._$NL = aH._$nP();this._$3S = aH._$nP();this._$aS = aH._$nP();\n };s.prototype.init = function (aI) {\n var aH = new aj(this);aH.setPartsOpacity(this.isVisible() ? 1 : 0);return aH;\n };s.prototype._$6o = function (aH) {\n if (this._$3S == null) {\n throw new Error(\"_$3S _$6 _$Wo@_$6o\");\n }this._$3S.push(aH);\n };s.prototype._$3o = function (aH) {\n if (this._$aS == null) {\n throw new Error(\"_$aS _$6 _$Wo@_$3o\");\n }this._$aS.push(aH);\n };s.prototype._$Zo = function (aH) {\n this._$3S = aH;\n };s.prototype._$xo = function (aH) {\n this._$aS = aH;\n };s.prototype.isVisible = function () {\n return this.visible;\n };s.prototype._$uL = function () {\n return this._$g0;\n };s.prototype._$KP = function (aH) {\n this.visible = aH;\n };s.prototype._$ET = function (aH) {\n this._$g0 = aH;\n };s.prototype.getBaseData = function () {\n return this._$3S;\n };s.prototype.getDrawData = function () {\n return this._$aS;\n };s.prototype._$p2 = function () {\n return this._$NL;\n };s.prototype._$ob = function (aH) {\n this._$NL = aH;\n };s.prototype.getPartsID = function () {\n return this._$NL;\n };s.prototype._$MP = function (aH) {\n this._$NL = aH;\n };function aj(aH) {\n this._$VS = null;this._$e0 = null;this._$e0 = aH;\n }aj.prototype = new S();aj.prototype.getPartsOpacity = function () {\n return this._$VS;\n };aj.prototype.setPartsOpacity = function (aH) {\n this._$VS = aH;\n };function ak(aH) {\n if (j) {\n return;\n }this.id = aH;\n }ak._$L7 = function () {\n z._$27();n._$27();Z._$27();i._$27();\n };ak.prototype.toString = function () {\n return this.id;\n };function D() {}D.prototype._$F0 = function (aH) {};function an() {\n if (j) {\n return;\n }this._$4S = null;\n }an.prototype._$1s = function () {\n return this._$4S;\n };an.prototype._$zP = function () {\n this._$4S = new Array();\n };an.prototype._$F0 = function (aH) {\n this._$4S = aH._$nP();\n };an.prototype._$Ks = function (aH) {\n this._$4S.push(aH);\n };function au(aH, aI) {\n this.canvas = aH;this.context = aI;this.viewport = new Array(0, 0, aH.width, aH.height);this._$6r = 1;this._$xP = 0;this._$3r = 1;this._$uP = 0;this._$Qo = -1;this.cacheImages = {};\n }au.tr = new am();au._$50 = new am();au._$Ti = new Array(0, 0);au._$Pi = new Array(0, 0);au._$B = new Array(0, 0);au.prototype._$lP = function (aI, aK, aJ, aH) {\n this.viewport = new Array(aI, aK, aJ, aH);\n };au.prototype._$bL = function () {\n this.context.save();var aH = this.viewport;if (aH != null) {\n this.context.beginPath();this.context._$Li(aH[0], aH[1], aH[2], aH[3]);this.context.clip();\n }\n };au.prototype._$ei = function () {\n this.context.restore();\n };au.prototype.drawElements = function (bc, bm, aX, aJ, bA, aM, bl, bz) {\n try {\n if (bA != this._$Qo) {\n this._$Qo = bA;this.context.globalAlpha = bA;\n }var a2 = bm.length;var aP = bc.width;var a5 = bc.height;var bE = this.context;var a7 = this._$xP;var a6 = this._$uP;var a1 = this._$6r;var aZ = this._$3r;var bD = au.tr;var aI = au._$Ti;var aH = au._$Pi;var bu = au._$B;for (var by = 0; by < a2; by += 3) {\n bE.save();var aW = bm[by];var aV = bm[by + 1];var aT = bm[by + 2];var aL = a7 + a1 * aX[aW * 2];var aK = a6 + aZ * aX[aW * 2 + 1];var br = a7 + a1 * aX[aV * 2];var bp = a6 + aZ * aX[aV * 2 + 1];var bh = a7 + a1 * aX[aT * 2];var bf = a6 + aZ * aX[aT * 2 + 1];if (bl) {\n bl._$PS(aL, aK, bu);aL = bu[0];aK = bu[1];bl._$PS(br, bp, bu);br = bu[0];bp = bu[1];bl._$PS(bh, bf, bu);bh = bu[0];bf = bu[1];\n }var aS = aP * aJ[aW * 2];var aQ = a5 - a5 * aJ[aW * 2 + 1];var bx = aP * aJ[aV * 2];var bw = a5 - a5 * aJ[aV * 2 + 1];var bk = aP * aJ[aT * 2];var bj = a5 - a5 * aJ[aT * 2 + 1];var a3 = Math.atan2(bw - aQ, bx - aS);var a0 = Math.atan2(bp - aK, br - aL);var aO = br - aL;var aN = bp - aK;var bi = Math.sqrt(aO * aO + aN * aN);var aU = bx - aS;var aR = bw - aQ;var bt = Math.sqrt(aU * aU + aR * aR);var bv = bi / bt;ad._$ni(bk, bj, aS, aQ, bx - aS, bw - aQ, -(bw - aQ), bx - aS, aI);ad._$ni(bh, bf, aL, aK, br - aL, bp - aK, -(bp - aK), br - aL, aH);var aY = (aH[0] - aI[0]) / aI[1];var bs = Math.min(aS, bx, bk);var bg = Math.max(aS, bx, bk);var bq = Math.min(aQ, bw, bj);var be = Math.max(aQ, bw, bj);var bo = Math.floor(bs);var bb = Math.floor(bq);var a4 = Math.ceil(bg);var bC = Math.ceil(be);bD.identity();bD.translate(aL, aK);bD.rotate(a0);bD.scale(1, aH[1] / aI[1]);bD.shear(aY, 0);bD.scale(bv, bv);bD.rotate(-a3);bD.translate(-aS, -aQ);bD.setContext(bE);var a8 = true;var a9 = 1.2;if (!aM) {\n aM = a8 ? a9 : 0;\n }if (Q.IGNORE_EXPAND) {\n aM = 0;\n }if (Q.USE_CACHED_POLYGON_IMAGE) {\n var bd = bz._$e0;bd.gl_cacheImage = bd.gl_cacheImage || {};if (!bd.gl_cacheImage[by]) {\n var bn = au.createCanvas(a4 - bo, bC - bb);Q.DEBUG_DATA.LDGL_CANVAS_MB = Q.DEBUG_DATA.LDGL_CANVAS_MB || 0;Q.DEBUG_DATA.LDGL_CANVAS_MB += (a4 - bo) * (bC - bb) * 4;var ba = bn.getContext(\"2d\");ba.translate(-bo, -bb);au.clip(ba, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);ba.drawImage(bc, 0, 0);bd.gl_cacheImage[by] = { cacheCanvas: bn, cacheContext: ba };\n }bE.drawImage(bd.gl_cacheImage[by][\"cacheCanvas\"], bo, bb);\n } else {\n if (!Q.IGNORE_CLIP) {\n au.clip(bE, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);\n }if (Q.USE_ADJUST_TRANSLATION) {\n bs = 0;bg = aP;bq = 0;be = a5;\n }bE.drawImage(bc, bs, bq, bg - bs, be - bq, bs, bq, bg - bs, be - bq);\n }bE.restore();\n }\n } catch (bB) {\n q._$Rb(bB);\n }\n };au.clip = function (aK, aJ, aV, aI, aM, aL, aU, aT, aQ, aP, aO, aN, aH, aW, aS, aR) {\n if (aV > 0.02) {\n au.expandClip(aK, aJ, aV, aI, aO, aN, aH, aW, aS, aR);\n } else {\n au.clipWithTransform(aK, null, aM, aL, aU, aT, aQ, aP);\n }\n };au.expandClip = function (aV, bg, aK, a3, aJ, aI, be, ba, aZ, aX) {\n var aP = be - aJ;var aO = ba - aI;var bi = aZ - aJ;var bh = aX - aI;var bj = aP * bh - aO * bi > 0 ? aK : -aK;var aL = -aO;var aH = aP;var bc = aZ - be;var a8 = aX - ba;var a7 = -a8;var a6 = bc;var aQ = Math.sqrt(bc * bc + a8 * a8);var bf = -bh;var bb = bi;var a2 = Math.sqrt(bi * bi + bh * bh);var bd = aJ - bj * aL / a3;var a9 = aI - bj * aH / a3;var aY = be - bj * aL / a3;var aW = ba - bj * aH / a3;var a5 = be - bj * a7 / aQ;var a4 = ba - bj * a6 / aQ;var aS = aZ - bj * a7 / aQ;var aR = aX - bj * a6 / aQ;var aN = aJ + bj * bf / a2;var aM = aI + bj * bb / a2;var a1 = aZ + bj * bf / a2;var a0 = aX + bj * bb / a2;var aU = au._$50;var aT = bg._$P2(aU);if (aT == null) {\n return false;\n }au.clipWithTransform(aV, aU, bd, a9, aY, aW, a5, a4, aS, aR, a1, a0, aN, aM);return true;\n };au.clipWithTransform = function (aH, aI, aS, aN, aQ, aK, aP, aJ) {\n if (arguments.length < 1 + 3 * 2) {\n q._$li(\"err : @LDGL.clip()\");return;\n }if (!(arguments[1] instanceof am)) {\n q._$li(\"err : a[0] is _$6 LDTransform @LDGL.clip()\");return;\n }var aM = au._$B;var aO = aI;var aR = arguments;aH.beginPath();if (aO) {\n aO._$PS(aR[2], aR[3], aM);aH.moveTo(aM[0], aM[1]);for (var aL = 4; aL < aR.length; aL += 2) {\n aO._$PS(aR[aL], aR[aL + 1], aM);aH.lineTo(aM[0], aM[1]);\n }\n } else {\n aH.moveTo(aR[2], aR[3]);for (var aL = 4; aL < aR.length; aL += 2) {\n aH.lineTo(aR[aL], aR[aL + 1]);\n }\n }aH.clip();\n };au.createCanvas = function (aH, aJ) {\n var aI = document.createElement(\"canvas\");aI.setAttribute(\"width\", aH);aI.setAttribute(\"height\", aJ);if (!aI) {\n q._$li(\"err : \" + aI);\n }return aI;\n };au.dumpValues = function () {\n var aI = \"\";for (var aH = 0; aH < arguments.length; aH++) {\n aI += \"[\" + aH + \"]= \" + arguments[aH].toFixed(3) + \" , \";\n }console.log(aI);\n };function f() {\n if (j) {\n return;\n }this._$TT = null;this._$LT = null;this._$FS = null;this._$wL = null;\n }f.prototype._$F0 = function (aH) {\n this._$TT = aH._$_T();this._$LT = aH._$_T();this._$FS = aH._$_T();this._$wL = aH._$nP();\n };f.prototype.getMinValue = function () {\n return this._$TT;\n };f.prototype.getMaxValue = function () {\n return this._$LT;\n };f.prototype.getDefaultValue = function () {\n return this._$FS;\n };f.prototype.getParamID = function () {\n return this._$wL;\n };function B(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$JS = false;this._$AT = true;this._$e0 = aH;this.totalScale = 1;this._$7s = 1;this.totalOpacity = 1;\n }B.prototype._$yo = function () {\n return this._$AT && !this._$JS;\n };B.prototype._$hS = function (aH) {\n this._$AT = aH;\n };B.prototype._$GT = function () {\n return this._$e0;\n };B.prototype._$l2 = function (aH) {\n this._$IP = aH;\n };B.prototype.getPartsIndex = function () {\n return this._$IP;\n };B.prototype._$x2 = function () {\n return this._$JS;\n };B.prototype._$Ib = function (aH) {\n this._$JS = aH;\n };B.prototype.getTotalScale = function () {\n return this.totalScale;\n };B.prototype.setTotalScale_notForClient = function (aH) {\n this.totalScale = aH;\n };B.prototype.getInterpolatedOpacity = function () {\n return this._$7s;\n };B.prototype.setInterpolatedOpacity = function (aH) {\n this._$7s = aH;\n };B.prototype.getTotalOpacity = function (aH) {\n return this.totalOpacity;\n };B.prototype.setTotalOpacity = function (aH) {\n this.totalOpacity = aH;\n };function Q() {}Q._$2s = \"2.1.00_1\";Q._$Kr = 201001000;Q._$sP = true;Q._$so = true;Q._$cb = false;Q._$3T = true;Q._$Ts = true;Q._$fb = true;Q._$ts = true;Q.L2D_DEFORMER_EXTEND = true;Q._$Wb = false;Q._$yr = false;Q._$Zs = false;Q.L2D_NO_ERROR = 0;Q._$i7 = 1000;Q._$9s = 1001;Q._$es = 1100;Q._$r7 = 2000;Q._$07 = 2001;Q._$b7 = 2002;Q._$H7 = 4000;Q.L2D_COLOR_BLEND_MODE_MULT = 0;Q.L2D_COLOR_BLEND_MODE_ADD = 1;Q.L2D_COLOR_BLEND_MODE_INTERPOLATE = 2;Q._$6b = true;Q._$cT = 0;Q.clippingMaskBufferSize = 256;Q.glContext = new Array();Q.frameBuffers = new Array();Q.fTexture = new Array();Q.IGNORE_CLIP = false;Q.IGNORE_EXPAND = false;Q.EXPAND_W = 2;Q.USE_ADJUST_TRANSLATION = true;Q.USE_CANVAS_TRANSFORM = true;Q.USE_CACHED_POLYGON_IMAGE = false;Q.DEBUG_DATA = {};Q.PROFILE_IOS_SPEED = { PROFILE_NAME: \"iOS Speed\", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: true, EXPAND_W: 4 };Q.PROFILE_IOS_QUALITY = { PROFILE_NAME: \"iOS HiQ\", USE_ADJUST_TRANSLATION: true, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_IOS_DEFAULT = Q.PROFILE_IOS_QUALITY;Q.PROFILE_ANDROID = { PROFILE_NAME: \"Android\", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.PROFILE_DESKTOP = { PROFILE_NAME: \"Desktop\", USE_ADJUST_TRANSLATION: false, USE_CACHED_POLYGON_IMAGE: false, EXPAND_W: 2 };Q.initProfile = function () {\n if (r.isIOS()) {\n Q.setupProfile(Q.PROFILE_IOS_DEFAULT);\n } else {\n if (r.isAndroid()) {\n Q.setupProfile(Q.PROFILE_ANDROID);\n } else {\n Q.setupProfile(Q.PROFILE_DESKTOP);\n }\n }\n };Q.setupProfile = function (aI, aJ) {\n if (typeof aI == \"number\") {\n switch (aI) {case 9901:\n aI = Q.PROFILE_IOS_SPEED;break;case 9902:\n aI = Q.PROFILE_IOS_QUALITY;break;case 9903:\n aI = Q.PROFILE_IOS_DEFAULT;break;case 9904:\n aI = Q.PROFILE_ANDROID;break;case 9905:\n aI = Q.PROFILE_DESKTOP;break;default:\n alert(\"profile _$6 _$Ui : \" + aI);break;}\n }if (arguments.length < 2) {\n aJ = true;\n }if (aJ) {\n console.log(\"profile : \" + aI.PROFILE_NAME);\n }for (var aH in aI) {\n Q[aH] = aI[aH];if (aJ) {\n console.log(\" [\" + aH + \"] = \" + aI[aH]);\n }\n }\n };Q.init = function () {\n if (Q._$6b) {\n console.log(\"Live2D %s\", Q._$2s);Q._$6b = false;var aH = false;aH = true;Q.initProfile();\n }\n };Q.getVersionStr = function () {\n return Q._$2s;\n };Q.getVersionNo = function () {\n return Q._$Kr;\n };Q._$sT = function (aH) {\n Q._$cT = aH;\n };Q.getError = function () {\n var aH = Q._$cT;Q._$cT = 0;return aH;\n };Q.dispose = function () {\n Q.glContext = [];Q.frameBuffers = [];Q.fTexture = [];\n };Q.setGL = function (aJ, aI) {\n var aH = aI || 0;Q.glContext[aH] = aJ;\n };Q.getGL = function (aH) {\n return Q.glContext[aH];\n };Q.setClippingMaskBufferSize = function (aH) {\n Q.clippingMaskBufferSize = aH;\n };Q.getClippingMaskBufferSize = function () {\n return Q.clippingMaskBufferSize;\n };Q.deleteBuffer = function (aI) {\n var aH = Q.getGL(aI);aH.deleteFramebuffer(Q.frameBuffers[aI].framebuffer);delete Q.frameBuffers[aI];delete Q.glContext[aI];\n };function A() {}A._$r2 = function (aH) {\n if (aH < 0) {\n return 0;\n } else {\n if (aH > 1) {\n return 1;\n }\n }return 0.5 - 0.5 * Math.cos(aH * aC.PI_F);\n };function J(aH) {\n if (j) {\n return;\n }this._$ib = aH;\n }J._$fr = -1;J.prototype.toString = function () {\n return this._$ib;\n };function b() {\n if (j) {\n return;\n }a.prototype.constructor.call(this);this._$LP = -1;this._$d0 = 0;this._$Yo = 0;this._$JP = null;this._$5P = null;this._$BP = null;this._$Eo = null;this._$Qi = null;this._$6s = b._$ms;this.culling = true;this.gl_cacheImage = null;this.instanceNo = b._$42++;\n }b.prototype = new a();b._$42 = 0;b._$Os = 30;b._$ms = 0;b._$ns = 1;b._$_s = 2;b._$gT = new Array();b.prototype._$_S = function (aH) {\n this._$LP = aH;\n };b.prototype.getTextureNo = function () {\n return this._$LP;\n };b.prototype._$ZL = function () {\n return this._$Qi;\n };b.prototype._$H2 = function () {\n return this._$JP;\n };b.prototype.getNumPoints = function () {\n return this._$d0;\n };b.prototype.getType = function () {\n return a._$wb;\n };b.prototype._$B2 = function (aL, aH, aO) {\n var aM = aH;var aN = aM._$hr != null ? aM._$hr : aM._$Cr;var aK = aw._$do;switch (aK) {default:case aw._$Ms:\n throw new Error(\"_$L _$ro \");case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aI = aJ * aw._$No;aN[aI + 4] = aO;\n }break;}\n };b.prototype._$zP = function () {\n this._$GS = new g();this._$GS._$zP();\n };b.prototype._$F0 = function (aK) {\n a.prototype._$F0.call(this, aK);this._$LP = aK._$6L();this._$d0 = aK._$6L();this._$Yo = aK._$6L();var aH = aK._$nP();this._$BP = new Int16Array(this._$Yo * 3);for (var aJ = this._$Yo * 3 - 1; aJ >= 0; --aJ) {\n this._$BP[aJ] = aH[aJ];\n }this._$Eo = aK._$nP();this._$Qi = aK._$nP();if (aK.getFormatVersion() >= ay._$s7) {\n this._$JP = aK._$6L();if (this._$JP != 0) {\n if ((this._$JP & 1) != 0) {\n var aI = aK._$6L();if (this._$5P == null) {\n this._$5P = new Object();\n }this._$5P._$Hb = parseInt(aI);\n }if ((this._$JP & b._$Os) != 0) {\n this._$6s = (this._$JP & b._$Os) >> 1;\n } else {\n this._$6s = b._$ms;\n }if ((this._$JP & 32) != 0) {\n this.culling = false;\n }\n }\n } else {\n this._$JP = 0;\n }\n };b.prototype.init = function (aL) {\n var aN = new ag(this);var aI = this._$d0 * aw._$No;var aH = this._$32();if (aN._$Cr != null) {\n aN._$Cr = null;\n }aN._$Cr = new Float32Array(aI);if (aN._$hr != null) {\n aN._$hr = null;\n }aN._$hr = aH ? new Float32Array(aI) : null;var aM = aw._$do;switch (aM) {default:case aw._$Ms:\n if (aw._$Ls) {\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;this._$Qi[aO + 1] = 1 - this._$Qi[aO + 1];\n }\n }break;case aw._$Qs:\n for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {\n var aO = aJ << 1;var aK = aJ * aw._$No;var aQ = this._$Qi[aO];var aP = this._$Qi[aO + 1];aN._$Cr[aK] = aQ;aN._$Cr[aK + 1] = aP;aN._$Cr[aK + 4] = 0;if (aH) {\n aN._$hr[aK] = aQ;aN._$hr[aK + 1] = aP;aN._$hr[aK + 4] = 0;\n }\n }break;}return aN;\n };b.prototype._$Nr = function (aJ, aH) {\n var aK = aH;if (!(this == aK._$GT())) {\n console.log(\"### assert!! ### \");\n }if (!this._$GS._$Ur(aJ)) {\n return;\n }a.prototype._$Nr.call(this, aJ, aK);if (aK._$IS[0]) {\n return;\n }var aI = b._$gT;aI[0] = false;aG._$Vr(aJ, this._$GS, aI, this._$d0, this._$Eo, aK._$Cr, aw._$i2, aw._$No);\n };b.prototype._$2b = function (aK, aI) {\n try {\n if (!(this == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }var aL = false;if (aI._$IS[0]) {\n aL = true;\n }var aM = aI;if (!aL) {\n a.prototype._$2b.call(this, aK);if (this._$32()) {\n var aH = this.getTargetBaseDataID();if (aM._$8r == a._$ur) {\n aM._$8r = aK.getBaseDataIndex(aH);\n }if (aM._$8r < 0) {\n if (Q._$so) {\n q._$li(\"_$L _$0P _$G :: %s\", aH);\n }\n } else {\n var aO = aK.getBaseData(aM._$8r);var aJ = aK._$q2(aM._$8r);if (aO != null && !aJ._$x2()) {\n aO._$nb(aK, aJ, aM._$Cr, aM._$hr, this._$d0, aw._$i2, aw._$No);aM._$AT = true;\n } else {\n aM._$AT = false;\n }aM.baseOpacity = aJ.getTotalOpacity();\n }\n }\n }\n } catch (aN) {\n throw aN;\n }\n };b.prototype.draw = function (aN, aK, aI) {\n if (!(this == aI._$GT())) {\n console.log(\"### assert!! ### \");\n }if (aI._$IS[0]) {\n return;\n }var aL = aI;var aJ = this._$LP;if (aJ < 0) {\n aJ = 1;\n }var aH = this.getOpacity(aK, aL) * aI._$VS * aI.baseOpacity;var aM = aL._$hr != null ? aL._$hr : aL._$Cr;aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);aN._$WP(this.culling);aN._$Uo(aJ, 3 * this._$Yo, this._$BP, aM, this._$Qi, aH, this._$6s, aL);\n };b.prototype.dump = function () {\n console.log(\" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n\", this._$LP, this._$d0, this._$Yo);console.log(\" _$Oi _$di = { \");for (var aJ = 0; aJ < this._$BP.length; aJ++) {\n console.log(\"%5d ,\", this._$BP[aJ]);\n }console.log(\"\\n _$5i _$30\");for (var aJ = 0; aJ < this._$Eo.length; aJ++) {\n console.log(\"\\n _$30[%d] = \", aJ);var aH = this._$Eo[aJ];for (var aI = 0; aI < aH.length; aI++) {\n console.log(\"%6.2f, \", aH[aI]);\n }\n }console.log(\"\\n\");\n };b.prototype._$72 = function (aH) {\n if (this._$5P == null) {\n return null;\n }return this._$5P[aH];\n };b.prototype.getIndexArray = function () {\n return this._$BP;\n };function ag(aH) {\n aB.prototype.constructor.call(this, aH);this._$8r = a._$ur;this._$Cr = null;this._$hr = null;\n }ag.prototype = new aB();ag.prototype.getTransformedPoints = function () {\n return this._$hr != null ? this._$hr : this._$Cr;\n };function k() {\n if (j) {\n return;\n }this.x = null;this.y = null;\n }k.prototype._$HT = function (aH) {\n this.x = aH.x;this.y = aH.y;\n };k.prototype._$HT = function (aH, aI) {\n this.x = aH;this.y = aI;\n };function l(aH) {\n if (j) {\n return;\n }aa.prototype.constructor.call(this);this.drawParamWebGL = new C(aH);this.drawParamWebGL.setGL(Q.getGL(aH));\n }l.prototype = new aa();l.loadModel = function (aI) {\n var aH = new l();aa._$62(aH, aI);return aH;\n };l.loadModel = function (aI, aK) {\n var aJ = aK || 0;var aH = new l(aJ);aa._$62(aH, aI);return aH;\n };l._$to = function () {\n var aH = new l();return aH;\n };l._$er = function (aM) {\n var aJ = new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if (aJ.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aJ._$PL());\n }var aH = [\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\", \"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK = l.loadModel(aJ._$3b());for (var aI = 0; aI < aH.length; aI++) {\n var aL = new _$5(aH[aI]);if (aL.exists() == false) {\n throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \" + aL._$PL());\n }aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()));\n }return aK;\n };l.prototype.setGL = function (aH) {\n Q.setGL(aH);\n };l.prototype.setTransform = function (aH) {\n this.drawParamWebGL.setTransform(aH);\n };l.prototype.update = function () {\n this._$5S.update();this._$5S.preDraw(this.drawParamWebGL);\n };l.prototype.draw = function () {\n this._$5S.draw(this.drawParamWebGL);\n };l.prototype._$K2 = function () {\n this.drawParamWebGL._$K2();\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype.setTexture = function (aI, aH) {\n if (this.drawParamWebGL == null) {\n q._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\");\n }this.drawParamWebGL.setTexture(aI, aH);\n };l.prototype._$Rs = function () {\n return this.drawParamWebGL._$Rs();\n };l.prototype._$Ds = function (aH) {\n this.drawParamWebGL._$Ds(aH);\n };l.prototype.getDrawParam = function () {\n return this.drawParamWebGL;\n };l.prototype.setMatrix = function (aH) {\n this.drawParamWebGL.setMatrix(aH);\n };l.prototype.setPremultipliedAlpha = function (aH) {\n this.drawParamWebGL.setPremultipliedAlpha(aH);\n };l.prototype.isPremultipliedAlpha = function () {\n return this.drawParamWebGL.isPremultipliedAlpha();\n };l.prototype.setAnisotropy = function (aH) {\n this.drawParamWebGL.setAnisotropy(aH);\n };l.prototype.getAnisotropy = function () {\n return this.drawParamWebGL.getAnisotropy();\n };function V() {\n if (j) {\n return;\n }this.motions = null;this._$eb = false;this.motions = new Array();\n }V.prototype._$tb = function () {\n return this.motions;\n };V.prototype.startMotion = function (aJ, aI) {\n var aM = null;var aL = null;var aH = this.motions.length;for (var aK = 0; aK < aH; ++aK) {\n aL = this.motions[aK];if (aL == null) {\n continue;\n }aL._$qS(aL._$w0.getFadeOut());if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\\n\", aH, aL._$sr);\n }\n }if (aJ == null) {\n return -1;\n }aL = new M();aL._$w0 = aJ;this.motions.push(aL);var aN = aL._$sr;if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n\", aH, aN);\n }return aN;\n };V.prototype.updateParam = function (aJ) {\n try {\n var aI = false;for (var aK = 0; aK < this.motions.length; aK++) {\n var aL = this.motions[aK];if (aL == null) {\n this.motions.splice(aK, 1);aK--;continue;\n }var aH = aL._$w0;if (aH == null) {\n this.motions = this.motions.splice(aK, 1);aK--;continue;\n }aH.updateParam(aJ, aL);aI = true;if (aL.isFinished()) {\n if (this._$eb) {\n q._$Ji(\"MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\\n\", this.motions.length - 1, aL._$sr);\n }this.motions.splice(aK, 1);aK--;\n } else {}\n }return aI;\n } catch (aM) {\n q._$li(aM);return true;\n }\n };V.prototype.isFinished = function (aK) {\n if (arguments.length >= 1) {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n continue;\n }if (aJ._$sr == aK && !aJ.isFinished()) {\n return false;\n }\n }return true;\n } else {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (!aJ.isFinished()) {\n return false;\n }\n }return true;\n }\n };V.prototype.stopAllMotions = function () {\n for (var aI = 0; aI < this.motions.length; aI++) {\n var aJ = this.motions[aI];if (aJ == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }var aH = aJ._$w0;if (aH == null) {\n this.motions.splice(aI, 1);aI--;continue;\n }if (true) {\n this.motions.splice(aI, 1);aI--;\n }\n }\n };V.prototype._$Zr = function (aH) {\n this._$eb = aH;\n };V.prototype._$e = function () {\n console.log(\"-- _$R --\\n\");for (var aH = 0; aH < this.motions.length; aH++) {\n var aI = this.motions[aH];var aJ = aI._$w0;console.log(\"MotionQueueEnt[%d] :: %s\\n\", this.motions.length, aJ.toString());\n }\n };function M() {\n this._$w0 = null;this._$AT = true;this._$9L = false;this._$z2 = -1;this._$bs = -1;this._$Do = -1;this._$sr = null;this._$sr = M._$Gs++;\n }M._$Gs = 0;M.prototype.isFinished = function () {\n return this._$9L;\n };M.prototype._$qS = function (aJ) {\n var aI = P.getUserTimeMSec();var aH = aI + aJ;if (this._$Do < 0 || aH < this._$Do) {\n this._$Do = aH;\n }\n };M.prototype._$Bs = function () {\n return this._$sr;\n };function am() {\n this.m = new Array(1, 0, 0, 0, 1, 0, 0, 0, 1);\n }am.prototype.setContext = function (aI) {\n var aH = this.m;aI.transform(aH[0], aH[1], aH[3], aH[4], aH[6], aH[7]);\n };am.prototype.toString = function () {\n var aI = \"LDTransform { \";for (var aH = 0; aH < 9; aH++) {\n aI += this.m[aH].toFixed(2) + \" ,\";\n }aI += \" }\";return aI;\n };am.prototype.identity = function () {\n var aH = this.m;aH[0] = aH[4] = aH[8] = 1;aH[1] = aH[2] = aH[3] = aH[5] = aH[6] = aH[7] = 0;\n };am.prototype._$PS = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype._$P2 = function (aK) {\n if (!aK) {\n aK = new am();\n }var aI = this.m;var aT = aI[0];var aS = aI[1];var aR = aI[2];var aQ = aI[3];var aP = aI[4];var aO = aI[5];var aN = aI[6];var aM = aI[7];var aL = aI[8];var aJ = aT * aP * aL + aS * aO * aN + aR * aQ * aM - aT * aO * aM - aR * aP * aN - aS * aQ * aL;if (aJ == 0) {\n return null;\n } else {\n var aH = 1 / aJ;aK.m[0] = aH * (aP * aL - aM * aO);aK.m[1] = aH * (aM * aR - aS * aL);aK.m[2] = aH * (aS * aO - aP * aR);aK.m[3] = aH * (aN * aO - aQ * aL);aK.m[4] = aH * (aT * aL - aN * aR);aK.m[5] = aH * (aQ * aR - aT * aO);aK.m[6] = aH * (aQ * aM - aN * aP);aK.m[7] = aH * (aN * aS - aT * aM);aK.m[8] = aH * (aT * aP - aQ * aS);return aK;\n }\n };am.prototype.transform = function (aI, aK, aJ) {\n if (aJ == null) {\n aJ = new Array(0, 0);\n }var aH = this.m;aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];return aJ;\n };am.prototype.translate = function (aI, aJ) {\n var aH = this.m;aH[6] = aH[0] * aI + aH[3] * aJ + aH[6];aH[7] = aH[1] * aI + aH[4] * aJ + aH[7];aH[8] = aH[2] * aI + aH[5] * aJ + aH[8];\n };am.prototype.scale = function (aJ, aI) {\n var aH = this.m;aH[0] *= aJ;aH[1] *= aJ;aH[2] *= aJ;aH[3] *= aI;aH[4] *= aI;aH[5] *= aI;\n };am.prototype.shear = function (aM, aL) {\n var aH = this.m;var aK = aH[0] + aH[3] * aL;var aJ = aH[1] + aH[4] * aL;var aI = aH[2] + aH[5] * aL;aH[3] = aH[0] * aM + aH[3];aH[4] = aH[1] * aM + aH[4];aH[5] = aH[2] * aM + aH[5];aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.rotate = function (aM) {\n var aH = this.m;var aN = Math.cos(aM);var aL = Math.sin(aM);var aK = aH[0] * aN + aH[3] * aL;var aJ = aH[1] * aN + aH[4] * aL;var aI = aH[2] * aN + aH[5] * aL;aH[3] = -aH[0] * aL + aH[3] * aN;aH[4] = -aH[1] * aL + aH[4] * aN;aH[5] = -aH[2] * aL + aH[5] * aN;aH[0] = aK;aH[1] = aJ;aH[2] = aI;\n };am.prototype.concatenate = function (aL) {\n var aO = this.m;var aM = aL.m;var aS = aO[0] * aM[0] + aO[3] * aM[1] + aO[6] * aM[2];var aR = aO[1] * aM[0] + aO[4] * aM[1] + aO[7] * aM[2];var aQ = aO[2] * aM[0] + aO[5] * aM[1] + aO[8] * aM[2];var aP = aO[0] * aM[3] + aO[3] * aM[4] + aO[6] * aM[5];var aN = aO[1] * aM[3] + aO[4] * aM[4] + aO[7] * aM[5];var aK = aO[2] * aM[3] + aO[5] * aM[4] + aO[8] * aM[5];var aJ = aO[0] * aM[6] + aO[3] * aM[7] + aO[6] * aM[8];var aI = aO[1] * aM[6] + aO[4] * aM[7] + aO[7] * aM[8];var aH = aO[2] * aM[6] + aO[5] * aM[7] + aO[8] * aM[8];m[0] = aS;m[1] = aR;m[2] = aQ;m[3] = aP;m[4] = aN;m[5] = aK;m[6] = aJ;m[7] = aI;m[8] = aH;\n };function n(aH) {\n if (j) {\n return;\n }ak.prototype.constructor.call(this, aH);\n }n.prototype = new ak();n._$eT = null;n._$tP = new Object();n._$2o = function () {\n if (n._$eT == null) {\n n._$eT = n.getID(\"DST_BASE\");\n }return n._$eT;\n };n._$27 = function () {\n n._$tP.clear();n._$eT = null;\n };n.getID = function (aH) {\n var aI = n._$tP[aH];if (aI == null) {\n aI = new n(aH);n._$tP[aH] = aI;\n }return aI;\n };n.prototype._$3s = function () {\n return new n();\n };function C(aH) {\n if (j) {\n return;\n }ax.prototype.constructor.call(this);this.textures = new Array();this.transform = null;this.gl = null;this.glno = aH;this.firstDraw = true;this.anisotropyExt = null;this.maxAnisotropy = 0;this._$As = 32;this._$Gr = false;this._$NT = null;this._$vS = null;this._$no = null;this.vertShader = null;this.fragShader = null;this.vertShaderOff = null;this.fragShaderOff = null;\n }C.prototype = new ax();C._$9r = function (aH) {\n var aI = new Float32Array(aH);return aI;\n };C._$vb = function (aH) {\n var aI = new Int16Array(aH);return aI;\n };C._$cr = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$9r(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$mb = function (aI, aH) {\n if (aI == null || aI._$yL() < aH.length) {\n aI = C._$vb(aH.length * 2);aI.put(aH);aI._$oT(0);\n } else {\n aI.clear();aI.put(aH);aI._$oT(0);\n }return aI;\n };C._$Hs = function () {\n return this._$Gr;\n };C._$as = function (aH) {\n this._$Gr = aH;\n };C.prototype.getGL = function () {\n return this.gl;\n };C.prototype.setGL = function (aH) {\n this.gl = aH;\n };C.prototype.setTransform = function (aH) {\n this.transform = aH;\n };C.prototype._$ZT = function () {\n var aH = this.gl;if (this.firstDraw) {\n this.initShader();this.firstDraw = false;this.anisotropyExt = aH.getExtension(\"EXT_texture_filter_anisotropic\") || aH.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\") || aH.getExtension(\"MOZ_EXT_texture_filter_anisotropic\");if (this.anisotropyExt) {\n this.maxAnisotropy = aH.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n }aH.disable(aH.SCISSOR_TEST);aH.disable(aH.STENCIL_TEST);aH.disable(aH.DEPTH_TEST);aH.frontFace(aH.CW);aH.enable(aH.BLEND);aH.colorMask(1, 1, 1, 1);aH.bindBuffer(aH.ARRAY_BUFFER, null);aH.bindBuffer(aH.ELEMENT_ARRAY_BUFFER, null);\n };C.prototype._$Uo = function (aS, aT, aL, aU, aV, aN, aM, aO) {\n if (aN < 0.01 && this.clipBufPre_clipContextMask == null) {\n return;\n }var aH = aN > 0.9 ? Q.EXPAND_W : 0;var a0 = this.gl;if (this.gl == null) {\n throw new Error(\"gl is null\");\n }var a1 = false;var aQ = 1;var aP = 1;var a3 = 1;var aZ = 1;var aW = this._$C0 * aP * aN;var a2 = this._$tT * a3 * aN;var a5 = this._$WL * aZ * aN;var a7 = this._$lT * aN;if (this.clipBufPre_clipContextMask != null) {\n a0.frontFace(a0.CCW);a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.getClipBufPre_clipContextMask().matrixForMask);var aY = this.getClipBufPre_clipContextMask().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag, a4.r, a4.g, a4.b, a4.a);var aI = this.getClipBufPre_clipContextMask().layoutBounds;a0.uniform4f(this.u_baseColor_Loc, aI.x * 2 - 1, aI.y * 2 - 1, aI._$EL() * 2 - 1, aI._$5T() * 2 - 1);a0.uniform1i(this.u_maskFlag_Loc, true);\n } else {\n a1 = this.getClipBufPre_clipContextDraw() != null;if (a1) {\n a0.useProgram(this.shaderProgramOff);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc_Off);a0.vertexAttribPointer(this.a_position_Loc_Off, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc_Off, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);a0.vertexAttribPointer(this.a_texCoord_Loc_Off, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off, false, this.getClipBufPre_clipContextDraw().matrixForDraw);a0.uniformMatrix4fv(this.u_matrix_Loc_Off, false, this.matrix4x4);a0.activeTexture(a0.TEXTURE2);a0.bindTexture(a0.TEXTURE_2D, Q.fTexture[this.glno]);a0.uniform1i(this.s_texture1_Loc_Off, 2);var aY = this.getClipBufPre_clipContextDraw().layoutChannelNo;var a4 = this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag_Loc_Off, a4.r, a4.g, a4.b, a4.a);a0.uniform4f(this.u_baseColor_Loc_Off, aW, a2, a5, a7);\n } else {\n a0.useProgram(this.shaderProgram);this._$vS = T(a0, this._$vS, aU);this._$no = L(a0, this._$no, aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);this._$NT = T(a0, this._$NT, aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);a0.uniform1i(this.s_texture0_Loc, 1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.matrix4x4);a0.uniform4f(this.u_baseColor_Loc, aW, a2, a5, a7);a0.uniform1i(this.u_maskFlag_Loc, false);\n }\n }if (this.culling) {\n this.gl.enable(a0.CULL_FACE);\n } else {\n this.gl.disable(a0.CULL_FACE);\n }this.gl.enable(a0.BLEND);var a6;var aX;var aR;var aK;if (this.clipBufPre_clipContextMask != null) {\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;\n } else {\n switch (aM) {case b._$ms:\n a6 = a0.ONE;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ONE;aK = a0.ONE_MINUS_SRC_ALPHA;break;case b._$ns:\n a6 = a0.ONE;aX = a0.ONE;aR = a0.ZERO;aK = a0.ONE;break;case b._$_s:\n a6 = a0.DST_COLOR;aX = a0.ONE_MINUS_SRC_ALPHA;aR = a0.ZERO;aK = a0.ONE;break;}\n }a0.blendEquationSeparate(a0.FUNC_ADD, a0.FUNC_ADD);a0.blendFuncSeparate(a6, aX, aR, aK);if (this.anisotropyExt) {\n a0.texParameteri(a0.TEXTURE_2D, this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT, this.maxAnisotropy);\n }var aJ = aL.length;a0.drawElements(a0.TRIANGLES, aJ, a0.UNSIGNED_SHORT, 0);a0.bindTexture(a0.TEXTURE_2D, null);\n };function T(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ARRAY_BUFFER, aH);aJ.bufferData(aJ.ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }function L(aJ, aH, aI) {\n if (aH == null) {\n aH = aJ.createBuffer();\n }aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER, aH);aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);return aH;\n }C.prototype._$Rs = function () {\n throw new Error(\"_$Rs\");\n };C.prototype._$Ds = function (aH) {\n throw new Error(\"_$Ds\");\n };C.prototype._$K2 = function () {\n for (var aH = 0; aH < this.textures.length; aH++) {\n var aI = this.textures[aH];if (aI != 0) {\n this.gl._$K2(1, this.textures, aH);this.textures[aH] = null;\n }\n }\n };C.prototype.setTexture = function (aH, aI) {\n this.textures[aH] = aI;\n };C.prototype.initShader = function () {\n var aH = this.gl;this.loadShaders2();this.a_position_Loc = aH.getAttribLocation(this.shaderProgram, \"a_position\");this.a_texCoord_Loc = aH.getAttribLocation(this.shaderProgram, \"a_texCoord\");this.u_matrix_Loc = aH.getUniformLocation(this.shaderProgram, \"u_mvpMatrix\");this.s_texture0_Loc = aH.getUniformLocation(this.shaderProgram, \"s_texture0\");this.u_channelFlag = aH.getUniformLocation(this.shaderProgram, \"u_channelFlag\");this.u_baseColor_Loc = aH.getUniformLocation(this.shaderProgram, \"u_baseColor\");this.u_maskFlag_Loc = aH.getUniformLocation(this.shaderProgram, \"u_maskFlag\");this.a_position_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, \"a_position\");this.a_texCoord_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, \"a_texCoord\");this.u_matrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_mvpMatrix\");this.u_clipMatrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_ClipMatrix\");this.s_texture0_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"s_texture0\");this.s_texture1_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"s_texture1\");this.u_channelFlag_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_channelFlag\");this.u_baseColor_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, \"u_baseColor\");\n };C.prototype.disposeShader = function () {\n var aH = this.gl;if (this.shaderProgram) {\n aH.deleteProgram(this.shaderProgram);this.shaderProgram = null;\n }if (this.shaderProgramOff) {\n aH.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = null;\n }\n };C.prototype.compileShader = function (aJ, aN) {\n var aM = this.gl;var aH;var aL = aN;var aK = aM.createShader(aJ);if (aK == null) {\n q._$Ji(\"_$L0 to create shader\");return null;\n }aM.shaderSource(aK, aL);aM.compileShader(aK);var aH = aM.getShaderParameter(aK, aM.COMPILE_STATUS);if (!aH) {\n var aI = aM.getShaderInfoLog(aK);q._$Ji(\"_$L0 to compile shader : \" + aI);aM.deleteShader(aK);return null;\n }return aK;\n };C.prototype.loadShaders2 = function () {\n var aN = this.gl;this.shaderProgram = aN.createProgram();if (!this.shaderProgram) {\n return false;\n }this.shaderProgramOff = aN.createProgram();if (!this.shaderProgramOff) {\n return false;\n }var aK = \"attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_mvpMatrix * a_position; v_texCoord = a_texCoord;}\";var aM = \"precision mediump float;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;uniform bool u_maskFlag;void main(){ vec4 smpColor; if(u_maskFlag){ float isInside = step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w) * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w) * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z) * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w); smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside; }else{ smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor; } gl_FragColor = smpColor;}\";var aL = \"attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;uniform mat4 u_ClipMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_ClipMatrix * a_position; v_texCoord = a_texCoord ;}\";var aJ = \"precision mediump float ;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor ;void main(){ vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor; vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}\";this.vertShader = this.compileShader(aN.VERTEX_SHADER, aK);if (!this.vertShader) {\n q._$Ji(\"Vertex shader compile _$li!\");return false;\n }this.vertShaderOff = this.compileShader(aN.VERTEX_SHADER, aL);if (!this.vertShaderOff) {\n q._$Ji(\"OffVertex shader compile _$li!\");return false;\n }this.fragShader = this.compileShader(aN.FRAGMENT_SHADER, aM);if (!this.fragShader) {\n q._$Ji(\"Fragment shader compile _$li!\");return false;\n }this.fragShaderOff = this.compileShader(aN.FRAGMENT_SHADER, aJ);if (!this.fragShaderOff) {\n q._$Ji(\"OffFragment shader compile _$li!\");return false;\n }aN.attachShader(this.shaderProgram, this.vertShader);aN.attachShader(this.shaderProgram, this.fragShader);aN.attachShader(this.shaderProgramOff, this.vertShaderOff);aN.attachShader(this.shaderProgramOff, this.fragShaderOff);aN.linkProgram(this.shaderProgram);aN.linkProgram(this.shaderProgramOff);var aH = aN.getProgramParameter(this.shaderProgram, aN.LINK_STATUS);if (!aH) {\n var aI = aN.getProgramInfoLog(this.shaderProgram);q._$Ji(\"_$L0 to link program: \" + aI);if (this.vertShader) {\n aN.deleteShader(this.vertShader);this.vertShader = 0;\n }if (this.fragShader) {\n aN.deleteShader(this.fragShader);this.fragShader = 0;\n }if (this.shaderProgram) {\n aN.deleteProgram(this.shaderProgram);this.shaderProgram = 0;\n }if (this.vertShaderOff) {\n aN.deleteShader(this.vertShaderOff);this.vertShaderOff = 0;\n }if (this.fragShaderOff) {\n aN.deleteShader(this.fragShaderOff);this.fragShaderOff = 0;\n }if (this.shaderProgramOff) {\n aN.deleteProgram(this.shaderProgramOff);this.shaderProgramOff = 0;\n }return false;\n }return true;\n };C.prototype.createFramebuffer = function () {\n var aL = this.gl;var aK = Q.clippingMaskBufferSize;var aJ = aL.createFramebuffer();aL.bindFramebuffer(aL.FRAMEBUFFER, aJ);var aH = aL.createRenderbuffer();aL.bindRenderbuffer(aL.RENDERBUFFER, aH);aL.renderbufferStorage(aL.RENDERBUFFER, aL.RGBA4, aK, aK);aL.framebufferRenderbuffer(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.RENDERBUFFER, aH);var aI = aL.createTexture();aL.bindTexture(aL.TEXTURE_2D, aI);aL.texImage2D(aL.TEXTURE_2D, 0, aL.RGBA, aK, aK, 0, aL.RGBA, aL.UNSIGNED_BYTE, null);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MIN_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MAG_FILTER, aL.LINEAR);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_S, aL.CLAMP_TO_EDGE);aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_T, aL.CLAMP_TO_EDGE);aL.framebufferTexture2D(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.TEXTURE_2D, aI, 0);aL.bindTexture(aL.TEXTURE_2D, null);aL.bindRenderbuffer(aL.RENDERBUFFER, null);aL.bindFramebuffer(aL.FRAMEBUFFER, null);Q.fTexture[this.glno] = aI;return { framebuffer: aJ, renderbuffer: aH, texture: Q.fTexture[this.glno] };\n };function K(aH) {\n if (j) {\n return;\n }this._$P = new Int8Array(8);this._$R0 = new DataView(this._$P.buffer);this._$3i = new Int8Array(1000);this._$hL = 0;this._$v0 = 0;this._$S2 = 0;this._$Ko = new Array();this._$T = aH;this._$F = 0;\n }K.prototype._$fP = function () {\n var aK = this._$ST();var aJ, aI, aH;if ((aK & 128) == 0) {\n return aK & 255;\n } else {\n if (((aJ = this._$ST()) & 128) == 0) {\n return (aK & 127) << 7 | aJ & 127;\n } else {\n if (((aI = this._$ST()) & 128) == 0) {\n return (aK & 127) << 14 | (aJ & 127) << 7 | aI & 255;\n } else {\n if (((aH = this._$ST()) & 128) == 0) {\n return (aK & 127) << 21 | (aJ & 127) << 14 | (aI & 127) << 7 | aH & 255;\n } else {\n throw new J(\"_$L _$0P _\");\n }\n }\n }\n }\n };K.prototype.getFormatVersion = function () {\n return this._$S2;\n };K.prototype._$gr = function (aH) {\n this._$S2 = aH;\n };K.prototype._$3L = function () {\n return this._$fP();\n };K.prototype._$mP = function () {\n this._$zT();this._$F += 8;return this._$T.getFloat64(this._$F - 8);\n };K.prototype._$_T = function () {\n this._$zT();this._$F += 4;return this._$T.getFloat32(this._$F - 4);\n };K.prototype._$6L = function () {\n this._$zT();this._$F += 4;return this._$T.getInt32(this._$F - 4);\n };K.prototype._$ST = function () {\n this._$zT();return this._$T.getInt8(this._$F++);\n };K.prototype._$9T = function () {\n this._$zT();this._$F += 2;return this._$T.getInt16(this._$F - 2);\n };K.prototype._$2T = function () {\n this._$zT();this._$F += 8;throw new J(\"_$L _$q read long\");\n };K.prototype._$po = function () {\n this._$zT();return this._$T.getInt8(this._$F++) != 0;\n };var O = true;K.prototype._$bT = function () {\n this._$zT();var aH = this._$3L();var aK = null;if (O) {\n try {\n var aM = new ArrayBuffer(aH * 2);aK = new Uint16Array(aM);for (var aJ = 0; aJ < aH; ++aJ) {\n aK[aJ] = this._$T.getUint8(this._$F++);\n }return String.fromCharCode.apply(null, aK);\n } catch (aL) {\n O = false;\n }\n }try {\n var aI = new Array();if (aK == null) {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = this._$T.getUint8(this._$F++);\n }\n } else {\n for (var aJ = 0; aJ < aH; ++aJ) {\n aI[aJ] = aK[aJ];\n }\n }return String.fromCharCode.apply(null, aI);\n } catch (aL) {\n console.log(\"read utf8 / _$rT _$L0 !! : \" + aL);\n }\n };K.prototype._$cS = function () {\n this._$zT();var aI = this._$3L();var aH = new Int32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getInt32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$Tb = function () {\n this._$zT();var aI = this._$3L();var aH = new Float32Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat32(this._$F);this._$F += 4;\n }return aH;\n };K.prototype._$5b = function () {\n this._$zT();var aI = this._$3L();var aH = new Float64Array(aI);for (var aJ = 0; aJ < aI; aJ++) {\n aH[aJ] = this._$T.getFloat64(this._$F);this._$F += 8;\n }return aH;\n };K.prototype._$nP = function () {\n return this._$Jb(-1);\n };K.prototype._$Jb = function (aJ) {\n this._$zT();if (aJ < 0) {\n aJ = this._$3L();\n }if (aJ == ay._$7P) {\n var aH = this._$6L();if (0 <= aH && aH < this._$Ko.length) {\n return this._$Ko[aH];\n } else {\n throw new J(\"_$sL _$4i @_$m0\");\n }\n } else {\n var aI = this._$4b(aJ);this._$Ko.push(aI);return aI;\n }\n };K.prototype._$4b = function (aN) {\n if (aN == 0) {\n return null;\n }if (aN == 50) {\n var aK = this._$bT();var aI = Z.getID(aK);return aI;\n } else {\n if (aN == 51) {\n var aK = this._$bT();var aI = n.getID(aK);return aI;\n } else {\n if (aN == 134) {\n var aK = this._$bT();var aI = i.getID(aK);return aI;\n } else {\n if (aN == 60) {\n var aK = this._$bT();var aI = z.getID(aK);return aI;\n }\n }\n }\n }if (aN >= 48) {\n var aL = ay._$9o(aN);if (aL != null) {\n aL._$F0(this);return aL;\n } else {\n return null;\n }\n }switch (aN) {case 1:\n return this._$bT();case 10:\n var aM = this._$6L();return new I(aM, true);case 11:\n return new av(this._$mP(), this._$mP(), this._$mP(), this._$mP());case 12:\n return new av(this._$_T(), this._$_T(), this._$_T(), this._$_T());case 13:\n return new e(this._$mP(), this._$mP());case 14:\n return new e(this._$_T(), this._$_T());case 15:\n var aH = this._$3L();var aI = new Array(aH);for (var aJ = 0; aJ < aH; aJ++) {\n aI[aJ] = this._$nP();\n }return aI;case 17:\n var aI = new aD(this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP());return aI;case 21:\n return new F(this._$6L(), this._$6L(), this._$6L(), this._$6L());case 22:\n return new k(this._$6L(), this._$6L());case 23:\n throw new Error(\"_$L _$ro \");case 16:case 25:\n return this._$cS();case 26:\n return this._$5b();case 27:\n return this._$Tb();case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 18:case 19:case 20:case 24:case 28:\n throw new J(\"_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : \" + aN);default:\n throw new J(\"_$6 _$q : _$nP() NO _$i : \" + aN);}\n };K.prototype._$8L = function () {\n if (this._$hL == 0) {\n this._$v0 = this._$ST();\n } else {\n if (this._$hL == 8) {\n this._$v0 = this._$ST();this._$hL = 0;\n }\n }return (this._$v0 >> 7 - this._$hL++ & 1) == 1;\n };K.prototype._$zT = function () {\n if (this._$hL != 0) {\n this._$hL = 0;\n }\n };function ai() {}ai.prototype._$wP = function (aM, aI, aK) {\n for (var aL = 0; aL < aK; aL++) {\n for (var aH = 0; aH < aI; aH++) {\n var aJ = 2 * (aH + aL * aI);console.log(\"(% 7.3f , % 7.3f) , \", aM[aJ], aM[aJ + 1]);\n }console.log(\"\\n\");\n }console.log(\"\\n\");\n };function aC() {}aC._$2S = Math.PI / 180;aC._$bS = Math.PI / 180;aC._$wS = 180 / Math.PI;aC._$NS = 180 / Math.PI;aC.PI_F = Math.PI;aC._$kT = [0, 0.012368, 0.024734, 0.037097, 0.049454, 0.061803, 0.074143, 0.086471, 0.098786, 0.111087, 0.12337, 0.135634, 0.147877, 0.160098, 0.172295, 0.184465, 0.196606, 0.208718, 0.220798, 0.232844, 0.244854, 0.256827, 0.268761, 0.280654, 0.292503, 0.304308, 0.316066, 0.327776, 0.339436, 0.351044, 0.362598, 0.374097, 0.385538, 0.396921, 0.408243, 0.419502, 0.430697, 0.441826, 0.452888, 0.463881, 0.474802, 0.485651, 0.496425, 0.507124, 0.517745, 0.528287, 0.538748, 0.549126, 0.559421, 0.56963, 0.579752, 0.589785, 0.599728, 0.609579, 0.619337, 0.629, 0.638567, 0.648036, 0.657406, 0.666676, 0.675843, 0.684908, 0.693867, 0.70272, 0.711466, 0.720103, 0.72863, 0.737045, 0.745348, 0.753536, 0.76161, 0.769566, 0.777405, 0.785125, 0.792725, 0.800204, 0.807561, 0.814793, 0.821901, 0.828884, 0.835739, 0.842467, 0.849066, 0.855535, 0.861873, 0.868079, 0.874153, 0.880093, 0.885898, 0.891567, 0.897101, 0.902497, 0.907754, 0.912873, 0.917853, 0.922692, 0.92739, 0.931946, 0.936359, 0.940629, 0.944755, 0.948737, 0.952574, 0.956265, 0.959809, 0.963207, 0.966457, 0.96956, 0.972514, 0.97532, 0.977976, 0.980482, 0.982839, 0.985045, 0.987101, 0.989006, 0.990759, 0.992361, 0.993811, 0.995109, 0.996254, 0.997248, 0.998088, 0.998776, 0.999312, 0.999694, 0.999924, 1];aC._$92 = function (aK, aI) {\n var aH = Math.atan2(aK[1], aK[0]);var aJ = Math.atan2(aI[1], aI[0]);return aC._$tS(aH, aJ);\n };aC._$tS = function (aI, aH) {\n var aJ = aI - aH;while (aJ < -Math.PI) {\n aJ += 2 * Math.PI;\n }while (aJ > Math.PI) {\n aJ -= 2 * Math.PI;\n }return aJ;\n };aC._$9 = function (aH) {\n return Math.sin(aH);\n };aC.fcos = function (aH) {\n return Math.cos(aH);\n };function aB(aH) {\n if (j) {\n return;\n }this._$e0 = null;this._$IP = null;this._$Us = null;this._$7s = null;this._$IS = [false];this._$VS = null;this._$AT = true;this.baseOpacity = 1;this.clipBufPre_clipContext = null;this._$e0 = aH;\n }aB.prototype._$u2 = function () {\n return this._$IS[0];\n };aB.prototype._$yo = function () {\n return this._$AT && !this._$IS[0];\n };aB.prototype._$GT = function () {\n return this._$e0;\n };function r() {}r._$W2 = 0;r.SYSTEM_INFO = null;r.USER_AGENT = navigator.userAgent;r.isIPhone = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone;\n };r.isIOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad;\n };r.isAndroid = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO._isAndroid;\n };r.getOSVersion = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }return r.SYSTEM_INFO.version;\n };r.getOS = function () {\n if (!r.SYSTEM_INFO) {\n r.setup();\n }if (r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad) {\n return \"iOS\";\n }if (r.SYSTEM_INFO._isAndroid) {\n return \"Android\";\n } else {\n return \"_$Q0 OS\";\n }\n };r.setup = function () {\n var aK = r.USER_AGENT;function aI(aO, aR) {\n var aN = aO.substring(aR).split(/[ _,;\\.]/);var aQ = 0;for (var aM = 0; aM <= 2; aM++) {\n if (isNaN(aN[aM])) {\n break;\n }var aP = parseInt(aN[aM]);if (aP < 0 || aP > 999) {\n q._$li(\"err : \" + aP + \" @UtHtml5.setup()\");aQ = 0;break;\n }aQ += aP * Math.pow(1000, 2 - aM);\n }return aQ;\n }var aL;var aH;var aJ = r.SYSTEM_INFO = { userAgent: aK };if ((aL = aK.indexOf(\"iPhone OS \")) >= 0) {\n aJ.os = \"iPhone\";aJ._isIPhone = true;aJ.version = aI(aK, aL + \"iPhone OS \".length);\n } else {\n if ((aL = aK.indexOf(\"iPad\")) >= 0) {\n aL = aK.indexOf(\"CPU OS\");if (aL < 0) {\n q._$li(\" err : \" + aK + \" @UtHtml5.setup()\");return;\n }aJ.os = \"iPad\";aJ._isIPad = true;aJ.version = aI(aK, aL + \"CPU OS \".length);\n } else {\n if ((aL = aK.indexOf(\"Android\")) >= 0) {\n aJ.os = \"Android\";aJ._isAndroid = true;aJ.version = aI(aK, aL + \"Android \".length);\n } else {\n aJ.os = \"-\";aJ.version = -1;\n }\n }\n }\n };window.UtSystem = P;window.UtDebug = q;window.LDTransform = am;window.LDGL = au;window.Live2D = Q;window.Live2DModelWebGL = l;window.Live2DModelJS = v;window.Live2DMotion = ao;window.MotionQueueManager = V;window.PhysicsHair = u;window.AMotion = ah;window.PartsDataID = i;window.DrawDataID = Z;window.BaseDataID = n;window.ParamID = z;Q.init();var j = false;\n})();\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n// Provide a \"System\" global.\r\nmodule.exports = {\r\n\t// Make sure import is only used as \"System.import\"\r\n\timport: function() {\r\n\t\tthrow new Error(\"System.import cannot be used indirectly\");\r\n\t}\r\n};\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(4);\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// bundle.js"," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d20b8d3fcd0215216d39","/**\r\n * EYHN 基于 live2d 官方 Live2DFramework.js 修改\r\n * \r\n * Copyright © 2016 - 2017 EYHN\r\n */\r\n//============================================================\r\n//============================================================\r\n// class L2DBaseModel \r\n//============================================================\r\n//============================================================\r\nfunction L2DBaseModel() {\r\n this.live2DModel = null; // ALive2DModel\r\n this.modelMatrix = null; // L2DModelMatrix\r\n this.eyeBlink = null; // L2DEyeBlink\r\n this.physics = null; // L2DPhysics\r\n this.pose = null; // L2DPose\r\n this.debugMode = false;\r\n this.initialized = false;\r\n this.updating = false;\r\n this.alpha = 1;\r\n this.accAlpha = 0;\r\n this.lipSync = false;\r\n this.lipSyncValue = 0;\r\n this.accelX = 0;\r\n this.accelY = 0;\r\n this.accelZ = 0;\r\n this.dragX = 0;\r\n this.dragY = 0;\r\n this.startTimeMSec = null;\r\n this.mainMotionManager = new L2DMotionManager(); //L2DMotionManager\r\n this.expressionManager = new L2DMotionManager(); //L2DMotionManager\r\n this.motions = {};\r\n this.expressions = {};\r\n\r\n this.isTexLoaded = false;\r\n}\r\n\r\nvar texCounter = 0;\r\n\r\n//============================================================\r\n// L2DBaseModel # getModelMatrix()\r\n//============================================================\r\nL2DBaseModel.prototype.getModelMatrix = function () {\r\n return this.modelMatrix;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setAlpha()\r\n//============================================================\r\nL2DBaseModel.prototype.setAlpha = function (a/*float*/) {\r\n if (a > 0.999) a = 1;\r\n if (a < 0.001) a = 0;\r\n this.alpha = a;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getAlpha()\r\n//============================================================\r\nL2DBaseModel.prototype.getAlpha = function () {\r\n return this.alpha;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # isInitialized()\r\n//============================================================\r\nL2DBaseModel.prototype.isInitialized = function () {\r\n return this.initialized;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setInitialized()\r\n//============================================================\r\nL2DBaseModel.prototype.setInitialized = function (v/*boolean*/) {\r\n this.initialized = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # isUpdating()\r\n//============================================================\r\nL2DBaseModel.prototype.isUpdating = function () {\r\n return this.updating;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setUpdating()\r\n//============================================================\r\nL2DBaseModel.prototype.setUpdating = function (v/*boolean*/) {\r\n this.updating = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getLive2DModel()\r\n//============================================================\r\nL2DBaseModel.prototype.getLive2DModel = function () {\r\n return this.live2DModel;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setLipSync()\r\n//============================================================\r\nL2DBaseModel.prototype.setLipSync = function (v/*boolean*/) {\r\n this.lipSync = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setLipSyncValue()\r\n//============================================================\r\nL2DBaseModel.prototype.setLipSyncValue = function (v/*float*/) {\r\n this.lipSyncValue = v;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setAccel()\r\n//============================================================\r\nL2DBaseModel.prototype.setAccel = function (x/*float*/, y/*float*/, z/*float*/) {\r\n this.accelX = x;\r\n this.accelY = y;\r\n this.accelZ = z;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # setDrag()\r\n//============================================================\r\nL2DBaseModel.prototype.setDrag = function (x/*float*/, y/*float*/) {\r\n this.dragX = x;\r\n this.dragY = y;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getMainMotionManager()\r\n//============================================================\r\nL2DBaseModel.prototype.getMainMotionManager = function () {\r\n return this.mainMotionManager;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # getExpressionManager()\r\n//============================================================\r\nL2DBaseModel.prototype.getExpressionManager = function () {\r\n return this.expressionManager;\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadModelData()\r\n//============================================================\r\nL2DBaseModel.prototype.loadModelData = function (path/*String*/, callback) {\r\n /*\r\n if( this.live2DModel != null ) {\r\n this.live2DModel.deleteTextures();\r\n }\r\n */\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load model : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadLive2DModel(path, function (l2dModel) {\r\n thisRef.live2DModel = l2dModel;\r\n thisRef.live2DModel.saveParam();\r\n\r\n var _err = Live2D.getError();\r\n\r\n if (_err != 0) {\r\n console.error(\"Error : Failed to loadModelData().\");\r\n return;\r\n }\r\n\r\n thisRef.modelMatrix = new L2DModelMatrix(\r\n thisRef.live2DModel.getCanvasWidth(),\r\n thisRef.live2DModel.getCanvasHeight()); //L2DModelMatrix\r\n thisRef.modelMatrix.setWidth(2);\r\n thisRef.modelMatrix.setCenterPosition(0, 0);\r\n\r\n callback(thisRef.live2DModel);\r\n });\r\n}\r\n\r\n\r\n//============================================================\r\n// L2DBaseModel # loadTexture()\r\n//============================================================\r\nL2DBaseModel.prototype.loadTexture = function (no/*int*/, path/*String*/, callback) {\r\n texCounter++;\r\n\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Texture : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadTexture(this.live2DModel, no, path, function () {\r\n texCounter--;\r\n if (texCounter == 0) thisRef.isTexLoaded = true;\r\n if (typeof callback == \"function\") callback();\r\n });\r\n\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadMotion()\r\n//============================================================\r\nL2DBaseModel.prototype.loadMotion = function (name/*String*/, path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Motion : \" + path);\r\n\r\n var motion = null; //Live2DMotion\r\n\r\n var thisRef = this;\r\n pm.loadBytes(path, function (buf) {\r\n motion = Live2DMotion.loadMotion(buf);\r\n if (name != null) {\r\n thisRef.motions[name] = motion;\r\n }\r\n callback(motion);\r\n });\r\n\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadExpression()\r\n//============================================================\r\nL2DBaseModel.prototype.loadExpression = function (name/*String*/, path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n\r\n if (this.debugMode) pm.log(\"Load Expression : \" + path);\r\n\r\n var thisRef = this;\r\n pm.loadBytes(path, function (buf) {\r\n if (name != null) {\r\n thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf);\r\n }\r\n if (typeof callback == \"function\") callback();\r\n });\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadPose()\r\n//============================================================\r\nL2DBaseModel.prototype.loadPose = function (path /*String*/, callback) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load Pose : \" + path);\r\n var thisRef = this;\r\n try {\r\n pm.loadBytes(path, function (buf) {\r\n thisRef.pose = L2DPose.load(buf);\r\n if (typeof callback == \"function\") callback();\r\n });\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # loadPhysics()\r\n//============================================================\r\nL2DBaseModel.prototype.loadPhysics = function (path/*String*/) {\r\n var pm = Live2DFramework.getPlatformManager(); //IPlatformManager\r\n if (this.debugMode) pm.log(\"Load Physics : \" + path);\r\n var thisRef = this;\r\n try {\r\n pm.loadBytes(path, function (buf) {\r\n thisRef.physics = L2DPhysics.load(buf);\r\n });\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DBaseModel # hitTestSimple()\r\n//============================================================\r\nL2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) {\r\n\t\r\n\tif(this.live2DModel === null) return !1;\r\n\t\r\n var drawIndex = this.live2DModel.getDrawDataIndex(drawID);\r\n\r\n if (drawIndex < 0) return false;\r\n\r\n var points = this.live2DModel.getTransformedPoints(drawIndex);\r\n var left = this.live2DModel.getCanvasWidth();\r\n var right = 0;\r\n var top = this.live2DModel.getCanvasHeight();\r\n var bottom = 0;\r\n\r\n for (var j = 0; j < points.length; j = j + 2) {\r\n var x = points[j];\r\n var y = points[j + 1];\r\n\r\n if (x < left) left = x;\r\n if (x > right) right = x;\r\n if (y < top) top = y;\r\n if (y > bottom) bottom = y;\r\n }\r\n var tx = this.modelMatrix.invertTransformX(testX);\r\n var ty = this.modelMatrix.invertTransformY(testY);\r\n\r\n return (left <= tx && tx <= right && top <= ty && ty <= bottom);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DExpressionMotion extends AMotion\r\n//============================================================\r\n//============================================================\r\nfunction L2DExpressionMotion() {\r\n AMotion.prototype.constructor.call(this);\r\n this.paramList = new Array(); //ArrayList\r\n}\r\n\r\nL2DExpressionMotion.prototype = new AMotion(); // L2DExpressionMotion extends AMotion\r\n\r\n//============================================================\r\nL2DExpressionMotion.EXPRESSION_DEFAULT = \"DEFAULT\";\r\nL2DExpressionMotion.TYPE_SET = 0;\r\nL2DExpressionMotion.TYPE_ADD = 1;\r\nL2DExpressionMotion.TYPE_MULT = 2;\r\n\r\n//============================================================\r\n// static L2DExpressionMotion.loadJson()\r\n//============================================================\r\nL2DExpressionMotion.loadJson = function (buf) {\r\n var ret = new L2DExpressionMotion();\r\n\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n\r\n ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);\r\n ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);\r\n\r\n if (json.params == null) {\r\n return ret;\r\n }\r\n\r\n var params = json.params;\r\n var paramNum = params.length;\r\n ret.paramList = []; //ArrayList\r\n for (var i = 0; i < paramNum; i++) {\r\n var param = params[i];\r\n var paramID = param.id.toString();\r\n var value = parseFloat(param.val);\r\n var calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n var calc = param.calc != null ? param.calc.toString() : \"add\";\r\n if (calc === \"add\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n }\r\n else if (calc === \"mult\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_MULT;\r\n }\r\n else if (calc === \"set\") {\r\n calcTypeInt = L2DExpressionMotion.TYPE_SET;\r\n }\r\n else {\r\n calcTypeInt = L2DExpressionMotion.TYPE_ADD;\r\n }\r\n if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {\r\n var defaultValue = param.def == null ? 0 : parseFloat(param.def);\r\n value = value - defaultValue;\r\n }\r\n else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {\r\n var defaultValue = param.def == null ? 1 : parseFloat(param.def);\r\n if (defaultValue == 0) defaultValue = 1;\r\n value = value / defaultValue;\r\n }\r\n\r\n var item = new L2DExpressionParam();\r\n item.id = paramID;\r\n item.type = calcTypeInt;\r\n item.value = value;\r\n\r\n ret.paramList.push(item);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n\r\n//============================================================\r\n// L2DExpressionMotion # updateParamExe()\r\n//============================================================\r\nL2DExpressionMotion.prototype.updateParamExe = function (model /*ALive2DModel*/, timeMSec/*long*/, weight /*float*/, motionQueueEnt /*MotionQueueEnt*/) {\r\n for (var i = this.paramList.length - 1; i >= 0; --i) {\r\n var param = this.paramList[i]; //L2DExpressionParam\r\n // if (!param || !param.type) continue;\r\n if (param.type == L2DExpressionMotion.TYPE_ADD) {\r\n model.addToParamFloat(param.id, param.value, weight);\r\n }\r\n else if (param.type == L2DExpressionMotion.TYPE_MULT) {\r\n model.multParamFloat(param.id, param.value, weight);\r\n }\r\n else if (param.type == L2DExpressionMotion.TYPE_SET) {\r\n model.setParamFloat(param.id, param.value, weight);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DExpressionParam \r\n//============================================================\r\n//============================================================\r\nfunction L2DExpressionParam() {\r\n this.id = \"\";\r\n this.type = -1;\r\n this.value = null;\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DEyeBlink \r\n//============================================================\r\n//============================================================\r\nfunction L2DEyeBlink() {\r\n this.nextBlinkTime = null /* TODO NOT INIT */; // \r\n this.stateStartTime = null /* TODO NOT INIT */; // \r\n this.blinkIntervalMsec = null /* TODO NOT INIT */; // \r\n this.eyeState = EYE_STATE.STATE_FIRST;\r\n this.blinkIntervalMsec = 4000;\r\n this.closingMotionMsec = 100;\r\n this.closedMotionMsec = 50;\r\n this.openingMotionMsec = 150;\r\n this.closeIfZero = true;\r\n this.eyeID_L = \"PARAM_EYE_L_OPEN\";\r\n this.eyeID_R = \"PARAM_EYE_R_OPEN\";\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # calcNextBlink()\r\n//============================================================\r\nL2DEyeBlink.prototype.calcNextBlink = function () {\r\n var time /*long*/ = UtSystem.getUserTimeMSec();\r\n var r /*Number*/ = Math.random();\r\n return /*(long)*/ (time + r * (2 * this.blinkIntervalMsec - 1));\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # setInterval()\r\n//============================================================\r\nL2DEyeBlink.prototype.setInterval = function (blinkIntervalMsec /*int*/) {\r\n this.blinkIntervalMsec = blinkIntervalMsec;\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # setEyeMotion()\r\n//============================================================\r\nL2DEyeBlink.prototype.setEyeMotion = function (closingMotionMsec/*int*/, closedMotionMsec/*int*/, openingMotionMsec/*int*/) {\r\n this.closingMotionMsec = closingMotionMsec;\r\n this.closedMotionMsec = closedMotionMsec;\r\n this.openingMotionMsec = openingMotionMsec;\r\n}\r\n\r\n//============================================================\r\n// L2DEyeBlink # updateParam()\r\n//============================================================\r\nL2DEyeBlink.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var time /*:long*/ = UtSystem.getUserTimeMSec();\r\n var eyeParamValue /*:Number*/;\r\n var t /*:Number*/ = 0;\r\n switch (this.eyeState) {\r\n case EYE_STATE.STATE_CLOSING:\r\n t = (time - this.stateStartTime) / this.closingMotionMsec;\r\n if (t >= 1) {\r\n t = 1;\r\n this.eyeState = EYE_STATE.STATE_CLOSED;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 1 - t;\r\n break;\r\n case EYE_STATE.STATE_CLOSED:\r\n t = (time - this.stateStartTime) / this.closedMotionMsec;\r\n if (t >= 1) {\r\n this.eyeState = EYE_STATE.STATE_OPENING;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 0;\r\n break;\r\n case EYE_STATE.STATE_OPENING:\r\n t = (time - this.stateStartTime) / this.openingMotionMsec;\r\n if (t >= 1) {\r\n t = 1;\r\n this.eyeState = EYE_STATE.STATE_INTERVAL;\r\n this.nextBlinkTime = this.calcNextBlink();\r\n }\r\n eyeParamValue = t;\r\n break;\r\n case EYE_STATE.STATE_INTERVAL:\r\n if (this.nextBlinkTime < time) {\r\n this.eyeState = EYE_STATE.STATE_CLOSING;\r\n this.stateStartTime = time;\r\n }\r\n eyeParamValue = 1;\r\n break;\r\n case EYE_STATE.STATE_FIRST:\r\n default:\r\n this.eyeState = EYE_STATE.STATE_INTERVAL;\r\n this.nextBlinkTime = this.calcNextBlink();\r\n eyeParamValue = 1;\r\n break;\r\n }\r\n if (!this.closeIfZero) eyeParamValue = -eyeParamValue;\r\n model.setParamFloat(this.eyeID_L, eyeParamValue);\r\n model.setParamFloat(this.eyeID_R, eyeParamValue);\r\n}\r\n\r\n//== enum EYE_STATE ==\r\nvar EYE_STATE = function () { };\r\n\r\nEYE_STATE.STATE_FIRST = \"STATE_FIRST\"\r\nEYE_STATE.STATE_INTERVAL = \"STATE_INTERVAL\"\r\nEYE_STATE.STATE_CLOSING = \"STATE_CLOSING\"\r\nEYE_STATE.STATE_CLOSED = \"STATE_CLOSED\"\r\nEYE_STATE.STATE_OPENING = \"STATE_OPENING\"\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DMatrix44 \r\n//============================================================\r\n//============================================================\r\nfunction L2DMatrix44() {\r\n this.tr = new Float32Array(16); // \r\n this.identity();\r\n}\r\n\r\n//============================================================\r\n// static L2DMatrix44.mul()\r\n//============================================================\r\nL2DMatrix44.mul = function (a/*float[]*/, b/*float[]*/, dst/*float[]*/) {\r\n var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n var n = 4;\r\n var i, j, k;\r\n for (i = 0; i < n; i++) {\r\n for (j = 0; j < n; j++) {\r\n for (k = 0; k < n; k++) {\r\n c[i + j * 4] += a[i + k * 4] * b[k + j * 4];\r\n }\r\n }\r\n }\r\n for (i = 0; i < 16; i++) {\r\n dst[i] = c[i];\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # identity()\r\n//============================================================\r\nL2DMatrix44.prototype.identity = function () {\r\n for (var i/*:int*/ = 0; i < 16; i++)\r\n this.tr[i] = ((i % 5) == 0) ? 1 : 0;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getArray()\r\n//============================================================\r\nL2DMatrix44.prototype.getArray = function () {\r\n return this.tr;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getCopyMatrix()\r\n//============================================================\r\nL2DMatrix44.prototype.getCopyMatrix = function () {\r\n return new Float32Array(this.tr); // this.tr.clone();\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # setMatrix()\r\n//============================================================\r\nL2DMatrix44.prototype.setMatrix = function (tr/*float[]*/) {\r\n if (this.tr == null || this.tr.length != this.tr.length) return;\r\n for (var i/*:int*/ = 0; i < 16; i++) this.tr[i] = tr[i];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getScaleX()\r\n//============================================================\r\nL2DMatrix44.prototype.getScaleX = function () {\r\n return this.tr[0];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # getScaleY()\r\n//============================================================\r\nL2DMatrix44.prototype.getScaleY = function () {\r\n return this.tr[5];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # transformX()\r\n//============================================================\r\nL2DMatrix44.prototype.transformX = function (src/*float*/) {\r\n return this.tr[0] * src + this.tr[12];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # transformY()\r\n//============================================================\r\nL2DMatrix44.prototype.transformY = function (src/*float*/) {\r\n return this.tr[5] * src + this.tr[13];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # invertTransformX()\r\n//============================================================\r\nL2DMatrix44.prototype.invertTransformX = function (src/*float*/) {\r\n return (src - this.tr[12]) / this.tr[0];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # invertTransformY()\r\n//============================================================\r\nL2DMatrix44.prototype.invertTransformY = function (src/*float*/) {\r\n return (src - this.tr[13]) / this.tr[5];\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # multTranslate()\r\n//============================================================\r\nL2DMatrix44.prototype.multTranslate = function (shiftX/*float*/, shiftY/*float*/) {\r\n var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translate()\r\n//============================================================\r\nL2DMatrix44.prototype.translate = function (x/*float*/, y/*float*/) {\r\n this.tr[12] = x;\r\n this.tr[13] = y;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translateX()\r\n//============================================================\r\nL2DMatrix44.prototype.translateX = function (x/*float*/) {\r\n this.tr[12] = x;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # translateY()\r\n//============================================================\r\nL2DMatrix44.prototype.translateY = function (y/*float*/) {\r\n this.tr[13] = y;\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # multScale()\r\n//============================================================\r\nL2DMatrix44.prototype.multScale = function (scaleX/*float*/, scaleY/*float*/) {\r\n var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DMatrix44 # scale()\r\n//============================================================\r\nL2DMatrix44.prototype.scale = function (scaleX/*float*/, scaleY/*float*/) {\r\n this.tr[0] = scaleX;\r\n this.tr[5] = scaleY;\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DModelMatrix extends L2DMatrix44\r\n//============================================================\r\n//============================================================\r\nfunction L2DModelMatrix(w/*float*/, h/*float*/) {\r\n L2DMatrix44.prototype.constructor.call(this);\r\n this.width = w;\r\n this.height = h;\r\n}\r\n\r\n//L2DModelMatrix extends L2DMatrix44\r\nL2DModelMatrix.prototype = new L2DMatrix44();\r\n\r\n//============================================================\r\n// L2DModelMatrix # setPosition()\r\n//============================================================\r\nL2DModelMatrix.prototype.setPosition = function (x/*float*/, y/*float*/) {\r\n this.translate(x, y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setCenterPosition()\r\n//============================================================\r\nL2DModelMatrix.prototype.setCenterPosition = function (x/*float*/, y/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n var h = this.height * this.getScaleY();\r\n this.translate(x - w / 2, y - h / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # top()\r\n//============================================================\r\nL2DModelMatrix.prototype.top = function (y/*float*/) {\r\n this.setY(y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # bottom()\r\n//============================================================\r\nL2DModelMatrix.prototype.bottom = function (y/*float*/) {\r\n var h = this.height * this.getScaleY();\r\n this.translateY(y - h);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # left()\r\n//============================================================\r\nL2DModelMatrix.prototype.left = function (x/*float*/) {\r\n this.setX(x);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # right()\r\n//============================================================\r\nL2DModelMatrix.prototype.right = function (x/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n this.translateX(x - w);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # centerX()\r\n//============================================================\r\nL2DModelMatrix.prototype.centerX = function (x/*float*/) {\r\n var w = this.width * this.getScaleX();\r\n this.translateX(x - w / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # centerY()\r\n//============================================================\r\nL2DModelMatrix.prototype.centerY = function (y/*float*/) {\r\n var h = this.height * this.getScaleY();\r\n this.translateY(y - h / 2);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setX()\r\n//============================================================\r\nL2DModelMatrix.prototype.setX = function (x/*float*/) {\r\n this.translateX(x);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setY()\r\n//============================================================\r\nL2DModelMatrix.prototype.setY = function (y/*float*/) {\r\n this.translateY(y);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setHeight()\r\n//============================================================\r\nL2DModelMatrix.prototype.setHeight = function (h/*float*/) {\r\n var scaleX = h / this.height;\r\n var scaleY = -scaleX;\r\n this.scale(scaleX, scaleY);\r\n}\r\n\r\n//============================================================\r\n// L2DModelMatrix # setWidth()\r\n//============================================================\r\nL2DModelMatrix.prototype.setWidth = function (w/*float*/) {\r\n var scaleX = w / this.width;\r\n var scaleY = -scaleX;\r\n this.scale(scaleX, scaleY);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DMotionManager extends MotionQueueManager\r\n//============================================================\r\n//============================================================\r\nfunction L2DMotionManager() {\r\n MotionQueueManager.prototype.constructor.call(this);\r\n this.currentPriority = null;\r\n this.reservePriority = null;\r\n\r\n this.super = MotionQueueManager.prototype;\r\n}\r\n\r\n\r\nL2DMotionManager.prototype = new MotionQueueManager();\r\n\r\n//============================================================\r\n// L2DMotionManager # getCurrentPriority()\r\n//============================================================\r\nL2DMotionManager.prototype.getCurrentPriority = function () {\r\n return this.currentPriority;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # getReservePriority()\r\n//============================================================\r\nL2DMotionManager.prototype.getReservePriority = function () {\r\n return this.reservePriority;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # reserveMotion()\r\n//============================================================\r\nL2DMotionManager.prototype.reserveMotion = function (priority/*int*/) {\r\n if (this.reservePriority >= priority) {\r\n return false;\r\n }\r\n if (this.currentPriority >= priority) {\r\n return false;\r\n }\r\n\r\n this.reservePriority = priority;\r\n\r\n return true;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # setReservePriority()\r\n//============================================================\r\nL2DMotionManager.prototype.setReservePriority = function (val/*int*/) {\r\n this.reservePriority = val;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # updateParam()\r\n//============================================================\r\nL2DMotionManager.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var updated = MotionQueueManager.prototype.updateParam.call(this, model);\r\n\r\n if (this.isFinished()) {\r\n this.currentPriority = 0;\r\n }\r\n\r\n return updated;\r\n}\r\n\r\n//============================================================\r\n// L2DMotionManager # startMotionPrio()\r\n//============================================================\r\nL2DMotionManager.prototype.startMotionPrio = function (motion/*AMotion*/, priority/*int*/) {\r\n if (priority == this.reservePriority) {\r\n this.reservePriority = 0;\r\n }\r\n this.currentPriority = priority;\r\n return this.startMotion(motion, false);\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPhysics \r\n//============================================================\r\n//============================================================\r\nfunction L2DPhysics() {\r\n this.physicsList = new Array(); //ArrayList\r\n this.startTimeMSec = UtSystem.getUserTimeMSec();\r\n}\r\n\r\n//============================================================\r\n// static L2DPhysics.load()\r\n//============================================================\r\nL2DPhysics.load = function (buf /*byte[]*/) {\r\n var ret = new L2DPhysics(); //L2DPhysicsL2DPhysics\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n var params = json.physics_hair;\r\n var paramNum = params.length;\r\n for (var i = 0; i < paramNum; i++) {\r\n var param = params[i]; //Value\r\n var physics = new PhysicsHair(); //PhysicsHairPhysicsHair\r\n var setup = param.setup; //Value\r\n var length = parseFloat(setup.length);\r\n var resist = parseFloat(setup.regist);\r\n var mass = parseFloat(setup.mass);\r\n physics.setup(length, resist, mass);\r\n var srcList = param.src; //Value\r\n var srcNum = srcList.length;\r\n for (var j = 0; j < srcNum; j++) {\r\n var src = srcList[j]; //Value\r\n var id = src.id; //String\r\n var type = PhysicsHair.Src.SRC_TO_X;\r\n var typeStr = src.ptype; //String\r\n if (typeStr === \"x\") {\r\n type = PhysicsHair.Src.SRC_TO_X;\r\n }\r\n else if (typeStr === \"y\") {\r\n type = PhysicsHair.Src.SRC_TO_Y;\r\n }\r\n else if (typeStr === \"angle\") {\r\n type = PhysicsHair.Src.SRC_TO_G_ANGLE;\r\n }\r\n else {\r\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Src\");\r\n }\r\n var scale = parseFloat(src.scale);\r\n var weight = parseFloat(src.weight);\r\n physics.addSrcParam(type, id, scale, weight);\r\n }\r\n var targetList = param.targets; //Value\r\n var targetNum = targetList.length;\r\n for (var j = 0; j < targetNum; j++) {\r\n var target = targetList[j]; //Value\r\n var id = target.id; //String\r\n var type = PhysicsHair.Target.TARGET_FROM_ANGLE;\r\n var typeStr = target.ptype; //String\r\n if (typeStr === \"angle\") {\r\n type = PhysicsHair.Target.TARGET_FROM_ANGLE;\r\n }\r\n else if (typeStr === \"angle_v\") {\r\n type = PhysicsHair.Target.TARGET_FROM_ANGLE_V;\r\n }\r\n else {\r\n UtDebug.error(\"live2d\", \"Invalid parameter:PhysicsHair.Target\");\r\n }\r\n var scale = parseFloat(target.scale);\r\n var weight = parseFloat(target.weight);\r\n physics.addTargetParam(type, id, scale, weight);\r\n }\r\n ret.physicsList.push(physics);\r\n }\r\n return ret;\r\n}\r\n\r\n//============================================================\r\n// L2DPhysics # updateParam()\r\n//============================================================\r\nL2DPhysics.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\r\n for (var i = 0; i < this.physicsList.length; i++) {\r\n this.physicsList[i].update(model, timeMSec);\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPose \r\n//============================================================\r\n//============================================================\r\nfunction L2DPose() {\r\n this.lastTime = 0;\r\n this.lastModel = null; //ALive2DModel\r\n this.partsGroups = new Array(); //ArrayList\r\n}\r\n\r\n\r\n//============================================================\r\n// static L2DPose.load()\r\n//============================================================\r\nL2DPose.load = function (buf/*byte[]*/) {\r\n var ret = new L2DPose(); //L2DPose\r\n var pm = Live2DFramework.getPlatformManager();\r\n var json = pm.jsonParseFromBytes(buf);\r\n var poseListInfo = json.parts_visible; //Value\r\n var poseNum = poseListInfo.length;\r\n for (var i_pose = 0; i_pose < poseNum; i_pose++) {\r\n var poseInfo = poseListInfo[i_pose]; //Value\r\n var idListInfo = poseInfo.group; //Value\r\n var idNum = idListInfo.length;\r\n var partsGroup/*L2DPartsParam*/ = new Array();\r\n for (var i_group = 0; i_group < idNum; i_group++) {\r\n var partsInfo = idListInfo[i_group]; //Value\r\n var parts = new L2DPartsParam(partsInfo.id); //L2DPartsParamL2DPartsParam\r\n partsGroup[i_group] = parts;\r\n if (partsInfo.link == null) continue;\r\n var linkListInfo = partsInfo.link; //Value\r\n var linkNum = linkListInfo.length;\r\n parts.link = new Array(); //ArrayList\r\n for (var i_link = 0; i_link < linkNum; i_link++) {\r\n var linkParts = new L2DPartsParam(linkListInfo[i_link]); //L2DPartsParamL2DPartsParam\r\n parts.link.push(linkParts);\r\n }\r\n }\r\n ret.partsGroups.push(partsGroup);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n//============================================================\r\n// L2DPose # updateParam()\r\n//============================================================\r\nL2DPose.prototype.updateParam = function (model/*ALive2DModel*/) {\r\n if (model == null) return;\r\n\r\n if (!(model == this.lastModel)) {\r\n this.initParam(model);\r\n }\r\n this.lastModel = model;\r\n\r\n var curTime = UtSystem.getUserTimeMSec();\r\n var deltaTimeSec = ((this.lastTime == 0) ? 0 : (curTime - this.lastTime) / 1000.0);\r\n this.lastTime = curTime;\r\n if (deltaTimeSec < 0) deltaTimeSec = 0;\r\n for (var i = 0; i < this.partsGroups.length; i++) {\r\n this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);\r\n this.copyOpacityOtherParts(model, this.partsGroups[i]);\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # initParam()\r\n//============================================================\r\nL2DPose.prototype.initParam = function (model/*ALive2DModel*/) {\r\n if (model == null) return;\r\n for (var i = 0; i < this.partsGroups.length; i++) {\r\n var partsGroup = this.partsGroups[i]; //L2DPartsParam\r\n for (var j = 0; j < partsGroup.length; j++) {\r\n partsGroup[j].initIndex(model);\r\n var partsIndex = partsGroup[j].partsIndex;\r\n var paramIndex = partsGroup[j].paramIndex;\r\n if (partsIndex < 0) continue;\r\n var v/*:Boolean*/ = (model.getParamFloat(paramIndex) != 0);\r\n model.setPartsOpacity(partsIndex, (v ? 1.0 : 0.0));\r\n model.setParamFloat(paramIndex, (v ? 1.0 : 0.0));\r\n if (partsGroup[j].link == null) continue;\r\n for (var k = 0; k < partsGroup[j].link.length; k++) {\r\n partsGroup[j].link[k].initIndex(model);\r\n }\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # normalizePartsOpacityGroup()\r\n//============================================================\r\nL2DPose.prototype.normalizePartsOpacityGroup = function (model/*ALive2DModel*/, partsGroup/*L2DPartsParam[]*/, deltaTimeSec/*float*/) {\r\n var visibleParts = -1;\r\n var visibleOpacity = 1.0;\r\n var CLEAR_TIME_SEC = 0.5;\r\n var phi = 0.5;\r\n var maxBackOpacity = 0.15;\r\n for (var i = 0; i < partsGroup.length; i++) {\r\n var partsIndex = partsGroup[i].partsIndex;\r\n var paramIndex = partsGroup[i].paramIndex;\r\n if (partsIndex < 0) continue; if (model.getParamFloat(paramIndex) != 0) {\r\n if (visibleParts >= 0) {\r\n break;\r\n }\r\n visibleParts = i;\r\n visibleOpacity = model.getPartsOpacity(partsIndex);\r\n visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;\r\n if (visibleOpacity > 1) {\r\n visibleOpacity = 1;\r\n }\r\n }\r\n }\r\n if (visibleParts < 0) {\r\n visibleParts = 0;\r\n visibleOpacity = 1;\r\n }\r\n for (var i = 0; i < partsGroup.length; i++) {\r\n var partsIndex = partsGroup[i].partsIndex;\r\n if (partsIndex < 0) continue; if (visibleParts == i) {\r\n model.setPartsOpacity(partsIndex, visibleOpacity);\r\n }\r\n else {\r\n var opacity = model.getPartsOpacity(partsIndex);\r\n var a1;\r\n if (visibleOpacity < phi) {\r\n a1 = visibleOpacity * (phi - 1) / phi + 1;\r\n }\r\n else {\r\n a1 = (1 - visibleOpacity) * phi / (1 - phi);\r\n }\r\n var backOp = (1 - a1) * (1 - visibleOpacity);\r\n if (backOp > maxBackOpacity) {\r\n a1 = 1 - maxBackOpacity / (1 - visibleOpacity);\r\n }\r\n if (opacity > a1) {\r\n opacity = a1;\r\n }\r\n model.setPartsOpacity(partsIndex, opacity);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n// L2DPose # copyOpacityOtherParts()\r\n//============================================================\r\nL2DPose.prototype.copyOpacityOtherParts = function (model/*ALive2DModel*/, partsGroup/*L2DPartsParam[]*/) {\r\n for (var i_group = 0; i_group < partsGroup.length; i_group++) {\r\n var partsParam = partsGroup[i_group]; //L2DPartsParam\r\n if (partsParam.link == null) continue;\r\n if (partsParam.partsIndex < 0) continue;\r\n var opacity = model.getPartsOpacity(partsParam.partsIndex);\r\n for (var i_link = 0; i_link < partsParam.link.length; i_link++) {\r\n var linkParts = partsParam.link[i_link]; //L2DPartsParam\r\n if (linkParts.partsIndex < 0) continue;\r\n model.setPartsOpacity(linkParts.partsIndex, opacity);\r\n }\r\n }\r\n}\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DPartsParam \r\n//============================================================\r\n//============================================================\r\nfunction L2DPartsParam(id/*String*/) {\r\n this.paramIndex = -1;\r\n this.partsIndex = -1;\r\n this.link = null; // ArrayList\r\n this.id = id;\r\n}\r\n\r\n//============================================================\r\n// L2DPartsParam # initIndex()\r\n//============================================================\r\nL2DPartsParam.prototype.initIndex = function (model/*ALive2DModel*/) {\r\n this.paramIndex = model.getParamIndex(\"VISIBLE:\" + this.id);\r\n this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));\r\n model.setParamFloat(this.paramIndex, 1);\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DTargetPoint \r\n//============================================================\r\n//============================================================\r\nfunction L2DTargetPoint() {\r\n this.EPSILON = 0.01; // 変化の最小値(この値以下は無視される)\r\n this.faceTargetX = 0;\r\n this.faceTargetY = 0;\r\n this.faceX = 0;\r\n this.faceY = 0;\r\n this.faceVX = 0;\r\n this.faceVY = 0;\r\n this.lastTimeSec = 0;\r\n}\r\n\r\n//============================================================\r\nL2DTargetPoint.FRAME_RATE = 30;\r\n\r\n//============================================================\r\n// L2DTargetPoint # set()\r\n//============================================================\r\nL2DTargetPoint.prototype.setPoint = function (x/*float*/, y/*float*/) {\r\n this.faceTargetX = x;\r\n this.faceTargetY = y;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # getX()\r\n//============================================================\r\nL2DTargetPoint.prototype.getX = function () {\r\n return this.faceX;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # getY()\r\n//============================================================\r\nL2DTargetPoint.prototype.getY = function () {\r\n return this.faceY;\r\n}\r\n\r\n//============================================================\r\n// L2DTargetPoint # update()\r\n//============================================================\r\nL2DTargetPoint.prototype.update = function () {\r\n var TIME_TO_MAX_SPEED = 0.15;\r\n var FACE_PARAM_MAX_V = 40.0 / 7.5;\r\n var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;\r\n if (this.lastTimeSec == 0) {\r\n this.lastTimeSec = UtSystem.getUserTimeMSec();\r\n return;\r\n }\r\n var curTimeSec = UtSystem.getUserTimeMSec();\r\n var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;\r\n this.lastTimeSec = curTimeSec;\r\n var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;\r\n var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;\r\n var dx = (this.faceTargetX - this.faceX);\r\n var dy = (this.faceTargetY - this.faceY);\r\n // if(dx == 0 && dy == 0) return;\r\n if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;\r\n var d = Math.sqrt(dx * dx + dy * dy);\r\n var vx = MAX_V * dx / d;\r\n var vy = MAX_V * dy / d;\r\n var ax = vx - this.faceVX;\r\n var ay = vy - this.faceVY;\r\n var a = Math.sqrt(ax * ax + ay * ay);\r\n if (a < -MAX_A || a > MAX_A) {\r\n ax *= MAX_A / a;\r\n ay *= MAX_A / a;\r\n a = MAX_A;\r\n }\r\n this.faceVX += ax;\r\n this.faceVY += ay;\r\n {\r\n var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);\r\n var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);\r\n if (cur_v > max_v) {\r\n this.faceVX *= max_v / cur_v;\r\n this.faceVY *= max_v / cur_v;\r\n }\r\n }\r\n this.faceX += this.faceVX;\r\n this.faceY += this.faceVY;\r\n}\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class L2DViewMatrix extends L2DMatrix44\r\n//============================================================\r\n//============================================================\r\nfunction L2DViewMatrix() {\r\n L2DMatrix44.prototype.constructor.call(this);\r\n this.screenLeft = null;\r\n this.screenRight = null;\r\n this.screenTop = null;\r\n this.screenBottom = null;\r\n this.maxLeft = null;\r\n this.maxRight = null;\r\n this.maxTop = null;\r\n this.maxBottom = null;\r\n this.max = Number.MAX_VALUE;\r\n this.min = 0;\r\n}\r\n\r\nL2DViewMatrix.prototype = new L2DMatrix44(); //L2DViewMatrix extends L2DMatrix44\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxScale = function () {\r\n return this.max;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMinScale = function () {\r\n return this.min;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMaxScale = function (v/*float*/) {\r\n this.max = v;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMinScale = function (v/*float*/) {\r\n this.min = v;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # isMaxScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.isMaxScale = function () {\r\n return this.getScaleX() == this.max;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # isMinScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.isMinScale = function () {\r\n return this.getScaleX() == this.min;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # adjustTranslate()\r\n//============================================================\r\nL2DViewMatrix.prototype.adjustTranslate = function (shiftX/*float*/, shiftY/*float*/) {\r\n if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft)\r\n shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];\r\n if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight)\r\n shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];\r\n if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop)\r\n shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];\r\n if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom)\r\n shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];\r\n\r\n var tr1 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n shiftX, shiftY, 0, 1];\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # adjustScale()\r\n//============================================================\r\nL2DViewMatrix.prototype.adjustScale = function (cx/*float*/, cy/*float*/, scale/*float*/) {\r\n var targetScale = scale * this.tr[0];\r\n if (targetScale < this.min) {\r\n if (this.tr[0] > 0) scale = this.min / this.tr[0];\r\n }\r\n else if (targetScale > this.max) {\r\n if (this.tr[0] > 0) scale = this.max / this.tr[0];\r\n }\r\n var tr1 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n cx, cy, 0, 1];\r\n var tr2 = [scale, 0, 0, 0,\r\n 0, scale, 0, 0,\r\n 0, 0, 1, 0,\r\n 0, 0, 0, 1];\r\n var tr3 = [1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n -cx, -cy, 0, 1];\r\n L2DMatrix44.mul(tr3, this.tr, this.tr);\r\n L2DMatrix44.mul(tr2, this.tr, this.tr);\r\n L2DMatrix44.mul(tr1, this.tr, this.tr);\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setScreenRect()\r\n//============================================================\r\nL2DViewMatrix.prototype.setScreenRect = function (left/*float*/, right/*float*/, bottom/*float*/, top/*float*/) {\r\n this.screenLeft = left;\r\n this.screenRight = right;\r\n this.screenTop = top;\r\n this.screenBottom = bottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # setMaxScreenRect()\r\n//============================================================\r\nL2DViewMatrix.prototype.setMaxScreenRect = function (left/*float*/, right/*float*/, bottom/*float*/, top/*float*/) {\r\n this.maxLeft = left;\r\n this.maxRight = right;\r\n this.maxTop = top;\r\n this.maxBottom = bottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenLeft()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenLeft = function () {\r\n return this.screenLeft;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenRight()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenRight = function () {\r\n return this.screenRight;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenBottom()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenBottom = function () {\r\n return this.screenBottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getScreenTop()\r\n//============================================================\r\nL2DViewMatrix.prototype.getScreenTop = function () {\r\n return this.screenTop;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxLeft()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxLeft = function () {\r\n return this.maxLeft;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxRight()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxRight = function () {\r\n return this.maxRight;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxBottom()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxBottom = function () {\r\n return this.maxBottom;\r\n}\r\n\r\n//============================================================\r\n// L2DViewMatrix # getMaxTop()\r\n//============================================================\r\nL2DViewMatrix.prototype.getMaxTop = function () {\r\n return this.maxTop;\r\n}\r\n\r\n/**\r\n *\r\n * You can modify and use this source freely\r\n * only for the development of application related Live2D.\r\n *\r\n * (c) Live2D Inc. All rights reserved.\r\n */\r\n\r\n//============================================================\r\n//============================================================\r\n// class Live2DFramework \r\n//============================================================\r\n//============================================================\r\nfunction Live2DFramework() {\r\n}\r\n\r\n//============================================================\r\nLive2DFramework.platformManager = null;\r\n\r\n//============================================================\r\n// static Live2DFramework.getPlatformManager()\r\n//============================================================\r\nLive2DFramework.getPlatformManager = function () {\r\n return Live2DFramework.platformManager;\r\n}\r\n\r\n//============================================================\r\n// static Live2DFramework.setPlatformManager()\r\n//============================================================\r\nLive2DFramework.setPlatformManager = function (platformManager /*IPlatformManager*/) {\r\n Live2DFramework.platformManager = platformManager;\r\n}\r\n\r\nmodule.exports = {\r\n L2DTargetPoint: L2DTargetPoint,\r\n Live2DFramework: Live2DFramework,\r\n L2DViewMatrix: L2DViewMatrix,\r\n L2DPose: L2DPose,\r\n L2DPartsParam: L2DPartsParam,\r\n L2DPhysics: L2DPhysics,\r\n L2DMotionManager: L2DMotionManager,\r\n L2DModelMatrix: L2DModelMatrix,\r\n L2DMatrix44: L2DMatrix44,\r\n EYE_STATE: EYE_STATE,\r\n L2DEyeBlink: L2DEyeBlink,\r\n L2DExpressionParam: L2DExpressionParam,\r\n L2DExpressionMotion: L2DExpressionMotion,\r\n L2DBaseModel: L2DBaseModel\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/lib/Live2DFramework.js","var LAppDefine = {\n \n \n DEBUG_LOG : false,\n DEBUG_MOUSE_LOG : false, \n // DEBUG_DRAW_HIT_AREA : false, \n // DEBUG_DRAW_ALPHA_MODEL : false, \n \n \n \n \n VIEW_MAX_SCALE : 2,\n VIEW_MIN_SCALE : 0.8,\n\n VIEW_LOGICAL_LEFT : -1,\n VIEW_LOGICAL_RIGHT : 1,\n\n VIEW_LOGICAL_MAX_LEFT : -2,\n VIEW_LOGICAL_MAX_RIGHT : 2,\n VIEW_LOGICAL_MAX_BOTTOM : -2,\n VIEW_LOGICAL_MAX_TOP : 2,\n \n \n PRIORITY_NONE : 0,\n PRIORITY_IDLE : 1,\n PRIORITY_NORMAL : 2,\n PRIORITY_FORCE : 3,\n\n MOTION_GROUP_IDLE : \"idle\", \n MOTION_GROUP_TAP_BODY : \"tap_body\", \n MOTION_GROUP_FLICK_HEAD : \"flick_head\", \n MOTION_GROUP_PINCH_IN : \"pinch_in\", \n MOTION_GROUP_PINCH_OUT : \"pinch_out\", \n MOTION_GROUP_SHAKE : \"shake\", \n\n \n HIT_AREA_HEAD : \"head\",\n HIT_AREA_BODY : \"body\"\n \n};\n\nmodule.exports = LAppDefine;\n\n\n// WEBPACK FOOTER //\n// ./src/LAppDefine.js","/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\n/**\n * EYHN 修改\n * \n * Copyright © 2016 - 2017 EYHN\n */\n\nfunction MatrixStack() {}\n\n\nMatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n\nMatrixStack.depth = 0;\n\n\nMatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n\nMatrixStack.tmp = new Array(16);\n\n\n\nMatrixStack.reset = function()\n{\n this.depth = 0;\n}\n\n\n\nMatrixStack.loadIdentity = function()\n{\n for (var i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = (i % 5 == 0) ? 1 : 0;\n }\n}\n\n\n\nMatrixStack.push = function()\n{ \n var offset = this.depth * 16;\n var nextOffset = (this.depth + 1) * 16;\n \n if (this.matrixStack.length < nextOffset + 16)\n {\n this.matrixStack.length = nextOffset + 16;\n }\n\n for (var i = 0; i < 16; i++)\n {\n this.matrixStack[nextOffset + i] = this.currentMatrix[i];\n }\n\n this.depth++;\n}\n\n\n\nMatrixStack.pop = function()\n{\n this.depth--;\n if (this.depth < 0)\n {\n myError(\"Invalid matrix stack.\");\n this.depth = 0;\n }\n\n var offset = this.depth * 16;\n for (var i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = this.matrixStack[offset + i];\n }\n}\n\n\n\nMatrixStack.getMatrix = function()\n{\n return this.currentMatrix;\n}\n\n\n\nMatrixStack.multMatrix = function(matNew)\n{\n var i, j, k;\n\n for (i = 0; i < 16; i++)\n {\n this.tmp[i] = 0;\n }\n\n for (i = 0; i < 4; i++)\n {\n for (j = 0; j < 4; j++)\n {\n for (k = 0; k < 4; k++)\n {\n this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4];\n }\n }\n }\n for (i = 0; i < 16; i++)\n {\n this.currentMatrix[i] = this.tmp[i];\n }\n}\n\nmodule.exports = MatrixStack;\n\n\n// WEBPACK FOOTER //\n// ./src/lib/MatrixStack.js","\r\nvar context = undefined;\r\n\r\nexport function setContext(webglContext) {\r\n context = webglContext;\r\n}\r\n\r\nexport function getContext() {\r\n return context;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/webglcontext.js","import \"./lib/live2d.min\";\n\nimport { L2DTargetPoint, L2DViewMatrix, L2DMatrix44 } from \"./lib/Live2DFramework\";\n\nimport LAppLive2DManager from \"./LAppLive2DManager\"\n\nimport LAppDefine from \"./LAppDefine\"\n\nimport MatrixStack from \"./lib/MatrixStack\"\n\nimport {setContext} from \"./webglcontext\"\n\n// window.onerror = function (msg, url, line, col, error) {\n// let errmsg = \"file:\" + url + \"
line:\" + line + \" \" + msg;\n// console.error(errmsg);\n// }\n\nconst platform = window.navigator.platform.toLowerCase();\n\nconst live2DMgr = new LAppLive2DManager();\n\nlet isDrawStart = false;\n\nlet gl = null;\n\nlet canvas = null;\n\nlet dragMgr = null;\n\nlet viewMatrix = null;\n\nlet projMatrix = null;\n\nlet deviceToScreen = null;\n\nlet drag = false;\n\nlet oldLen = 0;\n\nlet lastMouseX = 0;\n\nlet lastMouseY = 0;\n\nlet isModelShown = 0;\n\nlet modelurl = \"\";\n\nlet head_pos = 0.5;\n\nfunction initL2dCanvas(canvasId) {\n canvas = document.getElementById(canvasId);\n if (canvas.addEventListener) {\n //canvas.addEventListener(\"mousewheel\", mouseEvent);\n window.addEventListener(\"click\", mouseEvent);\n window.addEventListener(\"mousedown\", mouseEvent);\n window.addEventListener(\"mousemove\", mouseEvent);\n window.addEventListener(\"mouseup\", mouseEvent);\n document.addEventListener(\"mouseleave\", mouseEvent);\n //canvas.addEventListener(\"contextmenu\", mouseEvent);\n window.addEventListener(\"touchstart\", touchEvent);\n window.addEventListener(\"touchend\", touchEvent);\n window.addEventListener(\"touchmove\", touchEvent);\n }\n}\n\nfunction init(modelurl) {\n let width = canvas.width;\n let height = canvas.height;\n\n dragMgr = new L2DTargetPoint();\n\n let ratio = height / width;\n let left = LAppDefine.VIEW_LOGICAL_LEFT;\n let right = LAppDefine.VIEW_LOGICAL_RIGHT;\n let bottom = -ratio;\n let top = ratio;\n\n viewMatrix = new L2DViewMatrix();\n\n\n viewMatrix.setScreenRect(left, right, bottom, top);\n\n viewMatrix.setMaxScreenRect(LAppDefine.VIEW_LOGICAL_MAX_LEFT,\n LAppDefine.VIEW_LOGICAL_MAX_RIGHT,\n LAppDefine.VIEW_LOGICAL_MAX_BOTTOM,\n LAppDefine.VIEW_LOGICAL_MAX_TOP);\n\n viewMatrix.setMaxScale(LAppDefine.VIEW_MAX_SCALE);\n viewMatrix.setMinScale(LAppDefine.VIEW_MIN_SCALE);\n\n projMatrix = new L2DMatrix44();\n projMatrix.multScale(1, (width / height));\n\n deviceToScreen = new L2DMatrix44();\n deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);\n deviceToScreen.multScale(2 / width, -2 / width);\n\n gl = getWebGLContext();\n setContext(gl);\n if (!gl) {\n console.error(\"Failed to create WebGL context.\");\n return;\n }\n window.Live2D.setGL(gl);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n changeModel(modelurl);\n startDraw();\n}\n\nfunction startDraw() {\n if (!isDrawStart) {\n isDrawStart = true;\n (function tick() {\n draw();\n let requestAnimationFrame =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.msRequestAnimationFrame;\n\n requestAnimationFrame(tick, canvas);\n })();\n }\n}\n\nfunction draw()\n{\n MatrixStack.reset();\n MatrixStack.loadIdentity();\n dragMgr.update(); \n live2DMgr.setDrag(dragMgr.getX(), dragMgr.getY());\n \n gl.clear(gl.COLOR_BUFFER_BIT);\n \n MatrixStack.multMatrix(projMatrix.getArray());\n MatrixStack.multMatrix(viewMatrix.getArray());\n MatrixStack.push();\n \n for (let i = 0; i < live2DMgr.numModels(); i++)\n {\n let model = live2DMgr.getModel(i);\n\n if(model == null) return;\n \n if (model.initialized && !model.updating)\n {\n model.update();\n model.draw(gl);\n }\n }\n MatrixStack.pop();\n}\n\nfunction changeModel(modelurl)\n{\n live2DMgr.reloadFlg = true;\n live2DMgr.count++;\n live2DMgr.changeModel(gl,modelurl);\n}\n\nfunction modelScaling(scale)\n{\n let isMaxScale = viewMatrix.isMaxScale();\n let isMinScale = viewMatrix.isMinScale();\n \n viewMatrix.adjustScale(0, 0, scale);\n\n if (!isMaxScale)\n {\n if (viewMatrix.isMaxScale())\n {\n live2DMgr.maxScaleEvent();\n }\n }\n \n if (!isMinScale)\n {\n if (viewMatrix.isMinScale())\n {\n live2DMgr.minScaleEvent();\n }\n }\n}\n\nfunction transformRange(center, transform, range)\n{\n let a = {\n x: transform.x - center.x,\n y: transform.y - center.y\n }\n let r = Math.sqrt(Math.pow(a.x,2) + Math.pow(a.y,2));\n if (r > range) {\n a = {\n x: a.x / r * range + center.x,\n y: a.y / r * range + center.y\n };\n return a;\n } else {\n return transform;\n }\n}\n\nfunction dot(A,B)\n{\n return A.x * B.x + A.y * B.y;\n}\n\nfunction normalize(x,y)\n{\n let length = Math.sqrt(x * x + y * y)\n return {\n x: x / length,\n y: y / length\n }\n}\n\nfunction transformRect(center, transform, rect)\n{\n if (transform.x < rect.left + rect.width && transform.y < rect.top + rect.height &&\n transform.x > rect.left && transform.y > rect.top) return transform;\n let Len_X = center.x - transform.x;\n let Len_Y = center.y - transform.y;\n\n function angle(Len_X, Len_Y)\n {\n return Math.acos(dot({\n x: 0,\n y: 1\n }, normalize(Len_X, Len_Y))) * 180 / Math.PI\n }\n\n let angleTarget = angle(Len_X, Len_Y);\n if (transform.x < center.x) angleTarget = 360 - angleTarget;\n let angleLeftTop = 360 - angle(rect.left - center.x, (rect.top - center.y) * -1);\n let angleLeftBottom = 360 - angle(rect.left - center.x, (rect.top + rect.height - center.y) * -1);\n let angleRightTop = angle(rect.left + rect.width - center.x, (rect.top - center.y) * -1);\n let angleRightBottom = angle(rect.left + rect.width - center.x, (rect.top + rect.height - center.y) * -1);\n let scale = Len_Y / Len_X;\n let res = {};\n\n if (angleTarget < angleRightTop) {\n let y3 = rect.top - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if(angleTarget < angleRightBottom) {\n let x3 = rect.left + rect.width - center.x;\n let y3 = x3 * scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if (angleTarget < angleLeftBottom) {\n let y3 = rect.top + rect.height - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n } else if (angleTarget < angleLeftTop) {\n let x3 = center.x - rect.left;\n let y3 = x3 * scale;\n res = {\n y: center.y - y3,\n x: center.x - x3\n }\n } else {\n let y3 = rect.top - center.y;\n let x3 = y3 / scale;\n res = {\n y: center.y + y3,\n x: center.x + x3\n }\n }\n\n return res;\n}\n\nfunction modelTurnHead(event)\n{\n drag = true;\n \n let rect = canvas.getBoundingClientRect();\n \n let sx = transformScreenX(event.clientX - rect.left);\n let sy = transformScreenY(event.clientY - rect.top);\n let target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect)\n let vx = transformViewX(target.x - rect.left);\n let vy = transformViewY(target.y - rect.top);\n\n if (LAppDefine.DEBUG_MOUSE_LOG)\n console.log(\"onMouseDown device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n lastMouseX = sx;\n lastMouseY = sy;\n\n dragMgr.setPoint(vx, vy); \n \n live2DMgr.tapEvent(vx, vy);\n}\n\nfunction followPointer(event)\n{ \n let rect = canvas.getBoundingClientRect();\n \n let sx = transformScreenX(event.clientX - rect.left);\n let sy = transformScreenY(event.clientY - rect.top);\n let target = transformRect({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height * head_pos\n }, {\n x: event.clientX,\n y: event.clientY\n }, rect)\n let vx = transformViewX(target.x - rect.left);\n let vy = transformViewY(target.y - rect.top);\n\n if (LAppDefine.DEBUG_MOUSE_LOG)\n console.log(\"onMouseMove device( x:\" + event.clientX + \" y:\" + event.clientY + \" ) view( x:\" + vx + \" y:\" + vy + \")\");\n\n if (drag)\n {\n lastMouseX = sx;\n lastMouseY = sy;\n dragMgr.setPoint(vx, vy); \n }\n}\n\nfunction lookFront()\n{ \n if (drag)\n {\n drag = false;\n }\n dragMgr.setPoint(0, 0);\n}\n\nfunction mouseEvent(e)\n{\n //e.preventDefault();\n if (e.type == \"mousewheel\") {\n // if (e.clientX < 0 || canvas.clientWidth < e.clientX || \n // e.clientY < 0 || canvas.clientHeight < e.clientY)\n // {\n // return;\n // }\n // if (e.wheelDelta > 0) modelScaling(1.1); \n // else modelScaling(0.9); \n } else if (e.type == \"mousedown\") {\n if(\"button\" in e && e.button != 0) return;\n // modelTurnHead(e);\n } else if (e.type == \"mousemove\") {\n modelTurnHead(e);\n } else if (e.type == \"mouseup\") {\n if(\"button\" in e && e.button != 0) return;\n // lookFront();\n } else if (e.type == \"mouseleave\") {\n lookFront();\n }\n}\n\nfunction touchEvent(e)\n{\n var touch = e.touches[0];\n if (e.type == \"touchstart\") {\n if (e.touches.length == 1) modelTurnHead(touch);\n // onClick(touch);\n } else if (e.type == \"touchmove\") {\n followPointer(touch);\n } else if (e.type == \"touchend\") {\n lookFront();\n }\n}\n\nfunction transformViewX(deviceX)\n{\n var screenX = deviceToScreen.transformX(deviceX); \n return viewMatrix.invertTransformX(screenX); \n}\n\n\nfunction transformViewY(deviceY)\n{\n var screenY = deviceToScreen.transformY(deviceY); \n return viewMatrix.invertTransformY(screenY); \n}\n\n\nfunction transformScreenX(deviceX)\n{\n return deviceToScreen.transformX(deviceX);\n}\n\n\nfunction transformScreenY(deviceY)\n{\n return deviceToScreen.transformY(deviceY);\n}\n\nfunction getWebGLContext()\n{\n var NAMES = [ \"webgl\" , \"experimental-webgl\" , \"webkit-3d\" , \"moz-webgl\"];\n for( var i = 0; i < NAMES.length; i++ ){\n try{\n var ctx = canvas.getContext(NAMES[i], {premultipliedAlpha : true});\n if(ctx) return ctx;\n }\n catch(e){}\n }\n return null;\n};\n\nfunction loadlive2d(id,modelurl,headPos) {\n head_pos = typeof headPos === 'undefined' ? 0.5 : headPos;\n initL2dCanvas(id);\n init(modelurl);\n}\n\nwindow.loadlive2d = loadlive2d;\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import { Live2DFramework } from \"./lib/Live2DFramework.js\"\nimport PlatformManager from \"./PlatformManager\"\nimport LAppModel from \"./LAppModel\"\nimport LAppDefine from \"./LAppDefine\"\n\nexport default function LAppLive2DManager() {\n // console.log(\"--> LAppLive2DManager()\");\n\n\n this.models = [];\n\n\n this.count = -1;\n this.reloadFlg = false;\n\n Live2D.init();\n Live2DFramework.setPlatformManager(new PlatformManager);\n\n}\n\nLAppLive2DManager.prototype.createModel = function () {\n\n\n var model = new LAppModel();\n this.models.push(model);\n\n return model;\n}\n\n\nLAppLive2DManager.prototype.changeModel = function (gl, modelurl) {\n // console.log(\"--> LAppLive2DManager.update(gl)\");\n\n if (this.reloadFlg) {\n\n this.reloadFlg = false;\n\n var thisRef = this;\n this.releaseModel(0, gl);\n this.createModel();\n this.models[0].load(gl, modelurl);\n }\n};\n\n\nLAppLive2DManager.prototype.getModel = function (no) {\n // console.log(\"--> LAppLive2DManager.getModel(\" + no + \")\");\n\n if (no >= this.models.length) return null;\n\n return this.models[no];\n};\n\n\n\nLAppLive2DManager.prototype.releaseModel = function (no, gl) {\n // console.log(\"--> LAppLive2DManager.releaseModel(\" + no + \")\");\n\n if (this.models.length <= no) return;\n\n this.models[no].release(gl);\n\n delete this.models[no];\n this.models.splice(no, 1);\n};\n\n\n\nLAppLive2DManager.prototype.numModels = function () {\n return this.models.length;\n};\n\n\n\nLAppLive2DManager.prototype.setDrag = function (x, y) {\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].setDrag(x, y);\n }\n}\n\n\n\nLAppLive2DManager.prototype.maxScaleEvent = function () {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Max scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_IN,\n LAppDefine.PRIORITY_NORMAL);\n }\n}\n\n\n\nLAppLive2DManager.prototype.minScaleEvent = function () {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Min scale event.\");\n for (var i = 0; i < this.models.length; i++) {\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_OUT,\n LAppDefine.PRIORITY_NORMAL);\n }\n}\n\n\n\nLAppLive2DManager.prototype.tapEvent = function (x, y) {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"tapEvent view x:\" + x + \" y:\" + y);\n\n for (var i = 0; i < this.models.length; i++) {\n\n if (this.models[i].hitTest(LAppDefine.HIT_AREA_HEAD, x, y)) {\n\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Tap face.\");\n\n this.models[i].setRandomExpression();\n }\n else if (this.models[i].hitTest(LAppDefine.HIT_AREA_BODY, x, y)) {\n\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Tap body.\" + \" models[\" + i + \"]\");\n\n this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_TAP_BODY,\n LAppDefine.PRIORITY_NORMAL);\n }\n }\n\n return true;\n};\n\n\n// WEBPACK FOOTER //\n// ./src/LAppLive2DManager.js","import {L2DBaseModel, L2DEyeBlink} from \"./lib/Live2DFramework\"\nimport ModelSettingJson from \"./lib/ModelSettingJson\"\nimport LAppDefine from \"./LAppDefine\"\nimport MatrixStack from \"./lib/MatrixStack\"\n\n//============================================================\n//============================================================\n// class LAppModel extends L2DBaseModel \n//============================================================\n//============================================================\nexport default function LAppModel()\n{\n //L2DBaseModel.apply(this, arguments);\n L2DBaseModel.prototype.constructor.call(this);\n \n this.modelHomeDir = \"\";\n this.modelSetting = null;\n this.tmpMatrix = [];\n}\n\nLAppModel.prototype = new L2DBaseModel();\n\n\nLAppModel.prototype.load = function(gl, modelSettingPath, callback)\n{\n this.setUpdating(true);\n this.setInitialized(false);\n\n this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf(\"/\") + 1); \n\n this.modelSetting = new ModelSettingJson();\n \n var thisRef = this;\n \n this.modelSetting.loadModelSetting(modelSettingPath, function(){\n \n var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();\n thisRef.loadModelData(path, function(model){\n \n for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++)\n {\n \n var texPaths = thisRef.modelHomeDir + \n thisRef.modelSetting.getTextureFile(i);\n \n thisRef.loadTexture(i, texPaths, function() {\n \n if( thisRef.isTexLoaded ) {\n \n if (thisRef.modelSetting.getExpressionNum() > 0)\n {\n \n thisRef.expressions = {};\n \n for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++)\n {\n var expName = thisRef.modelSetting.getExpressionName(j);\n var expFilePath = thisRef.modelHomeDir + \n thisRef.modelSetting.getExpressionFile(j);\n \n thisRef.loadExpression(expName, expFilePath);\n }\n }\n else\n {\n thisRef.expressionManager = null;\n thisRef.expressions = {};\n }\n \n \n \n if (thisRef.eyeBlink == null)\n {\n thisRef.eyeBlink = new L2DEyeBlink();\n }\n \n \n if (thisRef.modelSetting.getPhysicsFile() != null)\n {\n thisRef.loadPhysics(thisRef.modelHomeDir + \n thisRef.modelSetting.getPhysicsFile());\n }\n else\n {\n thisRef.physics = null;\n }\n \n \n \n if (thisRef.modelSetting.getPoseFile() != null)\n {\n thisRef.loadPose(\n thisRef.modelHomeDir +\n thisRef.modelSetting.getPoseFile(),\n function() {\n thisRef.pose.updateParam(thisRef.live2DModel);\n }\n );\n }\n else\n {\n thisRef.pose = null;\n }\n \n \n \n if (thisRef.modelSetting.getLayout() != null)\n {\n var layout = thisRef.modelSetting.getLayout();\n if (layout[\"width\"] != null)\n thisRef.modelMatrix.setWidth(layout[\"width\"]);\n if (layout[\"height\"] != null)\n thisRef.modelMatrix.setHeight(layout[\"height\"]);\n\n if (layout[\"x\"] != null)\n thisRef.modelMatrix.setX(layout[\"x\"]);\n if (layout[\"y\"] != null)\n thisRef.modelMatrix.setY(layout[\"y\"]);\n if (layout[\"center_x\"] != null)\n thisRef.modelMatrix.centerX(layout[\"center_x\"]);\n if (layout[\"center_y\"] != null)\n thisRef.modelMatrix.centerY(layout[\"center_y\"]);\n if (layout[\"top\"] != null)\n thisRef.modelMatrix.top(layout[\"top\"]);\n if (layout[\"bottom\"] != null)\n thisRef.modelMatrix.bottom(layout[\"bottom\"]);\n if (layout[\"left\"] != null)\n thisRef.modelMatrix.left(layout[\"left\"]);\n if (layout[\"right\"] != null)\n thisRef.modelMatrix.right(layout[\"right\"]);\n }\n \n for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++)\n {\n \n thisRef.live2DModel.setParamFloat(\n thisRef.modelSetting.getInitParamID(j),\n thisRef.modelSetting.getInitParamValue(j)\n );\n }\n\n for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++)\n {\n \n thisRef.live2DModel.setPartsOpacity(\n thisRef.modelSetting.getInitPartsVisibleID(j),\n thisRef.modelSetting.getInitPartsVisibleValue(j)\n );\n }\n \n \n \n thisRef.live2DModel.saveParam();\n // thisRef.live2DModel.setGL(gl);\n \n \n thisRef.preloadMotionGroup(LAppDefine.MOTION_GROUP_IDLE);\n thisRef.mainMotionManager.stopAllMotions();\n\n thisRef.setUpdating(false); \n thisRef.setInitialized(true); \n\n if (typeof callback == \"function\") callback();\n \n }\n });\n }\n });\n });\n};\n\n\n\nLAppModel.prototype.release = function(gl)\n{\n // this.live2DModel.deleteTextures();\n var pm = Live2DFramework.getPlatformManager();\n\n gl.deleteTexture(pm.texture);\n}\n\n\n\nLAppModel.prototype.preloadMotionGroup = function(name)\n{\n var thisRef = this;\n \n for (var i = 0; i < this.modelSetting.getMotionNum(name); i++)\n {\n var file = this.modelSetting.getMotionFile(name, i);\n this.loadMotion(file, this.modelHomeDir + file, function(motion) {\n motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));\n motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i));\n });\n \n }\n}\n\n\nLAppModel.prototype.update = function()\n{\n // console.log(\"--> LAppModel.update()\");\n\n if(this.live2DModel == null) \n {\n if (LAppDefine.DEBUG_LOG) console.error(\"Failed to update.\");\n \n return;\n }\n \n var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;\n var timeSec = timeMSec / 1000.0;\n var t = timeSec * 2 * Math.PI; \n \n \n if (this.mainMotionManager.isFinished())\n {\n \n this.startRandomMotion(LAppDefine.MOTION_GROUP_IDLE, LAppDefine.PRIORITY_IDLE);\n }\n \n //-----------------------------------------------------------------\t\t\n \n \n this.live2DModel.loadParam();\n \n \n \n var update = this.mainMotionManager.updateParam(this.live2DModel); \n if (!update) {\n \n if(this.eyeBlink != null) {\n this.eyeBlink.updateParam(this.live2DModel);\n }\n }\n\n \n this.live2DModel.saveParam();\n \n //-----------------------------------------------------------------\t\t\n \n \n if (this.expressionManager != null && \n this.expressions != null && \n !this.expressionManager.isFinished())\n {\n this.expressionManager.updateParam(this.live2DModel); \n }\n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", this.dragX * 30, 1); \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", this.dragY * 30, 1);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", (this.dragX * this.dragY) * -30, 1);\n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", this.dragX*10, 1); \n\n \n \n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_X\", this.dragX, 1); \n this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_Y\", this.dragY, 1);\n\n\n \n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\", \n Number((15 * Math.sin(t / 6.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\", \n Number((8 * Math.sin(t / 3.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\", \n Number((10 * Math.sin(t / 5.5345))), 0.5);\n this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\", \n Number((4 * Math.sin(t / 15.5345))), 0.5);\n this.live2DModel.setParamFloat(\"PARAM_BREATH\", \n Number((0.5 + 0.5 * Math.sin(t / 3.2345))), 1);\n \n \n if (this.physics != null)\n {\n this.physics.updateParam(this.live2DModel); \n }\n \n \n if (this.lipSync == null)\n {\n this.live2DModel.setParamFloat(\"PARAM_MOUTH_OPEN_Y\",\n this.lipSyncValue);\n }\n \n \n if( this.pose != null ) {\n this.pose.updateParam(this.live2DModel);\n }\n \n this.live2DModel.update();\n};\n\n\n\nLAppModel.prototype.setRandomExpression = function()\n{\n var tmp = [];\n for (var name in this.expressions)\n {\n tmp.push(name);\n }\n\n var no = parseInt(Math.random() * tmp.length);\n\n this.setExpression(tmp[no]);\n}\n\n\n\nLAppModel.prototype.startRandomMotion = function(name, priority)\n{\n var max = this.modelSetting.getMotionNum(name);\n var no = parseInt(Math.random() * max);\n this.startMotion(name, no, priority);\n}\n\n\n\nLAppModel.prototype.startMotion = function(name, no, priority)\n{\n // console.log(\"startMotion : \" + name + \" \" + no + \" \" + priority);\n \n var motionName = this.modelSetting.getMotionFile(name, no);\n \n if (motionName == null || motionName == \"\")\n {\n if (LAppDefine.DEBUG_LOG)\n console.error(\"Failed to motion.\");\n return;\n }\n\n if (priority == LAppDefine.PRIORITY_FORCE) \n {\n this.mainMotionManager.setReservePriority(priority);\n }\n else if (!this.mainMotionManager.reserveMotion(priority))\n {\n if (LAppDefine.DEBUG_LOG)\n console.log(\"Motion is running.\")\n return;\n }\n\n var thisRef = this;\n var motion;\n\n if (this.motions[name] == null) \n {\n this.loadMotion(null, this.modelHomeDir + motionName, function(mtn) {\n motion = mtn;\n \n \n thisRef.setFadeInFadeOut(name, no, priority, motion);\n \n });\n }\n else \n {\n motion = this.motions[name];\n \n \n thisRef.setFadeInFadeOut(name, no, priority, motion);\n }\n}\n\n\nLAppModel.prototype.setFadeInFadeOut = function(name, no, priority, motion)\n{\n var motionName = this.modelSetting.getMotionFile(name, no);\n \n motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));\n motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));\n \n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Start motion : \" + motionName);\n\n if (this.modelSetting.getMotionSound(name, no) == null)\n {\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n else\n {\n var soundName = this.modelSetting.getMotionSound(name, no);\n // var player = new Sound(this.modelHomeDir + soundName);\n \n var snd = document.createElement(\"audio\");\n snd.src = this.modelHomeDir + soundName;\n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Start sound : \" + soundName);\n \n snd.play();\n this.mainMotionManager.startMotionPrio(motion, priority);\n }\n}\n\n\n\nLAppModel.prototype.setExpression = function(name)\n{\n var motion = this.expressions[name];\n \n if (LAppDefine.DEBUG_LOG)\n console.log(\"Expression : \" + name);\n \n this.expressionManager.startMotion(motion, false);\n}\n\n\n\nLAppModel.prototype.draw = function(gl)\n{\n //console.log(\"--> LAppModel.draw()\");\n \n // if(this.live2DModel == null) return;\n \n \n MatrixStack.push();\n \n MatrixStack.multMatrix(this.modelMatrix.getArray());\n \n this.tmpMatrix = MatrixStack.getMatrix()\n this.live2DModel.setMatrix(this.tmpMatrix);\n this.live2DModel.draw();\n \n MatrixStack.pop();\n \n};\n \n\n\nLAppModel.prototype.hitTest = function(id, testX, testY)\n{\n var len = this.modelSetting.getHitAreaNum();\n for (var i = 0; i < len; i++)\n { \n if (id == this.modelSetting.getHitAreaName(i))\n {\n var drawID = this.modelSetting.getHitAreaID(i);\n \n return this.hitTestSimple(drawID, testX, testY);\n }\n }\n \n return false; \n}\n\n\n// WEBPACK FOOTER //\n// ./src/LAppModel.js","/**\n *\n * You can modify and use this source freely\n * only for the development of application related Live2D.\n *\n * (c) Live2D Inc. All rights reserved.\n */\nimport {getContext} from \"./webglcontext\"\n\n//============================================================\n//============================================================\n// class PlatformManager extend IPlatformManager\n//============================================================\n//============================================================\nexport default function PlatformManager()\n{\n\n}\n\n//============================================================\n// PlatformManager # loadBytes()\n//============================================================\nPlatformManager.prototype.loadBytes = function(path/*String*/, callback)\n{\n var request = new XMLHttpRequest();\n request.open(\"GET\", path, true);\n request.responseType = \"arraybuffer\";\n request.onload = function(){\n switch(request.status){\n case 200:\n callback(request.response);\n break;\n default:\n console.error(\"Failed to load (\" + request.status + \") : \" + path);\n break;\n }\n }\n request.send(null);\n //return request;\n}\n\n//============================================================\n// PlatformManager # loadString()\n//============================================================\nPlatformManager.prototype.loadString = function(path/*String*/)\n{\n \n this.loadBytes(path, function(buf) { \n return buf;\n });\n \n}\n\n//============================================================\n// PlatformManager # loadLive2DModel()\n//============================================================\nPlatformManager.prototype.loadLive2DModel = function(path/*String*/, callback)\n{\n var model = null;\n \n // load moc\n this.loadBytes(path, function(buf){\n model = Live2DModelWebGL.loadModel(buf);\n callback(model);\n });\n\n}\n\n//============================================================\n// PlatformManager # loadTexture()\n//============================================================\nPlatformManager.prototype.loadTexture = function(model/*ALive2DModel*/, no/*int*/, path/*String*/, callback)\n{ \n // load textures\n var loadedImage = new Image();\n loadedImage.src = path;\n \n var thisRef = this;\n loadedImage.onload = function() {\n // create texture\n var gl = getContext();\n var texture = gl.createTexture();\t \n if (!texture){ console.error(\"Failed to generate gl texture name.\"); return -1; }\n\n if(model.isPremultipliedAlpha() == false){\n // 乗算済アルファテクスチャ以外の場合\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n }\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);\t\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, \n gl.UNSIGNED_BYTE, loadedImage);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n gl.generateMipmap(gl.TEXTURE_2D);\n\n\n \n model.setTexture(no, texture);\n \n // テクスチャオブジェクトを解放\n texture = null;\n \n if (typeof callback == \"function\") callback();\n };\n \n loadedImage.onerror = function() { \n console.error(\"Failed to load image : \" + path); \n }\n}\n\n\n//============================================================\n// PlatformManager # parseFromBytes(buf)\n\n//============================================================\nPlatformManager.prototype.jsonParseFromBytes = function(buf){\n \n var jsonStr;\n \n \n \n var bomCode = new Uint8Array(buf, 0, 3);\n if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3));\n } else {\n jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n \n var jsonObj = JSON.parse(jsonStr);\n \n return jsonObj;\n};\n\n\n//============================================================\n// PlatformManager # log()\n//============================================================\nPlatformManager.prototype.log = function(txt/*String*/)\n{\n //console.log(txt);\n}\n\nfunction getWebGLContext(canvas)\n{\n var NAMES = [ \"webgl\" , \"experimental-webgl\" , \"webkit-3d\" , \"moz-webgl\"];\n for( var i = 0; i < NAMES.length; i++ ){\n try{\n var ctx = canvas.getContext(NAMES[i], {premultipliedAlpha : true});\n if(ctx) return ctx;\n }\n catch(e){}\n }\n return null;\n};\n\n\n// WEBPACK FOOTER //\n// ./src/PlatformManager.js","import {Live2DFramework} from \"./Live2DFramework\"\n\nexport default function ModelSettingJson()\n{ \n this.NAME = \"name\";\n this.ID = \"id\";\n this.MODEL = \"model\";\n this.TEXTURES = \"textures\";\n this.HIT_AREAS = \"hit_areas\";\n this.PHYSICS = \"physics\";\n this.POSE = \"pose\";\n this.EXPRESSIONS = \"expressions\";\n this.MOTION_GROUPS = \"motions\";\n this.SOUND = \"sound\";\n this.FADE_IN = \"fade_in\";\n this.FADE_OUT = \"fade_out\";\n this.LAYOUT = \"layout\";\n this.INIT_PARAM = \"init_param\";\n this.INIT_PARTS_VISIBLE = \"init_parts_visible\";\n this.VALUE = \"val\";\n this.FILE = \"file\";\n\n this.json = {};\n}\n\n\nModelSettingJson.prototype.loadModelSetting = function(path, callback)\n{ \n var thisRef = this;\n var pm = Live2DFramework.getPlatformManager();\n pm.loadBytes(path, function(buf) {\n var str = String.fromCharCode.apply(null,new Uint8Array(buf));\n thisRef.json = JSON.parse(str);\n callback();\n });\n};\n\n\nModelSettingJson.prototype.getTextureFile = function(n)\n{ \n if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null)\n return null;\n \n return this.json[this.TEXTURES][n];\n}\n\n\nModelSettingJson.prototype.getModelFile = function()\n{ \n return this.json[this.MODEL];\n};\n\n\nModelSettingJson.prototype.getTextureNum = function()\n{ \n if (this.json[this.TEXTURES] == null) return 0;\n \n return this.json[this.TEXTURES].length;\n}\n\n\nModelSettingJson.prototype.getHitAreaNum = function()\n{\n if (this.json[this.HIT_AREAS] == null)\n return 0;\n\n return this.json[this.HIT_AREAS].length;\n}\n\n\nModelSettingJson.prototype.getHitAreaID = function(n)\n{\n if (this.json[this.HIT_AREAS] == null || \n this.json[this.HIT_AREAS][n] == null)\n return null;\n\n return this.json[this.HIT_AREAS][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getHitAreaName = function(n)\n{\n if (this.json[this.HIT_AREAS] == null || \n this.json[this.HIT_AREAS][n] == null)\n return null;\n\n return this.json[this.HIT_AREAS][n][this.NAME];\n}\n\n\nModelSettingJson.prototype.getPhysicsFile = function()\n{\n return this.json[this.PHYSICS];\n}\n\n\nModelSettingJson.prototype.getPoseFile = function()\n{\n return this.json[this.POSE];\n}\n\n\nModelSettingJson.prototype.getExpressionNum = function()\n{\n return (this.json[this.EXPRESSIONS] == null) ? 0 : this.json[this.EXPRESSIONS].length;\n}\n\n\nModelSettingJson.prototype.getExpressionFile = function(n)\n{\n if (this.json[this.EXPRESSIONS] == null)\n return null;\n return this.json[this.EXPRESSIONS][n][this.FILE];\n}\n\n\nModelSettingJson.prototype.getExpressionName = function(n)\n{\n if (this.json[this.EXPRESSIONS] == null)\n return null;\n return this.json[this.EXPRESSIONS][n][this.NAME];\n}\n\n\nModelSettingJson.prototype.getLayout = function()\n{\n return this.json[this.LAYOUT];\n}\n\n\nModelSettingJson.prototype.getInitParamNum = function()\n{\n return (this.json[this.INIT_PARAM] == null) ? 0 : this.json[this.INIT_PARAM].length;\n}\n\n\nModelSettingJson.prototype.getMotionNum = function(name)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null)\n return 0;\n \n return this.json[this.MOTION_GROUPS][name].length;\n}\n\n\nModelSettingJson.prototype.getMotionFile = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null)\n return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FILE];\n}\n\n\nModelSettingJson.prototype.getMotionSound = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null)\n return null;\n\n return this.json[this.MOTION_GROUPS][name][n][this.SOUND];\n}\n\n\nModelSettingJson.prototype.getMotionFadeIn = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null)\n return 1000;\n\n return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN];\n}\n\n\nModelSettingJson.prototype.getMotionFadeOut = function(name, n)\n{\n if (this.json[this.MOTION_GROUPS] == null || \n this.json[this.MOTION_GROUPS][name] == null || \n this.json[this.MOTION_GROUPS][name][n] == null || \n this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null)\n return 1000;\n \n return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT];\n}\n\n\nModelSettingJson.prototype.getInitParamID = function(n)\n{\n if (this.json[this.INIT_PARAM] == null || \n this.json[this.INIT_PARAM][n] == null)\n return null;\n \n return this.json[this.INIT_PARAM][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getInitParamValue = function(n)\n{\n if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null)\n return NaN;\n \n return this.json[this.INIT_PARAM][n][this.VALUE];\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleNum = function()\n{\n return (this.json[this.INIT_PARTS_VISIBLE] == null) ? 0 : this.json[this.INIT_PARTS_VISIBLE].length;\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleID = function(n)\n{\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null)\n return null;\n return this.json[this.INIT_PARTS_VISIBLE][n][this.ID];\n}\n\n\nModelSettingJson.prototype.getInitPartsVisibleValue = function(n)\n{\n if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null)\n return NaN;\n \n return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE];\n}\n\n\n// WEBPACK FOOTER //\n// ./src/lib/ModelSettingJson.js","\r\n(function(){var j=true;function aa(){if(j){return;}this._$MT=null;this._$5S=null;this._$NP=0;aa._$42++;this._$5S=new y(this);}aa._$0s=1;aa._$4s=2;aa._$42=0;aa._$62=function(aQ,aU){try{if(aU instanceof ArrayBuffer){aU=new DataView(aU);}if(!(aU instanceof DataView)){throw new J(\"_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer\");}var aS=new K(aU);var aM=aS._$ST();var aK=aS._$ST();var aJ=aS._$ST();var aN;if(aM==109&&aK==111&&aJ==99){aN=aS._$ST();}else{throw new J(\"_$gi _$C _$li , _$Q0 _$P0.\");}aS._$gr(aN);if(aN>ay._$T7){aQ._$NP|=aa._$4s;var aR=ay._$T7;var aI=\"_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : \"+aR+\" < _$f0 : \"+aN+\" )@_$SS#loadModel()\\n\";throw new J(aI);}var aL=aS._$nP();if(aN>=ay._$s7){var aH=aS._$9T();var aT=aS._$9T();if(aH!=-30584||aT!=-30584){aQ._$NP|=aa._$0s;throw new J(\"_$gi _$C _$li , _$0 _$6 _$Ui.\");}}aQ._$KS(aL);var aP=aQ.getModelContext();aP.setDrawParam(aQ.getDrawParam());aP.init();}catch(aO){q._$Rb(aO);}};aa.prototype._$KS=function(aH){this._$MT=aH;};aa.prototype.getModelImpl=function(){if(this._$MT==null){this._$MT=new w();this._$MT._$zP();}return this._$MT;};aa.prototype.getCanvasWidth=function(){if(this._$MT==null){return 0;}return this._$MT.getCanvasWidth();};aa.prototype.getCanvasHeight=function(){if(this._$MT==null){return 0;}return this._$MT.getCanvasHeight();};aa.prototype.getParamFloat=function(aH){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}return this._$5S.getParamFloat(aH);};aa.prototype.setParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)*(1-aI)+aJ*aI);};aa.prototype.addToParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)+aJ*aI);};aa.prototype.multParamFloat=function(aH,aJ,aI){if(typeof aH!=\"number\"){aH=this._$5S.getParamIndex(z.getID(aH));}if(arguments.length<3){aI=1;}this._$5S.setParamFloat(aH,this._$5S.getParamFloat(aH)*(1+(aJ-1)*aI));};aa.prototype.getParamIndex=function(aH){return this._$5S.getParamIndex(z.getID(aH));};aa.prototype.loadParam=function(){this._$5S.loadParam();};aa.prototype.saveParam=function(){this._$5S.saveParam();};aa.prototype.init=function(){this._$5S.init();};aa.prototype.update=function(){this._$5S.update();};aa.prototype._$Rs=function(){q._$li(\"_$60 _$PT _$Rs()\");return -1;};aa.prototype._$Ds=function(aH){q._$li(\"_$60 _$PT _$SS#_$Ds() \\n\");};aa.prototype._$K2=function(){};aa.prototype.draw=function(){};aa.prototype.getModelContext=function(){return this._$5S;};aa.prototype._$s2=function(){return this._$NP;};aa.prototype._$P7=function(aK,aR,aH,a0){var aU=-1;var aY=0;var aM=this;var aJ=0.5;var aI=0.15;var aX=true;if(aH==0){for(var aV=0;aV1){aQ=1;}}else{aQ-=aW;if(aQ<0){aQ=0;}}aM.setPartsOpacity(aO,aQ);}else{for(var aV=0;aV=0){break;}aU=aV;var aO=aR[aV];aY=aM.getPartsOpacity(aO);aY+=aH/a0;if(aY>1){aY=1;}}}if(aU<0){console.log(\"No _$wi _$q0/ _$U default[%s]\",aK[0]);aU=0;aY=1;aM.loadParam();aM.setParamFloat(aK[aU],aY);aM.saveParam();}for(var aV=0;aVaI){aZ=1-aI/(1-aY);}}if(aL>aZ){aL=aZ;}aM.setPartsOpacity(aO,aL);}}}}};aa.prototype.setPartsOpacity=function(aI,aH){if(typeof aI!=\"number\"){aI=this._$5S.getPartsDataIndex(i.getID(aI));}this._$5S.setPartsOpacity(aI,aH);};aa.prototype.getPartsDataIndex=function(aH){if(!(aH instanceof i)){aH=i.getID(aH);}return this._$5S.getPartsDataIndex(aH);};aa.prototype.getPartsOpacity=function(aH){if(typeof aH!=\"number\"){aH=this._$5S.getPartsDataIndex(i.getID(aH));}if(aH<0){return 0;}return this._$5S.getPartsOpacity(aH);};aa.prototype.getDrawParam=function(){};aa.prototype.getDrawDataIndex=function(aH){return this._$5S.getDrawDataIndex(Z.getID(aH));};aa.prototype.getDrawData=function(aH){return this._$5S.getDrawData(aH);};aa.prototype.getTransformedPoints=function(aH){var aI=this._$5S._$C2(aH);if(aI instanceof ag){return(aI).getTransformedPoints();}return null;};aa.prototype.getIndexArray=function(aI){if(aI<0||aI>=this._$5S._$aS.length){return null;}var aH=this._$5S._$aS[aI];if(aH!=null&&aH.getType()==a._$wb){if(aH instanceof b){return aH.getIndexArray();}}return null;};function W(aJ){if(j){return;}this.clipContextList=new Array();this.glcontext=aJ.gl;this.dp_webgl=aJ;this.curFrameNo=0;this.firstError_clipInNotUpdate=true;this.colorBuffer=0;this.isInitGLFBFunc=false;this.tmpBoundsOnModel=new av();if(Q.glContext.length>Q.frameBuffers.length){this.curFrameNo=this.getMaskRenderTexture();}else{}this.tmpModelToViewMatrix=new ac();this.tmpMatrix2=new ac();this.tmpMatrixForMask=new ac();this.tmpMatrixForDraw=new ac();this.CHANNEL_COLORS=new Array();var aI=new o();aI=new o();aI.r=0;aI.g=0;aI.b=0;aI.a=1;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=1;aI.g=0;aI.b=0;aI.a=0;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=0;aI.g=1;aI.b=0;aI.a=0;this.CHANNEL_COLORS.push(aI);aI=new o();aI.r=0;aI.g=0;aI.b=1;aI.a=0;this.CHANNEL_COLORS.push(aI);for(var aH=0;aH=0;--aH){this.CHANNEL_COLORS.splice(aH,1);}this.CHANNEL_COLORS=[];}this.releaseShader();};W.prototype.releaseShader=function(){var aI=Q.frameBuffers.length;for(var aH=0;aH0){var aM=aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);var aW=new Array(4);aW[0]=0;aW[1]=0;aW[2]=aQ.gl.canvas.width;aW[3]=aQ.gl.canvas.height;aQ.gl.viewport(0,0,Q.clippingMaskBufferSize,Q.clippingMaskBufferSize);this.setupLayoutBounds(aK);aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER,Q.frameBuffers[this.curFrameNo].framebuffer);aQ.gl.clearColor(0,0,0,0);aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);for(var aO=0;aOa5?aU:a5;var aT=aJ;var aR=aJ;var aS=0;var aP=0;var aL=aV.clippedDrawContextList.length;for(var aM=0;aMaS){aS=a0;}if(aZ>aP){aP=aZ;}}}if(aT==aJ){aV.allClippedDrawRect.x=0;aV.allClippedDrawRect.y=0;aV.allClippedDrawRect.width=0;aV.allClippedDrawRect.height=0;aV.isUsing=false;}else{var aQ=aS-aT;var aY=aP-aR;aV.allClippedDrawRect.x=aT;aV.allClippedDrawRect.y=aR;aV.allClippedDrawRect.width=aQ;aV.allClippedDrawRect.height=aY;aV.isUsing=true;}};W.prototype.setupLayoutBounds=function(aQ){var aI=aQ/W.CHANNEL_COUNT;var aP=aQ%W.CHANNEL_COUNT;aI=~~aI;aP=~~aP;var aH=0;for(var aJ=0;aJ=1){return 1;}}var aS=aQ;var aI=aS*aS;var aH=aS*aI;var aT=aY*aH+aX*aI+aW*aS+aV;return aT;};ah.prototype._$a0=function(){};ah.prototype.setFadeIn=function(aH){this._$dP=aH;};ah.prototype.setFadeOut=function(aH){this._$eo=aH;};ah.prototype._$pT=function(aH){this._$V0=aH;};ah.prototype.getFadeOut=function(){return this._$eo;};ah.prototype._$4T=function(){return this._$eo;};ah.prototype._$mT=function(){return this._$V0;};ah.prototype.getDurationMSec=function(){return -1;};ah.prototype.getLoopDurationMSec=function(){return -1;};ah.prototype.updateParam=function(aJ,aN){if(!aN._$AT||aN._$9L){return;}var aL=P.getUserTimeMSec();if(aN._$z2<0){aN._$z2=aL;aN._$bs=aL;var aM=this.getDurationMSec();if(aN._$Do<0){aN._$Do=(aM<=0)?-1:aN._$z2+aM;}}var aI=this._$V0;var aH=(this._$dP==0)?1:A._$r2(((aL-aN._$bs)/(this._$dP)));var aK=(this._$eo==0||aN._$Do<0)?1:A._$r2(((aN._$Do-aL)/(this._$eo)));aI=aI*aH*aK;if(!((0<=aI&&aI<=1))){console.log(\"### assert!! ### \");}this.updateParamExe(aJ,aL,aI,aN);if(aN._$Do>0&&aN._$Do0){console.log(\"\\n\");}else{if(aH%8==0&&aH>0){console.log(\" \");}}console.log(\"%02X \",(aJ[aH]&255));}console.log(\"\\n\");};q._$nr=function(aL,aI,aK){console.log(\"%s\\n\",aL);var aH=aI.length;for(var aJ=0;aJ=0;--aJ){var aM=this._$lL[aJ];aM._$oP(aI,this);}this._$oo(aI,aK);this._$M2=this._$Yb();this._$9b=(this._$M2-this._$ks)/aK;this._$ks=this._$M2;}for(var aJ=this._$qP.length-1;aJ>=0;--aJ){var aH=this._$qP[aJ];aH._$YS(aI,this);}this._$iT=aL;};u.prototype._$oo=function(aN,aI){if(aI<0.033){aI=0.033;}var aU=1/aI;this.p1.vx=(this.p1.x-this.p1._$s0)*aU;this.p1.vy=(this.p1.y-this.p1._$70)*aU;this.p1.ax=(this.p1.vx-this.p1._$7L)*aU;this.p1.ay=(this.p1.vy-this.p1._$HL)*aU;this.p1.fx=this.p1.ax*this.p1._$p;this.p1.fy=this.p1.ay*this.p1._$p;this.p1._$xT();var aM=-(Math.atan2((this.p1.y-this.p2.y),this.p1.x-this.p2.x));var aL;var aV;var aR=Math.cos(aM);var aH=Math.sin(aM);var aW=9.8*this.p2._$p;var aQ=(this._$Db*aC._$bS);var aP=(aW*Math.cos(aM-aQ));aL=(aP*aH);aV=(aP*aR);var aK=(-this.p1.fx*aH*aH);var aT=(-this.p1.fy*aH*aR);var aJ=((-this.p2.vx*this._$L2));var aS=((-this.p2.vy*this._$L2));this.p2.fx=((aL+aK+aJ));this.p2.fy=((aV+aT+aS));this.p2.ax=this.p2.fx/this.p2._$p;this.p2.ay=this.p2.fy/this.p2._$p;this.p2.vx+=this.p2.ax*aI;this.p2.vy+=this.p2.ay*aI;this.p2.x+=this.p2.vx*aI;this.p2.y+=this.p2.vy*aI;var aO=(Math.sqrt((this.p1.x-this.p2.x)*(this.p1.x-this.p2.x)+(this.p1.y-this.p2.y)*(this.p1.y-this.p2.y)));this.p2.x=this.p1.x+this._$Fo*(this.p2.x-this.p1.x)/aO;this.p2.y=this.p1.y+this._$Fo*(this.p2.y-this.p1.y)/aO;this.p2.vx=(this.p2.x-this.p2._$s0)*aU;this.p2.vy=(this.p2.y-this.p2._$70)*aU;this.p2._$xT();};function N(){this._$p=1;this.x=0;this.y=0;this.vx=0;this.vy=0;this.ax=0;this.ay=0;this.fx=0;this.fy=0;this._$s0=0;this._$70=0;this._$7L=0;this._$HL=0;}N.prototype._$xT=function(){this._$s0=this.x;this._$70=this.y;this._$7L=this.vx;this._$HL=this.vy;};function at(aJ,aI,aH){this._$wL=null;this.scale=null;this._$V0=null;this._$wL=aJ;this.scale=aI;this._$V0=aH;}at.prototype._$oP=function(aI,aH){};function h(aJ,aK,aI,aH){at.prototype.constructor.call(this,aK,aI,aH);this._$tL=null;this._$tL=aJ;}h.prototype=new at();h.prototype._$oP=function(aJ,aH){var aK=this.scale*aJ.getParamFloat(this._$wL);var aL=aH.getPhysicsPoint1();switch(this._$tL){default:case u.Src.SRC_TO_X:aL.x=aL.x+(aK-aL.x)*this._$V0;break;case u.Src.SRC_TO_Y:aL.y=aL.y+(aK-aL.y)*this._$V0;break;case u.Src.SRC_TO_G_ANGLE:var aI=aH._$qr();aI=aI+(aK-aI)*this._$V0;aH._$pr(aI);break;}};function d(aJ,aI,aH){this._$wL=null;this.scale=null;this._$V0=null;this._$wL=aJ;this.scale=aI;this._$V0=aH;}d.prototype._$YS=function(aI,aH){};function aF(aI,aK,aJ,aH){d.prototype.constructor.call(this,aK,aJ,aH);this._$YP=null;this._$YP=aI;}aF.prototype=new d();aF.prototype._$YS=function(aI,aH){switch(this._$YP){default:case u.Target.TARGET_FROM_ANGLE:aI.setParamFloat(this._$wL,this.scale*aH._$5r(),this._$V0);break;case u.Target.TARGET_FROM_ANGLE_V:aI.setParamFloat(this._$wL,this.scale*aH._$Cs(),this._$V0);break;}};u.Src=function(){};u.Src.SRC_TO_X=\"SRC_TO_X\";u.Src.SRC_TO_Y=\"SRC_TO_Y\";u.Src.SRC_TO_G_ANGLE=\"SRC_TO_G_ANGLE\";u.Target=function(){};u.Target.TARGET_FROM_ANGLE=\"TARGET_FROM_ANGLE\";u.Target.TARGET_FROM_ANGLE_V=\"TARGET_FROM_ANGLE_V\";function X(){if(j){return;}this._$fL=0;this._$gL=0;this._$B0=1;this._$z0=1;this._$qT=0;this.reflectX=false;this.reflectY=false;}X.prototype.init=function(aH){this._$fL=aH._$fL;this._$gL=aH._$gL;this._$B0=aH._$B0;this._$z0=aH._$z0;this._$qT=aH._$qT;this.reflectX=aH.reflectX;this.reflectY=aH.reflectY;};X.prototype._$F0=function(aH){this._$fL=aH._$_T();this._$gL=aH._$_T();this._$B0=aH._$_T();this._$z0=aH._$_T();this._$qT=aH._$_T();if(aH.getFormatVersion()>=ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2){this.reflectX=aH._$po();this.reflectY=aH._$po();}};X.prototype._$e=function(){};var ad=function(){};ad._$ni=function(aL,aJ,aR,aQ,aK,aI,aH,aS,aN){var aM=(aH*aI-aS*aK);if(aM==0){return null;}else{var aO=((aL-aR)*aI-(aJ-aQ)*aK)/aM;var aP;if(aK!=0){aP=(aL-aR-aO*aH)/aK;}else{aP=(aJ-aQ-aO*aS)/aI;}if(isNaN(aP)){aP=(aL-aR-aO*aH)/aK;if(isNaN(aP)){aP=(aJ-aQ-aO*aS)/aI;}if(isNaN(aP)){console.log(\"a is NaN @UtVector#_$ni() \");console.log(\"v1x : \"+aK);console.log(\"v1x != 0 ? \"+(aK!=0));}}if(aN==null){return new Array(aP,aO);}else{aN[0]=aP;aN[1]=aO;return aN;}}};function av(){if(j){return;}this.x=null;this.y=null;this.width=null;this.height=null;}av.prototype._$8P=function(){return this.x+0.5*this.width;};av.prototype._$6P=function(){return this.y+0.5*this.height;};av.prototype._$EL=function(){return this.x+this.width;};av.prototype._$5T=function(){return this.y+this.height;};av.prototype._$jL=function(aI,aK,aJ,aH){this.x=aI;this.y=aK;this.width=aJ;this.height=aH;};av.prototype._$jL=function(aH){this.x=aH.x;this.y=aH.y;this.width=aH.width;this.height=aH.height;};av.prototype.contains=function(aH,aI){return this.x<=this.x&&this.y<=this.y&&(this.x<=this.x+this.width)&&(this.y<=this.y+this.height);};av.prototype.expand=function(aH,aI){this.x-=aH;this.y-=aI;this.width+=aH*2;this.height+=aI*2;};function aG(){}aG._$Z2=function(bb,bo,bp,a2){var a1=bo._$Q2(bb,bp);var a3=bb._$vs();var ba=bb._$Tr();bo._$zr(a3,ba,a1);if(a1<=0){return a2[a3[0]];}else{if(a1==1){var bj=a2[a3[0]];var bi=a2[a3[1]];var a9=ba[0];return(bj+(bi-bj)*a9)|0;}else{if(a1==2){var bj=a2[a3[0]];var bi=a2[a3[1]];var a0=a2[a3[2]];var aZ=a2[a3[3]];var a9=ba[0];var a8=ba[1];var br=(bj+(bi-bj)*a9)|0;var bq=(a0+(aZ-a0)*a9)|0;return(br+(bq-br)*a8)|0;}else{if(a1==3){var aP=a2[a3[0]];var aO=a2[a3[1]];var bn=a2[a3[2]];var bm=a2[a3[3]];var aK=a2[a3[4]];var aJ=a2[a3[5]];var bg=a2[a3[6]];var bf=a2[a3[7]];var a9=ba[0];var a8=ba[1];var a6=ba[2];var bj=(aP+(aO-aP)*a9)|0;var bi=(bn+(bm-bn)*a9)|0;var a0=(aK+(aJ-aK)*a9)|0;var aZ=(bg+(bf-bg)*a9)|0;var br=(bj+(bi-bj)*a8)|0;var bq=(a0+(aZ-a0)*a8)|0;return(br+(bq-br)*a6)|0;}else{if(a1==4){var aT=a2[a3[0]];var aS=a2[a3[1]];var bu=a2[a3[2]];var bt=a2[a3[3]];var aN=a2[a3[4]];var aM=a2[a3[5]];var bl=a2[a3[6]];var bk=a2[a3[7]];var be=a2[a3[8]];var bc=a2[a3[9]];var aX=a2[a3[10]];var aW=a2[a3[11]];var a7=a2[a3[12]];var a5=a2[a3[13]];var aR=a2[a3[14]];var aQ=a2[a3[15]];var a9=ba[0];var a8=ba[1];var a6=ba[2];var a4=ba[3];var aP=(aT+(aS-aT)*a9)|0;var aO=(bu+(bt-bu)*a9)|0;var bn=(aN+(aM-aN)*a9)|0;var bm=(bl+(bk-bl)*a9)|0;var aK=(be+(bc-be)*a9)|0;var aJ=(aX+(aW-aX)*a9)|0;var bg=(a7+(a5-a7)*a9)|0;var bf=(aR+(aQ-aR)*a9)|0;var bj=(aP+(aO-aP)*a8)|0;var bi=(bn+(bm-bn)*a8)|0;var a0=(aK+(aJ-aK)*a8)|0;var aZ=(bg+(bf-bg)*a8)|0;var br=(bj+(bi-bj)*a6)|0;var bq=(a0+(aZ-a0)*a6)|0;return(br+(bq-br)*a4)|0;}else{var aV=1<=ay._$T7){this.clipID=aH._$nP();this.clipIDList=this.convertClipIDForV2_11(this.clipID);}else{this.clipIDList=[];}this._$MS(this._$Lb);};ae.prototype.getClipIDList=function(){return this.clipIDList;};ae.prototype.init=function(aH){};ae.prototype._$Nr=function(aH,aI){aI._$IS[0]=false;aI._$Us=aG._$Z2(aH,this._$GS,aI._$IS,this._$Lb);if(Q._$Zs){}else{if(aI._$IS[0]){return;}}aI._$7s=aG._$br(aH,this._$GS,aI._$IS,this._$mS);};ae.prototype._$2b=function(aH,aI){};ae.prototype.getDrawDataID=function(){return this._$gP;};ae.prototype._$j2=function(aH){this._$gP=aH;};ae.prototype.getOpacity=function(aH,aI){return aI._$7s;};ae.prototype._$zS=function(aH,aI){return aI._$Us;};ae.prototype._$MS=function(aJ){for(var aI=aJ.length-1;aI>=0;--aI){var aH=aJ[aI];if(aHae._$R2){ae._$R2=aH;}}}};ae.prototype.getTargetBaseDataID=function(){return this._$dr;};ae.prototype._$gs=function(aH){this._$dr=aH;};ae.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};ae.prototype.preDraw=function(aJ,aH,aI){};ae.prototype.draw=function(aJ,aH,aI){};ae.prototype.getType=function(){};ae.prototype._$B2=function(aI,aH,aJ){};function ax(){if(j){return;}this._$Eb=ax._$ps;this._$lT=1;this._$C0=1;this._$tT=1;this._$WL=1;this.culling=false;this.matrix4x4=new Float32Array(16);this.premultipliedAlpha=false;this.anisotropy=0;this.clippingProcess=ax.CLIPPING_PROCESS_NONE;this.clipBufPre_clipContextMask=null;this.clipBufPre_clipContextDraw=null;this.CHANNEL_COLORS=new Array();}ax._$ps=32;ax.CLIPPING_PROCESS_NONE=0;ax.CLIPPING_PROCESS_OVERWRITE_ALPHA=1;ax.CLIPPING_PROCESS_MULTIPLY_ALPHA=2;ax.CLIPPING_PROCESS_DRAW=3;ax.CLIPPING_PROCESS_CLEAR_ALPHA=4;ax.prototype.setChannelFlagAsColor=function(aH,aI){this.CHANNEL_COLORS[aH]=aI;};ax.prototype.getChannelFlagAsColor=function(aH){return this.CHANNEL_COLORS[aH];};ax.prototype._$ZT=function(){};ax.prototype._$Uo=function(aM,aK,aJ,aL,aN,aI,aH){};ax.prototype._$Rs=function(){return -1;};ax.prototype._$Ds=function(aH){};ax.prototype.setBaseColor=function(aK,aJ,aI,aH){if(aK<0){aK=0;}else{if(aK>1){aK=1;}}if(aJ<0){aJ=0;}else{if(aJ>1){aJ=1;}}if(aI<0){aI=0;}else{if(aI>1){aI=1;}}if(aH<0){aH=0;}else{if(aH>1){aH=1;}}this._$lT=aK;this._$C0=aJ;this._$tT=aI;this._$WL=aH;};ax.prototype._$WP=function(aH){this.culling=aH;};ax.prototype.setMatrix=function(aH){for(var aI=0;aI<16;aI++){this.matrix4x4[aI]=aH[aI];}};ax.prototype._$IT=function(){return this.matrix4x4;};ax.prototype.setPremultipliedAlpha=function(aH){this.premultipliedAlpha=aH;};ax.prototype.isPremultipliedAlpha=function(){return this.premultipliedAlpha;};ax.prototype.setAnisotropy=function(aH){this.anisotropy=aH;};ax.prototype.getAnisotropy=function(){return this.anisotropy;};ax.prototype.getClippingProcess=function(){return this.clippingProcess;};ax.prototype.setClippingProcess=function(aH){this.clippingProcess=aH;};ax.prototype.setClipBufPre_clipContextForMask=function(aH){this.clipBufPre_clipContextMask=aH;};ax.prototype.getClipBufPre_clipContextMask=function(){return this.clipBufPre_clipContextMask;};ax.prototype.setClipBufPre_clipContextForDraw=function(aH){this.clipBufPre_clipContextDraw=aH;};ax.prototype.getClipBufPre_clipContextDraw=function(){return this.clipBufPre_clipContextDraw;};function o(){if(j){return;}this.a=1;this.r=1;this.g=1;this.b=1;this.scale=1;this._$ho=1;this.blendMode=Q.L2D_COLOR_BLEND_MODE_MULT;}function c(){if(j){return;}this._$kP=null;this._$dr=null;this._$Ai=true;this._$mS=null;}c._$ur=-2;c._$c2=1;c._$_b=2;c.prototype._$F0=function(aH){this._$kP=aH._$nP();this._$dr=aH._$nP();};c.prototype.readV2_opacity=function(aH){if(aH.getFormatVersion()>=ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2){this._$mS=aH._$Tb();}};c.prototype.init=function(aH){};c.prototype._$Nr=function(aI,aH){};c.prototype.interpolateOpacity=function(aJ,aK,aI,aH){if(this._$mS==null){aI.setInterpolatedOpacity(1);}else{aI.setInterpolatedOpacity(aG._$br(aJ,aK,aH,this._$mS));}};c.prototype._$2b=function(aI,aH){};c.prototype._$nb=function(aL,aK,aM,aH,aI,aJ,aN){};c.prototype.getType=function(){};c.prototype._$gs=function(aH){this._$dr=aH;};c.prototype._$a2=function(aH){this._$kP=aH;};c.prototype.getTargetBaseDataID=function(){return this._$dr;};c.prototype.getBaseDataID=function(){return this._$kP;};c.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};function P(){}P._$W2=0;P._$CS=P._$W2;P._$Mo=function(){return true;};P._$XP=function(aI){try{var aJ=getTimeMSec();while(getTimeMSec()-aJ=aJ.length){return false;}for(var aI=aL;aI=0;--aJ){var aI=this._$Ob[aJ].getParamIndex(aH);if(aI==aA._$ds){aI=aK.getParamIndex(this._$Ob[aJ].getParamID());}if(aK._$Xb(aI)){return true;}}return false;};g.prototype._$Q2=function(aL,aV){var aX=this._$Ob.length;var aJ=aL._$v2();var aN=0;var aI;var aQ;for(var aK=0;aKaw._$Qb){console.log(\"err 23245\\n\");}var aS=this._$Ob.length;var aK=1;var aH=1;var aJ=0;for(var aQ=0;aQ=0;--aK){aM[aK]=aL[aK];}}else{this.mult_fast(aI,aH,aM,aJ);}};ac.prototype.mult_fast=function(aI,aH,aK,aJ){if(aJ){aK[0]=aI[0]*aH[0]+aI[4]*aH[1]+aI[8]*aH[2];aK[4]=aI[0]*aH[4]+aI[4]*aH[5]+aI[8]*aH[6];aK[8]=aI[0]*aH[8]+aI[4]*aH[9]+aI[8]*aH[10];aK[12]=aI[0]*aH[12]+aI[4]*aH[13]+aI[8]*aH[14]+aI[12];aK[1]=aI[1]*aH[0]+aI[5]*aH[1]+aI[9]*aH[2];aK[5]=aI[1]*aH[4]+aI[5]*aH[5]+aI[9]*aH[6];aK[9]=aI[1]*aH[8]+aI[5]*aH[9]+aI[9]*aH[10];aK[13]=aI[1]*aH[12]+aI[5]*aH[13]+aI[9]*aH[14]+aI[13];aK[2]=aI[2]*aH[0]+aI[6]*aH[1]+aI[10]*aH[2];aK[6]=aI[2]*aH[4]+aI[6]*aH[5]+aI[10]*aH[6];aK[10]=aI[2]*aH[8]+aI[6]*aH[9]+aI[10]*aH[10];aK[14]=aI[2]*aH[12]+aI[6]*aH[13]+aI[10]*aH[14]+aI[14];aK[3]=aK[7]=aK[11]=0;aK[15]=1;}else{aK[0]=aI[0]*aH[0]+aI[4]*aH[1]+aI[8]*aH[2]+aI[12]*aH[3];aK[4]=aI[0]*aH[4]+aI[4]*aH[5]+aI[8]*aH[6]+aI[12]*aH[7];aK[8]=aI[0]*aH[8]+aI[4]*aH[9]+aI[8]*aH[10]+aI[12]*aH[11];aK[12]=aI[0]*aH[12]+aI[4]*aH[13]+aI[8]*aH[14]+aI[12]*aH[15];aK[1]=aI[1]*aH[0]+aI[5]*aH[1]+aI[9]*aH[2]+aI[13]*aH[3];aK[5]=aI[1]*aH[4]+aI[5]*aH[5]+aI[9]*aH[6]+aI[13]*aH[7];aK[9]=aI[1]*aH[8]+aI[5]*aH[9]+aI[9]*aH[10]+aI[13]*aH[11];aK[13]=aI[1]*aH[12]+aI[5]*aH[13]+aI[9]*aH[14]+aI[13]*aH[15];aK[2]=aI[2]*aH[0]+aI[6]*aH[1]+aI[10]*aH[2]+aI[14]*aH[3];aK[6]=aI[2]*aH[4]+aI[6]*aH[5]+aI[10]*aH[6]+aI[14]*aH[7];aK[10]=aI[2]*aH[8]+aI[6]*aH[9]+aI[10]*aH[10]+aI[14]*aH[11];aK[14]=aI[2]*aH[12]+aI[6]*aH[13]+aI[10]*aH[14]+aI[14]*aH[15];aK[3]=aI[3]*aH[0]+aI[7]*aH[1]+aI[11]*aH[2]+aI[15]*aH[3];aK[7]=aI[3]*aH[4]+aI[7]*aH[5]+aI[11]*aH[6]+aI[15]*aH[7];aK[11]=aI[3]*aH[8]+aI[7]*aH[9]+aI[11]*aH[10]+aI[15]*aH[11];aK[15]=aI[3]*aH[12]+aI[7]*aH[13]+aI[11]*aH[14]+aI[15]*aH[15];}};ac.prototype.translate=function(aH,aJ,aI){this.m[12]=this.m[0]*aH+this.m[4]*aJ+this.m[8]*aI+this.m[12];this.m[13]=this.m[1]*aH+this.m[5]*aJ+this.m[9]*aI+this.m[13];this.m[14]=this.m[2]*aH+this.m[6]*aJ+this.m[10]*aI+this.m[14];this.m[15]=this.m[3]*aH+this.m[7]*aJ+this.m[11]*aI+this.m[15];};ac.prototype.scale=function(aJ,aI,aH){this.m[0]*=aJ;this.m[4]*=aI;this.m[8]*=aH;this.m[1]*=aJ;this.m[5]*=aI;this.m[9]*=aH;this.m[2]*=aJ;this.m[6]*=aI;this.m[10]*=aH;this.m[3]*=aJ;this.m[7]*=aI;this.m[11]*=aH;};ac.prototype.rotateX=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[4];this.m[4]=aI*aK+this.m[8]*aJ;this.m[8]=aI*-aJ+this.m[8]*aK;aI=this.m[5];this.m[5]=aI*aK+this.m[9]*aJ;this.m[9]=aI*-aJ+this.m[9]*aK;aI=this.m[6];this.m[6]=aI*aK+this.m[10]*aJ;this.m[10]=aI*-aJ+this.m[10]*aK;aI=this.m[7];this.m[7]=aI*aK+this.m[11]*aJ;this.m[11]=aI*-aJ+this.m[11]*aK;};ac.prototype.rotateY=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[0];this.m[0]=aI*aK+this.m[8]*-aJ;this.m[8]=aI*aJ+this.m[8]*aK;aI=this.m[1];this.m[1]=aI*aK+this.m[9]*-aJ;this.m[9]=aI*aJ+this.m[9]*aK;aI=m[2];this.m[2]=aI*aK+this.m[10]*-aJ;this.m[10]=aI*aJ+this.m[10]*aK;aI=m[3];this.m[3]=aI*aK+this.m[11]*-aJ;this.m[11]=aI*aJ+this.m[11]*aK;};ac.prototype.rotateZ=function(aH){var aK=aC.fcos(aH);var aJ=aC._$9(aH);var aI=this.m[0];this.m[0]=aI*aK+this.m[4]*aJ;this.m[4]=aI*-aJ+this.m[4]*aK;aI=this.m[1];this.m[1]=aI*aK+this.m[5]*aJ;this.m[5]=aI*-aJ+this.m[5]*aK;aI=this.m[2];this.m[2]=aI*aK+this.m[6]*aJ;this.m[6]=aI*-aJ+this.m[6]*aK;aI=this.m[3];this.m[3]=aI*aK+this.m[7]*aJ;this.m[7]=aI*-aJ+this.m[7]*aK;};function Z(aH){if(j){return;}ak.prototype.constructor.call(this,aH);}Z.prototype=new ak();Z._$tP=new Object();Z._$27=function(){Z._$tP.clear();};Z.getID=function(aH){var aI=Z._$tP[aH];if(aI==null){aI=new Z(aH);Z._$tP[aH]=aI;}return aI;};Z.prototype._$3s=function(){return new Z();};function aD(){if(j){return;}this._$7=1;this._$f=0;this._$H=0;this._$g=1;this._$k=0;this._$w=0;this._$hi=STATE_IDENTITY;this._$Z=_$pS;}aD._$kS=-1;aD._$pS=0;aD._$hb=1;aD.STATE_IDENTITY=0;aD._$gb=1;aD._$fo=2;aD._$go=4;aD.prototype.transform=function(aK,aI,aH){var aT,aS,aR,aM,aL,aJ;var aQ=0;var aN=0;switch(this._$hi){default:return;case (aD._$go|aD._$fo|aD._$gb):aT=this._$7;aS=this._$H;aR=this._$k;aM=this._$f;aL=this._$g;aJ=this._$w;while(--aH>=0){var aP=aK[aQ++];var aO=aK[aQ++];aI[aN++]=(aT*aP+aS*aO+aR);aI[aN++]=(aM*aP+aL*aO+aJ);}return;case (aD._$go|aD._$fo):aT=this._$7;aS=this._$H;aM=this._$f;aL=this._$g;while(--aH>=0){var aP=aK[aQ++];var aO=aK[aQ++];aI[aN++]=(aT*aP+aS*aO);aI[aN++]=(aM*aP+aL*aO);}return;case (aD._$go|aD._$gb):aS=this._$H;aR=this._$k;aM=this._$f;aJ=this._$w;while(--aH>=0){var aP=aK[aQ++];aI[aN++]=(aS*aK[aQ++]+aR);aI[aN++]=(aM*aP+aJ);}return;case (aD._$go):aS=this._$H;aM=this._$f;while(--aH>=0){var aP=aK[aQ++];aI[aN++]=(aS*aK[aQ++]);aI[aN++]=(aM*aP);}return;case (aD._$fo|aD._$gb):aT=this._$7;aR=this._$k;aL=this._$g;aJ=this._$w;while(--aH>=0){aI[aN++]=(aT*aK[aQ++]+aR);aI[aN++]=(aL*aK[aQ++]+aJ);}return;case (aD._$fo):aT=this._$7;aL=this._$g;while(--aH>=0){aI[aN++]=(aT*aK[aQ++]);aI[aN++]=(aL*aK[aQ++]);}return;case (aD._$gb):aR=this._$k;aJ=this._$w;while(--aH>=0){aI[aN++]=(aK[aQ++]+aR);aI[aN++]=(aK[aQ++]+aJ);}return;case (aD.STATE_IDENTITY):if(aK!=aI||aQ!=aN){P._$jT(aK,aQ,aI,aN,aH*2);}return;}};aD.prototype.update=function(){if(this._$H==0&&this._$f==0){if(this._$7==1&&this._$g==1){if(this._$k==0&&this._$w==0){this._$hi=aD.STATE_IDENTITY;this._$Z=aD._$pS;}else{this._$hi=aD._$gb;this._$Z=aD._$hb;}}else{if(this._$k==0&&this._$w==0){this._$hi=aD._$fo;this._$Z=aD._$kS;}else{this._$hi=(aD._$fo|aD._$gb);this._$Z=aD._$kS;}}}else{if(this._$7==0&&this._$g==0){if(this._$k==0&&this._$w==0){this._$hi=aD._$go;this._$Z=aD._$kS;}else{this._$hi=(aD._$go|aD._$gb);this._$Z=aD._$kS;}}else{if(this._$k==0&&this._$w==0){this._$hi=(aD._$go|aD._$fo);this._$Z=aD._$kS;}else{this._$hi=(aD._$go|aD._$fo|aD._$gb);this._$Z=aD._$kS;}}}};aD.prototype._$RT=function(aK){this._$IT(aK);var aJ=aK[0];var aH=aK[2];var aN=aK[1];var aM=aK[3];var aI=Math.sqrt(aJ*aJ+aN*aN);var aL=aJ*aM-aH*aN;if(aI==0){if(Q._$so){console.log(\"affine._$RT() / rt==0\");}}else{aK[0]=aI;aK[1]=aL/aI;aK[2]=(aN*aM+aJ*aH)/aL;aK[3]=Math.atan2(aN,aJ);}};aD.prototype._$ho=function(aN,aM,aI,aH){var aL=new Float32Array(6);var aK=new Float32Array(6);aN._$RT(aL);aM._$RT(aK);var aJ=new Float32Array(6);aJ[0]=aL[0]+(aK[0]-aL[0])*aI;aJ[1]=aL[1]+(aK[1]-aL[1])*aI;aJ[2]=aL[2]+(aK[2]-aL[2])*aI;aJ[3]=aL[3]+(aK[3]-aL[3])*aI;aJ[4]=aL[4]+(aK[4]-aL[4])*aI;aJ[5]=aL[5]+(aK[5]-aL[5])*aI;aH._$CT(aJ);};aD.prototype._$CT=function(aJ){var aI=Math.cos(aJ[3]);var aH=Math.sin(aJ[3]);this._$7=aJ[0]*aI;this._$f=aJ[0]*aH;this._$H=aJ[1]*(aJ[2]*aI-aH);this._$g=aJ[1]*(aJ[2]*aH+aI);this._$k=aJ[4];this._$w=aJ[5];this.update();};aD.prototype._$IT=function(aH){aH[0]=this._$7;aH[1]=this._$f;aH[2]=this._$H;aH[3]=this._$g;aH[4]=this._$k;aH[5]=this._$w;};function Y(){if(j){return;}ah.prototype.constructor.call(this);this.motions=new Array();this._$7r=null;this._$7r=Y._$Co++;this._$D0=30;this._$yT=0;this._$E=true;this.loopFadeIn=true;this._$AS=-1;_$a0();}Y.prototype=new ah();Y._$cs=\"VISIBLE:\";Y._$ar=\"LAYOUT:\";Y._$Co=0;Y._$D2=[];Y._$1T=1;Y.loadMotion=function(aR){var aM=new Y();var aI=[0];var aP=aR.length;aM._$yT=0;for(var aJ=0;aJ=0){if(aK==aT+4&&aR[aT+1]==\"f\"&&aR[aT+2]==\"p\"&&aR[aT+3]==\"s\"){aO=true;}for(aJ=aK+1;aJ0){if(aO&&5=0){var aN=new t();if(G.startsWith(aR,aT,Y._$cs)){aN._$RP=t._$hs;aN._$4P=new String(aR,aT,aK-aT);}else{if(G.startsWith(aR,aT,Y._$ar)){aN._$4P=new String(aR,aT+7,aK-aT-7);if(G.startsWith(aR,aT+7,\"ANCHOR_X\")){aN._$RP=t._$xs;}else{if(G.startsWith(aR,aT+7,\"ANCHOR_Y\")){aN._$RP=t._$us;}else{if(G.startsWith(aR,aT+7,\"SCALE_X\")){aN._$RP=t._$qs;}else{if(G.startsWith(aR,aT+7,\"SCALE_Y\")){aN._$RP=t._$Ys;}else{if(G.startsWith(aR,aT+7,\"X\")){aN._$RP=t._$ws;}else{if(G.startsWith(aR,aT+7,\"Y\")){aN._$RP=t._$Ns;}}}}}}}else{aN._$RP=t._$Fr;aN._$4P=new String(aR,aT,aK-aT);}}aM.motions.push(aN);var aS=0;Y._$D2.clear();for(aJ=aK+1;aJ0){Y._$D2.push(aL);aS++;var aH=aI[0];if(aHaM._$yT){aM._$yT=aS;}}}}aM._$AS=((1000*aM._$yT)/aM._$D0)|0;return aM;};Y.prototype.getDurationMSec=function(){return this._$AS;};Y.prototype.dump=function(){for(var aJ=0;aJ=aK?aK-1:aJ)];aH.setParamFloat(aQ,aT);}else{if(t._$ws<=aS._$RP&&aS._$RP<=t._$Ys){}else{var aR=aH.getParamFloat(aQ);var aY=aS._$I0[(aJ>=aK?aK-1:aJ)];var aW=aS._$I0[(aJ+1>=aK?aK-1:aJ+1)];var aI=aY+(aW-aY)*aP;var aN=aR+(aI-aR)*aO;aH.setParamFloat(aQ,aN);}}}if(aJ>=this._$yT){if(this._$E){aX._$z2=aL;if(this.loopFadeIn){aX._$bs=aL;}}else{aX._$9L=true;}}};Y.prototype._$r0=function(){return this._$E;};Y.prototype._$aL=function(aH){this._$E=aH;};Y.prototype.isLoopFadeIn=function(){return this.loopFadeIn;};Y.prototype.setLoopFadeIn=function(aH){this.loopFadeIn=aH;};function aE(){this._$P=new Float32Array(100);this.size=0;}aE.prototype.clear=function(){this.size=0;};aE.prototype.add=function(aI){if(this._$P.length<=this.size){var aH=new Float32Array(this.size*2);P._$jT(this._$P,0,aH,0,this.size);this._$P=aH;}this._$P[this.size++]=aI;};aE.prototype._$BL=function(){var aH=new Float32Array(this.size);P._$jT(this._$P,0,aH,0,this.size);return aH;};function t(){this._$4P=null;this._$I0=null;this._$RP=null;}t._$Fr=0;t._$hs=1;t._$ws=100;t._$Ns=101;t._$xs=102;t._$us=103;t._$qs=104;t._$Ys=105;function aw(){}aw._$Ms=1;aw._$Qs=2;aw._$i2=0;aw._$No=2;aw._$do=aw._$Ms;aw._$Ls=true;aw._$1r=5;aw._$Qb=65;aw._$J=0.0001;aw._$FT=0.001;aw._$Ss=3;function ay(){}ay._$o7=6;ay._$S7=7;ay._$s7=8;ay._$77=9;ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2=10;ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1=11;ay._$T7=ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;ay._$Is=-2004318072;ay._$h0=0;ay._$4L=23;ay._$7P=33;ay._$uT=function(aH){console.log(\"_$bo :: _$6 _$mo _$E0 : %d\\n\",aH);};ay._$9o=function(aH){if(aH<40){ay._$uT(aH);return null;}else{if(aH<50){ay._$uT(aH);return null;}else{if(aH<60){ay._$uT(aH);return null;}else{if(aH<100){switch(aH){case 65:return new E();case 66:return new g();case 67:return new aA();case 68:return new ab();case 69:return new X();case 70:return new b();default:ay._$uT(aH);return null;}}else{if(aH<150){switch(aH){case 131:return new f();case 133:return new s();case 136:return new w();case 137:return new an();case 142:return new aq();}}}}}}ay._$uT(aH);return null;};function y(aH){if(j){return;}this._$QT=true;this._$co=-1;this._$qo=0;this._$pb=new Array(y._$is);this._$_2=new Float32Array(y._$is);this._$vr=new Float32Array(y._$is);this._$Rr=new Float32Array(y._$is);this._$Or=new Float32Array(y._$is);this._$fs=new Float32Array(y._$is);this._$Js=new Array(y._$is);this._$3S=new Array();this._$aS=new Array();this._$Bo=null;this._$F2=new Array();this._$db=new Array();this._$8b=new Array();this._$Hr=new Array();this._$Ws=null;this._$Vs=null;this._$Er=null;this._$Es=new Int16Array(aw._$Qb);this._$ZP=new Float32Array(aw._$1r*2);this._$Ri=aH;this._$b0=y._$HP++;this.clipManager=null;this.dp_webgl=null;}y._$HP=0;y._$_0=true;y._$V2=-1;y._$W0=-1;y._$jr=false;y._$ZS=true;y._$tr=(-1000000);y._$lr=(1000000);y._$is=32;y._$e=false;y.prototype.getDrawDataIndex=function(aI){for(var aH=this._$aS.length-1;aH>=0;--aH){if(this._$aS[aH]!=null&&this._$aS[aH].getDrawDataID()==aI){return aH;}}return -1;};y.prototype.getDrawData=function(aH){if(aH instanceof Z){if(this._$Bo==null){this._$Bo=new Object();var aJ=this._$aS.length;for(var aI=0;aI0){this.release();}var aO=this._$Ri.getModelImpl();var aT=aO._$Xr();var aS=aT.length;var aH=new Array();var a3=new Array();for(var aV=0;aV=0){this._$3S.push(aL);this._$db.push(a3[aV]);aH[aV]=null;aX=true;}}if(!aX){break;}}var aI=aO._$E2();if(aI!=null){var aJ=aI._$1s();if(aJ!=null){var aW=aJ.length;for(var aV=0;aV=0;aW--){this._$Js[aW]=y._$jr;}this._$QT=false;if(y._$e){q.dump(\"_$eL\");}return aX;};y.prototype.preDraw=function(aH){if(this.clipManager!=null){aH._$ZT();this.clipManager.setupClip(this,aH);}};y.prototype.draw=function(aM){if(this._$Ws==null){q._$li(\"call _$Ri.update() before _$Ri.draw() \");return;}var aP=this._$Ws.length;aM._$ZT();for(var aK=0;aK=0;--aI){if(this._$pb[aI]==aH){return aI;}}return this._$02(aH,0,y._$tr,y._$lr);};y.prototype._$BS=function(aH){return this.getBaseDataIndex(aH);};y.prototype.getBaseDataIndex=function(aH){for(var aI=this._$3S.length-1;aI>=0;--aI){if(this._$3S[aI]!=null&&this._$3S[aI].getBaseDataID()==aH){return aI;}}return -1;};y.prototype._$UT=function(aJ,aH){var aI=new Float32Array(aH);P._$jT(aJ,0,aI,0,aJ.length);return aI;};y.prototype._$02=function(aN,aM,aL,aH){if(this._$qo>=this._$pb.length){var aK=this._$pb.length;var aJ=new Array(aK*2);P._$jT(this._$pb,0,aJ,0,aK);this._$pb=aJ;this._$_2=this._$UT(this._$_2,aK*2);this._$vr=this._$UT(this._$vr,aK*2);this._$Rr=this._$UT(this._$Rr,aK*2);this._$Or=this._$UT(this._$Or,aK*2);var aI=new Array();P._$jT(this._$Js,0,aI,0,aK);this._$Js=aI;}this._$pb[this._$qo]=aN;this._$_2[this._$qo]=aM;this._$vr[this._$qo]=aM;this._$Rr[this._$qo]=aL;this._$Or[this._$qo]=aH;this._$Js[this._$qo]=y._$ZS;return this._$qo++;};y.prototype._$Zo=function(aI,aH){this._$3S[aI]=aH;};y.prototype.setParamFloat=function(aH,aI){if(aIthis._$Or[aH]){aI=this._$Or[aH];}this._$_2[aH]=aI;};y.prototype.loadParam=function(){var aH=this._$_2.length;if(aH>this._$fs.length){aH=this._$fs.length;}P._$jT(this._$fs,0,this._$_2,0,aH);};y.prototype.saveParam=function(){var aH=this._$_2.length;if(aH>this._$fs.length){this._$fs=new Float32Array(aH);}P._$jT(this._$_2,0,this._$fs,0,aH);};y.prototype._$v2=function(){return this._$co;};y.prototype._$WS=function(){return this._$QT;};y.prototype._$Xb=function(aH){return this._$Js[aH]==y._$ZS;};y.prototype._$vs=function(){return this._$Es;};y.prototype._$Tr=function(){return this._$ZP;};y.prototype.getBaseData=function(aH){return this._$3S[aH];};y.prototype.getParamFloat=function(aH){return this._$_2[aH];};y.prototype.getParamMax=function(aH){return this._$Or[aH];};y.prototype.getParamMin=function(aH){return this._$Rr[aH];};y.prototype.setPartsOpacity=function(aJ,aH){var aI=this._$Hr[aJ];aI.setPartsOpacity(aH);};y.prototype.getPartsOpacity=function(aI){var aH=this._$Hr[aI];return aH.getPartsOpacity();};y.prototype.getPartsDataIndex=function(aI){for(var aH=this._$F2.length-1;aH>=0;--aH){if(this._$F2[aH]!=null&&this._$F2[aH]._$p2()==aI){return aH;}}return -1;};y.prototype._$q2=function(aH){return this._$db[aH];};y.prototype._$C2=function(aH){return this._$8b[aH];};y.prototype._$Bb=function(aH){return this._$Hr[aH];};y.prototype._$5s=function(aO,aK){var aJ=this._$Ws.length;var aN=aO;for(var aL=0;aL0){aL+=aK;}return aI;};ap._$C=function(aJ){var aI=null;var aL=null;try{aI=(aJ instanceof Array)?aJ:new _$Xs(aJ,8192);aL=new _$js();var aM=1000;var aK;var aH=new Int8Array(aM);while((aK=aI.read(aH))>0){aL.write(aH,0,aK);}return aL._$TS();}finally{if(aJ!=null){aJ.close();}if(aL!=null){aL.flush();aL.close();}}};function ar(){if(j){return;}this._$12=null;this._$bb=null;this._$_L=null;this._$jo=null;this._$iL=null;this._$0L=null;this._$Br=null;this._$Dr=null;this._$Cb=null;this._$mr=null;this._$_L=az.STATE_FIRST;this._$Br=4000;this._$Dr=100;this._$Cb=50;this._$mr=150;this._$jo=true;this._$iL=\"PARAM_EYE_L_OPEN\";this._$0L=\"PARAM_EYE_R_OPEN\";}ar.prototype._$T2=function(){var aI=P.getUserTimeMSec();var aH=Math._$10();return(aI+aH*(2*this._$Br-1));};ar.prototype._$uo=function(aH){this._$Br=aH;};ar.prototype._$QS=function(aI,aH,aJ){this._$Dr=aI;this._$Cb=aH;this._$mr=aJ;};ar.prototype._$7T=function(aI){var aK=P.getUserTimeMSec();var aH;var aJ=0;switch(this._$_L){case STATE_CLOSING:aJ=(aK-this._$bb)/this._$Dr;if(aJ>=1){aJ=1;this._$_L=az.STATE_CLOSED;this._$bb=aK;}aH=1-aJ;break;case STATE_CLOSED:aJ=(aK-this._$bb)/this._$Cb;if(aJ>=1){this._$_L=az.STATE_OPENING;this._$bb=aK;}aH=0;break;case STATE_OPENING:aJ=(aK-this._$bb)/this._$mr;if(aJ>=1){aJ=1;this._$_L=az.STATE_INTERVAL;this._$12=this._$T2();}aH=aJ;break;case STATE_INTERVAL:if(this._$120.9?Q.EXPAND_W:0;this.gl.drawElements(aL,aP,aI,aQ,aM,aN,this.transform,aJ);};x.prototype._$Rs=function(){throw new Error(\"_$Rs\");};x.prototype._$Ds=function(aH){throw new Error(\"_$Ds\");};x.prototype._$K2=function(){for(var aH=0;aH=0;--aI){var aH=aJ[aI];if(aHa._$R2){a._$R2=aH;}}}};a._$or=function(){return a._$52;};a._$Pr=function(){return a._$R2;};a.prototype._$F0=function(aH){this._$gP=aH._$nP();this._$dr=aH._$nP();this._$GS=aH._$nP();this._$qb=aH._$6L();this._$Lb=aH._$cS();this._$mS=aH._$Tb();if(aH.getFormatVersion()>=ay._$T7){this.clipID=aH._$nP();this.clipIDList=this.convertClipIDForV2_11(this.clipID);}else{this.clipIDList=null;}a._$Sb(this._$Lb);};a.prototype.getClipIDList=function(){return this.clipIDList;};a.prototype._$Nr=function(aI,aH){aH._$IS[0]=false;aH._$Us=aG._$Z2(aI,this._$GS,aH._$IS,this._$Lb);if(Q._$Zs){}else{if(aH._$IS[0]){return;}}aH._$7s=aG._$br(aI,this._$GS,aH._$IS,this._$mS);};a.prototype._$2b=function(aH){};a.prototype.getDrawDataID=function(){return this._$gP;};a.prototype._$j2=function(aH){this._$gP=aH;};a.prototype.getOpacity=function(aH,aI){return aI._$7s;};a.prototype._$zS=function(aH,aI){return aI._$Us;};a.prototype.getTargetBaseDataID=function(){return this._$dr;};a.prototype._$gs=function(aH){this._$dr=aH;};a.prototype._$32=function(){return(this._$dr!=null&&(this._$dr!=n._$2o()));};a.prototype.getType=function(){};function aq(){if(j){return;}this._$NL=null;this._$3S=null;this._$aS=null;aq._$42++;}aq._$42=0;aq.prototype._$1b=function(){return this._$3S;};aq.prototype.getDrawDataList=function(){return this._$aS;};aq.prototype._$F0=function(aH){this._$NL=aH._$nP();this._$aS=aH._$nP();this._$3S=aH._$nP();};aq.prototype._$kr=function(aH){aH._$Zo(this._$3S);aH._$xo(this._$aS);this._$3S=null;this._$aS=null;};function v(){if(j){return;}aa.prototype.constructor.call(this);this._$zo=new x();}v.prototype=new aa();v.loadModel=function(aI){var aH=new v();aa._$62(aH,aI);return aH;};v.loadModel=function(aI){var aH=new v();aa._$62(aH,aI);return aH;};v._$to=function(){var aH=new v();return aH;};v._$er=function(aM){var aJ=new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if(aJ.exists()==false){throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+aJ._$PL());}var aH=[\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"];var aK=v.loadModel(aJ._$3b());for(var aI=0;aI=0){if(aK==aV+4&&p(aT,aV+1)==\"f\"&&p(aT,aV+2)==\"p\"&&p(aT,aV+3)==\"s\"){aP=true;}for(aJ=aK+1;aJ0){if(aP&&5=0){var aO=new t();if(G.startsWith(aT,aV,ao._$cs)){aO._$RP=t._$hs;aO._$4P=G.createString(aT,aV,aK-aV);}else{if(G.startsWith(aT,aV,ao._$ar)){aO._$4P=G.createString(aT,aV+7,aK-aV-7);if(G.startsWith(aT,aV+7,\"ANCHOR_X\")){aO._$RP=t._$xs;}else{if(G.startsWith(aT,aV+7,\"ANCHOR_Y\")){aO._$RP=t._$us;}else{if(G.startsWith(aT,aV+7,\"SCALE_X\")){aO._$RP=t._$qs;}else{if(G.startsWith(aT,aV+7,\"SCALE_Y\")){aO._$RP=t._$Ys;}else{if(G.startsWith(aT,aV+7,\"X\")){aO._$RP=t._$ws;}else{if(G.startsWith(aT,aV+7,\"Y\")){aO._$RP=t._$Ns;}}}}}}}else{aO._$RP=t._$Fr;aO._$4P=G.createString(aT,aV,aK-aV);}}aN.motions.push(aO);var aU=0;var aR=[];for(aJ=aK+1;aJ0){aR.push(aM);aU++;var aH=aI[0];if(aHaN._$yT){aN._$yT=aU;}}}}aN._$rr=((1000*aN._$yT)/aN._$D0)|0;return aN;};ao.prototype.getDurationMSec=function(){return this._$E?-1:this._$rr;};ao.prototype.getLoopDurationMSec=function(){return this._$rr;};ao.prototype.dump=function(){for(var aJ=0;aJ=aL?aL-1:aK)];aJ.setParamFloat(aT,aX);}else{if(t._$ws<=aV._$RP&&aV._$RP<=t._$Ys){}else{var aH=aJ.getParamIndex(aT);var a4=aJ.getModelContext();var aY=a4.getParamMax(aH);var aW=a4.getParamMin(aH);var aM=0.4;var aS=aM*(aY-aW);var aU=a4.getParamFloat(aH);var a2=aV._$I0[(aK>=aL?aL-1:aK)];var a1=aV._$I0[(aK+1>=aL?aL-1:aK+1)];var aI;if((a2aS)||(a2>a1&&a2-a1>aS)){aI=a2;}else{aI=a2+(a1-a2)*aR;}var aP=aU+(aI-aU)*aQ;aJ.setParamFloat(aT,aP);}}}if(aK>=this._$yT){if(this._$E){a3._$z2=aN;if(this.loopFadeIn){a3._$bs=aN;}}else{a3._$9L=true;}}this._$eP=aQ;};ao.prototype._$r0=function(){return this._$E;};ao.prototype._$aL=function(aH){this._$E=aH;};ao.prototype._$S0=function(){return this._$D0;};ao.prototype._$U0=function(aH){this._$D0=aH;};ao.prototype.isLoopFadeIn=function(){return this.loopFadeIn;};ao.prototype.setLoopFadeIn=function(aH){this.loopFadeIn=aH;};function aE(){this._$P=new Float32Array(100);this.size=0;}aE.prototype.clear=function(){this.size=0;};aE.prototype.add=function(aI){if(this._$P.length<=this.size){var aH=new Float32Array(this.size*2);P._$jT(this._$P,0,aH,0,this.size);this._$P=aH;}this._$P[this.size++]=aI;};aE.prototype._$BL=function(){var aH=new Float32Array(this.size);P._$jT(this._$P,0,aH,0,this.size);return aH;};function t(){this._$4P=null;this._$I0=null;this._$RP=null;}t._$Fr=0;t._$hs=1;t._$ws=100;t._$Ns=101;t._$xs=102;t._$us=103;t._$qs=104;t._$Ys=105;function E(){if(j){return;}c.prototype.constructor.call(this);this._$o=0;this._$A=0;this._$GS=null;this._$Eo=null;}E.prototype=new c();E._$gT=new Array();E.prototype._$zP=function(){this._$GS=new g();this._$GS._$zP();};E.prototype._$F0=function(aH){c.prototype._$F0.call(this,aH);this._$A=aH._$6L();this._$o=aH._$6L();this._$GS=aH._$nP();this._$Eo=aH._$nP();c.prototype.readV2_opacity.call(this,aH);};E.prototype.init=function(aH){var aI=new H(this);var aJ=(this._$o+1)*(this._$A+1);if(aI._$Cr!=null){aI._$Cr=null;}aI._$Cr=new Float32Array(aJ*2);if(aI._$hr!=null){aI._$hr=null;}if(this._$32()){aI._$hr=new Float32Array(aJ*2);}else{aI._$hr=null;}return aI;};E.prototype._$Nr=function(aJ,aI){var aK=aI;if(!this._$GS._$Ur(aJ)){return;}var aL=this._$VT();var aH=E._$gT;aH[0]=false;aG._$Vr(aJ,this._$GS,aH,aL,this._$Eo,aK._$Cr,0,2);aI._$Ib(aH[0]);this.interpolateOpacity(aJ,this._$GS,aI,aH);};E.prototype._$2b=function(aK,aJ){var aL=aJ;aL._$hS(true);if(!this._$32()){aL.setTotalOpacity(aL.getInterpolatedOpacity());}else{var aH=this.getTargetBaseDataID();if(aL._$8r==c._$ur){aL._$8r=aK.getBaseDataIndex(aH);}if(aL._$8r<0){if(Q._$so){q._$li(\"_$L _$0P _$G :: %s\",aH);}aL._$hS(false);}else{var aN=aK.getBaseData(aL._$8r);var aI=aK._$q2(aL._$8r);if(aN!=null&&aI._$yo()){var aM=aI.getTotalScale();aL.setTotalScale_notForClient(aM);var aO=aI.getTotalOpacity();aL.setTotalOpacity(aO*aL.getInterpolatedOpacity());aN._$nb(aK,aI,aL._$Cr,aL._$hr,this._$VT(),0,2);aL._$hS(true);}else{aL._$hS(false);}}}};E.prototype._$nb=function(aL,aI,aH,aM,aO,aK,aJ){if(true){var aN=aI;var aP=(aN._$hr!=null)?aN._$hr:aN._$Cr;E.transformPoints_sdk2(aH,aM,aO,aK,aJ,aP,this._$o,this._$A);}else{this.transformPoints_sdk1(aL,aI,aH,aM,aO,aK,aJ);}};E.transformPoints_sdk2=function(a0,bc,a5,aP,aI,aR,aQ,aU){var aW=a5*aI;var aV;var bn,bm;var aT=0;var aS=0;var bl=0;var bk=0;var bf=0;var be=0;var aZ=false;for(var ba=aP;ba=1){var aK=aR[((0)+(aU)*a1)*2];var aJ=aR[((0)+(aU)*a1)*2+1];var aO=aT-2*bl+1*bf;var aN=aS-2*bk+1*be;var a3=aT+3*bf;var a2=aS+3*be;var a8=aT-2*bl+3*bf;var a6=aS-2*bk+3*be;var bj=0.5*(a4-(-2));var bi=0.5*(aX-(1));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{var aH=(a7|0);if(aH==aU){aH=aU-1;}var bj=0.5*(a4-(-2));var bi=a7-aH;var bb=aH/aU;var a9=(aH+1)/aU;var aK=aR[((0)+(aH)*a1)*2];var aJ=aR[((0)+(aH)*a1)*2+1];var a3=aR[((0)+(aH+1)*a1)*2];var a2=aR[((0)+(aH+1)*a1)*2+1];var aO=aT-2*bl+bb*bf;var aN=aS-2*bk+bb*be;var a8=aT-2*bl+a9*bf;var a6=aS-2*bk+a9*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}}}else{if(1<=a4){if(aX<=0){var a8=aR[((aQ)+(0)*a1)*2];var a6=aR[((aQ)+(0)*a1)*2+1];var a3=aT+3*bl;var a2=aS+3*bk;var aO=aT+1*bl-2*bf;var aN=aS+1*bk-2*be;var aK=aT+3*bl-2*bf;var aJ=aS+3*bk-2*be;var bj=0.5*(a4-(1));var bi=0.5*(aX-(-2));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{if(aX>=1){var aO=aR[((aQ)+(aU)*a1)*2];var aN=aR[((aQ)+(aU)*a1)*2+1];var aK=aT+3*bl+1*bf;var aJ=aS+3*bk+1*be;var a8=aT+1*bl+3*bf;var a6=aS+1*bk+3*be;var a3=aT+3*bl+3*bf;var a2=aS+3*bk+3*be;var bj=0.5*(a4-(1));var bi=0.5*(aX-(1));if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{var aH=(a7|0);if(aH==aU){aH=aU-1;}var bj=0.5*(a4-(1));var bi=a7-aH;var bb=aH/aU;var a9=(aH+1)/aU;var aO=aR[((aQ)+(aH)*a1)*2];var aN=aR[((aQ)+(aH)*a1)*2+1];var a8=aR[((aQ)+(aH+1)*a1)*2];var a6=aR[((aQ)+(aH+1)*a1)*2+1];var aK=aT+3*bl+bb*bf;var aJ=aS+3*bk+bb*be;var a3=aT+3*bl+a9*bf;var a2=aS+3*bk+a9*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}}}else{if(aX<=0){var aY=(bd|0);if(aY==aQ){aY=aQ-1;}var bj=bd-aY;var bi=0.5*(aX-(-2));var bp=aY/aQ;var bo=(aY+1)/aQ;var a8=aR[((aY)+(0)*a1)*2];var a6=aR[((aY)+(0)*a1)*2+1];var a3=aR[((aY+1)+(0)*a1)*2];var a2=aR[((aY+1)+(0)*a1)*2+1];var aO=aT+bp*bl-2*bf;var aN=aS+bp*bk-2*be;var aK=aT+bo*bl-2*bf;var aJ=aS+bo*bk-2*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{if(aX>=1){var aY=(bd|0);if(aY==aQ){aY=aQ-1;}var bj=bd-aY;var bi=0.5*(aX-(1));var bp=aY/aQ;var bo=(aY+1)/aQ;var aO=aR[((aY)+(aU)*a1)*2];var aN=aR[((aY)+(aU)*a1)*2+1];var aK=aR[((aY+1)+(aU)*a1)*2];var aJ=aR[((aY+1)+(aU)*a1)*2+1];var a8=aT+bp*bl+3*bf;var a6=aS+bp*bk+3*be;var a3=aT+bo*bl+3*bf;var a2=aS+bo*bk+3*be;if(bj+bi<=1){bc[ba]=aO+(aK-aO)*bj+(a8-aO)*bi;bc[ba+1]=aN+(aJ-aN)*bj+(a6-aN)*bi;}else{bc[ba]=a3+(a8-a3)*(1-bj)+(aK-a3)*(1-bi);bc[ba+1]=a2+(a6-a2)*(1-bj)+(aJ-a2)*(1-bi);}}else{System.err.printf(\"_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\\n\",a4,aX);}}}}}else{bc[ba]=aT+a4*bl+aX*bf;bc[ba+1]=aS+a4*bk+aX*be;}}else{bn=bd-(bd|0);bm=a7-(a7|0);aV=2*((bd|0)+((a7|0))*(aQ+1));if(bn+bm<1){bc[ba]=aR[aV]*(1-bn-bm)+aR[aV+2]*bn+aR[aV+2*(aQ+1)]*bm;bc[ba+1]=aR[aV+1]*(1-bn-bm)+aR[aV+3]*bn+aR[aV+2*(aQ+1)+1]*bm;}else{bc[ba]=aR[aV+2*(aQ+1)+2]*(bn-1+bm)+aR[aV+2*(aQ+1)]*(1-bn)+aR[aV+2]*(1-bm);bc[ba+1]=aR[aV+2*(aQ+1)+3]*(bn-1+bm)+aR[aV+2*(aQ+1)+1]*(1-bn)+aR[aV+3]*(1-bm);}}}};E.prototype.transformPoints_sdk1=function(aJ,aR,aL,a0,aU,aP,aZ){var aH=aR;var aO,aN;var aM=this._$o;var aQ=this._$A;var aI=aU*aZ;var aS,aY;var aV;var aX,aW;var aT=(aH._$hr!=null)?aH._$hr:aH._$Cr;for(var aK=aP;aK1){aO=1;}}if(aN<0){aN=0;}else{if(aN>1){aN=1;}}aO*=aM;aN*=aQ;aS=(aO|0);aY=(aN|0);if(aS>aM-1){aS=aM-1;}if(aY>aQ-1){aY=aQ-1;}aX=aO-aS;aW=aN-aY;aV=2*(aS+aY*(aM+1));}else{aO=aL[aK]*aM;aN=aL[aK+1]*aQ;aX=aO-(aO|0);aW=aN-(aN|0);aV=2*((aO|0)+(aN|0)*(aM+1));}if(aX+aW<1){a0[aK]=aT[aV]*(1-aX-aW)+aT[aV+2]*aX+aT[aV+2*(aM+1)]*aW;a0[aK+1]=aT[aV+1]*(1-aX-aW)+aT[aV+3]*aX+aT[aV+2*(aM+1)+1]*aW;}else{a0[aK]=aT[aV+2*(aM+1)+2]*(aX-1+aW)+aT[aV+2*(aM+1)]*(1-aX)+aT[aV+2]*(1-aW);a0[aK+1]=aT[aV+2*(aM+1)+3]*(aX-1+aW)+aT[aV+2*(aM+1)+1]*(1-aX)+aT[aV+3]*(1-aW);}}};E.prototype._$VT=function(){return(this._$o+1)*(this._$A+1);};E.prototype.getType=function(){return c._$_b;};function H(aH){B.prototype.constructor.call(this,aH);this._$8r=c._$ur;this._$Cr=null;this._$hr=null;}H.prototype=new B();function s(){if(j){return;}this.visible=true;this._$g0=false;this._$NL=null;this._$3S=null;this._$aS=null;s._$42++;}s._$42=0;s.prototype._$zP=function(){this._$3S=new Array();this._$aS=new Array();};s.prototype._$F0=function(aH){this._$g0=aH._$8L();this.visible=aH._$8L();this._$NL=aH._$nP();this._$3S=aH._$nP();this._$aS=aH._$nP();};s.prototype.init=function(aI){var aH=new aj(this);aH.setPartsOpacity(this.isVisible()?1:0);return aH;};s.prototype._$6o=function(aH){if(this._$3S==null){throw new Error(\"_$3S _$6 _$Wo@_$6o\");}this._$3S.push(aH);};s.prototype._$3o=function(aH){if(this._$aS==null){throw new Error(\"_$aS _$6 _$Wo@_$3o\");}this._$aS.push(aH);};s.prototype._$Zo=function(aH){this._$3S=aH;};s.prototype._$xo=function(aH){this._$aS=aH;};s.prototype.isVisible=function(){return this.visible;};s.prototype._$uL=function(){return this._$g0;};s.prototype._$KP=function(aH){this.visible=aH;};s.prototype._$ET=function(aH){this._$g0=aH;};s.prototype.getBaseData=function(){return this._$3S;};s.prototype.getDrawData=function(){return this._$aS;};s.prototype._$p2=function(){return this._$NL;};s.prototype._$ob=function(aH){this._$NL=aH;};s.prototype.getPartsID=function(){return this._$NL;};s.prototype._$MP=function(aH){this._$NL=aH;};function aj(aH){this._$VS=null;this._$e0=null;this._$e0=aH;}aj.prototype=new S();aj.prototype.getPartsOpacity=function(){return this._$VS;};aj.prototype.setPartsOpacity=function(aH){this._$VS=aH;};function ak(aH){if(j){return;}this.id=aH;}ak._$L7=function(){z._$27();n._$27();Z._$27();i._$27();};ak.prototype.toString=function(){return this.id;};function D(){}D.prototype._$F0=function(aH){};function an(){if(j){return;}this._$4S=null;}an.prototype._$1s=function(){return this._$4S;};an.prototype._$zP=function(){this._$4S=new Array();};an.prototype._$F0=function(aH){this._$4S=aH._$nP();};an.prototype._$Ks=function(aH){this._$4S.push(aH);};function au(aH,aI){this.canvas=aH;this.context=aI;this.viewport=new Array(0,0,aH.width,aH.height);this._$6r=1;this._$xP=0;this._$3r=1;this._$uP=0;this._$Qo=-1;this.cacheImages={};}au.tr=new am();au._$50=new am();au._$Ti=new Array(0,0);au._$Pi=new Array(0,0);au._$B=new Array(0,0);au.prototype._$lP=function(aI,aK,aJ,aH){this.viewport=new Array(aI,aK,aJ,aH);};au.prototype._$bL=function(){this.context.save();var aH=this.viewport;if(aH!=null){this.context.beginPath();this.context._$Li(aH[0],aH[1],aH[2],aH[3]);this.context.clip();}};au.prototype._$ei=function(){this.context.restore();};au.prototype.drawElements=function(bc,bm,aX,aJ,bA,aM,bl,bz){try{if(bA!=this._$Qo){this._$Qo=bA;this.context.globalAlpha=bA;}var a2=bm.length;var aP=bc.width;var a5=bc.height;var bE=this.context;var a7=this._$xP;var a6=this._$uP;var a1=this._$6r;var aZ=this._$3r;var bD=au.tr;var aI=au._$Ti;var aH=au._$Pi;var bu=au._$B;for(var by=0;by0.02){au.expandClip(aK,aJ,aV,aI,aO,aN,aH,aW,aS,aR);}else{au.clipWithTransform(aK,null,aM,aL,aU,aT,aQ,aP);}};au.expandClip=function(aV,bg,aK,a3,aJ,aI,be,ba,aZ,aX){var aP=be-aJ;var aO=ba-aI;var bi=aZ-aJ;var bh=aX-aI;var bj=aP*bh-aO*bi>0?aK:-aK;var aL=-aO;var aH=aP;var bc=aZ-be;var a8=aX-ba;var a7=-a8;var a6=bc;var aQ=Math.sqrt(bc*bc+a8*a8);var bf=-bh;var bb=bi;var a2=Math.sqrt(bi*bi+bh*bh);var bd=aJ-bj*aL/a3;var a9=aI-bj*aH/a3;var aY=be-bj*aL/a3;var aW=ba-bj*aH/a3;var a5=be-bj*a7/aQ;var a4=ba-bj*a6/aQ;var aS=aZ-bj*a7/aQ;var aR=aX-bj*a6/aQ;var aN=aJ+bj*bf/a2;var aM=aI+bj*bb/a2;var a1=aZ+bj*bf/a2;var a0=aX+bj*bb/a2;var aU=au._$50;var aT=bg._$P2(aU);if(aT==null){return false;}au.clipWithTransform(aV,aU,bd,a9,aY,aW,a5,a4,aS,aR,a1,a0,aN,aM);return true;};au.clipWithTransform=function(aH,aI,aS,aN,aQ,aK,aP,aJ){if(arguments.length<(1+3*2)){q._$li(\"err : @LDGL.clip()\");return;}if(!(arguments[1] instanceof am)){q._$li(\"err : a[0] is _$6 LDTransform @LDGL.clip()\");return;}var aM=au._$B;var aO=aI;var aR=arguments;aH.beginPath();if(aO){aO._$PS(aR[2],aR[3],aM);aH.moveTo(aM[0],aM[1]);for(var aL=4;aL1){return 1;}}return(0.5-0.5*Math.cos(aH*aC.PI_F));};function J(aH){if(j){return;}this._$ib=aH;}J._$fr=-1;J.prototype.toString=function(){return this._$ib;};function b(){if(j){return;}a.prototype.constructor.call(this);this._$LP=-1;this._$d0=0;this._$Yo=0;this._$JP=null;this._$5P=null;this._$BP=null;this._$Eo=null;this._$Qi=null;this._$6s=b._$ms;this.culling=true;this.gl_cacheImage=null;this.instanceNo=b._$42++;}b.prototype=new a();b._$42=0;b._$Os=30;b._$ms=0;b._$ns=1;b._$_s=2;b._$gT=new Array();b.prototype._$_S=function(aH){this._$LP=aH;};b.prototype.getTextureNo=function(){return this._$LP;};b.prototype._$ZL=function(){return this._$Qi;};b.prototype._$H2=function(){return this._$JP;};b.prototype.getNumPoints=function(){return this._$d0;};b.prototype.getType=function(){return a._$wb;};b.prototype._$B2=function(aL,aH,aO){var aM=aH;var aN=(aM._$hr!=null)?aM._$hr:aM._$Cr;var aK=aw._$do;switch(aK){default:case aw._$Ms:throw new Error(\"_$L _$ro \");case aw._$Qs:for(var aJ=this._$d0-1;aJ>=0;--aJ){var aI=aJ*aw._$No;aN[aI+4]=aO;}break;}};b.prototype._$zP=function(){this._$GS=new g();this._$GS._$zP();};b.prototype._$F0=function(aK){a.prototype._$F0.call(this,aK);this._$LP=aK._$6L();this._$d0=aK._$6L();this._$Yo=aK._$6L();var aH=aK._$nP();this._$BP=new Int16Array(this._$Yo*3);for(var aJ=this._$Yo*3-1;aJ>=0;--aJ){this._$BP[aJ]=aH[aJ];}this._$Eo=aK._$nP();this._$Qi=aK._$nP();if(aK.getFormatVersion()>=ay._$s7){this._$JP=aK._$6L();if(this._$JP!=0){if((this._$JP&1)!=0){var aI=aK._$6L();if(this._$5P==null){this._$5P=new Object();}this._$5P._$Hb=parseInt(aI);}if((this._$JP&b._$Os)!=0){this._$6s=(this._$JP&b._$Os)>>1;}else{this._$6s=b._$ms;}if((this._$JP&32)!=0){this.culling=false;}}}else{this._$JP=0;}};b.prototype.init=function(aL){var aN=new ag(this);var aI=this._$d0*aw._$No;var aH=this._$32();if(aN._$Cr!=null){aN._$Cr=null;}aN._$Cr=new Float32Array(aI);if(aN._$hr!=null){aN._$hr=null;}aN._$hr=aH?new Float32Array(aI):null;var aM=aw._$do;switch(aM){default:case aw._$Ms:if(aw._$Ls){for(var aJ=this._$d0-1;aJ>=0;--aJ){var aO=aJ<<1;this._$Qi[aO+1]=1-this._$Qi[aO+1];}}break;case aw._$Qs:for(var aJ=this._$d0-1;aJ>=0;--aJ){var aO=aJ<<1;var aK=aJ*aw._$No;var aQ=this._$Qi[aO];var aP=this._$Qi[aO+1];aN._$Cr[aK]=aQ;aN._$Cr[aK+1]=aP;aN._$Cr[aK+4]=0;if(aH){aN._$hr[aK]=aQ;aN._$hr[aK+1]=aP;aN._$hr[aK+4]=0;}}break;}return aN;};b.prototype._$Nr=function(aJ,aH){var aK=aH;if(!((this==aK._$GT()))){console.log(\"### assert!! ### \");}if(!this._$GS._$Ur(aJ)){return;}a.prototype._$Nr.call(this,aJ,aK);if(aK._$IS[0]){return;}var aI=b._$gT;aI[0]=false;aG._$Vr(aJ,this._$GS,aI,this._$d0,this._$Eo,aK._$Cr,aw._$i2,aw._$No);};b.prototype._$2b=function(aK,aI){try{if(!((this==aI._$GT()))){console.log(\"### assert!! ### \");}var aL=false;if(aI._$IS[0]){aL=true;}var aM=aI;if(!aL){a.prototype._$2b.call(this,aK);if(this._$32()){var aH=this.getTargetBaseDataID();if(aM._$8r==a._$ur){aM._$8r=aK.getBaseDataIndex(aH);}if(aM._$8r<0){if(Q._$so){q._$li(\"_$L _$0P _$G :: %s\",aH);}}else{var aO=aK.getBaseData(aM._$8r);var aJ=aK._$q2(aM._$8r);if(aO!=null&&!aJ._$x2()){aO._$nb(aK,aJ,aM._$Cr,aM._$hr,this._$d0,aw._$i2,aw._$No);aM._$AT=true;}else{aM._$AT=false;}aM.baseOpacity=aJ.getTotalOpacity();}}}}catch(aN){throw aN;}};b.prototype.draw=function(aN,aK,aI){if(!((this==aI._$GT()))){console.log(\"### assert!! ### \");}if(aI._$IS[0]){return;}var aL=aI;var aJ=this._$LP;if(aJ<0){aJ=1;}var aH=this.getOpacity(aK,aL)*aI._$VS*aI.baseOpacity;var aM=(aL._$hr!=null)?aL._$hr:aL._$Cr;aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);aN._$WP(this.culling);aN._$Uo(aJ,3*this._$Yo,this._$BP,aM,this._$Qi,aH,this._$6s,aL);};b.prototype.dump=function(){console.log(\" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n\",this._$LP,this._$d0,this._$Yo);console.log(\" _$Oi _$di = { \");for(var aJ=0;aJstartMotion() / start _$K _$3 (m%d)\\n\",aH,aL._$sr);}}if(aJ==null){return -1;}aL=new M();aL._$w0=aJ;this.motions.push(aL);var aN=aL._$sr;if(this._$eb){q._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n\",aH,aN);}return aN;};V.prototype.updateParam=function(aJ){try{var aI=false;for(var aK=0;aKupdateParam() / _$T0 _$w0 (m%d)\\n\",this.motions.length-1,aL._$sr);}this.motions.splice(aK,1);aK--;}else{}}return aI;}catch(aM){q._$li(aM);return true;}};V.prototype.isFinished=function(aK){if(arguments.length>=1){for(var aI=0;aI0.9?Q.EXPAND_W:0;var a0=this.gl;if(this.gl==null){throw new Error(\"gl is null\");}var a1=false;var aQ=1;var aP=1;var a3=1;var aZ=1;var aW=this._$C0*aP*aN;var a2=this._$tT*a3*aN;var a5=this._$WL*aZ*aN;var a7=this._$lT*aN;if(this.clipBufPre_clipContextMask!=null){a0.frontFace(a0.CCW);a0.useProgram(this.shaderProgram);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc,1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_matrix_Loc,false,this.getClipBufPre_clipContextMask().matrixForMask);var aY=this.getClipBufPre_clipContextMask().layoutChannelNo;var a4=this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag,a4.r,a4.g,a4.b,a4.a);var aI=this.getClipBufPre_clipContextMask().layoutBounds;a0.uniform4f(this.u_baseColor_Loc,aI.x*2-1,aI.y*2-1,aI._$EL()*2-1,aI._$5T()*2-1);a0.uniform1i(this.u_maskFlag_Loc,true);}else{a1=this.getClipBufPre_clipContextDraw()!=null;if(a1){a0.useProgram(this.shaderProgramOff);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc_Off);a0.vertexAttribPointer(this.a_position_Loc_Off,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc_Off,1);a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);a0.vertexAttribPointer(this.a_texCoord_Loc_Off,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off,false,this.getClipBufPre_clipContextDraw().matrixForDraw);a0.uniformMatrix4fv(this.u_matrix_Loc_Off,false,this.matrix4x4);a0.activeTexture(a0.TEXTURE2);a0.bindTexture(a0.TEXTURE_2D,Q.fTexture[this.glno]);a0.uniform1i(this.s_texture1_Loc_Off,2);var aY=this.getClipBufPre_clipContextDraw().layoutChannelNo;var a4=this.getChannelFlagAsColor(aY);a0.uniform4f(this.u_channelFlag_Loc_Off,a4.r,a4.g,a4.b,a4.a);a0.uniform4f(this.u_baseColor_Loc_Off,aW,a2,a5,a7);}else{a0.useProgram(this.shaderProgram);this._$vS=T(a0,this._$vS,aU);this._$no=L(a0,this._$no,aL);a0.enableVertexAttribArray(this.a_position_Loc);a0.vertexAttribPointer(this.a_position_Loc,2,a0.FLOAT,false,0,0);this._$NT=T(a0,this._$NT,aV);a0.activeTexture(a0.TEXTURE1);a0.bindTexture(a0.TEXTURE_2D,this.textures[aS]);a0.uniform1i(this.s_texture0_Loc,1);a0.enableVertexAttribArray(this.a_texCoord_Loc);a0.vertexAttribPointer(this.a_texCoord_Loc,2,a0.FLOAT,false,0,0);a0.uniformMatrix4fv(this.u_matrix_Loc,false,this.matrix4x4);a0.uniform4f(this.u_baseColor_Loc,aW,a2,a5,a7);a0.uniform1i(this.u_maskFlag_Loc,false);}}if(this.culling){this.gl.enable(a0.CULL_FACE);}else{this.gl.disable(a0.CULL_FACE);}this.gl.enable(a0.BLEND);var a6;var aX;var aR;var aK;if(this.clipBufPre_clipContextMask!=null){a6=a0.ONE;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ONE;aK=a0.ONE_MINUS_SRC_ALPHA;}else{switch(aM){case b._$ms:a6=a0.ONE;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ONE;aK=a0.ONE_MINUS_SRC_ALPHA;break;case b._$ns:a6=a0.ONE;aX=a0.ONE;aR=a0.ZERO;aK=a0.ONE;break;case b._$_s:a6=a0.DST_COLOR;aX=a0.ONE_MINUS_SRC_ALPHA;aR=a0.ZERO;aK=a0.ONE;break;}}a0.blendEquationSeparate(a0.FUNC_ADD,a0.FUNC_ADD);a0.blendFuncSeparate(a6,aX,aR,aK);if(this.anisotropyExt){a0.texParameteri(a0.TEXTURE_2D,this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT,this.maxAnisotropy);}var aJ=aL.length;a0.drawElements(a0.TRIANGLES,aJ,a0.UNSIGNED_SHORT,0);a0.bindTexture(a0.TEXTURE_2D,null);};function T(aJ,aH,aI){if(aH==null){aH=aJ.createBuffer();}aJ.bindBuffer(aJ.ARRAY_BUFFER,aH);aJ.bufferData(aJ.ARRAY_BUFFER,aI,aJ.DYNAMIC_DRAW);return aH;}function L(aJ,aH,aI){if(aH==null){aH=aJ.createBuffer();}aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER,aH);aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER,aI,aJ.DYNAMIC_DRAW);return aH;}C.prototype._$Rs=function(){throw new Error(\"_$Rs\");};C.prototype._$Ds=function(aH){throw new Error(\"_$Ds\");};C.prototype._$K2=function(){for(var aH=0;aH=48){var aL=ay._$9o(aN);if(aL!=null){aL._$F0(this);return aL;}else{return null;}}switch(aN){case 1:return this._$bT();case 10:var aM=this._$6L();return new I(aM,true);case 11:return new av(this._$mP(),this._$mP(),this._$mP(),this._$mP());case 12:return new av(this._$_T(),this._$_T(),this._$_T(),this._$_T());case 13:return new e(this._$mP(),this._$mP());case 14:return new e(this._$_T(),this._$_T());case 15:var aH=this._$3L();var aI=new Array(aH);for(var aJ=0;aJ>(7-this._$hL++))&1)==1;};K.prototype._$zT=function(){if(this._$hL!=0){this._$hL=0;}};function ai(){}ai.prototype._$wP=function(aM,aI,aK){for(var aL=0;aLMath.PI){aJ-=2*Math.PI;}return aJ;};aC._$9=function(aH){return Math.sin(aH);};aC.fcos=function(aH){return Math.cos(aH);};function aB(aH){if(j){return;}this._$e0=null;this._$IP=null;this._$Us=null;this._$7s=null;this._$IS=[false];this._$VS=null;this._$AT=true;this.baseOpacity=1;this.clipBufPre_clipContext=null;this._$e0=aH;}aB.prototype._$u2=function(){return this._$IS[0];};aB.prototype._$yo=function(){return this._$AT&&!this._$IS[0];};aB.prototype._$GT=function(){return this._$e0;};function r(){}r._$W2=0;r.SYSTEM_INFO=null;r.USER_AGENT=navigator.userAgent;r.isIPhone=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isIPhone;};r.isIOS=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isIPhone||r.SYSTEM_INFO._isIPad;};r.isAndroid=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO._isAndroid;};r.getOSVersion=function(){if(!r.SYSTEM_INFO){r.setup();}return r.SYSTEM_INFO.version;};r.getOS=function(){if(!r.SYSTEM_INFO){r.setup();}if(r.SYSTEM_INFO._isIPhone||r.SYSTEM_INFO._isIPad){return\"iOS\";}if(r.SYSTEM_INFO._isAndroid){return\"Android\";}else{return\"_$Q0 OS\";}};r.setup=function(){var aK=r.USER_AGENT;function aI(aO,aR){var aN=aO.substring(aR).split(/[ _,;\\.]/);var aQ=0;for(var aM=0;aM<=2;aM++){if(isNaN(aN[aM])){break;}var aP=parseInt(aN[aM]);if(aP<0||aP>999){q._$li(\"err : \"+aP+\" @UtHtml5.setup()\");aQ=0;break;}aQ+=aP*Math.pow(1000,(2-aM));}return aQ;}var aL;var aH;var aJ=r.SYSTEM_INFO={userAgent:aK};if((aL=aK.indexOf(\"iPhone OS \"))>=0){aJ.os=\"iPhone\";aJ._isIPhone=true;aJ.version=aI(aK,aL+\"iPhone OS \".length);}else{if((aL=aK.indexOf(\"iPad\"))>=0){aL=aK.indexOf(\"CPU OS\");if(aL<0){q._$li(\" err : \"+aK+\" @UtHtml5.setup()\");return;}aJ.os=\"iPad\";aJ._isIPad=true;aJ.version=aI(aK,aL+\"CPU OS \".length);}else{if((aL=aK.indexOf(\"Android\"))>=0){aJ.os=\"Android\";aJ._isAndroid=true;aJ.version=aI(aK,aL+\"Android \".length);}else{aJ.os=\"-\";aJ.version=-1;}}}};window.UtSystem=P;window.UtDebug=q;window.LDTransform=am;window.LDGL=au;window.Live2D=Q;window.Live2DModelWebGL=l;window.Live2DModelJS=v;window.Live2DMotion=ao;window.MotionQueueManager=V;window.PhysicsHair=u;window.AMotion=ah;window.PartsDataID=i;window.DrawDataID=Z;window.BaseDataID=n;window.ParamID=z;Q.init();var j=false;})();\n\n\n// WEBPACK FOOTER //\n// ./src/lib/live2d.min.js","// Provide a \"System\" global.\r\nmodule.exports = {\r\n\t// Make sure import is only used as \"System.import\"\r\n\timport: function() {\r\n\t\tthrow new Error(\"System.import cannot be used indirectly\");\r\n\t}\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/system.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 6f342c6..80e6c45 100755 --- a/dist/index.html +++ b/dist/index.html @@ -14,6 +14,6 @@ style="border:dashed 1px #CCC"> - + \ No newline at end of file diff --git a/index.js b/index.js index 5741053..58be855 100755 --- a/index.js +++ b/index.js @@ -82,6 +82,7 @@ fs.exists(path.resolve(hexo.base_dir, path.join('./live2d_models/', config.model }); registerFile('live2d/script.js', path.resolve(__dirname, './dist/bundle.js')); +registerFile('live2d/script.js.map', path.resolve(__dirname, './dist/bundle.js.map')); registerFile('live2d/device.min.js', path.resolve(__dirname, './dist/device.min.js')); hexo.extend.generator.register('live2d', function (locals) { diff --git a/package-lock.json b/package-lock.json index f976e0b..635c759 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "hexo-helper-live2d", - "version": "2.0.8", + "version": "2.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/lib/Live2DFramework.js b/src/lib/Live2DFramework.js index 08c562d..4461b76 100755 --- a/src/lib/Live2DFramework.js +++ b/src/lib/Live2DFramework.js @@ -271,6 +271,9 @@ L2DBaseModel.prototype.loadPhysics = function (path/*String*/) { // L2DBaseModel # hitTestSimple() //============================================================ L2DBaseModel.prototype.hitTestSimple = function (drawID, testX, testY) { + + if(this.live2DModel === null) return !1; + var drawIndex = this.live2DModel.getDrawDataIndex(drawID); if (drawIndex < 0) return false;