diff --git a/README.md b/README.md index 0ba5e730..7374be5f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,25 @@ ## WeChat Web DevTools 是什么? WeChat Web DevTools 是腾讯官方提供用于微信 Web 开发和微信小程序开发的工具,由于官方只提供了 Windows 和 MacOS 版的工具,很多 Linux 爱好者很苦恼,所以我就折腾了半天把成功贡献给大家 -![](http://image.tianpian.net.cn/github/DeepinScrot-1851.png) +

+WeChat Web DevTools +

+ +应码友要求,现分离出核心版本,核心版本不包含 nwjs,体积大大减小,需要使用核心版本的请移步 https://github.com/yuan1994/wechat_web_devtools/tree/core ## 下载安装 +### 阿里云OSS下载(推荐): +``` +wget http://oss.yuan1994.com/github/wechat_dev_tools/latest/wechat_web_devtools.tar.gz +tar -zxvf wechat_dev_tools.tar.gz +``` +或者直接下载:http://oss.yuan1994.com/github/wechat_dev_tools/latest/wechat_web_devtools.tar.gz + ### composer安装: +``` composer create-project yuan1994/wechat_web_devtools wechat_web_devtools --prefer-dist +``` + > 本人是玩 PHP 的,别拍我 ^_^ ### git克隆: @@ -15,6 +29,15 @@ git clone https://github.com/yuan1994/wechat_web_devtools https://github.com/yuan1994/wechat_web_devtools/archive/master.zip ## 开始使用 +### 一键安装 +``` +cd /path/to/wechat_web_devtools +./install.sh +``` +执行 `./install.sh` 命令时请不要使用 `sudo`,待会儿会提醒你输入密码的,否则会导致应用用户组错误 +`` 为安装路径,例如 `/home/tianpian/software`,默认为 `/opt/tencent` + +### 按步骤安装 1. 将下载后的安装包改名为 wechat_web_devtools ``` mv wechat_web_devtools-master wechat_web_devtools @@ -33,7 +56,7 @@ sudo mv ./wechat_web_devtools /opt/tencent 4. 修改用户组 ``` -sudo chown -R tianpian.tianpian /opt/tencent +sudo chown -R tianpian:tianpian /opt/tencent/wechat_web_devtools ``` > 请将上面的 tianpian 改成你自己当前用户的用户名,否则开发者工具运行时会提示无权限 @@ -50,7 +73,7 @@ sudo chown -R tianpian.tianpian /opt/tencent ### 桌面快捷启动图标(在 ubuntu 14.04 系统上测试的) 移动快捷启动图标到系统里即可 ``` -sudo mv /opt/tencent/wechat_web_devtools/wechat_web_devtools.desktop /usr/share/applications/ +sudo cp /opt/tencent/wechat_web_devtools/wechat_web_devtools.desktop /usr/share/applications/ ``` 然后按下 Windows 键,左上角输入软件名称 Wechat Web DevTools,点击图标启动即可 @@ -63,19 +86,16 @@ wechat_web_devtools & ``` > 推荐启动时加入 & 符号,这样可以启用后台进程,启动后等待终端输出信息后再回车一次,这样就可以解放一个终端了 -## 其他问题 -如果想自定义文件软件安装路径,请自行修改软件根目录的 `package.json` 文件里的 `-load-extension` 参数后面的路径,经测试该路径必须会全路径,不可使用相对路径,然后使用桌面快捷启动图标的用户还需要修改 `Exec` 和 `Icon` 配置项的路径,也可以在里面修改软件的名称 - -该工具使用 `nwjs` 和 微信开发者工具 Windows x64 版经过修改生成 +## 微信开发工具老版本 +微信开发工具 v0.7.0 支持移动调试,但以后的版本不支持了,为了在一台机器上使用多个微信开发工具,可以找到 `package.json`,将 `package.json` 文件中的 `name` 和 `appname` 都改名,例如在后面加一个 old,该方法在 Linux\MacOS\Windows 都适用, Linux 版 v0.7.0 请移步 https://github.com/yuan1994/wechat_web_devtools/tree/v0.7.0 > 本人是 Linux 小白,如果有错误的地方或可以修改的地方请大神指教,欢迎大神拍砖 ## 免责声明 该微信开发者工具系腾讯旗下产品,版权归腾讯公司所有,如果版权侵犯请联系我 +![](./screenshot/02.png) -![](http://image.tianpian.net.cn/github/DeepinScrot-3334.png) - -![](http://image.tianpian.net.cn/github/DeepinScrot-3448.png) +![](./screenshot/03.png) -![](http://image.tianpian.net.cn/github/DeepinScrot-3514.png) \ No newline at end of file +![](./screenshot/04.png) diff --git a/app/dist/actions/leftviewActions.js b/app/dist/actions/leftviewActions.js index 29b3227f..d0ea5c4b 100644 --- a/app/dist/actions/leftviewActions.js +++ b/app/dist/actions/leftviewActions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../dispatcher/dispatcher.js');_exports={hideAll:function(b){a.dispatch({webviewID:b,actionType:'LEFTVIEW_HIDEALL'})},clickRightHeader:function(b){a.dispatch({webviewID:b,actionType:'LEFTVIEW_CLICK_RIGHTHEADER'})},upShareStatus:function(b,c){a.dispatch({webviewID:b,show:c,actionType:'LEFTVIEW_UP_SHARESTATUS'})},clickMask:function(b){a.dispatch({webviewID:b,actionType:'LEFTVIEW_CLICK_MASK'})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var i=require("../dispatcher/dispatcher.js"),e={hideAll:function(e){i.dispatch({webviewID:e,actionType:"LEFTVIEW_HIDEALL"})},clickRightHeader:function(e){i.dispatch({webviewID:e,actionType:"LEFTVIEW_CLICK_RIGHTHEADER"})},upShareStatus:function(e,t){i.dispatch({webviewID:e,show:t,actionType:"LEFTVIEW_UP_SHARESTATUS"})},clickMask:function(e){i.dispatch({webviewID:e,actionType:"LEFTVIEW_CLICK_MASK"})}};_exports=e}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/actions/projectActions.js b/app/dist/actions/projectActions.js index 19bb4ff0..e8899135 100644 --- a/app/dist/actions/projectActions.js +++ b/app/dist/actions/projectActions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../dispatcher/dispatcher.js');_exports={del:function(b){a.dispatch({actionType:'DELETE_PROJECT',projectid:b})},add:function(b,c){a.dispatch({actionType:'ADD_PROJECT',project:b,needInitQuickStart:c})},close:function(b){a.dispatch({actionType:'CLOSE_PROJECT'})},restart:function(b){a.dispatch({actionType:'RESTART_PROJECT',project:b})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../dispatcher/dispatcher.js"),i={del:function(i){t.dispatch({actionType:"DELETE_PROJECT",projectid:i})},add:function(i,e){t.dispatch({actionType:"ADD_PROJECT",project:i,needInitQuickStart:e})},close:function(i){t.dispatch({actionType:"CLOSE_PROJECT"})},restart:function(i){t.dispatch({actionType:"RESTART_PROJECT",project:i})}};_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/actions/webviewActions.js b/app/dist/actions/webviewActions.js index 0f4a5f86..d81608f6 100644 --- a/app/dist/actions/webviewActions.js +++ b/app/dist/actions/webviewActions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../dispatcher/dispatcher.js');_exports={cleanWebview:function(b){a.dispatch({actionType:'ClEAN_WEBVIEW',webviewID:b})},deleteWebviewID:function(b){a.dispatch({actionType:'DELETE_WEBVIEW_ID',webviewID:b})},changeWebviewID:function(b){a.dispatch({actionType:'CHANGE_WEBVIEW_ID',webviewID:b})},setWebviewSnapshot:function(b,c){a.dispatch({actionType:'SET_WEBVIEW_SNAPSHOT',webviewID:b,data:c})},setInitURL:function(b){a.dispatch({actionType:'SET_INIT_URL',URL:b})},clearWebview:function(b){a.dispatch({actionType:'CLEAR_WEBVIEW_DATA',data:b})},upWebviewStatus:function(b,c){a.dispatch({webviewID:b,actionType:'UP_WEBVIEW_STATUS',data:c})},setWebviewAction:function(b,c){a.dispatch({webviewID:b,actionType:'SET_WEBVIEW_ACTION',data:c})},execWebviewJSSDK:function(b,c){a.dispatch({webviewID:b,actionType:'EXEC_WEBVIEW_JSSDK',data:c})},getA8keyWebview:function(b,c){a.dispatch({webviewID:b,actionType:'GET_A8KEY_WEBVIEW',data:c})},showShareWebview:function(b,c){a.dispatch({webviewID:b,actionType:'SHOW_SHARE_WEBVIEW',data:c})},setWebviewUA:function(b){a.dispatch({actionType:'SET_WEBVIEW_UA',data:b})},setWebviewInfo:function(b){a.dispatch({actionType:'SET_WEBVIEW_INFO',data:b})},sendJSSDKRes:function(b,c,d,e){a.dispatch({actionType:'GET_JSSDK_RES',webviewID:b,sdkName:c,sdkRes:d,sdkResExt:e})},setInterfaceFromPageFrame:function(b,c){a.dispatch({actionType:'SET_INTERFACT_FROMPAGEFRAME',webviewID:b,header:c})},asTojs:function(b){a.dispatch({actionType:'AS_TO_JS',data:b})},upASData:function(b,c){a.dispatch({actionType:'UP_AS_DATA',data:c,appid:b})},asPublish:function(b){a.dispatch({actionType:'AS_PUBLISH',msg:b})},postMessageToAS:function(b){a.dispatch({actionType:'POST_MSG_TOAS',msg:b})},sendASSDK:function(b,c,d){a.dispatch({actionType:'SEND_AS_SDK',api:b,data:c,callback:d})},authorizeSdk:function(b,c,d,e,f){a.dispatch({actionType:'SHOW_AUTHORIZE_SDK_DIALOG',webviewId:b,authorizeSdkId:c,appicon_url:d,appname:e,scope_list:f})},authorizeSdkReturn:function(b,c,d){a.dispatch({actionType:'AUTHORIZE_SDK_RETURN',authorizeSdkId:b,scope_list:c,isAllowed:d})},stopPullDownRefresh:function(b){a.dispatch({actionType:'STOP_PULL_DOWN_REFRESH',args:b})},touchSetSuc:function(b){a.dispatch({actionType:'TOUCH_SET_SUC',webviewID:b})},toggleRecordWording:function(b){a.dispatch({actionType:'TOGGLE_RECORD_WORDING',show:b})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../dispatcher/dispatcher.js"),e={cleanWebview:function(e){t.dispatch({actionType:"ClEAN_WEBVIEW",webviewID:e})},deleteWebviewID:function(e){t.dispatch({actionType:"DELETE_WEBVIEW_ID",webviewID:e})},changeWebviewID:function(e){t.dispatch({actionType:"CHANGE_WEBVIEW_ID",webviewID:e})},setWebviewSnapshot:function(e,i){t.dispatch({actionType:"SET_WEBVIEW_SNAPSHOT",webviewID:e,data:i})},setInitURL:function(e){t.dispatch({actionType:"SET_INIT_URL",URL:e})},clearWebview:function(e){t.dispatch({actionType:"CLEAR_WEBVIEW_DATA",data:e})},upWebviewStatus:function(e,i){t.dispatch({webviewID:e,actionType:"UP_WEBVIEW_STATUS",data:i})},setWebviewAction:function(e,i){t.dispatch({webviewID:e,actionType:"SET_WEBVIEW_ACTION",data:i})},execWebviewJSSDK:function(e,i){t.dispatch({webviewID:e,actionType:"EXEC_WEBVIEW_JSSDK",data:i})},getA8keyWebview:function(e,i){t.dispatch({webviewID:e,actionType:"GET_A8KEY_WEBVIEW",data:i})},showShareWebview:function(e,i){t.dispatch({webviewID:e,actionType:"SHOW_SHARE_WEBVIEW",data:i})},setWebviewUA:function(e){t.dispatch({actionType:"SET_WEBVIEW_UA",data:e})},setWebviewInfo:function(e){t.dispatch({actionType:"SET_WEBVIEW_INFO",data:e})},sendJSSDKRes:function(e,i,a,n){t.dispatch({actionType:"GET_JSSDK_RES",webviewID:e,sdkName:i,sdkRes:a,sdkResExt:n})},setInterfaceFromPageFrame:function(e,i){t.dispatch({actionType:"SET_INTERFACT_FROMPAGEFRAME",webviewID:e,header:i})},asTojs:function(e){t.dispatch({actionType:"AS_TO_JS",data:e})},upASData:function(e,i){t.dispatch({actionType:"UP_AS_DATA",data:i,appid:e})},upBLData:function(e,i){t.dispatch({actionType:"UP_BL_DATA",data:i,appid:e})},asPublish:function(e){t.dispatch({actionType:"AS_PUBLISH",msg:e})},postMessageToAS:function(e){t.dispatch({actionType:"POST_MSG_TOAS",msg:e})},sendASSDK:function(e,i,a){t.dispatch({actionType:"SEND_AS_SDK",api:e,data:i,callback:a})},stopPullDownRefresh:function(e){t.dispatch({actionType:"STOP_PULL_DOWN_REFRESH",args:e})},touchSetSuc:function(e){t.dispatch({actionType:"TOUCH_SET_SUC",webviewID:e})},toggleRecordWording:function(e){t.dispatch({actionType:"TOGGLE_RECORD_WORDING",show:e})},operatePaymentQrcodeWnd:function(e){t.dispatch({actionType:"OPERATE_PAYMENT_QRCODE_WND",data:e})}};_exports=e}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/actions/windowActions.js b/app/dist/actions/windowActions.js index 1f137a38..ba11a8f8 100644 --- a/app/dist/actions/windowActions.js +++ b/app/dist/actions/windowActions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../dispatcher/dispatcher.js');_exports={changeDevtools:function(){a.dispatch({actionType:'CHANGE_DEVTOOLS'})},showTipsMsg:function(b){a.dispatch({actionType:'SHOW_TIPS_MSG',opt:b})},updataProxySetting:function(b,c){a.dispatch({actionType:'UPDATA_PROXY_SETTING',proxyType:b,callback:c})},showAbout:function(){a.dispatch({actionType:'SHOW_ABOUT_LAYER'})},showLoginLayer:function(){a.dispatch({actionType:'SHOW_LOGIN_LAYER'})},resize:function(b){a.dispatch({actionType:'WINDOW_RESIZE',height:b})},blur:function(){a.dispatch({actionType:'WINDOW_BLUR'})},focus:function(){a.dispatch({actionType:'WINDOW_FOCUS'})},bodyClick:function(b){a.dispatch({actionType:'BODY_CLICK',event:b})},upDateUserInfo:function(b){a.dispatch({actionType:'UPDATA_USER_INFO',info:b})},clearUserInfo:function(){a.dispatch({actionType:'CLEAR_USER_INFO'})},upTicket:function(b,c){a.dispatch({actionType:'UP_USER_TICKET',newticket:b,ticketExpiredTime:c})},delTicket:function(){a.dispatch({actionType:'DEL_USER_TICKET'})},setAutoComplete:function(b){a.dispatch({actionType:'SET_AUTO_COMPLETET',url:b})},showSetting:function(){a.dispatch({actionType:'SHOW_SETTING'})},focusAddressBar:function(b){a.dispatch({actionType:'FOCUS_ADDRESSBAR',webviewID:b})},clearAddressHistory:function(b){a.dispatch({actionType:'CLEAR_ADDRESSBAR_HISTORY',data:b})},saveSetting:function(b){a.dispatch({actionType:'SAVE_SETTING',data:b})},changeUrl:function(b,c){a.dispatch({actionType:'CHANGE_WEBVIEW_URL',url:b,webviewID:c})},closeWebviewDevtools:function(b){a.dispatch({actionType:'CLOSE_WEBVIEW_DEVTOOLS',webviewID:b})},openWebviewDevtools:function(b,c,d){a.dispatch({webviewID:b,actionType:'OPEN_WEBVIEW_DEVTOOLS',webview:c,webviewOffset:d})},setWebviewInfo:function(b){a.dispatch({actionType:'WINDOW_SET_WEBVIEW_INFO',data:b})},appEnterBackground:function(){a.dispatch({actionType:'APP_ENTER_BACKGROUND'})},appEnterForeground:function(){a.dispatch({actionType:'APP_ENTER_FOREGROUND'})},clickToolsbar:function(b){a.dispatch({actionType:'CLICK_TOOLSBAR',clickkey:b})},operateMusicPlayer:function(b){a.dispatch({actionType:'OPERATE_MUSIC_PLAY',opt:b})},getMusicPlayerState:function(b){a.dispatch({actionType:'GET_MUSIC_PLAY_STATE',callback:b})},startDebuggee:function(b,c){a.dispatch({actionType:'START_WEBVIEW_DEBUGGEE',webviewID:b,data:c})},changeWebviewID:function(b){a.dispatch({actionType:'WINDOW_CHANGE_WEBVIEW_ID',webviewID:b})},getWeappError:function(b,c,d){a.dispatch({actionType:'WINDOW_GET_WEBAPP_ERROR',webviewID:b,url:c,errStr:d})},showWeappError:function(b,c){a.dispatch({actionType:'WINDOW_SHOW_WEBAPP_ERROR',type:b,event:c})},showConfirm:function(b){a.dispatch({actionType:'WINDOW_SHOW_CONFIRM',data:b})},showSimulatorConfirm:function(b){a.dispatch({actionType:'WINDOW_SHOW_SIMULATOR_CONFIRM',data:b})},openProjectFile:function(b){a.dispatch({actionType:'OPEN_PROJECT_FILE',data:b})},toggleNewFeatureCheckShowStatus:function(b){a.dispatch({actionType:'TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS',status:b})},showCustomPreview:function(b){a.dispatch({actionType:'SHOW_CUSTOM_PREVIEW',options:b})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../dispatcher/dispatcher.js"),i={changeDevtools:function(){t.dispatch({actionType:"CHANGE_DEVTOOLS"})},showTipsMsg:function(i){t.dispatch({actionType:"SHOW_TIPS_MSG",opt:i})},updataProxySetting:function(i,c){t.dispatch({actionType:"UPDATA_PROXY_SETTING",proxyType:i,callback:c})},showAbout:function(){t.dispatch({actionType:"SHOW_ABOUT_LAYER"})},showLoginLayer:function(){t.dispatch({actionType:"SHOW_LOGIN_LAYER"})},resize:function(i){t.dispatch({actionType:"WINDOW_RESIZE",height:i})},blur:function(){t.dispatch({actionType:"WINDOW_BLUR"})},focus:function(){t.dispatch({actionType:"WINDOW_FOCUS"})},bodyClick:function(i){t.dispatch({actionType:"BODY_CLICK",event:i})},upDateUserInfo:function(i){t.dispatch({actionType:"UPDATA_USER_INFO",info:i})},clearUserInfo:function(){t.dispatch({actionType:"CLEAR_USER_INFO"})},upTicket:function(i,c){t.dispatch({actionType:"UP_USER_TICKET",newticket:i,ticketExpiredTime:c})},delTicket:function(){t.dispatch({actionType:"DEL_USER_TICKET"})},setAutoComplete:function(i){t.dispatch({actionType:"SET_AUTO_COMPLETET",url:i})},showSetting:function(){t.dispatch({actionType:"SHOW_SETTING"})},focusAddressBar:function(i){t.dispatch({actionType:"FOCUS_ADDRESSBAR",webviewID:i})},clearAddressHistory:function(i){t.dispatch({actionType:"CLEAR_ADDRESSBAR_HISTORY",data:i})},saveSetting:function(i){t.dispatch({actionType:"SAVE_SETTING",data:i})},changeUrl:function(i,c){t.dispatch({actionType:"CHANGE_WEBVIEW_URL",url:i,webviewID:c})},closeWebviewDevtools:function(i){t.dispatch({actionType:"CLOSE_WEBVIEW_DEVTOOLS",webviewID:i})},openWebviewDevtools:function(i,c,e){t.dispatch({webviewID:i,actionType:"OPEN_WEBVIEW_DEVTOOLS",webview:c,webviewOffset:e})},setWebviewInfo:function(i){t.dispatch({actionType:"WINDOW_SET_WEBVIEW_INFO",data:i})},appEnterBackground:function(){t.dispatch({actionType:"APP_ENTER_BACKGROUND"})},appEnterForeground:function(i){t.dispatch({actionType:"APP_ENTER_FOREGROUND",data:i})},clickToolsbar:function(i){t.dispatch({actionType:"CLICK_TOOLSBAR",clickkey:i})},operateMusicPlayer:function(i){t.dispatch({actionType:"OPERATE_MUSIC_PLAY",opt:i})},getMusicPlayerState:function(i){t.dispatch({actionType:"GET_MUSIC_PLAY_STATE",callback:i})},startDebuggee:function(i,c){t.dispatch({actionType:"START_WEBVIEW_DEBUGGEE",webviewID:i,data:c})},changeWebviewID:function(i){t.dispatch({actionType:"WINDOW_CHANGE_WEBVIEW_ID",webviewID:i})},getWeappError:function(i,c,e){t.dispatch({actionType:"WINDOW_GET_WEBAPP_ERROR",webviewID:i,url:c,errStr:e})},showWeappError:function(i,c){t.dispatch({actionType:"WINDOW_SHOW_WEBAPP_ERROR",type:i,event:c})},showConfirm:function(i){t.dispatch({actionType:"WINDOW_SHOW_CONFIRM",data:i})},showSimulatorConfirm:function(i){t.dispatch({actionType:"WINDOW_SHOW_SIMULATOR_CONFIRM",data:i})},showAuthorizeConfirm:function(i){t.dispatch({actionType:"WINDOW_SHOW_AUTHORIZE_CONFIRM",data:i})},openProjectFile:function(i){t.dispatch({actionType:"OPEN_PROJECT_FILE",data:i})},toggleNewFeatureCheckShowStatus:function(i){t.dispatch({actionType:"TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS",status:i})},showCustomPreview:function(i){t.dispatch({actionType:"SHOW_CUSTOM_PREVIEW",options:i})},editorFocus:function(){t.dispatch({actionType:"EDITOR_FOCUS"})},editorBlur:function(){t.dispatch({actionType:"EDITOR_BLUR"})}};_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/app.js b/app/dist/app.js index eebb9e16..4c3c114b 100644 --- a/app/dist/app.js +++ b/app/dist/app.js @@ -1 +1 @@ -'use strict';const tools=require('../dist/utils/tools.js'),Win=nw.Window.get();global.Win=Win,global.appConfig=tools.getAppConfig(),global.contentDocument=document,global.contentDocumentBody=document.body,global.contentWindow=window;function init(){const a=require('../dist/lib/react.js'),b=require('../dist/lib/react-dom.js'),c=require('../dist/common/loadInit/init.js'),d=require('../dist/components/ContainController.js'),e=require('../dist/common/proxy/startProxy.js'),f=require('../dist/actions/windowActions.js'),g=require('../dist/actions/webviewActions.js'),h=require('../dist/stores/webviewStores.js'),i=require('../dist/common/log/log.js'),j=require('../dist/common/shortCut/shortCut.js');let k=global.appConfig.isDev;if('darwin'===process.platform){const n=require('../dist/common/menu/menu.js');nw.Window.get().menu=n}nw.App.on('open',n=>{let o=tools.getArgsURL(n);if(o){i.info(`index.js Reopen App with url: ${o}`);let p=h.getCurrentWebviewID();g.getA8keyWebview(p,{url:o,isSync:!0,from:'urlbar'})}nw.Window.get().focus()}),-1!==nw.App.argv.indexOf('inspect')&&tools.openInspectWin();let l=tools.getArgsURL(nw.App.argv);l&&(i.info(`index.js Open App with url: ${l}`),g.setInitURL(l)),j.register(),global.weinreWin={};let m;window.addEventListener('resize',()=>{m=setTimeout(()=>{clearTimeout(m),f.resize(document.body.offsetHeight)},20)}),window.addEventListener('keydown',n=>{let o=n.keyCode;123===o&&(f.changeDevtools(),n.preventDefault())}),k||window.addEventListener('contextmenu',n=>{n.preventDefault()}),Win.on('focus',()=>{f.focus(),j.register()}),Win.on('blur',()=>{f.blur(),j.unRegister()}),Win.on('navigation',(n,o,p)=>{i.info(`index.js navigation ${o} ignore`),nw.Shell.openExternal(o),p.ignore()}),Win.on('new-win-policy',(n,o,p)=>{i.info(`index.js new-win-policy ${o} ignore`),p.ignore()}),Win.on('close',()=>{i.info(`index.js close`),process.exit()}),Win.setMinimumSize(nw.App.manifest.window.width,nw.App.manifest.window.height),e(n=>{c(),i.info(`index.js init proxy with ${n} success!!`);let o=()=>{f.resize(document.body.offsetHeight),b.render(a.createElement(d,null),document.querySelector('#container'))};'complete'===document.readyState?o():window.addEventListener('load',o)})}tools.up(init); \ No newline at end of file +"use strict";function init(){var n=require("../dist/lib/react.js"),e=require("../dist/lib/react-dom.js"),i=require("../dist/common/loadInit/init.js"),o=require("../dist/components/ContainController.js"),t=require("../dist/common/proxy/startProxy.js"),r=require("../dist/actions/windowActions.js"),s=require("../dist/actions/webviewActions.js"),u=require("../dist/stores/webviewStores.js"),d=require("../dist/common/log/log.js"),c=require("../dist/common/shortCut/shortCut.js"),l=global.appConfig.isDev;if("darwin"===process.platform){var a=require("../dist/common/menu/menu.js");nw.Window.get().menu=a}nw.App.on("open",function(n){var e=tools.getArgsURL(n);if(e){d.info("index.js Reopen App with url: "+e);var i=u.getCurrentWebviewID();s.getA8keyWebview(i,{url:e,isSync:!0,from:"urlbar"})}nw.Window.get().focus()}),nw.App.argv.indexOf("inspect")!==-1&&tools.openInspectWin();var w=tools.getArgsURL(nw.App.argv);w&&(d.info("index.js Open App with url: "+w),s.setInitURL(w)),c.register();var p=void 0;window.addEventListener("resize",function(){clearTimeout(p),p=setTimeout(function(){r.resize(document.body.offsetHeight)},20)}),window.addEventListener("keydown",function(n){var e=n.keyCode;123===e&&(r.changeDevtools(),n.preventDefault())}),!l&&window.addEventListener("contextmenu",function(n){n.preventDefault()}),Win.on("focus",function(){r.focus(),c.register()}),Win.on("blur",function(){r.blur(),c.unRegister()}),Win.on("navigation",function(n,e,i){d.info("index.js navigation "+e+" ignore"),nw.Shell.openExternal(e),i.ignore()}),Win.on("new-win-policy",function(n,e,i){d.info("index.js new-win-policy "+e+" ignore"),i.ignore()}),Win.on("close",function(){d.info("index.js close"),nw.App.quit()}),Win.setMinimumSize(nw.App.manifest.window.width,nw.App.manifest.window.height),document.addEventListener("mousewheel",function(n){n.ctrlKey&&n.preventDefault()}),t(function(t){i(),d.info("index.js init proxy with "+t+" success!!");var s=function(){r.resize(document.body.offsetHeight),e.render(n.createElement(o,null),document.querySelector("#container"))};"complete"===document.readyState?s():window.addEventListener("load",s)})}var tools=require("../dist/utils/tools.js"),Win=nw.Window.get();global.Win=Win,global.appConfig=tools.getAppConfig(),global.contentDocument=document,global.contentDocumentBody=document.body,global.contentWindow=window,tools.up(init); \ No newline at end of file diff --git a/app/dist/common/actions/actions.js b/app/dist/common/actions/actions.js index 75841567..eff73590 100644 --- a/app/dist/common/actions/actions.js +++ b/app/dist/common/actions/actions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/webviewActions.js'),b=require('../../stores/webviewStores.js'),c=require('../../actions/windowActions.js');_exports={reBuild:()=>{let d=b.getCurrentWebviewID();a.setWebviewAction(d,{act:'reBuild'})},showAbout:()=>{c.showAbout()},reload:()=>{let d=b.getCurrentWebviewID();a.setWebviewAction(d,{act:'reLoad'})},goback:()=>{let d=b.getCurrentWebviewID();a.setWebviewAction(d,{act:'goBack'})},goforward:()=>{let d=b.getCurrentWebviewID();a.setWebviewAction(d,{act:'goForward'})},focusAddressBar:()=>{let d=b.getCurrentWebviewID();c.focusAddressBar(d)},showSetting:()=>{c.showSetting()}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../actions/webviewActions.js"),t=require("../../stores/webviewStores.js"),r=require("../../actions/windowActions.js"),o=require("../../common/request/request.js"),i=(require("../../config/errcodeConfig.js"),require("../log/log.js")),n=require("../../config/urlConfig.js"),a=n.getBbsTicket,s=n.checkApiAuth,p=n.getAuthList,c=n.setAuth;_exports={reBuild:function(){var r=t.getCurrentWebviewID();e.setWebviewAction(r,{act:"reBuild"})},showAbout:function(){r.showAbout()},showChangeLog:function(){nw.Shell.openExternal("https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html")},reload:function(){var r=t.getCurrentWebviewID();e.setWebviewAction(r,{act:"reLoad"})},goback:function(){var r=t.getCurrentWebviewID();e.setWebviewAction(r,{act:"goBack"})},goforward:function(){var r=t.getCurrentWebviewID();e.setWebviewAction(r,{act:"goForward"})},focusAddressBar:function(){var e=t.getCurrentWebviewID();r.focusAddressBar(e)},showSetting:function(){r.showSetting()},jumpBbs:function(){o({url:a,needToken:1},function(e,t,o){if(!e){var i=JSON.parse(o),n=i.open_ticket;n?nw.Shell.openExternal("https://developers.weixin.qq.com/welogin?devcode="+n):r.showConfirm({content:"登录社区失败 错误信息 "+o,type:"alert",callback:function(){}})}})},checkApiAuth:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},i=e.appid,n=e.ext_appid,a=e.platform;o({url:s+"?appid="+i+"&ext_appid="+n+"&platform="+(a?1:0)+"&_r="+Math.random(),method:"post",body:JSON.stringify({appid:e.ext_appid?e.ext_appid:e.appid,jsapi:t}),needToken:1},function(e,t,o){var i=void 0;try{i=JSON.parse(o)}catch(e){return void r("system error "+o)}var n=i.baseresponse,a=n?parseInt(n.errcode):0,s=n.errmsg;0===a?r(null,{desc:i.auth_desc,scope:i.scope,state:i.state}):r(s)})},getAuthList:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},r=e.appid,n=e.ext_appid,a=e.platform;o({url:p+"?appid="+r+"&ext_appid="+n+"&platform="+(a?1:0)+"&_r="+Math.random(),method:"post",body:JSON.stringify({appid:e.ext_appid?e.ext_appid:e.appid}),needToken:1},function(e,r,o){var n=void 0;try{n=JSON.parse(o)}catch(e){return void t("system error "+o)}var a=n.baseresponse,s=a?parseInt(a.errcode):0;0===s?t(null,n.auth_item):(i.error("common/actions/actions.js getAuthList error "+s),t(s))})},setAuth:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},n=e.appid,a=e.ext_appid,s=e.platform;o({url:c+"?appid="+n+"&ext_appid="+a+"&platform="+(s?1:0)+"&_r="+Math.random(),method:"post",body:JSON.stringify({appid:e.ext_appid?e.ext_appid:e.appid,auth_item:t}),needToken:1},function(e,t,o){var n=void 0;try{n=JSON.parse(o)}catch(e){return void r("system error "+o)}var a=n.baseresponse,s=a?parseInt(a.errcode):0;0===s?r(null):(i.error("common/actions/actions.js setAuth error "+s),r(s))})}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/accountSdk.js b/app/dist/common/assdk/accountSdk.js index c9051792..79d974cf 100644 --- a/app/dist/common/assdk/accountSdk.js +++ b/app/dist/common/assdk/accountSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../stores/projectStores.js'),b=require('../../common/request/request.js'),{jsLoginURL:c,jsRefreshSessionURL:d}=require('../../config/urlConfig.js');_exports={login:function(f,g){let h=a.getProjectByHash(f.apphash),i=h.appid;b({url:`${c}?appid=${i}`,method:'post',body:JSON.stringify({scope:['snsapi_base']}),needToken:1},(j,k,l)=>{let m={},n='';j||200!==k.statusCode?n=j.toString():(l=JSON.parse(l),l.baseresponse&&(0==l.baseresponse.errcode?m={errMsg:'login:ok',code:l.code}:n=l.baseresponse.errmsg)),m.errMsg||(m.errMsg=`login:fail ${n}`),g(m)})},refreshSession:function(f,g){let h=a.getProjectByHash(f.apphash),i=h.appid;b({url:`${d}?appid=${i}`,method:'post',needToken:1},(j,k,l)=>{let m={},n='';j||200!==k.statusCode?n=j.toString():(l=JSON.parse(l),l.baseresponse&&(0==l.baseresponse.errcode?m={errMsg:'refreshSession:ok',expireIn:l.session_expire_in,err_code:l.baseresponse.errcode}:n=l.baseresponse.errmsg)),m.errMsg||(m.errMsg=`refreshSession:fail ${n}`),g(m)})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r){var a=e.appid,s=e.ext_appid,t=o.getCurrentProject()||{};p({url:g+"?appid="+a+"&ext_appid="+s+"&platform="+(t.platform?1:0),method:"post",needToken:1},function(e,a,s){var o={},t="";if(e||200!==a.statusCode)t=e.toString();else if(s=JSON.parse(s),s.baseresponse){var p=s.baseresponse.errcode;0==p?o={errMsg:"refreshSession:ok",expireIn:s.session_expire_in,err_code:s.baseresponse.errcode}:t=p==n?"invalid extAppID":p==d?"extAppID not auth":s.baseresponse.errmsg}o.errMsg||(o.errMsg="refreshSession:fail "+t),r(o)})}function r(e,r){var a=e.appid,s=e.ext_appid,t={scope:["snsapi_base"]},i=o.getCurrentProject()||{};p({url:c+"?appid="+a+"&ext_appid="+s+"&platform="+(i.platform?1:0),method:"post",body:JSON.stringify(t),needToken:1},function(e,a,s){var o={},t="";if(e||200!==a.statusCode)t=e.toString();else if(s=JSON.parse(s),s.baseresponse){var p=s.baseresponse.errcode;0==p?o={errMsg:"login:ok",code:s.code}:t=p==n?"invalid extAppID":p==d?"extAppID not auth":s.baseresponse.errmsg}o.errMsg||(o.errMsg="login:fail "+t),r(o)})}function a(e,r){var a="",s="",i="",u=e.args,c=u.data.api_name,g=o.getCurrentProject(),_={};g&&(a=e.appid,s=e.ext_appid,i=g.platform,_=o.getSdkUserAuthStorage(g));var h=function(e){"function"==typeof r&&(r(e),r=void 0)};p({url:l+"?appid="+a+"&ext_appid="+s+"&platform="+(i?1:0),method:"post",body:JSON.stringify({data:JSON.stringify(u.data||{})}),needToken:1},function(e,m,v){var b={},M="";if(!e&&200===m.statusCode&&(v=JSON.parse(v),v.baseresponse)){var S=v.baseresponse.errcode;if(0==S)try{b.data=JSON.parse(v.data),b.errMsg="operateWXData:ok"}catch(e){b.errMsg="operateWXData:fail"}else if(S==n)b.errMsg="operateWXData:fail invalid extAppID";else if(S==d)b.errMsg="operateWXData:fail extAppID not auth";else{if(S==f){var D=function(e,r){b.errMsg=e?"operateWXData:ok":"operateWXData:fail auth deny";var t=r[0];e?(_["operateWXData_"+c]=1,o.setUserAuthPemissionStorage(g,_)):h(b);var n={data:JSON.stringify(u.data||{}),grant_scope:t.scope,opt:e?1:2};p({url:l+"?appid="+a+"&ext_appid="+s+"&platform="+(i?1:0),method:"post",body:JSON.stringify(n),needToken:1},function(e,r,a){var s={};if(!e&&200===r.statusCode&&(a=JSON.parse(a),a.baseresponse&&0===a.baseresponse.errcode))try{s.data=JSON.parse(a.data),s.errMsg="operateWXData:ok"}catch(e){s.errMsg="operateWXData:fail"}s.errMsg||(s.errMsg="operateWXData:fail"),h(s)})};return void t.showAuthorizeConfirm({appicon_url:""+v.appicon_url,appname:v.appname,scope_list:[v.scope],callback:D})}M=v.baseresponse.errmsg}}b.errMsg||(b.errMsg="operateWXData:fail "+M),r(b)})}function s(e,r){var a="",s="",i=0,n=e.args,d=o.getCurrentProject();d&&(i=d.platform,a=e.appid,s=e.ext_appid);var f=function(e){"function"==typeof r&&(r(e),r=void 0)};p({url:_+"?appid="+a+"&ext_appid="+s+"&platform="+(i?1:0),method:"post",body:JSON.stringify({scope:n.scope||[]}),needToken:1},function(e,s,o){var i={},n="";if(!e&&200===s.statusCode&&(o=JSON.parse(o),o.baseresponse))if(i.body=o,0==o.baseresponse.errcode)i.errMsg="authorize:ok";else{if(o.baseresponse.errcode==-12e3){var d=function(e,r){i.errMsg=e?"authorize:ok":"authorize:fail auth deny",e||f(i);for(var s=[],o=0;o{b.on('')},destroy:()=>{b.removeListener('')},exec:(y,z)=>{let A=y.sdkName;a(A,function(B){B===w.Allow?v.hasOwnProperty(A)&&v[A](y,z):B===w.NoAllow?z({errMsg:`${A}:fail no permission`}):B===w.UserCancel&&z({errMsg:`${A}:cancel`})})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,i){var s=r.getCurrentProject(),o=r.getCurrentProjectConfig();if(s.isTourist)return i(v.Allow);if(o.permission&&o.permission[e]){var t=o.permission[e];return t&&0===t.state?i(v.Allow):4===t.state?g.checkApiAuth(s,e,function(r,t){if(null!==r)return void i(v.AuthFail,r);var n=t.state,u=t.scope,a=t.desc;if(1==n)i(v.Allow);else if(2==n)i(v.NoAllow);else if(4==n){var c=a||o.appname+" 希望获取 "+e+" 的操作权限,是否允许?";b(c,function(e){var r=[];e?(r.push({state:1,scope:u}),i(v.Allow)):(r.push({state:2,scope:u}),i(v.UserCancel)),g.setAuth(s,r)})}else i(v.AuthFail,"backend error")}):i(v.Allow)}i(v.Allow)}var r=require("../../stores/projectStores.js"),i=require("../../actions/windowActions.js"),s=require("./storageSdk.js"),o=require("./bluetoothSdk.js"),t=require("./navigatorSdk.js"),n=require("./uiSdk.js"),u=require("./locationSdk.js"),a=require("./deviceSdk.js"),c=require("./accountSdk.js"),l=require("./musicSdk.js"),d=require("./scanSdk.js"),j=require("./otherSdk.js"),f=require("./mediaSdk.js"),q=require("./fileSdk.js"),k=require("./networkSdk.js"),p=require("./nativeComponent.js"),S=require("./shareSdk.js"),A=require("./voiceSdk.js"),h=require("./paymentSdk.js"),m=require("./clipboard.js"),w=require("./cardSdk.js"),v=require("../../config/permissionConfig.js"),g=require("../actions/actions.js"),C=Object.assign({},s,o,t,n,u,a,c,l,d,j,f,q,k,p,S,A,m,h,w),b=function(e,r){i.showSimulatorConfirm({content:e,callback:r})};_exports={init:function(){},destroy:function(){},exec:function(r,i){var s=r.sdkName;e(s,function(e,o){e===v.Allow?C.hasOwnProperty(s)&&C[s](r,i):e===v.NoAllow?i({errMsg:s+":fail no permission"}):e===v.UserCancel?i({errMsg:s+":fail auth deny"}):e===v.AuthFail&&i({errMsg:s+":fail "+o})})}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/bluetoothSdk.js b/app/dist/common/assdk/bluetoothSdk.js new file mode 100644 index 00000000..5b348382 --- /dev/null +++ b/app/dist/common/assdk/bluetoothSdk.js @@ -0,0 +1 @@ +"use strict";function init(){function e(e){var r=function(e){j[e]&&N.stopCharacteristicNotifications(e,function(){j[e]=!1})};for(var t in j)r(t);var i=function(e){P[e]&&N.disconnect(e,function(){P[e]=!1})};for(var a in P)i(a);w.discovering&&l({},function(){}),w={available:!1,powered:!1,discovering:!1},_=!1}function r(e){if(!b.length)return!0;var r=e.uuids,t=b.some(function(e){return r.some(function(r){return r.toUpperCase().indexOf(e.toUpperCase())>=0})});return t}function t(e){if(r(e)&&w.discovering&&_&&(R||!x[e.address])){var t={name:e.name,deviceId:e.address,RSSI:e.inquiryRssi,advertisServiceUUIDs:e.uuids};x[t.deviceId]=t,V?U[t.deviceId]=t:i([t])}}function i(e){D.postMessageToAS({eventName:"onBluetoothDeviceFound",type:"ON_BLUETOOTH_EVENT",data:e})}function a(e){if(P.hasOwnProperty(e.address)&&_&&P[e.address]!==e.connected){var r={connected:e.connected,deviceId:e.address};P[e.address]=e.connected,D.postMessageToAS({eventName:"onBLEConnectionStateChanged",type:"ON_BLUETOOTH_EVENT",data:r})}}function n(e){if(_){var r=e.instanceId||e.uuid,t=j[r],i={value:A(e.value),deviceId:t.deviceId,serviceId:t.serviceId,characteristicId:r};D.postMessageToAS({eventName:"onBLECharacteristicValueChange",type:"ON_BLUETOOTH_EVENT",data:i})}}function s(e){M.getAdapterState(function(r){var t=r.available,i=r.powered,a=r.discovering;w={available:t,powered:i,discovering:a},e&&e()})}function o(e){s(e),M.onDeviceAdded.addListener(t),M.onDeviceChanged.addListener(a),M.onAdapterStateChanged.addListener(k),N.onCharacteristicValueChanged.addListener(n),L.on("RESTART_PROJECT",c),L.on("CLOSE_PROJECT",c),_=!0}function c(r,i){M.onDeviceAdded.removeListener(t),M.onDeviceChanged.removeListener(a),M.onAdapterStateChanged.removeListener(k),N.onCharacteristicValueChanged.removeListener(n),L.removeListener("RESTART_PROJECT",c),L.removeListener("CLOSE_PROJECT",c),e(i)}function d(e,r){return _?void r({errMsg:"openBluetoothAdapter:fail - already opened"}):void o(function(){w.available&&w.powered?r():r({errMsg:"openBluetoothAdapter:fail - bluetooth adapter unavailable"})})}function u(e,r){_?(c(),r()):r({errMsg:"closeBluetoothAdapter:fail - already closed"})}function v(e,r){M.getAdapterState(q(e,function(e,t){r(e?{errMsg:"getBluetoothAdapterState:fail - "+e.message}:w)}))}function f(e,r){if(w.discovering)r({errMsg:"startBluetoothDevicesDiscovery:fail - discovering devices"});else{b=e.args.services||[],R=e.args.allowDuplicatesKey||!1;var a=e.args.interval||0;M.getDevices(function(n){M.startDiscovery(q(e,function(e){if(e)r({errMsg:"startBluetoothDevicesDiscovery:fail - "+e.message});else if(r({discovering:w.discovering=!0}),0===a)n.forEach(function(e){t(e)});else{var s=n.map(function(e){var r={name:e.name,deviceId:e.address,RSSI:e.inquiryRssi,advertisServiceUUIDs:e.uuids};return x[r.deviceId]=r,r});i(s),V=setInterval(function(){var e=Object.keys(U);if(0!==e.length){var r=e.reduce(function(e,r){return e.push(U[r]),e},[]);i(r),U={}}},a)}}))})}}function l(e,r){M.stopDiscovery(q(e,function(e){e?r({errMsg:"stopBluetoothDevicesDiscovery:fail - "+e.message}):(r({discovering:w.discovering=!1}),V&&(clearInterval(V),V=null),R=!1,U={},x={})}))}function g(e,t){M.getDevices(q(e,function(e,i){if(e)t({errMsg:"getBluetoothDevices:fail - "+e.message});else{i=i||[];var a=i.filter(r).map(function(e){return{name:e.name,deviceId:e.address,RSSI:e.inquiryRssi,advertisServiceUUIDs:e.uuids}});t({devices:a})}}))}function p(e,r){M.getDevices(q(e,function(t,i){if(t)r({errMsg:"getConnectedBluetoothDevices:fail - "+t.message});else{i=i||[];var a=e.args.services,n=i.filter(function(e){return e.connected});Promise.all(n.map(function(e){return new Promise(function(r,t){N.getServices(e.address,function(e){var t=e.some(function(e){return e.isPrimary&&a.some(function(r){return r===e.uuid})});r(t)})})})).then(function(e){var t=n.reduce(function(r,t,i){return e[i]&&r.push({name:t.name,deviceId:t.address,RSSI:t.inquiryRssi}),r},[]);r({devices:t})})}}))}function h(e,r){var t=e.args.deviceId;P[t]=!1,N.connect(t,q(e,function(e){e?r({errMsg:"createBLEConnection:fail - "+e.message}):r()}))}function m(e,r){var t=e.args.deviceId;N.disconnect(t,q(e,function(e){e?r({errMsg:"closeBLEConnection:fail - "+e.message}):(P[t]=!1,r())}))}function B(e,r){var t=e.args.deviceId;N.getServices(t,q(e,function(e,t){if(e)r({errMsg:"getBLEDeviceServices:fail - "+e.message});else{t=t||[];var i=t.map(function(e){return{uuid:e.instanceId?e.instanceId:e.uuid,isPrimary:e.isPrimary}});r({services:i})}}))}function C(e,r){var t=e.args.serviceId;N.getCharacteristics(t,q(e,function(e,t){if(e)r({errMsg:"getBLEDeviceCharacteristics:fail - "+e.message});else{var i=["read","write","notify","indicate"];t=t||[];var a=t.map(function(e){return{uuid:e.instanceId||e.uuid,properties:e.properties.reduce(function(e,r){return e[r]=i.indexOf(r)>=0,e},{})}});r({characteristics:a})}}))}function E(e,r){var t=e.args.deviceId,i=e.args.serviceId,a=e.args.characteristicId;N.readCharacteristicValue(a,q(e,function(e,a){e?r({errMsg:"readBLECharacteristicValue:fail - "+e.message}):(r(),a.deviceId=t,a.serviceId=i,n(a))}))}function I(e,r){var t=e.args.characteristicId,i=O(e.args.value);N.writeCharacteristicValue(t,i,q(e,function(e){e?r({errMsg:"writeBLECharacteristicValue:fail - "+e.message}):r()}))}function S(e,r){var t=e.args.deviceId,i=e.args.serviceId,a=e.args.characteristicId,n=e.args.state,s=q(e,function(e){e?r({errMsg:"notifyBLECharacteristicValueChanged:fail - "+e.message}):r()});if(n){if(j[a])return;N.startCharacteristicNotifications(a,s),j[a]={deviceId:t,serviceId:i}}else{if(!j[a])return;N.stopCharacteristicNotifications(a,s),j[a]=null}}var y=require("../log/log.js"),L=require("../../stores/projectStores.js"),D=require("../../actions/webviewActions.js"),T=require("../../utils/base64"),A=T.arrayBufferToBase64,O=T.base64ToArrayBuffer,M=chrome.bluetooth,N=chrome.bluetoothLowEnergy,w={available:!1,powered:!1,discovering:!1},_=!1,b=[],R=!1,V=null,U={},x={},P={},j={},q=function(e,r){return function(){if(chrome.runtime.lastError)y.error("bluetoothSdk.js error, methodName: "+e.sdkName+", errMsg: "+chrome.runtime.lastError.message),r(chrome.runtime.lastError);else{var t=Array.from(arguments);y.info("method "+e.sdkName+" result: "+JSON.stringify(t)),r.apply(null,[null].concat(t))}}},k=q("",function(e,r){if(e)return void y.error("bluetoothSdk.js error","adapterState changed failed",e.message);var t=r.available,i=r.powered,a=r.discovering;w={available:t,powered:i,discovering:a},_&&D.postMessageToAS({eventName:"onBluetoothAdapterStateChange",type:"ON_BLUETOOTH_EVENT",data:w})});_exports={openBluetoothAdapter:d,closeBluetoothAdapter:u,getBluetoothAdapterState:v,startBluetoothDevicesDiscovery:f,stopBluetoothDevicesDiscovery:l,getBluetoothDevices:g,getConnectedBluetoothDevices:p,createBLEConnection:h,closeBLEConnection:m,getBLEDeviceServices:B,getBLEDeviceCharacteristics:C,readBLECharacteristicValue:E,writeBLECharacteristicValue:I,notifyBLECharacteristicValueChanged:S};var J="darwin"===process.platform;Object.getOwnPropertyNames(_exports).forEach(function(e){var r=_exports[e];_exports[e]=function(t,i){return J?_||"openBluetoothAdapter"===t.sdkName?void r.apply(_exports,arguments):void i({errMsg:e+":fail - 请先调用 wx.openBluetoothAdapter 接口进行初始化操作"}):void i({errMsg:e+":fail - 目前蓝牙调试功能暂不支持 Mac 以外的平台"})}})}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/cardSdk.js b/app/dist/common/assdk/cardSdk.js new file mode 100644 index 00000000..3eb86049 --- /dev/null +++ b/app/dist/common/assdk/cardSdk.js @@ -0,0 +1 @@ +"use strict";function init(){function r(r,e){e({errMsg:"addCard:fail 开发者工具尚未支持卡券接口,请在真机上调试"})}function e(r,e){e({errMsg:"openCard:fail 开发者工具尚未支持卡券接口,请在真机上调试"})}require("../log/log.js");_exports={addCard:r,openCard:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/clipboard.js b/app/dist/common/assdk/clipboard.js new file mode 100644 index 00000000..fcfee271 --- /dev/null +++ b/app/dist/common/assdk/clipboard.js @@ -0,0 +1 @@ +"use strict";function init(){var t=function(t,a){try{var r=nw.Clipboard.get(),e=r.get("text");a({errMsg:"getClipboardData:ok",data:e})}catch(t){a({errMsg:"getClipboardData:fail "+t})}},a=function(t,a){try{var r=nw.Clipboard.get();r.set(t.args.data,"text"),a({errMsg:"setClipboardData:ok"})}catch(t){a({errMsg:"setClipboardData:fail "+t})}};_exports={getClipboardData:t,setClipboardData:a}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/deviceSdk.js b/app/dist/common/assdk/deviceSdk.js index f0d76582..7da938bf 100644 --- a/app/dist/common/assdk/deviceSdk.js +++ b/app/dist/common/assdk/deviceSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(f,g,h){g({errMsg:h?'getNetworkTypeSync:ok':'getNetworkType:ok',networkType:d.getNetworkType()})}const b=require('../../actions/webviewActions.js'),c=require('../../actions/windowActions.js'),d=require('../../stores/webviewStores');require('../../stores/projectStores.js'),require('url'),require('path');const e=function(f,g){c.showSimulatorConfirm({content:f,callback:g})};_exports={getNetworkType:a,getNetworkTypeSync:function(g,h){a(g,h,!0)},getSystemInfo:function(g,h,i){b.sendASSDK('getSystemInfo',g,h)},getSystemInfoSync:function(g,h){b.sendASSDK('getSystemInfoSync',g,h)},makePhoneCall:function(g,h){let i=g.args.phoneNumber;e(`拨打 ${i}?【仅为模拟】`,j=>{j?h({errMsg:'makePhoneCall:ok'}):h({errMsg:'makePhoneCall:cancel'})})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r,t){r({errMsg:t?"getNetworkTypeSync:ok":"getNetworkType:ok",networkType:g.getNetworkType()})}function r(){var e=l.getCurrentProject(),r=g.getInfo(),t=u.getCurrentWebviewUrl(),o=w.parse(t);return o=o.pathname.replace(/^\//,"").replace(/\.html$/,""),{model:r.model,pixelRatio:r.dpr,screenWidth:r.width,screenHeight:r.height,windowWidth:r.width,windowHeight:p.isTabBar(e,o)?r.height-m:r.height,system:"iOS"===r.os?"iOS 10.0.1":"Android 5.0",language:"zh_CN",version:"6.5.6"}}function t(e,t,o){var n=r();n.errMsg="getSystemInfo:ok",t(n)}function o(e,t,o){var n=r();n.errMsg="getSystemInfoSync:ok",t(n)}function n(r,t){e(r,t,!0)}function i(e,r){var t=e.args.phoneNumber;f("拨打 "+t+"?【仅为模拟】",function(e){r(e?{errMsg:"makePhoneCall:ok"}:{errMsg:"makePhoneCall:cancel"})})}function s(e,r){var t=e.args,o=u.getSensorStatus();o.accelerometer=t.enable,u.setSensorStatus(o),r({errMsg:"enableAccelerometer:ok"})}function a(e,r){r({errMsg:"enableCompass:ok"})}var c=(require("../../actions/webviewActions.js"),require("../../actions/windowActions.js")),g=require("../../stores/webviewStores.js"),u=require("../../stores/windowStores.js"),l=require("../../stores/projectStores.js"),p=require("../../weapp/utils/projectManager.js"),w=require("url"),h=(require("path"),require("../../config/weappConfig.js")),m=h.default_tabheight,f=function(e,r){c.showSimulatorConfirm({content:e,callback:r})};_exports={getSystemInfoSync:o,getSystemInfo:t,getNetworkType:e,getNetworkTypeSync:n,makePhoneCall:i,enableAccelerometer:s,enableCompass:a}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/fileSdk.js b/app/dist/common/assdk/fileSdk.js index 629c1a05..618ef52a 100644 --- a/app/dist/common/assdk/fileSdk.js +++ b/app/dist/common/assdk/fileSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){require('../../actions/webviewActions.js');const a=require('../../stores/projectStores.js'),b=require('../../utils/file.js'),c=require('fs'),d=require('path'),e={'.doc':!0,'.xls':!0,'.ppt':!0,'.pdf':!0,'.docx':!0,'.xlsx':!0,'.pptx':!0};_exports={saveFile:function(g,h){let i=g.args,j=i.tempFilePath;var k=b.getFileStat(j);if(!j||!k)h({errMsg:'saveFile:fail file not found'});else{const m=a.getCurrentProjectConfig(),n=a.getCurrentProject();var l=b.getSavedFileList(n);if(1024*(1024*m.Setting.MaxFileStorageSize){let l={};i||200!==j.statusCode||(k=JSON.parse(k),0==k.status&&(l={latitude:k.result.location.lat,longitude:k.result.location.lng},l.errMsg='getLocation:ok')),l.errMsg||(l.errMsg='getLocation:fail timeout'),h(l)})},openLocation:function(g,h){let i=g.args,j=i.latitude,k=i.longitude,l=`marker=coord:${j},${k}`;l+=`;title:${encodeURIComponent(i.name||' ')}`,l+=`;addr:${encodeURIComponent(i.address||' ')}`,g.url=`${'http://apis.map.qq.com/tools/poimarker'}?type=0&${l}&key=${d}&referer=${e}`,c.sendASSDK('openLocation',g,h)},chooseLocation:function(g,h){a((i,j,k)=>{if(!i&&200===j.statusCode&&(k=JSON.parse(k),0==k.status)){let l=k.result.location.lat,m=k.result.location.lng;return g.url=`${'http://apis.map.qq.com/tools/locpicker'}?search=1&type=1&coord=${l},${m}&key=${d}&referer=${e}`,void c.sendASSDK('chooseLocation',g,h)}h({errMsg:'chooseLocation:fail timeout'})})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function t(t){var o=s.getGeoSetting();return o.checked?void t(null,{statusCode:200},JSON.stringify({status:0,result:{location:{lat:o.latitude,lng:o.longitude}},from:"Setting"})):p&&g?void t(null,{statusCode:200},JSON.stringify({status:0,result:{location:{lat:p,lng:g}}})):void r({url:u+"?key="+a,needToken:-1},t)}function o(o,e){t(function(t,o,i){var r={};t||200!==o.statusCode||(i=JSON.parse(i),0==i.status&&("Setting"!==i.from&&(p=i.result.location.lat,g=i.result.location.lng),r={latitude:i.result.location.lat,longitude:i.result.location.lng},r.errMsg="getLocation:ok")),r.errMsg||(r.errMsg="getLocation:fail timeout"),e(r)})}function e(t,o){var e=t.args,i=e.latitude,r=e.longitude,s="marker=coord:"+i+","+r;s+=";title:"+encodeURIComponent(e.name||" "),s+=";addr:"+encodeURIComponent(e.address||" "),t.url=c+"?type=0&"+s+"&key="+a+"&referer="+l,n.sendASSDK("openLocation",t,o)}function i(o,e){t(function(t,i,r){if(!t&&200===i.statusCode&&(r=JSON.parse(r),0==r.status)){var s=r.result.location.lat,u=r.result.location.lng;return o.url=d+"?search=1&type=1&coord="+s+","+u+"&key="+a+"&referer="+l,void n.sendASSDK("chooseLocation",o,e)}e({errMsg:"chooseLocation:fail timeout"})})}var r=require("../request/request.js"),n=require("../../actions/webviewActions.js"),s=require("../../stores/webviewStores.js"),a="JMRBZ-R4HCD-X674O-PXLN4-B7CLH-42BSB",l="wxdevtools",u="http://apis.map.qq.com/ws/location/v1/ip",c="http://apis.map.qq.com/tools/poimarker",d="http://apis.map.qq.com/tools/locpicker",p=void 0,g=void 0;_exports={getLocation:o,openLocation:e,chooseLocation:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/mediaSdk.js b/app/dist/common/assdk/mediaSdk.js index c6867363..2bc7a7c3 100644 --- a/app/dist/common/assdk/mediaSdk.js +++ b/app/dist/common/assdk/mediaSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(h){let i=document.createElement('input');i.style.display='none',i.setAttribute('type','file'),h.accept&&i.setAttribute('accept',h.accept),h.multiple&&i.setAttribute('multiple','multiple'),global.contentDocumentBody.appendChild(i),i.addEventListener('change',j=>{h.sucCall&&h.sucCall(j),global.contentDocumentBody.removeChild(i)}),i.addEventListener('cancel',j=>{h.cancelCall&&h.cancelCall(j),global.contentDocumentBody.removeChild(i)}),i.click()}require('../../utils/tools.js');const b=require('../../stores/projectStores.js'),c=require('../../utils/file.js'),d=require('path');require('url');const e=require('../../lib/imagesize.js'),f=require('fs');require('../../common/request/request.js'),require('../../weapp/utils/tools.js');const g=require('../../actions/webviewActions.js');_exports={chooseVideo:function(i,j){i.args,a({accept:'video/*',sucCall:k=>{let l=b.getProjectByHash(i.apphash),m=k.target.value.split(';'),n=[];m.forEach(o=>{let p=d.extname(o);n.push(c.copyFileToTemp(o,l.hash,p))}),j({errMsg:'chooseVideo:ok',tempFilePath:n[0]})},cancelCall:()=>{j({errMsg:'chooseVideo:cancel'})}})},chooseImage:function(i,j){let k=i.args,l=Number.isInteger(k.count)&&9>=k.count&&1<=k.count?k.count:9;a({accept:'image/*',multiple:1{let n=b.getProjectByHash(i.apphash),o=m.target.value.split(';');o=o.slice(0,l);let p=[];o.forEach(q=>{let r=d.extname(q);p.push(c.copyFileToTemp(q,n.hash,r))}),j({errMsg:'chooseImage:ok',tempFilePaths:p})},cancelCall:()=>{j({errMsg:'chooseImage:cancel'})}})},previewImage:function(i,j){g.sendASSDK('previewImage',i,j)},getImageInfo:function(i,j){let k=i.args.src,l=c.isAppTmpPath(k),m=b.getProjectByHash(i.apphash),n=l?c.getRealPath(k):d.join(m.projectpath,k);if(!f.existsSync(n))return void j({errMsg:'getImageInfo:fail file not exist'});let o=f.createReadStream(n);e(o,function(p,q){p?j({errMsg:`getImageInfo:fail ${p.toString()}`}):j({errMsg:'getImageInfo:ok',width:q.width,height:q.height})})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var t=document.createElement("input");t.style.display="none",t.setAttribute("type","file"),e.accept&&t.setAttribute("accept",e.accept),e.multiple&&t.setAttribute("multiple","multiple"),global.contentDocumentBody.appendChild(t),t.addEventListener("change",function(a){e.sucCall&&e.sucCall(a),global.contentDocumentBody.removeChild(t)}),t.addEventListener("cancel",function(a){e.cancelCall&&e.cancelCall(a),global.contentDocumentBody.removeChild(t)}),t.click()}function t(e){var t=m.lookup(e);return t.indexOf("video/")>=0}function a(e,t){h.sendASSDK("previewImage",e,t)}function i(a,i){var o=a.args,n=Number.isInteger(o.count)&&o.count<=9&&o.count>=1?o.count:9,r=o.mediaType||["video","image"],u=[],h=!1;r.indexOf("video")>=0&&u.push("video/*"),r.indexOf("image")>=0&&(h=!0,u.push("image/*")),e({accept:u.join(","),multiple:!!h&&n>1,sucCall:function(e){var o=c.getProjectByHash(a.apphash),r=e.target.value.split(";");r=r.slice(0,n);var u="";r.forEach(function(e){!u&&t(e)&&(u=e)});var h=[];if(u){var m=u,d=l.extname(m),g=p.statSync(m),v=s.copyFileToTemp(m,o.hash,d),f=document.createElement("video");f.setAttribute("src",v.replace("wxfile://","http://wxfile.open.weixin.qq.com/")),f.defaultMuted=!0,f.addEventListener("loadedmetadata",function(){f.play();var e=parseFloat(f.duration);e=isNaN(e)?0:e;var t=Math.min(100*e,500);setTimeout(function(){var e=document.createElement("canvas");e.width=f.videoWidth,e.height=f.videoHeight,e.getContext("2d").drawImage(f,0,0,e.width,e.height);var t=e.toDataURL().replace(/^data:image\/(jpg|png);base64,/,""),a=s.saveBase64DataToFile(o,t,".jpg");h.push({size:g.size,duration:f.duration,width:f.videoWidth,height:f.videoHeight,tempFilePath:v,thumbTempFilePath:a}),i({errMsg:"chooseMedia:ok",type:"video",tempFiles:h})},t)})}else r.forEach(function(e){var t=l.extname(e),a=p.statSync(e);h.push({tempFilePath:s.copyFileToTemp(e,o.hash,t),size:a.size})}),i({errMsg:"chooseMedia:ok",type:"image",tempFiles:h})},cancelCall:function(){i({errMsg:"chooseMedia:cancel"})}})}function o(t,a){var i=t.args,o=Number.isInteger(i.count)&&i.count<=9&&i.count>=1?i.count:9;e({accept:"image/*",multiple:o>1,sucCall:function(e){var i=c.getProjectByHash(t.apphash),n=e.target.value.split(";");n=n.slice(0,o);var r=[];n.forEach(function(e){var t=l.extname(e);r.push(s.copyFileToTemp(e,i.hash,t))}),a({errMsg:"chooseImage:ok",tempFilePaths:r})},cancelCall:function(){a({errMsg:"chooseImage:cancel"})}})}function n(t,a){t.args;e({accept:"video/*",sucCall:function(e){var i=c.getProjectByHash(t.apphash),o=e.target.value.split(";"),n=[],r=o[0],u=l.extname(r);n.push(s.copyFileToTemp(r,i.hash,u)),a({errMsg:"chooseVideo:ok",tempFilePath:n[0]})},cancelCall:function(){a({errMsg:"chooseVideo:cancel"})}})}function r(e,t){var a=e.args.src,i=s.isAppTmpPath(a),o=c.getProjectByHash(e.apphash),n=i?s.getRealPath(a):l.join(o.projectpath,a);if(!p.existsSync(n))return void t({errMsg:"getImageInfo:fail file not exist"});var r=p.createReadStream(n);u(r,function(e,a){t(e?{errMsg:"getImageInfo:fail "+e.toString()}:{errMsg:"getImageInfo:ok",width:a.width,height:a.height})})}var c=(require("../../utils/tools.js"),require("../../stores/projectStores.js")),s=require("../../utils/file.js"),l=require("path"),u=(require("url"),require("../../lib/imagesize.js")),p=require("fs"),h=(require("../../common/request/request.js"),require("../../weapp/utils/tools.js"),require("../../actions/webviewActions.js")),m=require("mime-types");_exports={chooseVideo:n,chooseImage:o,previewImage:a,getImageInfo:r,chooseMedia:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/musicSdk.js b/app/dist/common/assdk/musicSdk.js index 3709a766..25a0c429 100644 --- a/app/dist/common/assdk/musicSdk.js +++ b/app/dist/common/assdk/musicSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/windowActions.js');_exports={getMusicPlayerState:function(c,d){c.args,a.getMusicPlayerState(function(e){e.errMsg='getMusicPlayerState:ok',d(e)})},operateMusicPlayer:function(c,d){let e=c.args;a.operateMusicPlayer(e),d({errMsg:'operateMusicPlayer:ok'})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,t){e.args;r.getMusicPlayerState(function(e){e.errMsg="getMusicPlayerState:ok",t(e)})}function t(e,t){var i=e.args;r.operateMusicPlayer(i),t({errMsg:"operateMusicPlayer:ok"})}var r=require("../../actions/windowActions.js");_exports={getMusicPlayerState:e,operateMusicPlayer:t}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/nativeComponent.js b/app/dist/common/assdk/nativeComponent.js index 16d7535b..e21b27f3 100644 --- a/app/dist/common/assdk/nativeComponent.js +++ b/app/dist/common/assdk/nativeComponent.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/webviewActions.js');_exports={showToast:function(c,d){a.sendASSDK('showToast',c,d)},hideToast:function(c,d){a.sendASSDK('hideToast',c,d)},showActionSheet:function(c,d){a.sendASSDK('showActionSheet',c,d)},showModal:function(c,d){a.sendASSDK('showModal',c,d)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function o(o,s){n.sendASSDK("showModal",o,s)}function s(o,s){n.sendASSDK("showToast",o,s)}function t(o,s){n.sendASSDK("hideToast",o,s)}function e(o,s){n.sendASSDK("showActionSheet",o,s)}var n=require("../../actions/webviewActions.js");_exports={showToast:s,hideToast:t,showActionSheet:e,showModal:o}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/navigatorSdk.js b/app/dist/common/assdk/navigatorSdk.js index 75ea1fec..859b563a 100644 --- a/app/dist/common/assdk/navigatorSdk.js +++ b/app/dist/common/assdk/navigatorSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(e){let f=e.apphash,g=d.getProjectByHash(f);e.args.url=`${c.getBaseURL(g)}${e.args.url}`}const b=require('../../actions/webviewActions.js');require('../../config/config.js');const c=require('../../weapp/utils/tools.js'),d=require('../../stores/projectStores.js');_exports={navigateTo:function(f,g){a(f),b.sendASSDK('navigateTo',f,g)},navigateBack:function(f,g){b.sendASSDK('navigateBack',f,g)},redirectTo:function(f,g){a(f),b.sendASSDK('redirectTo',f,g)},switchTab:function(f,g){a(f),b.sendASSDK('switchTab',f,g)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var t=e.apphash,n=c.getProjectByHash(t);e.args.url=""+a.getBaseURL(n)+e.args.url}function t(t,n){e(t),o.sendASSDK("navigateTo",t,n)}function n(t,n){e(t),o.sendASSDK("redirectTo",t,n)}function i(e,t){o.sendASSDK("navigateBack",e,t)}function r(t,n){e(t),o.sendASSDK("switchTab",t,n)}function s(t,n){e(t),o.sendASSDK("reLaunch",t,n)}var o=require("../../actions/webviewActions.js"),a=(require("../../config/config.js"),require("../../weapp/utils/tools.js")),c=require("../../stores/projectStores.js");_exports={navigateTo:t,navigateBack:i,redirectTo:n,switchTab:r,reLaunch:s}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/networkSdk.js b/app/dist/common/assdk/networkSdk.js index 020d7293..83870f0b 100644 --- a/app/dist/common/assdk/networkSdk.js +++ b/app/dist/common/assdk/networkSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(l){let m=l.apphash,n=b.getProjectByHash(m),o=n.isTourist,p=n.urlCheck,q=!0;return o?q=!1:!p&&(q=!1),q}const b=require('../../stores/projectStores.js'),c=require('path'),d=require('../../utils/file'),e=require('fs'),f=require('request'),g=require('../../utils/tools.js'),h=require('../../config/appserviceConfig.js');let j=0,k=0;_exports={downloadFile:function(m,n){let o=m.args,p=b.getCurrentProject(),q=b.getCurrentProjectConfig(),r=1024*(1024*h.DownloadFileSizeLimit);if(k>=q.Setting.MaxDownloadConcurrent)return void n({errMsg:`downloadFile:fail exceed max download connection count ${q.Setting.MaxDownloadConcurrent}`});k++;let s=0,t=200,u=d.createNewLocalId(p)+c.extname(o.url),v=d.getRealPath(u);const w=A=>{'function'==typeof n&&(n(A),k--,n=void 0)};let x={method:'get',url:o.url,encoding:null,headers:o.header||{},followRedirect:function(A){let B=!1;(p.urlCheck||p.isTourist)&&(B=!0);let C=A.statusCode;if(300<=C&&400>C&&(302==C||301==C)){let D=A.caseless.get('location'),E=q.Network.DownloadDomain;for(let F=0;F{if(console.log(A),t=A.statusCode,200!=t&&206!=t)w({errMsg:`downloadFile:ok`,statusCode:t});else{let B=parseInt(A.headers['content-length']);B>r&&(z.abort(),w({errMsg:`downloadFile:fail exceed max file size`}))}}).on('error',function(A){A&&'EPROTO'===A.code?w({errMsg:'downloadFile:fail \u5C0F\u7A0B\u5E8F\u8981\u6C42\u7684 TLS \u7248\u672C\u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 1.2'}):w({errMsg:'downloadFile:fail '+A})}).on('data',A=>{s+=A.length,s>r&&(z.abort(),w({errMsg:`downloadFile:fail exceed max file size`}))}).on('end',A=>{w({errMsg:'downloadFile:ok',tempFilePath:u,statusCode:t})}).pipe(e.createWriteStream(v))},uploadFile:function(m,n){let o=m.args,p=b.getCurrentProjectConfig();return j>=p.Setting.MaxUploadConcurrent?void n({errMsg:`uploadFile:fail exceed max upload connection count ${p.Setting.MaxUploadConcurrent}`}):void(j++,o.tlsVersionCheck=a(m),o.callback=(q,r,s)=>{q?q&&'EPROTO'===q.code?n({errMsg:'uploadFile:fail \u5C0F\u7A0B\u5E8F\u8981\u6C42\u7684 TLS \u7248\u672C\u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 1.2'}):n({errMsg:'uploadFile:fail '+q}):n({errMsg:'uploadFile:ok',data:s,statusCode:r.statusCode}),j--},d.uploadFileToServer(o))}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var o=e.apphash,r=t.getProjectByHash(o),n=r.isTourist,i=r.urlCheck,a=!0;return n?a=!1:i||(a=!1),a}function o(o,r){var n=o.args,a=t.getCurrentProjectConfig();return u>=a.Setting.MaxUploadConcurrent?void r({errMsg:"uploadFile:fail exceed max upload connection count "+a.Setting.MaxUploadConcurrent}):(u++,n.tlsVersionCheck=e(o),n.callback=function(e,o,t){r(e?e&&"EPROTO"===e.code?{errMsg:"uploadFile:fail 小程序要求的 TLS 版本必须大于等于 1.2"}:{errMsg:"uploadFile:fail "+e}:{errMsg:"uploadFile:ok",data:t,statusCode:o.statusCode}),u--},void i.uploadFileToServer(n))}function r(o,r){var u=o.args,f=t.getCurrentProject(),g=t.getCurrentProjectConfig(),p=1024*d.DownloadFileSizeLimit*1024;if(c>=g.Setting.MaxDownloadConcurrent)return void r({errMsg:"downloadFile:fail exceed max download connection count "+g.Setting.MaxDownloadConcurrent});c++;var x=0,C=200,v=i.createNewLocalId(f)+n.extname(u.url.split("?")[0]),h=i.getRealPath(v),F=function(e){"function"==typeof r&&(r(e),c--,r=void 0)},w={method:"get",url:u.url,encoding:null,headers:u.header||{},followRedirect:function(e){var o=!1;(f.urlCheck||f.isTourist)&&(o=!0);var r=e.statusCode;if(r>=300&&r<400&&(302==r||301==r))for(var t=e.caseless.get("location"),n=g.Network.DownloadDomain,i=0;ip&&(m.abort(),F({errMsg:"downloadFile:fail exceed max file size"}))}}).on("error",function(e){F(e&&"EPROTO"===e.code?{errMsg:"downloadFile:fail 小程序要求的 TLS 版本必须大于等于 1.2"}:{errMsg:"downloadFile:fail "+e})}).on("data",function(e){x+=e.length,x>p&&(m.abort(),F({errMsg:"downloadFile:fail exceed max file size"}))}).on("end",function(e){F({errMsg:"downloadFile:ok",tempFilePath:v,statusCode:C})}).pipe(a.createWriteStream(h))}var t=require("../../stores/projectStores.js"),n=require("path"),i=require("../../utils/file"),a=require("fs"),l=require("request"),s=require("../../utils/tools.js"),d=require("../../config/appserviceConfig.js"),u=0,c=0;_exports={downloadFile:r,uploadFile:o}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/otherSdk.js b/app/dist/common/assdk/otherSdk.js index f7102af9..9bb250f2 100644 --- a/app/dist/common/assdk/otherSdk.js +++ b/app/dist/common/assdk/otherSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/webviewActions.js');_exports={stopPullDownRefresh:function(c,d){a.stopPullDownRefresh(c,d),d({errMsg:'stopPullDownRefresh:ok'})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,t){o.stopPullDownRefresh(e,t),t({errMsg:"stopPullDownRefresh:ok"})}function t(e,t){o.sendASSDK("openSetting",e,t)}var o=require("../../actions/webviewActions.js");_exports={openSetting:t,stopPullDownRefresh:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/paymentSdk.js b/app/dist/common/assdk/paymentSdk.js index 529156a9..11451ae7 100644 --- a/app/dist/common/assdk/paymentSdk.js +++ b/app/dist/common/assdk/paymentSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(h){f.showTipsMsg({msg:h,type:'error'})}const b=require('../request/request.js'),{DEV_BIND_NOT_24H:c}=require('../../config/errcodeConfig.js'),{paymentURL:d}=require('../../config/urlConfig.js'),f=require('../../actions/windowActions.js'),g=require('../../actions/webviewActions.js');_exports={requestPayment:function(i,j){JSON.stringify(i.args),b({url:`${d}?appid=${i.appid}`,loginForc:1,needToken:1,method:'post',body:JSON.stringify({payment_args:JSON.stringify(i.args)})},(k,l,m)=>{if(k)a(JSON.stringify(k)),j({errMsg:`requestPayment:fail`});else{let n;try{n=JSON.parse(m)}catch(q){return a(`系统错误 ${JSON.stringify(q)}`),log.error(`paymentSdk.js parse body error: ${m} ${JSON.stringify(k)}`),void j({errMsg:`requestPayment:fail`})}let o=n.baseresponse,p=o?parseInt(o.errcode):0;if(0===p)g.sendASSDK('requestPayment',{uuid:n.wxa_pay_uuid,qrcode:n.qrcode_img},j);else if(p===c){let q=`当前开发者绑定时间不足 24 小时,请过后重试`;a(q),j({errMsg:`requestPayment:fail ${q}`})}else a(`系统错误,错误码 ${p},错误信息 ${o.errmsg}`),j({errMsg:`requestPayment:fail`})}})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){s.showTipsMsg({msg:e,type:"error"})}function r(r,a){var s=(JSON.stringify(r.args),r.appid),n=r.ext_appid,p=o.getCurrentProject();t({url:f+"?appid="+s+"&ext_appid="+n+"&platform="+(p.platform?1:0),loginForc:1,needToken:1,method:"post",body:JSON.stringify({payment_args:JSON.stringify(r.args)})},function(r,t,o){if(r)e(JSON.stringify(r)),a({errMsg:"requestPayment:fail"});else{var c=void 0;try{c=JSON.parse(o)}catch(t){return e("系统错误 "+JSON.stringify(t)),log.error("paymentSdk.js parse body error: "+o+" "+JSON.stringify(r)),void a({errMsg:"requestPayment:fail"})}var f=c.baseresponse,l=f?parseInt(f.errcode):-1;if(0===l)m({uuid:c.wxa_pay_uuid,qrcode:c.qrcode_img,platform:p.platform,appid:s,ext_appid:n,callback:a});else if(l===i){var y="当前开发者绑定时间不足 24 小时,请过后重试";e(y),a({errMsg:"requestPayment:fail "+y})}else l===u?(e("无效的 extAppID"),a({errMsg:"requestPayment:fail invalid extAppID"})):l===d?(e("extAppID 未授权"),a({errMsg:"requestPayment:fail extAppID not auth"})):(e("系统错误,错误码 "+l+",错误信息 "+f.errmsg),a({errMsg:"requestPayment:fail"}))}})}var t=require("../request/request.js"),a=require("../../config/errcodeConfig.js"),i=a.DEV_BIND_NOT_24H,s=require("../../actions/windowActions.js"),n=require("../../actions/webviewActions.js"),o=(require("../../weapp/utils/projectManager.js"),require("../../stores/projectStores.js")),p=require("../../config/errcodeConfig.js"),u=p.DEV_PLATFORM_INVALID_EXT_APPID,d=p.DEV_PLATFORM_EXT_APPID_NOT_AUTH,c=require("../../config/urlConfig.js"),f=c.paymentURL,l=c.paymentStateURL,y=null,g=function(){y&&(clearInterval(y),y=null)},m=function(r){var a=r.uuid,i=r.qrcode,s=r.appid,o=r.ext_appid,p=r.platform,u=r.callback,d=function(e){g(),u&&u(e)};g(),n.operatePaymentQrcodeWnd({callback:function(){d({errMsg:"requestPayment:fail"})},type:"show",uuid:a,qrcode:i}),y=setInterval(function(){t({url:l+"?appid="+s+"&ext_appid="+o+"&platform="+(p?1:0),loginForc:1,needToken:1,method:"post",body:JSON.stringify({wxa_pay_uuid:a})},function(r,t,a){if(r)e({msg:JSON.stringify(r),type:"error"}),d({errMsg:"requestPayment:fail"});else{var i=void 0;try{i=JSON.parse(a)}catch(t){return e("系统错误 "+JSON.stringify(t)),log.error("paymentSdk.js payment parse body error: "+a+" "+JSON.stringify(r)),void d({errMsg:"requestPayment:fail"})}var s=i.baseresponse,o=s?parseInt(s.errcode):-1;if(0===o){var p=parseInt(i.qrcode_state);if(4===p||3===p)return void n.operatePaymentQrcodeWnd({type:"update",qrcodeState:p});if(5===p){var u=JSON.parse(i.payment_ret);return u.errMsg=u.err_msg.replace(/^get_brand_wcpay_request/,"requestPayment"),delete u.err_msg,d(u),void n.operatePaymentQrcodeWnd({type:"close"})}e(1===p?"UUID 错误":2===p?"等待超时,请重试":"系统错误 错误码 "+p),d({errMsg:"requestPayment:fail"})}else e("系统错误,错误码 "+o+",错误信息 "+s.errmsg)}})},3e3)};_exports={requestPayment:r}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/scanSdk.js b/app/dist/common/assdk/scanSdk.js index 988893e1..0674a1dd 100644 --- a/app/dist/common/assdk/scanSdk.js +++ b/app/dist/common/assdk/scanSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(f){let g=document.createElement('input');g.style.display='none',g.setAttribute('type','file'),g.setAttribute('accept','image/*'),global.contentDocumentBody.appendChild(g),g.addEventListener('change',h=>{f.sucCall&&f.sucCall(g.value),global.contentDocumentBody.removeChild(g)}),g.addEventListener('cancel',h=>{f.cancelCall&&f.cancelCall(h),global.contentDocumentBody.removeChild(g)}),g.click()}require('../../actions/webviewActions.js');const b=require('../request/request.js'),c=require('fs'),{jsDecodeQRCodeURL:d}=require('../../config/urlConfig.js');_exports={scanCode:function(g,h){let{appid:i,args:j}=g;a({sucCall:k=>{b({url:`${d}?appid=${i}`,method:'post',body:c.readFileSync(k),needToken:1},(l,m,n)=>{if(l)return void h({errMsg:`scanCode:fail ${JSON.stringify(l)}`});try{n=JSON.parse(n)}catch(o){return void h({errMsg:`scanCode:fail ${JSON.stringify(o)}`})}n.result||n.path?h({errMsg:'scanCode:ok',result:n.result,scanType:n.scan_type,path:n.path,charSet:n.char_set}):h({errMsg:'scanCode:fail'})})},cancelCall:()=>{h({errMsg:'scanCode:cancel'})}})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var t=document.createElement("input");t.style.display="none",t.setAttribute("type","file"),t.setAttribute("accept","image/*"),global.contentDocumentBody.appendChild(t),t.addEventListener("change",function(n){e.sucCall&&e.sucCall(t.value),global.contentDocumentBody.removeChild(t)}),t.addEventListener("cancel",function(n){e.cancelCall&&e.cancelCall(n),global.contentDocumentBody.removeChild(t)}),t.click()}function t(t,a){var i=t.appid,s=t.ext_appid,l=(t.args,n.getCurrentProject());e({sucCall:function(e){r({url:c+"?appid="+i+"&ext_appid="+s+"&platform="+(l.platform?1:0),method:"post",body:o.readFileSync(e),needToken:1},function(e,t,n){if(e)return void a({errMsg:"scanCode:fail "+JSON.stringify(e)});try{n=JSON.parse(n)}catch(e){return void a({errMsg:"scanCode:fail "+JSON.stringify(e)})}if(n.result||n.path){var r=n.path?decodeURIComponent(n.path):"";a({errMsg:"scanCode:ok",result:n.result,scanType:n.scan_type,path:r,charSet:n.char_set})}else a({errMsg:"scanCode:fail"})})},cancelCall:function(){a({errMsg:"scanCode:cancel"})}})}var n=(require("../../actions/webviewActions.js"),require("../../stores/projectStores.js")),r=require("../request/request.js"),o=require("fs"),a=require("../../config/urlConfig.js"),c=a.jsDecodeQRCodeURL;_exports={scanCode:t}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/shareSdk.js b/app/dist/common/assdk/shareSdk.js index ecbf7e61..3e9efde9 100644 --- a/app/dist/common/assdk/shareSdk.js +++ b/app/dist/common/assdk/shareSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/webviewActions.js');require('../../config/config.js');const b=require('../../weapp/utils/tools.js'),c=require('../../stores/projectStores.js');_exports={shareAppMessage:function(e,f){let g=e.args,h=g.imgUrl;if(0!==h.indexOf('http')){let i=e.apphash,j=c.getProjectByHash(i),k=b.getBaseURL(j);g.imgUrl=`${k}${g.imgUrl}`}a.sendASSDK('shareAppMessage',e,f)},showShareMenu:function(e,f){a.sendASSDK('showShareMenu',e,f)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r){var s=e.args,i=s.imgUrl;if(0!==i.indexOf("http")){var a=e.apphash,h=o.getProjectByHash(a),u=n.getBaseURL(h);s.imgUrl=""+u+s.imgUrl}t.sendASSDK("shareAppMessage",e,r)}function r(e,r){t.sendASSDK("showShareMenu",e,r)}function s(e,r){t.sendASSDK("hideShareMenu",e,r)}function i(e,r){t.sendASSDK("showShareMenuWithShareTicket",e,r)}var t=require("../../actions/webviewActions.js"),n=(require("../../config/config.js"),require("../../weapp/utils/tools.js")),o=require("../../stores/projectStores.js");_exports={shareAppMessage:e,showShareMenu:r,hideShareMenu:s,showShareMenuWithShareTicket:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/storageSdk.js b/app/dist/common/assdk/storageSdk.js index 7ec1f42c..06f45e25 100644 --- a/app/dist/common/assdk/storageSdk.js +++ b/app/dist/common/assdk/storageSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(r,s){let t=l.getUserInfo(),u=t?t.openid:'guest';return k.join(q,`${r}_${s}_${u}.data.json`)}function b(r,s,t){let u=a(r,s);j.writeFileSync(u,JSON.stringify(t),'utf8'),n.upASData(r,t)}function c(r,s){let t=a(r,s),u;try{u=JSON.parse(j.readFileSync(t,'utf8'))}catch(v){u={},b(r,s,u)}return u}function d(r,s,t){let u=r.appid,v=r.appname,w=c(u,v),x=t?'getStorageSync':'getStorage',y=r.args,z=y.key,A=w[z],B;B=void 0===A?{errMsg:`${x}:fail`}:{errMsg:`${x}:ok`,data:A.data,dataType:A.dataType},s(B)}function f(r,s,t){let u=r.appid,v=r.appname,w=c(u,v),x=t?'setStorageSync':'setStorage',y=r.args,z=y.key,A=y.data,B=y.dataType;w[z]={data:A,dataType:B};let C=m.getProjectConfig({hash:r.apphash}),D=C?C.Setting.MaxLocalstorageSize:p;JSON.stringify(w).length>1024*(1024*D)?s({errMsg:`${x}:fail exceed storage max size ${D}Mb;`},{appid:u,storage:c(u,v)}):(b(u,v,w),s({errMsg:`${x}:ok`},{appid:u,storage:w}))}function g(r,s,t){let u=r.appid,v=r.appname;b(u,v,{}),s({errMsg:t?'clearStorageSync:ok':'clearStorage:ok'},{appid:g,storage:{}})}function h(r,s,t){let u=r.appid,v=r.appname,w=c(u,v),x=r.args,y=x.key;delete w[y],b(u,v,w),s({errMsg:t?'removeStorageSync:ok':'removeStorage:ok'},{appid:u,storage:w})}function i(r,s,t){let u=r.appid,v=r.appname,w=c(u,v),x={};x.keys=Object.keys(w),x.currentSize=Math.ceil(JSON.stringify(w).length/1024);let y=m.getProjectConfig({hash:r.apphash}),z=y?y.Setting.MaxLocalstorageSize:p;x.limitSize=1024*z,x.errMsg=t?'getStorageInfoSync:ok':'getStorageInfo:ok',s(x,{appid:u,storage:w})}const j=require('fs'),k=require('path'),l=require('../../stores/windowStores.js'),m=require('../../stores/projectStores.js'),n=require('../../actions/webviewActions.js'),o=require('../../config/dirConfig.js'),p=10;var q=o.WeappStorage;_exports={getStorage:d,clearStorage:g,setStorage:f,removeStorage:h,getStorageInfo:i,getStorageSync:function(s,t){d(s,t,!0)},setStorageSync:function(s,t){f(s,t,!0)},clearStorageSync:function(s,t){g(s,t,!0)},removeStorageSync:function(s,t){h(s,t,!0)},getStorageInfoSync:function(s,t){i(s,t,!0)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,a){var t=y.getUserInfo(),r=t?t.openid:"guest";return u.join(m,e+"_"+a+"_"+r+".data.json")}function a(a,t,r){var o=e(a,t);d.writeFileSync(o,JSON.stringify(r),"utf8"),l.upASData(a,r)}function t(t,r){var o=e(t,r),n=void 0;try{n=JSON.parse(d.readFileSync(o,"utf8"))}catch(e){n={},a(t,r,n)}return n}function r(e,a,r){var o=e.appid,n=e.appname,i=t(o,n),g=r?"getStorageSync":"getStorage",s=e.args,p=s.key,S=i[p],c=void 0;c=void 0!==S?{errMsg:g+":ok",data:S.data,dataType:S.dataType}:{errMsg:g+":fail data not found"},a(c)}function o(e,r,o){var n=e.appid,i=e.appname,g=t(n,i),s=o?"setStorageSync":"setStorage",p=e.args,S=p.key,c=p.data,f=p.dataType;g[S]={data:c,dataType:f};var d=v.getProjectConfig({hash:e.apphash}),u=d?d.Setting.MaxLocalstorageSize:k;JSON.stringify(g).length>1024*u*1024?r({errMsg:s+":fail exceed storage max size "+u+"Mb;"},{appid:n,storage:t(n,i)}):(a(n,i,g),r({errMsg:s+":ok"},{appid:n,storage:g}))}function n(e,t,r){var o=e.appid,i=e.appname;a(o,i,{}),t({errMsg:r?"clearStorageSync:ok":"clearStorage:ok"},{appid:n,storage:{}})}function i(e,r,o){var n=e.appid,i=e.appname,g=t(n,i),s=e.args,p=s.key;delete g[p],a(n,i,g),r({errMsg:o?"removeStorageSync:ok":"removeStorage:ok"},{appid:n,storage:g})}function g(e,a,r){var o=e.appid,n=e.appname,i=t(o,n),g={};g.keys=Object.keys(i),g.currentSize=Math.ceil(JSON.stringify(i).length/1024);var s=v.getProjectConfig({hash:e.apphash}),p=s?s.Setting.MaxLocalstorageSize:k;g.limitSize=1024*p,g.errMsg=r?"getStorageInfoSync:ok":"getStorageInfo:ok",a(g,{appid:o,storage:i})}function s(e,a){g(e,a,!0)}function p(e,a){i(e,a,!0)}function S(e,a){n(e,a,!0)}function c(e,a){r(e,a,!0)}function f(e,a){o(e,a,!0)}var d=require("fs"),u=require("path"),y=require("../../stores/windowStores.js"),v=require("../../stores/projectStores.js"),l=require("../../actions/webviewActions.js"),h=require("../../config/dirConfig.js"),k=10,m=h.WeappStorage;_exports={getStorage:r,clearStorage:n,setStorage:o,removeStorage:i,getStorageInfo:g,getStorageSync:c,setStorageSync:f,clearStorageSync:S,removeStorageSync:p,getStorageInfoSync:s}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/uiSdk.js b/app/dist/common/assdk/uiSdk.js index d3bb6999..4f924968 100644 --- a/app/dist/common/assdk/uiSdk.js +++ b/app/dist/common/assdk/uiSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../actions/webviewActions.js');_exports={setNavigationBarTitle:function(c,d){a.sendASSDK('setNavigationBarTitle',c,d)},showNavigationBarLoading:function(c,d){a.sendASSDK('showNavigationBarLoading',c,d)},hideNavigationBarLoading:function(c,d){a.sendASSDK('hideNavigationBarLoading',c,d)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function i(i,a){t.sendASSDK("setNavigationBarTitle",i,a)}function a(i,a){t.sendASSDK("showNavigationBarLoading",i,a)}function n(i,a){t.sendASSDK("hideNavigationBarLoading",i,a)}var t=require("../../actions/webviewActions.js");_exports={setNavigationBarTitle:i,showNavigationBarLoading:a,hideNavigationBarLoading:n}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/assdk/voiceSdk.js b/app/dist/common/assdk/voiceSdk.js index cb0622a3..92a4f8f4 100644 --- a/app/dist/common/assdk/voiceSdk.js +++ b/app/dist/common/assdk/voiceSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../log/log.js'),b=require('../../utils/file.js'),c=require('../../stores/projectStores.js'),d=require('../../actions/webviewActions.js'),f=require('fs'),g={audio:!0},h={mimeType:'audio/webm'};var i,j,k,l,m;_exports={startRecord:function(o,p){navigator.mediaDevices.getUserMedia(g).then(q=>{i=q,j=[];try{k=new MediaRecorder(i,h)}catch(r){return a.error('voiceSdk.js Exception while creating MediaRecorder: '+r),void p({errMsg:`startRecord:fail ${JSON.stringify(r)}`})}k.onstop=()=>{let r=c.getCurrentProject(),t=new Blob(j,{type:'audio/webm'}),u=new FileReader;u.addEventListener('loadend',()=>{let v=b.copyFileDataToTemp(u.result,r.hash,'.silk');p({errMsg:'startRecord: ok',tempFilePath:v}),k=void 0}),u.readAsDataURL(t),d.toggleRecordWording(!1)},k.ondataavailable=r=>{r.data&&0{k&&k.stop()},60000),k.start(10),d.toggleRecordWording(!0)}).catch(q=>{p({errMsg:`startRecord:fail 未找到或者无权限调用录音设备`})})},stopRecord:function(o,p){clearTimeout(l),k&&k.stop(),p({errMsg:'stopRecord:ok'})},playVoice:function(o,p){let q=o.args,r=q.filePath,t=b.getRealPath(r);if(m&&m.dataset.filePath!==r)m.remove();else if(m&&m.dataset.filePath===r)return void m.play();m=document.createElement('audio'),document.body.appendChild(m),f.readFile(t,'utf8',(u,v)=>{u?p({errMsg:`playVoice:fail read ${r} error`}):(m.src=v,m.play(),m.dataset.filePath=r,p({errMsg:'playVoice:ok'}))})},pauseVoice:function(o,p){m&&m.pause(),p({errMsg:'pauseVoice:ok'})},stopVoice:function(o,p){m&&m.remove(),m=void 0,p({errMsg:'pauseVoice:ok'})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,t){navigator.mediaDevices.getUserMedia(v).then(function(e){a=e,s=[];try{n=new MediaRecorder(a,m)}catch(e){return u.error("voiceSdk.js Exception while creating MediaRecorder: "+e),void t({errMsg:"startRecord:fail "+JSON.stringify(e)})}n.onstop=function(){var e=p.getCurrentProject(),r=new Blob(s,{type:"audio/webm"}),o=new FileReader;o.addEventListener("loadend",function(){var r=l.copyFileDataToTemp(o.result,e.hash,".silk");t({errMsg:"startRecord:ok",tempFilePath:r}),n=void 0}),o.readAsDataURL(r),f.toggleRecordWording(!1)},n.ondataavailable=function(e){e.data&&e.data.size>0&&s.push(e.data)},clearTimeout(c),c=setTimeout(function(){n&&n.stop()},6e4),n.start(10),f.toggleRecordWording(!0)}).catch(function(e){t({errMsg:"startRecord:fail 未找到或者无权限调用录音设备"})})}function t(e,t){clearTimeout(c),n&&n.stop(),t({errMsg:"stopRecord:ok"})}function r(e,t){var r=e.args,o=r.filePath,i=l.getRealPath(o);if(d&&d.dataset.filePath!==o)d.remove();else if(d&&d.dataset.filePath===o)return void d.play();d=document.createElement("audio"),document.body.appendChild(d),g.readFile(i,"utf8",function(e,r){e?t({errMsg:"playVoice:fail read "+o+" error"}):(d.src=r,d.play(),d.dataset.filePath=o,t({errMsg:"playVoice:ok"}))})}function o(e,t){d&&d.pause(),t({errMsg:"pauseVoice:ok"})}function i(e,t){d&&d.remove(),d=void 0,t({errMsg:"pauseVoice:ok"})}var a,s,n,c,d,u=require("../log/log.js"),l=require("../../utils/file.js"),p=require("../../stores/projectStores.js"),f=require("../../actions/webviewActions.js"),g=require("fs"),v={audio:!0},m={mimeType:"audio/webm"};_exports={startRecord:e,stopRecord:t,playVoice:r,pauseVoice:o,stopVoice:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/getA8key/getA8key.js b/app/dist/common/getA8key/getA8key.js index 7a73abaf..279e0279 100644 --- a/app/dist/common/getA8key/getA8key.js +++ b/app/dist/common/getA8key/getA8key.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(e){let f={},g=e.length;for(let h=0;h{let g=c.parseURL(e.url),h={url:g,scene:1,devtoolsVersion:c.getVersionNum(),reason:e.isSync?0:1},j={url:b.GET8KEY_URL,body:JSON.stringify(h),method:'post',needToken:1};const k=require('../request/request.js');k(j,(l,m,n)=>{if(!l){let o=JSON.parse(n);o.purviewFormGetA8key=o.jsapi_control_bytes?a(o.jsapi_control_bytes):null,f(o)}})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){for(var r={},s=e.length,o=0;o{let e=b.args,f=e.jsApiList,g=c.purviewFromPreVerify||{},h={};f.forEach(i=>{g[i]&&(h[i]=!0)}),d({errMsg:"checkJsApi:ok",checkResult:h})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=function(r,e,i,t){var s=e.args,o=s.jsApiList,c=i.purviewFromPreVerify||{},n={};o.forEach(function(r){c[r]&&(n[r]=!0)});var p={errMsg:"checkJsApi:ok",checkResult:n};t(p)};_exports={exec:r}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/cardSdk.js b/app/dist/common/jssdk/cardSdk.js index 21a0bdbf..cf9d7fcf 100644 --- a/app/dist/common/jssdk/cardSdk.js +++ b/app/dist/common/jssdk/cardSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../log/log.js'),b=require('../../config/urlConfig.js');require('../../config/errcodeConfig.js');const c=b.batchAddCardURL,d=b.chooseCardURL,e=b.batchViewCardURL;_exports={exec:(f,g,h,j)=>{const k=require('../request/request.js');let l=g.sdkName,m=g.args,n=m.appId;if('batchAddCard'===l){let o=m.card_list||[],p={},q=[];for(let s=0,t=o.length;s{if(!s){a.info(`cardSdk.js batchAddCard get ${u}`);let v=JSON.parse(u),w=v.baseresponse,x=w.errcode;if(0===x){let y=v.json_ret_list.map(z=>{return z=JSON.parse(z),z.amount=p[z.card_tp_id],z});j(null,y)}else j(w,[])}else a.error(`cardSdk.js batchAddCard error ${JSON.stringify(s)}`),j(s)})}else if('chooseCard'===l){let o={appid:n,shop_id:m.location_id||0,sign_type:m.sign_type,card_sign:m.card_sign,time_stamp:m.time_stamp,nonce_str:m.nonce_str,card_tp_id:m.card_id,card_type:m.card_type},p={url:d,body:JSON.stringify(o),method:'post',needToken:1};a.info(`cardSdk.js chooseCard begin ${JSON.stringify(p)}`),k(p,(q,r,s)=>{if(!q){a.info(`cardSdk.js chooseCard get ${s}`);let t=JSON.parse(s),u=t.baseresponse;0===u.errcode?j(null,JSON.parse(t.json_ret)):j(u,[])}else a.error(`cardSdk.js chooseCard error ${JSON.stringify(q)}`),j(q)})}else if('batchViewCard'===l){m.card_list=m.card_list||[];let o=m.card_list.map(q=>{return{card_tp_id:q.card_id,code:q.code}}),p={url:e,body:JSON.stringify({appid:n,items:o}),method:'post',needToken:1};a.info(`cardSdk.js batchViewCard begin ${JSON.stringify(p)}`),k(p,(q,r,s)=>{if(!q){a.info(`cardSdk.js batchViewCard get ${s}`);let t=JSON.parse(s),u=t.baseresponse;if(0===u.errcode){let v=t.json_ret?JSON.parse(t.json_ret):{card_array:[]},w=t.error_json_ret_list.map(x=>{return JSON.parse(x)});j(null,{retData:v,errData:w})}else j(u,[])}else a.error(`cardSdk.js batchViewCard error ${JSON.stringify(q)}`),j(q)})}}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=require("../log/log.js"),e=require("../../config/urlConfig.js"),a=(require("../../config/errcodeConfig.js"),e.batchAddCardURL),d=e.chooseCardURL,i=e.batchViewCardURL,s=function(e,s,t,o){var n=require("../request/request.js"),c=s.sdkName,_=s.args,p=_.appId;if("batchAddCard"===c){for(var f=_.card_list||[],l={},g=[],u=0,S=f.length;u{let j=g.sdkName,k;'imagePreview'===j?k=a(f,g.args):'chooseImage'===j?k=b(f,g.args):'uploadImage'===j?k=c(f,g.args):'downloadImage'===j&&(k=d(f,g.args)),i(k)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r){return e?{errMsg:"imagePreview:ok"}:{errMsg:"imagePreview:"+s.failWroding}}function r(e,r){return e?{errMsg:"chooseImage:ok",localIds:["wxLocalResource://imageid123456789987654321","wxLocalResource://imageid987654321123456789"]}:{errMsg:"chooseImage:"+s.failWroding}}function a(e,r){return e?r.localId?{errMsg:"uploadImage:ok",serverId:"1237378768e7q8e7r8qwesafdasdfasdfaxss111"}:{errMsg:"uploadImage:fail missing localId"}:{errMsg:"uploadImage:"+s.failWroding}}function o(e,r){return e?r.serverId?{errMsg:"downloadImage:ok",localId:"wxLocalResource://1237378768e7q8e7r8qwe"}:{errMsg:"downloadImage:fail missing serverId"}:{errMsg:"downloadImage:"+s.failWroding}}var s=require("./sdkConfig.js"),i=function(s,i,g,d){var n=i.sdkName,l=void 0;"imagePreview"===n?l=e(s,i.args):"chooseImage"===n?l=r(s,i.args):"uploadImage"===n?l=a(s,i.args):"downloadImage"===n&&(l=o(s,i.args)),d(l)};_exports={exec:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/interfaceAsyncSdk.js b/app/dist/common/jssdk/interfaceAsyncSdk.js index 4c96921e..bfcc7ca4 100644 --- a/app/dist/common/jssdk/interfaceAsyncSdk.js +++ b/app/dist/common/jssdk/interfaceAsyncSdk.js @@ -1 +1 @@ -"use strict";var _exports;function init(){function a(b,c,d){}require("./sdkConfig.js"),_exports={exec:(b,c,d,e)=>{let f=c.sdkName,g=a(f,b,c.args);e(g)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r,t){}var r=(require("./sdkConfig.js"),function(r,t,i,s){var n=t.sdkName,o=e(n,r,t.args);s(o)});_exports={exec:r}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/interfaceSdk.js b/app/dist/common/jssdk/interfaceSdk.js index 3d6f62f7..64ed841d 100644 --- a/app/dist/common/jssdk/interfaceSdk.js +++ b/app/dist/common/jssdk/interfaceSdk.js @@ -1 +1 @@ -"use strict";var _exports;function init(){function a(c,d,e){return d?{errMsg:`${c}:ok`}:{errMsg:`${c}:${b.failWroding}`}}const b=require("./sdkConfig.js");_exports={exec:(c,d,e,f)=>{let g=d.sdkName,h=a(g,c,d.args);f(h)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function r(r,i,s){return i?{errMsg:r+":ok"}:{errMsg:r+":"+e.failWroding}}var e=require("./sdkConfig.js"),i=function(e,i,s,t){var n=i.sdkName,o=r(n,e,i.args);t(o)};_exports={exec:i}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/locationSdk.js b/app/dist/common/jssdk/locationSdk.js index 3f05a12b..510ecfad 100644 --- a/app/dist/common/jssdk/locationSdk.js +++ b/app/dist/common/jssdk/locationSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(d,e,f){const g=require('../request/request.js');d?g({url:'http://apis.map.qq.com/ws/location/v1/ip?key=JMRBZ-R4HCD-X674O-PXLN4-B7CLH-42BSB',needToken:-1},(h,i,j)=>{let k={};h||200!==i.statusCode||(j=JSON.parse(j),0==j.status&&(k={latitude:j.result.location.lat,longitude:j.result.location.lng},k.errMsg='getLocation:ok')),k.errMsg||(k.errMsg='getLocation:fail timeout'),f(k)}):f({errMsg:`geoLocation:${c.failWroding}`})}function b(d,e){return d?{errMsg:'openLocation:ok'}:{errMsg:`openLocation:${c.failWroding}`}}const c=require('./sdkConfig.js');_exports={exec:(d,e,f,g)=>{let h=e.sdkName,i;'geoLocation'===h?a(d,e.args,g):'openLocation'===h&&(i=b(d,e.args),g(i))}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function o(o,e,r){var i=require("../request/request.js");o?i({url:"http://apis.map.qq.com/ws/location/v1/ip?key=JMRBZ-R4HCD-X674O-PXLN4-B7CLH-42BSB",needToken:-1},function(o,e,t){var i={};o||200!==e.statusCode||(t=JSON.parse(t),0==t.status&&(i={latitude:t.result.location.lat,longitude:t.result.location.lng},i.errMsg="getLocation:ok")),i.errMsg||(i.errMsg="getLocation:fail timeout"),r(i)}):r({errMsg:"geoLocation:"+t.failWroding})}function e(o,e){return o?{errMsg:"openLocation:ok"}:{errMsg:"openLocation:"+t.failWroding}}var t=require("./sdkConfig.js"),r=function(t,r,i,n){var s=r.sdkName,a=void 0;"geoLocation"===s?o(t,r.args,n):"openLocation"===s&&(a=e(t,r.args),n(a))};_exports={exec:r}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/osInfoSdk.js b/app/dist/common/jssdk/osInfoSdk.js index b93cb0ba..9e7e4086 100644 --- a/app/dist/common/jssdk/osInfoSdk.js +++ b/app/dist/common/jssdk/osInfoSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(c,d){return c?{errMsg:'getNetworkType:ok',subtype:localStorage['webview-network-type']||'wifi'}:{errMsg:`getNetworkType:${b.failWroding}`}}const b=require('./sdkConfig.js');_exports={exec:(c,d,e,f)=>{let g=d.sdkName,h;'getNetworkType'===g&&(h=a(c,d.args)),f(h)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,t){return e?{errMsg:"getNetworkType:ok",subtype:localStorage["webview-network-type"]||"wifi"}:{errMsg:"getNetworkType:"+r.failWroding}}var r=require("./sdkConfig.js"),t=function(r,t,o,i){var s=t.sdkName,n=void 0;"getNetworkType"===s&&(n=e(r,t.args)),i(n)};_exports={exec:t}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/preVerify.js b/app/dist/common/jssdk/preVerify.js index 5f986bc4..1d6229e1 100644 --- a/app/dist/common/jssdk/preVerify.js +++ b/app/dist/common/jssdk/preVerify.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../config/urlConfig.js'),b=require('../log/log.js');_exports=(c,d)=>{let e=c.args,f=c.ext,g={appid:e.verifyAppId,url:f.url,timestamp:e.verifyTimestamp,signature:e.verifySignature,signature_method:e.verifySignType||'sha1',jsapi_list:e.verifyJsApiList,noncestr:e.verifyNonceStr};b.info(`preVerify.js beigin ${JSON.stringify(g)}`);const h=require('../request/request.js');h({method:'post',url:a.PREVERIFY_URL,body:JSON.stringify(g),needToken:1},(i,j,k)=>{i?b.error(`PreVerify get error ${i.toString()}`):(b.info(`PreVerify get results: ${k}`),d(JSON.parse(k)))})}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=require("../../config/urlConfig.js"),e=require("../log/log.js");_exports=function(i,t){var s=i.args,n=i.ext,o={appid:s.verifyAppId,url:n.url,timestamp:s.verifyTimestamp,signature:s.verifySignature,signature_method:s.verifySignType||"sha1",jsapi_list:s.verifyJsApiList,noncestr:s.verifyNonceStr};e.info("preVerify.js beigin "+JSON.stringify(o));var f=require("../request/request.js");f({method:"post",url:r.PREVERIFY_URL,body:JSON.stringify(o),needToken:1},function(r,i,s){r?e.error("PreVerify get error "+r.toString()):(e.info("PreVerify get results: "+s),t(JSON.parse(s)))})}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/registerSdk.js b/app/dist/common/jssdk/registerSdk.js index d100b7bd..1a91ee86 100644 --- a/app/dist/common/jssdk/registerSdk.js +++ b/app/dist/common/jssdk/registerSdk.js @@ -1 +1 @@ -"use strict";var exec=(a,b,c,d)=>{d({})};module.exports={exec}; \ No newline at end of file +"use strict";var exec=function(e,c,t,x){x({})};module.exports={exec:exec}; \ No newline at end of file diff --git a/app/dist/common/jssdk/scanSdk.js b/app/dist/common/jssdk/scanSdk.js index ea140f26..28436260 100644 --- a/app/dist/common/jssdk/scanSdk.js +++ b/app/dist/common/jssdk/scanSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(c,d){if(c){let e={errMsg:'scanQRCode:ok'};return 0!==d.needResult&&(e.resultStr='{"scan_code": {"scan_result":"scan resultStr is here"}}'),e}return{errMsg:`scanQRCode:${b.failWroding}`}}const b=require('./sdkConfig.js');_exports={exec:(c,d,e,f)=>{d.sdkName;let g=a(c,d.args);f(g)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function r(r,s){if(r){var t={errMsg:"scanQRCode:ok"};return 0!==s.needResult&&(t.resultStr='{"scan_code": {"scan_result":"scan resultStr is here"}}'),t}return{errMsg:"scanQRCode:"+e.failWroding}}var e=require("./sdkConfig.js"),s=function(e,s,t,n){var i=(s.sdkName,r(e,s.args));n(i)};_exports={exec:s}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/jssdk/sdk.js b/app/dist/common/jssdk/sdk.js index 1e65fa60..541f6872 100644 --- a/app/dist/common/jssdk/sdk.js +++ b/app/dist/common/jssdk/sdk.js @@ -1 +1 @@ -'use strict';var _export;function init(){const a=require('./sdkConfig.js'),b=require('./preVerify.js'),c=require('./baseSdk.js'),d=require('./shareSdk.js'),e=require('./registerSdk.js'),f=require('./imageSdk.js'),g=require('./voiceSdk.js'),h=require('./osInfoSdk.js'),i=require('./locationSdk.js'),j=require('./interfaceSdk.js'),k=require('./scanSdk.js'),l=require('./cardSdk.js'),m=require('./interfaceAsyncSdk');var n=(q,r)=>{return q=a.getRealName(q),r.purviewFromPreVerify||(r.purviewFromPreVerify={}),!!a.hasDefaultPurview(q)||r.purviewFormGetA8key&&r.purviewFormGetA8key[q]||r.purviewFromPreVerify&&r.purviewFromPreVerify[q]};const o={REGISTER_SDK:e},p={BASE_SDK:c,SHARE_SDK:d,IMAGE_SDK:f,VOICE_SDK:g,OSINFO_SDK:h,LOCATION_SDK:i,INTERFACE_SDK:j,INTERFACE_ASYNC_SDK:m,SCAN_SDK:k};_export={exec:(q,r,s)=>{let t=q.sdkName;q.args;let u=q.ext,v=global.appConfig.haveAllPurview||n(t,r),w=a.getSdkType(t);if(!w)if(u.isOn)w='REGISTER_SDK';else return void s(v,{errMsg:`${t}:fail,${a.notExistWroding}`},{type:null});'PREVERIFY_SDK'===w?b(q,x=>{let y=x.verify_info_list,z={};y&&y.forEach(C=>{let D=C.jsapi_name;1===C.state&&(z[D]=!0)});let A;A=x.baseresponse&&0!=x.baseresponse.errcode?'config:'+x.baseresponse.errmsg:'config:ok';let B={errMsg:A};s(v,B,{defaultPurview:a.defaultPurview,purviewFormGetA8key:r.purviewFormGetA8key,purviewFromPreVerify:z,type:w})}):'CARD_SDK'===w?l.exec(v,q,r,(x,y)=>{s(v,y,{type:w,error:x})}):p[w]?p[w].exec(v,q,r,x=>{s(v,x,{type:w})}):o[w]&&o[w].exec(!0,q,r,x=>{s(!0,x,{type:w})})}}}init(),module.exports=_export; \ No newline at end of file +"use strict";function init(){var e=require("./sdkConfig.js"),r=require("./preVerify.js"),i=require("./baseSdk.js"),o=require("./shareSdk.js"),s=require("./registerSdk.js"),t=require("./imageSdk.js"),u=require("./voiceSdk.js"),n=require("./osInfoSdk.js"),a=require("./locationSdk.js"),S=require("./interfaceSdk.js"),f=require("./scanSdk.js"),p=require("./cardSdk.js"),v=require("./interfaceAsyncSdk"),c=function(r,i){return r=e.getRealName(r),i.purviewFromPreVerify||(i.purviewFromPreVerify={}),!!e.hasDefaultPurview(r)||(!(!i.purviewFormGetA8key||!i.purviewFormGetA8key[r])||!(!i.purviewFromPreVerify||!i.purviewFromPreVerify[r]))},d={REGISTER_SDK:s},_={BASE_SDK:i,SHARE_SDK:o,IMAGE_SDK:t,VOICE_SDK:u,OSINFO_SDK:n,LOCATION_SDK:a,INTERFACE_SDK:S,INTERFACE_ASYNC_SDK:v,SCAN_SDK:f},k=function(i,o,s){var t=i.sdkName,u=(i.args,i.ext),n=global.appConfig.haveAllPurview||c(t,o),a=e.getSdkType(t);if(!a){if(!u.isOn)return void s(n,{errMsg:t+":fail,"+e.notExistWroding},{type:null});a="REGISTER_SDK"}"PREVERIFY_SDK"===a?r(i,function(r){var i=r.verify_info_list,t={};i&&i.forEach(function(e){var r=e.jsapi_name;1===e.state&&(t[r]=!0)});var u=void 0;u=r.baseresponse&&0!=r.baseresponse.errcode?"config:"+r.baseresponse.errmsg:"config:ok";var S={errMsg:u};s(n,S,{defaultPurview:e.defaultPurview,purviewFormGetA8key:o.purviewFormGetA8key,purviewFromPreVerify:t,type:a})}):"CARD_SDK"===a?p.exec(n,i,o,function(e,r){s(n,r,{type:a,error:e})}):_[a]?_[a].exec(n,i,o,function(e){s(n,e,{type:a})}):d[a]&&d[a].exec(!0,i,o,function(e){s(!0,e,{type:a})})};_export={exec:k}}var _export;init(),module.exports=_export; \ No newline at end of file diff --git a/app/dist/common/jssdk/sdkConfig.js b/app/dist/common/jssdk/sdkConfig.js index e15e3bbc..02679503 100644 --- a/app/dist/common/jssdk/sdkConfig.js +++ b/app/dist/common/jssdk/sdkConfig.js @@ -1 +1 @@ -'use strict';const sdkNameToType={preVerifyJSAPI:'PREVERIFY_SDK',checkJsApi:'BASE_SDK',shareTimeline:'SHARE_SDK',sendAppMessage:'SHARE_SDK',shareQQ:'SHARE_SDK',shareWeiboApp:'SHARE_SDK',shareQZone:'SHARE_SDK','menu:share:appmessage':'REGISTER_SDK','menu:share:timeline':'REGISTER_SDK','menu:share:qq':'REGISTER_SDK','menu:share:weiboApp':'REGISTER_SDK','menu:share:QZone':'REGISTER_SDK',onVoiceRecordEnd:'REGISTER_SDK',onVoicePlayEnd:'REGISTER_SDK',onNavigationBarRightButtonClick:'REGISTER_SDK',onPageStateChange:'REGISTER_SDK',imagePreview:'IMAGE_SDK',chooseImage:'IMAGE_SDK',uploadImage:'IMAGE_SDK',downloadImage:'IMAGE_SDK',startRecord:'VOICE_SDK',stopRecord:'VOICE_SDK',playVoice:'VOICE_SDK',pauseVoice:'VOICE_SDK',stopVoice:'VOICE_SDK',uploadVoice:'VOICE_SDK',downloadVoice:'VOICE_SDK',translateVoice:'VOICE_SDK',getNetworkType:'OSINFO_SDK',geoLocation:'LOCATION_SDK',openLocation:'LOCATION_SDK',hideOptionMenu:'INTERFACE_SDK',showOptionMenu:'INTERFACE_SDK',closeWindow:'INTERFACE_SDK',hideMenuItems:'INTERFACE_SDK',showMenuItems:'INTERFACE_SDK',hideAllNonBaseMenuItem:'INTERFACE_SDK',showAllNonBaseMenuItem:'INTERFACE_SDK',scanQRCode:'SCAN_SDK',batchAddCard:'CARD_SDK',chooseCard:'CARD_SDK',batchViewCard:'CARD_SDK',showPickerView:'INTERFACE_ASYNC_SDK',showDatePickerView:'INTERFACE_ASYNC_SDK'};var defaultPurview={preVerifyJSAPI:!0,onVoiceRecordEnd:!0,onVoicePlayEnd:!0,getNetworkType:!0,cache:!0,showPickerView:!0,showDatePickerView:!0},realName={shareTimeline:'menu:share:timeline',sendAppMessage:'menu:share:appmessage',shareQQ:'menu:share:qq',shareWeiboApp:'menu:share:weiboApp',shareQZone:'menu:share:QZone',publish:'dispatchEvent'};module.exports={notExistWroding:'\u6CA1\u6709\u6B64SDK\u6216\u6682\u4E0D\u652F\u6301\u6B64SDK\u6A21\u62DF',failWroding:'fail, the permission value is offline verifying',defaultPurview:defaultPurview,hasDefaultPurview:function(a){return defaultPurview[a]},getSdkType:function(a){return sdkNameToType[a]},getRealName:function(a){return realName[a]||a}}; \ No newline at end of file +"use strict";var sdkNameToType={preVerifyJSAPI:"PREVERIFY_SDK",checkJsApi:"BASE_SDK",shareTimeline:"SHARE_SDK",sendAppMessage:"SHARE_SDK",shareQQ:"SHARE_SDK",shareWeiboApp:"SHARE_SDK",shareQZone:"SHARE_SDK","menu:share:appmessage":"REGISTER_SDK","menu:share:timeline":"REGISTER_SDK","menu:share:qq":"REGISTER_SDK","menu:share:weiboApp":"REGISTER_SDK","menu:share:QZone":"REGISTER_SDK",onVoiceRecordEnd:"REGISTER_SDK",onVoicePlayEnd:"REGISTER_SDK",onNavigationBarRightButtonClick:"REGISTER_SDK",onPageStateChange:"REGISTER_SDK",imagePreview:"IMAGE_SDK",chooseImage:"IMAGE_SDK",uploadImage:"IMAGE_SDK",downloadImage:"IMAGE_SDK",startRecord:"VOICE_SDK",stopRecord:"VOICE_SDK",playVoice:"VOICE_SDK",pauseVoice:"VOICE_SDK",stopVoice:"VOICE_SDK",uploadVoice:"VOICE_SDK",downloadVoice:"VOICE_SDK",translateVoice:"VOICE_SDK",getNetworkType:"OSINFO_SDK",geoLocation:"LOCATION_SDK",openLocation:"LOCATION_SDK",hideOptionMenu:"INTERFACE_SDK",showOptionMenu:"INTERFACE_SDK",closeWindow:"INTERFACE_SDK",hideMenuItems:"INTERFACE_SDK",showMenuItems:"INTERFACE_SDK",hideAllNonBaseMenuItem:"INTERFACE_SDK",showAllNonBaseMenuItem:"INTERFACE_SDK",scanQRCode:"SCAN_SDK",batchAddCard:"CARD_SDK",chooseCard:"CARD_SDK",batchViewCard:"CARD_SDK",showPickerView:"INTERFACE_ASYNC_SDK",showDatePickerView:"INTERFACE_ASYNC_SDK",initReady:"INTERFACE_ASYNC_SDK"},defaultPurview={preVerifyJSAPI:!0,onVoiceRecordEnd:!0,onVoicePlayEnd:!0,getNetworkType:!0,cache:!0,showPickerView:!0,showDatePickerView:!0},realName={shareTimeline:"menu:share:timeline",sendAppMessage:"menu:share:appmessage",shareQQ:"menu:share:qq",shareWeiboApp:"menu:share:weiboApp",shareQZone:"menu:share:QZone",publish:"dispatchEvent"};module.exports={notExistWroding:"没有此SDK或暂不支持此SDK模拟",failWroding:"fail, the permission value is offline verifying",defaultPurview:defaultPurview,hasDefaultPurview:function(e){return defaultPurview[e]},getSdkType:function(e){return sdkNameToType[e]},getRealName:function(e){return realName[e]||e}}; \ No newline at end of file diff --git a/app/dist/common/jssdk/sdkNameTrans.js b/app/dist/common/jssdk/sdkNameTrans.js index 700e35ea..9675fe5f 100644 --- a/app/dist/common/jssdk/sdkNameTrans.js +++ b/app/dist/common/jssdk/sdkNameTrans.js @@ -1 +1 @@ -'use strict';const sdkConfig=require('./sdkConfig.js'),displayName={shareTimeline:'onMenuShareTimeline',sendAppMessage:'onMenuShareAppMessage',shareQQ:'onMenuShareQQ',shareWeiboApp:'onMenuShareWeibo',shareQZone:'onMenuShareQZone','menu:share:timeline':'onMenuShareTimeline','menu:share:appmessage':'onMenuShareAppMessage','menu:share:qq':'onMenuShareQQ','menu:share:weiboApp':'onMenuShareWeibo','menu:share:QZone':'onMenuShareQZone',preVerifyJSAPI:'config',imagePreview:'previewImage',geoLocation:'getLocation',openProductViewWithPid:'openProductSpecificView',batchAddCard:'addCard',batchViewCard:'openCard',getBrandWCPayRequest:'chooseWXPay',dispatchEvent:'publish',clearLocalStorage:'clearStorage',getLocalStorage:'getStorage',setLocalStorage:'setStorage'},doNotDisplayArgsConfig={appId:!0,verifyAppId:!0,verifyNonceStr:!0,verifySignType:!0,verifySignature:!0,verifyTimestamp:!0,origin:!0,webviewId:!0,__isFromOn__:!0,__domain__:!0,__url__:!0};function formatArgs(a,b){let c=sdkConfig.getSdkType(a),d={};if('PREVERIFY_SDK'===c){d.appId=b.appId,d.timestamp=b.verifyTimestamp,d.nonceStr=b.verifyNonceStr,d.signature=b.verifySignature;let e=(b.verifyJsApiList||[]).map(f=>{return displayName[f]||f});d.jsApiList=e}else for(let e in b)doNotDisplayArgsConfig[e]||(d[e]=b[e]);return d}function isSdkResErr(a,b,c){let d=!a;return'REGISTER_SDK'!==c&&b&&b.errMsg&&-1===b.errMsg.indexOf(':ok')&&-1===b.errMsg.indexOf(':cancel')&&(d=b.errMsg!==sdkConfig.notExistWroding),d}module.exports={getSdkDisplayName:a=>{return displayName[a]||a},formatArgs:formatArgs,isSdkResErr:isSdkResErr}; \ No newline at end of file +"use strict";function formatArgs(e,r){var a=sdkConfig.getSdkType(e),i={};if("PREVERIFY_SDK"===a){i.appId=r.appId,i.timestamp=r.verifyTimestamp,i.nonceStr=r.verifyNonceStr,i.signature=r.verifySignature;var n=(r.verifyJsApiList||[]).map(function(e){return displayName[e]||e});i.jsApiList=n}else for(var o in r)doNotDisplayArgsConfig[o]||(i[o]=r[o]);return i}function isSdkResErr(e,r,a){var i=!e;return"REGISTER_SDK"!==a&&r&&r.errMsg&&r.errMsg.indexOf(":ok")===-1&&r.errMsg.indexOf(":cancel")===-1&&(i=r.errMsg!==sdkConfig.notExistWroding),i}var sdkConfig=require("./sdkConfig.js"),displayName={shareTimeline:"onMenuShareTimeline",sendAppMessage:"onMenuShareAppMessage",shareQQ:"onMenuShareQQ",shareWeiboApp:"onMenuShareWeibo",shareQZone:"onMenuShareQZone","menu:share:timeline":"onMenuShareTimeline","menu:share:appmessage":"onMenuShareAppMessage","menu:share:qq":"onMenuShareQQ","menu:share:weiboApp":"onMenuShareWeibo","menu:share:QZone":"onMenuShareQZone",preVerifyJSAPI:"config",imagePreview:"previewImage",geoLocation:"getLocation",openProductViewWithPid:"openProductSpecificView",batchAddCard:"addCard",batchViewCard:"openCard",getBrandWCPayRequest:"chooseWXPay",dispatchEvent:"publish",clearLocalStorage:"clearStorage",getLocalStorage:"getStorage",setLocalStorage:"setStorage"},doNotDisplayArgsConfig={appId:!0,verifyAppId:!0,verifyNonceStr:!0,verifySignType:!0,verifySignature:!0,verifyTimestamp:!0,origin:!0,webviewId:!0,__isFromOn__:!0,__domain__:!0,__url__:!0};module.exports={getSdkDisplayName:function(e){return displayName[e]||e},formatArgs:formatArgs,isSdkResErr:isSdkResErr}; \ No newline at end of file diff --git a/app/dist/common/jssdk/shareSdk.js b/app/dist/common/jssdk/shareSdk.js index 2d51e3c0..d3d669d4 100644 --- a/app/dist/common/jssdk/shareSdk.js +++ b/app/dist/common/jssdk/shareSdk.js @@ -1 +1 @@ -"use strict";const exec=(a,b,c,d)=>{let e=a&&b.args?b.args:b.ext;delete e.origin,d(e)};module.exports={exec}; \ No newline at end of file +"use strict";var exec=function(e,r,t,c){var s=e&&r.args?r.args:r.ext;delete s.origin,c(s)};module.exports={exec:exec}; \ No newline at end of file diff --git a/app/dist/common/jssdk/voiceSdk.js b/app/dist/common/jssdk/voiceSdk.js index 19ab0f1e..59ea1013 100644 --- a/app/dist/common/jssdk/voiceSdk.js +++ b/app/dist/common/jssdk/voiceSdk.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(j,k){return j?{errMsg:'startRecord:ok'}:{errMsg:`startRecord:${i.failWroding}`}}function b(j,k){return j?{errMsg:'stopRecord:ok',localId:'wxLocalResource://voiceLocalId1234567890123'}:{errMsg:`stopRecord:${i.failWroding}`}}function c(j,k){return j?{errMsg:'playVoice:ok'}:{errMsg:`playVoice:${i.failWroding}`}}function d(j,k){return j?k.localId?{errMsg:`pauseVoice:ok`}:{errMsg:'pauseVoice::fail,missing localId'}:{errMsg:`pauseVoice:${i.failWroding}`}}function e(j,k){return j?k.localId?{errMsg:'stopVoice:ok'}:{errMsg:'stopVoice::fail,missing localId'}:{errMsg:`stopVoice:${i.failWroding}`}}function f(j,k){return j?k.localId?{errMsg:'uploadVoice:ok',serverId:'1237378768e7q8e7r8qwesafdasdfasdfaxss111'}:{errMsg:'uploadVoice::fail,missing localId'}:{errMsg:`uploadVoice:${i.failWroding}`}}function g(j,k){return j?k.serverId?{errMsg:'downloadVoice:ok',localId:'wxLocalResource://voiceLocalId1234567890123'}:{errMsg:'downloadVoice:fail,missing serverId'}:{errMsg:`downloadVoice:${i.failWroding}`}}function h(j,k){return j?k.localId?{errMsg:`translateVoice:ok`,translateResult:`嗯,只是一个模拟调试的结果`}:{errMsg:'translateVoice:missing localId'}:{errMsg:`translateVoice:${i.failWroding}`}}const i=require('./sdkConfig.js');_exports={exec:(j,k,l,m)=>{let n=k.sdkName,o;'startRecord'===n?o=a(j,k.args):'stopRecord'===n?o=b(j,k.args):'playVoice'===n?o=c(j,k.args):'pauseVoice'===n?o=d(j,k.args):'stopVoice'===n?o=e(j,k.args):'uploadVoice'===n?o=f(j,k.args):'downloadVoice'===n?o=g(j,k.args):'translateVoice'===n&&(o=h(j,k.args)),m(o)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function r(r,o){return r?{errMsg:"startRecord:ok"}:{errMsg:"startRecord:"+n.failWroding}}function o(r,o){return r?{errMsg:"stopRecord:ok",localId:"wxLocalResource://voiceLocalId1234567890123"}:{errMsg:"stopRecord:"+n.failWroding}}function e(r,o){return r?{errMsg:"playVoice:ok"}:{errMsg:"playVoice:"+n.failWroding}}function s(r,o){return r?o.localId?{errMsg:"pauseVoice:ok"}:{errMsg:"pauseVoice::fail,missing localId"}:{errMsg:"pauseVoice:"+n.failWroding}}function i(r,o){return r?o.localId?{errMsg:"stopVoice:ok"}:{errMsg:"stopVoice::fail,missing localId"}:{errMsg:"stopVoice:"+n.failWroding}}function a(r,o){return r?o.localId?{errMsg:"uploadVoice:ok",serverId:"1237378768e7q8e7r8qwesafdasdfasdfaxss111"}:{errMsg:"uploadVoice::fail,missing localId"}:{errMsg:"uploadVoice:"+n.failWroding}}function c(r,o){return r?o.serverId?{errMsg:"downloadVoice:ok",localId:"wxLocalResource://voiceLocalId1234567890123"}:{errMsg:"downloadVoice:fail,missing serverId"}:{errMsg:"downloadVoice:"+n.failWroding}}function l(r,o){return r?o.localId?{errMsg:"translateVoice:ok",translateResult:"嗯,只是一个模拟调试的结果"}:{errMsg:"translateVoice:missing localId"}:{errMsg:"translateVoice:"+n.failWroding}}var n=require("./sdkConfig.js"),t=function(n,t,d,g){var u=t.sdkName,f=void 0;"startRecord"===u?f=r(n,t.args):"stopRecord"===u?f=o(n,t.args):"playVoice"===u?f=e(n,t.args):"pauseVoice"===u?f=s(n,t.args):"stopVoice"===u?f=i(n,t.args):"uploadVoice"===u?f=a(n,t.args):"downloadVoice"===u?f=c(n,t.args):"translateVoice"===u&&(f=l(n,t.args)),g(f)};_exports={exec:t}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/loadInit/init.js b/app/dist/common/loadInit/init.js index 64e7612a..bbc3b867 100644 --- a/app/dist/common/loadInit/init.js +++ b/app/dist/common/loadInit/init.js @@ -1 +1 @@ -'use strict';var _exports;module.exports=()=>{const a=require('../../config/urlConfig.js'),b=require('../request/request.js'),c=require('../log/log.js'),d=require('../../utils/newReport.js'),f=require('../../utils/checkUp.js');if(c.info(`init.js loadinit begin`),!global.appConfig.isDev){function h(i,j){try{let k=j.filename,l=j.error.stack;c.error(`filename: ${k}, msg: ${l}`),d(i,'',`filename: ${k}, msg: ${l}`)}catch(k){}}window.addEventListener('error',i=>{h('tool_error_nw',i)}),global.contentWindow.addEventListener('error',i=>{h('tool_error_web',i)})}let g={type:7,version:global.appVersion};b({method:'post',url:a.LOADCONFIG_URL,body:JSON.stringify(g),needToken:-1},(h,i,j)=>{if(!h){c.info(`init.js loadinit end: ${j}`);let k=JSON.parse(j),l=k.cgi_list,m={};l.forEach(p=>{m[p.name]=p.url}),localStorage.setItem('urlConfig',JSON.stringify(m));let n=k.client_list,o={};n.forEach(p=>{o[p.key]=p.value}),f(o)}else c.info(`init.js loadinit error: ${JSON.stringify(h)}`)})}; \ No newline at end of file +"use strict";var _exports;module.exports=function(){var e=require("../../config/urlConfig.js"),r=require("../request/request.js"),i=require("../log/log.js"),n=require("../../utils/newReport.js"),o=require("../../utils/checkUp.js");if(i.info("init.js loadinit begin"),!global.appConfig.isDev){var t=function(e,r){try{var o=r.filename,t=r.error.stack;i.error("filename: "+o+", msg: "+t),n(e,"","filename: "+o+", msg: "+t)}catch(e){}};window.addEventListener("error",function(e){t("tool_error_nw",e)}),global.contentWindow.addEventListener("error",function(e){t("tool_error_web",e)})}var s={type:7,version:global.appVersion};r({method:"post",url:e.LOADCONFIG_URL,body:JSON.stringify(s),needToken:-1},function(e,r,n){if(e)i.info("init.js loadinit error: "+JSON.stringify(e));else{i.info("init.js loadinit end: "+n);var t=JSON.parse(n),s=t.cgi_list,l={};s.forEach(function(e){l[e.name]=e.url}),localStorage.setItem("urlConfig",JSON.stringify(l));var a=t.client_list,f={};a.forEach(function(e){f[e.key]=e.value}),o(f)}})}; \ No newline at end of file diff --git a/app/dist/common/log/log.js b/app/dist/common/log/log.js index a417b215..9025ce88 100644 --- a/app/dist/common/log/log.js +++ b/app/dist/common/log/log.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('fs'),b=require('log'),c=require('path'),d=require('../../config/dirConfig.js'),e=d.WeappLog;var f;if(global.isDev||process.execPath.match('nw.exe')||process.execPath.match('nwjs.app'))f=console;else{let g=JSON.parse(localStorage.logFiles||'[]'),h=new Date,i=`${h.getFullYear()}-${h.getMonth()+1}-${h.getDate()}-${h.getHours()}-${h.getMinutes()}-${h.getMilliseconds()}.log`,j=c.join(e,i);if(10{})}g.push(j),localStorage.setItem('logFiles',JSON.stringify(g)),f=new b('info',a.createWriteStream(j))}_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e,t=require("fs"),i=require("log"),r=require("path"),o=require("../../config/dirConfig.js"),s=o.WeappLog,a=10;if(global.isDev||process.execPath.match("nw.exe")||process.execPath.match("nwjs.app"))e=console;else{var n=JSON.parse(localStorage.logFiles||"[]"),l=new Date,g=l.getFullYear()+"-"+(l.getMonth()+1)+"-"+l.getDate()+"-"+l.getHours()+"-"+l.getMinutes()+"-"+l.getMilliseconds()+".log",c=r.join(s,g);if(n.length>a){var p=n.shift();t.unlink(p,function(){})}n.push(c),localStorage.setItem("logFiles",JSON.stringify(n)),e=new i("info",t.createWriteStream(c))}_exports=e}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/menu/menu.js b/app/dist/common/menu/menu.js index 6cb1653b..10d08a95 100644 --- a/app/dist/common/menu/menu.js +++ b/app/dist/common/menu/menu.js @@ -1 +1 @@ -'use strict';var _export;function init(){const a=require('../actions/actions.js');var b=new nw.Menu({type:'menubar'});let c='darwin'===process.platform?'cmd':'ctrl',d=new nw.Menu;d.append(new nw.MenuItem({label:'\u9879\u76EE\u91CD\u5EFA',key:'B',modifiers:c,click:()=>{a.reBuild()}})),d.append(new nw.MenuItem({label:'\u5237\u65B0',key:'R',modifiers:c,click:()=>{a.reload()}})),d.append(new nw.MenuItem({label:'\u540E\u9000',key:'Left',modifiers:c,click:()=>{a.goback()}})),d.append(new nw.MenuItem({label:'\u524D\u8FDB',key:'right',modifiers:c,click:()=>{a.goforward()}})),d.append(new nw.MenuItem({label:'\u9009\u4E2D\u5730\u5740\u680F',key:'L',modifiers:c,click:()=>{a.focusAddressBar()}})),d.append(new nw.MenuItem({type:'separator'})),d.append(new nw.MenuItem({label:'\u8BBE\u7F6E',click:()=>{a.showSetting()}}));let e=new nw.Menu;e.append(new nw.MenuItem({label:'\u5173\u4E8E',key:'F1',click:()=>{a.showAbout()}})),'darwin'===process.platform&&b.createMacBuiltin(nw.App.manifest.name,{hideEdit:!1,hideWindow:!0}),b.append(new nw.MenuItem({label:'\u52A8\u4F5C',submenu:d})),b.append(new nw.MenuItem({label:'\u5173\u4E8E',submenu:e})),_export=b}init(),module.exports=_export; \ No newline at end of file +"use strict";function init(){var e=require("../actions/actions.js"),n=new nw.Menu({type:"menubar"}),i="darwin"===process.platform?"cmd":"ctrl",t=new nw.Menu;t.append(new nw.MenuItem({label:"项目重建",key:"B",modifiers:i,click:function(){e.reBuild()}})),t.append(new nw.MenuItem({label:"刷新",key:"R",modifiers:i,click:function(){e.reload()}})),t.append(new nw.MenuItem({label:"后退",key:"Left",modifiers:i,click:function(){e.goback()}})),t.append(new nw.MenuItem({label:"前进",key:"right",modifiers:i,click:function(){e.goforward()}})),t.append(new nw.MenuItem({label:"选中地址栏",key:"L",modifiers:i,click:function(){e.focusAddressBar()}})),t.append(new nw.MenuItem({type:"separator"})),t.append(new nw.MenuItem({label:"设置",click:function(){e.showSetting()}}));var a=new nw.Menu;a.append(new nw.MenuItem({label:"关于",key:"F1",click:function(){e.showAbout()}})),a.append(new nw.MenuItem({label:"查看更新日志",click:function(){e.showChangeLog()}}));var u=new nw.Menu;u.append(new nw.MenuItem({label:"开发者社区",click:function(){e.jumpBbs()}})),"darwin"===process.platform&&n.createMacBuiltin(nw.App.manifest.name,{hideEdit:!1,hideWindow:!0}),n.append(new nw.MenuItem({label:"动作",submenu:t})),n.append(new nw.MenuItem({label:"开发者社区",submenu:u})),n.append(new nw.MenuItem({label:"关于",submenu:a})),_export=n}var _export;init(),module.exports=_export; \ No newline at end of file diff --git a/app/dist/common/proxy/getosxproxysetting.sh b/app/dist/common/proxy/getosxproxysetting.sh old mode 100644 new mode 100755 diff --git a/app/dist/common/proxy/httpProxy/lib/requestHandler.js b/app/dist/common/proxy/httpProxy/lib/requestHandler.js index 6bad5c75..b83dd0d5 100644 --- a/app/dist/common/proxy/httpProxy/lib/requestHandler.js +++ b/app/dist/common/proxy/httpProxy/lib/requestHandler.js @@ -1 +1 @@ -const http=require("http"),url=require("url"),zlib=require("zlib"),async=require("async"),Buffer=require("buffer").Buffer,util=require("./util"),log=require("../../../log/log.js");var defaultRule=require("./rule_default.js"),userRule=defaultRule;function userRequestHandler(a,b){function c(m){userRule.dealLocalResponse(a,l,function(n,o,p){k.endTime=new Date().getTime(),k.res={statusCode:n||"",headers:o||{}},k.resHeader=o||{},k.resBody=p,k.length=p?p.length:0,k.statusCode=n,b.writeHead(n,o),b.end(p),m&&m()})}function d(m){var n;g=userRule.replaceRequestProtocol(a,g)||g,n={hostname:i.hostname||a.headers.host,port:i.port||a.port||(/https/.test(g)?443:80),path:j,method:a.method,headers:a.headers},userRule.replaceRequestOption(a,n,function(){n.rejectUnauthorized=!1,l=userRule.replaceRequestData(a,l)||l,n.headers=util.lower_keys(n.headers),n.headers["proxy-connection"]&&(n.headers.connection=n.headers["proxy-connection"],delete n.headers["proxy-connection"]),n.headers["accept-language"]&&(n.headers["accept-language"]="zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4"),n.headers["content-length"]=l.length;var o=(/https/.test(g)?https:http).request(n,function(p){var q=p.statusCode;q=userRule.replaceResponseStatusCode(a,p,q)||q;var r=userRule.replaceResponseHeader(a,p,p.headers)||p.headers;r=util.lower_keys(r);var s=/gzip/i.test(r["content-encoding"]),t=[];p.on("data",function(u){t.push(u)}),p.on("end",function(){var u;async.series([function(v){u=Buffer.concat(t),s?zlib.gunzip(u,function(w,x){u=x,v()}):v()},function(v){userRule.replaceServerResData?(u=userRule.replaceServerResData(a,p,u)||u,v()):userRule.replaceServerResDataAsync?userRule.replaceServerResDataAsync(a,p,u,function(w){u=w,v()}):v()},function(v){var w=userRule.pauseBeforeSendingResponse(a,p);w?setTimeout(v,w):v()},function(v){userRule.saveAllHttpResponse(a,q,r,u),b.writeHead(q,r),b.end(u),v()},function(v){k.endTime=new Date().getTime(),k.statusCode=q,k.resHeader=r,k.resBody=s?zlib.gunzipSync(u):u,k.length=u?u.length:0,v()},function(v){userRule.fetchTrafficData&&userRule.fetchTrafficData(-1,k),v()}],function(v,w){m&&m()})}),p.on("error",function(u){log.error("error"+u)})});o.on("error",function(p){log.error("err with request :"+p+" "+a.url),b.end()}),o.end(l)})}var k,l,f=a.headers.host,g=!a.connection.encrypted||/^http:/.test(a.url)?"http":"https",h="http"===g?a.url:g+"://"+f+a.url,i=url.parse(h),j=i.path;k={host:f,method:a.method,path:j,protocol:g,url:g+"://"+f+j,req:a,startTime:new Date().getTime()},async.series([function(n){var o=[];a.on("data",function(p){o.push(p)}),a.on("end",function(){l=Buffer.concat(o),k.reqBody=l.toString(),n()})},function(n){userRule.shouldUseLocalResponse(a,l)?c(n):d(n)}],function(){})}function setRules(a){a&&(userRule=util.merge(defaultRule,a),"function"==typeof userRule.init&&userRule.init())}module.exports={userRequestHandler:userRequestHandler,setRules:setRules}; \ No newline at end of file +"use strict";function userRequestHandler(e,t){function r(t){var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){a=Buffer.concat(r),o.reqBody=a.toString(),t()})}function n(t){userRule.shouldUseLocalResponse(e,a)?u(t):s(t)}function u(r){userRule.dealLocalResponse(e,a,function(e,n,u){o.endTime=(new Date).getTime(),o.res={statusCode:e||"",headers:n||{}},o.resHeader=n||{},o.resBody=u,o.length=u?u.length:0,o.statusCode=e,t.writeHead(e,n),t.end(u),r&&r()})}function s(r){var n;i=userRule.replaceRequestProtocol(e,i)||i,n={hostname:d.hostname||e.headers.host,port:d.port||e.port||(/https/.test(i)?443:80),path:h,method:e.method,headers:e.headers},userRule.replaceRequestOption(e,n,function(){n.rejectUnauthorized=!1,a=userRule.replaceRequestData(e,a)||a,n.headers=util.lower_keys(n.headers),n.headers["proxy-connection"]&&(n.headers.connection=n.headers["proxy-connection"],delete n.headers["proxy-connection"]),n.headers["accept-language"]&&(n.headers["accept-language"]="zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4"),n.headers["content-length"]=a.length;var u=(/https/.test(i)?https:http).request(n,function(n){var u=n.statusCode;u=userRule.replaceResponseStatusCode(e,n,u)||u;var s=userRule.replaceResponseHeader(e,n,n.headers)||n.headers;s=util.lower_keys(s);var a=/gzip/i.test(s["content-encoding"]),l=[];n.on("data",function(e){l.push(e)}),n.on("end",function(){var i;async.series([function(e){i=Buffer.concat(l),a?zlib.gunzip(i,function(t,r){i=r,e()}):e()},function(t){userRule.replaceServerResData?(i=userRule.replaceServerResData(e,n,i)||i,t()):userRule.replaceServerResDataAsync?userRule.replaceServerResDataAsync(e,n,i,function(e){i=e,t()}):t()},function(t){var r=userRule.pauseBeforeSendingResponse(e,n);r?setTimeout(t,r):t()},function(r){userRule.saveAllHttpResponse(e,u,s,i),t.writeHead(u,s),t.end(i),r()},function(e){o.endTime=(new Date).getTime(),o.statusCode=u,o.resHeader=s,o.resBody=a?zlib.gunzipSync(i):i,o.length=i?i.length:0,e()},function(e){userRule.fetchTrafficData&&userRule.fetchTrafficData(p,o),e()}],function(e,t){r&&r()})}),n.on("error",function(e){log.error("error"+e)})});u.on("error",function(r){log.error("err with request :"+r+" "+e.url),t.end()}),u.end(a)})}var o,a,l=e.headers.host,i=e.connection.encrypted&&!/^http:/.test(e.url)?"https":"http",c="http"===i?e.url:i+"://"+l+e.url,d=url.parse(c),h=d.path,p=-1;o={host:l,method:e.method,path:h,protocol:i,url:i+"://"+l+h,req:e,startTime:(new Date).getTime()},async.series([r,n],function(){})}function setRules(e){e&&(userRule=util.merge(defaultRule,e),"function"==typeof userRule.init&&userRule.init())}var http=require("http"),url=require("url"),zlib=require("zlib"),async=require("async"),Buffer=require("buffer").Buffer,util=require("./util"),log=require("../../../log/log.js"),defaultRule=require("./rule_default.js"),userRule=defaultRule;module.exports={userRequestHandler:userRequestHandler,setRules:setRules}; \ No newline at end of file diff --git a/app/dist/common/proxy/httpProxy/lib/rule_default.js b/app/dist/common/proxy/httpProxy/lib/rule_default.js index a4d08193..46146792 100644 --- a/app/dist/common/proxy/httpProxy/lib/rule_default.js +++ b/app/dist/common/proxy/httpProxy/lib/rule_default.js @@ -1 +1 @@ -var path=require("path"),fs=require("fs");module.exports={summary:function(){return"the default rule for AnyProxy which supports CORS."},shouldUseLocalResponse:function(a,b){if("OPTIONS"==a.method)return!0;var c=(a.headers.host||"")+(a.url||"");return mapConfig.map(function(d){var e=d.keyword;if(0<=c.indexOf(e))return a.anyproxy_map_local=d.local,!1}),!!a.anyproxy_map_local},dealLocalResponse:function(a,b,c){"OPTIONS"==a.method?c(200,mergeCORSHeader(a.headers),""):a.anyproxy_map_local&&fs.readFile(a.anyproxy_map_local,function(d,e){d?c(200,{},"[AnyProxy failed to load local file] "+d):c(200,{},e)})},replaceRequestProtocol:function(a,b){},replaceRequestOption:function(a,b){},replaceRequestData:function(a,b){},replaceResponseStatusCode:function(a,b,c){},replaceResponseHeader:function(a,b,c){return mergeCORSHeader(a.headers,c)},replaceServerResDataAsync:function(a,b,c,d){d(c)},pauseBeforeSendingResponse:function(a,b){},saveAllHttpResponse:function(a,b,c,d){},fetchTrafficData:function(a,b){}};function mergeCORSHeader(a,b){var c=b||{};return delete c["Access-Control-Allow-Credentials"],delete c["Access-Control-Allow-Origin"],delete c["Access-Control-Allow-Methods"],delete c["Access-Control-Allow-Headers"],c["access-control-allow-credentials"]="true",c["access-control-allow-origin"]=a.origin||a.Origin||"-___-||",c["access-control-allow-methods"]="GET, POST, PUT",c["access-control-allow-headers"]=a["access-control-request-headers"]||"-___-||",c} \ No newline at end of file +"use strict";function mergeCORSHeader(e,o){var r=o||{};return delete r["Access-Control-Allow-Credentials"],delete r["Access-Control-Allow-Origin"],delete r["Access-Control-Allow-Methods"],delete r["Access-Control-Allow-Headers"],r["access-control-allow-credentials"]="true",r["access-control-allow-origin"]=e.origin||e.Origin||"-___-||",r["access-control-allow-methods"]="GET, POST, PUT",r["access-control-allow-headers"]=e["access-control-request-headers"]||"-___-||",r}var path=require("path"),fs=require("fs");module.exports={summary:function(){var e="the default rule for AnyProxy which supports CORS.";return e},shouldUseLocalResponse:function(e,o){if("OPTIONS"==e.method)return!0;var r=(e.headers.host||"")+(e.url||"");return mapConfig.map(function(o){var n=o.keyword;if(r.indexOf(n)>=0)return e.anyproxy_map_local=o.local,!1}),!!e.anyproxy_map_local},dealLocalResponse:function(e,o,r){"OPTIONS"==e.method?r(200,mergeCORSHeader(e.headers),""):e.anyproxy_map_local&&fs.readFile(e.anyproxy_map_local,function(e,o){e?r(200,{},"[AnyProxy failed to load local file] "+e):r(200,{},o)})},replaceRequestProtocol:function(e,o){},replaceRequestOption:function(e,o){},replaceRequestData:function(e,o){},replaceResponseStatusCode:function(e,o,r){},replaceResponseHeader:function(e,o,r){return mergeCORSHeader(e.headers,r)},replaceServerResDataAsync:function(e,o,r,n){n(r)},pauseBeforeSendingResponse:function(e,o){},saveAllHttpResponse:function(e,o,r,n){},fetchTrafficData:function(e,o){}}; \ No newline at end of file diff --git a/app/dist/common/proxy/httpProxy/lib/util.js b/app/dist/common/proxy/httpProxy/lib/util.js index 58a48b66..ab35becd 100644 --- a/app/dist/common/proxy/httpProxy/lib/util.js +++ b/app/dist/common/proxy/httpProxy/lib/util.js @@ -1 +1 @@ -const lower_keys=function(a){for(var b in a){var c=b.toLowerCase(),d=a[b];delete a[b],'host'===c?a.Host=d:a[c]=d}return a},merge=function(a,b){for(var c in b)a[c]=b[c];return a};module.exports={merge:merge,lower_keys:lower_keys}; \ No newline at end of file +"use strict";var lower_keys=function(e){for(var r in e){var o=r.toLowerCase(),t=e[r];delete e[r],"host"!==o?e[o]=t:e.Host=t}return e},merge=function(e,r){for(var o in r)e[o]=r[o];return e};module.exports={merge:merge,lower_keys:lower_keys}; \ No newline at end of file diff --git a/app/dist/common/proxy/httpProxy/proxy.js b/app/dist/common/proxy/httpProxy/proxy.js index 2eaa06f6..e65aabb9 100644 --- a/app/dist/common/proxy/httpProxy/proxy.js +++ b/app/dist/common/proxy/httpProxy/proxy.js @@ -1 +1 @@ -const http=require("http"),async=require("async"),requestHandler=require("./lib/requestHandler"),log=require("../../log/log.js"),DEFAULT_PORT=8001,DEFAULT_HOST="localhost";var default_rule=require("./lib/rule_default");function proxyServer(a){a=a||{};var b=this,c=a.port||DEFAULT_PORT,d=a.hostname||DEFAULT_HOST,e=a.rule||default_rule;requestHandler.setRules(e),b.httpProxyServer=null,async.series([function(f){b.httpProxyServer=http.createServer(requestHandler.userRequestHandler),f(null)},function(f){b.httpProxyServer.listen(c,d),f(null)},function(f){f(null)}],function(f,g){f?log.error(`err when start proxy server : ${f}`):log.info(`Http proxy started at ${d}:${c}`)}),b.close=function(){b.httpProxyServer&&b.httpProxyServer.close(),log.info(`ProxyServer closed :${d}:${c}`)}}module.exports.proxyServer=proxyServer; \ No newline at end of file +"use strict";function proxyServer(e){e=e||{};var r=this,t=e.port||DEFAULT_PORT,l=e.hostname||DEFAULT_HOST,o=e.rule||default_rule;requestHandler.setRules(o),r.httpProxyServer=null,async.series([function(e){r.httpProxyServer=http.createServer(requestHandler.userRequestHandler),e(null)},function(e){r.httpProxyServer.listen(t,l),e(null)},function(e){e(null)}],function(e,r){e?log.error("err when start proxy server : "+e):log.info("Http proxy started at "+l+":"+t)}),r.close=function(){r.httpProxyServer&&r.httpProxyServer.close(),log.info("ProxyServer closed :"+l+":"+t)}}var http=require("http"),async=require("async"),requestHandler=require("./lib/requestHandler"),log=require("../../log/log.js"),DEFAULT_PORT=8001,DEFAULT_HOST="localhost",default_rule=require("./lib/rule_default");module.exports.proxyServer=proxyServer; \ No newline at end of file diff --git a/app/dist/common/proxy/proxyRule.js b/app/dist/common/proxy/proxyRule.js index 5ecc0c6f..89dc3401 100644 --- a/app/dist/common/proxy/proxyRule.js +++ b/app/dist/common/proxy/proxyRule.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(j){let k=j.headers.host,l=!j.connection.encrypted||/^http:/.test(j.url)?'http':'https',m='http'===l?j.url:l+'://'+k+j.url,n=b.parse(m);return n.pureHref=n.href.replace(/\?.*/,'').replace(/\#.*/,''),n}require('fs');const b=require('url'),c=require('path');require('zlib'),require('../../utils/report.js');const d=require('../../weapp/weApp.js'),e=require('../../config/config.js'),f='https://clients1.google.com/tbproxy/af/',g=e.weappURLRegular,h=e.weappASURLRegular,i=e.weappLocalIdRegular;_exports={shouldUseLocalResponse:function(j,k){let l=a(j),m=l.pureHref;if(g.test(m))return!0;return!(0!==m.indexOf(f))||!!h.test(m)||!!i.test(m)},dealLocalResponse:function(j,k,l){var m=a(j),n=m.pureHref;if(g.test(n)){let o=m.href;d.getResponse(o,(p,q,r)=>{return p?void l(p,q,r||''):void(c.extname(o).replace('.',''),l(200,q,r))})}else 0===n.indexOf(f)?(console.error(f),l(400,{},'')):h.test(n)?d.getAppservice(n,(o,p,q)=>{return o?void l(o,{},q):void l(200,p,q)}):i.test(n)&&d.getLocalIdResponse(n.replace(i,'wxfile://'),(o,p,q)=>{return o?void l(o,{},q):void l(200,p,q)})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var t=e.headers.host,o=e.connection.encrypted&&!/^http:/.test(e.url)?"https":"http",p="http"===o?e.url:o+"://"+t+e.url,s=r.parse(p);return s.pureHref=s.href.replace(/\?.*/,"").replace(/\#.*/,""),s}var r=(require("fs"),require("url")),t=require("path"),o=(require("zlib"),require("../../utils/report.js"),require("../../weapp/weApp.js")),p=require("../../config/config.js"),s="https://clients1.google.com/tbproxy/af/",i=p.weappURLRegular,n=p.weappASURLRegular,u=p.weappLocalIdRegular;_exports={shouldUseLocalResponse:function(r,t){var o=e(r),p=o.pureHref;return!!i.test(p)||(0===p.indexOf(s)||(!!n.test(p)||!!u.test(p)))},dealLocalResponse:function(r,p,a){var c=e(r),l=c.pureHref;if(i.test(l)){var f=c.href;o.getResponse(f,function(e,r,o){if(e)return void a(e,r,o||"");t.extname(f).replace(".","");a(200,r,o)})}else 0===l.indexOf(s)?(console.error(s),a(400,{},"")):n.test(l)?o.getAppservice(l,function(e,r,t){return e?void a(e,{},t):void a(200,r,t)}):u.test(l)&&o.getLocalIdResponse(l.replace(u,"wxfile://"),function(e,r,t){return e?void a(e,{},t):void a(200,r,t)})}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/proxy/setAppProxy.js b/app/dist/common/proxy/setAppProxy.js index 02ad6a52..c827cb55 100644 --- a/app/dist/common/proxy/setAppProxy.js +++ b/app/dist/common/proxy/setAppProxy.js @@ -1,39 +1 @@ -'use strict';var _exports;function init(){function a(E,F){let G=E.find(H=>{return-1{if(!G)try{let J=H.split(/\r?\n/),K={};K.AutoConfigURL=a(J,'AutoConfigURL'),K.ProxyEnable=!!parseInt(a(J,'ProxyEnable')),K.ProxyServer=a(J,'ProxyServer'),K.ProxyOverride=a(J,'ProxyOverride'),K.ProxyOverride&&(K.ProxyOverride=K.ProxyOverride.split(';')),r.info(`setAppProxy.js getWinSystemProxySetting: ${JSON.stringify(K)}`),E(null,K)}catch(J){r.error(`setAppProxy.js getWinSystemProxySetting stdout error ${H} ${JSON.stringify(J)}`),E(J)}else r.error(`setAppProxy.js getWinSystemProxySetting commandStr: ${JSON.stringify(G)}`),E(G)})}function c(E){let F=o.join(__dirname,'getosxproxysetting.sh');l(`sh ${F}`,{},(G,H,I)=>{if(!G){let J=H.split(/\r?\n/);try{let K={};K.httpPrxoyEnable='Enabled: Yes'===J[0];let L=J[1].replace('Server:','').trim(),M=J[2].replace('Port:','').trim();K.httpProxy=L?`${L}:${M}`:'',K.httpsProxyEnable='Enabled: Yes'===J[4];let N=J[5].replace('Server:','').trim(),O=J[6].replace('Port:','').trim();K.httpsProxy=N?`${N}:${O}`:'';let P='Enabled: Yes'===J[9];K.AutoConfigURL=P?J[8].replace('URL:','').trim():'',K.ProxyOverride=0===J[10].indexOf('There aren\'t any bypass domains')?[]:J[10].split(' '),r.info(`setAppProxy.js getOsxSystemProxySetting: ${JSON.stringify(K)}`),E(null,K)}catch(K){r.error(`setAppProxy.js getOsxSystemProxySetting set: ${JSON.stringify(K)}`),E(K)}}else r.error(`setAppProxy.js getOsxSystemProxySetting : ${JSON.stringify(G)}`),E(G)})}function d(E,F){E.AutoConfigURL?m(E.AutoConfigURL,(G,H,I)=>{if(!G)try{let J=o.join(A,'temppac.pac');q.writeFileSync(J,I+`\n module.exports=FindProxyForURL`,'utf8');let K=require(J),L=K.toString();r.info(`setAppProxy.js initProxy FindProxyForURLFun: ${L}`);let M=g(),N=f(),O=I.replace(L,` - function FindProxyForURL(url, host) { - ${M} - ${N} - ${L} - return FindProxyForURL(url, host) - } - `),P=o.join(A,'pacFile.pac');if(q.writeFileSync(P,I.replace(L,O)),r.info(`setAppProxy.js initProxy write ${P} success`),w){let Q=document.createElement('img');Q.src=P,E.AutoConfigURL=`${Q.src}?${+new Date}`}else E.AutoConfigURL=encodeURI(`file:///${P}?${+new Date}`);F(null,E)}catch(J){F(J)}else F(G)}):F(null,E)}function f(E){try{if(E&&E.length){let F=E.map(G=>{return`host.indexOf('${G}') === 0`});return F=F.join('||'),r.info(`setAppProxy.js makeProxyOverride ${F}`),`if(${F}) { - return 'DIRECT' - }`}return''}catch(F){return r.error(`setAppProxy.js makeProxyOverride error: ${JSON.stringify(F)}`),''}}function g(){let E=[];E.push('https://chrome-devtools-frontend.appspot.com/serve_rev/@180870/'),E.push('https://clients1.google.com/tbproxy/af/');let F=E.map(G=>{return`url.indexOf('${G}') === 0`});return F=F.join('||'),F=`${F} || ${B}.test(url) || ${C}.test(url) || ${D}.test(url)`,r.info(`setAppProxy.js makeProxyLocal ${F}`),`if (${F}) { - return 'PROXY 127.0.0.1:${global._port}' - } - `}function h(E,F){if(E===x)return{mode:'pac_script',pacScript:{url:F.AutoConfigURL}};if(E===y){let G=g(),H=f();return{mode:'pac_script',pacScript:{data:`function FindProxyForURL(url, host) { - ${G} - ${H} - return 'DIRECT' - }`}}}if(w&&E===z){let G=g(),H=f(F.ProxyOverride),I='';if(!F.ProxyServer)I=`return 'DIRECT'`;else if(-1===F.ProxyServer.indexOf('='))I=`return 'PROXY ${F.ProxyServer}'`;else{let J=F.ProxyServer.split(';');J.forEach(K=>{let L=K.replace(/https?=/,'');0===K.indexOf('https')?I+=` - if(url.indexOf('https') === 0) - return 'PROXY ${L}' - `:0===K.indexOf('http')&&(I+=` - if(url.indexOf('http') === 0 && url.indexOf('https') === -1) - return 'PROXY ${L}' - `)})}return{mode:'pac_script',pacScript:{data:`function FindProxyForURL(url, host) { - ${G} - ${H} - ${I} - return 'DIRECT' - }`}}}if(!w&&E===z){let G=g(),H=f(F.ProxyOverride),I=``;return F.httpsProxyEnable&&(I+=` - if(url.indexOf('https:') === 0) - return 'PROXY ${F.httpsProxy}' - `),F.httpPrxoyEnable&&(I+=` - if(url.indexOf('http:') === 0) - return 'PROXY ${F.httpProxy}' - `),F.ProxyServer&&(I=`return 'PROXY ${F.ProxyServer}'`),{mode:'pac_script',pacScript:{data:`function FindProxyForURL(url, host) { - ${G} - ${H} - ${I} - return 'DIRECT' - }`}}}}function i(E,F){r.info(`setAppProxy.js setChromeProxy config: ${JSON.stringify(E)}`),chrome.proxy.settings.set({value:E,scope:'regular'},()=>{F()})}function j(E,F){let G;G=E.AutoConfigURL?h(x,E):w&&E.ProxyEnable?h(z,E):!w&&(E.httpPrxoyEnable||E.httpsProxyEnable)?h(z,E):h(y),i(G,()=>{F(null,E)})}function k(E){let F=s.getProxySetting();if(t.clearProxyCache(),'SYSTEM'===F){let G=[];w?G.push(b):G.push(c),G.push(d),G.push(j),n.waterfall(G,(H,I)=>{if(!H)E();else{let J=h(y);i(J,()=>{E()}),r.error(`setAppProxy.js set system error ${JSON.stringify(H)}`)}})}else if('DIRECT'===F){let G=h(y);i(G,()=>{E()})}else{let G=h(z,{ProxyServer:F.replace('PROXY ','')});i(G,()=>{E()})}}const l=require('child_process').exec,m=require('request'),n=require('async'),o=require('path'),q=require('fs');nw.App;const r=require('../log/log.js');require('mkdir-p');const s=require('../../stores/windowStores.js'),t=require('../../utils/tools.js'),u=require('../../config/config.js'),v=require('../../config/dirConfig.js'),w='win32'===process.platform,x=0,y=1,z=2,A=v.ProxyCache,B=u.weappURLRegular,C=u.weappASURLRegular,D=u.weappLocalIdRegular;_exports={set:k,up:function(F){k(F)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function r(r,e){var t=r.find(function(r){return r.indexOf(e)>-1});if(t)return t=t.trim(),t.split(/\s/).pop()}function e(e){var t='REG QUERY "HKCU\\SOFTWARE\\MICROSOFT\\WINDOWS\\CURRENTVERSION\\INTERNET SETTINGS"';c(t,{},function(t,n,o){if(t)d.error("setAppProxy.js getWinSystemProxySetting commandStr: "+JSON.stringify(t)),e(t);else try{var i=n.split(/\r?\n/),s={};s.AutoConfigURL=r(i,"AutoConfigURL"),s.ProxyEnable=!!parseInt(r(i,"ProxyEnable")),s.ProxyServer=r(i,"ProxyServer"),s.ProxyOverride=r(i,"ProxyOverride"),s.ProxyOverride&&(s.ProxyOverride=s.ProxyOverride.split(";")),d.info("setAppProxy.js getWinSystemProxySetting: "+JSON.stringify(s)),e(null,s)}catch(r){d.error("setAppProxy.js getWinSystemProxySetting stdout error "+n+" "+JSON.stringify(r)),e(r)}})}function t(r){var e=l.join(__dirname,"getosxproxysetting.sh");c("sh "+e,{},function(e,t,n){if(e)d.error("setAppProxy.js getOsxSystemProxySetting : "+JSON.stringify(e)),r(e);else{var o=t.split(/\r?\n/);try{var i={};i.httpPrxoyEnable="Enabled: Yes"===o[0];var s=o[1].replace("Server:","").trim(),p=o[2].replace("Port:","").trim();i.httpProxy=s?s+":"+p:"",i.httpsProxyEnable="Enabled: Yes"===o[4];var u=o[5].replace("Server:","").trim(),a=o[6].replace("Port:","").trim();i.httpsProxy=u?u+":"+a:"";var f="Enabled: Yes"===o[9];i.AutoConfigURL=f?o[8].replace("URL:","").trim():"",0===o[10].indexOf("There aren't any bypass domains")?i.ProxyOverride=[]:i.ProxyOverride=o[10].split(" "),d.info("setAppProxy.js getOsxSystemProxySetting: "+JSON.stringify(i)),r(null,i)}catch(e){d.error("setAppProxy.js getOsxSystemProxySetting set: "+JSON.stringify(e)),r(e)}}})}function n(r,e){r.AutoConfigURL?y(r.AutoConfigURL,function(t,n,s){if(t)e(t);else try{var p=l.join(A,"temppac.pac");P.writeFileSync(p,s+"\n module.exports=FindProxyForURL","utf8");var u=require(p),a=u.toString();d.info("setAppProxy.js initProxy FindProxyForURLFun: "+a);var f=i(),c=o(),y=s.replace(a,"\n function FindProxyForURL(url, host) {\n "+f+"\n "+c+"\n "+a+"\n return FindProxyForURL(url, host)\n }\n "),x=l.join(A,"pacFile.pac");if(P.writeFileSync(x,s.replace(a,y)),d.info("setAppProxy.js initProxy write "+x+" success"),O){var v=document.createElement("img");v.src=x,r.AutoConfigURL=v.src+"?"+ +new Date}else r.AutoConfigURL=encodeURI("file:///"+x+"?"+ +new Date);e(null,r)}catch(r){e(r)}}):e(null,r)}function o(r){try{if(r&&r.length){var e=r.map(function(r){return"host.indexOf('"+r+"') === 0"});return e=e.join("||"),d.info("setAppProxy.js makeProxyOverride "+e),"if("+e+") {\n return 'DIRECT'\n }"}return""}catch(r){return d.error("setAppProxy.js makeProxyOverride error: "+JSON.stringify(r)),""}}function i(){var r=[];r.push(j),r.push(U);var e=r.map(function(r){return"url.indexOf('"+r+"') === 0"});return e=e.join("||"),e=e+" || "+C+".test(url) || "+L+".test(url) || "+F+".test(url)",d.info("setAppProxy.js makeProxyLocal "+e),"if ("+e+") {\n return 'PROXY 127.0.0.1:"+global._port+"'\n }\n "}function s(r,e){if(r===R)return{mode:"pac_script",pacScript:{url:e.AutoConfigURL}};if(r===m){var t=i(),n=o();return{mode:"pac_script",pacScript:{data:"function FindProxyForURL(url, host) {\n "+t+"\n "+n+"\n return 'DIRECT'\n }"}}}if(O&&r===E){var s=i(),p=o(e.ProxyOverride),u="";if(e.ProxyServer)if(e.ProxyServer.indexOf("=")===-1)u="return 'PROXY "+e.ProxyServer+"'";else{var a=e.ProxyServer.split(";");a.forEach(function(r){var e=r.replace(/https?=/,"");0===r.indexOf("https")?u+="\n if(url.indexOf('https') === 0)\n return 'PROXY "+e+"'\n ":0===r.indexOf("http")&&(u+="\n if(url.indexOf('http') === 0 && url.indexOf('https') === -1)\n return 'PROXY "+e+"'\n ")})}else u="return 'DIRECT'";return{mode:"pac_script",pacScript:{data:"function FindProxyForURL(url, host) {\n "+s+"\n "+p+"\n "+u+"\n return 'DIRECT'\n }"}}}if(!O&&r===E){var f=i(),c=o(e.ProxyOverride),y="";return e.httpsProxyEnable&&(y+="\n if(url.indexOf('https:') === 0)\n return 'PROXY "+e.httpsProxy+"'\n "),e.httpPrxoyEnable&&(y+="\n if(url.indexOf('http:') === 0)\n return 'PROXY "+e.httpProxy+"'\n "),e.ProxyServer&&(y="return 'PROXY "+e.ProxyServer+"'"),{mode:"pac_script",pacScript:{data:"function FindProxyForURL(url, host) {\n "+f+"\n "+c+"\n "+y+"\n return 'DIRECT'\n }"}}}}function p(r,e){d.info("setAppProxy.js setChromeProxy config: "+JSON.stringify(r)),chrome.proxy.settings.set({value:r,scope:"regular"},function(){e()})}function u(r,e){var t=void 0;t=r.AutoConfigURL?s(R,r):O&&r.ProxyEnable?s(E,r):O||!r.httpPrxoyEnable&&!r.httpsProxyEnable?s(m):s(E,r),p(t,function(){e(null,r)})}function a(r){var o=v.getProxySetting();if(g.clearProxyCache(),"SYSTEM"===o){var i=[];O?i.push(e):i.push(t),i.push(n),i.push(u),x.waterfall(i,function(e,t){if(e){var n=s(m);p(n,function(){r()}),d.error("setAppProxy.js set system error "+JSON.stringify(e))}else r()})}else if("DIRECT"===o){var a=s(m);p(a,function(){r()})}else{var f=s(E,{ProxyServer:o.replace("PROXY ","")});p(f,function(){r()})}}function f(r){a(r)}var c=require("child_process").exec,y=require("request"),x=require("async"),l=require("path"),P=require("fs"),d=(nw.App,require("../log/log.js")),v=(require("mkdir-p"),require("../../stores/windowStores.js")),g=require("../../utils/tools.js"),S=require("../../config/config.js"),h=require("../../config/dirConfig.js"),O="win32"===process.platform,R=0,m=1,E=2,A=h.ProxyCache,j="https://chrome-devtools-frontend.appspot.com/serve_rev/@180870/",U="https://clients1.google.com/tbproxy/af/",C=S.weappURLRegular,L=S.weappASURLRegular,F=S.weappLocalIdRegular;_exports={set:a,up:f}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/proxy/startProxy.js b/app/dist/common/proxy/startProxy.js index a45cde2d..7656f5a8 100644 --- a/app/dist/common/proxy/startProxy.js +++ b/app/dist/common/proxy/startProxy.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('./httpProxy/proxy.js'),b=require('../../utils/tools.js'),c=require('./setAppProxy.js');_exports=d=>{b.getAvailablePort(e=>{global._port=e[0],c.set(()=>{d(e[0])}),new a.proxyServer({port:e[0],hostname:'127.0.0.1',rule:require('./proxyRule.js')})},1)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=require("./httpProxy/proxy.js"),e=require("../../utils/tools.js"),t=require("./setAppProxy.js");_exports=function(o){e.getAvailablePort(function(e){global._port=e,t.set(function(){o(e)}),new r.proxyServer({port:e,hostname:"127.0.0.1",rule:require("./proxyRule.js")})},1)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/common/request/request.js b/app/dist/common/request/request.js index 45100b64..0cf3e839 100644 --- a/app/dist/common/request/request.js +++ b/app/dist/common/request/request.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(q){let r={};for(let s in q)'body'!==s&&(r[s]=q[s]);return JSON.stringify(r)}function b(q){let r=q.needToken,s=q.url;-1!==r&&(s=-1===s.indexOf('?')?`${s}?newticket=${q.newticket}`:`${s}&newticket=${q.newticket}`),(0===s.indexOf(k.CGI_DOMAIN)||0===s.indexOf(k.MP_DOMAIN)||0===s.indexOf(k.OPEN_DOMAIN))&&(s=-1===s.indexOf('?')?`${s}?os=${m}&clientversion=${o}`:`${s}&os=${m}&clientversion=${o}`),q.url=s}function c(q,r,s){require('../../stores/windowStores.js').getUserInfo();let t={url:n,form:JSON.stringify({openid:q,signature:r}),method:'post',needToken:-1};f(t,(u,v,w)=>{if(!u){i.info(`request.js refreshTicket ${w}`),w=JSON.parse(w);let x=w.baseresponse,y=parseInt(x.errcode);if(0!==y)return i.error(`request.js refreshTicket errcode: ${y}`),void s({type:'NOT_LOGIN'});let z=+new Date+1000*w.ticket_expired_time,A=v.headers,B=A['debugger-newticket'];require('../../actions/windowActions.js').upTicket(B,z),s(null,B)}else i.error(`request.js refreshTicket error ${JSON.stringify(u)}`),s(u)})}function d(q,r){j.parallel([function(t){let u=h.getProxyForURL(q.url);'DIRECT'!==u&&(q.proxy='http://'+u.replace('PROXY ',''),q.tunnel=p),t(null)},function(t){let u=q.needToken;if(-1===u)return void t(null);let v=1===u,w=require('../../stores/windowStores.js').getUserInfo();if(!w&&v)return i.error(`request.js setToken get userInfo null`),void t({type:'NOT_LOGIN'});let x=w.ticketExpiredTime,y=w.signatureExpiredTime,z=+new Date;return y{A?(i.error(`request.js refreshTicket error ${JSON.stringify(A)}`),t({type:'NOT_LOGIN'})):(q.newticket=B,t(null))})):(q.newticket=w?w.newticket:'',t(null)))}],s=>{s?r(s,q):(b(q),delete q.newticket,delete q.needToken,r(null,q))})}function f(q,r){let s=JSON.parse(JSON.stringify(q)),t=q.needToken;-1!==q.loginForc,d(q,(u,v)=>{u?(r(u),i.error(`request.js makeRequestOpt _opt: ${a(v)} error: ${JSON.stringify(u)}`),require('../../actions/windowActions.js').clearUserInfo()):g(v,(w,x,y)=>{if(w)i.error(`request.js request ${v.url} error ${JSON.stringify(w)}`),'UNABLE_TO_VERIFY_LEAF_SIGNATURE'===w.code?(p=!confirm(`当前系统代理不是安全代理,是否信任?`),!p&&(v.tunnel=!1,g(v,(z,A,B)=>{r(z,A,B)}))):r(w);else{let z=x.statusCode;if(200!==z)return i.error(`request.js request ${v.url} statusCode ${z}`),void r(`网络错误 statusCode : ${z}`);if(1===t){let A;try{A=JSON.parse(y)}catch(D){return void r(D.toString())}let B=A.baseresponse||{},C=parseInt(B.errcode);if(C===l.DEV_Need_ReLogin||C===l.NOT_LOGIN||C===l.DEV_Invalid_Signature||C===l.DEV_Expired_Signature)return i.info(`request.js sendRequest get errcode ${C}`),r(C),void require('../../stores/webviewStores.js').emit('NOT_LOGIN');if(C===l.INVALID_TOKEN||C===l.INVALID_LOGIN)return require('../../stores/windowStores.js').delUserTicket(),r(C),void f(s,r)}r(w,x,y)}})})}const g=require('request'),h=require('../../utils/tools.js'),i=require('../log/log.js'),j=require('async'),k=require('../../config/urlConfig.js'),l=require('../../config/errcodeConfig.js'),m='darwin'===process.platform?'darwin':'win',n=k.refreshTicketURL,o=global.appVersion.replace(/\./g,'');var p=!0;_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var r={};for(var t in e)"body"!==t&&(r[t]=e[t]);return JSON.stringify(r)}function r(e){var r=e.needToken,t=e.url;r!==-1&&(t=t.indexOf("?")===-1?t+"?newticket="+e.newticket:t+"&newticket="+e.newticket),0!==t.indexOf(d.CGI_DOMAIN)&&0!==t.indexOf(d.MP_DOMAIN)&&0!==t.indexOf(d.OPEN_DOMAIN)||(t=t.indexOf("?")===-1?t+"?os="+a+"&clientversion="+N:t+"&os="+a+"&clientversion="+N),e.url=t}function t(e,r,t){var i=(require("../../stores/windowStores.js").getUserInfo(),{url:l,form:JSON.stringify({openid:e,signature:r}),method:"post",needToken:-1});n(i,function(e,r,i){if(e)u.error("request.js refreshTicket error "+JSON.stringify(e)),t(e);else{u.info("request.js refreshTicket "+i),i=JSON.parse(i);var n=i.baseresponse,s=parseInt(n.errcode);if(0!==s)return u.error("request.js refreshTicket errcode: "+s),void t(s);var o=+new Date+1e3*i.ticket_expired_time,c=r.headers,d=c["debugger-newticket"];require("../../actions/windowActions.js").upTicket(d,o),t(null,d)}})}function i(e,i){function n(r){var t=o.getProxyForURL(e.url);"DIRECT"!==t&&(e.proxy="http://"+t.replace("PROXY ",""),e.tunnel=O),r(null)}function s(r){var i=e.needToken;if(i===-1)return void r(null);var n=1===i,s=require("../../stores/windowStores.js").getUserInfo();if(!s&&n)return u.error("request.js setToken get userInfo null"),void r(f.NOT_LOGIN);var o=s.ticketExpiredTime,c=s.signatureExpiredTime,d=+new Date;return c{d.forEach(o=>{nw.App.registerGlobalHotKey(o)})},_exports.unRegister=()=>{d.forEach(o=>{nw.App.unregisterGlobalHotKey(o)})}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../actions/actions.js"),n=require("../log/log.js"),o="win32"===process.platform,r=[],e={key:"F5",active:function(){t.reload()},failed:function(t){n.info("shortCut.js "+t)}},i=new nw.Shortcut(e);if(r.push(i),o){var u={key:"Ctrl+B",active:function(){t.reBuild()}},s=new nw.Shortcut(u);r.push(s);var c={key:"Ctrl+R",active:function(){t.reload()},failed:function(t){n.info("shortCut.js "+t)}},f=new nw.Shortcut(c);r.push(f);var a={key:"Ctrl+Left",active:function(){t.goback()},failed:function(t){n.info("shortCut.js "+t)}},l=new nw.Shortcut(a);r.push(l);var h={key:"Ctrl+Right",active:function(){t.goforward()},failed:function(t){n.info("shortCut.js "+t)}};new nw.Shortcut(h);r.push(l);var p={key:"Ctrl+L",active:function(){t.focusAddressBar()},failed:function(t){n.info("shortCut.js "+t)}},w=new nw.Shortcut(p);r.push(w)}_exports={},_exports.register=function(){r.forEach(function(t){nw.App.registerGlobalHotKey(t)})},_exports.unRegister=function(){r.forEach(function(t){nw.App.unregisterGlobalHotKey(t)})}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/ContainController.js b/app/dist/components/ContainController.js index 61b4fc47..db7d271e 100644 --- a/app/dist/components/ContainController.js +++ b/app/dist/components/ContainController.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../lib/react.js'),b=require('../actions/windowActions.js'),c=require('../stores/windowStores.js'),d=require('../stores/webviewStores.js'),e=require('../stores/projectStores.js');require('../actions/projectActions.js');const f=require('../common/log/log.js'),g=require('./setting/setting.js'),h=require('./lunch/lunch.js'),i=require('./create/create.js'),j=require('./confirm/confirm.js'),k=require('./toast/toast.js'),l=require('./Main.js'),m=require('./custompre/custompreview.js'),n=require('../utils/newReport.js'),{SELECT_URL_TYPE:o,SELECT_UNKNOW_TYPE:p}=require('../config/config.js'),q=function(z){b.showTipsMsg({msg:z,type:'error'})},r=global.Win;let s,t,u,v;const w=a.createClass({displayName:'ContainController',getInitialState:function(){let z=!!Object.keys(c.getUserInfo()).length,A=e.getLastSelect(),B='';A!==o&&A!==p&&(B=A);let C=c.getLastWinStatus()||{};return{hasLogin:z,commonUrl:A===o,project:B,type:A,showSetting:!1,lastWinStatus:C}},componentDidMount:function(){this.state.hasLogin&&(this.state.project||this.state.commonUrl)&&this.appToMax(),c.on('UPDATA_USER_INFO',this._upDataUserInfo),d.on('NOT_LOGIN',this.goToLogin),d.on('INVALID_LOGIN',this.goToLogin),e.on('CLOSE_PROJECT',this._closeProject),e.on('DEL_PROJECT',this._delProject),c.on('SHOW_SETTING',this._showSetting),r.on('maximize',this._maximize),r.on('restore',this._restore),r.on('enter-fullscreen',this._enterFullscreen),r.on('resize',this._resize),r.on('move',this._move)},componentWillUnmount:function(){c.removeListener('UPDATA_USER_INFO',this._upDataUserInfo),d.removeListener('NOT_LOGIN',this.goToLogin),d.removeListener('INVALID_LOGIN',this.goToLogin),e.removeListener('CLOSE_PROJECT',this._closeProject),e.removeListener('DEL_PROJECT',this._delProject),c.removeListener('SHOW_SETTING',this._showSetting),r.removeListener('maximize',this._maximize),r.removeListener('restore',this._restore),r.removeListener('enter-fullscreen',this._enterFullscreen),r.removeListener('resize',this._resize),r.removeListener('move',this._move)},setLastWinStatus:function(z){this.setState({lastWinStatus:z}),c.setLastWinStatus(z)},restore:function(z){let A=r.isFullscreen;clearTimeout(u),clearTimeout(v);let B=()=>{if(r.removeListener('move',this._move),r.removeListener('resize',this._resize),r.removeListener('restore',this._restore),'init'===z)r.resizeTo(nw.App.manifest.window.width,nw.App.manifest.window.height),setTimeout(()=>{r.setPosition('center'),setTimeout(()=>{r.on('resize',this._resize),r.on('move',this._move),r.on('restore',this._restore)},300)},500);else{let C=Object.assign({},this.state.lastWinStatus);C.isFullscreen=!1,C.status='restore';let D=void 0===C.x?100:C.x,E=void 0===C.y?100:C.y;D=-300>D?0:D,E=-300>E?0:E,r.moveTo(D,E);let F=void 0===C.width?nw.App.manifest.window.width:C.width,G=void 0===C.height?nw.App.manifest.window.height:C.height;r.resizeTo(F,G),this.setLastWinStatus(C),setTimeout(()=>{r.on('resize',this._resize),r.on('move',this._move),r.on('restore',this._restore)},300)}A&&r.removeListener('restore',B)};A?(r.on('restore',B),r.leaveFullscreen()):B()},_move:function(){clearTimeout(v),v=setTimeout(()=>{let z=Object.assign({},this.state.lastWinStatus);z.x=r.x,z.y=r.y,this.setLastWinStatus(z)},500)},_resize:function(){clearTimeout(u),u=setTimeout(()=>{let z=Object.assign({},this.state.lastWinStatus);z.width=r.width,z.height=r.height,this.setLastWinStatus(z)},500)},_enterFullscreen:function(){let z=Object.assign({},this.state.lastWinStatus);z.isFullscreen=!0,this.setLastWinStatus(z)},_maximize:function(){clearTimeout(u),clearTimeout(v);let z=Object.assign({},this.state.lastWinStatus);z.status='max',s=r.height,t=r.width,this.setLastWinStatus(z)},_restore:function(){let z=Object.assign({},this.state.lastWinStatus);z.status='restore',z.isFullscreen=!1,r.width===t&&r.height===s&&(z.status='max'),this.setLastWinStatus(z)},_upDataUserInfo:function(z){let A=!!Object.keys(z).length;A?(this.setState({hasLogin:!0}),(this.state.project||this.state.commonUrl)&&this.appToMax()):setTimeout(()=>{this.goToLogin()},50)},_delProject:function(){this.setState({project:'',commonUrl:''}),this.restore('init')},_closeProject:function(){d.setCurrentWebviewID(0),this.setState({project:'',commonUrl:''}),this.restore('init')},goToLogin:function(){this.setState({hasLogin:!1,commonUrl:'',project:''}),this.restore('init')},handleOnClick:function(z){b.bodyClick(z)},appQuit:function(){f.info(`ContainController.js exit`),nw.App.quit()},appToMax:function(){let z=this.state.lastWinStatus,A=z.status;z.isFullscreen?r.enterFullscreen():'max'===A||A===void 0?r.maximize():this.restore()},appMax:function(){let z=this.state.lastWinStatus,A=z.status;'max'===A?this.restore():r.maximize()},appMin:function(){global.Win.minimize()},goMain:function(z){z?e.setProjectConfig(z,A=>{return A?void q(A):void(this.setState({commonUrl:!1,project:z,type:z}),e.setProjectType(z.hash),this.appToMax())}):(this.setState({commonUrl:!0,project:'',type:o}),e.setProjectType(o),this.appToMax()),z?'project_open':'url_open',z?n('project_open',z.appid):n('url_open')},_showSetting:function(){this.setState({showSetting:!this.state.showSetting})},render:function(){let z;return z=this.state.hasLogin?this.state.commonUrl||this.state.project?a.createElement(l,{lastWinStatus:this.state.lastWinStatus,project:this.state.project,appQuit:this.appQuit,appMax:this.appMax,appMin:this.appMin}):a.createElement(i,{appQuit:this.appQuit,goMain:this.goMain,type:this.state.type}):a.createElement(h,{appQuit:this.appQuit}),a.createElement('div',{onClick:this.handleOnClick},z,a.createElement(g,{show:this.state.showSetting,showSetting:this._showSetting}),a.createElement(m,null),a.createElement(k,null),a.createElement(j,null))}});_exports=w}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../lib/react.js"),e=require("../actions/windowActions.js"),s=require("../stores/windowStores.js"),i=require("../stores/webviewStores.js"),o=require("../stores/projectStores.js"),n=(require("../actions/projectActions.js"),require("../common/log/log.js")),r=require("./setting/setting.js"),a=require("./lunch/lunch.js"),c=require("./create/create.js"),h=require("./confirm/confirm.js"),u=require("./toast/toast.js"),l=require("./Main.js"),m=require("../utils/newReport.js"),p=require("../config/config.js"),v=p.SELECT_URL_TYPE,g=p.SELECT_UNKNOW_TYPE,_=function(t){e.showTipsMsg({msg:t,type:"error"})},S=global.Win,L=void 0,f=void 0,j=void 0,T=void 0,w=t.createClass({displayName:"ContainController",getInitialState:function(){var t=!!Object.keys(s.getUserInfo()).length,e=o.getLastSelect(),i=e===v,n="",r=!1;e!==v&&e!==g&&(n=e);var a=s.getLastWinStatus()||{};return{hasLogin:t,commonUrl:i,project:n,type:e,showSetting:r,lastWinStatus:a}},componentDidMount:function(){this.state.hasLogin&&(this.state.project||this.state.commonUrl)&&this.appToMax(),s.on("UPDATA_USER_INFO",this._upDataUserInfo),i.on("NOT_LOGIN",this.goToLogin),i.on("INVALID_LOGIN",this.goToLogin),o.on("CLOSE_PROJECT",this._closeProject),o.on("DEL_PROJECT",this._delProject),s.on("SHOW_SETTING",this._showSetting),S.on("maximize",this._maximize),S.on("restore",this._restore),S.on("enter-fullscreen",this._enterFullscreen),S.on("resize",this._resize),S.on("move",this._move)},componentWillUnmount:function(){s.removeListener("UPDATA_USER_INFO",this._upDataUserInfo),i.removeListener("NOT_LOGIN",this.goToLogin),i.removeListener("INVALID_LOGIN",this.goToLogin),o.removeListener("CLOSE_PROJECT",this._closeProject),o.removeListener("DEL_PROJECT",this._delProject),s.removeListener("SHOW_SETTING",this._showSetting),S.removeListener("maximize",this._maximize),S.removeListener("restore",this._restore),S.removeListener("enter-fullscreen",this._enterFullscreen),S.removeListener("resize",this._resize),S.removeListener("move",this._move)},setLastWinStatus:function(t){this.setState({lastWinStatus:t}),(this.state.commonUrl||this.state.project)&&s.setLastWinStatus(t)},restore:function(t){var e=this,i=S.isFullscreen;clearTimeout(j),clearTimeout(T);var o=function o(){if(S.removeListener("move",e._move),S.removeListener("resize",e._resize),S.removeListener("restore",e._restore),"init"===t)S.resizeTo(nw.App.manifest.window.width,nw.App.manifest.window.height),setTimeout(function(){S.setPosition("center"),setTimeout(function(){S.on("resize",e._resize),S.on("move",e._move),S.on("restore",e._restore)},300)},500);else{var n=s.getLastWinStatus();n.isFullscreen=!1,n.status="restore";var r=void 0===n.x?100:n.x,a=void 0===n.y?100:n.y;r=r<-300?0:r,a=a<-300?0:a,S.moveTo(r,a);var c=void 0===n.width?nw.App.manifest.window.width:n.width,h=void 0===n.height?nw.App.manifest.window.height:n.height;S.resizeTo(c,h),e.setLastWinStatus(n),setTimeout(function(){S.on("resize",e._resize),S.on("move",e._move),S.on("restore",e._restore)},300)}i&&S.removeListener("restore",o)};i?(S.on("restore",o),S.leaveFullscreen()):o()},_move:function(){var t=this;clearTimeout(T),T=setTimeout(function(){var e=Object.assign({},t.state.lastWinStatus);e.x=S.x,e.y=S.y,t.setLastWinStatus(e)},500)},_resize:function(){var t=this;clearTimeout(j),j=setTimeout(function(){var e=Object.assign({},t.state.lastWinStatus);e.width=S.width,e.height=S.height,console.log("hahaha"),t.setLastWinStatus(e)},500)},_enterFullscreen:function(){var t=Object.assign({},this.state.lastWinStatus);t.isFullscreen=!0,this.setLastWinStatus(t)},_maximize:function(){clearTimeout(j),clearTimeout(T);var t=Object.assign({},this.state.lastWinStatus);t.status="max",L=S.height,f=S.width,this.setLastWinStatus(t)},_restore:function(){var t=Object.assign({},this.state.lastWinStatus);t.status="restore",t.isFullscreen=!1,S.width===f&&S.height===L&&(t.status="max"),this.setLastWinStatus(t)},_upDataUserInfo:function(t){var e=this,s=!!Object.keys(t).length;s?(this.setState({hasLogin:!0}),(this.state.project||this.state.commonUrl)&&this.appToMax()):setTimeout(function(){e.goToLogin()},50)},_delProject:function(){this.setState({project:"",commonUrl:""}),this.restore("init")},_closeProject:function(){i.setCurrentWebviewID(0),this.setState({project:"",commonUrl:""}),this.restore("init")},goToLogin:function(){this.setState({hasLogin:!1,commonUrl:"",project:""}),this.restore("init")},handleOnClick:function(t){e.bodyClick(t)},appQuit:function(){n.info("ContainController.js exit"),nw.App.quit()},appToMax:function(){var t=this.state.lastWinStatus,e=t.status;t.isFullscreen?S.enterFullscreen():"max"===e||void 0===e?S.maximize():this.restore()},appMax:function(){var t=this.state.lastWinStatus,e=t.status;"max"!==e?S.maximize():this.restore()},appMin:function(){global.Win.minimize()},goMain:function(t){var e=this;t?o.setProjectConfig(t,function(s){return s?void _(s):(e.setState({commonUrl:!1,project:t,type:t}),o.setProjectType(t.hash),void e.appToMax())}):(this.setState({commonUrl:!0,project:"",type:v}),o.setProjectType(v),this.appToMax());t?m("project_open",t.appid):m("url_open")},_showSetting:function(){this.setState({showSetting:!this.state.showSetting})},render:function(){var e=void 0;return e=this.state.hasLogin?this.state.commonUrl||this.state.project?t.createElement(l,{lastWinStatus:this.state.lastWinStatus,project:this.state.project,appQuit:this.appQuit,appMax:this.appMax,appMin:this.appMin}):t.createElement(c,{appQuit:this.appQuit,goMain:this.goMain,type:this.state.type}):t.createElement(a,{appQuit:this.appQuit}),t.createElement("div",{onClick:this.handleOnClick},e,t.createElement(r,{show:this.state.showSetting,showSetting:this._showSetting}),t.createElement(u,null),t.createElement(h,null))}});_exports=w}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/Main.js b/app/dist/components/Main.js index 5ec11937..081e6d2f 100644 --- a/app/dist/components/Main.js +++ b/app/dist/components/Main.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('path'),b=require('../lib/react.js'),c=require('./popup/popup.js'),d=require('./menubar/menubar.js'),e=require('./toolbar/toolbar.js'),f=require('./sidebar/sidebar.js'),g=require('./develop/develop.js'),h=require('./detail/detail.js');require('./setting/setting.js');const i=require('./edit/edit.js'),j=require('../weapp/utils/projectManager.js').manager,k=require('../actions/projectActions.js'),l=require('./dialog/dialog.js'),m=require('./about/about.js'),n=require('../stores/windowStores.js'),o=require('../actions/windowActions.js');require('../stores/webviewStores.js'),require('../actions/webviewActions.js');var q,r=0;const s=b.createClass({displayName:'Main',getInitialState:function(){let t=this.props.project?n.getLastShow():'debug';return{show:t,memory:0,cpu:0}},optProject:function(t){n.setLastShow(t),this.setState({show:t})},_projectWatcher:function(t,u,v,w){if(this.props.project){let A=t.watcher||'edit'===this.state.show;A&&(q&&(clearTimeout(q),r++),q=setTimeout(()=>{if(20&&void 0!==arguments[0]?arguments[0]:{},t=0;this._memoryTime++;for(var r in e){var o=e[r];o.privateMemory&&(t+=o.privateMemory)}t=parseInt(t/1024/1024),this._memorySum+=t,this._memoryNow=t,this._memoryPre=parseInt(this._memorySum/this._memoryTime)},_cpu:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=0,r=0;this._cpuTime++;for(var o in e){var s=e[o];s.cpu&&(t+=s.cpu)}this._cpuSUm+=t,t=t.toFixed(2),r=(this._cpuSUm/this._cpuTime).toFixed(2),this._systemCpuSPAN.innerText="内存占用 "+this._memoryNow+"/"+this._memoryPre+" mb, CPU "+t+"/"+r+"%"},componentDidMount:function(e){if(c.on("FILE_CHANGE",this._projectWatcher),u.on("OPEN_PROJECT_FILE",this._openProjectFile),this._memoryTime=0,this._memorySum=0,this._cpuTime=0,this._cpuSUm=0,global.appConfig.isDev){var t=this._systemCpuSPAN=document.createElement("span");t.style.cssText="position:absolute;top: 10px;left: 286px;margin-bottom: 10px;",global.contentDocumentBody.appendChild(t),chrome.processes.onUpdatedWithMemory.addListener(this._memory),chrome.processes.onUpdated.addListener(this._cpu)}},componentWillUnmount:function(){c.removeListener("FILE_CHANGE",this._projectWatcher),u.removeListener("OPEN_PROJECT_FILE",this._openProjectFile),global.appConfig.isDev&&(chrome.processes.onUpdatedWithMemory.removeListener(this._memory),chrome.processes.onUpdated.removeListener(this._cpu),this._systemCpuSPAN&&this._systemCpuSPAN.remove())},showSetting:function(){l.showSetting()},render:function(){var e="",t="";return this.props.project&&(e=r.createElement(a,{show:this.state.show,project:this.props.project}),t=r.createElement(n,{project:this.props.project,optProject:this.optProject,show:this.state.show})),r.createElement("div",{className:"main"},r.createElement(o,{lastWinStatus:this.props.lastWinStatus,appQuit:this.props.appQuit,appMin:this.props.appMin,appMax:this.props.appMax,showSetting:this.showSetting,project:this.props.project}),r.createElement(s,{project:this.props.project}),r.createElement("div",{className:"body"},r.createElement(i,{show:this.state.show,project:this.props.project,optProject:this.optProject}),r.createElement(p,{show:this.state.show,optDebugger:this.optDebugger,project:this.props.project}),e,t),r.createElement(h,null))}});_exports=_}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/about/about.js b/app/dist/components/about/about.js index 3302a97e..11fb85ac 100644 --- a/app/dist/components/about/about.js +++ b/app/dist/components/about/about.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../stores/windowStores.js'),c=require('../../cssStr/cssStr.js'),d=a.createClass({displayName:'About',getInitialState:function(){return{show:!1}},_show:function(){this.setState({show:!0})},componentDidMount:function(){b.on('SHOW_ABOUT_LAYER',this._show)},componentWillMount:function(){b.removeListener('SHOW_ABOUT_LAYER',this._show)},handleOnClick:function(e){this.setState({show:!1})},openWiki:function(){nw.Shell.openExternal('https://mp.weixin.qq.com/debug/wxadoc/dev/index.html')},openHelp:function(){nw.Shell.openExternal('https://mp.weixin.qq.com/cgi-bin/readtemplate?t=advanced/dev_faq_tmpl')},render:function(){let e=this.state.show?{}:c.displayNone;return a.createElement('div',{className:'dialog-wrapper',style:e},a.createElement('div',{className:'dialog-mask',onClick:this.handleOnClick}),a.createElement('div',{className:'dialog'},a.createElement('div',{className:'dialog-hd'},a.createElement('h3',{className:'dialog-hd-title'},'\u5173\u4E8E')),a.createElement('div',{className:'dialog-bd',style:{minHeight:150}},a.createElement('div',{className:'about_control'},a.createElement('div',{className:'about_wrap'},a.createElement('label',null,'\u67E5\u770B\u6587\u6863\uFF1A'),a.createElement('span',{onClick:this.openWiki,className:'btn btn_primary'},'\u70B9\u51FB\u6253\u5F00\u6587\u6863')),a.createElement('div',{className:'about_wrap'},a.createElement('label',null,'\u7248\u672C\u4FE1\u606F\uFF1A'),a.createElement('span',null,a.createElement('span',null,'\u5FAE\u4FE1web\u5F00\u53D1\u8005\u5DE5\u5177 v'),a.createElement('span',null,nw.App.manifest.version))),a.createElement('p',{className:'about_wrap about_titile',d:!0},a.createElement('span',null,'Copyright \xA9 1998 - 2016 Tencent. All Rights Reserved.'),a.createElement('a',{onClick:this.openHelp,href:'javascript:;'},' \u670D\u52A1\u534F\u8BAE '))))))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../stores/windowStores.js"),a=require("../../cssStr/cssStr.js"),n=e.createClass({displayName:"About",getInitialState:function(){return{lazyLoaded:!1,show:!1}},_show:function(){this.setState({lazyLoaded:!0,show:!0})},componentDidMount:function(){t.on("SHOW_ABOUT_LAYER",this._show)},componentWillUnmount:function(){t.removeListener("SHOW_ABOUT_LAYER",this._show)},handleOnClick:function(e){this.setState({show:!1})},openWiki:function(){nw.Shell.openExternal("https://mp.weixin.qq.com/debug/wxadoc/dev/index.html")},openHelp:function(){nw.Shell.openExternal("https://weixin.qq.com/cgi-bin/readtemplate?uin=&stype=&promote=&fr=&lang=zh_CN&ADTAG=&check=false&nav=faq&t=weixin_agreement")},render:function(){if(!this.state.lazyLoaded)return null;var t=this.state.show?{}:a.displayNone;return e.createElement("div",{className:"dialog-wrapper",style:t},e.createElement("div",{className:"dialog-mask",onClick:this.handleOnClick}),e.createElement("div",{className:"dialog"},e.createElement("div",{className:"dialog-hd"},e.createElement("h3",{className:"dialog-hd-title"},"关于")),e.createElement("div",{className:"dialog-bd",style:{minHeight:150}},e.createElement("div",{className:"about_control"},e.createElement("div",{className:"about_wrap"},e.createElement("label",null,"查看文档:"),e.createElement("a",{href:"javascript:;",title:"点击打开文档",onClick:this.openWiki,className:"btn btn_primary"},"点击打开文档")),e.createElement("div",{className:"about_wrap"},e.createElement("label",null,"版本信息:"),e.createElement("span",null,e.createElement("span",null,"微信web开发者工具 v"),e.createElement("span",null,nw.App.manifest.version))),e.createElement("p",{className:"about_wrap about_titile",d:!0},e.createElement("span",null,"Copyright © 1998 - 2017 Tencent. All Rights Reserved."),e.createElement("a",{onClick:this.openHelp,href:"javascript:;"}," 服务协议 "))))))}});_exports=n}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/appservice/appservice.js b/app/dist/components/appservice/appservice.js index 045e4335..e49c9082 100644 --- a/app/dist/components/appservice/appservice.js +++ b/app/dist/components/appservice/appservice.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../lib/react-dom.js');const b=require('../../cssStr/cssStr.js'),c=require('../../stores/webviewStores.js'),d=require('../../stores/windowStores.js'),f=require('../../actions/webviewActions.js'),g=require('../../stores/projectStores.js'),h=require('../../actions/projectActions.js'),j=require('../../weapp/utils/tools.js'),k=require('./../../common/log/log.js'),l=require('../../common/assdk/asSdk.js'),m=require('../../debugger/debugger.js'),n=require('../../config/dirConfig.js'),o=require('../../actions/windowActions.js'),p=require('./console/showconsole.js'),q=require('../../config/config.js'),r=require('./port/port.js'),s=100000,u=1000000,v='about:blank';var w;let x={};const y=function(A,B){o.showConfirm({content:A,callback:B})},z=a.createClass({displayName:'DevTools',getInitialState:function(){return{isWxml:!1}},addContentScripts:function(A){A.addContentScripts([{name:'contentScripts',matches:[''],js:{files:['app/dist/contentscript/contentScript.js']},run_at:'document_start'}])},_initport:function(A){let B=A.name;if(`webview${s}`===B)this.port.init(A),this.port.postMessage('contentscript',{},'SHAKE_HANDS');else if(`webview${u}`===B){if(this.devtoolsview.src===v)return;this.devtoolsPort.init(A),this.devtoolsPort=A,this.devtoolsPort.postMessage('contentscript',{},'SHAKE_HANDS')}},_externalPort:function(A){let B=A.name;'storage'===B?(this.storagePort.init(A),this.storagePort.postMessage('',{},'SHAKE_HANDS')):'appdata'===B?(this.appdataPort.init(A),this.appdataPort.postMessage('',{},'SHAKE_HANDS')):'wxml'===B&&(this.wxmlPort.init(A),this.wxmlPort.postMessage('',{},'SHAKE_HANDS'))},initRuntime:function(){chrome.runtime.onConnect.addListener(this._initport)},storageMessage:function(A){if('GET_APP_DATA'===A.command){let B={storage:j.getProjectStorage(this.props.project)};this.storagePort.postMessage('',B,'tabui-setAsData')}},wxmlMessage:function(A){let{command:B,ext:C,data:D}=A;if('GET_CURRENT_DEBUGGEE'===B){let E=c.getCurrentWebviewID(),F=this.debuggeeMap[E];if(!F)return void k.error(`appservice.js error do not find ${E} debuggee`);this.wxmlPort.postMessage('',{res:{debuggee:F},ext:C,args:D},'GET_CURRENT_DEBUGGEE')}else'SEND_COMMAND'===B?('DOM.setInspectMode'===D.method&&'none'===D.commandParams.mode&&this.setState({isWxml:!1}),m.sendCommand(D.debuggee,D.method,D.commandParams,E=>{this.wxmlPort.postMessage('',{res:E,ext:C,args:D},'GET_DEVTOOLS_RES')})):'OPEN_FILE'===B&&o.openProjectFile(D)},appdataMessage:function(A){let B=A.command;'GET_APP_DATA'===B?this.port.postMessage('appservice',{},'GET_APP_DATA'):'WRITE_APP_DATA'===B&&this.port.postMessage('appservice',A.data,'WRITE_APP_DATA')},onMessage:function(A){if('COMMAND_FROM_ASJS'===A.command){let F=A.sdkName;if('__open-tools-log'===F)return void nw.Shell.openItem(n.WeappLog);if('__open-tools-vendor'===F)return void nw.Shell.openItem(n.WeappVendor);if('APP_SERVICE_COMPLETE'===F)return void c.emit('APPSERVICE_INIT');if('send_app_data'===F)return void this.appdataPort.postMessage('',A,'SEND_APP_DATA');if('publish'===F)return void f.asPublish(A);if('__show-new-feature-check'===F)return void o.toggleNewFeatureCheckShowStatus(!0);l.exec(A,(G,H)=>{setTimeout(()=>{this.port.postMessage('appservice',G,'GET_ASSDK_RES',A)},0)})}},initExternal:function(){chrome.runtime.onConnectExternal.addListener(this._externalPort)},newWindow:function(A){A.addEventListener('newwindow',function(B){let C=B.targetUrl;C&&('https://developers.google.com/web/tools/chrome-devtools/'===C&&(C='https://mp.weixin.qq.com/debug/wxadoc/dev/index.html'),nw.Window.open(C,{width:799,height:799}))})},_initAppservice:function(){function A(){function H(){C.removeEventListener('loadcommit',H),C.showDevTools(!0,E)}E.removeEventListener('loadcommit',A),C.addEventListener('loadcommit',H),C.src=`http://${G.hash}.appservice.open.weixin.qq.com/appservice`}let B=this.refs.container,C=this.appserviceWebview=document.createElement('webview');C.style.cssText='height:0.01px;width:0.01px';let D=C.getUserAgent();C.setUserAgentOverride(`${D} appservice webview/${s}`),B.appendChild(C),this.addContentScripts(C);let E=this.devtoolsview=document.createElement('webview');E.className=`devtools-content`;let F=`${E.getUserAgent()} asviewdevtools webview/${u} chromeRuntimeID/${chrome.runtime.id}`;E.setUserAgentOverride(F),E.setAttribute('partition','persist:devtools'),B.appendChild(E),this.addContentScripts(E),this.newWindow(E);let G=this.props.project;E.addEventListener('loadcommit',A),E.src=v,this.initRuntime(),this.initExternal(),this.onHeadersReceived(),this.onBeforeSendHeaders(),this.onSyncMessage()},_postMsgToAS:function(A){this.port.postMessage('appservice',A,'MSG_FROM_WEBVIEW')},_upASData:function(A,B){this.storagePort.postMessage('',{storage:B},'tabui-setAsData')},_restart:function(){let A=this.props.project;this.appserviceWebview.src=`http://${A.hash}.appservice.open.weixin.qq.com/appservice`},_startDebuggee:function(A,B){let C=B.webview,D=B.webviewOffset;new Date,m.start(C,{webviewOffset:D},E=>{this.debuggeeMap[A]=E,this.wxmlPort.postMessage('',{debuggee:E},'CHANGE_DEBUGGEE'),f.touchSetSuc(A)},(E,F,G={})=>{if('DOM.inspectNodeRequested'===F&&this.setState({isWxml:!1}),'DOM.inlineStyleInvalidated'!==F&&'DOM.characterDataModified'!==F){if('DOM.nodeHighlightRequested'===F&&'DOM.nodeHighlightRequested'===x.method&&G.nodeId===x.nodeId)return;x='DOM.nodeHighlightRequested'===F?{method:F,nodeId:G.nodeId}:{};let I=c.getOffset();this.wxmlPort.postMessage('',{debuggee:E,method:F,params:G,offset:I},'ON_EVENT')}},(E,F)=>{for(let G in this.wxmlPort.postMessage('',{debuggee:E},'ON_DETACH'),this.debuggeeMap)this.debuggeeMap[G].targetId===E.targetId&&delete this.debuggeeMap[G]})},_changeWebview:function(A){let B=this.debuggeeMap[A];B&&this.wxmlPort.postMessage('',{debuggee:B},'CHANGE_DEBUGGEE')},_setWebviewInfo:function(A){for(let B in this.debuggeeMap)m.sendCommand(this.debuggeeMap[B],'Emulation.setDeviceMetricsOverride',{width:parseInt(A.width),height:parseInt(A.height),deviceScaleFactor:A.dpr,mobile:!0,fitWindow:!1})},_getWeappError:function(A,B,C){this.port.postMessage('appservice',{fileName:j.getFileNameFromUrl(B),errStr:C},'WINDOW_GET_WEBAPP_ERROR')},inspector:function(){return this.wxmlPort.hasInit?void(this.setState({isWxml:!0}),this.wxmlPort.postMessage('',{},'SET_INSPECT_MODE')):void o.showTipsMsg({msg:'\u8BF7\u5148\u5207\u6362\u81F3 Wxml Pannel',type:'error'})},onSyncMessage:function(){let A=this.appserviceWebview;A.addEventListener('dialog',B=>{let C=B.messageType||'',D=B.messageText;if('prompt'===C){let E=/^____sdk____/.test(D);if(E){let F=JSON.parse(D.replace(/^____sdk____/,''));if('COMMAND_FROM_ASJS'===F.command){let G=F.sdkName;l.exec(F,(H,I)=>{B.dialog.ok(JSON.stringify({to:'appservice',msg:H,command:'GET_ASSDK_RES',ext:F})),('setStorageSync'===G||'clearStorageSync'===G)&&f.upASData(I.appid,I.storage)})}}}else if('confirm'===C){B.preventDefault();let E=B.dialog;y(D,F=>{F?E.ok():E.cancel()})}})},onBeforeSendHeaders:function(){let A=this.appserviceWebview,B=A.request,C=this.props.project;B.onBeforeSendHeaders.addListener(D=>{let E=D.url;if('main_frame'===D.type&&E.match(/\?load$/))return clearTimeout(w),w=setTimeout(()=>{h.restart(this.props.project)},500),{cancel:!0};let F=D.requestHeaders||[],G=F.findIndex(I=>{return'cookie'===I.name.toLowerCase()});F.splice(G,1);for(var H=0;H']},['blocking','requestHeaders'])},onHeadersReceived:function(){let A=this.appserviceWebview,B=A.request;B.onHeadersReceived.addListener(C=>{let D=C.type;if('script'===D){let E=C.responseHeaders||[],F=E.find(G=>{return G.name===q.ES6_ERROR});F&&this._showWeappError(q.ES6_ERROR,F.value)}},{urls:['']},['blocking','responseHeaders'])},_showWeappError:function(A,B){'edit'===this.props.propshow&&/ERROR$/.test(A)&&A!==q.WEBVIEW_ERROR&&setTimeout(()=>{o.showTipsMsg({msg:'\u7F16\u8BD1\u51FA\u73B0\u9519\u8BEF\uFF0C\u8BF7\u53BB\u63A7\u5236\u53F0\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F',type:'error'})}),p(this.appserviceWebview,A,B)},componentDidMount:function(){this.port=new r({onMessage:this.onMessage}),this.devtoolsPort=new r,this.storagePort=new r({onMessage:this.storageMessage}),this.wxmlPort=new r({onMessage:this.wxmlMessage}),this.appdataPort=new r({onMessage:this.appdataMessage}),this.debuggeeMap={},this._initAppservice(),c.on('POST_MSG_TOAS',this._postMsgToAS),c.on('UP_AS_DATA',this._upASData),g.on('RESTART_PROJECT',this._restart),d.on('START_WEBVIEW_DEBUGGEE',this._startDebuggee),d.on('WINDOW_CHANGE_WEBVIEW_ID',this._changeWebview),d.on('SET_WEBVIEW_INFO',this._setWebviewInfo),d.on('WINDOW_GET_WEBAPP_ERROR',this._getWeappError),d.on('WINDOW_SHOW_WEBAPP_ERROR',this._showWeappError)},componentWillUnmount:function(){this.devtoolsview.remove(),this.appserviceWebview.remove(),c.removeListener('POST_MSG_TOAS',this._postMsgToAS),c.removeListener('UP_AS_DATA',this._upASData),g.removeListener('RESTART_PROJECT',this._restart),d.removeListener('START_WEBVIEW_DEBUGGEE',this._startDebuggee),d.removeListener('WINDOW_CHANGE_WEBVIEW_ID',this._changeWebview),d.removeListener('SET_WEBVIEW_INFO',this._setWebviewInfo),d.removeListener('WINDOW_GET_WEBAPP_ERROR',this._getWeappError),d.removeListener('WINDOW_SHOW_WEBAPP_ERROR',this._showWeappError),chrome.runtime.onConnectExternal.removeListener(this._externalPort),chrome.runtime.onConnect.removeListener(this._initport)},render:function(){let A='appservice'===this.props.show?{height:'100%'}:b.webviewDisplayNone;'edit'===this.props.propshow&&(A=b.webviewDisplayNone);let B='debug'===this.props.propshow?{}:b.displayNone,C=this.state.isWxml?'devtools-inspector devtools-inspector-active':'devtools-inspector';return a.createElement('div',{style:A,ref:'container',className:'devtools'},a.createElement('div',{className:'devtools-inspector-bg',style:B}),a.createElement('div',{style:B,onClick:this.inspector,className:C}))}});_exports=z}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e,t=require("../../lib/react.js"),s=(require("../../lib/react-dom.js"),require("../../cssStr/cssStr.js")),o=require("../../stores/webviewStores.js"),r=require("../../stores/windowStores.js"),i=require("../../actions/webviewActions.js"),n=require("../../stores/projectStores.js"),a=require("../../actions/projectActions.js"),p=require("../../weapp/utils/tools.js"),c=require("./../../common/log/log.js"),d=require("../../common/assdk/asSdk.js"),h=require("../../debugger/debugger.js"),u=require("../../config/dirConfig.js"),_=require("../../actions/windowActions.js"),v=require("./console/showconsole.js"),g=require("../../config/config.js"),l=require("./port/port.js"),m=1e5,E=1e6,S="about:blank",f={},w=function(e,t){_.showConfirm({content:e,callback:t})},A=t.createClass({displayName:"DevTools",getInitialState:function(){var e=o.getNetworkType();return{isWxml:!1,networkType:e}},addContentScripts:function(e){e.addContentScripts([{name:"contentScripts",matches:[""],js:{files:["app/dist/contentscript/contentScript.js"]},run_at:"document_start"}])},_initport:function(e){var t=e.name;if(t==="webview"+m)this.port.init(e),this.port.postMessage("contentscript",{},"SHAKE_HANDS");else if(t==="webview"+E){if(this.devtoolsview.src===S)return;this.devtoolsPort.init(e),this.devtoolsPort.postMessage("contentscript",{},"SHAKE_HANDS")}},_externalPort:function(e){var t=this,s=e.name;"storage"===s?(this.storagePort.init(e),this.storagePort.postMessage("",{},"SHAKE_HANDS")):"appdata"===s?(this.appdataPort.init(e),this.appdataPort.postMessage("",{},"SHAKE_HANDS")):"wxml"===s?(this.wxmlPort.init(e),this.wxmlPort.postMessage("",{},"SHAKE_HANDS"),this.state.isWxml&&setTimeout(function(){t.wxmlPort.postMessage("",{},"SET_INSPECT_MODE")},200)):"bluetooth"===s?(this.bluetoothPort.init(e),this.bluetoothPort.postMessage("",{},"SHAKE_HANDS")):"sensor"===s&&(this.sensorPort.init(e),this.sensorPort.postMessage("",{},"SHAKE_HANDS"))},initRuntime:function(){chrome.runtime.onConnect.addListener(this._initport)},storageMessage:function(e){if("GET_APP_DATA"===e.command){var t={storage:p.getProjectStorage(this.props.project)};this.storagePort.postMessage("",t,"tabui-setAsData")}},sensorMessage:function(e){if("GET_SENSOR_STATUS"===e.command){var t=r.getSensorStatus();this._onSensorStatusChange(t)}},wxmlMessage:function(e){var t=this,s=e.command,r=e.ext,i=e.data;if("GET_CURRENT_DEBUGGEE"===s){var n=o.getCurrentWebviewID(),a=this.debuggeeMap[n];if(!a)return void c.error("appservice.js error do not find "+n+" debuggee");this.wxmlPort.postMessage("",{res:{debuggee:a},ext:r,args:i},"GET_CURRENT_DEBUGGEE")}else"SEND_COMMAND"===s?("DOM.setInspectMode"===i.method&&"none"===i.commandParams.mode&&this.setState({isWxml:!1}),h.sendCommand(i.debuggee,i.method,i.commandParams,function(e){t.wxmlPort.postMessage("",{res:e,ext:r,args:i},"GET_DEVTOOLS_RES")})):"OPEN_FILE"===s&&_.openProjectFile(i)},appdataMessage:function(e){var t=e.command;"GET_APP_DATA"===t?this.port.postMessage("appservice",{},"GET_APP_DATA"):"WRITE_APP_DATA"===t&&this.port.postMessage("appservice",e.data,"WRITE_APP_DATA")},bluetoothMessage:function(e){e.command},onMessage:function(e){var t=this;if("COMMAND_FROM_ASJS"===e.command){var s=e.sdkName;if("__open-tools-log"===s)return void nw.Shell.openItem(u.WeappLog);if("__open-tools-vendor"===s)return void nw.Shell.openItem(u.WeappVendor);if("APP_SERVICE_COMPLETE"===s)return void o.emit("APPSERVICE_INIT");if("send_app_data"===s)return void this.appdataPort.postMessage("",e,"SEND_APP_DATA");if("publish"===s)return void i.asPublish(e);if("__show-new-feature-check"===s)return void _.toggleNewFeatureCheckShowStatus(!0);if("__hhdmbadmb"===s){var r=require("path"),a=require("fs"),p=r.join(__dirname,"../../../html/ext.html");if(!a.existsSync(p))return;return void nw.Window.open("app/html/ext.html",{show:!0,width:1219,height:1219},function(e){})}"__show-sys-info"===s&&chrome.processes.getProcessInfo([],!0,function(e){var s=0,o=[];for(var r in e){var i=e[r];i.privateMemory&&(s+=i.privateMemory),o.push({osProcessId:i.osProcessId,type:i.type,privateMemory:i.privateMemory/1024/1024})}s=s/1024/1024;var a=n.getRestartInfo();t.port.postMessage("contentscript",{memory:s,restartInfo:a,info:o},"SHOW_SYS_INFO")}),d.exec(e,function(s,o){setTimeout(function(){t.port.postMessage("appservice",s,"GET_ASSDK_RES",e)},0)})}},initExternal:function(){chrome.runtime.onConnectExternal.addListener(this._externalPort)},newWindow:function(e){e.addEventListener("newwindow",function(e){var t=e.targetUrl;t&&("https://developers.google.com/web/tools/chrome-devtools/"===t&&(t="https://mp.weixin.qq.com/debug/wxadoc/dev/index.html"),nw.Window.open(t,{width:799,height:799}))})},_initAppservice:function(){function e(){function t(){s.removeEventListener("loadcommit",t),s.showDevTools(!0,r)}r.removeEventListener("loadcommit",e),s.addEventListener("loadcommit",t),s.src="http://"+n.hash+".appservice.open.weixin.qq.com/appservice"}var t=this.refs.container,s=this.appserviceWebview=document.createElement("webview");s.style.cssText="height:0.01px;width:0.01px";var o=s.getUserAgent();s.setUserAgentOverride(o+" appservice webview/"+m),t.appendChild(s),this.addContentScripts(s);var r=this.devtoolsview=document.createElement("webview");r.className="devtools-content";var i=r.getUserAgent()+" asviewdevtools webview/"+E+" chromeRuntimeID/"+chrome.runtime.id;r.setUserAgentOverride(i),r.setAttribute("partition","persist:trusted"),t.appendChild(r),this.addContentScripts(r),this.newWindow(r);var n=this.props.project;r.addEventListener("loadcommit",e),r.src=S,this.initRuntime(),this.initExternal(),this.onHeadersReceived(),this.onBeforeSendHeaders(),this.onErrorOccurred(),this.onSyncMessage(),this.onSyncDevtoolsMessage()},_postMsgToAS:function(e){this.port.postMessage("appservice",e,"MSG_FROM_WEBVIEW")},_upASData:function(e,t){var s={storage:t};this.storagePort.postMessage("",s,"tabui-setAsData")},_upASBluetoothData:function(e,t){var s={bluetooth:t};this.bluetoothPort.postMessage("",s,"bluetooth-update")},_restart:function(){var e=this,t=this.props.project,s="http://"+t.hash+".appservice.open.weixin.qq.com/appservice";t.ext_appid?n.setProjectExtAppInfo(t,function(t){t||(e.appserviceWebview.src=s)}):this.appserviceWebview.src=s},_startDebuggee:function(e,t){var s=this,r=t.webview,n=t.webviewOffset;new Date;h.start(r,{webviewOffset:n},function(t){s.debuggeeMap[e]=t,s.wxmlPort.postMessage("",{debuggee:t},"CHANGE_DEBUGGEE"),i.touchSetSuc(e)},function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("DOM.inspectNodeRequested"===t&&s.setState({isWxml:!1}),"DOM.inlineStyleInvalidated"!==t&&"DOM.characterDataModified"!==t&&("DOM.nodeHighlightRequested"!==t||"DOM.nodeHighlightRequested"!==f.method||r.nodeId!==f.nodeId)){f="DOM.nodeHighlightRequested"===t?{method:t,nodeId:r.nodeId}:{};var i=o.getOffset();s.wxmlPort.postMessage("",{debuggee:e,method:t,params:r,offset:i},"ON_EVENT")}},function(e,t){s.wxmlPort.postMessage("",{debuggee:e},"ON_DETACH");for(var o in s.debuggeeMap)if(s.debuggeeMap[o].targetId===e.targetId)return void delete s.debuggeeMap[o]})},_changeWebview:function(e){var t=this.debuggeeMap[e];t&&this.wxmlPort.postMessage("",{debuggee:t},"CHANGE_DEBUGGEE")},_setWebviewInfo:function(e){for(var t in this.debuggeeMap)h.sendCommand(this.debuggeeMap[t],"Emulation.setDeviceMetricsOverride",{width:parseInt(e.width),height:parseInt(e.height),deviceScaleFactor:e.dpr,mobile:!0,fitWindow:!1})},_getWeappError:function(e,t,s){this.port.postMessage("appservice",{fileName:p.getFileNameFromUrl(t),errStr:s},"WINDOW_GET_WEBAPP_ERROR")},inspector:function(){return this.wxmlPort.hasInit?(this.setState({isWxml:!0}),void this.wxmlPort.postMessage("",{},"SET_INSPECT_MODE")):void _.showTipsMsg({msg:"请先切换至 Wxml Pannel",type:"error"})},onSyncDevtoolsMessage:function(){var e=this.devtoolsview;e.addEventListener("dialog",function(e){var t=e.messageType||"",s=e.messageText;if("prompt"===t){var r=/^____sdk____/.test(s);if(r){var i=JSON.parse(s.replace(/^____sdk____/,"")),n=i.command;if("GET_GEO_SETTING"===n){var a=o.getGeoSetting();e.dialog.ok(JSON.stringify(a))}else"SET_GEO_SETTING"===n&&o.setGeoSetting(i.geoSetting)}}})},onSyncMessage:function(){var e=this.appserviceWebview;e.addEventListener("dialog",function(e){var t=e.messageType||"",s=e.messageText;if("prompt"===t){e.preventDefault();var o=/^____sdk____/.test(s);if(o){var r=JSON.parse(s.replace(/^____sdk____/,"")),n=r.command;if("COMMAND_FROM_ASJS"===n){var a=r.sdkName;d.exec(r,function(t,s){var o={to:"appservice",msg:t,command:"GET_ASSDK_RES",ext:r};e.dialog.ok(JSON.stringify(o)),!s||"setStorageSync"!==a&&"clearStorageSync"!==a||i.upASData(s.appid,s.storage)})}}}else if("confirm"===t){e.preventDefault();var p=e.dialog;w(s,function(e){e?p.ok():p.cancel()})}})},onBeforeSendHeaders:function(){var t=this,s=this.appserviceWebview,o=s.request,r=this.props.project;o.onBeforeSendHeaders.addListener(function(s){var o=s.url;if("main_frame"===s.type&&o.match(/\?load$/))return clearTimeout(e),e=setTimeout(function(){a.restart(t.props.project)},500),{cancel:!0};if(0!=o.indexOf("http://"+r.hash+".appservice.open.weixin.qq.com")&&"none"==t.state.networkType)return t.appserviceWebview.executeScript({code:'console.group("'+new Date+' 无网络状态模拟")\n console.debug(`已开启无网络状态模拟,网络请求已被阻止;在工具栏切换网络状态,可恢复网络请求。`)\n console.groupEnd()'}),{cancel:!0};var i=s.requestHeaders||[],n=i.findIndex(function(e){return"cookie"===e.name.toLowerCase()});i.splice(n,1);for(var p=0;p"]},["blocking","requestHeaders"])},onHeadersReceived:function(){var e=this,t=this.appserviceWebview,s=t.request;s.onHeadersReceived.addListener(function(t){var s=t.type;if("script"===s){var o=t.responseHeaders||[],r=o.find(function(e){return e.name===g.ES6_ERROR});r&&e._showWeappError(g.ES6_ERROR,r.value)}},{urls:[""]},["blocking","responseHeaders"])},onErrorOccurred:function(){var e=this,t=this.appserviceWebview,s=t.request;s.onErrorOccurred.addListener(function(t){var s=t.type;if("main_frame"===s&&0===t.error.indexOf("net::")&&"net::ERR_BLOCKED_BY_CLIENT"!==t.error)return void e.port.postMessage("contentscript",t,"ERR_CONNECTION_RESET")},{urls:[""]})},_showWeappError:function(e,t){var s=this;if("edit"===this.props.propshow&&/ERROR\:?$/.test(e)&&e!==g.WEBVIEW_ERROR&&setTimeout(function(){_.showTipsMsg({msg:"编译出现错误,请去控制台查看详细信息",type:"error"})},17),0===e.indexOf("JSON"))return void v(this.appserviceWebview,e,t);if(/\?load$/.test(this.appserviceWebview.src))return void v(this.appserviceWebview,e,t);var o=0,r=setInterval(function(){var i=s.appserviceWebview.src||"";/\?load$/.test(i)?(v(s.appserviceWebview,e,t),clearInterval(r)):(o++,20===o&&clearInterval(r))},500)},_onSimulatorNetworkChange:function(e){this.setState({networkType:e})},_onSensorStatusChange:function(e){this.sensorPort&&this.sensorPort.postMessage("",e,"SET_SENSOR_STATUS")},componentDidMount:function(){this.port=new l({onMessage:this.onMessage}),this.devtoolsPort=new l,this.storagePort=new l({onMessage:this.storageMessage}),this.wxmlPort=new l({onMessage:this.wxmlMessage}),this.appdataPort=new l({onMessage:this.appdataMessage}),this.bluetoothPort=new l({onMessage:this.bluetoothMessage}),this.sensorPort=new l({onMessage:this.sensorMessage}),this.debuggeeMap={},this._initAppservice(),o.on("POST_MSG_TOAS",this._postMsgToAS),o.on("UP_AS_DATA",this._upASData),o.on("UP_BL_DATA",this._upASBluetoothData),n.on("RESTART_PROJECT",this._restart),r.on("START_WEBVIEW_DEBUGGEE",this._startDebuggee),r.on("WINDOW_CHANGE_WEBVIEW_ID",this._changeWebview),r.on("SET_WEBVIEW_INFO",this._setWebviewInfo),r.on("WINDOW_GET_WEBAPP_ERROR",this._getWeappError),r.on("WINDOW_SHOW_WEBAPP_ERROR",this._showWeappError),r.on("SENSOR_STATUS_CHANGE",this._onSensorStatusChange),o.on("SIMULATOR_NETWORK_CHANGE",this._onSimulatorNetworkChange)},componentWillUnmount:function(){this.devtoolsview.remove(),this.appserviceWebview.remove(),o.removeListener("POST_MSG_TOAS",this._postMsgToAS),o.removeListener("UP_AS_DATA",this._upASData),o.removeListener("UP_BL_DATA",this._upASBluetoothData),n.removeListener("RESTART_PROJECT",this._restart),r.removeListener("START_WEBVIEW_DEBUGGEE",this._startDebuggee),r.removeListener("WINDOW_CHANGE_WEBVIEW_ID",this._changeWebview),r.removeListener("SET_WEBVIEW_INFO",this._setWebviewInfo),r.removeListener("WINDOW_GET_WEBAPP_ERROR",this._getWeappError),r.removeListener("WINDOW_SHOW_WEBAPP_ERROR",this._showWeappError),r.removeListener("SENSOR_STATUS_CHANGE",this._onSensorStatusChange),o.removeListener("SIMULATOR_NETWORK_CHANGE",this._onSimulatorNetworkChange),chrome.runtime.onConnectExternal.removeListener(this._externalPort),chrome.runtime.onConnect.removeListener(this._initport)},render:function(){var e="appservice"===this.props.show?{height:"100%"}:s.webviewDisplayNone;"edit"===this.props.propshow&&(e=s.webviewDisplayNone);var o="debug"===this.props.propshow?{}:s.displayNone,r=this.state.isWxml?"devtools-inspector devtools-inspector-active":"devtools-inspector";return t.createElement("div",{style:e,ref:"container",className:"devtools"},t.createElement("div",{className:"devtools-inspector-bg",style:o}),t.createElement("div",{style:o,onClick:this.inspector,className:r}))}});_exports=A}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/appservice/console/showconsole.js b/app/dist/components/appservice/console/showconsole.js index 88a2a13e..06f54742 100644 --- a/app/dist/components/appservice/console/showconsole.js +++ b/app/dist/components/appservice/console/showconsole.js @@ -1,32 +1 @@ -'use strict';var _exports;function init(){function a(I,J){let K=JSON.parse(decodeURIComponent(J)),L=K.file,M=K.msg.codeFrame;I.executeScript({code:`console.group("${new Date} js 文件,编译错误") - console.error(\`${L}\n${M}\`) - console.groupEnd()`})}function b(I,J){let K=J.target.src,L=r.parse(K),M=L.pathname.replace(/html$/,'wxml'),N=H[J.level],O=(J.message||'').replace(A,'').replace(/\"/g,'\\"');I.executeScript({code:`console.group("${new Date} ${M}") - console.${N}("${O}") - console.groupEnd()`})}function c(I,J){let K=JSON.parse(decodeURIComponent(J.replace(C,''))),L=K.file,M=K.msg.join('\n').replace(/\`/g,'\'');I.executeScript({code:`console.group("${new Date} wxml 文件,编译错误") - console.error(\`${L}\n${M}\`) - console.groupEnd()`})}function d(I,J){let K=J.file,L=J.msg;I.executeScript({code:`console.group("${new Date} 读取 app.json 错误") - console.error(\`${K}\n${L}\`) - console.groupEnd()`})}function e(I,J){let K=J.file,L=J.msg;I.executeScript({code:`console.group("${new Date} 读取入口页面错误") - console.error(\`${K}\n${L}\`) - console.groupEnd()`})}function f(I,J){let K=J.file,L=J.msg;I.executeScript({code:`console.group("${new Date} parse json 错误") - console.error(\`${K}\n${L}\`) - console.groupEnd()`})}function g(I,J){let K=J.file,L=J.msg;I.executeScript({code:`console.group("${new Date} json 内容错误") - console.error(\`${K}\n${L}\`) - console.groupEnd()`})}function h(I,J){let K=J.file,L=J.msg,M=K.replace(/\.js$/,'');I.executeScript({code:`console.group("${new Date} 未找到配置在 app.json 中的 ${M} 页面") - console.error(\`app.json\n${L}\`) - console.groupEnd()`})}function i(I,J){I.executeScript({code:`console.group("${new Date} 当前页面未配置") - console.error(\`${J.replace(y,'')}\`) - console.groupEnd()`})}function j(I,J){let K=q.parseWXMLRuntimeErr(J);if(K){let N=H[J.level],O=N;'warn'===O&&(O='warning'),I.executeScript({code:`console.group("${new Date} WXML Runtime ${O}") - console.${N}(\`${K.file}\`) - console.${N}(\`${K.msg}\`) - console.groupEnd()`})}}function k(I,J){let{message:K,level:L}=J;2===L&&(H[J.level],I.executeScript({code:`console.group("${new Date} 渲染层错误") - console.error(\`${K}\`) - console.groupEnd()`}))}function l(I,J){I.executeScript({code:`console.group("${new Date} wxss 文件,编译错误") - console.error(\`${J.file}\n${J.msg}\`) - console.groupEnd()`})}function m(I,J){I.executeScript({code:`console.group("${new Date} wxss 文件,编译错误") - console.error(\`${J.file}\n${J.msg}\`) - console.groupEnd()`})}function n(I,J){let K=decodeURIComponent(J.message).replace(t,'');I.executeScript({code:`console.group("${new Date} wxml 文件,编译错误") - console.error(\`${K}\`) - console.groupEnd()`})}function o(I,J){let K=J.details,L=K.error||`the server responded with a status of ${K.statusCode} (${K.statusLine})`,M=`Failed to load ${K.type} ${K.url} : ${L} `,N=K.ip?`From server ${K.ip}`:'';I.executeScript({code:`console.group("${new Date} 渲染层网络层错误") - console.error(\`${M}\n${N}\`) - console.groupEnd()`})}const p=require('../../../config/config.js'),q=require('../../../weapp/utils/parseErr.js'),r=require('url');_exports={};const{WEBVIEW_NETWORK_ERROR:s,WXML_LOSE_ERROR:t,WXSS_IMPORT_ERROR:u,WXSS_ERROR:v,WEBVIEW_ERROR:w,JSON_ENTRANCE_ERROR:x,PAGE_DEFINE_ERROR:y,PAGEJS_FILE_ERROR:z,COMPONENT_FOR_DEVELOPER:A,ES6_ERROR:B,WXML_ERROR:C,JSON_FILE_ERROR:D,JSON_PARSE_ERROR:E,WXML_RUNTIME_ERROR:F,JSON_CONTENT_ERROR:G}=p,H={'0':'info','1':'warn','2':'error','-1':'debug'};_exports=(I,J,K)=>{J===A?b(I,K):J===C?c(I,K):J===B?a(I,K):J===D?d(I,K):J===E?f(I,K):J===z?h(I,K):J===y?i(I,K):J===F?j(I,K):J===x?e(I,K):J===w?k(I,K):J===v?l(I,K):J===u?m(I,K):J===t?n(I,K):J===G?g(I,K):J===s&&o(I,K)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,o){var n=JSON.parse(decodeURIComponent(o)),r=n.file,c=n.msg;e.executeScript({code:'console.group("'+new Date+' js 文件,编译错误")\n console.error(`'+r+"\n"+c+"`)\n console.groupEnd()"})}function o(e,o){var n=o.target.src,r=_.parse(n),c=r.pathname.replace(/html$/,"wxml"),s=T[o.level],t=(o.message||"").replace(W,"").replace(/\"/g,'\\"');e.executeScript({code:'console.group("'+new Date+" "+c+'")\n console.'+s+'("'+t+'")\n console.groupEnd()'})}function n(e,o){var n=JSON.parse(decodeURIComponent(o.replace(L,""))),r=n.file,c=n.msg.replace(/\`/g,"'");e.executeScript({code:'console.group("'+new Date+' wxml 文件,编译错误")\n console.error(`'+r+"\n"+c+"`)\n console.groupEnd()"})}function r(e,o){var n=o.file,r=o.msg;e.executeScript({code:'console.group("'+new Date+' 读取 app.json 错误")\n console.error(`'+n+"\n"+r+"`)\n console.groupEnd()"})}function c(e,o){var n=o.file,r=o.msg;e.executeScript({code:'console.group("'+new Date+' 读取入口页面错误")\n console.error(`'+n+"\n"+r+"`)\n console.groupEnd()"})}function s(e,o){var n=o.file,r=o.msg;e.executeScript({code:'console.group("'+new Date+' parse json 错误")\n console.error(`'+n+"\n"+r+"`)\n console.groupEnd()"})}function t(e,o){var n=o.file,r=o.msg;e.executeScript({code:'console.group("'+new Date+' json 内容错误")\n console.error(`'+n+"\n"+r+"`)\n console.groupEnd()"})}function l(e,o){var n=o.file,r=o.msg,c=n.replace(/\.js$/,"");e.executeScript({code:'console.group("'+new Date+" 未找到配置在 app.json 中的 "+c+' 页面")\n console.error(`app.json\n'+r+"`)\n console.groupEnd()"})}function p(e,o){e.executeScript({code:'console.group("'+new Date+' 当前页面未配置")\n console.error(`'+o.replace(D,"")+"`)\n console.groupEnd()"})}function u(e,o){var n=f.parseWXMLRuntimeErr(o);if(n){var r=T[o.level],c=r;"warn"===c&&(c="warning"),e.executeScript({code:'console.group("'+new Date+" WXML Runtime "+c+'")\n console.'+r+"(`"+n.file+"`)\n console."+r+"(`"+n.msg+"`)\n console.groupEnd()"})}}function a(e,o){var n=o.message,r=o.level;if(2===r){T[o.level];e.executeScript({code:'console.group("'+new Date+' 渲染层错误")\n console.error(`'+n+"`)\n console.groupEnd()"})}}function i(e,o){e.executeScript({code:'console.group("'+new Date+' wxss 文件,编译错误")\n console.error(`'+o.file+"\n"+o.msg+"`)\n console.groupEnd()"})}function R(e,o){e.executeScript({code:'console.group("'+new Date+' wxss 文件,编译错误")\n console.error(`'+o.file+"\n"+o.msg+"`)\n console.groupEnd()"})}function E(e,o){var n=decodeURIComponent(o.message).replace(O,"");e.executeScript({code:'console.group("'+new Date+' wxml 文件,编译错误")\n console.error(`'+n+"`)\n console.groupEnd()"})}function g(e,o){var n=o.details,r=n.error||"the server responded with a status of "+n.statusCode+" ("+n.statusLine+")",c="Failed to load "+n.type+" "+n.url+" : "+r+" ",s=n.ip?"From server "+n.ip:"";e.executeScript({code:'console.group("'+new Date+' 渲染层网络层错误")\n console.error(`'+c+"\n"+s+"`)\n console.groupEnd()"})}var d=require("../../../config/config.js"),f=require("../../../weapp/utils/parseErr.js"),_=require("url");require("babel-code-frame");_exports={};var S=d.WEBVIEW_NETWORK_ERROR,O=d.WXML_LOSE_ERROR,m=d.WXSS_IMPORT_ERROR,w=d.WXSS_ERROR,x=d.WEBVIEW_ERROR,v=d.JSON_ENTRANCE_ERROR,D=d.PAGE_DEFINE_ERROR,N=d.PAGEJS_FILE_ERROR,W=d.COMPONENT_FOR_DEVELOPER,I=d.ES6_ERROR,L=d.WXML_ERROR,j=d.JSON_FILE_ERROR,M=d.JSON_PARSE_ERROR,C=d.WXML_RUNTIME_ERROR,J=d.JSON_CONTENT_ERROR,T={"-1":"debug",0:"info",1:"warn",2:"error"};_exports=function(d,f,_){f===W?o(d,_):f===L?n(d,_):f===I?e(d,_):f===j?r(d,_):f===M?s(d,_):f===N?l(d,_):f===D?p(d,_):f===C?u(d,_):f===v?c(d,_):f===x?a(d,_):f===w?i(d,_):f===m?R(d,_):f===O?E(d,_):f===J?t(d,_):f===S&&g(d,_)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/appservice/port/port.js b/app/dist/components/appservice/port/port.js index f445d37d..7e8d8450 100644 --- a/app/dist/components/appservice/port/port.js +++ b/app/dist/components/appservice/port/port.js @@ -1 +1 @@ -"use strict";var _exports;function init(){_exports=function(a={}){this.options=Object.assign({},{onMessage:function(){},onDisconnect:function(){}},a),this.msgQuery=[],this.hasInit=!1},_exports.prototype={init:function(a){this.port=a,this.onMessage(),this.onDisconnect(),this.hasInit=!0},onMessage:function(){this.port.onMessage.addListener(a=>{this.options.onMessage(a)})},onDisconnect:function(){this.port.onDisconnect.addListener(()=>{delete this.port,this.msgQuery=[],this.hasInit=!1,this.options.onDisconnect()})},postMessage:function(a,b,c,d){let e={to:a,msg:b,command:c,ext:d},f=this.port;if(!f)return void this.msgQuery.push(e);this.msgQuery.length&&(this.msgQuery.forEach(g=>{this.port.postMessage(g)}),this.msgQuery=[]);f.postMessage(e)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){_exports=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=Object.assign({},{onMessage:function(){},onDisconnect:function(){}},t),this.msgQuery=[],this.hasInit=!1},_exports.prototype={init:function(t){this.port=t,this.onMessage(),this.onDisconnect(),this.hasInit=!0},onMessage:function(){var t=this;this.port.onMessage.addListener(function(s){t.options.onMessage(s)})},onDisconnect:function(){var t=this;this.port.onDisconnect.addListener(function(){delete t.port,t.msgQuery=[],t.hasInit=!1,t.options.onDisconnect()})},postMessage:function(t,s,n,o){var i=this,e={to:t,msg:s,command:n,ext:o},r=this.port;return r?(this.msgQuery.length&&(this.msgQuery.forEach(function(t){i.port.postMessage(t)}),this.msgQuery=[]),void r.postMessage(e)):void this.msgQuery.push(e)}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/confirm/confirm.js b/app/dist/components/confirm/confirm.js index 67066f3e..3f1b15e8 100644 --- a/app/dist/components/confirm/confirm.js +++ b/app/dist/components/confirm/confirm.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../lib/react-dom.js');const b=require('../../stores/windowStores.js'),c=require('../../cssStr/cssStr.js'),d=a.createClass({displayName:'Confirm',getInitialState:function(){return{title:'',content:'',iconType:'info',confirmText:'\u786E\u5B9A',cancelText:'\u53D6\u6D88',showCancel:!0,confirmColor:'#3CC51F',cancelColor:'#000000',hidden:!0}},componentDidMount:function(){b.on('WINDOW_SHOW_CONFIRM',this._onShowConfirm)},componentWillUnmount:function(){b.removeListener('WINDOW_SHOW_CONFIRM',this._onShowConfirm)},_onShowConfirm:function(e){if(e){this._callback=e.callback;let h='string'==typeof e.title?e.title:'\u63D0\u793A',i='string'==typeof e.content?e.content:JSON.stringify(e.content);this.setState({title:h,content:i,showCancel:'alert'!==e.type,hidden:!1})}},callback:function(e){'function'==typeof this._callback&&this._callback(e)},handleCancelClick:function(){this.hide(),this.callback(!1)},handleConfrimClick:function(){this.hide(),this.callback(!0)},hide:function(){this.setState({hidden:!0})},render:function(){let e=this.state.hidden?c.displayNone:{},f=this.state.showCancel?{}:c.displayNone;return a.createElement('div',{className:'common-dialog',style:e},a.createElement('div',{className:'common-dialog-hd'},a.createElement('h3',{className:'common-dialog-hd-title'},this.state.title)),a.createElement('div',{className:'common-dialog-bd'},a.createElement('p',null,a.createElement('i',{className:`common-dialog-icon-${this.state.iconType}`}),' ',this.state.content)),a.createElement('div',{className:'common-dialog-ft'},a.createElement('a',{style:f,href:'javascript:;',onClick:this.handleCancelClick,className:'common-dialog-button-default'},this.state.cancelText),a.createElement('a',{href:'javascript:;',className:'common-dialog-button-primary',onClick:this.handleConfrimClick},this.state.confirmText)))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../../lib/react.js"),e=(require("../../lib/react-dom.js"),require("../../stores/windowStores.js")),n=require("../../cssStr/cssStr.js"),i=t.createClass({displayName:"Confirm",getInitialState:function(){return{lazyLoaded:!1,title:"",content:"",iconType:"info",confirmText:"确定",cancelText:"取消",showCancel:!0,confirmColor:"#3CC51F",cancelColor:"#000000",hidden:!0}},componentDidMount:function(){e.on("WINDOW_SHOW_CONFIRM",this._onShowConfirm)},componentWillUnmount:function(){e.removeListener("WINDOW_SHOW_CONFIRM",this._onShowConfirm)},_onShowConfirm:function(t){if(t){this._callback=t.callback;var e="string"==typeof t.title?t.title:"提示",n="string"==typeof t.content?t.content:JSON.stringify(t.content);this.setState({title:e,content:n,showCancel:"alert"!==t.type,hidden:!1,lazyLoaded:!0})}},callback:function(t){"function"==typeof this._callback&&this._callback(t)},handleCancelClick:function(){this.hide(),this.callback(!1)},handleConfrimClick:function(){this.hide(),this.callback(!0)},hide:function(){this.setState({hidden:!0})},render:function(){if(!this.state.lazyLoaded)return null;var e=this.state.hidden?n.displayNone:{},i=this.state.showCancel?{}:n.displayNone;return t.createElement("div",{className:"common-dialog",style:e},t.createElement("div",{className:"common-dialog-hd"},t.createElement("h3",{className:"common-dialog-hd-title"},this.state.title)),t.createElement("div",{className:"common-dialog-bd"},t.createElement("p",null,t.createElement("i",{className:"common-dialog-icon-"+this.state.iconType})," ",this.state.content)),t.createElement("div",{className:"common-dialog-ft"},t.createElement("a",{style:i,href:"javascript:;",onClick:this.handleCancelClick,className:"common-dialog-button-default"},this.state.cancelText),t.createElement("a",{href:"javascript:;",className:"common-dialog-button-primary",onClick:this.handleConfrimClick},this.state.confirmText)))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/create/create.js b/app/dist/components/create/create.js index 3e81847a..beed6e66 100644 --- a/app/dist/components/create/create.js +++ b/app/dist/components/create/create.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('./createoutline.js'),c=require('./createstep.js'),d=require('../../stores/projectStores.js');require('../../actions/projectActions.js');const e=require('../../stores/windowStores.js'),f=require('../../actions/windowActions.js');require('../../cssStr/cssStr.js');const g=require('../../utils/newReport.js'),h=a.createClass({displayName:'Create',getInitialState:function(){let i=d.getProjectList(),j=e.getUserInfo();return{projectLists:i,userInfo:j,isCreate:!1}},createShow:function(){g('project_open'),this.setState({isCreate:!0})},createBack:function(){this.setState({isCreate:!1})},_addProject:function(i){this.setState({projectLists:[...i]})},componentDidMount:function(){d.on('ADD_PROJECT',this._addProject)},componentWillUnmount:function(){d.removeListener('ADD_PROJECT',this._addProject)},onShowSetting:function(){f.showSetting()},render:function(){return a.createElement('div',{className:'create'},a.createElement(b,{show:!this.state.isCreate,userInfo:this.state.userInfo,projectLists:this.state.projectLists,type:this.props.type,appQuit:this.props.appQuit,createProject:this.createProject,createShow:this.createShow,createTourist:this.createTourist,showSetting:this.onShowSetting,goMain:this.props.goMain}),a.createElement(c,{projectLists:this.state.projectLists,addProject:this.addProject,createBack:this.createBack,show:this.state.isCreate,goMain:this.props.goMain}))}});_exports=h}init(),module.exports=_exports; \ No newline at end of file +"use strict";function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e{return h.projectid===f});this.props.goMain(g)},render:function(){let c=this.props.projectLists.map(d=>{let e=d.app_head_img||'../images/logo.png';return a.createElement('div',{onClick:this.goProject,key:d.projectid,'data-projectid':d.projectid,className:'create-choose-item'},a.createElement('div',{className:'create-choose-icon'},a.createElement('img',{src:e,alt:''})),a.createElement('p',{className:'create-choose-name'},decodeURIComponent(d.appname)))});return a.createElement('div',{className:'create-choose-wrapper'},a.createElement('div',{className:'create-choose'},a.createElement('div',{onClick:this.props.createShow,className:'create-choose-item create-choose-item-new'},a.createElement('div',{className:'create-choose-icon'},a.createElement('i',{className:'create-choose-icon-new'})),a.createElement('p',{className:'create-choose-name'},'\u6DFB\u52A0\u9879\u76EE')),c))}});_exports=b}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=(require("../../cssStr/cssStr.js"),require("../../actions/projectActions.js")),c=require("../../actions/windowActions.js"),r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};c.showConfirm({content:e,callback:t})},o=e.createClass({displayName:"Createlists",goProject:function(e){var t=e.currentTarget,c=t.dataset,r=c.projectid,o=this.props.projectLists.find(function(e){return e.projectid===r});this.props.goMain(o)},delProject:function(e){e.stopPropagation();var c=e.currentTarget,o=c.dataset,a=o.projectid,s=this.props.projectLists.find(function(e){return e.projectid===a});r("确认删除 "+decodeURIComponent(s.appname)+" ?",function(e){e&&t.del(a)})},render:function(){var t=this,c=this.props.projectLists.map(function(c){var r=c.app_head_img||"../images/logo.png";return e.createElement("div",{onClick:t.goProject,key:c.projectid,"data-projectid":c.projectid,className:"create-choose-item"},e.createElement("div",{className:"create-choose-icon"},e.createElement("img",{src:r,alt:""}),e.createElement("div",{className:"create-choose-item-del","data-projectid":c.projectid,onClick:t.delProject},e.createElement("i",{className:"create-choose-item-del-icon"}))),e.createElement("p",{className:"create-choose-name"},decodeURIComponent(c.appname)))});return e.createElement("div",{className:"create-choose-wrapper"},e.createElement("div",{className:"create-choose"},e.createElement("div",{onClick:this.props.createShow,className:"create-choose-item create-choose-item-new"},e.createElement("div",{className:"create-choose-icon"},e.createElement("i",{className:"create-choose-icon-new"})),e.createElement("p",{className:"create-choose-name"},"添加项目")),c))}});_exports=o}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/create/createoutline.js b/app/dist/components/create/createoutline.js index 86c74e85..ec5e3046 100644 --- a/app/dist/components/create/createoutline.js +++ b/app/dist/components/create/createoutline.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('./createempty.js'),c=require('./createlists.js');require('../../actions/projectActions');const d=require('../../actions/windowActions.js'),e=require('../../cssStr/cssStr.js'),f='darwin'===process.platform,{SELECT_URL_TYPE:g,SELECT_UNKNOW_TYPE:h}=require('../../config/config.js'),i=a.createClass({displayName:'Createoutline',getInitialState:function(){let j=this.props.type!==g&&this.props.type!==h;return{isShowProjectList:j}},showProjectList:function(){this.setState({isShowProjectList:!0})},hideProjectList:function(){this.setState({isShowProjectList:!1})},clearUserInfo:function(){d.clearUserInfo()},render:function(){let j=this.props.userInfo,k=this.props.projectLists,l=this.props.appQuit,m=this.props.showSetting,n=this.state.isShowProjectList,o;o=n?a.createElement(c,{createShow:this.props.createShow,createTourist:this.props.createTourist,projectLists:k,createProject:this.props.createProject,goMain:this.props.goMain}):a.createElement(b,{showProjectList:this.showProjectList,createShow:this.props.createShow,createTourist:this.props.createTourist,goMain:this.props.goMain});let p=this.props.show?{}:e.displayNone,q=f?e.visibilityHidden:{};return a.createElement('div',{className:'create-step1',style:p},a.createElement('div',{className:`create-toolbar app-drag ${f?'':'create-toolbar-win'}`},a.createElement('a',{style:{display:n?'':'none'},onClick:this.hideProjectList,href:'javascript:;',className:'create-toolbar-back app-no-drag'},a.createElement('i',{className:'create-toolbar-back-icon'}),a.createElement('span',null,'\u8FD4\u56DE')),a.createElement('a',{href:'javascript:;',onClick:m,className:'create-toolbar-setting app-no-drag'},'\u4EE3\u7406',a.createElement('i',{className:'create-toolbar-setting-icon'})),a.createElement('a',{style:q,onClick:l,href:'javascript:;',className:'create-toolbar-close app-no-drag'},a.createElement('i',{className:'create-toolbar-close-icon app-no-drag'}))),a.createElement('div',{className:'create-body'},a.createElement('div',{className:'create-avatar-wrapper'},a.createElement('img',{className:'create-avatar',src:j.headUrl}),a.createElement('a',{href:'javascript:;',title:'\u5207\u6362\u5E10\u53F7',onClick:this.clearUserInfo,className:'create-avatar-toggle'},a.createElement('i',{className:'create-avatar-toggle-icon'}))),a.createElement('div',{className:'create-name'},'\u8C03\u8BD5\u7C7B\u578B'),o))}});_exports=i}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("./createempty.js"),a=require("./createlists.js"),r=(require("../../actions/projectActions"),require("../../actions/windowActions.js")),s=require("../../cssStr/cssStr.js"),i="darwin"===process.platform,c=require("../../config/config.js"),o=c.SELECT_URL_TYPE,n=c.SELECT_UNKNOW_TYPE,l=e.createClass({displayName:"Createoutline",getInitialState:function(){var e=this.props.type!==o&&this.props.type!==n;return{isShowProjectList:e}},showProjectList:function(){this.setState({isShowProjectList:!0})},hideProjectList:function(){this.setState({isShowProjectList:!1})},clearUserInfo:function(){r.clearUserInfo()},render:function(){var r=this.props.userInfo,c=this.props.projectLists,o=this.props.appQuit,n=this.props.showSetting,l=this.state.isShowProjectList,p=void 0;p=l?e.createElement(a,{createShow:this.props.createShow,createTourist:this.props.createTourist,projectLists:c,createProject:this.props.createProject,goMain:this.props.goMain}):e.createElement(t,{showProjectList:this.showProjectList,createShow:this.props.createShow,createTourist:this.props.createTourist,goMain:this.props.goMain});var h=this.props.show?{}:s.displayNone,m=i?s.visibilityHidden:{};return e.createElement("div",{className:"create-step1",style:h},e.createElement("div",{className:"create-toolbar app-drag "+(i?"":"create-toolbar-win")},e.createElement("a",{style:{display:l?"":"none"},onClick:this.hideProjectList,href:"javascript:;",className:"create-toolbar-back app-no-drag"},e.createElement("i",{className:"create-toolbar-back-icon"}),e.createElement("span",null,"返回")),e.createElement("a",{href:"javascript:;",onClick:n,className:"create-toolbar-setting app-no-drag"},"代理",e.createElement("i",{className:"create-toolbar-setting-icon"})),e.createElement("a",{style:m,onClick:o,href:"javascript:;",className:"create-toolbar-close app-no-drag"},e.createElement("i",{className:"create-toolbar-close-icon app-no-drag"}))),e.createElement("div",{className:"create-body"},e.createElement("div",{className:"create-avatar-wrapper"},e.createElement("img",{className:"create-avatar",src:r.headUrl}),e.createElement("a",{href:"javascript:;",title:"切换帐号",onClick:this.clearUserInfo,className:"create-avatar-toggle"},e.createElement("i",{className:"create-avatar-toggle-icon"}))),e.createElement("div",{className:"create-name"},"调试类型"),p))}});_exports=l}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/create/createstep.js b/app/dist/components/create/createstep.js index 3ca354dc..039d0ff7 100644 --- a/app/dist/components/create/createstep.js +++ b/app/dist/components/create/createstep.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(m){j.showTipsMsg({msg:m,type:'error'})}const b=require('../../lib/react.js');require('../../utils/tools.js');const c=require('../../cssStr/cssStr.js');require('path');const d=require('../../utils/newReport.js'),e=require('../../config/urlConfig.js'),f=require('../../common/request/request.js');require('../../stores/webviewStores.js');const g=require('../../common/log/log.js'),h=require('glob'),i=require('../../config/errcodeConfig.js'),j=require('../../actions/windowActions.js');require('../../stores/projectStores.js');const k=require('../../actions/projectActions.js'),l=b.createClass({displayName:'Createstep',getInitialState:function(){return{projectpath:'',appid:'',appname:'',error:'',saveBtnDisable:!0,showQuickStart:!1,checked:!0,showLoading:!1,isTourist:!1}},chooseDir:function(){let m=document.createElement('input');m.setAttribute('type','file'),m.setAttribute('nwdirectory',!0),m.style.display='none',global.contentDocumentBody.appendChild(m),m.addEventListener('change',n=>{h('*',{cwd:m.value},(o,p)=>{let q=0===p.length;this.setState({projectpath:m.value,showQuickStart:q})}),global.contentDocumentBody.removeChild(m)}),m.addEventListener('cancel',n=>{global.contentDocumentBody.removeChild(m)}),m.click()},editAppid:function(m){let n=m.target,o=n.value;this.setState({appid:o})},editAppname:function(m){let n=m.target,o=n.value;this.setState({appname:o})},tourist:function(){this.setState({isTourist:!this.state.isTourist})},addProject:function(){let m=this.state.projectpath,n=this.state.isTourist,o=n?'touristappid':this.state.appid,p=encodeURIComponent(this.state.appname);if(!o)return void a(`请填写 appid `);if(!p)return void a(`请填写 项目名称 `);if(!m)return void a(`请选择 项目目录 `);let q=`${o}_${p}`,r=this.props.projectLists.find(u=>{return u.projectid===q});if(r)return void this.setState({projectpath:'',appid:'',appname:'',saveBtnDisable:!0,error:`已存在 ${o} ${decodeURIComponent(r.appname)} 项目,请重新输入`});let s=this.state.showQuickStart&&this.state.checked;this.setState({showLoading:!0});let t={projectpath:'',appid:'',appname:'',error:'',saveBtnDisable:!0,showLoading:!1,isTourist:!1};if(n){let u={appid:o,appname:p,projectpath:m,projectid:q,app_head_img:'',is_admin:!1,isTourist:!0,urlCheck:!1};k.add(u,s),d(`project_createsuc`,o),this.setState(t),this.props.goMain(u),f({url:`${e.touristCreateURL}?appid=${o}`,needToken:1},()=>{})}else f({url:`${e.createWeappURL}?appid=${o}`,needToken:1},(u,v,w)=>{if(u)g.error(`createstep.js create ${u.toString()}`),this.setState({showLoading:!1}),a(u.toString());else{this.setState({showLoading:!1}),g.info(`createstep.js create ${w}`);let x=JSON.parse(w),y=x.baseresponse,z=y?parseInt(y.errcode):0;if(z===i.DEV_App_Not_Band)return a('\u5F53\u524D\u5F00\u53D1\u8005\u672A\u7ED1\u5B9A\u6B64 appid \uFF0C\u8BF7\u5230 mp \u540E\u53F0\u64CD\u4F5C\u540E\u91CD\u8BD5'),nw.Shell.openExternal('https://mp.weixin.qq.com/'),void g.error(`createstep.js create project error ${z}`);if(0===z){let A=x.app_head_img?`${x.app_head_img}/0`:'',B=x.app_nickname||p;return r={appid:o,appname:p,projectpath:m,projectid:q,app_head_img:A,app_nickname:B,is_admin:x.is_admin,isTourist:!1,urlCheck:!0},k.add(r,s),d(`project_createsuc`,o),this.setState(t),void this.props.goMain(r)}a(w||'\u7CFB\u7EDF\u9519\u8BEF')}})},changeCheckbox:function(m){let n=m.target.checked;this.setState({checked:n})},render:function(){let m=this.props.show?{}:c.displayNone,n=this.state.showQuickStart?{}:c.visibilityHidden,o=this.props.createBack,p=this.state.isTourist,q=p?'\u65E0 AppID \u90E8\u5206\u529F\u80FD\u53D7\u9650':this.state.appid,r=p?'':'\u586B\u5199\u5C0F\u7A0B\u5E8FAppID ',s=p?'\u8FD4\u56DE\u586B\u5199\u5C0F\u7A0B\u5E8FAppID':'\u65E0 AppID ',t=this.state.showLoading?'create-form-button-primary detail-upload-dialog-button-primary-loading':'create-form-button-primary';return b.createElement('div',{className:'create-step2',style:m},b.createElement('div',{className:'create-toolbar app-drag'},b.createElement('a',{onClick:o,href:'javascript:;',className:'create-toolbar-close app-no-drag'},b.createElement('i',{className:'create-toolbar-back-icon'}),b.createElement('span',null,'\u8FD4\u56DE'))),b.createElement('div',{className:'create-body'},b.createElement('div',{className:'create-name'},'\u6DFB\u52A0\u9879\u76EE'),b.createElement('div',{className:'create-form'},b.createElement('div',{className:'create-form-item'},b.createElement('label',{htmlFor:'',className:'create-form-label'},'AppID'),b.createElement('div',{className:'create-form-input-box'},b.createElement('input',{value:q,onChange:this.editAppid,type:'text',className:'create-form-input',disabled:p}),b.createElement('p',{style:this.state.error?c.displayNone:{},className:'create-form-tips'},r,b.createElement('a',{onClick:this.tourist,href:'javascript:;',className:'create-form-tourist'},s)),b.createElement('p',{style:this.state.error?{}:c.displayNone,className:'create-form-tips-warn'},this.state.error))),b.createElement('div',{className:'create-form-item'},b.createElement('label',{htmlFor:'',className:'create-form-label'},'\u9879\u76EE\u540D\u79F0'),b.createElement('div',{className:'create-form-input-box'},b.createElement('input',{value:this.state.appname,onChange:this.editAppname,type:'text',className:'create-form-input'}))),b.createElement('div',{className:'create-form-item'},b.createElement('label',{htmlFor:'',className:'create-form-label'},'\u9879\u76EE\u76EE\u5F55'),b.createElement('div',{onClick:this.chooseDir,className:'create-form-input-box'},b.createElement('input',{value:this.state.projectpath,disabled:'true',type:'text',className:'create-form-input create-form-input-with-pointer'}),b.createElement('p',{className:'create-form-tips'})),b.createElement('div',{className:'create-form-extra'},b.createElement('a',{href:'javascript:;',onClick:this.chooseDir,className:'create-form-extra-button'},'\u9009\u62E9'))),b.createElement('div',{style:n,className:'create-quick-checkbox'},b.createElement('input',{id:'quick-checkbox',onChange:this.changeCheckbox,checked:this.state.checked,type:'checkbox'}),b.createElement('label',{htmlFor:'quick-checkbox'},'\u5728\u5F53\u524D\u76EE\u5F55\u4E2D\u521B\u5EFA quick start \u9879\u76EE'))),b.createElement('div',{className:'create-form-footer'},b.createElement('a',{href:'javascript:;',className:'create-form-button-default',onClick:o},'\u53D6\u6D88'),b.createElement('a',{onClick:this.addProject,href:'javascript:;',className:t},'\u6DFB\u52A0\u9879\u76EE'))))}});_exports=l}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){n.showTipsMsg({msg:e,type:"error"})}var t=require("glob"),a=(require("path"),require("../../lib/react.js")),r=(require("../../utils/tools.js"),require("../../cssStr/cssStr.js")),i=require("../../utils/newReport.js"),s=require("../../config/urlConfig.js"),o=require("../../common/request/request.js"),c=(require("../../stores/webviewStores.js"),require("../../common/log/log.js")),n=require("../../actions/windowActions.js"),p=(require("../../stores/projectStores.js"),require("../../actions/projectActions.js")),l="touristappid",m=require("../../config/errcodeConfig.js"),d=m.DEV_Invalid_Appid,u=m.DEV_App_Not_Band,h=a.createClass({displayName:"Createstep",getInitialState:function(){return{projectpath:"",appid:"",appname:"",error:"",saveBtnDisable:!0,showQuickStart:!1,checked:!0,showLoading:!1,isTourist:!1}},chooseDir:function(){var e=this,a=document.createElement("input");a.setAttribute("type","file"),a.setAttribute("nwdirectory",!0),a.style.display="none",global.contentDocumentBody.appendChild(a),a.addEventListener("change",function(r){t("*",{cwd:a.value},function(t,r){var i=0===r.length;e.setState({projectpath:a.value,showQuickStart:i})}),global.contentDocumentBody.removeChild(a)}),a.addEventListener("cancel",function(e){global.contentDocumentBody.removeChild(a)}),a.click()},editAppid:function(e){var t=e.target,a=t.value;this.setState({appid:a})},editAppname:function(e){var t=e.target,a=t.value;this.setState({appname:a})},tourist:function(){this.setState({isTourist:!this.state.isTourist})},addProject:function(){var t=this,a=this.state.projectpath,r=this.state.isTourist,n=r?l:this.state.appid,m=encodeURIComponent(this.state.appname);if(!n)return void e("请填写 appid ");if(!m)return void e("请填写 项目名称 ");if(!a)return void e("请选择 项目目录 ");var h=n+"_"+m,f=this.props.projectLists.find(function(e){return e.projectid===h});if(f)return void this.setState({projectpath:"",appid:"",appname:"",saveBtnDisable:!0,error:"已存在 "+n+" "+decodeURIComponent(f.appname)+" 项目,请重新输入"});var v=this.state.showQuickStart&&this.state.checked;this.setState({showLoading:!0});var b={projectpath:"",appid:"",appname:"",error:"",saveBtnDisable:!0,showLoading:!1,isTourist:!1};if(r){var g={appid:n,appname:m,projectpath:a,projectid:h,app_head_img:"",is_admin:!1,isTourist:!0,urlCheck:!1};p.add(g,v),i("project_createsuc",n),this.setState(b),this.props.goMain(g),o({url:s.touristCreateURL+"?appid="+n,needToken:1},function(){})}else o({url:s.createWeappURL+"?appid="+n,needToken:1},function(r,s,o){if(r)c.error("createstep.js create "+r.toString()),t.setState({showLoading:!1}),e(r.toString());else{t.setState({showLoading:!1}),c.info("createstep.js create "+o);var l=JSON.parse(o),g=l.baseresponse,j=g?parseInt(g.errcode):0;if(j===u)return e("当前开发者未绑定此 AppID ,请到小程序管理后台操作后重试"),nw.Shell.openExternal("https://mp.weixin.qq.com/"),void c.error("createstep.js create project error "+j);if(j===d)return e("不存在此 AppID 请检查后重新输入或使用无 AppID 模式"),void c.error("createstep.js create project error "+j);if(0===j){var k=l.app_head_img?l.app_head_img+"/0":"",E=m;return l.app_nickname&&(E=encodeURIComponent(l.app_nickname)),f={is_admin:l.is_admin,isTourist:!1,urlCheck:!0,platform:!!l.is_platform,platform_nickname:l.platform_nickname||"",appid:n,appname:m,projectpath:a,projectid:h,app_head_img:k,app_nickname:E},p.add(f,v),i("project_createsuc",n),t.setState(b),void t.props.goMain(f)}var N=o||"系统错误";e(N)}})},changeCheckbox:function(e){var t=e.target.checked;this.setState({checked:t})},render:function(){var e=this.props.show?{}:r.displayNone,t=this.state.showQuickStart?{}:r.visibilityHidden,i=this.props.createBack,s=this.state.isTourist,o=s?"无 AppID 部分功能受限":this.state.appid,c=s?"":"填写小程序AppID ",n=s?"返回填写小程序AppID":"无 AppID ",p=this.state.showLoading?"create-form-button-primary detail-upload-dialog-button-primary-loading":"create-form-button-primary";return a.createElement("div",{className:"create-step2",style:e},a.createElement("div",{className:"create-toolbar app-drag"},a.createElement("a",{onClick:i,href:"javascript:;",className:"create-toolbar-close app-no-drag"},a.createElement("i",{className:"create-toolbar-back-icon"}),a.createElement("span",null,"返回"))),a.createElement("div",{className:"create-body"},a.createElement("div",{className:"create-name"},"添加项目"),a.createElement("div",{className:"create-form"},a.createElement("div",{className:"create-form-item"},a.createElement("label",{htmlFor:"",className:"create-form-label"},"AppID"),a.createElement("div",{className:"create-form-input-box"},a.createElement("input",{value:o,onChange:this.editAppid,type:"text",className:"create-form-input",disabled:s}),a.createElement("p",{style:this.state.error?r.displayNone:{},className:"create-form-tips"},c,a.createElement("a",{onClick:this.tourist,href:"javascript:;",className:"create-form-tourist"},n)),a.createElement("p",{style:this.state.error?{}:r.displayNone,className:"create-form-tips-warn"},this.state.error))),a.createElement("div",{className:"create-form-item"},a.createElement("label",{htmlFor:"",className:"create-form-label"},"项目名称"),a.createElement("div",{className:"create-form-input-box"},a.createElement("input",{value:this.state.appname,onChange:this.editAppname,type:"text",className:"create-form-input"}))),a.createElement("div",{className:"create-form-item"},a.createElement("label",{htmlFor:"",className:"create-form-label"},"项目目录"),a.createElement("div",{onClick:this.chooseDir,className:"create-form-input-box"},a.createElement("input",{value:this.state.projectpath,disabled:"true",type:"text",className:"create-form-input create-form-input-with-pointer"}),a.createElement("p",{className:"create-form-tips"})),a.createElement("div",{className:"create-form-extra"},a.createElement("a",{href:"javascript:;",onClick:this.chooseDir,className:"create-form-extra-button"},"选择"))),a.createElement("div",{style:t,className:"create-quick-checkbox"},a.createElement("input",{id:"quick-checkbox",onChange:this.changeCheckbox,checked:this.state.checked,type:"checkbox"}),a.createElement("label",{htmlFor:"quick-checkbox"},"在当前目录中创建 quick start 项目"))),a.createElement("div",{className:"create-form-footer"},a.createElement("a",{href:"javascript:;",className:"create-form-button-default",onClick:i},"取消"),a.createElement("a",{onClick:this.addProject,href:"javascript:;",className:p},"添加项目"))))}});_exports=h}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/custompre/custompreview.js b/app/dist/components/custompre/custompreview.js index f0bf1071..6b3d1c2d 100644 --- a/app/dist/components/custompre/custompreview.js +++ b/app/dist/components/custompre/custompreview.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js');require('../../actions/projectActions.js'),require('../../stores/projectStores.js');const c=require('../../weapp/utils/projectManager.js'),d=require('../../stores/windowStores.js'),e=a.createClass({displayName:'CustomPreview',getInitialState:function(){return{err:'',page:'',query:'',show:!1,type:'',enable:!1}},checkPage:function(f){let g=this.state.project;return c.isProjectPage(g,this.state.page)?(this.setState({err:``}),!0):(this.setState({err:`页面不存在,请检查后重试`}),!1)},changeQuery:function(f){let g=f.target.value;this.setState({query:g})},changePage:function(f){let g=f.target.value;this.setState({page:g})},upload:function(f){this.checkPage()&&(this.state.callback({page:this.state.page,query:this.state.query,enable:this.state.enable}),this.close())},_showCustomPreview:function(f){let{project:g}=f,{uploadPath:h,initPath:i}=g,j='upload'===f.type?h:i,{page:k,query:l,enable:m}=j;this.setState({show:!0,page:k||'',query:l||'',project:g,callback:f.callback,type:f.type,enable:m})},changeEnable:function(){this.setState({enable:!this.state.enable})},close:function(){this.setState({err:'',page:'',query:'',show:!1,type:'',enable:!1})},componentDidMount:function(){d.on('SHOW_CUSTOM_PREVIEW',this._showCustomPreview)},componentWillUnmount:function(){d.removeListener('SHOW_CUSTOM_PREVIEW',this._showCustomPreview)},render:function(){let f=this.state.show?b.displayBlock:b.displayNone,g='upload'===this.state.type,h=g?'\u9884\u89C8':'\u786E\u5B9A';return a.createElement('div',{className:'setting-show',style:f},a.createElement('div',{className:'setting-hd'},a.createElement('h3',{className:'setting-hd-title'},'\u81EA\u5B9A\u4E49\u9884\u89C8')),a.createElement('div',{className:'setting-bd'},a.createElement('div',{className:'custom-preview'},a.createElement('div',{className:'custom-preview-form'},a.createElement('div',{className:'custom-preview-form-item'},a.createElement('div',{className:'custom-preview-form-label'},'\u8BBE\u7F6E\u542F\u52A8\u9875\u9762 ',a.createElement('span',null,'*\u5FC5\u586B')),a.createElement('div',{className:'custom-preview-form-value'},a.createElement('input',{type:'text',onChange:this.changePage,value:this.state.page,placeholder:'\u9875\u9762\u5730\u5740'})),a.createElement('div',{className:'custom-preview-form-tips'},a.createElement('p',null,this.state.err))),a.createElement('div',{className:'custom-preview-form-item'},a.createElement('div',{className:'custom-preview-form-label'},'\u8BBE\u7F6E\u9875\u9762\u81EA\u5B9A\u4E49\u53C2\u6570'),a.createElement('div',{className:'custom-preview-form-value'},a.createElement('input',{value:this.state.query,onChange:this.changeQuery,type:'text',placeholder:'\u53C2\u6570'}))),a.createElement('div',{style:g?b.displayNone:{},className:'custom-preview-form-item'},a.createElement('div',{className:'custom-preview-form-value'},a.createElement('label',{onClick:this.changeEnable,htmlFor:'customPreviewCheckbox',className:'custom-preview-form-checkbox'},a.createElement('input',{checked:this.state.enable,type:'checkbox'}),a.createElement('i',null),'\u4F7F\u7528\u4EE5\u4E0A\u6761\u4EF6\u7F16\u8BD1')))))),a.createElement('div',{className:'setting-ft'},a.createElement('a',{onClick:this.close,href:'javascript:;',className:'setting-button-default'},'\u53D6\u6D88'),a.createElement('a',{onClick:this.upload,href:'javascript:;',className:'detail-meta-upload'},h)))}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),a=(require("../../actions/projectActions.js"),require("../../stores/projectStores.js"),require("../../weapp/utils/projectManager.js")),s=require("../../stores/windowStores.js"),r=require("../../actions/windowActions.js"),i=require("../../config/sceneConfig.js"),c=i.getSceneWording,n=i.sceneData,o="custompreview",l=e.createClass({displayName:"CustomPreview",getInitialState:function(){return{lazyLoaded:!1,err:"",referDataErr:"",page:"",query:"",show:!1,type:"",enable:!1,showSceneList:!1,showLaunch:!1,beta:global.appConfig.isBeta}},checkPage:function(e){var t=this.state.project;return!this.state.page||(a.isProjectPage(t,this.state.page)?(this.setState({err:""}),!0):(this.setState({err:"页面不存在,请检查后重试"}),!1))},checkReferData:function(){if(!this.state.enable||!this.state.showLaunch)return!0;try{JSON.parse(this.state.referData||"{}")}catch(e){return this.setState({showLaunch:!0,referDataErr:"解析错误,"+e}),!1}return!0},changeQuery:function(e){var t=e.target.value;this.setState({query:t})},changePage:function(e){var t=e.target.value;this.setState({page:t})},upload:function(e){if(this.checkPage()&&this.checkReferData()){var t=this.state;this.state.callback({page:t.page||"",query:t.query,scene:t.scene,enable:t.enable,referData:t.showLaunch?t.referData:"",appid:t.showLaunch?t.appid:""}),this.close()}},_showCustomPreview:function(e){var t=e.project,a=t.uploadPath,s=t.initPath,r="upload"===e.type?a:s,i=r.page,n=r.query,o=r.enable,l=r.scene,m=r.appid,p=r.referData;this.setState({lazyLoaded:!0,show:!0,page:i||"",query:n||"",project:t,scene:l||"",sceneWording:c(l),referData:p||"",appid:m||"",callback:e.callback,type:e.type,showLaunch:"mini_program"===l,enable:o})},changeEnable:function(){this.setState({enable:!this.state.enable})},changeAppId:function(e){var t=e.target.value;this.setState({appid:t})},changeReferData:function(e){var t=e.target.value,a="";try{JSON.parse(t)}catch(e){a="解析错误,"+e}this.setState({referData:t,referDataErr:a})},onSceneSelect:function(e){e.stopPropagation();var t=e.currentTarget.dataset,a=t.scene,s=t.wording,i={showSceneList:!1,scene:a,sceneWording:s};"mini_program"===a?i.showLaunch=!0:i.showLaunch=!1,r.clickToolsbar(o),this.setState(i)},onShowSceneList:function(e){e.stopPropagation(),this.setState({showSceneList:!0})},close:function(){this.setState({err:"",page:"",query:"",show:!1,type:"",enable:!1})},_clickToolsbar:function(e){o!=e&&this.setState({showSceneList:!1})},componentDidMount:function(){s.on("SHOW_CUSTOM_PREVIEW",this._showCustomPreview),s.on("BODY_CLICK",this._clickToolsbar),s.on("CLICK_TOOLSBAR",this._clickToolsbar)},componentWillUnmount:function(){s.removeListener("SHOW_CUSTOM_PREVIEW",this._showCustomPreview),s.removeListener("BODY_CLICK",this._clickToolsbar),s.removeListener("CLICK_TOOLSBAR",this._clickToolsbar)},render:function(){if(!this.state.lazyLoaded)return null;var a=this.state.show?t.displayBlock:t.displayNone,s="upload"===this.state.type,r=s?"预览":"确定",i=s?"预览":"编译",c=this.state.showLaunch&&!s?t.displayBlock:t.displayNone,o=[];for(var l in n)o.push(e.createElement("div",{className:"custom-preview-dropdown-item","data-scene":l,"data-wording":n[l],onClick:this.onSceneSelect},l+": "+n[l]));return e.createElement("div",{className:"setting-show",style:a},e.createElement("div",{className:"setting-hd"},e.createElement("h3",{className:"setting-hd-title"},"自定义",i)),e.createElement("div",{className:"setting-bd"},e.createElement("div",{className:"custom-preview"},e.createElement("div",{className:"custom-preview-form"},e.createElement("div",{className:"custom-preview-form-item"},e.createElement("div",{className:"custom-preview-form-label"},"设置启动页面"),e.createElement("div",{className:"custom-preview-form-value"},e.createElement("input",{type:"text",onChange:this.changePage,value:this.state.page,placeholder:"页面地址(默认为首页)"})),e.createElement("div",{className:"custom-preview-form-tips"},e.createElement("p",null,this.state.err))),e.createElement("div",{className:"custom-preview-form-item"},e.createElement("div",{className:"custom-preview-form-label"},"设置页面自定义参数"),e.createElement("div",{className:"custom-preview-form-value"},e.createElement("input",{value:this.state.query,onChange:this.changeQuery,type:"text",placeholder:"参数"}))),e.createElement("div",{className:"custom-preview-form-item",style:s||this.state.beta?t.displayNone:{}},e.createElement("div",{className:"custom-preview-form-label"},"设置应用进入的场景"),e.createElement("div",{className:"custom-preview-form-value"},e.createElement("div",{className:"custom-preview-form-input-wrapper",onClick:this.onShowSceneList},e.createElement("input",{value:this.state.scene+": "+this.state.sceneWording,disabled:!0,type:"text"}),e.createElement("i",{className:this.state.showSceneList?"custom-preview-dropdown-icon-up":"custom-preview-dropdown-icon-down"})),e.createElement("div",{className:"custom-preview-dropdown",style:this.state.showSceneList?{}:t.displayNone},o))),e.createElement("div",{style:c},e.createElement("div",{className:"custom-preview-form-item"},e.createElement("div",{className:"custom-preview-form-label"},"设置启动的 appid ",e.createElement("span",null,"*必填")),e.createElement("div",{className:"custom-preview-form-value"},e.createElement("input",{type:"text",onChange:this.changeAppId,value:this.state.appid,placeholder:"启动的 appid"}))),e.createElement("div",{className:"custom-preview-form-item",style:s?t.displayNone:{}},e.createElement("div",{className:"custom-preview-form-label"},"设置启动的数据 (JSON)"),e.createElement("div",{className:"custom-preview-form-value"},e.createElement("textarea",{value:this.state.referData,onChange:this.changeReferData,type:"text",placeholder:""})),e.createElement("div",{className:"custom-preview-form-tips"},e.createElement("p",null,this.state.referDataErr)))),e.createElement("div",{style:s?t.displayNone:{},className:"custom-preview-form-item"},e.createElement("div",{className:"custom-preview-form-value"},e.createElement("label",{onClick:this.changeEnable,htmlFor:"customPreviewCheckbox",className:"custom-preview-form-checkbox"},e.createElement("input",{checked:this.state.enable,type:"checkbox"}),e.createElement("i",null),"保存为默认编译模式")))))),e.createElement("div",{className:"setting-ft"},e.createElement("a",{onClick:this.close,href:"javascript:;",className:"setting-button-default"},"取消"),e.createElement("a",{onClick:this.upload,href:"javascript:;",className:"detail-meta-upload"},r)))}});_exports=l}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/debugger/debugger.js b/app/dist/components/debugger/debugger.js index 424f3358..bd89093a 100644 --- a/app/dist/components/debugger/debugger.js +++ b/app/dist/components/debugger/debugger.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../devtools/devtools.js'),c=require('../forbidden/forbidden.js'),d=require('../appservice/appservice.js');require('../../cssStr/cssStr.js');const e=require('../../stores/webviewStores.js'),f=a.createClass({displayName:'Debugger',getInitialState:function(){return{show:this.props.project?'appservice':'devtools'}},changeShow:function(){this.setState({show:'devtools'})},_limit:function(){this.setState({show:'forbidden'})},componentDidMount:function(){e.on('NOT_LIMITS',this._limit)},componentWillMount:function(){e.removeListener('NOT_LIMITS',this._limit)},render:function(){this.state.show;let g=this.props.project,h='';return g&&(h=a.createElement(d,{show:this.state.show,project:this.props.project,propshow:this.props.propshow})),a.createElement('div',{className:'debugger',style:{}},a.createElement('div',{className:'debugger-tab'},a.createElement('div',{className:'debugger-tab-bd'},a.createElement(b,{show:this.state.show}),h,a.createElement(c,{changeShow:this.changeShow,show:this.state.show}))))}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../devtools/devtools.js"),s=require("../forbidden/forbidden.js"),r=require("../appservice/appservice.js"),o=(require("../../cssStr/cssStr.js"),require("../../stores/webviewStores.js")),i=e.createClass({displayName:"Debugger",getInitialState:function(){return{show:this.props.project?"appservice":"devtools"}},changeShow:function(){this.setState({show:"devtools"})},_limit:function(){this.setState({show:"forbidden"})},componentDidMount:function(){o.on("NOT_LIMITS",this._limit)},componentWillUnmount:function(){o.removeListener("NOT_LIMITS",this._limit)},render:function(){var o=(this.state.show,this.props.project),i="";o&&(i=e.createElement(r,{show:this.state.show,project:this.props.project,propshow:this.props.propshow}));var n={};return e.createElement("div",{className:"debugger",style:n},e.createElement("div",{className:"debugger-tab"},e.createElement("div",{className:"debugger-tab-bd"},e.createElement(t,{show:this.state.show}),i,e.createElement(s,{changeShow:this.changeShow,show:this.state.show}))))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/detail/detail.js b/app/dist/components/detail/detail.js index 2d74e381..4f9420ca 100644 --- a/app/dist/components/detail/detail.js +++ b/app/dist/components/detail/detail.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(s){let u=s?new Date(s):new Date;return`${u.toLocaleDateString()} ${u.toLocaleTimeString()}`}const c=require('../../lib/react.js'),d=require('../../cssStr/cssStr.js');require('../../utils/tools.js');const f=require('../../weapp/commit/upload.js'),g=require('../../actions/projectActions.js'),h=require('../../common/log/log.js'),i=require('../../utils/newReport.js');require('../../stores/webviewStores.js');const j=require('../../stores/windowStores.js'),k=require('../../config/errcodeConfig.js'),l=require('../../actions/windowActions.js'),m=require('../../stores/projectStores.js');require('../../weapp/utils/projectManager.js');const n=require('./uploadInfo.js'),o=require('./detailConfig.js'),p=function(s){l.showTipsMsg({msg:s,type:'error'})},q=function(s,u=()=>{}){l.showConfirm({content:s,callback:u})},r=c.createClass({displayName:'Detail',getInitialState:function(){let s=this.props.project,u=s.isTourist,v=localStorage[`last-up-test-time-${s.hash}`],w=localStorage[`last-up-load-time-${s.hash}`],x=!1;return 604800000>Date.now()-s.newFeature.time&&(x=s.newFeature.show),s.uploadPath.query||'',s.uploadPath.page||'',{lastUploadTime:u?'\u9879\u76EE\u672A\u5173\u8054AppID':w?w:'\u672A\u4E0A\u4F20',lastTestTime:u?'\u9879\u76EE\u672A\u5173\u8054AppID':v?v:'\u672A\u63D0\u4EA4',testBtnClass:'detail-meta-upload',testBtnTitle:'\u9884\u89C8',tabIndex:0,qrcode_img:'',isTourist:u,es6:s.es6,minified:s.minified,watcher:s.watcher,postcss:s.postcss,urlCheck:s.urlCheck,newFeatureCheck:s.newFeature.check,showNewFeatureCheck:x,showCustomButton:!1}},componentDidMount:function(){j.on('TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS',this._onToggleNewFeatureCheck)},componentWillUnmount:function(){j.removeListener('TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS',this._onToggleNewFeatureCheck)},_onToggleNewFeatureCheck:function(s){this.setState({showNewFeatureCheck:s}),m.setProjectNewFeature(this.props.project.hash,{check:this.state.newFeatureCheck,show:s,time:Date.now()}),s&&this.props.optProject('detail')},closeImg:function(){this.setState({qrcode_img:''})},upload:function(){let s=this.props.project,u=s.isTourist;u||this.refs.uploadWnd.startUpload()},openProject:function(s){nw.Shell.openItem(s)},delProject:function(){q(`确认删除 ${decodeURIComponent(this.props.project.appname)} ?`,s=>{if(s){let u=this.props.project.appid;g.del(this.props.project.projectid),delete localStorage[`last-up-test-time-${this.props.project.hash}`],delete localStorage[`last-up-load-time-${this.props.project.hash}`],i(`project_delete`,u)}})},uploadForTest:function(s,u){let v=this.props.project,w=v.isTourist;if(!w&&!this.lock){let D,E;u&&u.page&&(D=u.page,E=u.query,m.setProjectUploadPath(this.props.project.hash,{enable:!0,query:E,page:D})),this.setState({testBtnClass:'detail-upload-dialog-button-primary detail-upload-dialog-button-primary-loading',testBtnTitle:'\u4E0A\u4F20\u4E2D',page:D,query:E,showCustomLayer:!1}),this.lock=!0,f.uploadForTest(this.props.project,{isNewFeature:this.state.showNewFeatureCheck&&this.state.newFeatureCheck,page:D,query:E},(F,G,H,I)=>{this.getResp({error:F,resp:G,res:H,options:I,type:'test'})})}},customPreview:function(){this.setState({showCustomButton:!this.state.showCustomButton})},showCustomPreview:function(){this.setState({showCustomButton:!1}),l.showCustomPreview({project:this.props.project,type:'upload',callback:s=>{this.uploadForTest('',{page:s.page,query:s.query})}})},getResp:function(s){this.lock=!1;let{error:u,resp:v,res:w,type:x,options:y}=s,z={testBtnClass:'detail-meta-upload',testBtnTitle:'\u9884\u89C8'};if(!u){try{w=JSON.parse(w)}catch(E){return p(`系统错误,上传回包:${w}`),void this.setState(z)}let A=w.baseresponse,B=A?parseInt(A.errcode):0,C=parseInt(w.wxpkg_size/1024);if(B===k.DEV_App_Not_Band)return q('\u5F53\u524D\u5F00\u53D1\u8005\u672A\u7ED1\u5B9A\u6B64 appid \uFF0C\u8BF7\u5230 mp \u540E\u53F0\u64CD\u4F5C\u540E\u91CD\u8BD5'),nw.Shell.openExternal('https://mp.weixin.qq.com/'),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_Need_Admin)return q('\u9700\u8981\u7BA1\u7406\u5458\u624D\u80FD\u8FDB\u884C\u4E0A\u4F20\u64CD\u4F5C\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5'),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_Need_SCAN_CODE)return q('\u8BF7\u91CD\u65B0\u626B\u7801\u786E\u8BA4'),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_EMPTY_SOURCE)return q('\u4EE3\u7801\u5305\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5'),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_WXPKG_MAX_LIMIT)return q(`编译包大小为 ${C} kb,超过限制 ${C-y.MAX_APP_LENGTH} kb,请删除文件后重试`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_INVALID_WXPKG)return q(`代码包错误,错误代码 ${B}`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_WXML_FAIL)return q(`wxml 编译错误,错误信息:${w.compile_err_msg}`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_WXSS_FAIL)return q(`wxss 编译错误,错误信息:${w.compile_err_msg}`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_INVALID_JSON_FILE)return q(`json 编译错误,错误信息:${w.compile_err_msg}`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_COMPILE_LACK_OF_FILE)return q(`缺少文件,错误信息:${w.compile_err_msg}`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);if(B===k.DEV_Need_Update)return q(`工具版本过旧,请升级工具后重试`),h.error(`details.js uploadForTest error ${B}`),void this.setState(z);let D=a();if(C&&(D=`${D}, 编译包大小 ${C} kb`),0===B){z.qrcode_img=w.qrcode_img;let E=+new Date+1500000,F=new Date(E);z.qrcode_time=F,'test'===x?(z.lastTestTime=D,localStorage.setItem(`last-up-test-time-${this.props.project.hash}`,D)):(z.lastUploadTime=D,localStorage.setItem(`last-up-load-time-${this.props.project.hash}`,D)),z.showDailog=!1,this.setState(z)}else q(`系统错误,错误代码:${B},错误信息:${A.errmsg}`,()=>{this.setState(z)})}else{let A='string'==typeof u?u:JSON.stringify(u);q(A||`提交预览出错,请去调试窗口编译代码,查看详细错误信息`,()=>{this.setState(z)})}},onEs6Change:function(){let s=!this.state.es6;m.setProjectEs6(this.props.project.hash,s),this.setState({es6:s})},onPostCss:function(){let s=!this.state.postcss;m.setProjectPostCss(this.props.project.hash,s),this.setState({postcss:s})},onMinified:function(){let s=!this.state.minified;m.setProjectMinified(this.props.project.hash,s),this.setState({minified:s})},onAutoWatcher:function(){let s=!this.state.watcher;m.setProjectWatcher(this.props.project.hash,s),this.setState({watcher:s})},onUrlCheck:function(){let s=!this.state.urlCheck;m.setProjectUrlCheck(this.props.project.hash,s),this.setState({urlCheck:s})},onNewFeatureCheck:function(){let s=!this.state.newFeatureCheck;m.setProjectNewFeature(this.props.project.hash,{check:s,show:this.state.showNewFeatureCheck,time:Date.now()}),this.setState({newFeatureCheck:s})},changeTab:function(s){this.setState({tabIndex:s})},render:function(){const{show:s,project:u}=this.props;let v=this.state.isTourist,w='detail'===s?{}:d.displayNone,x=u.app_head_img||'../images/logo.png',y=u?decodeURIComponent(u.appname):'',z=u?u.appid:'',A=u?u.projectpath:'',B='',C=d.displayNone,D='';if(this.state.qrcode_img){B=c.createElement('img',{src:'data:image/png;base64,'+this.state.qrcode_img,style:{width:'200px',heigth:'200px',marginBottom:'20px'}}),C={};let M=j.getUserInfo();D=`请使用 ${M.nickName} 的微信扫描二维码,预览当前开发版本,二维码将在 ${this.state.qrcode_time.toTimeString().replace(/\s.*/g,'')} 时失效。`}let E=this.state.tabIndex,F=this.state.es6,G=this.state.minified,H=this.state.watcher,I=this.state.postcss,J=this.state.urlCheck,K=this.state.newFeatureCheck,L=this.state.showNewFeatureCheck;return c.createElement('div',{className:'detail',style:w},c.createElement('div',{className:'detail-logo-wrapper'},c.createElement('img',{src:x,className:'detail-logo'}),c.createElement('p',{className:'detail-name'},y),c.createElement('p',{className:'detail-appid'},'App ID: ',z)),c.createElement('div',{className:'detail-meta-tab'},c.createElement('div',{className:'detail-meta-tab-hd',style:this.props.project.isTourist?d.displayNone:{}},c.createElement('a',{href:'javascript:;',onClick:()=>{this.changeTab(0)},className:0===E?'detail-meta-tab-item-active':''},'\u57FA\u7840\u4FE1\u606F'),c.createElement('a',{href:'javascript:;',onClick:()=>{this.changeTab(1)},className:1===E?'detail-meta-tab-item-active':''},'\u914D\u7F6E\u4FE1\u606F')),c.createElement('div',{style:0===E?{}:d.displayNone},c.createElement('div',{className:'detail-meta-tab-bd'},c.createElement('div',{className:'detail-meta-wrapper'},c.createElement('div',{className:'detail-meta'},c.createElement('p',{className:'detail-meta-label'},'\u672C\u5730\u5F00\u53D1\u76EE\u5F55'),c.createElement('p',{className:'detail-meta-value'},A),c.createElement('a',{onClick:()=>{this.openProject(A)},href:'javascript:;',className:'detail-meta-upload-default'},'\u6253\u5F00')),c.createElement('div',{className:`detail-meta ${v?'detail-meta-disabled':''}`},c.createElement('p',{className:'detail-meta-label'},'\u6700\u65B0\u66F4\u65B0\u65F6\u95F4'),c.createElement('p',{className:'detail-meta-value'},this.state.lastTestTime),c.createElement('div',{className:'detail-meta-btn-group'},c.createElement('a',{onClick:this.uploadForTest,href:'javascript:;',className:`${this.state.testBtnClass} ${v?'detail-meta-upload-disabled':''}`},this.state.testBtnTitle),c.createElement('a',{onClick:this.customPreview,href:'javascript:;',className:'detail-meta-btn-cert'},c.createElement('i',{className:'icon-arrow-down'})),c.createElement('div',{onClick:this.showCustomPreview,style:this.state.showCustomButton?{}:d.displayNone,className:'detail-meta-btn-dropdown'},c.createElement('a',{href:'javascript:;',className:'detail-meta-btn-dropdown-item'},'\u81EA\u5B9A\u4E49\u9884\u89C8')))),c.createElement('div',{className:`detail-meta ${v?'detail-meta-disabled':''}`},c.createElement('p',{className:'detail-meta-label'},'\u6700\u8FD1\u4E0A\u4F20\u65F6\u95F4'),c.createElement('p',{className:'detail-meta-value'},this.state.lastUploadTime),c.createElement('a',{onClick:this.upload,href:'javascript:;',className:`detail-meta-upload-default ${v?'detail-meta-upload-default-disabled':''}`},'\u4E0A\u4F20')),c.createElement('div',{className:'detail-meta detail-meta-column'},c.createElement('label',{htmlFor:'es6toes5',onClick:this.onEs6Change,className:'detail-meta-es6toes5'},c.createElement('input',{type:'checkbox',checked:F}),c.createElement('i',null),'\u5F00\u542F ES6 \u8F6C ES5'),c.createElement('label',{htmlFor:'postcss',onClick:this.onPostCss,className:'detail-meta-es6toes5'},c.createElement('input',{type:'checkbox',checked:I}),c.createElement('i',null),'\u5F00\u542F \u4E0A\u4F20\u4EE3\u7801\u65F6\u6837\u5F0F\u6587\u4EF6\u81EA\u52A8\u8865\u5168'),c.createElement('label',{htmlFor:'minified',onClick:this.onMinified,className:'detail-meta-es6toes5'},c.createElement('input',{type:'checkbox',checked:G}),c.createElement('i',null),'\u5F00\u542F \u4EE3\u7801\u538B\u7F29\u4E0A\u4F20'),c.createElement('label',{htmlFor:'watcher',onClick:this.onAutoWatcher,className:'detail-meta-es6toes5'},c.createElement('input',{type:'checkbox',checked:H}),c.createElement('i',null),'\u76D1\u542C\u6587\u4EF6\u53D8\u5316\uFF0C\u81EA\u52A8\u5237\u65B0\u5F00\u53D1\u8005\u5DE5\u5177'),c.createElement('label',{htmlFor:'urlCheck',onClick:this.onUrlCheck,className:'detail-meta-es6toes5'},c.createElement('input',{type:'checkbox',checked:!J}),c.createElement('i',null),'\u5F00\u53D1\u73AF\u5883\u4E0D\u6821\u9A8C\u8BF7\u6C42\u57DF\u540D\u4EE5\u53CA TLS \u7248\u672C'),c.createElement('label',{htmlFor:'urlCheck',onClick:this.onNewFeatureCheck,className:'detail-meta-es6toes5',style:L?{}:d.displayNone},c.createElement('input',{type:'checkbox',checked:K}),c.createElement('i',null),'\u9884\u89C8\u65F6\u5C1D\u8BD5\u65B0\u529F\u80FD')))),c.createElement('div',{className:'detail-opr-wrapper'},c.createElement('a',{onClick:this.delProject,href:'javascript:;',className:'button'},'\u5220\u9664\u9879\u76EE'))),c.createElement(o,{show:1===E,project:this.props.project})),c.createElement(n,{ref:'uploadWnd',getResp:this.getResp,isTourist:v,project:this.props.project}),c.createElement('div',{className:'setting-show',style:C},c.createElement('div',{className:'setting-hd'},c.createElement('h3',{className:'setting-hd-title'},'\u9884\u89C8')),c.createElement('div',{className:'setting-bd'},B,c.createElement('p',null,D)),c.createElement('div',{className:'setting-ft'},c.createElement('a',{href:'javascript:;',onClick:this.closeImg,className:'setting-button-default'},'\u786E\u5B9A'))))}});_exports=r}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){var t=e?new Date(e):new Date;return t.toLocaleDateString()+" "+t.toLocaleTimeString()}var t=require("../../lib/react.js"),a=require("../../cssStr/cssStr.js"),s=(require("../../utils/tools.js"),require("../../weapp/commit/upload.js")),i=require("../../actions/projectActions.js"),o=require("../../common/log/log.js"),r=(require("../../utils/newReport.js"),require("../../stores/webviewStores.js"),require("../../stores/windowStores.js")),l=require("../../config/errcodeConfig.js"),c=require("../../actions/windowActions.js"),n=require("../../stores/projectStores.js"),p=(require("../../weapp/utils/projectManager.js"),require("./uploadInfo.js")),m=require("./detailConfig.js"),h=6048e5,d=function(e){c.showTipsMsg({msg:e,type:"error"})},u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};c.showConfirm({content:e,callback:t})},E=t.createClass({displayName:"Detail",getInitialState:function(){var e=this.props.project,t=e.isTourist,a=localStorage["last-up-test-time-"+e.hash],s=localStorage["last-up-load-time-"+e.hash],i=!1;Date.now()-e.newFeature.time{})},_onConfigRefreshed:function(){let e=c.getProjectConfig(this.props.project),f=e&&e.Network||{};this.setState({requestDomains:f.RequestDomain||[],socketDomains:f.WsRequestDomain||[],uploadDomains:f.UploadDomain||[],downloadDomains:f.DownloadDomain||[],loading:!1})},shouldComponentUpdate:function(e,f){return e.project!==this.props.project||e.show!==this.props.show||f!==this.state},render:function(){let e='detail-meta-upload '+(this.state.loading?'detail-upload-dialog-button-primary-loading':'');return a.createElement('div',{style:this.props.show?{}:b.displayNone},a.createElement('div',{className:'detail-meta-tab-bd'},a.createElement('div',{className:'detail-meta-wrapper'},a.createElement('div',{className:'detail-meta'},a.createElement('p',{className:'detail-meta-label detail-meta-label-fixed-width'},'request\u5408\u6CD5\u57DF\u540D'),a.createElement('div',{className:'detail-meta-value'},this.state.requestDomains.map(function(f){return a.createElement('p',null,f)}))),a.createElement('div',{className:'detail-meta'},a.createElement('p',{className:'detail-meta-label detail-meta-label-fixed-width'},'socket\u5408\u6CD5\u57DF\u540D'),a.createElement('div',{className:'detail-meta-value'},this.state.socketDomains.map(function(f){return a.createElement('p',null,f)}))),a.createElement('div',{className:'detail-meta'},a.createElement('p',{className:'detail-meta-label detail-meta-label-fixed-width'},'uploadFile\u5408\u6CD5\u57DF\u540D'),a.createElement('div',{className:'detail-meta-value'},this.state.uploadDomains.map(function(f){return a.createElement('p',null,f)}))),a.createElement('div',{className:'detail-meta'},a.createElement('p',{className:'detail-meta-label detail-meta-label-fixed-width'},'downloadFile\u5408\u6CD5\u57DF\u540D'),a.createElement('div',{className:'detail-meta-value'},this.state.downloadDomains.map(function(f){return a.createElement('p',null,f)}))))),a.createElement('div',{className:'detail-opr-wrapper'},a.createElement('a',{href:'javascript:;',className:e,onClick:this.refreshConfig},'\u5237\u65B0')))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),a=(require("../../actions/projectActions.js"),require("../../stores/projectStores.js")),i=e.createClass({displayName:"DetailConfig",getInitialState:function(){var e=a.getProjectConfig(this.props.project)||{},t=e.Network||{};return{lazyLoaded:!1,requestDomains:t.RequestDomain||[],socketDomains:t.WsRequestDomain||[],uploadDomains:t.UploadDomain||[],downloadDomains:t.DownloadDomain||[],loading:!1}},componentWillReceiveProps:function(e){e.show&&this.setState({lazyLoaded:!0})},componentDidMount:function(){a.on("PROJECT_CONFIG_REFRESHED",this._onConfigRefreshed),a.on("PROJECT_EXT_APPID_CHANGED",this._refreshConfig)},componentWillUnmount:function(){a.removeListener("PROJECT_CONFIG_REFRESHED",this._onConfigRefreshed),a.removeListener("PROJECT_EXT_APPID_CHANGED",this._refreshConfig)},_refreshConfig:function(){this.setState({loading:!0}),a.setProjectConfig(this.props.project,function(){})},_onConfigRefreshed:function(){var e=a.getProjectConfig(this.props.project),t=e&&e.Network||{};this.setState({requestDomains:t.RequestDomain||[],socketDomains:t.WsRequestDomain||[],uploadDomains:t.UploadDomain||[],downloadDomains:t.DownloadDomain||[],loading:!1})},shouldComponentUpdate:function(e,t){return e.project!==this.props.project||e.show!==this.props.show||t!==this.state},render:function(){if(!this.state.lazyLoaded)return null;var a="detail-meta-upload "+(this.state.loading?"detail-upload-dialog-button-primary-loading":"");return e.createElement("div",{style:this.props.show?{}:t.displayNone},e.createElement("div",{className:"detail-meta-tab-bd"},e.createElement("div",{className:"detail-meta-wrapper"},e.createElement("div",{className:"detail-meta"},e.createElement("p",{className:"detail-meta-label detail-meta-label-fixed-width"},"request合法域名"),e.createElement("div",{className:"detail-meta-value"},this.state.requestDomains.map(function(t){return e.createElement("p",null,t)}))),e.createElement("div",{className:"detail-meta"},e.createElement("p",{className:"detail-meta-label detail-meta-label-fixed-width"},"socket合法域名"),e.createElement("div",{className:"detail-meta-value"},this.state.socketDomains.map(function(t){return e.createElement("p",null,t)}))),e.createElement("div",{className:"detail-meta"},e.createElement("p",{className:"detail-meta-label detail-meta-label-fixed-width"},"uploadFile合法域名"),e.createElement("div",{className:"detail-meta-value"},this.state.uploadDomains.map(function(t){return e.createElement("p",null,t)}))),e.createElement("div",{className:"detail-meta"},e.createElement("p",{className:"detail-meta-label detail-meta-label-fixed-width"},"downloadFile合法域名"),e.createElement("div",{className:"detail-meta-value"},this.state.downloadDomains.map(function(t){return e.createElement("p",null,t)}))))),e.createElement("div",{className:"detail-opr-wrapper"},e.createElement("a",{href:"javascript:;",className:a,onClick:this._refreshConfig},"刷新")))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/detail/uploadInfo.js b/app/dist/components/detail/uploadInfo.js index b8c5a554..609b9bab 100644 --- a/app/dist/components/detail/uploadInfo.js +++ b/app/dist/components/detail/uploadInfo.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../stores/windowStores.js');const c=require('../../actions/windowActions.js');require('../../cssStr/cssStr.js');const d=require('../../weapp/commit/upload.js'),e=require('../../common/request/request.js'),{uploadQrCodeURL:f,refreshUploadConfirm:g}=require('../../config/urlConfig.js'),h=require('../../config/errcodeConfig.js'),i=300000,j={ERR_UUID:1,EXPIRE_UUID:2,WAITING_SCAN:3,WAITING_CONFIRM:4,CONFIRM:5},k=function(n){c.showTipsMsg({msg:n,type:'error'})},l=function(n,o){c.showConfirm({content:n,callback:o})},m=a.createClass({displayName:'UploadInfo',getInitialState:function(){return{show:!1,showDialog:!1,showQrcode:!1,waitingConfirm:!1,qrcode_img:'',qrcode_id:'',version:'',desc:'',saveBtnTitle:'\u4E0A\u4F20',saveBtnClass:'detail-upload-dialog-button-primary'}},componentWillMount:function(){},componentWillReceiveProps:function(n){},startUpload:function(){this.setState({showQrcode:!1,showDialog:!1,waitingConfirm:!1});let n=this.props.project.appid,o={url:`${f}?appid=${n}`,method:'get',needToken:1};e(o,(p,q,r)=>{if(!p&&200===q.statusCode){r=JSON.parse(r);let s=r.baseresponse;0==s.errcode?1==r.is_experience?l('\u60A8\u7684\u4E0A\u6B21\u63D0\u4EA4\u5DF2\u88AB\u9009\u4E3A\u4F53\u9A8C\u7248\uFF0C\u672C\u6B21\u4E0A\u4F20\u5C06\u4F1A\u8986\u76D6\u4F53\u9A8C\u7248\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F',u=>{u&&this.showQrcodeWnd(r.qrcode_img,r.wxa_uuid)}):this.showQrcodeWnd(r.qrcode_img,r.wxa_uuid):s.errcode==h.DEV_Need_Admin?l('\u9700\u8981\u7BA1\u7406\u5458\u624D\u80FD\u8FDB\u884C\u4E0A\u4F20\u64CD\u4F5C\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5'):l('\u83B7\u53D6\u4E8C\u7EF4\u7801\u5931\u8D25\uFF01'+s.errcode)}})},showQrcodeWnd:function(n,o){this.setState({qrcode_img:n,qrcode_id:o,showQrcode:!0,showDialog:!1}),this.startRefreshTime=Date.now(),this.startRefreshConfirm()},startRefreshConfirm:function(){return clearTimeout(this.timeId),Date.now()-this.startRefreshTime>i?(k('\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF01'),void this.setState({showQrcode:!1,showDialog:!1})):void(this.timeId=setTimeout(()=>{if(!this.state.showDialog){let v={appid:this.props.project.appid,wxa_uuid:this.state.qrcode_id},w={url:g,body:JSON.stringify(v),method:'post',needToken:1};e(w,(x,y,z)=>{if(!x&&200===y.statusCode){z=JSON.parse(z);let A=z.baseresponse;if(0==A.errcode)switch(z.qrcode_state){case j.ERR_UUID:{k('\u4E8C\u7EF4\u7801\u9519\u8BEF\uFF01'),clearTimeout(this.timeId);break}case j.EXPIRE_UUID:{k('\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF01'),clearTimeout(this.timeId);break}case j.WAITING_SCAN:break;case j.WAITING_CONFIRM:{this.setState({waitingConfirm:!0});break}case j.CONFIRM:{this.setState({showQrcode:!1,showDialog:!0}),clearTimeout(this.timeId);break}}else k('\u83B7\u53D6\u4E8C\u7EF4\u7801\u72B6\u6001\u5931\u8D25\uFF01'),clearTimeout(this.timeId)}}),this.startRefreshConfirm()}},3000))},save:function(){if(!this.lock&&this.state.showDialog){if(!this.state.version)return void k('\u8BF7\u586B\u5199\u7248\u672C\u4FE1\u606F');if(!this.state.desc)return void k('\u8BF7\u586B\u5199\u63CF\u8FF0\u4FE1\u606F');this.setState({saveBtnClass:'detail-upload-dialog-button-primary detail-upload-dialog-button-primary-loading',saveBtnTitle:'\u4E0A\u4F20\u4E2D'}),this.lock=!0;let v={version:this.state.version,desc:this.state.desc,uuid:this.state.qrcode_id};d.upload(this.props.project,v,(w,x,y,z)=>{this.getResp({error:w,resp:x,res:y,options:z,type:'upload'})})}},cancel:function(){this.lock||this.setState({showQrcode:!1,showDialog:!1})},versionChange:function(n){let o=n.target.value;o=o.replace(/[^0-9a-zA-Z\.]/g,''),this.setState({version:o})},descChange:function(n){let o=n.target.value;this.setState({desc:o})},getResp:function(n){this.setState({saveBtnClass:'detail-upload-dialog-button-primary',saveBtnTitle:'\u4E0A\u4F20',showDialog:!1,showQrcode:!1}),this.lock=!1,this.props.getResp(n)},render:function(){let n=this.state.showDialog||this.state.showQrcode,o='';if(this.state.qrcode_img){let p=+new Date+i,q=new Date(p);o=this.state.waitingConfirm?'\u626B\u7801\u6210\u529F\uFF0C\u8BF7\u5728\u624B\u673A\u4E0A\u786E\u8BA4':`请使用管理员的微信号扫描二维码,并在微信上确认。二维码将在 ${q.toTimeString().replace(/\s.*/g,'')} 失效。`}return a.createElement('div',{style:{marginTop:-51,display:n?'':'none'},className:'detail-upload-dialog'},a.createElement('div',{className:'detail-upload-dialog-hd'},a.createElement('h3',{className:'detail-upload-dialog-hd-title'},'\u4E0A\u4F20\u786E\u8BA4')),a.createElement('div',{style:{display:this.state.showDialog?'':'none'}},a.createElement('div',{className:'detail-upload-dialog-bd'},a.createElement('p',{className:'detail-upload-dialog-tips'},'\u4E0A\u4F20\u540E\uFF0C\u53EF\u4EE5\u5728\u516C\u4F17\u5E73\u53F0\u67E5\u770B\u672C\u7248\u672C'),a.createElement('div',{className:'detail-upload-dialog-form'},a.createElement('div',{className:'detail-upload-dialog-form-item'},a.createElement('label',{className:'detail-upload-dialog-form-label'},'\u7248\u672C\u53F7'),a.createElement('div',{className:'detail-upload-dialog-form-input-box'},a.createElement('input',{onChange:this.versionChange,value:this.state.version,type:'text',maxLength:'10',className:'detail-upload-dialog-form-input'}),a.createElement('p',{className:'detail-upload-dialog-form-tips'},'\u5408\u7406\u8BBE\u7F6E\u7248\u672C\u53F7\u4FBF\u4E8E\u7BA1\u7406\uFF0C\u53EA\u80FD\u8F93\u5165\u5B57\u6BCD\u3001\u6570\u5B57\u3001. \u5982 v1.0.0 '))),a.createElement('div',{className:'detail-upload-dialog-form-item'},a.createElement('label',{className:'detail-upload-dialog-form-label'},'\u9879\u76EE\u5907\u6CE8'),a.createElement('div',{className:'detail-upload-dialog-form-input-box'},a.createElement('input',{onChange:this.descChange,value:this.state.desc,type:'text',maxLength:'100',className:'detail-upload-dialog-form-input'}),a.createElement('p',{className:'detail-upload-dialog-form-tips'},'\u53EF\u4EE5\u5907\u6CE8\u9879\u76EE\u7248\u672C\u4F18\u5316\u5185\u5BB9\u7B49\uFF0C\u4FBF\u4E8E\u7BA1\u7406\u5458\u8BC6\u522B'))))),a.createElement('div',{className:'detail-upload-dialog-ft'},a.createElement('a',{onClick:this.cancel,href:'javascript:;',className:'detail-upload-dialog-button-default'},'\u53D6\u6D88'),a.createElement('a',{onClick:this.save,href:'javascript:;',style:{display:this.props.isTourist?'none':''},className:this.state.saveBtnClass},this.state.saveBtnTitle))),a.createElement('div',{style:{display:this.state.showQrcode?'':'none'}},a.createElement('div',{className:'setting-bd'},a.createElement('img',{src:'data:image/png;base64,'+this.state.qrcode_img,style:{width:'200px',heigth:'200px',marginBottom:'20px'}}),a.createElement('p',null,o)),a.createElement('div',{className:'detail-upload-dialog-ft'},a.createElement('a',{onClick:this.cancel,href:'javascript:;',className:'detail-upload-dialog-button-default'},'\u53D6\u6D88'))))}});_exports=m}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=(require("../../stores/windowStores.js"),require("../../actions/windowActions.js")),a=(require("../../cssStr/cssStr.js"),require("../../weapp/commit/upload.js")),i=require("../../common/request/request.js"),s=require("../../config/urlConfig.js"),o=s.uploadQrCodeURL,r=s.refreshUploadConfirm,l=require("../../config/errcodeConfig.js"),d=3e5,n={ERR_UUID:1,EXPIRE_UUID:2,WAITING_SCAN:3,WAITING_CONFIRM:4,CONFIRM:5},c=function(e){t.showTipsMsg({msg:e,type:"error"})},m=function(e,a){t.showConfirm({content:e,callback:a})},p=e.createClass({displayName:"UploadInfo",getInitialState:function(){return{show:!1,showDialog:!1,showQrcode:!1,waitingConfirm:!1,qrcode_img:"",qrcode_id:"",version:"",desc:"",saveBtnTitle:"上传",saveBtnClass:"detail-upload-dialog-button-primary"}},startUpload:function(){var e=this;this.setState({showQrcode:!1,showDialog:!1,waitingConfirm:!1});var t=this.props.project.appid,a={url:o+"?appid="+t,method:"get",needToken:1};i(a,function(t,a,i){if(!t&&200===a.statusCode){i=JSON.parse(i);var s=i.baseresponse;0==s.errcode?1!=i.is_experience||e.props.project.platform?e.showQrcodeWnd(i.qrcode_img,i.wxa_uuid):m("您的上次提交已被选为体验版,本次上传将会覆盖体验版,是否继续?",function(t){t&&e.showQrcodeWnd(i.qrcode_img,i.wxa_uuid)}):m(s.errcode==l.DEV_Need_Admin?"需要管理员才能进行上传操作,请检查后重试":"获取二维码失败!"+s.errcode)}})},showQrcodeWnd:function(e,t){this.setState({qrcode_img:e,qrcode_id:t,showQrcode:!0,showDialog:!1}),this.startRefreshTime=Date.now(),this.startRefreshConfirm()},startRefreshConfirm:function(){var e=this;return clearTimeout(this.timeId),Date.now()-this.startRefreshTime>d?(c("二维码已过期!"),void this.setState({showQrcode:!1,showDialog:!1})):void(this.timeId=setTimeout(function(){if(!e.state.showDialog){var t={appid:e.props.project.appid,wxa_uuid:e.state.qrcode_id},a={url:r,body:JSON.stringify(t),method:"post",needToken:1};i(a,function(t,a,i){if(!t&&200===a.statusCode){i=JSON.parse(i);var s=i.baseresponse;if(0==s.errcode)switch(i.qrcode_state){case n.ERR_UUID:c("二维码错误!"),clearTimeout(e.timeId);break;case n.EXPIRE_UUID:c("二维码已过期!"),clearTimeout(e.timeId);break;case n.WAITING_SCAN:break;case n.WAITING_CONFIRM:e.setState({waitingConfirm:!0});break;case n.CONFIRM:e.setState({showQrcode:!1,showDialog:!0}),clearTimeout(e.timeId)}else c("获取二维码状态失败!"),clearTimeout(e.timeId)}}),e.startRefreshConfirm()}},3e3))},save:function(){var e=this;if(!this.lock&&this.state.showDialog){if(!this.state.version)return void c("请填写版本信息");if(!this.state.desc)return void c("请填写描述信息");this.setState({saveBtnClass:"detail-upload-dialog-button-primary detail-upload-dialog-button-primary-loading",saveBtnTitle:"上传中"}),this.lock=!0;var t={version:this.state.version,desc:this.state.desc,uuid:this.state.qrcode_id};a.upload(this.props.project,t,function(t,a,i,s){e.getResp({error:t,resp:a,res:i,options:s,type:"upload"})})}},cancel:function(){this.lock||this.setState({showQrcode:!1,showDialog:!1})},versionChange:function(e){var t=e.target.value;t=t.replace(/[^0-9a-zA-Z\.]/g,""),this.setState({version:t})},descChange:function(e){var t=e.target.value;this.setState({desc:t})},getResp:function(e){this.setState({saveBtnClass:"detail-upload-dialog-button-primary",saveBtnTitle:"上传",showDialog:!1,showQrcode:!1}),this.lock=!1,this.props.getResp(e)},render:function(){var t=this.state.showDialog||this.state.showQrcode,a="";if(this.state.qrcode_img){var i=+new Date+d,s=new Date(i);a=this.state.waitingConfirm?"扫码成功,请在手机上确认":"请使用管理员的微信号扫描二维码,并在微信上确认。二维码将在 "+s.toTimeString().replace(/\s.*/g,"")+" 失效。"}return e.createElement("div",{style:{marginTop:-51,display:t?"":"none"},className:"detail-upload-dialog"},e.createElement("div",{className:"detail-upload-dialog-hd"},e.createElement("h3",{className:"detail-upload-dialog-hd-title"},"上传确认")),e.createElement("div",{style:{display:this.state.showDialog?"":"none"}},e.createElement("div",{className:"detail-upload-dialog-bd"},e.createElement("p",{className:"detail-upload-dialog-tips"},"上传后,可以在公众平台查看本版本"),e.createElement("div",{className:"detail-upload-dialog-form"},e.createElement("div",{className:"detail-upload-dialog-form-item"},e.createElement("label",{className:"detail-upload-dialog-form-label"},"版本号"),e.createElement("div",{className:"detail-upload-dialog-form-input-box"},e.createElement("input",{onChange:this.versionChange,value:this.state.version,type:"text",maxLength:"10",className:"detail-upload-dialog-form-input"}),e.createElement("p",{className:"detail-upload-dialog-form-tips"},"合理设置版本号便于管理,只能输入字母、数字、. 如 v1.0.0 "))),e.createElement("div",{className:"detail-upload-dialog-form-item"},e.createElement("label",{className:"detail-upload-dialog-form-label"},"项目备注"),e.createElement("div",{className:"detail-upload-dialog-form-input-box"},e.createElement("input",{onChange:this.descChange,value:this.state.desc,type:"text",maxLength:"100",className:"detail-upload-dialog-form-input"}),e.createElement("p",{className:"detail-upload-dialog-form-tips"},"可以备注项目版本优化内容等,便于管理员识别"))))),e.createElement("div",{className:"detail-upload-dialog-ft"},e.createElement("a",{onClick:this.cancel,href:"javascript:;",className:"detail-upload-dialog-button-default"},"取消"),e.createElement("a",{onClick:this.save,href:"javascript:;",style:{display:this.props.isTourist?"none":""},className:this.state.saveBtnClass},this.state.saveBtnTitle))),e.createElement("div",{style:{display:this.state.showQrcode?"":"none"}},e.createElement("div",{className:"setting-bd"},e.createElement("img",{src:"data:image/png;base64,"+this.state.qrcode_img,style:{width:"200px",heigth:"200px",marginBottom:"20px"}}),e.createElement("p",null,a)),e.createElement("div",{className:"detail-upload-dialog-ft"},e.createElement("a",{onClick:this.cancel,href:"javascript:;",className:"detail-upload-dialog-button-default"},"取消"))))}});_exports=p}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/develop/develop.js b/app/dist/components/develop/develop.js index d265173c..bcb574f5 100644 --- a/app/dist/components/develop/develop.js +++ b/app/dist/components/develop/develop.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../simulator/controller.js'),c=require('../debugger/debugger.js'),d=require('../../cssStr/cssStr.js'),e=require('../../stores/projectStores.js'),f=require('../../stores/webviewStores.js'),g=a.createClass({displayName:'Develop',getInitialState:function(){let h=!1;return this.props.project&&(h=this.props.project.editWebview),{project:!!this.props.project,editWebview:h}},_restart:function(){this.setState({project:!1},()=>{f.setCurrentWebviewID(0),this.setState({project:!0})})},_editWebview:function(h,i){h.hash===this.props.project.hash&&this.setState({editWebview:i})},componentDidMount:function(){e.on('RESTART_PROJECT',this._restart),e.on('PROJECT_STORES_CHANGE_EDIT_WEBVIEW',this._editWebview)},componentWillUnmount:function(){e.removeListener('RESTART_PROJECT',this._restart),e.removeListener('PROJECT_STORES_CHANGE_EDIT_WEBVIEW',this._editWebview)},render:function(){const{show:h,project:i}=this.props;let j=Object.assign({},d.webviewDisplayNone);'debug'===h&&(j={}),'edit'===h&&this.state.editWebview&&(j={flex:'initial'});let k;return this.props.project?this.state.project?(k=a.createElement(b,{show:h,project:i}),j.marginTop=-52):k='':k=a.createElement(b,{show:h,project:i}),a.createElement('div',{className:'develop',style:j},k,a.createElement(c,{project:this.props.project,propshow:h}))}});_exports=g}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../simulator/controller.js"),r=require("../debugger/debugger.js"),s=require("../../cssStr/cssStr.js"),i=require("../../stores/projectStores.js"),o=require("../../stores/webviewStores.js"),n=require("../custompre/custompreview.js"),p=e.createClass({displayName:"Develop",getInitialState:function(){var e=!1;return this.props.project&&(e=this.props.project.editWebview),{project:!!this.props.project,editWebview:e}},_restart:function(){var e=this;this.setState({project:!1},function(){o.setCurrentWebviewID(0),e.setState({project:!0})})},_editWebview:function(e,t){e.hash===this.props.project.hash&&this.setState({editWebview:t})},componentDidMount:function(){i.on("RESTART_PROJECT",this._restart),i.on("PROJECT_STORES_CHANGE_EDIT_WEBVIEW",this._editWebview)},componentWillUnmount:function(){i.removeListener("RESTART_PROJECT",this._restart),i.removeListener("PROJECT_STORES_CHANGE_EDIT_WEBVIEW",this._editWebview)},render:function(){var i=this.props,o=i.show,p=i.project,c=Object.assign({},s.webviewDisplayNone);"debug"===o&&(c={}),"edit"===o&&this.state.editWebview&&(c={flex:"initial"});var a=void 0;return this.props.project?this.state.project?(a=e.createElement(t,{show:o,project:p}),c.marginTop=-52):a="":a=e.createElement(t,{show:o,project:p}),e.createElement("div",{className:"develop",style:c},a,e.createElement(r,{project:this.props.project,propshow:o}),e.createElement(n,null))}});_exports=p}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/devtools/devtools.js b/app/dist/components/devtools/devtools.js index a88adad3..dfe41f4f 100644 --- a/app/dist/components/devtools/devtools.js +++ b/app/dist/components/devtools/devtools.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../lib/react-dom.js'),c=require('../../cssStr/cssStr.js'),d=require('../../stores/webviewStores.js'),e=require('../../stores/windowStores.js');require('./../../common/log/log.js');const f=a.createClass({displayName:'DevTools',hideAllDevtools:function(){let g=this.refs.container.childNodes;for(let h=0;h{this.postMessage(g,{command:'init',msg:{width:j.width,height:j.height,dpr:j.dpr},to:'webframe'})}),k.src='about:blank',this.refs.container.appendChild(k),k.addEventListener('loadcommit',()=>{h.showDevTools(!0,k),k.style.height=`${global.contentDocument.querySelector('.debugger').clientHeight}px`})},addContentScripts:function(){this.devtoolsview.addContentScripts([{name:'myRules',matches:[''],js:{files:['app/dist/contentscript/contentScript.js']},run_at:'document_start'}])},port:{},getWebviewPortName:function(g){return`webview${10000+g}`},initRuntime:function(g){chrome.runtime.onConnect.addListener(h=>{let j=this.getWebviewPortName(g);h.name===j&&(this.port[g]=h,h.onMessage.addListener(l=>{this.onMessage(g,l)}),h.onDisconnect.addListener(()=>{delete this.port[g]}),this.postMessage(g,{command:'SHAKE_HANDS',to:'contentscript'}))})},onMessage:function(g,h){h=h||{};let j=h.type;'alert'===j&&alert(h.msg);let k=h.command;'INIT_DEVTOOLS_SUCCESS'===k&&e.emit(`INIT_DEVTOOLS_SUCCESS${g}`)},msgQuery:{},postMessage:function(g,h){let j=this.port[g];if(!j)return this.msgQuery[g]=[],void this.msgQuery[g].push(h);this.msgQuery[g]&&(this.msgQuery.forEach(k=>{this.port.postMessage(k)}),delete this.msgQuery[g]);j.postMessage(h)},postMessageToAllDevview:function(g,h,j,k){let l={to:g,msg:h,command:j,ext:k};for(let m in this.port)l.webviewID=parseInt(m),this.postMessage(m,l)},componentDidMount:function(){d.on('CHANGE_WEBVIEW_ID',this._changeWebviewID),e.on('SET_WEBVIEW_INFO',this._setWebviewInfo),e.on('OPEN_WEBVIEW_DEVTOOLS',this._openWebviewDevtools),e.on('CLOSE_WEBVIEW_DEVTOOLS',this._closeWebviewDevtools)},componentWillUnmount:function(){d.removeListener('CHANGE_WEBVIEW_ID',this._changeWebviewID),e.removeListener('SET_WEBVIEW_INFO',this._setWebviewInfo),e.removeListener('OPEN_WEBVIEW_DEVTOOLS',this._openWebviewDevtools),e.removeListener('CLOSE_WEBVIEW_DEVTOOLS',this._closeWebviewDevtools)},render:function(){let g='devtools'===this.props.show?{height:'100%'}:c.webviewDisplayNone;return a.createElement('div',{style:g,ref:'container',className:'devtools'})}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../lib/react-dom.js"),o=require("../../cssStr/cssStr.js"),s=require("../../stores/webviewStores.js"),i=require("../../stores/windowStores.js"),n=(require("./../../common/log/log.js"),e.createClass({displayName:"DevTools",hideAllDevtools:function(){for(var e=this.refs.container.childNodes,t=0;t"],js:{files:["app/dist/contentscript/contentScript.js"]},run_at:"document_start"}])},port:{},getWebviewPortName:function(e){return"webview"+(1e4+e)},initRuntime:function(e){var t=this;chrome.runtime.onConnect.addListener(function(o){var s=t.getWebviewPortName(e);o.name===s&&(t.port[e]=o,o.onMessage.addListener(function(o){t.onMessage(e,o)}),o.onDisconnect.addListener(function(){delete t.port[e]}),t.postMessage(e,{command:"SHAKE_HANDS",to:"contentscript"}))})},onMessage:function(e,t){t=t||{};var o=t.type;"alert"===o&&alert(t.msg);var s=t.command;"INIT_DEVTOOLS_SUCCESS"===s&&i.emit("INIT_DEVTOOLS_SUCCESS"+e)},msgQuery:{},postMessage:function(e,t){var o=this,s=this.port[e];return s?(this.msgQuery[e]&&(this.msgQuery.forEach(function(e){o.port.postMessage(e)}),delete this.msgQuery[e]),void s.postMessage(t)):(this.msgQuery[e]=[],void this.msgQuery[e].push(t))},postMessageToAllDevview:function(e,t,o,s){var i={to:e,msg:t,command:o,ext:s};for(var n in this.port)i.webviewID=parseInt(n),this.postMessage(n,i)},componentDidMount:function(){s.on("CHANGE_WEBVIEW_ID",this._changeWebviewID),i.on("SET_WEBVIEW_INFO",this._setWebviewInfo),i.on("OPEN_WEBVIEW_DEVTOOLS",this._openWebviewDevtools),i.on("CLOSE_WEBVIEW_DEVTOOLS",this._closeWebviewDevtools)},componentWillUnmount:function(){s.removeListener("CHANGE_WEBVIEW_ID",this._changeWebviewID),i.removeListener("SET_WEBVIEW_INFO",this._setWebviewInfo),i.removeListener("OPEN_WEBVIEW_DEVTOOLS",this._openWebviewDevtools),i.removeListener("CLOSE_WEBVIEW_DEVTOOLS",this._closeWebviewDevtools)},render:function(){var t="devtools"===this.props.show?{height:"100%"}:o.webviewDisplayNone;return e.createElement("div",{style:t,ref:"container",className:"devtools"})}}));_exports=n}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/edit/config/config.js b/app/dist/components/edit/config/config.js index 7b4b23b7..df28267c 100644 --- a/app/dist/components/edit/config/config.js +++ b/app/dist/components/edit/config/config.js @@ -1,21 +1 @@ -const pageJS=`// {{page}}.js -Page({ - data:{}, - onLoad:function(options){ - // 页面初始化 options为页面跳转所带来的参数 - }, - onReady:function(){ - // 页面渲染完成 - }, - onShow:function(){ - // 页面显示 - }, - onHide:function(){ - // 页面隐藏 - }, - onUnload:function(){ - // 页面关闭 - } -})`,pageWXSS=`/* {{page}}.wxss */`,pageWXML=` -{{page}}.wxml -`,pageJSON='{}';module.exports={pageJS,pageJSON,pageWXML,pageWXSS}; \ No newline at end of file +"use strict";var pageJS="// {{page}}.js\nPage({\n data:{},\n onLoad:function(options){\n // 页面初始化 options为页面跳转所带来的参数\n },\n onReady:function(){\n // 页面渲染完成\n },\n onShow:function(){\n // 页面显示\n },\n onHide:function(){\n // 页面隐藏\n },\n onUnload:function(){\n // 页面关闭\n }\n})",pageWXSS="/* {{page}}.wxss */",pageWXML="\n{{page}}.wxml\n",pageJSON="{}";module.exports={pageJS:pageJS,pageJSON:pageJSON,pageWXML:pageWXML,pageWXSS:pageWXSS}; \ No newline at end of file diff --git a/app/dist/components/edit/edit.js b/app/dist/components/edit/edit.js index ca6b3584..c724f19b 100644 --- a/app/dist/components/edit/edit.js +++ b/app/dist/components/edit/edit.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(F){return F.replace(/\\/g,'/')}function b(F){return{mtime:+F.mtime,birthtime:+F.birthtime,isDir:F.isDirectory(),size:F.size}}const c=require('glob'),d=require('fs'),f=require('path'),g=require('url'),h=require('rmdir'),j=require('../../lib/react.js'),k=require('../../cssStr/cssStr.js');require('../../actions/webviewActions.js');const l=require('../../actions/windowActions.js'),m=require('../../stores/windowStores.js');require('../../actions/projectActions.js');const n=require('../../weapp/utils/tools.js'),o=require('../../weapp/utils/projectManager.js'),q=require('../../stores/projectStores.js'),r=require('../../common/log/log.js'),{spawn:t,spawnSync:u,exec:v}=require('child_process'),w=require('./utils/editTools.js'),x=require('./utils/grep.js'),y=require('./utils/formatCode.js');var z={},A=!1;'win32'===process.platform;const B={'.jpg':!0,'.png':!0,'.jpeg':!0,'.icon':!0,'.gif':!0},C=function(F){l.showTipsMsg({msg:F,type:'error'})},D=function(F,G){l.showConfirm({content:F,callback:G})},E=j.createClass({displayName:'Edit',getInitialState:function(){return{project:this.props.project}},onMessage:function(F){let G=F.command,H=F.msg,I=F.ext,J=this.state.project;switch(G){case'GET_FILE_LIST':{if(A)return;A=!0;let K=H.options,L=K.ignore||['node_modules/**/*','node_modules'];c(`**`,{cwd:J.projectpath,ignore:L},(M,N)=>{A=!1;let O={ret:M?M.toString():0,res:{files:M?[]:N,info:{}}};for(let P=0;P{z[P]=!0}),this.postMessage('webframe','RETURN_RES',O,I)});break}case'GET_FILE_DATA':{let K=H.path,L=f.extname(K);if(B[L]){let M='';try{M=decodeURI(g.resolve(n.getBaseURL(J),K))}catch(N){M=g.resolve(n.getBaseURL(J),K)}this.postMessage('webframe','RETURN_RES',{ret:0,res:{data:M}},I)}else{let M=f.join(J.projectpath,K);d.readFile(M,'utf8',(N,O)=>{let P=d.lstatSync(M),Q=b(P),R={ret:N?N.toString():0,res:{data:N?'':O,info:Q}};this.postMessage('webframe','RETURN_RES',R,I)})}break}case'SAVE_FILE_DATA':{let K=f.join(J.projectpath,H.path),L=H.data,M;try{d.writeFileSync(K,L,'utf8');let N=d.lstatSync(K),O=+N.mtime;if(z[a(H.path)]=O,M={ret:0,res:{path:H.path,info:b(N)}},'app.json'===H.path)try{let P=JSON.parse(L),Q=P.pages||[];w.initPage(J,Q)}catch(P){}}catch(N){M={ret:N.toString(),res:''}}this.postMessage('webframe','RETURN_RES',M,I);break}case'DEL_FILE':{let K=H.path,L;try{d.unlinkSync(f.join(J.projectpath,K)),K=a(K),L={ret:0,res:K},delete z[K]}catch(M){L={ret:M.toString(),res:''}}this.postMessage('webframe','RETURN_RES',L,I);break}case'RENAME_FILE':{let K=f.join(J.projectpath,H.oldPath),L=f.join(J.projectpath,H.newPath),M,N=d.lstatSync(K);if(N.isDirectory()){o.manager.stopWatch();let O='darwin'===process.platform?'mv':'ren',P='darwin'===process.platform?[`"${K}"`,`"${L}"`]:[`"${K}"`,`"${f.relative(f.dirname(L),L)}"`],Q=[],R=[],S=t(O,P,{shell:!0});S.on('close',T=>{o.manager.restartWatch(),M=0===T?{ret:0,res:{path:H.newPath,info:b(N)}}:{ret:'\u76EE\u5F55\u4FEE\u6539\u9519\u8BEF',res:''},this.postMessage('webframe','RETURN_RES',M,I)}),S.stdout.on('data',T=>{Q.push(T)}),S.stderr.on('data',T=>{R.push(T)})}else{try{d.renameSync(K,L),delete z[a(H.oldPath)];let O=d.lstatSync(L);z[H.newPath]=!0,M={ret:0,res:{path:H.newPath,info:b(O)}}}catch(O){M={ret:O.toString(),res:''}}this.postMessage('webframe','RETURN_RES',M,I)}break}case'RM_DIR':{let K=J.projectpath,L=f.join(K,H.path);h(L,(M,N,O)=>{M||(N.forEach(Q=>{let R=f.relative(K,Q);R=a(R),delete z[R]}),O.forEach(Q=>{let R=f.relative(K,Q);R=a(R),delete z[R]}));let P={ret:M?M.toString():0,res:M?'':N};this.postMessage('webframe','RETURN_RES',P,I)});break}case'ADD_FILE':{let K=f.join(J.projectpath,H.path),L=d.existsSync(K),M;if(L)M={ret:`${H.path} already existed`},this.postMessage('webframe','RETURN_RES',M,I);else{try{d.writeFileSync(K,'','utf8'),z[a(H.path)]=!0;let N=d.lstatSync(K);M={ret:0,res:{path:H.path,info:b(N)}}}catch(N){M={ret:N.toString(),res:''}}this.postMessage('webframe','RETURN_RES',M,I)}break}case'MAKE_DIR':{let K=f.join(J.projectpath,H.path),L;try{d.mkdirSync(K),z[a(H.path)]=!0;let M=d.lstatSync(K);L={ret:0,res:{path:K,info:b(M)}}}catch(M){L={ret:M.toString(),res:''}}this.postMessage('webframe','RETURN_RES',L,I);break}case'GET_PROJECT_INFO':{this.postMessage('webframe','RETURN_RES',{ret:0,res:J},I);break}case'SET_EDIT_WEBVIEW':{let K=H.editWebview;q.setProjectEditWebview(J.hash,K),this.postMessage('webframe','RETURN_RES',{ret:0,res:K},I);break}case'FIND_STR':{let{options:K,str:L}=H,{cwd:M,i:N,wholeword:O}=K;M=f.join(J.projectpath,M),x({str:L,cwd:M,i:N,wholeword:O,project:J},(P,Q)=>{let R={};P?R.ret=JSON.stringify(P):(R.ret=0,R.res=Q),this.postMessage('webframe','RETURN_RES',R,I)});break}case'SHOW_ITEM_IN_FOLDER':{let K=f.join(J.projectpath,H.filePath);nw.Shell.showItemInFolder(K);break}case'FORMAT_CODE':{let{code:K,options:L}=H;y(K,L,(M,N)=>{this.postMessage('webframe','RETURN_RES',{ret:0,res:N},I)});break}}},postMessage:function(F,G,H,I){let J={to:F,msg:H,command:G,ext:I};if(!this.port)return void this.msgQuery.push(J);this.msgQuery.length&&(this.msgQuery.forEach(K=>{this.port.postMessage(K)}),this.msgQuery=[]);this.port.postMessage(J)},initport:function(F){'edit'===F.name&&(this.port=F,this.port.onMessage.addListener(this.onMessage),this.port.onDisconnect.addListener(()=>{this.port.onMessage.removeListener(this.onMessage),delete this.port,delete this.portID,this.msgQuery=[]}),this.postMessage('contentscript','SHAKE_HANDS',{}))},initRuntime:function(){chrome.runtime.onConnect.addListener(this.initport)},addContentScripts:function(){this.webview.addContentScripts([{name:'contentscript',matches:[''],js:{files:['app/dist/contentscript/editcontent.js']},run_at:'document_start'}])},ewWindow:function(){this.webview.addEventListener('newwindow',function(F){let G=F.targetUrl;G&&nw.Window.open(G,{width:799,height:799})})},_windowFocus:function(){'focus'===this.currentStatus||(this.postMessage('webframe','WINDOW_CHANGE',{eventType:'focus'},{}),setTimeout(()=>{this.webview.focus()},100),this.currentStatus='focus')},_windowBlur:function(){'blur'===this.currentStatus||(this.postMessage('webframe','WINDOW_CHANGE',{eventType:'blur'},{}),this.currentStatus='blur')},_editWebview:function(F,G){F.hash===this.props.project.hash&&this.postMessage('webframe','WEBVIEW_SHOW_CHANGE',{editWebview:G},{})},_openProjectFile:function(F){this.postMessage('webframe','OPEN_FILE',F,{})},componentDidMount:function(){this.msgQuery=[],this.show=this.props.show;let F=this.refs.container,G=this.webview=document.createElement('webview');G.className=`simulator-bd-webview_body`,G.setAttribute('partition','persist:trusted'),G.setUserAgentOverride(`${G.getUserAgent()} devtoolsedit`),F.appendChild(G),this.ewWindow(),this.addContentScripts(),this.initRuntime(),G.addEventListener('dialog',I=>{let J=I.messageType||'',K=I.messageText,L=I.dialog;if('alert'===J)C(K);else if('confirm'===J)I.preventDefault(),D(K,M=>{M?L.ok():L.cancel()});else if('prompt'===J){let M=prompt(K);null===M?L.cancel():L.ok(M)}});let H=o.manager;H.on('FILE_CHANGE',this._initWatcher),G.src='app/html/edit.html',m.on('WINDOW_BLUR',this._windowFocus),m.on('WINDOW_FOCUS',this._windowBlur),q.on('PROJECT_STORES_CHANGE_EDIT_WEBVIEW',this._editWebview),m.on('OPEN_PROJECT_FILE',this._openProjectFile)},componentWillUnmount:function(){chrome.runtime.onConnect.removeListener(this.initport),m.removeListener('WINDOW_BLUR',this._windowFocus),m.removeListener('WINDOW_FOCUS',this._windowBlur),q.removeListener('PROJECT_STORES_CHANGE_EDIT_WEBVIEW',this._editWebview),m.removeListener('OPEN_PROJECT_FILE',this._openProjectFile);let F=o.manager;F.removeListener('FILE_CHANGE',this._initWatcher),this.webview.remove(),z={}},_initWatcher:function(F,G,H,I){if(F.hash===this.state.project.hash){let N=I?+I.mtime:0,O=I?b(I):{},S={};H=a(H),f.join(F.projectpath,H);let T=z[H];if('unlinkDir'===G&&(T=z[`${H}/`]),('add'===G||'addDir'===G)&&!T)S={eventType:G,fileName:H,info:O};else if(('unlink'===G||'unlinkDir'===G)&&T)S={eventType:G,fileName:H,info:O},delete z[H];else if('change'===G){if(z[H]===N)return;z[H]=N,S={eventType:G,fileName:H,info:O}}else return void r.info(`edit.js watch ${G}`);this.postMessage('webframe','FILE_CHANGE',S,{})}},componentWillReceiveProps:function(F){'edit'===F.show?this._windowFocus():this._windowBlur()},render:function(){const{show:F,project:G}=this.props;let H='edit'===F?{}:k.displayNone;return j.createElement('div',{className:'edit',ref:'container',style:H})}});_exports=E}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e){return e.replace(/\\/g,"/")}function t(e){return{mtime:+e.mtime,birthtime:+e.birthtime,isDir:e.isDirectory(),size:e.size}}function r(e){try{return i.lstatSync(e)}catch(e){return{isDirectory:function(){return!1}}}}var s=require("glob"),i=require("fs"),o=require("path"),n=require("url"),a=require("rmdir"),c=require("../../lib/react.js"),p=require("../../cssStr/cssStr.js"),h=(require("../../actions/webviewActions.js"),require("../../actions/windowActions.js")),u=require("../../stores/windowStores.js"),d=(require("../../actions/projectActions.js"),require("../../weapp/utils/tools.js")),f=require("../../weapp/utils/projectManager.js"),l=require("../../stores/projectStores.js"),m=require("../../common/log/log.js"),w=require("child_process"),v=w.spawn,E=(w.spawnSync,w.exec,require("./utils/editTools.js")),_=require("./utils/grep.js"),g=require("./utils/formatCode.js"),R={},S=!1,b=("win32"===process.platform,{".jpg":!0,".png":!0,".jpeg":!0,".icon":!0,".gif":!0,".svg":!0}),j=function(e){h.showTipsMsg({msg:e,type:"error"})},N=function(e,t){h.showConfirm({content:e,callback:t})},T=c.createClass({displayName:"Edit",getInitialState:function(){return{project:this.props.project}},onMessage:function(c){var p=this,h=c.command,u=c.msg,m=c.ext,w=this.state.project;switch(h){case"GET_FILE_LIST":if(S)return;S=!0;var j=u.options,N=j.ignore||["node_modules/**/*","node_modules"];s("**",{cwd:w.projectpath,ignore:N,nosort:!0,strict:!1,silent:!0},function(e,s){S=!1;for(var i={ret:e?e.toString():0,res:{files:e?[]:s,info:{}}},n=0;n"],js:{files:["app/dist/contentscript/editcontent.js"]},run_at:"document_start"}])},ewWindow:function(){this.webview.addEventListener("newwindow",function(e){var t=e.targetUrl;t&&nw.Window.open(t,{width:799,height:799})})},_windowFocus:function(){var e=this;if("focus"!==this.currentStatus){var t={eventType:"focus"};this.postMessage("webframe","WINDOW_CHANGE",t,{}),setTimeout(function(){e.webview.focus()},100),this.currentStatus="focus"}},_windowBlur:function(){if("blur"!==this.currentStatus){var e={eventType:"blur"};this.postMessage("webframe","WINDOW_CHANGE",e,{}),this.currentStatus="blur"}},_editWebview:function(e,t){e.hash===this.props.project.hash&&this.postMessage("webframe","WEBVIEW_SHOW_CHANGE",{editWebview:t},{})},_openProjectFile:function(e){this.postMessage("webframe","OPEN_FILE",e,{})},componentDidMount:function(){this.msgQuery=[],this.show=this.props.show;var e=this.refs.container,t=this.webview=document.createElement("webview");t.className="simulator-bd-webview_body",t.setAttribute("partition","persist:trusted"),t.setUserAgentOverride(t.getUserAgent()+" devtoolsedit"),e.appendChild(t),this.ewWindow(),this.addContentScripts(),this.initRuntime(),t.addEventListener("dialog",function(e){var t=e.messageType||"",r=e.messageText,s=e.dialog;if("alert"===t)j(r);else if("confirm"===t)e.preventDefault(),N(r,function(e){e?s.ok():s.cancel()});else if("prompt"===t){var i=prompt(r);null!==i?s.ok(i):s.cancel()}}),t.addEventListener("blur",function(e){h.editorBlur()}),t.addEventListener("focus",function(e){h.editorFocus()});var r=f.manager;r.on("FILE_CHANGE",this._initWatcher),t.src="app/html/edit.html",u.on("WINDOW_BLUR",this._windowFocus),u.on("WINDOW_FOCUS",this._windowBlur),l.on("PROJECT_STORES_CHANGE_EDIT_WEBVIEW",this._editWebview),u.on("OPEN_PROJECT_FILE",this._openProjectFile)},componentWillUnmount:function(){chrome.runtime.onConnect.removeListener(this.initport),u.removeListener("WINDOW_BLUR",this._windowFocus),u.removeListener("WINDOW_FOCUS",this._windowBlur),l.removeListener("PROJECT_STORES_CHANGE_EDIT_WEBVIEW",this._editWebview),u.removeListener("OPEN_PROJECT_FILE",this._openProjectFile);var e=f.manager;e.removeListener("FILE_CHANGE",this._initWatcher),this.webview.remove(),R={}},_initWatcher:function(r,s,i,n){if(r.hash===this.state.project.hash){var a=n?+n.mtime:0,c=n?t(n):{},p={};i=e(i);var h=(o.join(r.projectpath,i),R[i]);if("unlinkDir"===s&&(h=R[i+"/"]),"add"!==s&&"addDir"!==s||h)if("unlink"!==s&&"unlinkDir"!==s||!h){if("change"!==s)return void m.info("edit.js watch "+s);if(R[i]===a)return;R[i]=a,p={eventType:s,fileName:i,info:c}}else p={eventType:s,fileName:i,info:c},delete R[i];else p={eventType:s,fileName:i,info:c};this.postMessage("webframe","FILE_CHANGE",p,{})}},componentWillReceiveProps:function(e){"edit"===e.show?this._windowFocus():this._windowBlur()},render:function(){var e=this.props,t=e.show,r=(e.project,"edit"===t?{}:p.displayNone);return c.createElement("div",{className:"edit",ref:"container",style:r})}});_exports=T}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/edit/utils/editTools.js b/app/dist/components/edit/utils/editTools.js index 9eea8aaf..f1c49b06 100644 --- a/app/dist/components/edit/utils/editTools.js +++ b/app/dist/components/edit/utils/editTools.js @@ -1 +1 @@ -'use strict';var _export;function init(){const a=require('fs'),b=require('path'),c=require('mkdir-p'),{pageJS:d,pageJSON:f,pageWXML:g,pageWXSS:h}=require('../config/config.js'),i={'.js':d,'.wxml':g,'.json':f,'.wxss':h};_export={},_export.initPage=function(j,k){try{k.forEach(l=>{for(let m in i){let n=`${l}${m}`,o=b.join(j.projectpath,n);if(!a.existsSync(o)){let p=b.dirname(o);c.sync(p);let q=i[m].replace(/{{page}}/g,l);a.writeFileSync(o,q,'utf8')}}})}catch(l){}}}init(),module.exports=_export; \ No newline at end of file +"use strict";function init(){var e=require("fs"),r=require("path"),i=require("mkdir-p"),t=require("../config/config.js"),a=t.pageJS,n=t.pageJSON,o=t.pageWXML,p=t.pageWXSS,c={".js":a,".wxml":o,".json":n,".wxss":p};_export={},_export.initPage=function(t,a){try{a.forEach(function(a){for(var n in c){var o=""+a+n,p=r.join(t.projectpath,o);if(!e.existsSync(p)){var s=r.dirname(p);i.sync(s);var f=c[n].replace(/{{page}}/g,a);e.writeFileSync(p,f,"utf8")}}})}catch(e){}}}var _export;init(),module.exports=_export; \ No newline at end of file diff --git a/app/dist/components/edit/utils/formatCode.js b/app/dist/components/edit/utils/formatCode.js index 46b2797f..26f2dff5 100644 --- a/app/dist/components/edit/utils/formatCode.js +++ b/app/dist/components/edit/utils/formatCode.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('pretty'),b=require('perfectionist'),c=require('postcss');_exports=(d,e,f)=>{let{fileType:g}=e,h;h='css'===g?c([b({indentSize:2,cascade:!1,trimTrailingZeros:!1,trimLeadingZero:!1,zeroLengthNoUnit:!1})]).process(d).css:a(d),f(null,h)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("pretty"),r=require("perfectionist"),i=require("postcss");_exports=function(t,s,o){var n=s.fileType,c=void 0;c="css"===n?i([r({indentSize:2,cascade:!1,trimTrailingZeros:!1,trimLeadingZero:!1,zeroLengthNoUnit:!1})]).process(t).css:e(t),o(null,c)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/edit/utils/grep.js b/app/dist/components/edit/utils/grep.js index 6db702a5..da369c5a 100644 --- a/app/dist/components/edit/utils/grep.js +++ b/app/dist/components/edit/utils/grep.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(g,h,j){let{files:k,reg:l,project:n}=g;if(0===k.length)return void j(null,h);let o=k.shift(),p=1,q=e.extname(o);if(!f[q])a(g,h,j);else{let r=e.relative(n.projectpath,o),s=r.replace(/\\/g,'/'),t=c.createReadStream(o,{encoding:'utf8'}),u=b.createInterface({input:t});u.on('line',v=>{let w=v.match(l);w&&(!h[s]&&(h[s]=[]),h[s].push({line:p,data:v})),p++}),u.on('close',()=>{a(g,h,j)})}}const b=require('readline'),c=require('fs'),d=require('glob'),e=require('path'),f={'.js':!0,'.json':!0,'.wxml':!0,'.wxss':!0,'.html':!0,'.css':!0,'.md':!0,'.txt':!0};_exports=(g={},h)=>{let{cwd:j,wholeword:k,i:l,str:n,project:o}=g,p={};d(`${j}/**/*`,{nodir:!0},(q,r)=>{if(q)return void h(q);let s=n.replace(/[|\\{}()[\]^$+*?.]/g,'\\$&');k&&(s=`\\b${s}\\b`),s=l?new RegExp(s,'i'):new RegExp(s),a({files:r,reg:s,project:o},p,h)})}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(i,a,c){var s=i.files,l=i.reg,u=i.project;if(0===s.length)return void c(null,a);var p=s.shift(),f=1,d=n.extname(p);if(o[d]){var v=n.relative(u.projectpath,p),g=v.replace(/\\/g,"/"),x=t.createReadStream(p,{encoding:"utf8"}),h=r.createInterface({input:x});h.on("line",function(e){var r=e.match(l);r&&(a[g]||(a[g]=[]),a[g].push({line:f,data:e})),f++}),h.on("close",function(){e(i,a,c)})}else e(i,a,c)}var r=require("readline"),t=require("fs"),i=require("glob"),n=require("path"),o={".js":!0,".json":!0,".wxml":!0,".wxss":!0,".html":!0,".css":!0,".md":!0,".txt":!0};_exports=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=r.cwd,o=r.wholeword,a=r.i,c=r.str,s=r.project,l={};i(n+"/**/*",{nodir:!0},function(r,i){if(r)return void t(r);var n=c.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");o&&(n="\\b"+n+"\\b"),n=a?new RegExp(n,"i"):new RegExp(n),e({files:i,reg:n,project:s},l,t)})}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/forbidden/forbidden.js b/app/dist/components/forbidden/forbidden.js index 28fbf9e9..f7f7eab4 100644 --- a/app/dist/components/forbidden/forbidden.js +++ b/app/dist/components/forbidden/forbidden.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../lib/react-dom.js');const b=require('../../cssStr/cssStr.js'),c=a.createClass({displayName:'Forbidden',render:function(){const{show:d}=this.props;let e='forbidden'===d?{}:Object.assign({},b.displayNone);return a.createElement('div',{className:'forbidden',style:e},a.createElement('div',{className:'forbidden-body'},a.createElement('div',{className:'page-msg'},a.createElement('div',{className:'page-msg-icon-wrapper'},a.createElement('i',{className:'icon-warn'})),a.createElement('div',{className:'page-msg-content'},a.createElement('p',null,'\u5F53\u524D\u5E10\u53F7\u672A\u5728\u6B64\u94FE\u63A5\u6240\u5C5E\u7684\u516C\u4F17\u5E73\u53F0\u7ED1\u5B9A\uFF0C\u65E0\u6CD5\u8C03\u8BD5\u8BE5\u94FE\u63A5\u3002\u4F60\u53EF\u4EE5\uFF1A'))),a.createElement('ul',{className:'forbidden-tips'},a.createElement('li',null,a.createElement('a',{href:'javascript:;'},'\u5207\u6362\u5E10\u53F7'),a.createElement('p',null,'\u66F4\u6362\u5DF2\u5728\u6B64\u94FE\u63A5\u6240\u5C5E\u516C\u4F17\u5E73\u53F0\u7ED1\u5B9A\u7684\u5FAE\u4FE1\u53F7\u8FDB\u884C\u8C03\u8BD5')),a.createElement('li',null,a.createElement('a',{href:'javascript:;'},'\u524D\u5F80\u7ED1\u5B9A'),a.createElement('p',null,'\u5728\u6B64\u94FE\u63A5\u6240\u5C5E\u7684\u516C\u4F17\u5E73\u53F0\uFF0C\u5728\u5F00\u53D1\u8005\u4E2D\u5FC3/\u5F00\u53D1\u8005\u5DE5\u5177\uFF0C\u8FDB\u884C\u7ED1\u5B9A\uFF0C\u5982\u4E0B\u56FE\uFF1A')))))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=(require("../../lib/react-dom.js"),require("../../cssStr/cssStr.js")),a=e.createClass({displayName:"Forbidden",render:function(){var a=this.props.show,r="forbidden"===a?{}:Object.assign({},t.displayNone);return e.createElement("div",{className:"forbidden",style:r},e.createElement("div",{className:"forbidden-body"},e.createElement("div",{className:"page-msg"},e.createElement("div",{className:"page-msg-icon-wrapper"},e.createElement("i",{className:"icon-warn"})),e.createElement("div",{className:"page-msg-content"},e.createElement("p",null,"当前帐号未在此链接所属的公众平台绑定,无法调试该链接。你可以:"))),e.createElement("ul",{className:"forbidden-tips"},e.createElement("li",null,e.createElement("a",{href:"javascript:;"},"切换帐号"),e.createElement("p",null,"更换已在此链接所属公众平台绑定的微信号进行调试")),e.createElement("li",null,e.createElement("a",{href:"javascript:;"},"前往绑定"),e.createElement("p",null,"在此链接所属的公众平台,在开发者中心/开发者工具,进行绑定,如下图:")))))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/lunch/lunch.js b/app/dist/components/lunch/lunch.js index 11c14d4f..5ec4d6e6 100644 --- a/app/dist/components/lunch/lunch.js +++ b/app/dist/components/lunch/lunch.js @@ -1,23 +1 @@ -'use strict';var _exposts;function init(){const a=require('../../lib/react.js'),b=require('../../common/request/request.js');require('../../cssStr/cssStr.js');const c=require('../../actions/windowActions.js'),d=require('../../common/log/log.js'),f=require('../../config/urlConfig.js'),g='darwin'===process.platform?'darwin':'win',h=function(j){c.showTipsMsg({msg:j,type:'error'})},i=a.createClass({displayName:'Lunch',handleOnClick:function(){this.props.appQuit()},componentWillUnmount:function(){this.refs.container.innerHTML=''},_loadstop:function(j){let k=this.webview;k.executeScript({code:` - var s = document.createElement('style') - s.innerText = \` - body{ - overflow:hidden; - background-color: #f0f0f0!important; - padding: inherit!important; - color: #373737!important; - } - .impowerBox .title { - display: none; - } - .impowerBox .qrcode { - width: 170px; - height: 170px; - margin-top: -7px; - }\` - document.head.appendChild(s) - var normal = document.querySelectorAll('.normal') - for(var i = 0; i < normal.length; i++) { - normal[i].classList.remove('normal') - } - `}),k.style.display='block';let l=k.request;l.onBeforeRequest.addListener(m=>{if('main_frame'!==m.type)return{};let n=m.url;return n=n.replace('state=login',`state=${g}`),d.info(`lunch.js get URL : ${n}`),b({url:n},(o,p,q)=>{if(!o){d.info(`lunch.js get res ${JSON.stringify(q)}`),q=JSON.parse(q);let r=q.baseresponse,s=r.errcode?parseInt(r.errcode):0;if(0!==s)return h(`登录失败,错误信息:${r.errmsg}`),k.removeEventListener('loadstop',this._loadstop),void this.componentDidMount();for(let y in localStorage)0===y.indexOf('projectattr')&&delete localStorage[y];let t=p.headers,u=t['debugger-signature'],v=t['debugger-newticket'],w=+new Date,x={signature:u,newticket:v,openid:q.openid,nickName:q.nickname,headUrl:q.headurl||'https://res.wx.qq.com/zh_CN/htmledition/v2/images/web_wechat_no_contect.png',ticketExpiredTime:1000*q.ticket_expired_time+w,signatureExpiredTime:1000*q.signature_expired_time+w,sex:1===q.sex?'male':'female',province:q.province,city:q.city,contry:q.contry};c.upDateUserInfo(x)}else h(`网络错误 ${o.toString()}`),k.removeEventListener('loadstop',this._loadstop),this.componentDidMount()}),{cancel:!0}},{urls:['']},['blocking']),d.info(`lunch.js init loginWebview`)},componentDidMount:function(){this.refs.container;let j=this.webview=document.createElement('webview');j.src=f.LOGIN_URL,j.style.display='none',j.addEventListener('loadstop',this._loadstop),this.refs.container.innerHTML='',this.refs.container.appendChild(j)},showSetting:function(){c.showSetting()},render:function(){let j='win32'===process.platform,k=j?'lunch-toolbar lunch-toolbar-win app-drag':'lunch-toolbar app-drag',l=a.createElement('a',{href:'javascript:;',onClick:this.showSetting,className:'create-toolbar-setting app-no-drag'},'\u4EE3\u7406',a.createElement('i',{className:'create-toolbar-setting-icon'}));return a.createElement('div',{className:'lunch'},a.createElement('div',{className:k},j?l:'',a.createElement('a',{onClick:this.handleOnClick,href:'javascript:;',className:'lunch-toolbar-close app-no-drag'},a.createElement('i',{className:'lunch-toolbar-close-icon app-no-drag'})),j?'':l),a.createElement('div',{className:'lunch-body'},a.createElement('div',{className:'lunch-logo-wrapper'},a.createElement('i',{className:'lunch-logo'})),a.createElement('div',{className:'lunch-name'},'\u5FAE\u4FE1\u5F00\u53D1\u8005\u5DE5\u5177'),a.createElement('div',{className:'lunch-line'}),a.createElement('div',{ref:'container',className:'lunch-qrcode'})))}});_exposts=i}init(),module.exports=_exposts; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),n=require("../../common/request/request.js"),t=(require("../../cssStr/cssStr.js"),require("../../actions/windowActions.js")),r=require("../../common/log/log.js"),i=require("../../config/urlConfig.js"),o="darwin"===process.platform?"darwin":"win",a="https://res.wx.qq.com/zh_CN/htmledition/v2/images/web_wechat_no_contect.png",s=function(e){t.showTipsMsg({msg:e,type:"error"})},c=e.createClass({displayName:"Lunch",handleOnClick:function(){this.props.appQuit()},componentWillUnmount:function(){this.refs.container.innerHTML=""},_loadstop:function(e){var i=this,c=this.webview;c.executeScript({code:"\n var s = document.createElement('style')\n s.innerText = `\n body{\n overflow:hidden;\n background-color: #f0f0f0!important;\n padding: inherit!important;\n color: #373737!important;\n }\n .impowerBox .title {\n display: none;\n }\n .impowerBox .qrcode {\n width: 170px;\n height: 170px;\n margin-top: -7px;\n }`\n document.head.appendChild(s)\n var normal = document.querySelectorAll('.normal')\n for(var i = 0; i < normal.length; i++) {\n normal[i].classList.remove('normal')\n }\n "}),c.style.display="block";var l=c.request;l.onBeforeRequest.addListener(function(e){if("main_frame"!==e.type)return{};var l=e.url;return l=l.replace("state=login","state="+o),r.info("lunch.js get URL : "+l),n({url:l},function(e,n,o){if(e)s("网络错误 "+e.toString()),c.removeEventListener("loadstop",i._loadstop),i.componentDidMount();else{r.info("lunch.js get res "+JSON.stringify(o)),o=JSON.parse(o);var l=o.baseresponse,d=l.errcode?parseInt(l.errcode):0;if(0!==d)return s("登录失败,错误信息:"+l.errmsg),c.removeEventListener("loadstop",i._loadstop),void i.componentDidMount();for(var m in localStorage)0===m.indexOf("projectattr")&&delete localStorage[m];var p=n.headers,u=p["debugger-signature"],h=p["debugger-newticket"],g=+new Date,f={signature:u,newticket:h,openid:o.openid,nickName:o.nickname,headUrl:o.headurl||a,ticketExpiredTime:1e3*o.ticket_expired_time+g,signatureExpiredTime:1e3*o.signature_expired_time+g,sex:1===o.sex?"male":"female",province:o.province,city:o.city,contry:o.contry};t.upDateUserInfo(f)}}),{cancel:!0}},{urls:[""]},["blocking"]),r.info("lunch.js init loginWebview")},componentDidMount:function(){var e=(this.refs.container,this.webview=document.createElement("webview"));e.src=i.LOGIN_URL,e.style.display="none",e.addEventListener("loadstop",this._loadstop),this.refs.container.innerHTML="",this.refs.container.appendChild(e)},showSetting:function(){t.showSetting()},render:function(){var n="win32"===process.platform,t=n?"lunch-toolbar lunch-toolbar-win app-drag":"lunch-toolbar app-drag",r=e.createElement("a",{href:"javascript:;",onClick:this.showSetting,className:"create-toolbar-setting app-no-drag"},"代理",e.createElement("i",{className:"create-toolbar-setting-icon"}));return e.createElement("div",{className:"lunch"},e.createElement("div",{className:t},n?r:"",e.createElement("a",{onClick:this.handleOnClick,href:"javascript:;",className:"lunch-toolbar-close app-no-drag"},e.createElement("i",{className:"{{closeClass}}"})),n?"":r),e.createElement("div",{className:"lunch-body"},e.createElement("div",{className:"lunch-logo-wrapper"},e.createElement("i",{className:"lunch-logo"})),e.createElement("div",{className:"lunch-name"},"微信开发者工具"),e.createElement("div",{className:"lunch-line"}),e.createElement("div",{ref:"container",className:"lunch-qrcode"})))}});_exposts=c}var _exposts;init(),module.exports=_exposts; \ No newline at end of file diff --git a/app/dist/components/menubar/menubar.js b/app/dist/components/menubar/menubar.js index b8deb99d..c31a8747 100644 --- a/app/dist/components/menubar/menubar.js +++ b/app/dist/components/menubar/menubar.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js'),d=require('../../common/actions/actions.js'),e=a.createClass({displayName:'Menubar',getInitialState:function(){return{memory:0,show:'win32'===process.platform||global.appConfig.isDev?{}:b.displayNone,showActions:b.displayNone,showAbout:b.displayNone}},actionsClick:function(f){let g=f.target,h=g.dataset,i=h.type;i?d[i]():(g.setAttribute('already',!0),this.setState({showActions:this.state.showActions===b.displayNone?{}:b.displayNone,showAbout:b.displayNone}))},aboutClick:function(f){let g=f.target,h=g.dataset,i=h.type;i?d[i]():(g.setAttribute('already',!0),this.setState({showAbout:this.state.showAbout===b.displayNone?{}:b.displayNone,showActions:b.displayNone}))},_bodyClick:function(f){let g=f.target,h=g.getAttribute('already');return h?void g.setAttribute('already',!1):void this.setState({showActions:b.displayNone,showAbout:b.displayNone})},componentDidMount:function(){c.on('BODY_CLICK',this._bodyClick)},componentWillUnmount:function(){c.removeListener('BODY_CLICK',this._bodyClick)},render:function(){let f=this.props.project?b.displayNone:{},g=this.props.lastWinStatus,h='restore'===g.status?'operation-max-icon':'operation-recover-icon';return a.createElement('div',{className:'menubar-wrapper app-drag',style:this.state.show},a.createElement('div',{className:'menubar'},a.createElement('div',{onClick:this.props.showSetting,className:'menubar-item app-no-drag'},'\u8BBE\u7F6E'),a.createElement('div',{className:'menubar-item app-no-drag',onClick:this.actionsClick},'\u52A8\u4F5C',a.createElement('div',{className:'menubar-item-sub',style:this.state.showActions},a.createElement('a',{'data-type':'reload',href:'javascript:;',className:'menubar-item-sub-item'},'\u5237\u65B0'),a.createElement('a',{'data-type':'goback',href:'javascript:;',className:'menubar-item-sub-item'},'\u540E\u9000'),a.createElement('a',{'data-type':'goforward',href:'javascript:;',className:'menubar-item-sub-item'},'\u524D\u8FDB'),a.createElement('a',{style:f,'data-type':'focusAddressBar',href:'javascript:;',className:'menubar-item-sub-item'},'\u9009\u4E2D\u5730\u5740\u680F'))),a.createElement('div',{className:'menubar-item app-no-drag',onClick:this.aboutClick},'\u5E2E\u52A9',a.createElement('div',{className:'menubar-item-sub',style:this.state.showAbout},a.createElement('a',{'data-type':'showAbout',href:'javascript:;',className:'menubar-item-sub-item'},'\u5173\u4E8E')))),a.createElement('div',{className:'titlebar'},a.createElement('h1',null,'\u5FAE\u4FE1\u5F00\u53D1\u8005\u5DE5\u5177 ',global.appVersion)),a.createElement('div',{className:'operation-area app-no-drag'},a.createElement('a',{href:'javascript:;',onClick:this.props.appMin,className:'operation-item'},a.createElement('i',{className:'operation-min-icon'})),a.createElement('a',{href:'javascript:;',onClick:this.props.appMax,className:'operation-item'},a.createElement('i',{className:h})),a.createElement('a',{href:'javascript:;',onClick:this.props.appQuit,className:'operation-item'},a.createElement('i',{className:'operation-close-icon'}))))}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),a=require("../../stores/windowStores.js"),s=require("../../common/actions/actions.js"),i=e.createClass({displayName:"Menubar",getInitialState:function(){return{memory:0,show:"win32"===process.platform||global.appConfig.isDev?{}:t.displayNone,showActions:t.displayNone,showAbout:t.displayNone}},actionsClick:function(e){var a=e.target,i=a.dataset,r=i.type;r?s[r]():(a.setAttribute("already",!0),this.setState({showActions:this.state.showActions===t.displayNone?{}:t.displayNone,showAbout:t.displayNone}))},aboutClick:function(e){var a=e.target,i=a.dataset,r=i.type;r?s[r]():(a.setAttribute("already",!0),this.setState({showAbout:this.state.showAbout===t.displayNone?{}:t.displayNone,showActions:t.displayNone}))},jumpBbs:function(e){s.jumpBbs()},_bodyClick:function(e){var a=e.target,s=a.getAttribute("already");return s?void a.setAttribute("already",!1):void this.setState({showActions:t.displayNone,showAbout:t.displayNone})},componentDidMount:function(){a.on("BODY_CLICK",this._bodyClick)},componentWillUnmount:function(){a.removeListener("BODY_CLICK",this._bodyClick)},render:function(){var a=this.props.project?t.displayNone:{},s=this.props.lastWinStatus,i="restore"===s.status?"operation-max-icon":"operation-recover-icon";return e.createElement("div",{className:"menubar-wrapper app-drag",style:this.state.show},e.createElement("div",{className:"menubar"},e.createElement("div",{onClick:this.props.showSetting,className:"menubar-item app-no-drag"},"设置"),e.createElement("div",{className:"menubar-item app-no-drag",onClick:this.actionsClick},"动作",e.createElement("div",{className:"menubar-item-sub",style:this.state.showActions},e.createElement("a",{"data-type":"reload",href:"javascript:;",className:"menubar-item-sub-item"},"刷新"),e.createElement("a",{"data-type":"goback",href:"javascript:;",className:"menubar-item-sub-item"},"后退"),e.createElement("a",{"data-type":"goforward",href:"javascript:;",className:"menubar-item-sub-item"},"前进"),e.createElement("a",{style:a,"data-type":"focusAddressBar",href:"javascript:;",className:"menubar-item-sub-item"},"选中地址栏"))),e.createElement("div",{className:"menubar-item app-no-drag",onClick:this.jumpBbs},"开发者社区"),e.createElement("div",{className:"menubar-item app-no-drag",onClick:this.aboutClick},"帮助",e.createElement("div",{className:"menubar-item-sub",style:this.state.showAbout},e.createElement("a",{"data-type":"showChangeLog",href:"javascript:;",className:"menubar-item-sub-item"},"查看更新日志"),e.createElement("a",{"data-type":"showAbout",href:"javascript:;",className:"menubar-item-sub-item"},"关于")))),e.createElement("div",{className:"titlebar"},e.createElement("h1",null,"微信开发者工具 ",global.appVersion," ",global.appConfig.isBeta?"beta":"")),e.createElement("div",{className:"operation-area app-no-drag"},e.createElement("a",{href:"javascript:;",onClick:this.props.appMin,className:"operation-item"},e.createElement("i",{className:"operation-min-icon"})),e.createElement("a",{href:"javascript:;",onClick:this.props.appMax,className:"operation-item"},e.createElement("i",{className:i})),e.createElement("a",{href:"javascript:;",onClick:this.props.appQuit,className:"operation-item"},e.createElement("i",{className:"operation-close-icon"}))))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/popup/popup.js b/app/dist/components/popup/popup.js index 59ac7b9b..9d0473a2 100644 --- a/app/dist/components/popup/popup.js +++ b/app/dist/components/popup/popup.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js'),d=a.createClass({displayName:'Popup',getInitialState:function(){return{show:!1,title:'',desc:'',hasButton:!0}},_tipsMsg:function(e){this.setState(e)},componentDidMount:function(){c.on('SHOW_TIPS_MSG',this._tipsMsg)},componentWillUnmount:function(){c.removeListener('SHOW_TIPS_MSG',this._tipsMsg)},render:function(){return a.createElement('div',{className:'popup',style:this.state.show?b.displayBlock:b.displayNone},a.createElement('div',{className:'popup-hd'},a.createElement('h3',{className:'popup-hd-title'},this.state.title)),a.createElement('div',{className:'popup-bd'},a.createElement('i',{className:'popup-icon-info'}),a.createElement('span',{className:'popup-desc'},this.state.desc)),a.createElement('div',{className:'popup-ft',style:this.state.hasButton?{}:b.displayNone},a.createElement('a',{href:'javascript:;',className:'popup-button-default'},'\u53D6\u6D88'),a.createElement('a',{href:'javascript:;',className:'popup-button-primary'},'\u786E\u5B9A')))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),s=require("../../stores/windowStores.js"),a=e.createClass({displayName:"Popup",getInitialState:function(){return{show:!1,title:"",desc:"",hasButton:!0}},_tipsMsg:function(e){this.setState(e)},componentDidMount:function(){s.on("SHOW_TIPS_MSG",this._tipsMsg)},componentWillUnmount:function(){s.removeListener("SHOW_TIPS_MSG",this._tipsMsg)},render:function(){return e.createElement("div",{className:"popup",style:this.state.show?t.displayBlock:t.displayNone},e.createElement("div",{className:"popup-hd"},e.createElement("h3",{className:"popup-hd-title"},this.state.title)),e.createElement("div",{className:"popup-bd"},e.createElement("i",{className:"popup-icon-info"}),e.createElement("span",{className:"popup-desc"},this.state.desc)),e.createElement("div",{className:"popup-ft",style:this.state.hasButton?{}:t.displayNone},e.createElement("a",{href:"javascript:;",className:"popup-button-default"},"取消"),e.createElement("a",{href:"javascript:;",className:"popup-button-primary"},"确定")))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/select/select.js b/app/dist/components/select/select.js index 75726a66..0c4a4a07 100644 --- a/app/dist/components/select/select.js +++ b/app/dist/components/select/select.js @@ -1 +1 @@ -const React=require('../../lib/react.js'),Dialog=require('../../../dist/components/dialog/dialog'),Select=React.createClass({displayName:'Select',render:function(){return React.createElement('div',{className:'select'},React.createElement('div',{className:'select-avatar-wrapper'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',className:'select-avatar'})),React.createElement('div',{className:'select-hd'},React.createElement('h3',{className:'select-hd-title'},'\u8BF7\u9009\u62E9\u9879\u76EE')),React.createElement('div',{className:'select-bd'},React.createElement('div',{style:{display:'none'}},React.createElement('a',{href:'javascript:;',className:'select-create-item'},React.createElement('div',{className:'select-create-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('div',{className:'select-create-content'},React.createElement('h4',{className:'select-create-title'},'\u65B0\u5EFAweb+\u9879\u76EE'),React.createElement('p',{className:'select-create-desc'},'\u521B\u5EFA\u72C2\u62FD\u7684web+\u9879\u76EE, \u62E5\u6709\u65E0\u6BD4\u725B\u903C\u7684\u529F\u80FD'))),React.createElement('a',{href:'javascript:;',className:'select-create-item'},React.createElement('div',{className:'select-create-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('div',{className:'select-create-content'},React.createElement('h4',{className:'select-create-title'},'\u666E\u901AURL'),React.createElement('p',{className:'select-create-desc'},'\u7528\u4E8E\u67E5\u770B\u7EBF\u4E0A\u7F51\u5740\u666E\u901A\u9879\u76EE, \u6CA1\u90A3\u4E48\u72C2\u62FD, \u4F46\u662F\u4E5F\u5F88\u5C4C')))),React.createElement('div',{className:'select-project-wrapper'},React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u516C\u4F17\u53F7\u540D\u79F0 ')),React.createElement('a',{href:'javascript:;',className:'select-project-item'},React.createElement('div',{className:'select-project-icon'},React.createElement('img',{src:'https://mmrb.github.io/avatar/jf.jpg',alt:''})),React.createElement('p',{className:'select-project-name'},' \u6DFB\u52A0\u9879\u76EE ')))))}});module.exports=Select; \ No newline at end of file +"use strict";var React=require("../../lib/react.js"),Dialog=require("../../../dist/components/dialog/dialog"),Select=React.createClass({displayName:"Select",render:function(){return React.createElement("div",{className:"select"},React.createElement("div",{className:"select-avatar-wrapper"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",className:"select-avatar"})),React.createElement("div",{className:"select-hd"},React.createElement("h3",{className:"select-hd-title"},"请选择项目")),React.createElement("div",{className:"select-bd"},React.createElement("div",{style:{display:"none"}},React.createElement("a",{href:"javascript:;",className:"select-create-item"},React.createElement("div",{className:"select-create-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("div",{className:"select-create-content"},React.createElement("h4",{className:"select-create-title"},"新建web+项目"),React.createElement("p",{className:"select-create-desc"},"创建狂拽的web+项目, 拥有无比牛逼的功能"))),React.createElement("a",{href:"javascript:;",className:"select-create-item"},React.createElement("div",{className:"select-create-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("div",{className:"select-create-content"},React.createElement("h4",{className:"select-create-title"},"普通URL"),React.createElement("p",{className:"select-create-desc"},"用于查看线上网址普通项目, 没那么狂拽, 但是也很屌")))),React.createElement("div",{className:"select-project-wrapper"},React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 公众号名称 ")),React.createElement("a",{href:"javascript:;",className:"select-project-item"},React.createElement("div",{className:"select-project-icon"},React.createElement("img",{src:"https://mmrb.github.io/avatar/jf.jpg",alt:""})),React.createElement("p",{className:"select-project-name"}," 添加项目 ")))))}});module.exports=Select; \ No newline at end of file diff --git a/app/dist/components/setting/setting.js b/app/dist/components/setting/setting.js index a7403f0c..c7b54a73 100644 --- a/app/dist/components/setting/setting.js +++ b/app/dist/components/setting/setting.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../cssStr/cssStr.js'),require('../../config/config.js');const b=require('../../stores/windowStores.js'),c=require('../../actions/windowActions.js');require('../../actions/webviewActions.js'),require('../../common/request/request.js');const d=4,e=a.createClass({displayName:'Setting',getInitialState:function(){let f=b.getSetting();return f?f:{proxyType:'SYSTEM',currentProxyType:'SYSTEM',proxyHost:'',currentProxyHost:'',proxyPort:'',currentProxyPort:''}},changeProxy:function(f){let g=f.currentTarget,h=g.dataset,j=h.type,k;k='USER'===j?`PROXY ${this.state.proxyHost}:${this.state.proxyPort}`:j,this.setState({proxyType:k})},changeProxyHost:function(f){let g=f.target.value,h=this.state.proxyPort||'80',j=`PROXY ${g}:${h}`;this.setState({proxyType:j,proxyHost:g})},changeProxyPort:function(f){let g=f.target.value,h=this.state.proxyHost,j=`PROXY ${h}:${g}`;this.setState({proxyType:j,proxyPort:g})},cancel:function(){this.setState({version:this.state.currentVersion,proxyType:this.state.currentProxyType,proxyPort:this.state.currentProxyPort,proxyHost:this.state.currentProxyHost}),this.props.showSetting()},save:function(){let f=()=>{this.setState({currentProxyType:this.state.proxyType,currentVersion:this.state.version,currentDevice:this.state.device},()=>{c.saveSetting(Object.assign({},this.state)),this.props.showSetting()})};this.state.currentProxyType===this.state.proxyType?f():c.updataProxySetting(this.state.proxyType,()=>{setTimeout(()=>{f()})})},componentDidMount:function(){},render:function(){let f=this.props.show?'setting-show':'setting';'iOS'===this.state.os?'setting-form-select-item setting-form-select-item-selected':'setting-form-select-item','Android'===this.state.os?'setting-form-select-item setting-form-select-item-selected':'setting-form-select-item';let g=Object.assign([],this.state.versionList),h=g.findIndex(k=>{return k===this.state.version});h>=d&&(g.splice(h,1),g.unshift(this.state.version));let j='SYSTEM'!==this.state.proxyType&&'DIRECT'!==this.state.proxyType;return a.createElement('div',{className:f},a.createElement('div',{className:'setting-hd'},a.createElement('h3',{className:'setting-hd-title'},'\u8BBE\u7F6E')),a.createElement('div',{className:'setting-bd'},a.createElement('div',{className:'setting-form-title'},'\u8BBE\u7F6E\u4EE3\u7406'),a.createElement('div',{className:'setting-form-bd'},a.createElement('label',{htmlFor:'noProxy',className:'setting-form-option'},a.createElement('input',{onChange:this.changeProxy,checked:'DIRECT'===this.state.proxyType,'data-type':'DIRECT',type:'radio',name:'proxy',id:'noProxy'}),a.createElement('i',{className:'setting-form-radio'}),'\u4E0D\u4F7F\u7528\u4EFB\u4F55\u4EE3\u7406\uFF0C\u52FE\u9009\u540E\u76F4\u8FDE\u7F51\u7EDC'),a.createElement('label',{htmlFor:'systemProxy',className:'setting-form-option'},a.createElement('input',{onChange:this.changeProxy,checked:'SYSTEM'===this.state.proxyType,'data-type':'SYSTEM',type:'radio',name:'proxy',id:'systemProxy'}),a.createElement('i',{className:'setting-form-radio'}),'\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406'),a.createElement('label',{htmlFor:'manuallyProxy',className:'setting-form-option'},a.createElement('input',{onChange:this.changeProxy,checked:j,'data-type':'USER',type:'radio',name:'proxy',id:'manuallyProxy'}),a.createElement('i',{className:'setting-form-radio'}),'\u624B\u52A8\u8BBE\u7F6E\u4EE3\u7406'),a.createElement('div',{className:'setting-form-proxy-area'},a.createElement('input',{disabled:!j,onChange:this.changeProxyHost,value:this.state.proxyHost,type:'text',className:'setting-form-proxy-address',placeholder:'\u8BF7\u586B\u5199\u4EE3\u7406\u5730\u5740'}),a.createElement('input',{disabled:!j,onChange:this.changeProxyPort,value:this.state.proxyPort,type:'number',className:'setting-form-proxy-port',placeholder:'\u8BF7\u586B\u5199\u7AEF\u53E3'})))),a.createElement('div',{className:'setting-ft'},a.createElement('a',{onClick:this.cancel,href:'javascript:;',className:'setting-button-default'},'\u53D6\u6D88'),a.createElement('a',{onClick:this.save,href:'javascript:;',className:'setting-button-primary'},'\u4FDD\u5B58')))}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../../lib/react.js"),e=(require("../../cssStr/cssStr.js"),require("../../config/config.js"),require("../../stores/windowStores.js")),s=require("../../actions/windowActions.js"),r=(require("../../actions/webviewActions.js"),require("../../common/request/request.js"),4),a=t.createClass({displayName:"Setting",getInitialState:function(){var t=e.getSetting();return t?t:{lazyLoaded:!1,proxyType:"SYSTEM",currentProxyType:"SYSTEM",proxyHost:"",currentProxyHost:"",proxyPort:"",currentProxyPort:""}},changeProxy:function(t){var e=t.currentTarget,s=e.dataset,r=s.type,a=void 0;a="USER"!==r?r:"PROXY "+this.state.proxyHost+":"+this.state.proxyPort,this.setState({proxyType:a})},changeProxyHost:function(t){var e=t.target.value,s=this.state.proxyPort||"80",r="PROXY "+e+":"+s;this.setState({proxyType:r,proxyHost:e})},changeProxyPort:function(t){var e=t.target.value,s=this.state.proxyHost,r="PROXY "+s+":"+e;this.setState({proxyType:r,proxyPort:e})},cancel:function(){this.setState({version:this.state.currentVersion,proxyType:this.state.currentProxyType,proxyPort:this.state.currentProxyPort,proxyHost:this.state.currentProxyHost}),this.props.showSetting()},save:function(){var t=this,e=function(){t.setState({currentProxyType:t.state.proxyType,currentVersion:t.state.version,currentDevice:t.state.device},function(){s.saveSetting(Object.assign({},t.state)),t.props.showSetting()})};this.state.currentProxyType!==this.state.proxyType?s.updataProxySetting(this.state.proxyType,function(){setTimeout(function(){e()})}):e()},componentWillReceiveProps:function(t){t.show&&this.setState({lazyLoaded:!0})},componentDidMount:function(){},render:function(){var e=this;if(!this.state.lazyLoaded)return null;var s=this.props.show?"setting-show":"setting",a=("iOS"===this.state.os?"setting-form-select-item setting-form-select-item-selected":"setting-form-select-item","Android"===this.state.os?"setting-form-select-item setting-form-select-item-selected":"setting-form-select-item",Object.assign([],this.state.versionList)),o=a.findIndex(function(t){return t===e.state.version});o>=r&&(a.splice(o,1),a.unshift(this.state.version));var i="SYSTEM"!==this.state.proxyType&&"DIRECT"!==this.state.proxyType;return t.createElement("div",{className:s},t.createElement("div",{className:"setting-hd"},t.createElement("h3",{className:"setting-hd-title"},"设置")),t.createElement("div",{className:"setting-bd"},t.createElement("div",{className:"setting-form-title"},"设置代理"),t.createElement("div",{className:"setting-form-bd"},t.createElement("label",{htmlFor:"noProxy",className:"setting-form-option"},t.createElement("input",{onChange:this.changeProxy,checked:"DIRECT"===this.state.proxyType,"data-type":"DIRECT",type:"radio",name:"proxy",id:"noProxy"}),t.createElement("i",{className:"setting-form-radio"}),"不使用任何代理,勾选后直连网络"),t.createElement("label",{htmlFor:"systemProxy",className:"setting-form-option"},t.createElement("input",{onChange:this.changeProxy,checked:"SYSTEM"===this.state.proxyType,"data-type":"SYSTEM",type:"radio",name:"proxy",id:"systemProxy"}),t.createElement("i",{className:"setting-form-radio"}),"使用系统代理"),t.createElement("label",{htmlFor:"manuallyProxy",className:"setting-form-option"},t.createElement("input",{onChange:this.changeProxy,checked:i,"data-type":"USER",type:"radio",name:"proxy",id:"manuallyProxy"}),t.createElement("i",{className:"setting-form-radio"}),"手动设置代理"),t.createElement("div",{className:"setting-form-proxy-area"},t.createElement("input",{disabled:!i,onChange:this.changeProxyHost,value:this.state.proxyHost,type:"text",className:"setting-form-proxy-address",placeholder:"请填写代理地址"}),t.createElement("input",{disabled:!i,onChange:this.changeProxyPort,value:this.state.proxyPort,type:"number",className:"setting-form-proxy-port",placeholder:"请填写端口"})))),t.createElement("div",{className:"setting-ft"},t.createElement("a",{onClick:this.cancel,href:"javascript:;",className:"setting-button-default"},"取消"),t.createElement("a",{onClick:this.save,href:"javascript:;",className:"setting-button-primary"},"保存")))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/sidebar/cache.js b/app/dist/components/sidebar/cache.js index 4e93810b..5abc7bd0 100644 --- a/app/dist/components/sidebar/cache.js +++ b/app/dist/components/sidebar/cache.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js'),d=require('../../actions/windowActions.js'),e=require('../../actions/webviewActions.js'),f=require('../../stores/projectStores.js'),g=require('../../config/dirConfig.js'),h=require('glob'),i=require('path'),j=require('fs'),k=a.createClass({displayName:'Music',getInitialState:function(){return{show:!1}},clickOpen:function(){let l=this.state.show;this.setState({show:!l})},clearStorage:function(){let l=c.getUserInfo(),m=l?l.openid:'unknow',n=g.WeappStorage,o=this.props.project,p=o.appid,q=o.appname,r=i.join(n,`${p}_${q}_${m}.data.json`);j.unlink(r,s=>{d.showTipsMsg({msg:'\u6E05\u9664\u6570\u636E\u5B58\u50A8\u6210\u529F'}),e.upASData(p,{})})},clearFileStorage:function(){let l=c.getUserInfo(),m=l?l.openid:'unknow',n=g.WeappFileCache,o=this.props.project,p=o.hash;h('*',{cwd:n},(q,r)=>{let s=`${p}_${m}`;r.forEach(t=>{if(-11&&void 0!==arguments[1]?arguments[1]:"alert";a.showConfirm({content:e,type:r})}function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"success";a.showTipsMsg({msg:e,type:r})}var t=require("../../lib/react.js"),i=require("../../cssStr/cssStr.js"),s=require("../../stores/windowStores.js"),a=require("../../actions/windowActions.js"),o=require("../../actions/webviewActions.js"),n=require("../../stores/projectStores.js"),c=require("../../weapp/utils/projectManager.js"),l=require("../../config/dirConfig.js"),p=require("../../common/request/request.js"),u=require("../../common/log/log.js"),d=require("glob"),h=require("path"),m=require("fs"),f=require("../../config/urlConfig.js"),g=f.cleanUserAuth,v=require("../../config/errcodeConfig.js"),j=v.DEV_PLATFORM_INVALID_EXT_APPID,S=v.DEV_PLATFORM_EXT_APPID_NOT_AUTH,A=t.createClass({displayName:"Cache",getInitialState:function(){return{show:!1}},clickOpen:function(){var e=this.state.show;this.setState({show:!e})},clearStorage:function(){var e=s.getUserInfo(),t=e?e.openid:"unknow",i=l.WeappStorage,a=this.props.project,n=a.appid,c=a.appname,p=h.join(i,n+"_"+c+"_"+t+".data.json");m.unlink(p,function(e){r("清除数据存储成功"),o.upASData(n,{})})},clearFileStorage:function(){var e=s.getUserInfo(),t=e?e.openid:"unknow",i=l.WeappFileCache,a=this.props.project,o=a.hash;d("*",{cwd:i},function(e,s){var a=""+o+t;s.forEach(function(e){if(e.indexOf(a)>-1){var r=h.join(i,e);m.unlink(r)}}),r("清除文件存储成功")})},clearSdkUserAuthStorage:function(){n.setUserAuthPemissionStorage(this.props.project,{}),r("清除授权数据成功")},clearCloudAuth:function(){var t=this.props.project,i=c.getExtAppId(t);p({method:"post",url:g+"?appid="+t.appid+"&ext_appid="+i+"&platform="+(t.platform?1:0),needToken:1},function(t,i,s){var a="清除工具及手机授权数据失败";if(t)u.info("cache.js clearSdkUserAuthStorage error: "+t.toString());else if(s=JSON.parse(s),s.baseresponse){var o=s.baseresponse.errcode;if(0==o)return void r("清除工具及手机授权数据成功");if(o==j)return void r(a+",无效的 extAppID");if(o==S)return void r(a+",extAppID 未授权");a=a+",errcode:"+s.baseresponse.errcode}e(a)})},render:function(){var e=this.state.show?i.displayBlock:i.displayNone;return t.createElement("div",{onClick:this.clickOpen,title:"清除缓存",className:"sidebar-item"},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-cache"}),t.createElement("label",{className:"sidebar-item-label"},"缓存"),t.createElement("div",{className:"cache-card",style:e},t.createElement("div",{className:"cache-card-item",onClick:this.clearStorage},t.createElement("p",null,"清除数据存储")),t.createElement("div",{className:"cache-card-item",onClick:this.clearFileStorage},t.createElement("p",null,"清除文件存储")),t.createElement("div",{className:"cache-card-item",onClick:this.clearCloudAuth},t.createElement("p",null,"清除授权数据"))))}});_exports=A}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/sidebar/music.js b/app/dist/components/sidebar/music.js index cd523957..07e15fce 100644 --- a/app/dist/components/sidebar/music.js +++ b/app/dist/components/sidebar/music.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js'),d=require('../../stores/projectStores.js');require('../../actions/windowActions.js');const f=require('../../actions/webviewActions.js'),g=2,h=3,i=4,j=' ',k=a.createClass({displayName:'Music',getInitialState:function(){return{showPlayer:!1,musicState:1,title:j}},_initMusic:function(){let l=document.createElement('audio');document.body.appendChild(l),this.audio=l,l.addEventListener('play',()=>{this.setState({musicState:g}),f.postMessageToAS({eventName:'onMusicPlay',type:'ON_MUSIC_EVENT',data:{dataUrl:l.src}})}),l.addEventListener('pause',()=>{this.audio&&!this.audio.ended&&(!this.audio.error&&this.setState({musicState:h}),f.postMessageToAS({eventName:'onMusicPause',type:'ON_MUSIC_EVENT',data:{dataUrl:l.src}}))}),l.addEventListener('ended',()=>{this.setState({musicState:i}),f.postMessageToAS({eventName:'onMusicEnd',type:'ON_MUSIC_EVENT',data:{dataUrl:l.src}})}),l.addEventListener('error',m=>{this.setState({musicState:5}),f.postMessageToAS({eventName:'onMusicError',type:'ON_MUSIC_EVENT',data:{dataUrl:l.src,errMsg:'Error: '+l.error.code}})})},_play:function(l){this.audio||this._initMusic();let m=this.audio;l.dataUrl?(m.src=l.dataUrl,m.play(),m.currentTime=0):m.src&&m.play(),this.setState({title:l.title||j})},_resume:function(l){let m=this.audio;m.paused&&m.play()},_pause:function(l){let m=this.audio;m.paused||m.pause()},_seek:function(l){let m=this.audio;m.paused||(m.currentTime=1*l.position)},_stop:function(){this.audio&&(this.audio.remove(),this.audio=void 0),this.setState({musicState:i})},_getMusicPlayState:function(l){let n,m=this.audio;if(!m)n={status:2};else try{n={dataUrl:m.src,duration:Math.floor(m.duration),currentPosition:Math.floor(m.currentTime),status:m.paused?0:1,downloadPercent:Math.round(100*m.buffered.end(0)/m.duration)}}catch(o){n={status:2}}return l&&l(n),n},_operateMusicPlayer:function(l){'play'==l.operationType?(this._play(l),this.setState({showPlayer:!0})):'resume'==l.operationType?this._resume(l):'pause'==l.operationType?this._pause(l):'seek'==l.operationType?this._seek(l):'stop'==l.operationType&&this._stop(l)},componentDidMount:function(){c.on('GET_MUSIC_PLAY_STATE',this._getMusicPlayState),c.on('BODY_CLICK',this._bodyClick),c.on('OPERATE_MUSIC_PLAY',this._operateMusicPlayer),d.on('RESTART_PROJECT',this._stop),d.on('CLOSE_PROJECT',this._stop)},componentWillUnmount:function(){c.removeListener('GET_MUSIC_PLAY_STATE',this._getMusicPlayState),c.removeListener('BODY_CLICK',this._bodyClick),c.removeListener('OPERATE_MUSIC_PLAY',this._operateMusicPlayer),d.removeListener('RESTART_PROJECT',this._stop),d.removeListener('CLOSE_PROJECT',this._stop),this.audio&&this.audio.remove()},_bodyClick:function(l){this.setState({showPlayer:!1})},stop:function(l){this._stop()},_showOrHide:function(l){this.setState({showPlayer:!this.state.showPlayer}),l.stopPropagation(),l.preventDefault()},_playOrPause:function(l){this.state.musicState==h?this._resume():this._pause(),l.stopPropagation(),l.preventDefault()},render:function(){let l=this.state.musicState==g||this.state.musicState==h?{}:b.displayNone,m=this.state.showPlayer?{}:b.displayNone,n=this.state.musicState==h?{}:b.displayNone,o=this.state.musicState==g?{}:b.displayNone;return a.createElement('div',{style:l,title:`音乐控件`,onClick:this._showOrHide,className:'sidebar-item'},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-music'}),a.createElement('label',{className:'sidebar-item-label'},'\u97F3\u4E50'),a.createElement('div',{className:'music-card',style:m,onClick:this._playOrPause},a.createElement('div',{className:'music-card-main'},a.createElement('p',{className:'music-card-status'},'\u6B63\u5728\u64AD\u653E'),a.createElement('p',{className:'music-card-name'},this.state.title)),a.createElement('div',{className:'music-card-opr'},a.createElement('i',{className:'music-card-play-icon',style:n}),a.createElement('i',{className:'music-card-pause-icon',style:o}))))}});_exports=k}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),s=require("../../stores/windowStores.js"),a=require("../../stores/projectStores.js"),i=(require("../../actions/windowActions.js"),require("../../actions/webviewActions.js")),o=1,r=2,n=3,c=4,u=5,d=" ",l=e.createClass({displayName:"Music",getInitialState:function(){return{showPlayer:!1,musicState:o,title:d}},_initMusic:function(){var e=this,t=document.createElement("audio");document.body.appendChild(t),this.audio=t,t.addEventListener("play",function(){e.setState({musicState:r}),i.postMessageToAS({eventName:"onMusicPlay",type:"ON_MUSIC_EVENT",data:{dataUrl:t.src}})}),t.addEventListener("pause",function(){e.audio&&!e.audio.ended&&(e.audio.error||e.setState({musicState:n}),i.postMessageToAS({eventName:"onMusicPause",type:"ON_MUSIC_EVENT",data:{dataUrl:t.src}}))}),t.addEventListener("ended",function(){e.setState({musicState:c}),i.postMessageToAS({eventName:"onMusicEnd",type:"ON_MUSIC_EVENT",data:{dataUrl:t.src}})}),t.addEventListener("error",function(s){e.setState({musicState:u}),i.postMessageToAS({eventName:"onMusicError",type:"ON_MUSIC_EVENT",data:{dataUrl:t.src,errMsg:"Error: "+t.error.code}})})},_play:function(e){this.audio||this._initMusic();var t=this.audio;e.dataUrl&&e.dataUrl!==t.src?(t.src=e.dataUrl,t.play(),t.currentTime=0):t.src&&t.play(),this.setState({title:e.title||d})},_resume:function(e){var t=this.audio;t.paused&&t.play()},_pause:function(e){var t=this.audio;t.paused||t.pause()},_seek:function(e){var t=this.audio;t.paused||(t.currentTime=1*e.position)},_stop:function(){if(this.audio){var e=this.audio.src;setTimeout(function(){i.postMessageToAS({eventName:"onMusicEnd",type:"ON_MUSIC_EVENT",data:{dataUrl:e}})}),this.audio.remove(),this.audio=void 0}this.setState({musicState:c})},_getMusicPlayState:function(e){var t=this.audio,s=void 0;if(t)try{s={dataUrl:t.src,duration:Math.floor(t.duration),currentPosition:Math.floor(t.currentTime),status:t.paused?0:1,downloadPercent:Math.round(100*t.buffered.end(0)/t.duration)}}catch(e){s={status:2}}else s={status:2};return e&&e(s),s},_operateMusicPlayer:function(e){"play"==e.operationType?(this._play(e),this.setState({showPlayer:!0})):"resume"==e.operationType?this._resume(e):"pause"==e.operationType?this._pause(e):"seek"==e.operationType?this._seek(e):"stop"==e.operationType&&this._stop(e)},componentDidMount:function(){s.on("GET_MUSIC_PLAY_STATE",this._getMusicPlayState),s.on("BODY_CLICK",this._bodyClick),s.on("OPERATE_MUSIC_PLAY",this._operateMusicPlayer),a.on("RESTART_PROJECT",this._stop),a.on("CLOSE_PROJECT",this._stop)},componentWillUnmount:function(){s.removeListener("GET_MUSIC_PLAY_STATE",this._getMusicPlayState),s.removeListener("BODY_CLICK",this._bodyClick),s.removeListener("OPERATE_MUSIC_PLAY",this._operateMusicPlayer),a.removeListener("RESTART_PROJECT",this._stop),a.removeListener("CLOSE_PROJECT",this._stop),this.audio&&this.audio.remove()},_bodyClick:function(e){this.setState({showPlayer:!1})},stop:function(e){this._stop()},_showOrHide:function(e){this.setState({showPlayer:!this.state.showPlayer}),e.stopPropagation(),e.preventDefault()},_playOrPause:function(e){this.state.musicState==n?this._resume():this._pause(),e.stopPropagation(),e.preventDefault()},render:function(){var s=this.state.musicState==r||this.state.musicState==n?{}:t.displayNone,a=this.state.showPlayer?{}:t.displayNone,i=this.state.musicState==n?{}:t.displayNone,o=this.state.musicState==r?{}:t.displayNone;return e.createElement("div",{style:s,title:"音乐控件",onClick:this._showOrHide,className:"sidebar-item"},e.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-music"}),e.createElement("label",{className:"sidebar-item-label"},"音乐"),e.createElement("div",{className:"music-card",style:a,onClick:this._playOrPause},e.createElement("div",{className:"music-card-main"},e.createElement("p",{className:"music-card-status"},"正在播放"),e.createElement("p",{className:"music-card-name"},this.state.title)),e.createElement("div",{className:"music-card-opr"},e.createElement("i",{className:"music-card-play-icon",style:i}),e.createElement("i",{className:"music-card-pause-icon",style:o}))))}});_exports=l}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/sidebar/sidebar.js b/app/dist/components/sidebar/sidebar.js index bb795fbc..301a82c8 100644 --- a/app/dist/components/sidebar/sidebar.js +++ b/app/dist/components/sidebar/sidebar.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../actions/webviewActions.js'),d=require('../../actions/windowActions.js'),e=require('../../actions/projectActions.js'),f=require('../../stores/projectStores.js');require('../../weapp/utils/projectManager.js');const g=require('./music.js'),h=require('./cache.js'),i=require('../../utils/newReport.js');var j;const k=a.createClass({displayName:'Sidebar',getInitialState:function(){return this.props.project&&i(`project_debug`,this.props.project.appid),{inForeground:!0}},_restart:function(){this.setState({inForeground:!0})},componentDidMount:function(){f.on('RESTART_PROJECT',this._restart)},componentWillUnmount:function(){f.removeListener('RESTART_PROJECT',this._restart)},handleOnclick:function(l){let m=l.currentTarget,n=m.dataset,o=n.type;this.props.optProject(o),i(`project_${o}`,this.props.project.appid)},handleAppTerminate:function(l){e.close(),i(`project_${close}`,this.props.project.appid)},handleAppRestart:function(l){clearTimeout(j),j=setTimeout(()=>{e.restart(this.props.project);let m='edit'===this.props.show?`project_compile`:`project_restart`;i(m,this.props.project.appid)},200)},handleAppEnterBackground:function(l){this.setState({inForeground:!1}),d.appEnterBackground(),c.postMessageToAS({eventName:'onAppEnterBackground',type:'ON_APPLIFECYCLE_EVENT'}),i(`project_background`,this.props.project.appid)},handleAppEnterForeground:function(l){this.setState({inForeground:!0}),d.appEnterForeground(),c.postMessageToAS({eventName:'onAppEnterForeground',type:'ON_APPLIFECYCLE_EVENT'})},showCustom:function(){let l=this.props.project;d.showCustomPreview({project:l,callback:m=>{f.setProjectInitPath(l.hash,{enable:m.enable,page:m.page,query:m.query}),this.handleAppRestart()}})},render:function(){let l={detail:'sidebar-item',debug:'sidebar-item',edit:'sidebar-item',mobile:'sidebar-item'},m=this.props.show;if(l[m]='sidebar-item sidebar-item-active',!this.props.project)return a.createElement('div',{className:'sidebar'},a.createElement('div',{'data-type':'debug',onClick:this.handleOnclick,className:l.debug},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-debug'}),a.createElement('label',{className:'sidebar-item-label'},'\u8C03\u8BD5')),a.createElement('div',{className:'sidebar-item sidebar-item-sep'}),a.createElement('div',{className:'sidebar-item-toolbar'},a.createElement('div',{title:'\u8FD4\u56DE','data-type':'appTerminate',onClick:this.handleAppTerminate,className:'sidebar-item'},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-close'}),a.createElement('label',{className:'sidebar-item-label'},'\u8FD4\u56DE'))));let n=this.state.inForeground?{}:b.displayNone,o=this.state.inForeground?b.displayNone:{},p='debug'===m||'edit'===m?{}:b.displayNone,q='debug'===m||'edit'===m?{borderTop:'none'}:{};return a.createElement('div',{className:'sidebar'},a.createElement('div',{'data-type':'edit',onClick:this.handleOnclick,className:l.edit},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-editor'}),a.createElement('label',{className:'sidebar-item-label'},'\u7F16\u8F91')),a.createElement('div',{'data-type':'debug',onClick:this.handleOnclick,className:l.debug},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-debug'}),a.createElement('label',{className:'sidebar-item-label'},'\u8C03\u8BD5')),a.createElement('div',{'data-type':'detail',onClick:this.handleOnclick,className:l.detail},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-detail'}),a.createElement('label',{className:'sidebar-item-label'},'\u9879\u76EE')),a.createElement('div',{className:'sidebar-item sidebar-item-sep'}),a.createElement('div',{className:'sidebar-item-toolbar',style:p},a.createElement(g,null),a.createElement('div',{title:`${'darwin'===process.platform?'Command':'Ctrl'} + b`,onClick:this.handleAppRestart,className:'sidebar-item',style:{paddingBottom:0}},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-reset'})),a.createElement('div',{title:`${'darwin'===process.platform?'Command':'Ctrl'} + b`,onClick:this.showCustom,className:'sidebar-item',style:{paddingTop:0}},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-custom',style:{marginRight:5}}),a.createElement('label',{className:'sidebar-item-label'},'\u7F16\u8BD1')),a.createElement('div',{title:'\u5207\u6362\u5230\u540E\u53F0','data-type':'appEnterBackground',onClick:this.handleAppEnterBackground,style:n,className:'sidebar-item'},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-backward'}),a.createElement('label',{className:'sidebar-item-label'},'\u540E\u53F0')),a.createElement('div',{title:'\u5207\u6362\u5230\u524D\u53F0','data-type':'appEnterForeground',onClick:this.handleAppEnterForeground,style:o,className:'sidebar-item'},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-forward'}),a.createElement('label',{className:'sidebar-item-label'},'\u524D\u53F0')),a.createElement(h,{project:this.props.project})),a.createElement('div',{className:'sidebar-item-toolbar',style:q},a.createElement('div',{title:'\u5173\u95ED\u9879\u76EE','data-type':'appTerminate',onClick:this.handleAppTerminate,className:'sidebar-item'},a.createElement('i',{className:'sidebar-item-icon sidebar-item-icon-close'}),a.createElement('label',{className:'sidebar-item-label'},'\u5173\u95ED'))))}});_exports=k}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e,t=require("../../lib/react.js"),a=require("../../cssStr/cssStr.js"),i=require("../../actions/webviewActions.js"),r=require("../../actions/windowActions.js"),s=require("../../stores/windowStores.js"),n=require("../../actions/projectActions.js"),c=require("../../stores/projectStores.js"),o=(require("../../weapp/utils/projectManager.js"),require("../../config/sceneConfig.js")),l=o.defaultScene,d=require("./music.js"),m=require("./cache.js"),p=require("url"),b=require("querystring"),u=require("../../utils/newReport.js"),E=t.createClass({displayName:"Sidebar",getInitialState:function(){return this.props.project&&u("project_debug",this.props.project.appid),{inForeground:!0}},_restart:function(){this.setState({inForeground:!0})},_appEnterBackground:function(){this.setState({inForeground:!1})},_appEnterForeground:function(){this.setState({inForeground:!0})},componentDidMount:function(){c.on("RESTART_PROJECT",this._restart),s.on("APP_ENTER_BACKGROUND",this._appEnterBackground),s.on("APP_ENTER_FOREGROUND",this._appEnterForeground)},componentWillUnmount:function(){c.removeListener("RESTART_PROJECT",this._restart),s.removeListener("APP_ENTER_BACKGROUND",this._appEnterBackground),s.removeListener("APP_ENTER_FOREGROUND",this._appEnterForeground)},handleOnclick:function(e){var t=e.currentTarget,a=t.dataset,i=a.type;this.props.optProject(i),u("project_"+i,this.props.project.appid)},handleAppTerminate:function(e){n.close(),u("project_"+close,this.props.project.appid)},handleAppRestart:function(t){var a=this;clearTimeout(e),e=setTimeout(function(){n.restart(a.props.project);"edit"===a.props.show?"project_compile":"project_restart"},200)},handleAppEnterBackground:function(e){r.appEnterBackground(),i.postMessageToAS({eventName:"onAppEnterBackground",type:"ON_APPLIFECYCLE_EVENT"}),u("project_background",this.props.project.appid)},handleAppEnterForeground:function(e){var t=c.getCurrentProject(),a=t.initPath.enable&&t.initPath.scene||l;r.appEnterForeground({scene:a});var n=s.getCurrentWebviewUrl(),o=p.parse(n),d=o.pathname.replace(/^\//,"");i.postMessageToAS({eventName:"onAppEnterForeground",data:{scene:a,path:d||"",query:b.parse(o.query||"")},type:"ON_APPLIFECYCLE_EVENT"})},showCustom:function(){var e=this,t=this.props.project;r.showCustomPreview({project:t,callback:function(a){c.setProjectInitPath(t.hash,{enable:a.enable,page:a.page,scene:a.scene,query:a.query,referData:a.referData,appid:a.appid}),e.handleAppRestart()}})},render:function(){var e={detail:"sidebar-item",debug:"sidebar-item",edit:"sidebar-item",mobile:"sidebar-item"},i=this.props.show;if(e[i]="sidebar-item sidebar-item-active",!this.props.project)return t.createElement("div",{className:"sidebar"},t.createElement("div",{"data-type":"debug",onClick:this.handleOnclick,className:e.debug},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-debug"}),t.createElement("label",{className:"sidebar-item-label"},"调试")),t.createElement("div",{className:"sidebar-item sidebar-item-sep"}),t.createElement("div",{className:"sidebar-item-toolbar"},t.createElement("div",{title:"返回","data-type":"appTerminate",onClick:this.handleAppTerminate,className:"sidebar-item"},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-close"}),t.createElement("label",{className:"sidebar-item-label"},"返回"))));var r=this.state.inForeground?{}:a.displayNone,s=this.state.inForeground?a.displayNone:{},n="debug"===i||"edit"===i?{}:a.displayNone,c="debug"===i||"edit"===i?{borderTop:"none"}:{};return t.createElement("div",{className:"sidebar"},t.createElement("div",{"data-type":"edit",onClick:this.handleOnclick,className:e.edit},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-editor"}),t.createElement("label",{className:"sidebar-item-label"},"编辑")),t.createElement("div",{"data-type":"debug",onClick:this.handleOnclick,className:e.debug},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-debug"}),t.createElement("label",{className:"sidebar-item-label"},"调试")),t.createElement("div",{"data-type":"detail",onClick:this.handleOnclick,className:e.detail},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-detail"}),t.createElement("label",{className:"sidebar-item-label"},"项目")),t.createElement("div",{className:"sidebar-item sidebar-item-sep"}),t.createElement("div",{className:"sidebar-item-toolbar",style:n},t.createElement(d,null),t.createElement("div",{title:("darwin"===process.platform?"Command":"Ctrl")+" + b",onClick:this.handleAppRestart,className:"sidebar-item",style:{paddingBottom:0}},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-reset"})),t.createElement("div",{title:("darwin"===process.platform?"Command":"Ctrl")+" + b",onClick:this.showCustom,className:"sidebar-item",style:{paddingTop:0,paddingBottom:5}},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-custom",style:{marginRight:5}})),t.createElement("div",{onClick:this.handleAppRestart,className:"sidebar-item",style:{paddingTop:0,cursor:"default"}},t.createElement("label",{className:"sidebar-item-label",style:{cursor:"default"}},"编译")),t.createElement("div",{title:"切换到后台","data-type":"appEnterBackground",onClick:this.handleAppEnterBackground,style:r,className:"sidebar-item"},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-backward"}),t.createElement("label",{className:"sidebar-item-label"},"后台")),t.createElement("div",{title:"切换到前台","data-type":"appEnterForeground",onClick:this.handleAppEnterForeground,style:s,className:"sidebar-item"},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-forward"}),t.createElement("label",{className:"sidebar-item-label"},"前台")),t.createElement(m,{project:this.props.project})),t.createElement("div",{className:"sidebar-item-toolbar",style:c},t.createElement("div",{title:"关闭项目","data-type":"appTerminate",onClick:this.handleAppTerminate,className:"sidebar-item"},t.createElement("i",{className:"sidebar-item-icon sidebar-item-icon-close"}),t.createElement("label",{className:"sidebar-item-label"},"关闭"))))}});_exports=E}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/actions/simulatorActions.js b/app/dist/components/simulator/actions/simulatorActions.js index 79ddb374..f8ef18b7 100644 --- a/app/dist/components/simulator/actions/simulatorActions.js +++ b/app/dist/components/simulator/actions/simulatorActions.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../actions/webviewActions.js'),b=require('../../../actions/windowActions.js');require('../../../common/log/log.js');const c={S_UP_WEBVIEW_STATUS:function(e,f,g){let h=g.currentWebviewID;e===h&&b.changeUrl(f.url,e),a.upWebviewStatus(e,f)},S_EXEC_JSSDK:function(e,f,g){a.execWebviewJSSDK(e,f)},S_OPEN_DEVTOOLS:function(e,f){b.openWebviewDevtools(e,f.webview,f.webviewOffset)},S_CLOSE_DEVTOOLS:function(e){b.closeWebviewDevtools(e)},S_GET_SNAPSHOT:function(e,f){a.setWebviewSnapshot(e,f.dataURI)},S_GET_A8KEY:function(e,f,g){a.getA8keyWebview(e,f)},S_POSTMSG_TO_AS:function(e,f,g){a.postMessageToAS(f)},S_CLEAN_WEBVIEW:function(e,f,g){a.cleanWebview(e)},S_SET_ACTION:function(e,f,g){a.setWebviewAction(e,f)},S_CHANGE_CURRENT_WEBVIEW:function(e,f){a.changeWebviewID(f.webviewID),b.changeWebviewID(f.webviewID)},S_DELETE_WEBVIEW:function(e,f){a.deleteWebviewID(f.webviewID)},S_SET_WEBVIEW_INFO:function(e,f,g){a.setWebviewInfo(f),b.setWebviewInfo(f)},S_AUTHORIZE_SDK:function(e,f,g){a.authorizeSdk(e,f.authorizeSdkId,f.url,f.appname,f.scope_list)},S_AUTHORIZE_SDK_RETURN:function(e,f,g){a.authorizeSdkReturn(f.authorizeSdkId,f.scope_list,f.isAllowed)},S_SET_WEBVIEW_MARGIN:function(e,f,g){a.setInterfaceFromPageFrame(e,f)},S_START_DEBUGGEE:function(e,f,g){b.startDebuggee(e,f)}};_exports=(d,e,f,g)=>{c[d]&&c[d](e,f,g)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,n,i){var t=i.currentWebviewID;e===t&&b.changeUrl(n.url,e),r.upWebviewStatus(e,n)}function n(e,n,i){r.execWebviewJSSDK(e,n)}function i(e,n){b.openWebviewDevtools(e,n.webview,n.webviewOffset)}function t(e){b.closeWebviewDevtools(e)}function o(e,n){r.setWebviewSnapshot(e,n.dataURI)}function _(e,n,i){r.getA8keyWebview(e,n)}function S(e,n,i){r.postMessageToAS(n)}function E(e,n,i){r.cleanWebview(e)}function c(e,n,i){r.setWebviewAction(e,n)}function s(e,n){r.changeWebviewID(n.webviewID),b.changeWebviewID(n.webviewID)}function w(e,n){r.deleteWebviewID(n.webviewID)}function u(e,n,i){r.setWebviewInfo(n),b.setWebviewInfo(n)}function W(e,n,i){r.setInterfaceFromPageFrame(e,n)}function v(e,n,i){b.startDebuggee(e,n)}var r=require("../../../actions/webviewActions.js"),b=require("../../../actions/windowActions.js"),f=(require("../../../common/log/log.js"),{S_UP_WEBVIEW_STATUS:e,S_EXEC_JSSDK:n,S_OPEN_DEVTOOLS:i,S_CLOSE_DEVTOOLS:t,S_GET_SNAPSHOT:o,S_GET_A8KEY:_,S_POSTMSG_TO_AS:S,S_CLEAN_WEBVIEW:E,S_SET_ACTION:c,S_CHANGE_CURRENT_WEBVIEW:s,S_DELETE_WEBVIEW:w,S_SET_WEBVIEW_INFO:u,S_SET_WEBVIEW_MARGIN:W,S_START_DEBUGGEE:v});_exports=function(e,n,i,t){f[e]&&f[e](n,i,t)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/console/consoleHandler.js b/app/dist/components/simulator/console/consoleHandler.js index f82a859f..f3a0665a 100644 --- a/app/dist/components/simulator/console/consoleHandler.js +++ b/app/dist/components/simulator/console/consoleHandler.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const{WXML_LOSE_ERROR:a,COMPONENT_FOR_DEVELOPER:b,WXML_ERROR:c,PAGE_DEFINE_ERROR:d,WXML_RUNTIME_ERROR:e,WEBVIEW_ERROR:f,WEBVIEW_NETWORK_ERROR:g}=require('../../../config/config.js'),h=require('../../../actions/windowActions.js');_exports=i=>{let j=i.message;0===j.indexOf(b)?h.showWeappError(b,i):0===j.indexOf(c)?h.showWeappError(c,j):0===j.indexOf(d)?h.showWeappError(d,j):0===j.indexOf(e)?h.showWeappError(e,i):0===j.indexOf(a)?h.showWeappError(a,i):0===j.indexOf(g)?h.showWeappError(g,i):h.showWeappError(f,i)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=require("../../../config/config.js"),E=r.WXML_LOSE_ERROR,o=r.COMPONENT_FOR_DEVELOPER,e=r.WXML_ERROR,R=r.PAGE_DEFINE_ERROR,i=r.WXML_RUNTIME_ERROR,s=r.WEBVIEW_ERROR,p=r.WEBVIEW_NETWORK_ERROR,O=require("../../../actions/windowActions.js");_exports=function(r){var n=r.message;0===n.indexOf(o)?O.showWeappError(o,r):0===n.indexOf(e)?O.showWeappError(e,n):0===n.indexOf(R)?O.showWeappError(R,n):0===n.indexOf(i)?O.showWeappError(i,r):0===n.indexOf(E)?O.showWeappError(E,r):0===n.indexOf(p)?O.showWeappError(p,r):O.showWeappError(s,r)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/controller.js b/app/dist/components/simulator/controller.js index 1a3ecca4..6ca61c0e 100644 --- a/app/dist/components/simulator/controller.js +++ b/app/dist/components/simulator/controller.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(I){m.showTipsMsg({msg:I,type:'error'})}require('fs');const b=require('../../lib/react.js'),c=require('../../lib/react-dom.js'),d=require('./toolbar/toolbar.js'),f=require('./webviewtab.js'),g=require('./webviewWeappShare.js'),h=require('querystring'),j=require('./webview.js'),k=require('../../weapp/utils/tools.js'),l=require('../../stores/webviewStores.js');require('../../stores/windowStores.js');const m=require('../../actions/windowActions.js');require('../../actions/webviewActions.js'),require('../../stores/projectStores.js');const n=require('../../cssStr/cssStr.js'),o=require('../../common/log/log.js'),p=require('../../common/request/request.js'),q=require('./actions/simulatorActions.js'),r=require('./webviewBackwardMask.js'),s=require('./payment/webviewpayment.js');require('../../utils/tools.js');const t=require('url'),u=require('../../config/urlConfig.js'),v=require('../../weapp/utils/projectManager.js'),w=require('./webview/modal.js'),x=require('./webview/toast.js'),y=require('./webview/picker'),z=require('./webview/actionSheet.js'),A=require('./webview/confirm.js'),B=require('./webview/previewImage.js'),{default_tabheight:C,default_backgroundColor:D}=require('../../config/weappConfig.js');var E=0,F=0,G;const H=b.createClass({displayName:'Controller',getInitialState:function(){let I='app/html/about.html',J={},K={window:{}},L={},M=l.getOffset(),N=!1,O=this.props.project;if(O){try{I=v.getAppEntranceSync(O),K=v.getAppJSONSync(O),J=K.tabBar||{};let Q=K.pages||[];L=v.getPageJSONSync(O,Q[0])}catch(Q){I=''}let P=this.getTabPageIndex(I,J);N=!!(-1{let S=this.setAnimateImg(!1,{dataURI:R}),T=Q.offsetWidth,U=Object.assign({},this.state.list);for(var V in O)delete U[O[V]];this.setState({list:U,currentWebviewID:N},()=>{S.addEventListener('transitionend',()=>{global.contentDocumentBody.removeChild(S);let W=c.findDOMNode(this.refs[`webview${N}`]),X=W.querySelector(`.webviewbody${N}`);if(this.props.project){let Z=J.src,$=k.getBaseURL(this.props.project);0===Z.indexOf($)&&this.postAppRoute(X.src,this.state.currentWebviewID,'navigateBack')}for(var Y in O)this.getSimulatorActions('S_DELETE_WEBVIEW',null,{webviewID:O[Y]});this.getSimulatorActions('S_CHANGE_CURRENT_WEBVIEW',null,{webviewID:N})}),S.style.transform=`translate3d(${T}px,0,0)`})})}},_getOpenWebviewNum:function(){let I=this.state.list,J=1;for(let K in I)I.hasOwnProperty(K)&&I[K]&&!I[K].isTabbar&&J++;return J},_openNewWebview:function(I,J=()=>{}){let{webviewID:K,url:L,isMap:M,type:N}=I;if(!I.isMap&&5{R.parentNode.removeChild(R),E++;let S=Object.assign({},this.state.list);S[E]={prevWebviewID:K,href:L,pageJSON:P,isMap:M,type:N},this.setState({currentWebviewID:E,list:S}),this.getSimulatorActions('S_CHANGE_CURRENT_WEBVIEW',null,{webviewID:E}),J(null,E)})},_openNewWindowWebview:function(I){let J=I.url,K=this.getRouteName(J),L={},M=this.props.project;try{L=v.getPageJSONSync(M,J)}catch(U){}L.backgroundColor||'#ffffff';let N=k.getBaseURL(M);J=t.resolve(N,`${J}.html`);let O=Object.assign({},this.state.list),P={},Q={};for(let U in O){let V=O[U];V.isTabbar&&(V.isTabbar===K&&(Q.currentWebviewID=U),P[U]=V)}Q.list=P;let R=!1;void 0===Q.currentWebviewID&&(Q.currentWebviewID=++E,Q.list[E]={showUrl:!1,hideBack:!0,isTabbar:K,href:J,pageJSON:L,type:'switchTab'},R=!0);let S=Q.currentWebviewID,T=Q.currentWebviewID!=this.state.currentWebviewID;return this.setState(Q,()=>{setTimeout(()=>{!R&&T&&this.postAppRoute(J,S,'switchTab'),this.getSimulatorActions('S_CHANGE_CURRENT_WEBVIEW',null,{webviewID:S})},0)}),S},_changeWebviewID:function(I){this.setState({currentWebviewID:I})},_setWebviewInfo:function(I){let J=this.state.tabBar;J.list||[],I.height&&this.setState({offset:{height:I.height,width:I.width,dpr:I.dpr}})},_setWebviewSnapshot:function(I,J){let K=Object.assign({},this.state.list);K[I].dataURI=J,this.setState({list:K})},_postMessageToAllWebview:function(I){let J=I.webviewIds||[],K=0===J.length;setTimeout(()=>{I.act='sendMsgFromAppService';let L;L=K?Object.keys(this.state.list):J,L.forEach(M=>{this.getSimulatorActions('S_SET_ACTION',M,I)})},17)},_getShortUrl:function(I){let J='';if(this.props.project){let K=this.props.project;J=k.getBaseURL(K)}return I.replace(J,'')},navigateTo:function(I,J){let K=I.args.url,L=this.getTabPageIndex(this.getRouteName(K));if(0<=L)return void J({errMsg:'navigateTo:fail can not navigate to tabBar page'});let M=this.state.currentWebviewID;this._openNewWebview({webviewID:M,url:K,type:'navigateTo'},(N,O)=>{null===N?J({errMsg:'navigateTo:ok',url:this._getShortUrl(K),webviewId:O}):J({errMsg:'navigateTo:fail webview count limit exceed.'})})},redirectTo:function(I,J){let K=I.args.url,L=this.getTabPageIndex(this.getRouteName(K));if(0<=L)return void J({errMsg:'redirectTo:fail can not redirect to tabBar page'});let M={};try{M=v.getPageJSONSync(this.props.project,K)}catch(T){}let N=this.state.currentWebviewID,O=Object.assign({},this.state.list),P=O[N],Q=P.isTabbar,R=P.prevWebviewID;delete O[N],E++,O[E]={pageJSON:M,prevWebviewID:R,href:K,hideBack:Q||N===this.state.topWebviewID,type:'redirectTo'};let S={currentWebviewID:E};1==Object.keys(O).length&&(S.topWebviewID=E),Q?(S.list={},S.list[E]=O[E],S.topWebviewID=E):S.list=O,this.setState(S),setTimeout(()=>{this.getSimulatorActions('S_CHANGE_CURRENT_WEBVIEW',null,{webviewID:E})}),J({errMsg:'redirectTo:ok',url:this._getShortUrl(K),webviewId:N})},switchTab:function(I,J){let K=this.getTabPageIndex(this.getRouteName(I.args.url));if(0>K)return void J({errMsg:'switchTab:fail can not switch to no-tabBar page'});let L=this._openNewWindowWebview({url:this.getRouteName(I.args.url)});J({errMsg:'switchTab:ok',webviewId:L,url:this._getShortUrl(I.args.url)})},_asSdk:function(I,J,K){if('redirectTo'===I)this.redirectTo(J,K);else if('navigateTo'===I)this.navigateTo(J,K);else if('switchTab'===I)this.switchTab(J,K);else if('navigateBack'===I){let M=this.state.currentWebviewID,N=c.findDOMNode(this.refs[`webview${M}`]),O=N.querySelector(`.webviewbody${M}`);this.goBack(this.state.currentWebviewID,O,!1,J.args.delta||1),setTimeout(()=>{K({errMsg:'navigateBack:ok',url:this._getShortUrl(O.src)})},200)}else if('setNavigationBarTitle'===I)setTimeout(()=>{let M=this.state.currentWebviewID,N=J.args;this.getSimulatorActions('S_SET_WEBVIEW_MARGIN',M,{name:I,value:N.title||''}),K({errMsg:'setNavigationBarTitle:ok'})},400);else if('showNavigationBarLoading'===I){let M=this.state.currentWebviewID;J.args,setTimeout(()=>{this.getSimulatorActions('S_SET_WEBVIEW_MARGIN',M,{name:I}),K({errMsg:`${I}:ok`})},0)}else if('hideNavigationBarLoading'===I){let M=this.state.currentWebviewID;J.args,setTimeout(()=>{this.getSimulatorActions('S_SET_WEBVIEW_MARGIN',M,{name:I}),K({errMsg:`${I}:ok`})},0)}else if('chooseLocation'===I){let M=this.state.currentWebviewID,N=J.url;this._openNewWebview({isMap:!0,webviewID:M,url:N});let O={};this.chooseLocation=function(P){return P?void(O=P):void(0===Object.keys(O).length?K({errMsg:'chooseLocation:fail'}):K({name:O.poiname,address:O.poiaddress,latitude:O.latlng.lat,longitude:O.latlng.lng,errMsg:'chooseLocation:ok'}))},this.closeLocation=function(){K({errMsg:'chooseLocation:cancel'})}}else if('openLocation'===I){let M=this.state.currentWebviewID;this._openNewWebview({isMap:!0,webviewID:M,url:J.url}),K({errMsg:'openLocation:ok'})}else if('operateWXData'===I){let M='',N=J.args;if(this.props.project){let O=this.props.project;M=O.appid}p({url:`${u.jsOperateWXDATAURL}?appid=${M}`,method:'post',body:JSON.stringify({data:JSON.stringify(N.data||{})}),needToken:1},(O,P,Q)=>{let R={},S='';if(!O&&200===P.statusCode&&(Q=JSON.parse(Q),Q.baseresponse))if(0==Q.baseresponse.errcode)try{R.data=JSON.parse(Q.data),R.errMsg='operateWXData:ok'}catch(U){R.errMsg='operateWXData:fail'}else{if(-12000==Q.baseresponse.errcode){var T=F++;let U=(V,W,X)=>{R.errMsg=X?'operateWXData:ok':'operateWXData:cancel';let Y=W[0];if(X&&Y.checked){let Z={data:JSON.stringify(N.data||{}),grant_scope:Y.scope};p({url:`${u.jsOperateWXDATAURL}?appid=${M}`,method:'post',body:JSON.stringify(Z),needToken:1},($,_,aa)=>{let ba={};if(!$&&200===_.statusCode&&(aa=JSON.parse(aa),aa.baseresponse&&0===aa.baseresponse.errcode))try{ba.data=JSON.parse(aa.data),ba.errMsg='operateWXData:ok'}catch(ca){ba.errMsg='operateWXData:fail'}ba.errMsg||(ba.errMsg='operateWXData:fail; '),K(ba)})}else K(R);l.removeListener('AUTHORIZE_SDK_RETURN_'+V,U)};return l.on('AUTHORIZE_SDK_RETURN_'+T,U),void this.getSimulatorActions('S_AUTHORIZE_SDK',this.state.currentWebviewID,{authorizeSdkId:T,url:`${Q.appicon_url}/0`,appname:Q.appname,scope_list:[Q.scope]})}S=Q.baseresponse.errmsg}R.errMsg||(R.errMsg='operateWXData:fail '+S),K(R)})}else if('authorize'===I){let M='';if(this.props.project){let P=this.props.project;M=P.appid}let N=J.args,O={scope:N.scope||[]};p({url:`${u.jsAuthorizeURL}?appid=${M}`,method:'post',body:JSON.stringify(O),needToken:1},(P,Q,R)=>{let S={},T='';if(!P&&200===Q.statusCode&&(R=JSON.parse(R),R.baseresponse))if(S.body=R,0==R.baseresponse.errcode)S.errMsg='authorize:ok';else{if(-12000==R.baseresponse.errcode){var U=F++;let V=(W,X,Y)=>{if(S.errMsg=Y?'authorize:ok':'authorize:cancel',Y){let Z=[];for(let $=0;${let ba={};$||200!==_.statusCode||(aa=JSON.parse(aa),aa.baseresponse&&0===aa.baseresponse.errcode&&(ba.errMsg='authorize:ok')),ba.errMsg||(ba.errMsg='authorize:fail'),K(ba)})}else K(S);l.removeListener('AUTHORIZE_SDK_RETURN_'+W,V)};return l.on('AUTHORIZE_SDK_RETURN_'+U,V),void this.getSimulatorActions('S_AUTHORIZE_SDK',this.state.currentWebviewID,{authorizeSdkId:U,url:`${R.appicon_url}/0`,appname:R.appname,scope_list:R.scope_list})}T=R.baseresponse.errmsg}S.errMsg||(S.errMsg='authorize:fail '+T),K(S)})}else if('getSystemInfo'===I||'getSystemInfoSync'===I){let M=this.state.currentWebviewID,N=l.getInfo(),O=this.state.list[M],P=N.os;K({errMsg:`${I}:ok`,model:N.model,pixelRatio:N.dpr,windowWidth:N.width,windowHeight:-1{let Q={show:!0,title:M.title,desc:M.desc,imgUrl:M.imgUrl,dataURI:P,callback:K};this.setState({share:Q})})}else if('requestPayment'===I){this.setState({uuid:J.uuid,qrcode:J.qrcode});let M=this.props.project,N=M.appid;this.requestPaymentCallBack=K;var L=()=>{p({url:`${u.paymentStateURL}?appid=${N}`,loginForc:1,needToken:1,method:'post',body:JSON.stringify({wxa_pay_uuid:J.uuid})},(O,P,Q)=>{if(O)m.showTipsMsg({msg:JSON.stringify(O),type:'error'});else{let R;try{R=JSON.parse(Q)}catch(U){return a(`系统错误 ${JSON.stringify(U)}`),o.error(`controller.js payment parse body error: ${Q} ${JSON.stringify(O)}`),void K({errMsg:`requestPayment:fail`})}let S=R.baseresponse,T=S?parseInt(S.errcode):0;if(0===T){let U=parseInt(R.qrcode_state);if(4===U||3===U)return this.state.uuid&&(G=setTimeout(L,3000)),void this.setState({qrcodeState:U});if(5===U){let V=JSON.parse(R.payment_ret);return V.errMsg=V.err_msg.replace(/^get_brand_wcpay_request/,'requestPayment'),delete V.err_msg,K(V),void this.setState({qrcode:'',uuid:'',qrcodeState:''})}1===U?a(`UUID 错误`):2===U?a(`等待超时,请重试`):a(`系统错误 错误码 ${U}`),K({errMsg:`requestPayment:fail`})}else a(`系统错误,错误码 ${T},错误信息 ${S.errmsg}`)}})};L()}},_upWebviewStatus:function(I,J){this.upCurrentWebviewURL(J.url)},_toggleRecordWording:function(I){this.setState({showRecordWording:I})},getTabPageIndex:function(I,J){let K=k.getFileNameFromUrl(I,this.props.project).replace(/\.wxml$/,'');J=J||this.state.tabBar;let L=J.list||[],M=L.findIndex(N=>{return N.pagePath===K});return M},upCurrentWebviewURL:function(I){},getSimulatorActions:function(I,J,K){let L={currentWebviewID:this.state.currentWebviewID};if(q(I,J,K,L),'S_CHANGE_CURRENT_WEBVIEW'===I){let M=K.webviewID;if(M===this.state.currentWebviewID){let N=c.findDOMNode(this.refs[`webview${M}`]),O=N.querySelector('webview'),P=O.src;this.upCurrentWebviewURL(P),m.changeUrl(P,M)}}},projectHasTab:function(){let I=this.state.tabBar.list||[],J=I.length;return J&&5>=I.length&&2<=I.length},closePayment:function(){this.requestPaymentCallBack&&this.requestPaymentCallBack({errMsg:'requestPayment:cancel'}),clearTimeout(G),this.setState({uuid:'',qrcode:''})},componentDidMount:function(){l.on('CHANGE_WEBVIEW_ID',this._changeWebviewID),l.on('SET_WEBVIEW_INFO',this._setWebviewInfo),l.on('AS_PUBLISH',this._postMessageToAllWebview),l.on('SEND_AS_SDK',this._asSdk),l.on('SET_WEBVIEW_SNAPSHOT',this._setWebviewSnapshot),l.on('UP_WEBVIEW_STATUS',this._upWebviewStatus),l.on('TOGGLE_RECORD_WORDING',this._toggleRecordWording);let I=this.props.project?1:12;chrome.fontSettings.setMinimumFontSize({pixelSize:I})},componentWillUnmount:function(){l.removeListener('CHANGE_WEBVIEW_ID',this._changeWebviewID),l.removeListener('SET_WEBVIEW_INFO',this._setWebviewInfo),l.removeListener('AS_PUBLISH',this._postMessageToAllWebview),l.removeListener('SEND_AS_SDK',this._asSdk),l.removeListener('SET_WEBVIEW_SNAPSHOT',this._setWebviewSnapshot),l.removeListener('UP_WEBVIEW_STATUS',this._upWebviewStatus),l.removeListener('TOGGLE_RECORD_WORDING',this._toggleRecordWording)},chooseLocation:function(){},closeLocation:function(){},hideShare:function(){this.setState({share:{show:!1}})},render:function(){let I=[];for(let K in this.state.list){let L=K==this.state.currentWebviewID?{}:n.webviewDisplayNone,M=this.state.list[K],N=this.getTabPageIndex(M.href),O=null,P=null,Q=Object.assign({},this.state.offset);if(this.projectHasTab()&&-1-1&&this.getRouteName(s.list[W].pagePath),setTimeout(function(){h.changeUrl(e,t)})}var E=!1;return{currentWebviewID:t,topWebviewID:i,showCard:p,tabBar:s,appJSON:a,offset:l,cardInfo:n,showRecordWording:E,list:{0:{href:e,dataURI:w,preWebviewID:r,pageJSON:o,isTabbar:u,shareBtnShow:!1,shareWithTicket:!1,shareDataURI:void 0}},shareInfo:{show:!1,imgUrl:"",title:"",desc:""},uuid:v,qrcode:b,qrcodeState:d,scene:g&&g.initPath&&g.initPath.enable&&g.initPath.scene||D,beta:global.appConfig.isBeta}},createWebviewId:function(){return++O},setAnimateImg:function(e,i){var r=document.createElement("div");if(i.dataURI){var s=document.createElement("img");r.appendChild(s),s.src=i.dataURI}r.className="simulator-animate-png";var a=t.findDOMNode(this.refs["webview"+this.state.currentWebviewID]),n=a.getBoundingClientRect(),o=n.top,c=n.left,l=n.height,h=n.width;e?r.style.cssText="background-color:"+i.color+";width:"+h+"px;height:"+l+"px;top:"+o+"px;left:"+c+"px;transform:translate3d("+h+"px,0,0)":r.style.cssText="margin-top:42px;width:"+h+"px;height:"+(l-42)+"px;top:"+o+"px;left:"+c+"px;transform:translate3d(0,0,0)",global.contentDocumentBody.appendChild(r);r.offsetTop;return r},getRouteName:function(e){return b.parse(e).pathname.split(".")[0].replace(/^\//,"")},postAppRoute:function(e,t,i){if(this.props.project){var r=b.parse(e),s=r.pathname.replace(/^\//,""),a=(r.query||"").split("&"),n={};a.forEach(function(e){var t=e.split("=");n[t[0]]=t[1]}),this.getSimulatorActions("S_POSTMSG_TO_AS",null,{eventName:"onAppRoute",type:"ON_APPLIFECYCLE_EVENT",data:{path:s||"index.html",query:n,openType:i},webviewID:parseInt(t)})}},goBack:function(e,i,r,s){var a=this;if(s=s||1,this.props.project||!i.canGoBack()||r){if(e===this.state.topWebviewID||1==Object.keys(this.state.list).length)return;var n=i.src,c=this.getTabPageIndex(this.getRouteName(n));if(c>=0)return;for(var l,h=e,u=[];s--&&this.state.list[h]&&0!=h;)u.push(h),l=this.state.list[h],h=l.prevWebviewID;this.state.list[h]||(h=0);var p=t.findDOMNode(this.refs["webview"+e]),w=p.querySelector(".webviewbody"+e);w.captureVisibleRegion(function(e){var r=a.setAnimateImg(!1,{dataURI:e}),s=w.offsetWidth,n=Object.assign({},a.state.list);for(var c in u)delete n[u[c]];a.setState({list:n,currentWebviewID:h},function(){r.addEventListener("transitionend",function(){global.contentDocumentBody.removeChild(r);var e=t.findDOMNode(a.refs["webview"+h]),s=e.querySelector(".webviewbody"+h);if(a.props.project){var n=i.src,c=o.getBaseURL(a.props.project);0===n.indexOf(c)&&a.postAppRoute(s.src,a.state.currentWebviewID,"navigateBack")}for(var l in u)a.getSimulatorActions("S_DELETE_WEBVIEW",null,{webviewID:u[l]});a.getSimulatorActions("S_CHANGE_CURRENT_WEBVIEW",null,{webviewID:h})}),r.style.transform="translate3d("+s+"px,0,0)"})})}else i.back()},_getOpenWebviewNum:function(){var e=this.state.list,t=0,i=!1;for(var r in e)!i&&e[r].isTabbar&&(i=!0,t++),e[r].isTabbar||t++;return t},_openNewWebview:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},r=e.url,s=e.isMap,a=e.type,n=this.state.currentWebviewID;if(!e.isMap&&this._getOpenWebviewNum()>=5)return void i("webview count limit exceed");var o=this.state.appJSON,c={},l=R;if(!s){try{c=f.getPageJSONSync(this.props.project,r)}catch(e){}l=c.backgroundColor||o.window.backgroundColor||R}var h=this.setAnimateImg(!0,{color:l});h.style.transform="translate3d(0,0,0)",h.addEventListener("transitionend",function(){h.parentNode.removeChild(h),O++;var e=Object.assign({},t.state.list);e[O]={prevWebviewID:n,href:r,pageJSON:c,isMap:s,type:a},t.setState({currentWebviewID:O,list:e}),t.getSimulatorActions("S_CHANGE_CURRENT_WEBVIEW",null,{webviewID:O}),i(null,O)})},_openNewWindowWebview:function(e){var t=this,i=e.url,r=this.getRouteName(i),s={},a=this.props.project;try{s=f.getPageJSONSync(a,i)}catch(e){}var n=(s.backgroundColor||"#ffffff",o.getBaseURL(a));i=b.resolve(n,i+".html");var c=Object.assign({},this.state.list),l={},h={};for(var u in c){var p=c[u];p.isTabbar&&(p.isTabbar===r&&(h.currentWebviewID=parseInt(u)),l[u]=p)}h.list=l;var w=!1;void 0===h.currentWebviewID&&(h.currentWebviewID=++O,h.list[O]={showUrl:!1,hideBack:!0,isTabbar:r,href:i,pageJSON:s,type:"switchTab"},w=!0);var v=h.currentWebviewID,d=h.currentWebviewID!=this.state.currentWebviewID;return this.setState(h,function(){setTimeout(function(){!w&&d&&t.postAppRoute(i,v,"switchTab"),t.getSimulatorActions("S_CHANGE_CURRENT_WEBVIEW",null,{webviewID:v})},0)}),v},_changeWebviewID:function(e){this.setState({currentWebviewID:e})},_setWebviewInfo:function(e){var t=this.state.tabBar;t.list||[];e.height&&this.setState({offset:{height:e.height,width:e.width,dpr:e.dpr}})},_setWebviewSnapshot:function(e,t){var i=Object.assign({},this.state.list);i[e].dataURI=t,this.setState({list:i})},_postMessageToAllWebview:function(e){var t=this,i=e.webviewIds||[],r=0===i.length;setTimeout(function(){e.act="sendMsgFromAppService";var s=void 0;s=r?Object.keys(t.state.list):i,s.forEach(function(i){t.getSimulatorActions("S_SET_ACTION",i,e)})},17)},doSimulaterActions:function(e,i,r){var s=function(){"function"==typeof r&&r.apply(r,arguments)};switch(e){case"OPEN_NEW_WEBVIEW":this._openNewWebview(i,s);break;case"OPEN_NEW_WINDOW_WEBVIEW":this._openNewWindowWebview(i),s(null);break;case"WEBVIEW_BACK":var a=this.state.currentWebviewID,n=t.findDOMNode(this.refs["webview"+a]),o=n.querySelector(".webviewbody"+a);this.goBack(this.state.currentWebviewID,o,!1,i.delta);break;case"CAPTRUE_WEBVIEW":var c=this.state.currentWebviewID,l=t.findDOMNode(this.refs["webview"+c]),h=l.querySelector(".webviewbody"+c);h.captureVisibleRegion(function(e){s(null,e)})}},getWebviewList:function(e){return Object.assign({},this.state.list)},_upWebviewStatus:function(e,t){this.upCurrentWebviewURL(t.url)},_toggleRecordWording:function(e){this.setState({showRecordWording:e})},_onSumilatorNetworkChange:function(e){this.getSimulatorActions("S_POSTMSG_TO_AS",null,{eventName:"onNetworkStatusChange",data:{networkType:e,isConnected:"none"!=e},webviewID:parseInt(this.state.currentWebviewID)})},_onWebviewInterface:function(e,i,r,s){var a=this;if("initReady"===i){var n=t.findDOMNode(this.refs["webview"+e]),o=n.querySelector(".webviewbody"+e);setTimeout(function(){try{o.captureVisibleRegion(function(t){var i=Object.assign({},a.state.list);i[e]&&(i[e].shareDataURI=t,a.setState({list:i}))})}catch(e){}},200)}},getTabPageIndex:function(e,t){var i=o.getFileNameFromUrl(e,this.props.project).replace(/\.wxml$/,"");t=t||this.state.tabBar;var r=t.list||[],s=r.findIndex(function(e){return e.pagePath===i});return s},upCurrentWebviewURL:function(e){},getSimulatorActions:function(e,i,r){var s={currentWebviewID:this.state.currentWebviewID};if(p(e,i,r,s),"S_CHANGE_CURRENT_WEBVIEW"===e){var a=r.webviewID;if(a===this.state.currentWebviewID){var n=t.findDOMNode(this.refs["webview"+a]),o=n.querySelector("webview"),c=o.src;this.upCurrentWebviewURL(c),h.changeUrl(c,a)}}},projectHasTab:function(){var e=this.state.tabBar.list||[],t=e.length;return t&&e.length<=5&&e.length>=2},_onAppEnterForground:function(e){this.setState({scene:e.scene})},componentDidMount:function(){c.on("CHANGE_WEBVIEW_ID",this._changeWebviewID),c.on("SET_WEBVIEW_INFO",this._setWebviewInfo),c.on("AS_PUBLISH",this._postMessageToAllWebview),c.on("SET_WEBVIEW_SNAPSHOT",this._setWebviewSnapshot),c.on("UP_WEBVIEW_STATUS",this._upWebviewStatus),c.on("TOGGLE_RECORD_WORDING",this._toggleRecordWording),c.on("SET_INTERFACE_ASYNC_RES",this._onWebviewInterface),c.on("SIMULATOR_NETWORK_CHANGE",this._onSumilatorNetworkChange),l.on("APP_ENTER_FOREGROUND",this._onAppEnterForground);var e=this.props.project?1:12;chrome.fontSettings.setMinimumFontSize({pixelSize:e}),A.register(this)},componentWillUnmount:function(){c.removeListener("CHANGE_WEBVIEW_ID",this._changeWebviewID),c.removeListener("SET_WEBVIEW_INFO",this._setWebviewInfo),c.removeListener("AS_PUBLISH",this._postMessageToAllWebview),c.removeListener("SET_WEBVIEW_SNAPSHOT",this._setWebviewSnapshot),c.removeListener("UP_WEBVIEW_STATUS",this._upWebviewStatus),c.removeListener("TOGGLE_RECORD_WORDING",this._toggleRecordWording),c.removeListener("SET_INTERFACE_ASYNC_RES",this._onWebviewInterface),c.removeListener("SIMULATOR_NETWORK_CHANGE",this._onSumilatorNetworkChange),l.removeListener("APP_ENTER_FOREGROUND",this._onAppEnterForground),A.unregister(this)},chooseLocation:function(){},closeLocation:function(){},hideShare:function(){var e={show:!1};this.setState({shareInfo:e})},render:function(){var t=[];for(var o in this.state.list){var c=o==this.state.currentWebviewID?{}:u.webviewDisplayNone,l=this.state.list[o],h=this.getTabPageIndex(l.href),p=null,f=null,N=Object.assign({},this.state.offset);if(this.projectHasTab()&&h>-1){var j=this.state.tabBar.position,R={width:this.state.offset.width,margin:"0 auto"},A=e.createElement("div",{style:R},e.createElement(r,{webviewID:o,tabPageIndex:h,project:this.props.project,_openNewWindowWebview:this._openNewWindowWebview,tabBar:this.state.tabBar}));"top"===j?p=A:f=A,N.height=N.height-T}t.push(e.createElement("div",{key:o,style:c},e.createElement("div",{className:"simulator-shadow",style:{width:N.width}},e.createElement(n,{showRecordWording:this.state.showRecordWording,type:l.type,ref:"webview"+o,webviewID:o,project:this.props.project,offset:N,isTabWebview:h>-1,href:l.href,pageJSON:l.pageJSON,appJSON:this.state.appJSON,isMap:l.isMap,chooseLocation:this.chooseLocation,closeLocation:this.closeLocation,hideBack:!!l.hideBack,goBack:this.goBack,getSimulatorActions:this.getSimulatorActions,postAppRoute:this.postAppRoute,topTabDom:p,shareBtnShow:l.shareBtnShow,shareWithTicket:l.shareWithTicket}),f)))}var O=this.props.project?e.createElement(s,{shareInfo:this.state.shareInfo,hideShare:this.hideShare}):null,y=!!this.props.project,q=u.displayNone,B=void 0,C=void 0,P=u.displayNone,k=void 0;if(y){var U=this.state.list[this.state.currentWebviewID];if(U.href){var L=b.parse(U.href);q={},B=L.pathname.replace(".html","").replace(/^\//,"");var x=a.parse(L.query||""),M=[];for(var V in x)M.push(V+"="+x[V]);C=M.join("&")}C&&(P={}),k=this.state.scene||D}return e.createElement("div",{className:"simulator-wrapper"},e.createElement(i,{getSimulatorActions:this.getSimulatorActions,list:this.state.list,currentWebviewID:this.state.currentWebviewID,project:this.props.project,show:this.props.show}),e.createElement("div",{className:"simulator-list-wrapper",style:{width:this.state.offset.width}},O,t,e.createElement(W,{webviewID:this.state.currentWebviewID}),e.createElement(g,{project:this.props.project,webviewID:this.state.currentWebviewID}),e.createElement(d,{webviewID:this.state.currentWebviewID}),e.createElement(I,{webviewID:this.state.currentWebviewID}),e.createElement(m,{webviewID:this.state.currentWebviewID}),e.createElement(_,{width:this.state.offset.width,project:this.props.project}),e.createElement(v,null),e.createElement(E,null),e.createElement(S,{project:this.props.project})),e.createElement(w,null),e.createElement("div",{className:"simulator-status-bar",style:q},e.createElement("p",{className:"simulator-status-bar-item",style:this.state.beta?u.displayNone:{}},e.createElement("label",null,"场景值:"),e.createElement("span",{title:k},k)),e.createElement("p",{className:"simulator-status-bar-item"},e.createElement("label",null,"页面路径:"),e.createElement("span",{title:B},B)),e.createElement("p",{style:P,className:"simulator-status-bar-item"},e.createElement("label",null,"页面参数:"),e.createElement("span",{title:C},C))))}});_exports=y}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/payment/webviewpayment.js b/app/dist/components/simulator/payment/webviewpayment.js index f8b8d2ad..d5ea6158 100644 --- a/app/dist/components/simulator/payment/webviewpayment.js +++ b/app/dist/components/simulator/payment/webviewpayment.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js'),b=require('../../../cssStr/cssStr.js'),c=require('../../../stores/windowStores.js'),d=a.createClass({displayName:'Webviewpayment',componentDidMount:function(){},componentWillUnmount:function(){},close:function(){this.props.closePayment()},render:function(){let{uuid:e,qrcode:f,qrcodeState:g}=this.props;const h=e&&f?b.displayBlock:b.displayNone,i=c.getUserInfo();let j=i?i.nickName:'';return a.createElement('div',{style:h,className:'payment-wrapper'},a.createElement('div',{className:'payment'},a.createElement('div',{className:'payment-hd'},a.createElement('a',{href:'javascript:;',onClick:this.close,className:'payment-close'},a.createElement('i',{className:'payment-icon-close'}))),a.createElement('div',{className:'payment-bd'},a.createElement('p',{className:'payment-title'},'\u5FAE\u4FE1\u652F\u4ED8\u6D4B\u8BD5'),a.createElement('div',{className:'payment-qrcode-wrapper'},a.createElement('img',{className:'payment-qrcode',src:'data:image/png;base64,'+f}),a.createElement('div',{className:'payment-qrcode-scaned',style:4===g?b.displayBlock:b.displayNone},a.createElement('i',{className:'payment-icon-success'}))),a.createElement('p',{className:'payment-tips'},'\u8BF7\u7528\u5F00\u53D1\u8005\u672C\u4EBA\u5FAE\u4FE1\uFF08',j,'\uFF09\u626B\u63CF\u4EE5\u4E0A\u4E8C\u7EF4\u7801\u8FDB\u884C\u652F\u4ED8\u8C03\u8BD5'))))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=require("../../../cssStr/cssStr.js"),a=require("../../../stores/windowStores.js"),s=require("../../../stores/webviewStores.js"),c=e.createClass({displayName:"Webviewpayment",getInitialState:function(){return{lazyLoaded:!1,qrcode:"",uuid:"",qrcodeState:""}},_operatePaymentQrcodeWnd:function(e){"show"===e.type?(this._callback=e.callback,this.setState({show:!0,lazyLoaded:!0,qrcode:e.qrcode,uuid:e.uuid,qrcodeState:e.qrcodeState})):"update"===e.type?this.setState({qrcodeState:e.qrcodeState}):"close"===e.type&&this.setState({show:!1,qrcode:"",uuid:"",qrcodeState:""})},componentDidMount:function(){s.on("OPERATE_PAYMENT_QRCODE_WND",this._operatePaymentQrcodeWnd)},componentWillUnmount:function(){s.removeListener("OPERATE_PAYMENT_QRCODE_WND",this._operatePaymentQrcodeWnd)},closePayment:function(){this.setState({show:!1,qrcode:"",uuid:"",qrcodeState:""}),"function"==typeof this._callback&&(this._callback(),this._callback=null)},render:function(){if(!this.state.lazyLoaded)return null;var s=this.state,c=(s.uuid,s.qrcode),n=s.qrcodeState,r=s.show,o=r?t.displayBlock:t.displayNone,i=a.getUserInfo(),l=i?i.nickName:"";return e.createElement("div",{style:o,className:"payment-wrapper"},e.createElement("div",{className:"payment"},e.createElement("div",{className:"payment-hd"},e.createElement("a",{href:"javascript:;",onClick:this.closePayment,className:"payment-close"},e.createElement("i",{className:"payment-icon-close"}))),e.createElement("div",{className:"payment-bd"},e.createElement("p",{className:"payment-title"},"微信支付测试"),e.createElement("div",{className:"payment-qrcode-wrapper"},e.createElement("img",{className:"payment-qrcode",src:"data:image/png;base64,"+c}),e.createElement("div",{className:"payment-qrcode-scaned",style:4===n?t.displayBlock:t.displayNone},e.createElement("i",{className:"payment-icon-success"}))),e.createElement("p",{className:"payment-tips"},"请用开发者本人微信(",l,")扫描以上二维码进行支付调试"))))}});_exports=c}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/private/private.js b/app/dist/components/simulator/private/private.js index aa384209..a943ad25 100644 --- a/app/dist/components/simulator/private/private.js +++ b/app/dist/components/simulator/private/private.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../common/request/request.js');_exports={geolocation:function(c,d){a({url:`${'http://apis.map.qq.com/ws/location/v1/ip'}?key=${'JMRBZ-R4HCD-X674O-PXLN4-B7CLH-42BSB'}`,needToken:-1},(e,f,g)=>{d(e,g)})}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,s){var u=i.getGeoSetting();return u.checked?void s(null,JSON.stringify({status:0,result:{location:{lat:u.latitude,lng:u.longitude}}})):t?void s(null,t):void o({url:r+"?key="+n,needToken:-1},function(e,o,i){e||(t=i),s(e,i)})}var t,o=require("../../../common/request/request.js"),i=require("../../../stores/webviewStores.js"),n="JMRBZ-R4HCD-X674O-PXLN4-B7CLH-42BSB",r="http://apis.map.qq.com/ws/location/v1/ip";_exports={geolocation:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/sdkimplement/index.js b/app/dist/components/simulator/sdkimplement/index.js new file mode 100644 index 00000000..772b28e1 --- /dev/null +++ b/app/dist/components/simulator/sdkimplement/index.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("../../../stores/webviewStores.js"),i=require("./navigateSdk.js"),_=require("./locationSdk.js"),t=require("./uiSdk.js"),o=require("./shareSdk.js"),s=function(){this.__implement__=Object.assign({},i,_,t,o)};s.prototype.register=function(i){i&&(this.__simulator__=i,this.__invoke__||(this.__invoke__=this.invoke.bind(this)),e.removeListener("SEND_AS_SDK",this.__invoke__),e.on("SEND_AS_SDK",this.__invoke__))},s.prototype.unregister=function(){this.__simulator__=void 0,e.removeListener("SEND_AS_SDK",this.__invoke__)},s.prototype.invoke=function(e,i,_){var t=this,o=arguments;"function"==typeof this.__implement__[e]&&setTimeout(function(){t.__implement__[e].apply(t.__simulator__,o)},0)},_exports=new s}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/sdkimplement/locationSdk.js b/app/dist/components/simulator/sdkimplement/locationSdk.js new file mode 100644 index 00000000..393dc9dc --- /dev/null +++ b/app/dist/components/simulator/sdkimplement/locationSdk.js @@ -0,0 +1 @@ +"use strict";function init(){var o=function(o,t,i){this.doSimulaterActions("OPEN_NEW_WEBVIEW",{url:t.url,isMap:!0},function(t){i(null!==t?{errMsg:o+":fail "+t}:{errMsg:o+":ok"})})},t=function(o,t,i){this.doSimulaterActions("OPEN_NEW_WEBVIEW",{url:t.url,isMap:!0});var n={};this.chooseLocation=function(t){return t?void(n=t):void i(0===Object.keys(n).length?{errMsg:o+":fail"}:{name:n.poiname,address:n.poiaddress,latitude:n.latlng.lat,longitude:n.latlng.lng,errMsg:o+":ok"})},this.closeLocation=function(){i({errMsg:o+":cancel"})}};_exports={openLocation:o,chooseLocation:t}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/sdkimplement/navigateSdk.js b/app/dist/components/simulator/sdkimplement/navigateSdk.js new file mode 100644 index 00000000..422b2487 --- /dev/null +++ b/app/dist/components/simulator/sdkimplement/navigateSdk.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("url"),t=require("../../../stores/projectStores.js"),r=require("../../../weapp/utils/projectManager.js"),i=function(t){return e.parse(t).pathname.split(".")[0].replace(/^\//,"")},a=function(e,a,s){var o=a.args.url,n=t.getCurrentProject();return r.isTabBar(n,i(o))?void s({errMsg:e+":fail can not navigate to a tabbar page"}):void this.doSimulaterActions("OPEN_NEW_WEBVIEW",{url:o,type:"navigateTo"},function(t){s(null!==t?{errMsg:e+":fail "+t}:{errMsg:e+":ok"})})},s=function(e,a,s){var o=a.args.url,n=t.getCurrentProject();if(r.isTabBar(n,i(o)))return void s({errMsg:e+":fail can not redirect to a tabbar page"});var c={},u={},g=this.state.currentWebviewID,v=this.getWebviewList(),l=v[g],p=l.isTabbar;try{c=r.getPageJSONSync(this.props.project,o)}catch(e){}var b=this.createWebviewId(),h={href:o,hideBack:p||g===this.state.topWebviewID,type:"redirectTo",prevWebviewID:l.prevWebviewID,pageJSON:c};p?(v={},v[b]=h):(delete v[g],v[b]=h),1==Object.keys(v).length&&(u.topWebviewID=b),u.currentWebviewID=b,u.list=v,this.setState(u),this.getSimulatorActions("S_CHANGE_CURRENT_WEBVIEW",null,{webviewID:b}),s({errMsg:e+":ok"})},o=function(e,a,s){var o=a.args.url,n=t.getCurrentProject();return r.isTabBar(n,i(o))?void this.doSimulaterActions("OPEN_NEW_WINDOW_WEBVIEW",{url:i(o)},function(t){s(null!==t?{errMsg:e+":fail "+t}:{errMsg:e+":ok"})}):void s({errMsg:e+":fail can not switch to no-tabBar page"})},n=function(e,i,a){var s=i.args.url,o=(t.getCurrentProject(),{});try{o=r.getPageJSONSync(this.props.project,s)}catch(e){}var n={},c=this.createWebviewId();n[c]={pageJSON:o,prevWebviewID:-1,href:s,hideBack:!0,type:"reLaunch"};var u={currentWebviewID:c,topWebviewID:c,list:n};this.setState(u),this.getSimulatorActions("S_CHANGE_CURRENT_WEBVIEW",null,{webviewID:c}),a({errMsg:e+":ok"})},c=function(e,t,r){this.doSimulaterActions("WEBVIEW_BACK",{delta:t.args.delta||1}),r({errMsg:"navigateBack:ok"})};_exports={navigateTo:a,redirectTo:s,switchTab:o,reLaunch:n,navigateBack:c}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/sdkimplement/shareSdk.js b/app/dist/components/simulator/sdkimplement/shareSdk.js new file mode 100644 index 00000000..2edbef97 --- /dev/null +++ b/app/dist/components/simulator/sdkimplement/shareSdk.js @@ -0,0 +1 @@ +"use strict";function init(){var t=function(t,e,s){var i=this.getWebviewList(),r=this.state.currentWebviewID;i[r].shareBtnShow=!0,i[r].shareWithTicket=!1,this.setState({list:i}),s({errMsg:t+":ok"})},e=function(t,e,s){var i=this.getWebviewList(),r=this.state.currentWebviewID;i[r].shareBtnShow=!0,i[r].shareWithTicket=!0,this.setState({list:i}),s({errMsg:t+":ok"})},s=function(t,e,s){var i=this.getWebviewList(),r=this.state.currentWebviewID;i[r].shareBtnShow=!1,i[r].shareWithTicket=!1,this.setState({list:i}),s({errMsg:t+":ok"})},i=function(t,e,s){var i=this,r=e.args,a=this.state.currentWebviewID,h=this.state.list[a].shareDataURI,n=this.state.list[a].shareWithTicket,o=function(e,a){if(null===e){var h={show:!0,title:r.title,desc:r.desc,imgUrl:r.imgUrl,shareWithTicket:n,dataURI:a,callback:s};i.setState({shareInfo:h})}else s({errMsg:t+":fail"})};h?o(null,h):this.doSimulaterActions("CAPTRUE_WEBVIEW",{},o)};_exports={showShareMenu:t,shareAppMessage:i,hideShareMenu:s,showShareMenuWithShareTicket:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/sdkimplement/uiSdk.js b/app/dist/components/simulator/sdkimplement/uiSdk.js new file mode 100644 index 00000000..0c010c5a --- /dev/null +++ b/app/dist/components/simulator/sdkimplement/uiSdk.js @@ -0,0 +1 @@ +"use strict";function init(){var t=function(t,i,e){var r=i.args,a=this.state.currentWebviewID;this.getSimulatorActions("S_SET_WEBVIEW_MARGIN",a,{name:t,value:r.title||""}),e({errMsg:t+":ok"})},i=function(t,i,e){var r=this.state.currentWebviewID;this.getSimulatorActions("S_SET_WEBVIEW_MARGIN",r,{name:t}),e({errMsg:t+":ok"})},e=function(t,i,e){var r=this.state.currentWebviewID;this.getSimulatorActions("S_SET_WEBVIEW_MARGIN",r,{name:t}),e({errMsg:t+":ok"})};_exports={setNavigationBarTitle:t,showNavigationBarLoading:i,hideNavigationBarLoading:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/share/webviewWeappShare.js b/app/dist/components/simulator/share/webviewWeappShare.js new file mode 100644 index 00000000..88ea31ce --- /dev/null +++ b/app/dist/components/simulator/share/webviewWeappShare.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("../../../lib/react.js"),a=require("../../../cssStr/cssStr.js"),s=(require("../../../stores/webviewStores.js"),require("../../../actions/leftviewActions.js"),require("../../../stores/leftviewStores.js"),e.createClass({displayName:"WebviewShare",getInitialState:function(){return{lazyLoaded:!1}},componentDidMount:function(){},componentWillUnmount:function(){},componentWillReceiveProps:function(e){e.shareInfo&&e.shareInfo.show&&this.setState({lazyLoaded:!0})},handleCancel:function(){this.props.shareInfo.callback({errMsg:"shareAppMessage:cancel"}),this.props.hideShare()},handleConfirm:function(){var e=this.props.shareInfo,a={errMsg:"shareAppMessage:ok"};e.shareWithTicket&&(a.shareInfos=[{shareKey:"this is a mock shareKey",userName:"this is a mock userName"}]),e.callback(a),this.props.hideShare()},render:function(){if(!this.state.lazyLoaded)return null;var s=this.props.shareInfo;return e.createElement("div",{className:"simulator-bd-share",style:s.show?{}:a.displayNone},e.createElement("div",{className:"simulator-bd-share-mask"}),e.createElement("div",{className:"simulator-bd-share-dialog weapp"},e.createElement("div",{className:"simulator-bd-share-dialog-hd"},e.createElement("strong",{className:"simulator-bd-share-dialog-title"},s.title)),e.createElement("div",{className:"simulator-bd-share-dialog-bd"},e.createElement("p",{className:"simulator-bd-share-dialog-desc"},s.desc),e.createElement("div",{className:"simulator-bd-share-dialog-cover"},e.createElement("img",{src:s.dataURI,style:{objectPosition:"0% 0%"}}))),e.createElement("div",{className:"simulator-bd-share-dialog-ft"},e.createElement("a",{onClick:this.handleCancel,href:"javascript:;",className:"simulator-bd-share-dialog-button-default"},"取消"),e.createElement("a",{onClick:this.handleConfirm,href:"javascript:;",className:"simulator-bd-share-dialog-button-primary"},"确定"))))}}));_exports=s}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/share/webviewshare.js b/app/dist/components/simulator/share/webviewshare.js new file mode 100644 index 00000000..a802108a --- /dev/null +++ b/app/dist/components/simulator/share/webviewshare.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("../../../lib/react.js"),t=require("../../../cssStr/cssStr.js"),s=(require("../../../stores/webviewStores.js"),require("../../../actions/leftviewActions.js")),a=require("../../../stores/leftviewStores.js"),i=e.createClass({displayName:"WebviewShare",getInitialState:function(){return{title:"",desc:"",imgUrl:"",webviewID:parseInt(this.props.webviewID)}},_leftStatusUp:function(e,t,s){this.setState({show:t.showShare})},componentDidMount:function(){a.on("LEFT_STATUS_UP_"+this.state.webviewID,this._leftStatusUp)},componentWillUnmount:function(){a.removeListener("LEFT_STATUS_UP_"+this.state.webviewID,this._leftStatusUp)},upLeftviewStatus:function(){var e=this;setTimeout(function(){s.upShareStatus(e.state.webviewID,e.state.show)})},handleCancel:function(){this.sendMsg("cancel")},handleConfirm:function(){this.sendMsg("ok")},sendMsg:function(e){var t=this.props.shareOpt.sdkName;this.props.getSimulatorActions("S_SET_ACTION",this.state.webviewID,{act:"sendMsg",sdkName:t,res:{errMsg:t+":"+e}}),this.props.showShare(!1)},render:function(){var s=this.props.shareOpt;return e.createElement("div",{className:"simulator-bd-share",style:this.props.show?{}:t.displayNone},e.createElement("div",{className:"simulator-bd-share-mask"}),e.createElement("div",{className:"simulator-bd-share-dialog"},e.createElement("div",{style:"shareTimeline"===s.sdkName?t.displayNone:{},className:"simulator-bd-share-dialog-hd"},e.createElement("strong",{className:"simulator-bd-share-dialog-title"},s.title)),e.createElement("div",{className:"simulator-bd-share-dialog-bd"},e.createElement("div",{className:"simulator-bd-share-dialog-cover"},e.createElement("img",{src:s.imgUrl,alt:""})),e.createElement("p",{className:"simulator-bd-share-dialog-desc"},s.desc)),e.createElement("div",{className:"simulator-bd-share-dialog-ft"},e.createElement("a",{onClick:this.handleCancel,href:"javascript:;",className:"simulator-bd-share-dialog-button-default"},"取消"),e.createElement("a",{onClick:this.handleConfirm,href:"javascript:;",className:"simulator-bd-share-dialog-button-primary"},"确定"))))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/toolbar/devicemodules.js b/app/dist/components/simulator/toolbar/devicemodules.js index 801d8226..e796489e 100644 --- a/app/dist/components/simulator/toolbar/devicemodules.js +++ b/app/dist/components/simulator/toolbar/devicemodules.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js'),b=require('../../../cssStr/cssStr.js'),c=require('../../../stores/windowStores.js'),d=require('../../../config/DeviceModules.js'),e=require('../../../actions/windowActions.js'),f='devicemodules',g=a.createClass({displayName:'DeviceModules',getInitialState:function(){let h=c.getSetting(),i=h&&h.device?h.device:'iPhone 6';return{show:!1,device:i}},handleOnClick:function(h){h.stopPropagation();let i=!this.state.show;this.setState({show:i}),e.clickToolsbar(f)},_clickToolsbar:function(h){f!=h&&this.setState({show:!1})},componentDidMount:function(){c.on('CLICK_TOOLSBAR',this._clickToolsbar),c.on('BODY_CLICK',this._clickToolsbar)},componentWillUnmount:function(){c.removeListener('CLICK_TOOLSBAR',this._clickToolsbar),c.removeListener('BODY_CLICK',this._clickToolsbar)},selectDevice:function(h){let i=d[h],j=i.screen;this.props.getSimulatorActions('S_SET_WEBVIEW_INFO',null,{height:j.vertical.height-42,width:j.vertical.width,device:i.title,dpr:j['device-pixel-ratio'],ua:i['user-agent'],os:i.os})},clickDevice:function(h){h.stopPropagation();let i=h.currentTarget,j=i.dataset;this.selectDevice(j.device),this.setState({show:!1,device:j.device})},render:function(){let h=this.state.show?{}:b.displayNone,i=[],j=this.state.show?'simulator-toolbar-model-icon-up':'simulator-toolbar-model-icon-down';for(let k in d){let l=d[k],m=l.screen.vertical,n=l.screen['device-pixel-ratio'],o=`simulator-toolbar-model-content-item ${l.title===this.state.device?'simulator-toolbar-model-content-item-current':''}`;i.push(a.createElement('div',{onClick:this.clickDevice,className:o,'data-device':k,key:k},a.createElement('h4',null,m.width,' X ',m.height,' ; Dpr: ',n),a.createElement('p',null,l.title)))}return a.createElement('div',{className:'simulator-toolbar-model',onClick:this.handleOnClick},a.createElement('p',null,this.state.device),a.createElement('i',{className:j}),a.createElement('div',{className:'simulator-toolbar-model-content',style:h},i))}});_exports=g}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=require("../../../cssStr/cssStr.js"),i=require("../../../stores/windowStores.js"),o=require("../../../config/DeviceModules.js"),s=require("../../../actions/windowActions.js"),r="devicemodules",c=e.createClass({displayName:"DeviceModules",getInitialState:function(){var e=i.getSetting(),t=e&&e.device?e.device:"iPhone 6";return{show:!1,device:t}},handleOnClick:function(e){e.stopPropagation();var t=!this.state.show;this.setState({show:t}),s.clickToolsbar(r)},_clickToolsbar:function(e){r!=e&&this.setState({show:!1})},componentDidMount:function(){i.on("CLICK_TOOLSBAR",this._clickToolsbar),i.on("BODY_CLICK",this._clickToolsbar)},componentWillUnmount:function(){i.removeListener("CLICK_TOOLSBAR",this._clickToolsbar),i.removeListener("BODY_CLICK",this._clickToolsbar)},selectDevice:function(e){var t=o[e],i=t.screen;this.props.getSimulatorActions("S_SET_WEBVIEW_INFO",null,{height:i.vertical.height-42,width:i.vertical.width,device:t.title,dpr:i["device-pixel-ratio"],ua:t["user-agent"],os:t.os})},clickDevice:function(e){e.stopPropagation();var t=e.currentTarget,i=t.dataset;this.selectDevice(i.device),this.setState({show:!1,device:i.device})},render:function(){var i=this.state.show?{}:t.displayNone,s=[],r=this.state.show?"simulator-toolbar-model-icon-up":"simulator-toolbar-model-icon-down";for(var c in o){var l=o[c],n=l.screen.vertical,a=l.screen["device-pixel-ratio"],d="simulator-toolbar-model-content-item "+(l.title===this.state.device?"simulator-toolbar-model-content-item-current":"");s.push(e.createElement("div",{onClick:this.clickDevice,className:d,"data-device":c,key:c},e.createElement("h4",null,n.width," X ",n.height," ; Dpr: ",a),e.createElement("p",null,l.title)))}return e.createElement("div",{className:"simulator-toolbar-model",onClick:this.handleOnClick},e.createElement("p",null,this.state.device),e.createElement("i",{className:r}),e.createElement("div",{className:"simulator-toolbar-model-content",style:i},s))}});_exports=c}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/toolbar/network.js b/app/dist/components/simulator/toolbar/network.js index 9fe4cd38..c9cb1a25 100644 --- a/app/dist/components/simulator/toolbar/network.js +++ b/app/dist/components/simulator/toolbar/network.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js'),b=require('../../../cssStr/cssStr.js'),c=require('../../../stores/webviewStores.js'),d=['wifi','2g','3g','4g'],e=require('../../../stores/windowStores.js'),f=require('../../../actions/windowActions.js'),g='network',h=a.createClass({displayName:'Network',getInitialState:function(){let i=c.getNetworkType();return{show:!1,nettype:i}},handleOnClick:function(i){i.stopPropagation();let j=!this.state.show;this.setState({show:j}),f.clickToolsbar(g)},_clickToolsbar:function(i){g!=i&&this.setState({show:!1})},componentDidMount:function(){e.on('CLICK_TOOLSBAR',this._clickToolsbar),e.on('BODY_CLICK',this._clickToolsbar)},componentWillUnmount:function(){e.removeListener('CLICK_TOOLSBAR',this._clickToolsbar),e.removeListener('BODY_CLICK',this._clickToolsbar)},clickNettype:function(i){i.stopPropagation();let j=i.currentTarget,k=j.dataset,l=k.nettype;c.setNetworkType(l),this.setState({show:!1,nettype:l})},render:function(){let i=this.state.show?{}:b.displayNone,j=this.state.show?'simulator-toolbar-model-icon-up':'simulator-toolbar-model-icon-down',k=[];for(let l in d){let m=d[l],n='simulator-toolbar-model-content-item';m===this.state.nettype&&(n+=' simulator-toolbar-model-content-item-current'),k.push(a.createElement('div',{onClick:this.clickNettype,className:n,'data-nettype':m,key:m},a.createElement('p',null,m)))}return a.createElement('div',{className:'simulator-toolbar-model simulator-toolbar-model_network',onClick:this.handleOnClick},a.createElement('p',null,this.state.nettype),a.createElement('i',{className:j}),a.createElement('div',{className:'simulator-toolbar-model-content',style:i},k))}});_exports=h}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../../../lib/react.js"),e=require("../../../cssStr/cssStr.js"),o=require("../../../stores/webviewStores.js"),s=["wifi","2g","3g","4g","none"],r=require("../../../stores/windowStores.js"),i=require("../../../actions/windowActions.js"),n="network",a=t.createClass({displayName:"Network",getInitialState:function(){var t=o.getNetworkType();return{show:!1,nettype:t}},handleOnClick:function(t){t.stopPropagation();var e=!this.state.show;this.setState({show:e}),i.clickToolsbar(n)},_clickToolsbar:function(t){n!=t&&this.setState({show:!1})},componentDidMount:function(){r.on("CLICK_TOOLSBAR",this._clickToolsbar),r.on("BODY_CLICK",this._clickToolsbar)},componentWillUnmount:function(){r.removeListener("CLICK_TOOLSBAR",this._clickToolsbar),r.removeListener("BODY_CLICK",this._clickToolsbar)},clickNettype:function(t){t.stopPropagation();var e=t.currentTarget,s=e.dataset,r=s.nettype;o.setNetworkType(r),this.setState({show:!1,nettype:r})},render:function(){var o=this.state.show?{}:e.displayNone,r=this.state.show?"simulator-toolbar-model-icon-up":"simulator-toolbar-model-icon-down",i=[];for(var n in s){var a=s[n],l="simulator-toolbar-model-content-item";a===this.state.nettype&&(l+=" simulator-toolbar-model-content-item-current"),i.push(t.createElement("div",{onClick:this.clickNettype,className:l,"data-nettype":a,key:a},t.createElement("p",null,a)))}return t.createElement("div",{className:"simulator-toolbar-model simulator-toolbar-model_network",onClick:this.handleOnClick},t.createElement("p",null,this.state.nettype),t.createElement("i",{className:r}),t.createElement("div",{className:"simulator-toolbar-model-content",style:o},i))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/toolbar/toolbar.js b/app/dist/components/simulator/toolbar/toolbar.js index 9243cde9..50cf2bf2 100644 --- a/app/dist/components/simulator/toolbar/toolbar.js +++ b/app/dist/components/simulator/toolbar/toolbar.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js'),b=require('../../../cssStr/cssStr.js'),c=require('./devicemodules.js'),d=require('./network.js'),e=require('../../../stores/windowStores.js'),f=require('../../../actions/windowActions.js'),g=require('../../../stores/projectStores.js'),h='toolstabs',i=a.createClass({displayName:'ToolBar',getInitialState:function(){return{showItems:!1,showMask:!1}},_clickToolsbar:function(j){h!=j&&this.setState({showItems:!1})},componentDidMount:function(){e.on('CLICK_TOOLSBAR',this._clickToolsbar)},componentWillUnmount:function(){e.removeListener('CLICK_TOOLSBAR',this._clickToolsbar)},showItems:function(j){j.stopPropagation();let k=!this.state.showItems;if(k)for(let l in this.props.list)this.props.getSimulatorActions('S_SET_ACTION',parseInt(l),{act:'CAPTURE'});this.setState({showItems:k}),f.clickToolsbar(h)},clickItems:function(j){j.stopPropagation();let k=j.currentTarget,l=k.dataset,m=parseInt(l.webviewid);this.setState({webviewID:m}),this.props.getSimulatorActions('S_CHANGE_CURRENT_WEBVIEW',null,{webviewID:m})},onWebviewEditClick:function(){let j=this.props.project;g.setProjectEditWebview(j.hash,!j.editWebview)},render:function(){let{list:j,show:k,project:l}=this.props,m=this.props.currentWebviewID,n=Object.keys(j).length,o=11?{}:e.displayNone,m=this.state.showMask?{}:e.displayNone,u=[];for(var p in r){var h="simulator-toolbar-tabs-item "+(p==l?" simulator-toolbar-tabs-item-current":"");u.push(t.createElement("div",{onClick:this.clickItems,className:h,"data-webviewid":p,key:p},t.createElement("img",{src:r[p].dataURI})))}var d=this.state.showItems?{}:e.displayNone,b="edit"===a?{}:e.displayNone;return t.createElement("div",{className:"simulator-toolbar"},t.createElement("div",{onClick:this.onWebviewEditClick,style:b,className:"simulator-toolbar-toggle"},t.createElement("i",{className:"simulator-toolbar-toggle-icon"})),t.createElement(s,{getSimulatorActions:this.props.getSimulatorActions}),t.createElement(o,null),t.createElement("div",{onClick:this.showItems,className:"simulator-toolbar-tabs",style:c},t.createElement("p",null,"正在调试",n,"个页面"),t.createElement("i",{className:"simulator-toolbar-model-icon-down"}),t.createElement("div",{className:"simulator-toolbar-tabs-content",style:d},u)),t.createElement("div",{style:m,className:"simulator-toolbar-mask"}))}});_exports=n}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview.js b/app/dist/components/simulator/webview.js index 45d2de6e..4d7bc22e 100644 --- a/app/dist/components/simulator/webview.js +++ b/app/dist/components/simulator/webview.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../lib/react-dom.js'),c=require('./webviewheader.js'),d=require('./webviewbody.js'),e=require('./webviewfooter.js'),f=require('./webviewloading.js'),g=require('./webviewshare.js'),h=require('./webviewcard.js'),i=require('./webviewAuthorizeDialog.js'),j=require('../../stores/webviewStores.js'),k=require('../../actions/windowActions.js'),l=require('../../cssStr/cssStr.js'),m=a.createClass({displayName:'Webview',getInitialState:function(){return{showFooter:!1,showShare:!1,showAuthorizeDialog:!1,shareOpt:{},webviewID:parseInt(this.props.webviewID),showCard:!1,cardInfo:{}}},goBack:function(n){let o=this.state.webviewID,p=b.findDOMNode(this.refs.container).querySelector(`.webviewbody${o}`);this.props.goBack(o,p,n)},showFooter:function(n){let o=n===void 0?!this.state.showFooter:n;this.setState({showFooter:o})},showAuthorizeDialog:function(n){this.setState({showAuthorizeDialog:n===void 0?!this.state.showAuthorizeDialog:n})},showShare:function(n){this.setState({showShare:n})},_showShareWebview:function(n,o,p){this.setState({showShare:!0,showFooter:!1,shareOpt:{title:p.title,desc:p.desc||p.title,imgUrl:p.img_url,sdkName:o.sdkName}})},_cardSdk:function(n,o,p,q,r){this.setState({showCard:!0,cardInfo:{sdkName:o,data:r,webviewID:n,isHavePurview:q,cardData:p}}),k.disAbleURLBar()},closeCard:function(){this.setState({showCard:!1,cardType:'',cardWebviewID:''}),k.ableURLBar()},componentDidMount:function(){j.on(`SHOW_SHARE_WEBVIEW_${this.state.webviewID}`,this._showShareWebview),j.on('CRAD_SDK_RES',this._cardSdk)},componentWillUnmount:function(){j.removeListener(`SHOW_SHARE_WEBVIEW_${this.state.webviewID}`,this._showShareWebview),j.removeListener('CRAD_SDK_RES',this._cardSdk)},render:function(){let{webviewID:n,project:o,offset:p,isTabWebview:q,href:r,pageJSON:s,appJSON:t,isMap:u,chooseLocation:v,closeLocation:w,hideBack:x,goBack:y,getSimulatorActions:z,postAppRoute:A,type:B,shareBtnShow:C}=this.props,D=s.backgroundColor||t.window.backgroundColor||'#ffffff',E={width:p.width,backgroundColor:D},F={width:p.width,height:p.height},G=this.props.project?null:a.createElement(h,{showCard:this.state.showCard,cardInfo:this.state.cardInfo,closeCard:this.closeCard}),H=this.props.project?null:a.createElement(g,{webviewID:n,getSimulatorActions:z,show:this.state.showShare,showShare:this.showShare,showFooter:this.showFooter,shareOpt:this.state.shareOpt}),I=this.state.showCard?l.webviewDisplayNone:{};return a.createElement('div',{ref:'container',className:'simulator',style:E},a.createElement('div',{style:I},a.createElement(c,{showRecordWording:this.props.showRecordWording,offset:p,hideBack:x,webviewID:n,project:o,isMap:u,chooseLocation:v,closeLocation:w,pageJSON:s,appJSON:t,goBack:this.goBack,showFooter:this.showFooter}),this.props.topTabDom,a.createElement('div',{className:'simulator-bd',style:F},a.createElement(f,{webviewID:n}),H,a.createElement(d,{type:B,isMap:u,chooseLocation:v,closeLocation:w,offset:p,href:r,webviewID:n,project:o,getSimulatorActions:z,postAppRoute:A,isTabWebview:q,goBack:this.goBack}),a.createElement(e,{shareBtnShow:C,project:o,offset:p,webviewID:n,getSimulatorActions:z,show:this.state.showFooter,showFooter:this.showFooter}),a.createElement(i,{webviewID:n,getSimulatorActions:z,show:this.state.showAuthorizeDialog,showAuthorizeDialog:this.showAuthorizeDialog}))),G)}});_exports=m}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../lib/react-dom.js"),o=require("./webviewheader.js"),s=require("./webviewbody.js"),r=require("./webviewfooter.js"),i=require("./webviewloading.js"),a=require("./share/webviewshare.js"),h=require("./webviewcard.js"),w=require("../../stores/webviewStores.js"),c=require("../../actions/windowActions.js"),n=require("../../cssStr/cssStr.js"),d="#ffffff",p=e.createClass({displayName:"Webview",getInitialState:function(){return{showFooter:!1,showShare:!1,shareOpt:{},webviewID:parseInt(this.props.webviewID),showCard:!1,cardInfo:{}}},goBack:function(e){var o=this.state.webviewID,s=t.findDOMNode(this.refs.container).querySelector(".webviewbody"+o);this.props.goBack(o,s,e)},showFooter:function e(t){var e=void 0===t?!this.state.showFooter:t;this.setState({showFooter:e})},showShare:function(e){this.setState({showShare:e})},_showShareWebview:function(e,t,o){this.setState({showShare:!0,showFooter:!1,shareOpt:{title:o.title,desc:o.desc||o.title,imgUrl:o.img_url,sdkName:t.sdkName}})},_cardSdk:function(e,t,o,s,r){this.setState({showCard:!0,cardInfo:{sdkName:t,data:r,webviewID:e,isHavePurview:s,cardData:o}}),c.disAbleURLBar()},closeCard:function(){this.setState({showCard:!1,cardType:"",cardWebviewID:""}),c.ableURLBar()},componentDidMount:function(){w.on("SHOW_SHARE_WEBVIEW_"+this.state.webviewID,this._showShareWebview),w.on("CRAD_SDK_RES",this._cardSdk)},componentWillUnmount:function(){w.removeListener("SHOW_SHARE_WEBVIEW_"+this.state.webviewID,this._showShareWebview),w.removeListener("CRAD_SDK_RES",this._cardSdk)},render:function(){var t=this.props,w=t.webviewID,c=t.project,p=t.offset,l=t.isTabWebview,u=t.href,b=t.pageJSON,v=t.appJSON,S=t.isMap,f=t.chooseLocation,m=t.closeLocation,g=t.hideBack,D=(t.goBack,t.getSimulatorActions),I=t.postAppRoute,k=t.type,_=t.shareBtnShow,W=t.shareWithTicket,j=b.backgroundColor||v.window.backgroundColor||d,E={width:p.width,backgroundColor:j},B={width:p.width,height:p.height},C=this.props.project?null:e.createElement(h,{showCard:this.state.showCard,cardInfo:this.state.cardInfo,closeCard:this.closeCard}),q=this.props.project?null:e.createElement(a,{webviewID:w,getSimulatorActions:D,show:this.state.showShare,showShare:this.showShare,showFooter:this.showFooter,shareOpt:this.state.shareOpt}),A=this.state.showCard?n.webviewDisplayNone:{};return e.createElement("div",{ref:"container",className:"simulator",style:E},e.createElement("div",{style:A},e.createElement(o,{showRecordWording:this.props.showRecordWording,offset:p,hideBack:g,webviewID:w,project:c,isMap:S,chooseLocation:f,closeLocation:m,pageJSON:b,appJSON:v,goBack:this.goBack,showFooter:this.showFooter}),this.props.topTabDom,e.createElement("div",{className:"simulator-bd",style:B},e.createElement(i,{webviewID:w}),q,e.createElement(s,{type:k,isMap:S,chooseLocation:f,closeLocation:m,offset:p,href:u,webviewID:w,project:c,getSimulatorActions:D,postAppRoute:I,isTabWebview:l,goBack:this.goBack}),e.createElement(r,{shareBtnShow:_,shareWithTicket:W,project:c,offset:p,webviewID:w,getSimulatorActions:D,show:this.state.showFooter,showFooter:this.showFooter}))),C)}});_exports=p}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/actionSheet.js b/app/dist/components/simulator/webview/actionSheet.js index f8c1e216..b382c73e 100644 --- a/app/dist/components/simulator/webview/actionSheet.js +++ b/app/dist/components/simulator/webview/actionSheet.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=require('../../../stores/webviewStores.js'),c=a.createClass({displayName:'ActionSheet',getInitialState:function(){return{itemList:[],itemColor:'#000000',cancelColor:'#000000',cancelText:'\u53D6\u6D88',hidden:!0}},componentDidMount:function(){b.on('SEND_AS_SDK',this.handleAssdkCommand)},componentWillUnmount:function(){b.removeListener('SEND_AS_SDK',this.handleAssdkCommand)},componentWillReceiveProps:function(d){d.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},handleAssdkCommand:function(d,e,f){let{args:g}=e;'showActionSheet'===d&&(this.__showOnWebviewID=this.props.webviewID,this.setState({itemList:g.itemList,itemColor:g.itemColor,cancelText:g.cancelText,cancelColor:g.cancelColor,hidden:!1}),this.callback=f)},handleCancelClick:function(){this.callback({errMsg:`showActionSheet:cancel`}),this.hide()},handleItemClick:function(d){this.callback({errMsg:'showActionSheet:ok',tapIndex:d}),this.hide()},hide:function(){this.setState({hidden:!0})},render:function(){let d=[];return this.state.itemList.map((e,f)=>{d.push(a.createElement('div',{className:'wx-action-sheet-item',onClick:this.handleItemClick.bind(this,f),style:{color:this.state.itemColor}},e))}),a.createElement('div',{style:{display:this.state.hidden?'none':'block'}},a.createElement('div',{className:'wx-action-sheet-mask',onClick:this.handleCancelClick}),a.createElement('div',{className:'wx-action-sheet wx-action-sheet-show'},a.createElement('div',{className:'wx-action-sheet-menu'},d,a.createElement('div',{className:'wx-action-sheet-item-cancel'},a.createElement('div',{className:'wx-action-sheet-middle'}),a.createElement('div',{className:'wx-action-sheet-cancel',onClick:this.handleCancelClick,style:{color:this.state.cancelColor}},this.state.cancelText)))))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),i=e.createClass({displayName:"ActionSheet",getInitialState:function(){return{itemList:[],itemColor:"#000000",cancelColor:"#000000",cancelText:"取消",hidden:!0,lazyLoaded:!1}},componentDidMount:function(){t.on("SEND_AS_SDK",this._handleAssdkCommand)},componentWillUnmount:function(){t.removeListener("SEND_AS_SDK",this._handleAssdkCommand)},componentWillReceiveProps:function(e){e.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},_handleAssdkCommand:function(e,t,i){var n=t.args;"showActionSheet"===e&&(this.__showOnWebviewID=this.props.webviewID,this.setState({itemList:n.itemList,itemColor:n.itemColor,cancelText:n.cancelText,cancelColor:n.cancelColor,hidden:!1,lazyLoaded:!0}),this.callback=i)},handleCancelClick:function(){this.callback({errMsg:"showActionSheet:cancel"}),this.hide()},handleItemClick:function(e){this.callback({errMsg:"showActionSheet:ok",tapIndex:e}),this.hide()},hide:function(){this.setState({hidden:!0})},render:function(){var t=this;if(!this.state.lazyLoaded)return null;var i=[];return this.state.itemList.map(function(n,s){i.push(e.createElement("div",{className:"wx-action-sheet-item",onClick:t.handleItemClick.bind(t,s),style:{color:t.state.itemColor}},n))}),e.createElement("div",{style:{display:this.state.hidden?"none":"block"}},e.createElement("div",{className:"wx-action-sheet-mask",onClick:this.handleCancelClick}),e.createElement("div",{className:"wx-action-sheet wx-action-sheet-show"},e.createElement("div",{className:"wx-action-sheet-menu"},i,e.createElement("div",{className:"wx-action-sheet-item-cancel"},e.createElement("div",{className:"wx-action-sheet-middle"}),e.createElement("div",{className:"wx-action-sheet-cancel",onClick:this.handleCancelClick,style:{color:this.state.cancelColor}},this.state.cancelText)))))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/authorizeDialog.js b/app/dist/components/simulator/webview/authorizeDialog.js new file mode 100644 index 00000000..fca1720b --- /dev/null +++ b/app/dist/components/simulator/webview/authorizeDialog.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("../../../lib/react.js"),t=require("../../../cssStr/cssStr.js"),a=require("../../../stores/windowStores.js"),i=2,l=3,s=e.createClass({displayName:"WebviewAuthorizeDialog",getInitialState:function(){return{appicon_url:"",appname:0,scope_list:[],show:!1,lazyLoaded:!1}},_authorizeSdkShowDialog:function(e){for(var t=e.scope_list,a=e.appicon_url,s=e.appname,o=0;og;g++)13>g&&e.push(9=g;g++)d.push(`${g}年`);return{yearArray:d,monthArray:e,dayArray:f,yearCurrent:new Date().getFullYear(),monthCurrent:0,dayCurrent:1}},componentDidMount:function(){this.range={},this.setRange('start',this.props.start||'1900-01-01'),this.setRange('end',this.props.end||'2100-01-01'),this.setCurrent(this.props.current)},componentWillReceiveProps:function(d){if(d.current!=this.props.current){let e=d.current.split('-'),f=parseInt(e[0]),g=parseInt(e[1]),h=parseInt(e[1]);this.setState({yearCurrent:isNaN(f)?new Date().getFullYear():Math.min(Math.max(f,0),2100),monthCurrent:isNaN(g)?0:Math.min(Math.max(g,0),11),dayCurrent:isNaN(h)?1:Math.min(Math.max(h,0),31)})}d.start!=this.props.start&&this.setRange('start',d.start||'1900-01-01'),d.end!=this.props.end&&this.setRange('end',d.end||'2100-01-01')},validDate:function(d,e,f){let g=new Date(`${d}-${e+1}-${f}`),h=g.getDate();return this.state.dayCurrent!=h&&(this.setState({dayCurrent:h}),this.refs.dayPicker.setCurrent(h-1)),g},setRange:function(d,e){if(e){let g=new Date(e);'Invalid Date'!=g&&(this.range[d]=g.getTime())}},setCurrent:function(d){if(d){let g=new Date(d);'Invalid Date'==g&&(g=new Date,g.getTime()this.range.end&&(g=new Date(this.range.end))),this.setState({yearCurrent:g.getFullYear(),monthCurrent:g.getMonth(),dayCurrent:g.getDate()})}},onYearSelect:function(d){let e=d+1900,f=this.validDate(e,this.state.monthCurrent,this.state.dayCurrent);f.getTime()this.range.end&&(e=new Date(this.range.end).getFullYear(),this.refs.yearPicker.setCurrent(e-1900)),this.setState({yearCurrent:e})},onMonthSelect:function(d){let e=d,f=this.validDate(this.state.yearCurrent,e,this.state.dayCurrent);f.getTime()this.range.end&&(e=new Date(this.range.end).getMonth(),this.refs.monthPicker.setCurrent(e)),this.setState({monthCurrent:e})},onDaySelect:function(d){let e=d+1,f=this.validDate(this.state.yearCurrent,this.state.monthCurrent,e);e=f.getDate(),f.getTime()this.range.end&&(e=new Date(this.range.end).getDate()),this.setState({dayCurrent:e}),this.refs.dayPicker.setCurrent(e-1)},getValue:function(){let d=this.state.yearCurrent;if('month'===this.props.fields){let e=this.state.monthCurrent+1;e=99?a+"月":"0"+a+"月"),r.push(a>9?a+"日":"0"+a+"日");for(var n=1900;n<=2100;n++)t.push(n+"年");var s=new Date;return{yearArray:t,monthArray:e,dayArray:r,yearCurrent:s.getFullYear()-1900,monthCurrent:s.getMonth(),dayCurrent:s.getDate()-1}},componentDidMount:function(){this.range={},this.setRange("start",this.props.start||"1900-01-01"),this.setRange("end",this.props.end||"2100-01-01"),this.setCurrent(this.props.current)},componentWillReceiveProps:function(t){if(t.show){if(t.current!=this.props.current){var e=t.current||"";e=t.current.split("-");var r=parseInt(e[0])-1900,a=parseInt(e[1])-1,n=parseInt(e[2])-1,s=new Date;this.setState({yearCurrent:isNaN(r)?s.getFullYear()-1900:Math.min(Math.max(r,0),2100),monthCurrent:isNaN(a)?s.getMonth():Math.min(Math.max(a,0),11),dayCurrent:isNaN(n)?s.getDate()-1:Math.min(Math.max(n,0),30)})}t.start!=this.props.start&&this.setRange("start",t.start||"1900-01-01"),t.end!=this.props.end&&this.setRange("end",t.end||"2100-01-01")}},validDate:function(t,e,r){var a=new Date(t+1900+"-"+(e+1)+"-"+(r+1)),n=a.getDate()-1;return this.state.dayCurrent!=n&&(this.setState({dayCurrent:n}),this.refs.dayPicker.setCurrent(n)),a},setRange:function(t,e){if(e){var r=new Date(e);"Invalid Date"!=r&&(this.range[t]=r.getTime())}},setCurrent:function(t){if(t){var e=new Date(t);"Invalid Date"==e&&(e=new Date,e.getTime()this.range.end&&(e=new Date(this.range.end))),this.setState({yearCurrent:e.getFullYear()-1900,monthCurrent:e.getMonth(),dayCurrent:e.getDate()-1})}},onYearSelect:function(t){var e=t,r=this.validDate(e,this.state.monthCurrent,this.state.dayCurrent);r.getTime()this.range.end&&(e=new Date(this.range.end).getFullYear()-1900,this.refs.yearPicker.setCurrent(e)),this.setState({yearCurrent:e})},onMonthSelect:function(t){var e=t,r=this.validDate(this.state.yearCurrent,e,this.state.dayCurrent);r.getTime()this.range.end&&(e=new Date(this.range.end).getMonth(),this.refs.monthPicker.setCurrent(e)),this.setState({monthCurrent:e})},onDaySelect:function(t){var e=t,r=this.validDate(this.state.yearCurrent,this.state.monthCurrent,e);e=r.getDate()-1,r.getTime()this.range.end&&(e=new Date(this.range.end).getDate()-1,this.refs.dayPicker.setCurrent(e)),this.setState({dayCurrent:e})},getValue:function(){var t=this.state.yearCurrent+1900;if("month"===this.props.fields){var e=this.state.monthCurrent+1;e=e>9?e:"0"+e,t=t+"-"+e}else if("day"===this.props.fields){var r=this.state.monthCurrent+1;r=r>9?r:"0"+r;var a=this.state.dayCurrent+1;a=a>9?a:"0"+a,t=t+"-"+r+"-"+a}return t},render:function(){return e.createElement("div",{className:"wx-picker-bd",style:this.props.show?{}:t.displayNone},e.createElement(r,{ref:"yearPicker",array:this.state.yearArray,current:this.state.yearCurrent,onPickerSelect:this.onYearSelect}),e.createElement(r,{ref:"monthPicker",hidden:"year"==this.props.fields,array:this.state.monthArray,current:this.state.monthCurrent,onPickerSelect:this.onMonthSelect}),e.createElement(r,{ref:"dayPicker",hidden:"day"!=this.props.fields,array:this.state.dayArray,current:this.state.dayCurrent,onPickerSelect:this.onDaySelect}))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/modal.js b/app/dist/components/simulator/webview/modal.js index 0c377761..33f1d1df 100644 --- a/app/dist/components/simulator/webview/modal.js +++ b/app/dist/components/simulator/webview/modal.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=require('../../../stores/webviewStores.js'),c=a.createClass({displayName:'Modal',getInitialState:function(){return{title:'',content:'',confirmText:'\u786E\u5B9A',cancelText:'\u53D6\u6D88',showCancel:!0,confirmColor:'#3CC51F',cancelColor:'#000000',hidden:!0}},componentDidMount:function(){b.on('SEND_AS_SDK',this.handleAssdkCommand)},componentWillUnmount:function(){b.removeListener('SEND_AS_SDK',this.handleAssdkCommand)},componentWillReceiveProps:function(d){d.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},handleAssdkCommand:function(d,e,f){let{args:g}=e;'showModal'===d&&(this.callback=f,this.__showOnWebviewID=this.props.webviewID,this.setState({title:g.title||'',content:g.content||'',confirmText:g.confirmText||'\u786E\u5B9A',cancelText:g.cancelText||'\u53D6\u6D88',showCancel:!1!==g.showCancel,confirmColor:g.confirmColor||'#3CC51F',cancelColor:g.cancelColor||'#000000',hidden:!1}))},handleCancelClick:function(){this.callback({errMsg:'showModal:ok',confirm:0}),this.hide()},handleConfrimClick:function(){this.callback({errMsg:'showModal:ok',confirm:1}),this.hide()},hide:function(){this.setState({hidden:!0})},render:function(){return a.createElement('div',{className:'wx-modal',style:{display:this.state.hidden?'none':'block'}},a.createElement('div',{className:'wx-modal-mask'}),a.createElement('div',{className:'wx-modal-dialog'},a.createElement('div',{className:'wx-modal-dialog-hd'},a.createElement('strong',null,this.state.title)),a.createElement('div',{className:'wx-modal-dialog-bd'},this.state.content),a.createElement('div',{className:'wx-modal-dialog-ft'},a.createElement('a',{className:'wx-modal-btn-default',style:{color:this.state.cancelColor,display:this.state.showCancel?'':'none'},onClick:this.handleCancelClick},this.state.cancelText),a.createElement('a',{className:'wx-modal-btn-primary',style:{color:this.state.confirmColor},onClick:this.handleConfrimClick},this.state.confirmText))))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),a=e.createClass({displayName:"Modal",getInitialState:function(){return{title:"",content:"",confirmText:"确定",cancelText:"取消",showCancel:!0,confirmColor:"#3CC51F",cancelColor:"#000000",hidden:!0,lazyLoaded:!1}},componentDidMount:function(){t.on("SEND_AS_SDK",this._handleAssdkCommand)},componentWillUnmount:function(){t.removeListener("SEND_AS_SDK",this._handleAssdkCommand)},componentWillReceiveProps:function(e){e.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},_handleAssdkCommand:function(e,t,a){var n=t.args;"showModal"===e&&(this.callback=a,this.__showOnWebviewID=this.props.webviewID,this.setState({title:n.title||"",content:n.content||"",confirmText:n.confirmText||"确定",cancelText:n.cancelText||"取消",showCancel:n.showCancel!==!1,confirmColor:n.confirmColor||"#3CC51F",cancelColor:n.cancelColor||"#000000",hidden:!1,lazyLoaded:!0}))},handleCancelClick:function(){this.callback({errMsg:"showModal:ok",confirm:0}),this.hide()},handleConfrimClick:function(){this.callback({errMsg:"showModal:ok",confirm:1}),this.hide()},hide:function(){this.setState({hidden:!0})},render:function(){return this.state.lazyLoaded?e.createElement("div",{className:"wx-modal",style:{display:this.state.hidden?"none":"block"}},e.createElement("div",{className:"wx-modal-mask"}),e.createElement("div",{className:"wx-modal-dialog"},e.createElement("div",{className:"wx-modal-dialog-hd"},e.createElement("strong",null,this.state.title)),e.createElement("div",{className:"wx-modal-dialog-bd"},this.state.content),e.createElement("div",{className:"wx-modal-dialog-ft"},e.createElement("a",{className:"wx-modal-btn-default",style:{color:this.state.cancelColor,display:this.state.showCancel?"":"none"},onClick:this.handleCancelClick},this.state.cancelText),e.createElement("a",{className:"wx-modal-btn-primary",style:{color:this.state.confirmColor},onClick:this.handleConfrimClick},this.state.confirmText)))):null}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/picker.js b/app/dist/components/simulator/webview/picker.js index 878e84a1..f0b54312 100644 --- a/app/dist/components/simulator/webview/picker.js +++ b/app/dist/components/simulator/webview/picker.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=require('../../../stores/webviewStores.js'),c=require('../../../actions/webviewActions.js'),d=require('./selectorRing'),e=require('./timeRing'),f=require('./dateRing'),g=a.createClass({displayName:'Picker',getInitialState:function(){return{mode:'selector',title:'',content:'',confirmText:'\u786E\u5B9A',cancelText:'\u53D6\u6D88',showCancel:!0,confirmColor:'#3CC51F',cancelColor:'#000000',hidden:!0,array:[]}},componentDidMount:function(){b.on(`SET_INTERFACE_ASYNC_RES`,this.handleWebviewsdkCommand)},componentWillUnmount:function(){b.removeListener(`SET_INTERFACE_ASYNC_RES`,this.handleWebviewsdkCommand)},handleWebviewsdkCommand:function(h,i,j,k){let{args:l}=k;this.webviewID=h,this.sdkName=i,'showPickerView'===i?this.setState({mode:'selector',array:l.array,current:l.current,hidden:!1}):'showDatePickerView'==i&&this.setState({mode:l.mode,start:l.range&&l.range.start||'',end:l.range&&l.range.end||'',current:l.current||'',fields:l.fields||'day',hidden:!1})},hide:function(){this.setState({hidden:!0,mode:'none'})},confirm:function(){this.hide();let h=this.refs[this.state.mode].getValue();'showPickerView'===this.sdkName?c.sendJSSDKRes(this.webviewID,this.sdkName,{errMsg:`${this.sdkName}:ok`,index:parseInt(h)}):'showDatePickerView'===this.sdkName&&c.sendJSSDKRes(this.webviewID,this.sdkName,{errMsg:`${this.sdkName}:ok`,value:h})},getRing:function(){return'selector'==this.state.mode?a.createElement(d,{ref:'selector',array:this.state.array,current:this.state.current}):'time'==this.state.mode?a.createElement(e,{ref:'time',current:this.state.current,start:this.state.start,end:this.state.end}):a.createElement(f,{ref:'date',current:this.state.current,start:this.state.start,end:this.state.end,fields:this.state.fields})},render:function(){return a.createElement('div',{style:{display:this.state.hidden?'none':''}},a.createElement('div',{className:'wx-picker-mask',onClick:this.hide}),a.createElement('div',{className:'wx-picker'},a.createElement('div',{className:'wx-picker-hd'},a.createElement('a',{className:'wx-picker-action',onClick:this.hide},'\u53D6\u6D88'),a.createElement('a',{className:'wx-picker-action',onClick:this.confirm},'\u786E\u5B9A')),this.getRing()))}});_exports=g}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),s=require("../../../actions/webviewActions.js"),i=require("./selectorRing"),r=require("./timeRing"),a=require("./dateRing"),n=e.createClass({displayName:"Picker",getInitialState:function(){return{mode:"selector",title:"",content:"",confirmText:"确定",cancelText:"取消",showCancel:!0,confirmColor:"#3CC51F",cancelColor:"#000000",hidden:!0,array:[],lazyLoaded:!1}},componentDidMount:function(){t.on("SET_INTERFACE_ASYNC_RES",this._handleWebviewsdkCommand)},componentWillUnmount:function(){t.removeListener("SET_INTERFACE_ASYNC_RES",this._handleWebviewsdkCommand)},_handleWebviewsdkCommand:function(e,t,s,i){var r=i.args;this.webviewID=e,this.sdkName=t,"showPickerView"===t?this.setState({mode:"selector",array:r.array,current:r.current,lazyLoaded:!0,hidden:!1}):"showDatePickerView"===t&&this.setState({mode:r.mode,start:r.range&&r.range.start||"",end:r.range&&r.range.end||"",current:r.current||"",fields:r.fields||"day",lazyLoaded:!0,hidden:!1})},hide:function(){this.setState({hidden:!0,mode:"none"})},confirm:function(){this.hide();var e=this.refs[this.state.mode].getValue();"showPickerView"===this.sdkName?s.sendJSSDKRes(this.webviewID,this.sdkName,{errMsg:this.sdkName+":ok",index:parseInt(e)}):"showDatePickerView"===this.sdkName&&s.sendJSSDKRes(this.webviewID,this.sdkName,{errMsg:this.sdkName+":ok",value:e})},render:function(){return this.state.lazyLoaded?e.createElement("div",{style:{display:this.state.hidden?"none":""}},e.createElement("div",{className:"wx-picker-mask",onClick:this.hide}),e.createElement("div",{className:"wx-picker"},e.createElement("div",{className:"wx-picker-hd"},e.createElement("a",{className:"wx-picker-action",onClick:this.hide},"取消"),e.createElement("a",{className:"wx-picker-action",onClick:this.confirm},"确定")),e.createElement(i,{ref:"selector",array:this.state.array,current:this.state.current,show:"selector"==this.state.mode}),e.createElement(r,{ref:"time",current:this.state.current,start:this.state.start,end:this.state.end,show:"time"==this.state.mode}),e.createElement(a,{ref:"date",current:this.state.current,start:this.state.start,end:this.state.end,fields:this.state.fields,show:"date"==this.state.mode}))):null}});_exports=n}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/pickerRing.js b/app/dist/components/simulator/webview/pickerRing.js index 2e8802d6..9eae0641 100644 --- a/app/dist/components/simulator/webview/pickerRing.js +++ b/app/dist/components/simulator/webview/pickerRing.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=34,c=a.createClass({displayName:'PickerRing',getInitialState:function(){return{translateY:0}},componentDidMount:function(){this.setCurrent(this.props.current)},componentWillReceiveProps:function(d){d.current!=this.props.current&&this.setCurrent(d.current)},setCurrent:function(d){this.setState({translateY:(3-d)*b})},onMouseDown:function(d){console.log('mouserdonw'),this.touch=!0,this.startY=d.pageY,this.lastTranslateY=this.state.translateY||0},onMouseMove:function(d){if(this.touch){let g=d.pageY-this.startY+this.lastTranslateY;g=Math.max((3-this.props.array.length+1)*b,g),g=Math.min(3*b,g),this.setState({translateY:g})}},onMouseUp:function(d){this.touch=!1,this.startY=0,this.lastTranslateY=0;let f=this.state.translateY;f=Math.max((3-this.props.array.length+1)*b,f),f=Math.min(3*b,f);let g=3-parseInt(f/b);isNaN(g)||(this.current=g),f=(3-this.current)*b,this.setState({translateY:f}),setTimeout(()=>{this.props.onPickerSelect&&this.props.onPickerSelect(this.current)},0)},getItemList:function(){let d=this.props.array,f=[];for(var g=0;g{let i=h;return 0<=h.indexOf('wxfile://')&&(i=d.getUrlFromFilePath(this.props.project,h.replace('wxfile://',''))),a.createElement('div',{className:'weui-gallery__img',style:{backgroundImage:`url("${i}")`}})})))):null}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),s=require("../../../cssStr/cssStr.js"),a=(require("../../../utils/file.js"),require("../../../weapp/utils/tools"),e.createClass({displayName:"PreviewImage",getInitialState:function(){return{urls:[],translateX:0,load:!1,hidden:!0}},componentDidMount:function(){t.on("SEND_AS_SDK",this._handleAssdkCommand)},componentWillUnmount:function(){t.removeListener("SEND_AS_SDK",this._handleAssdkCommand)},_handleAssdkCommand:function(e,t,s){var a=t.args;if("previewImage"===e){var i=a.current,n=a.urls||[];i=n.indexOf(i),i=i>=0?i:0,this.callback=s,this.setState({urls:n,translateX:-i*this.props.width,load:!0,hidden:!1}),s({errMsg:"previewImage:ok"})}},hide:function(){this.setState({hidden:!0})},onMouseDown:function(e){this.startX=e.pageX,this.touch=!0,this.lastTranslateX=this.state.translateX},onMouseMove:function(e){if(this.touch){var t=e.pageX-this.startX+this.lastTranslateX;t=Math.min(0,t),t=Math.max((1-this.state.urls.length)*this.props.width,t),this.setState({translateX:t})}},onMouseUp:function(e){this.startX=0,this.touch=!1,this.setState({translateX:parseInt(this.state.translateX/this.props.width-.5)*this.props.width})},render:function(){var t={width:100*this.state.urls.length+"%",transition:"all linear 0.3s",transform:"translate3d("+this.state.translateX+"px,0,0)"};return this.state.load?e.createElement("div",{className:"weui-gallery-wrapper",style:this.state.hidden?s.displayNone:{}},e.createElement("div",{className:"simulator-hd"},e.createElement("div",{className:"simulator-hd-back",onClick:this.hide},e.createElement("i",{className:"simulator-hd-back-icon"}),e.createElement("span",{style:{color:"white"}},"返回"))),e.createElement("div",{className:"weui-gallery-body"},e.createElement("div",{className:"weui-gallery",style:t,onMouseDown:this.onMouseDown,onMouseMove:this.onMouseMove,onMouseUp:this.onMouseUp,onMouseLeave:this.onMouseUp},this.state.urls.map(function(t){var s=t;return t.indexOf("wxfile://")>=0&&(s=t.replace("wxfile://","http://wxfile.open.weixin.qq.com/")),e.createElement("div",{className:"weui-gallery__img",style:{backgroundImage:'url("'+s+'")'}})})))):null}}));_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/selectorRing.js b/app/dist/components/simulator/webview/selectorRing.js index 3a81b9db..9180357c 100644 --- a/app/dist/components/simulator/webview/selectorRing.js +++ b/app/dist/components/simulator/webview/selectorRing.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=require('./pickerRing'),c=a.createClass({displayName:'SelectorRing',getInitialState:function(){return{}},componentWillReceiveProps:function(d){d.current!=this.props.current&&this.current},onPickerSelect:function(d){this.current=d},getValue:function(){return this.current},render:function(){return a.createElement('div',{className:'wx-picker-bd'},a.createElement(b,{array:this.props.array,current:this.props.current,onPickerSelect:this.onPickerSelect}))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),r=(require("../../../lib/react-dom.js"),require("./pickerRing")),t=require("../../../cssStr/cssStr.js"),i=e.createClass({displayName:"SelectorRing",getInitialState:function(){return{}},componentWillReceiveProps:function(e){e.show&&e.current!=this.props.current&&(this.current=e.current)},onPickerSelect:function(e){this.current=e},getValue:function(){return this.current||0},render:function(){return e.createElement("div",{className:"wx-picker-bd",style:this.props.show?{}:t.displayNone},e.createElement(r,{array:this.props.array,current:this.props.current,onPickerSelect:this.onPickerSelect}))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/settingDialog.js b/app/dist/components/simulator/webview/settingDialog.js new file mode 100644 index 00000000..55b7a022 --- /dev/null +++ b/app/dist/components/simulator/webview/settingDialog.js @@ -0,0 +1 @@ +"use strict";function init(){var e=require("../../../lib/react.js"),t=require("../../../cssStr/cssStr.js"),s=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),a=require("../../../actions/windowActions.js"),i=require("../../../common/actions/actions.js"),o=function(e){a.showTipsMsg({type:"error",msg:e})},c=e.createClass({displayName:"SettingDialog",getInitialState:function(){return{lazyLoaded:!1,show:!1}},componentDidMount:function(){s.on("SEND_AS_SDK",this._handleAssdkCommand)},componentWillUnmount:function(){s.removeListener("SEND_AS_SDK",this._handleAssdkCommand)},_handleAssdkCommand:function(e,t,s){var a=this;t.args;"openSetting"===e&&(this.callback=s,i.getAuthList(this.props.project,function(e,t){null!==e?o("获取权限列表失败!"+e):a.setState({lazyLoaded:!0,show:!0,scopeList:t||[]})}))},setAuthList:function(){var e=this;if(this.state.scopeList&&this.state.scopeList.length>0){var t=[];this.state.scopeList.forEach(function(e){t.push({scope:e.scope,state:e.state})}),i.setAuth(this.props.project,t,function(t){return null!==t?void o("设置权限列表失败!"+t):void e.close()})}else this.close()},close:function(){if(this.callback){var e=[];this.state.scopeList.forEach(function(t){e.push({state:t.state,scope:t.scope,desc:t.scope_desc})}),this.callback({errMsg:"openSetting:ok",authSetting:e}),this.callback=null}this.setState({show:!1})},_checkboxChange:function(e){var t=this,s=this.state.scopeList;return function(){s[e].state=1==s[e].state?2:1,t.setState({scopeList:s})}},render:function(){if(!this.state.lazyLoaded)return null;var s=this.props.project,a=s.app_nickname;s.ext_appid&&(a=s.extAppInfo&&s.extAppInfo.app_nickname||s.app_nickname),a=decodeURIComponent(a);for(var i=this.state.scopeList,o=[],c=0;cf;f++)24>f&&d.push(9this.range.end&&(f=parseInt(this.range.end/60)),this.setState({hourCurrent:f}),this.refs.hourPicker.setCurrent(f)},onMinuteSelect:function(d){let e=60*this.state.hourCurrent+d,f=d;ethis.range.end&&(f=parseInt(this.range.end%60),this.setState({minuteCurrent:f}),this.refs.minutePicker.setCurrent(f)),this.setState({minuteCurrent:f}),this.refs.minutePicker.setCurrent(f)},getValue:function(){return this.state.hourArray[this.state.hourCurrent]+':'+this.state.minuteArray[this.state.minuteCurrent]},render:function(){return a.createElement('div',{className:'wx-picker-bd'},a.createElement(b,{ref:'hourPicker',array:this.state.hourArray,current:this.state.hourCurrent,onPickerSelect:this.onHourSelect}),a.createElement(b,{ref:'minutePicker',array:this.state.minuteArray,current:this.state.minuteCurrent,onPickerSelect:this.onMinuteSelect}))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t=require("../../../lib/react.js"),e=(require("../../../lib/react-dom.js"),require("./pickerRing")),r=require("../../../cssStr/cssStr.js"),s=t.createClass({displayName:"TimeRing",getInitialState:function(){for(var t=[],e=[],r=0;r<60;r++)r<24&&t.push(r>9?""+r:"0"+r),e.push(r>9?""+r:"0"+r);return{hourArray:t,minuteArray:e,hourCurrent:0,minuteCurrent:0}},componentDidMount:function(){this.range={},this.setRange("start",this.props.start||"00:00"),this.setRange("end",this.props.end||"23:59"),this.setCurrent(this.props.current||"00:00")},componentWillReceiveProps:function(t){t.show&&(t.current!=this.props.current&&this.setCurrent(t.current),t.start!=this.props.start&&this.setRange("start",t.start),t.end!=this.props.end&&this.setRange("end",t.end))},setCurrent:function(t){var e=t.split(":"),r=parseInt(e[0]),s=parseInt(e[1]);this.setState({hourCurrent:isNaN(r)?0:Math.min(Math.max(r,0),23),minuteCurrent:isNaN(s)?0:Math.min(Math.max(s,0),59)})},setRange:function(t,e){var r=e.split(":"),s=parseInt(r[0]);s=isNaN(s)?0:s;var n=parseInt(r[1]);n=isNaN(n)?0:n,this.range[t]=60*s+n},onHourSelect:function(t){var e=60*t+this.state.minuteCurrent,r=t;ethis.range.end&&(r=parseInt(this.range.end/60)),this.setState({hourCurrent:r}),this.refs.hourPicker.setCurrent(r)},onMinuteSelect:function(t){var e=60*this.state.hourCurrent+t,r=t;ethis.range.end&&(r=parseInt(this.range.end%60),this.setState({minuteCurrent:r}),this.refs.minutePicker.setCurrent(r)),this.setState({minuteCurrent:r}),this.refs.minutePicker.setCurrent(r)},getValue:function(){return this.state.hourArray[this.state.hourCurrent]+":"+this.state.minuteArray[this.state.minuteCurrent]},render:function(){return t.createElement("div",{className:"wx-picker-bd",style:this.props.show?{}:r.displayNone},t.createElement(e,{ref:"hourPicker",array:this.state.hourArray,current:this.state.hourCurrent,onPickerSelect:this.onHourSelect}),t.createElement(e,{ref:"minutePicker",array:this.state.minuteArray,current:this.state.minuteCurrent,onPickerSelect:this.onMinuteSelect}))}});_exports=s}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webview/toast.js b/app/dist/components/simulator/webview/toast.js index a9128db3..32751c88 100644 --- a/app/dist/components/simulator/webview/toast.js +++ b/app/dist/components/simulator/webview/toast.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../../lib/react.js');require('../../../lib/react-dom.js');const b=require('../../../stores/webviewStores.js'),c=require('../../../weapp/utils/tools'),d=a.createClass({displayName:'Toast',getInitialState:function(){return{title:'',icon:'success',hidden:!0}},componentDidMount:function(){b.on('SEND_AS_SDK',this.handleAssdkCommand)},componentWillUnmount:function(){b.removeListener('SEND_AS_SDK',this.handleAssdkCommand)},componentWillReceiveProps:function(e){e.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},handleAssdkCommand:function(e,f,g){let{args:h}=f;'showToast'===e?(this.__showOnWebviewID=this.props.webviewID,this.setState({title:h.title||'',image:h.image||'',icon:h.icon||'success',hideMask:!h.mask,hidden:!1}),this.hiddenTimeId=setTimeout(this.hide,h.duration||1500),g({errMsg:'showToast:ok'})):'hideToast'==e&&(clearTimeout(this.hiddenTimeId),this.hide(),g({errMsg:'hideToast:ok'}))},getIconClass:function(){return this.state.image?'wx-toast-image-icon':`wx-toast-icon wx-icon-${this.state.icon}`},hide:function(){this.setState({hidden:!0})},render:function(){let e={fontSize:'55px',color:'#ffffff',display:'block'};return this.state.image&&(e.backgroundImage=`url(${c.getUrlFromFilePath(this.props.project,this.state.image)})`),a.createElement('div',{style:{display:this.state.hidden?'none':'block'}},a.createElement('div',{className:'wx-toast-mask',style:{display:this.state.hideMask?'none':'block'}}),a.createElement('div',{className:'wx-toast'},a.createElement('i',{className:this.getIconClass(),style:e}),a.createElement('p',{className:'wx-toast-content'},this.state.title)))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../../lib/react.js"),t=(require("../../../lib/react-dom.js"),require("../../../stores/webviewStores.js")),s=require("../../../weapp/utils/tools"),i=e.createClass({displayName:"Toast",getInitialState:function(){return{title:"",icon:"success",hidden:!0,lazyLoaded:!1}},componentDidMount:function(){t.on("SEND_AS_SDK",this._handleAssdkCommand)},componentWillUnmount:function(){t.removeListener("SEND_AS_SDK",this._handleAssdkCommand)},componentWillReceiveProps:function(e){e.webviewID!=this.__showOnWebviewID&&this.setState({hidden:!0})},_handleAssdkCommand:function(e,t,s){var i=t.args;"showToast"===e?(this.__showOnWebviewID=this.props.webviewID,this.setState({title:i.title||"",image:i.image||"",icon:i.icon||"success",hideMask:!i.mask,hidden:!1,lazyLoaded:!0}),this.hiddenTimeId=setTimeout(this.hide,i.duration||1500),s({errMsg:"showToast:ok"})):"hideToast"===e&&(clearTimeout(this.hiddenTimeId),this.hide(),s({errMsg:"hideToast:ok"}))},getIconClass:function(){return this.state.image?"wx-toast-image-icon":"wx-toast-icon wx-icon-"+this.state.icon},hide:function(){this.setState({hidden:!0})},render:function(){if(!this.state.lazyLoaded)return null;var t={fontSize:"55px",color:"#ffffff",display:"block"};return this.state.image&&(t.backgroundImage="url("+s.getUrlFromFilePath(this.props.project,this.state.image)+")"),e.createElement("div",{style:{display:this.state.hidden?"none":"block"}},e.createElement("div",{className:"wx-toast-mask",style:{display:this.state.hideMask?"none":"block"}}),e.createElement("div",{className:"wx-toast"},e.createElement("i",{className:this.getIconClass(),style:t}),e.createElement("p",{className:"wx-toast-content"},this.state.title)))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewBackwardMask.js b/app/dist/components/simulator/webviewBackwardMask.js index 3a076a8f..09b9cbb3 100644 --- a/app/dist/components/simulator/webviewBackwardMask.js +++ b/app/dist/components/simulator/webviewBackwardMask.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js'),d=a.createClass({displayName:'WebviewBackwardMask',getInitialState:function(){return{show:!1}},_appEnterBackground:function(){this.setState({show:!0})},_appEnterForeground:function(){this.setState({show:!1})},componentDidMount:function(){c.on('APP_ENTER_BACKGROUND',this._appEnterBackground),c.on('APP_ENTER_FOREGROUND',this._appEnterForeground)},componentWillUnmount:function(){c.removeListener('APP_ENTER_BACKGROUND',this._appEnterBackground),c.removeListener('APP_ENTER_FOREGROUND',this._appEnterForeground)},render:function(){const e=this.state.show?b.displayBlock:b.displayNone;return a.createElement('div',{style:e,className:'simulator-backward-mask'},a.createElement('p',null,a.createElement('i',null),'\u540E\u53F0\u8FD0\u884C\u4E2D'))}});_exports=d}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),a=require("../../stores/windowStores.js"),r=require("../../actions/windowActions.js"),n=require("../../actions/webviewActions.js"),i=require("../../stores/projectStores.js"),s=require("url"),o=require("querystring"),c=require("../../config/sceneConfig.js"),l=c.sceneData,u=e.createClass({displayName:"WebviewBackwardMask",getInitialState:function(){return{lazyLoaded:!1,show:!1,beta:global.appConfig.isBeta}},_appEnterBackground:function(){this.setState({lazyLoaded:!0,show:!0})},_appEnterForeground:function(){this.setState({show:!1})},componentDidMount:function(){a.on("APP_ENTER_BACKGROUND",this._appEnterBackground),a.on("APP_ENTER_FOREGROUND",this._appEnterForeground)},componentWillUnmount:function(){a.removeListener("APP_ENTER_BACKGROUND",this._appEnterBackground),a.removeListener("APP_ENTER_FOREGROUND",this._appEnterForeground)},onItemClick:function(e){var t=e.currentTarget.dataset,c=t.scene,l=i.getCurrentProject(),u=a.getCurrentWebviewUrl(),d=s.parse(u),p=d.pathname.replace(/^\//,""),m=void 0;if("mini_program"===c&&(m={},l.initPath.enable&&(l.initPath.appid&&(m.appId=l.initPath.appid),l.initPath.referData)))try{m.extraData=JSON.parse(l.initPath.referData)}catch(e){}r.appEnterForeground({scene:c}),n.postMessageToAS({eventName:"onAppEnterForeground",data:{scene:c,path:p||"",referrerInfo:m,query:o.parse(d.query||"")},type:"ON_APPLIFECYCLE_EVENT"})},render:function(){if(!this.state.lazyLoaded)return null;var a=this.state.show?t.displayBlock:t.displayNone,r=[];for(var n in l)r.push(e.createElement("div",{className:"simulator-backward-item","data-scene":n,onClick:this.onItemClick},e.createElement("p",null,n+": "+l[n])));return e.createElement("div",{style:a,className:"simulator-backward-mask"},e.createElement("div",{className:"simulator-backward-dialog",style:this.state.beta?t.displayNone:{}},e.createElement("div",{className:"simulator-backward-dialog-hd"},e.createElement("p",null,"已转为后台运行,可通过以下方式返回前台运行")),e.createElement("div",{className:"simulator-backward-dialog-bd"},e.createElement("div",{className:"simulator-backward-list"},r))))}});_exports=u}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewbody.js b/app/dist/components/simulator/webviewbody.js index 2940ddf4..3815b93e 100644 --- a/app/dist/components/simulator/webviewbody.js +++ b/app/dist/components/simulator/webviewbody.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../stores/webviewStores.js'),c=require('../../actions/leftviewActions.js'),d=require('../../stores/windowStores.js'),f=require('../../actions/windowActions.js'),g=require('../../actions/projectActions.js'),h=require('../../common/log/log.js'),j=require('../../config/config.js');require('../../common/jssdk/sdkNameTrans.js');const k=require('../../utils/newReport.js'),l=require('./console/consoleHandler.js'),m=require('./private/private.js');var n=!1;const o=function(s){f.showTipsMsg({msg:s,type:'error'})},p=function(s,t){f.showConfirm({content:s,type:'confirm',callback:t})};var q={};const r=a.createClass({displayName:'WebviewBody',getInitialState:function(){return{webviewID:parseInt(this.props.webviewID)}},captureVisibleRegion:function(){this.webview.captureVisibleRegion(s=>{this.props.getSimulatorActions('S_GET_SNAPSHOT',this.state.webviewID,{dataURI:s})})},reload:function(){this.webview.reload()},_setWebviewActions:function(s,t){let u=this.webview,v=t.act,w=this.postMessage;switch(this.props.project&&'reLoad'===v&&(v='reBuild'),v){case'reBuild':{this.props.project&&setTimeout(()=>{g.restart(this.props.project),k('project_shortcut_restart',this.props.project.appid)},17);break}case'reLoad':{this.reload();break}case'goBack':{this.props.goBack();break}case'goForward':{u.forward();break}case'load':{n='urlbar'!==t.from,u.src=t.url;break}case'goToBlank':{u.src='app/html/about.html';break}case'sendMsg':{let x={sdkName:t.sdkName,res:t.res};w('webframe',x,'INVOKE_SDK',t.ext);break}case'sendMsgFromAppService':{w('webframe',t,'MSG_FROM_APPSERVICE');break}case'open':{nw.Shell.openExternal(u.src);break}case'CAPTURE':this.captureVisibleRegion();}},_getJSSDKRes:function(s,t,u,v){this.postMessage('webframe',{sdkName:t,res:u},'GET_JSSDK_RES',v)},setUserAgentOverride:function(s){s=s||b.getUA(),s=s.replace('{{webviewID}}',this.state.webviewID),this.props.project&&(s=`${s} weapp/${this.id}`),this.webview.setUserAgentOverride(s)},setWebviewSrc:function(s){this.webview.src=s},upWebviewStatus:function(s){let t=this.webview,u={url:t.src,canGoBack:t.canGoBack()};this.props.getSimulatorActions('S_UP_WEBVIEW_STATUS',this.state.webviewID,Object.assign(s,u))},loadstart:function(){this.webview.addEventListener('loadstart',s=>{s.isTopLevel&&this.upWebviewStatus({loading:'start'})})},loadcommit:function(){let s=this.webview;s.addEventListener('loadcommit',t=>{if(t.isTopLevel&&(this.upWebviewStatus({type:'loadcommit'}),this.props.project&&(q={}),!this.initDevtools)){if(this.props.project){let u=this.props.offset;this.props.getSimulatorActions('S_START_DEBUGGEE',this.state.webviewID,{webview:s,webviewOffset:u})}else{let u=this.props.offset;this.props.getSimulatorActions('S_OPEN_DEVTOOLS',this.state.webviewID,{webview:s,webviewOffset:u})}this.initDevtools=!0}})},loadstop:function(){this.webview.addEventListener('loadstop',s=>{this.upWebviewStatus({loading:'stop'}),this.props.project||this.postMessage('webframe',{},'COMMAND_GET_TITLE'),c.hideAll(this.state.webviewID)})},initEvent:function(){this.loadstart(),this.loadcommit(),this.loadstop();let s=this.webview;global.appConfig.isDev||s.contextMenus.onShow.addListener(t=>{t.preventDefault()}),s.addEventListener('newwindow',t=>{'new_window'===t.windowOpenDisposition&&(s.src=t.targetUrl)}),s.addEventListener('dialog',t=>{let u=t.messageType||'',v=t.messageText,w=t.dialog;if('alert'===u){if(this.props.isMap&&0===v.indexOf('map handle:')){let x=v.replace('map handle:','');this.props.chooseLocation(JSON.parse(x))}else o(v);}else if('confirm'===u)t.preventDefault(),p(v,x=>{x?w.ok():w.cancel()});else if('prompt'===u){let x=prompt(v);null===x?w.cancel():w.ok(x)}})},onBeforeSendHeaders:function(){let s=this.webview,t=s.request;t.onBeforeSendHeaders.addListener(u=>{let v=this.props.project;if(v){let A=u.requestHeaders||[],B=A.findIndex(C=>{return'cookie'===C.name.toLowerCase()});A.splice(B,1);for(var y=0;y']},['blocking','requestHeaders'])},onCompleted:function(){let s=this.webview,t=s.request;t.onCompleted.addListener(u=>{let{type:v,statusCode:w}=u;'script'!==v&&'main_frame'!==v&&400<=w&&l({message:j.WEBVIEW_NETWORK_ERROR,details:u})},{urls:['']},['responseHeaders'])},onErrorOccurred:function(){let s=this.webview,t=s.request;t.onErrorOccurred.addListener(u=>{let{type:v}=u;'script'===v||'main_frame'===v||'net::ERR_ABORTED'===u.error||l({message:j.WEBVIEW_NETWORK_ERROR,details:u})},{urls:['']})},onBeforeRequest:function(){let s=this.webview,t=s.request;t.onBeforeRequest.addListener(u=>{if('main_frame'!==u.type)return{};if(!n)return n=!0,{};let v=u.url;if(/^chrome-extension:\/\//.test(v)||/^file:\/\//.test(v))return{};if(j.weappURLRegular.test(v))return{};let w=/\#wechat_redirect$/.test(v);return this.props.getSimulatorActions('S_GET_A8KEY',this.state.webviewID,{url:v,isSync:w}),{cancel:w}},{urls:['']},['blocking'])},onHeadersReceived:function(){let s=this.webview,t=s.request;t.onHeadersReceived.addListener(u=>{u.responseHeaders||[],u.type;let v=this.state.webviewID;'main_frame'===u.type&&this.props.getSimulatorActions('S_CLEAN_WEBVIEW',v)},{urls:['']},['blocking','responseHeaders'])},initRequest:function(){this.onBeforeRequest(),this.onBeforeSendHeaders(),this.onHeadersReceived(),this.onCompleted(),this.onErrorOccurred()},permissionrequest:function(){this.webview.addEventListener('permissionrequest',function(s){'geolocation'===s.permission&&s.request.allow()})},addContentScripts:function(){this.webview.addContentScripts([{name:'contentscript',matches:[''],js:{files:['app/dist/contentscript/contentScript.js']},run_at:'document_start'}])},_initport:function(s){`webview${this.state.webviewID}`===s.name&&(this.port=s,this.portID=s.name,b.addWebviewPorts(this.portID,this.port),this.port.onMessage.addListener(this.onMessage),this.port.onDisconnect.addListener(()=>{b.delWebviewPorts(this.portID),this.port.onMessage.removeListener(this.onMessage),delete this.port,delete this.portID,this.msgQuery=[]}),this.postMessage('contentscript',{},'SHAKE_HANDS'))},initRuntime:function(){chrome.runtime.onConnect.addListener(this._initport)},toAppService:function(s){s.webviewID=this.state.webviewID,this.props.getSimulatorActions('S_POSTMSG_TO_AS',this.state.webviewID,s)},onMessage:function(s){let t=s.command,u=this.state.webviewID,v=s.msg;if(this.props.project){let w=s.weappID;if(w!==this.id)return h.error(`webviewbody.js get a message from a wrong webview`),void chrome.runtime.onConnect.removeListener(this._initport)}switch(t){case'COMMAND_GET_TITLE':{this.upWebviewStatus(v);break}case'EXEC_JSSDK':{let w=v.sdkName;if(/^private_/.test(w)){let x=w.replace(/^private_/,'');m[x]&&m[x](v.args,(y,z)=>{z=y?{errMsg:`${w}:fail`}:z,this._getJSSDKRes(u,w,z,{args:v.args})})}else v.ext=s.ext,this.props.getSimulatorActions('S_EXEC_JSSDK',u,v);break}case'TO_APP_SERVICE':{this.toAppService(v);break}case'PULLDOWN_REFRESH':{this.props.getSimulatorActions('S_POSTMSG_TO_AS',this.state.webviewID,{eventName:'onPullDownRefresh',data:{},webviewID:this.state.webviewID});break}case'WEBVIEW_READY':{this.props.project&&('redirectTo'===this.props.type||'navigateTo'===this.props.type||'switchTab'===this.props.type?this.props.postAppRoute(this.webview.src,this.state.webviewID,this.props.type):0===this.state.webviewID&&this.props.postAppRoute(this.webview.src,this.state.webviewID,'appLaunch'));break}}},postMessage:function(s,t,u,v){let w={to:s,msg:t,command:u,ext:v};return(w.webviewID=this.state.webviewID,w.id=this.id,!this.port)?void this.msgQuery.push(w):void(this.msgQuery.length&&(this.msgQuery.forEach(x=>{this.port.postMessage(x)}),this.msgQuery=[]),this.port.postMessage(w))},_setInterfaceRes:function(s,t,u){'closeWindow'===t&&(0===s?this.webview.src='app/html/about.html':this.props.goBack(!0))},_setWebviewInfo:function(s){let t=s.ua;t&&this.setUserAgentOverride(t),this.props.project?setTimeout(()=>{g.restart(this.props.project),k('project_shortcut_restart',this.props.project.appid)},17):this.reload()},_clearWebviewData:function(s){let t=s.callBack;delete s.callBack,this.webview.clearData({since:0},s,()=>{t&&t()})},_touchSetSuc:function(){this.setWebviewSrc(this.props.href)},_didMount:function(){let s=this.refs.container,t=this.state.webviewID,u=this.webview=document.createElement('webview');u.className=`simulator-bd-webview_body webviewbody${this.state.webviewID}`,u.setAttribute('partition','persist:trusted'),s.appendChild(u),this.setUserAgentOverride(),this.addContentScripts(),this.initRuntime();let v=this.props.href;this.props.project?(b.on(`TOUCH_SET_SUC_${t}`,this._touchSetSuc),u.src='about:blank',u.addEventListener('consolemessage',w=>{let x=w.message;q[x]||(q[x]=!0,l(w))})):this.setWebviewSrc(v),this.initEvent(),this.initRequest(),this.permissionrequest(),b.on(`SET_WEBVIEW_ACTION_${t}`,this._setWebviewActions),b.on(`GET_JSSDK_RES_${t}`,this._getJSSDKRes),b.on(`SET_INTERFACE_RES_${t}`,this._setInterfaceRes),d.on(`INIT_DEVTOOLS_SUCCESS${t}`,this._successDevtools),b.on('SET_WEBVIEW_INFO',this._setWebviewInfo),b.on('CLEAR_WEBVIEW_DATA',this._clearWebviewData),b.on('STOP_PULL_DOWN_REFRESH',this._onStopPullDownRefresh)},_onStopPullDownRefresh:function(){this.postMessage('webframe',{},'STOP_PULL_DOWN_REFRESH')},_successDevtools:function(){this.postMessage('webframe',{},'INIT_DEVTOOLS_SUCCESS')},componentDidMount:function(){this.id=parseInt(100000*Math.random()),this.msgQuery=[],this.props.project&&0===this.state.webviewID?b.on('APPSERVICE_INIT',this._didMount):this._didMount()},componentWillUnmount:function(){let s=this.state.webviewID,t=global.contentDocumentBody.querySelector(`.devtools${s}`);t&&t.remove(),this.initDevtools=!1,b.removeListener('CLEAR_WEBVIEW_DATA',this._clearWebviewData),b.removeListener('APPSERVICE_INIT',this._didMount),b.removeListener(`SET_WEBVIEW_ACTION_${s}`,this._setWebviewActions),b.removeListener(`GET_JSSDK_RES_${s}`,this._getJSSDKRes),b.removeListener(`SET_INTERFACE_RES_${s}`,this._setInterfaceRes),b.removeListener('SET_WEBVIEW_INFO',this._setWebviewInfo),b.removeListener('STOP_PULL_DOWN_REFRESH',this._onStopPullDownRefresh),d.removeListener(`INIT_DEVTOOLS_SUCCESS${this.state.webviewID}`,this._successDevtools),this.props.project&&b.removeListener(`TOUCH_SET_SUC_${s}`,this._touchSetSuc),chrome.runtime.onConnect.removeListener(this._initport)},render:function(){return a.createElement('div',{className:'simulator-bd-webview',ref:'container'})}});_exports=r}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../stores/webviewStores.js"),s=require("../../actions/leftviewActions.js"),i=require("../../stores/windowStores.js"),r=require("../../actions/windowActions.js"),o=require("../../actions/projectActions.js"),n=require("../../common/log/log.js"),a=require("../../config/config.js"),c=(require("../../common/jssdk/sdkNameTrans.js"),require("./console/consoleHandler.js")),p=require("./private/private.js"),u=!1,w=function(e){r.showTipsMsg({msg:e,type:"error"})},h=function(e,t){r.showConfirm({content:e,type:"confirm",callback:t})},v={},l=e.createClass({displayName:"WebviewBody",getInitialState:function(){return{webviewID:parseInt(this.props.webviewID)}},captureVisibleRegion:function(){var e=this;this.webview.captureVisibleRegion(function(t){e.props.getSimulatorActions("S_GET_SNAPSHOT",e.state.webviewID,{dataURI:t})})},reload:function(){this.webview.reload()},_setWebviewActions:function(e,t){var s=this,i=this.webview,r=t.act,n=this.postMessage;switch(this.props.project&&"reLoad"===r&&(r="reBuild"),r){case"reBuild":this.props.project&&setTimeout(function(){o.restart(s.props.project)},17);break;case"reLoad":this.reload();break;case"goBack":this.props.goBack();break;case"goForward":i.forward();break;case"load":u="urlbar"!==t.from,i.src=t.url;break;case"goToBlank":i.src="app/html/about.html";break;case"sendMsg":var a={sdkName:t.sdkName,res:t.res};n("webframe",a,"INVOKE_SDK",t.ext);break;case"sendMsgFromAppService":n("webframe",t,"MSG_FROM_APPSERVICE");break;case"open":nw.Shell.openExternal(i.src);break;case"CAPTURE":return void this.captureVisibleRegion()}},_getJSSDKRes:function(e,t,s,i){var r={sdkName:t,res:s};this.postMessage("webframe",r,"GET_JSSDK_RES",i)},setUserAgentOverride:function(e){e=e||t.getUA(),e=e.replace("{{webviewID}}",this.state.webviewID),this.props.project&&(e=e+" weapp/"+this.id),this.webview.setUserAgentOverride(e)},setWebviewSrc:function(e){this.webview.src=e},upWebviewStatus:function(e){var t=this.webview,s={url:t.src,canGoBack:t.canGoBack()};this.props.getSimulatorActions("S_UP_WEBVIEW_STATUS",this.state.webviewID,Object.assign(e,s))},loadstart:function(){var e=this;this.webview.addEventListener("loadstart",function(t){t.isTopLevel&&e.upWebviewStatus({loading:"start"})})},loadcommit:function(){var e=this,t=this.webview;t.addEventListener("loadcommit",function(s){if(s.isTopLevel&&(e.upWebviewStatus({type:"loadcommit"}),e.props.project&&(v={}),!e.initDevtools)){if(e.props.project){var i=e.props.offset;e.props.getSimulatorActions("S_START_DEBUGGEE",e.state.webviewID,{webview:t,webviewOffset:i})}else{var r=e.props.offset;e.props.getSimulatorActions("S_OPEN_DEVTOOLS",e.state.webviewID,{webview:t,webviewOffset:r})}e.initDevtools=!0}})},loadstop:function(){var e=this;this.webview.addEventListener("loadstop",function(t){e.upWebviewStatus({loading:"stop"}),e.props.project||e.postMessage("webframe",{},"COMMAND_GET_TITLE"),s.hideAll(e.state.webviewID)})},initEvent:function(){var e=this;this.loadstart(),this.loadcommit(),this.loadstop();var t=this.webview;global.appConfig.isDev||t.contextMenus.onShow.addListener(function(e){e.preventDefault()}),t.addEventListener("newwindow",function(e){"new_window"===e.windowOpenDisposition&&(t.src=e.targetUrl)}),t.addEventListener("dialog",function(t){var s=t.messageType||"",i=t.messageText,r=t.dialog;if("alert"===s)if(e.props.isMap&&0===i.indexOf("map handle:")){var o=i.replace("map handle:","");e.props.chooseLocation(JSON.parse(o))}else w(i);else if("confirm"===s)t.preventDefault(),h(i,function(e){e?r.ok():r.cancel()});else if("prompt"===s){var n=prompt(i);null!==n?r.ok(n):r.cancel()}})},onBeforeSendHeaders:function(){var e=this,t=this.webview,s=t.request;s.onBeforeSendHeaders.addListener(function(t){var s=e.props.project;if(s){var i=t.requestHeaders||[],r=i.findIndex(function(e){return"cookie"===e.name.toLowerCase()});i.splice(r,1);for(var o=0;o"]},["blocking","requestHeaders"])},onCompleted:function(){var e=this.webview,t=e.request;t.onCompleted.addListener(function(e){var t=e.type,s=e.statusCode;"script"!==t&&"main_frame"!==t&&s>=400&&c({message:a.WEBVIEW_NETWORK_ERROR,details:e})},{urls:[""]},["responseHeaders"])},onErrorOccurred:function(){var e=this.webview,t=e.request;t.onErrorOccurred.addListener(function(e){var t=e.type;"script"!==t&&"main_frame"!==t&&"net::ERR_ABORTED"!==e.error&&c({message:a.WEBVIEW_NETWORK_ERROR,details:e})},{urls:[""]})},onBeforeRequest:function(){var e=this,t=this.webview,s=t.request;s.onBeforeRequest.addListener(function(t){if("main_frame"!==t.type)return{};if(!u)return u=!0,{};var s=t.url;if(/^chrome-extension:\/\//.test(s)||/^file:\/\//.test(s))return{};if(a.weappURLRegular.test(s))return{};var i=/\#wechat_redirect$/.test(s);return e.props.getSimulatorActions("S_GET_A8KEY",e.state.webviewID,{url:s,isSync:i}),{cancel:i}},{urls:[""]},["blocking"])},onHeadersReceived:function(){var e=this,t=this.webview,s=t.request;s.onHeadersReceived.addListener(function(t){var s=t.responseHeaders||[],i=(t.type,e.state.webviewID);if("main_frame"===t.type&&e.props.getSimulatorActions("S_CLEAN_WEBVIEW",i),"xmlhttprequest"===t.type){for(var r=!1,o=0;o"]},["blocking","responseHeaders"])},initRequest:function(){this.onBeforeRequest(),this.onBeforeSendHeaders(),this.onHeadersReceived(),this.onCompleted(),this.onErrorOccurred()},permissionrequest:function(){this.webview.addEventListener("permissionrequest",function(e){"geolocation"===e.permission&&e.request.allow()})},addContentScripts:function(){this.webview.addContentScripts([{name:"contentscript",matches:[""],js:{files:["app/dist/contentscript/contentScript.js"]},run_at:"document_start"}])},_initport:function(e){var s=this;e.name==="webview"+this.state.webviewID&&(this.port=e,this.portID=e.name,t.addWebviewPorts(this.portID,this.port),this.port.onMessage.addListener(this.onMessage),this.port.onDisconnect.addListener(function(){t.delWebviewPorts(s.portID),s.port.onMessage.removeListener(s.onMessage),delete s.port,delete s.portID,s.msgQuery=[]}),this.postMessage("contentscript",{},"SHAKE_HANDS"))},initRuntime:function(){chrome.runtime.onConnect.addListener(this._initport)},toAppService:function(e){e.webviewID=this.state.webviewID,this.props.getSimulatorActions("S_POSTMSG_TO_AS",this.state.webviewID,e)},onMessage:function(e){var t=this,s=e.command,r=this.state.webviewID,o=e.msg;if(this.props.project){var a=e.weappID;if(a!==this.id){n.error("webviewbody.js get a message from a wrong webview"),chrome.runtime.onConnect.removeListener(this._initport),n.info("webviewbody.js this.componentWillUnmount begin");try{this.componentWillUnmount(),n.info("webviewbody.js this.componentWillUnmount end")}catch(e){this.webview.remove(),n.error("webviewbody.js trigger this.componentWillUnmount() error "+e.toString())}return}}switch(s){case"COMMAND_GET_TITLE":this.upWebviewStatus(o);break;case"EXEC_JSSDK":var c=o.sdkName;if(/^private_/.test(c)){var u=c.replace(/^private_/,"");p[u]&&p[u](o.args,function(e,s){s=e?{errMsg:c+":fail"}:s,t._getJSSDKRes(r,c,s,{args:o.args})})}else o.ext=e.ext,this.props.getSimulatorActions("S_EXEC_JSSDK",r,o);break;case"TO_APP_SERVICE":this.toAppService(o);break;case"PULLDOWN_REFRESH":this.props.getSimulatorActions("S_POSTMSG_TO_AS",this.state.webviewID,{eventName:"onPullDownRefresh",data:{},webviewID:this.state.webviewID});break;case"WEBVIEW_READY":this.props.project&&("redirectTo"===this.props.type||"navigateTo"===this.props.type||"switchTab"===this.props.type||"reLaunch"===this.props.type?this.props.postAppRoute(this.webview.src,this.state.webviewID,this.props.type):0===this.state.webviewID&&this.props.postAppRoute(this.webview.src,this.state.webviewID,"appLaunch"),i.isEditorFocus()||this.webview.focus())}},postMessage:function(e,t,s,i){var r=this,o={to:e,msg:t,command:s,ext:i};return o.webviewID=this.state.webviewID,o.id=this.id,this.port?(this.msgQuery.length&&(this.msgQuery.forEach(function(e){r.port.postMessage(e)}),this.msgQuery=[]),void this.port.postMessage(o)):void this.msgQuery.push(o)},_setInterfaceRes:function(e,t,s){"closeWindow"===t&&(0===e?this.webview.src="app/html/about.html":this.props.goBack(!0))},_setWebviewInfo:function(e){var t=this,s=e.ua;s&&this.setUserAgentOverride(s),this.props.project?setTimeout(function(){o.restart(t.props.project)},17):this.reload()},_clearWebviewData:function(e){var t=e.callBack;delete e.callBack,this.webview.clearData({since:0},e,function(){t&&t()})},_touchSetSuc:function(){this.setWebviewSrc(this.props.href)},_didMount:function(){var e=this.refs.container,s=this.state.webviewID,r=this.webview=document.createElement("webview");r.className="simulator-bd-webview_body webviewbody"+this.state.webviewID,r.setAttribute("partition","persist:trusted"),e.appendChild(r),this.setUserAgentOverride(),this.addContentScripts(),this.initRuntime();var o=this.props.href;this.props.project?(t.on("TOUCH_SET_SUC_"+s,this._touchSetSuc),r.src="about:blank",r.addEventListener("consolemessage",function(e){var t=e.message;v[t]||(v[t]=!0,c(e))})):this.setWebviewSrc(o),this.initEvent(),this.initRequest(),this.permissionrequest(),t.on("SET_WEBVIEW_ACTION_"+s,this._setWebviewActions),t.on("GET_JSSDK_RES_"+s,this._getJSSDKRes),t.on("SET_INTERFACE_RES_"+s,this._setInterfaceRes),i.on("INIT_DEVTOOLS_SUCCESS"+s,this._successDevtools),t.on("SET_WEBVIEW_INFO",this._setWebviewInfo),t.on("CLEAR_WEBVIEW_DATA",this._clearWebviewData),t.on("STOP_PULL_DOWN_REFRESH",this._onStopPullDownRefresh)},_onStopPullDownRefresh:function(){this.postMessage("webframe",{},"STOP_PULL_DOWN_REFRESH")},_successDevtools:function(){this.postMessage("webframe",{},"INIT_DEVTOOLS_SUCCESS")},componentDidMount:function(){this.id=parseInt(1e5*Math.random()),this.msgQuery=[],this.props.project&&0===this.state.webviewID?t.on("APPSERVICE_INIT",this._didMount):this._didMount()},componentWillUnmount:function(){var e=this.state.webviewID;this.initDevtools=!1,t.removeListener("CLEAR_WEBVIEW_DATA",this._clearWebviewData),t.removeListener("APPSERVICE_INIT",this._didMount),t.removeListener("SET_WEBVIEW_ACTION_"+e,this._setWebviewActions),t.removeListener("GET_JSSDK_RES_"+e,this._getJSSDKRes),t.removeListener("SET_INTERFACE_RES_"+e,this._setInterfaceRes),t.removeListener("SET_WEBVIEW_INFO",this._setWebviewInfo),t.removeListener("STOP_PULL_DOWN_REFRESH",this._onStopPullDownRefresh),i.removeListener("INIT_DEVTOOLS_SUCCESS"+this.state.webviewID,this._successDevtools),this.props.project&&t.removeListener("TOUCH_SET_SUC_"+e,this._touchSetSuc),chrome.runtime.onConnect.removeListener(this._initport),this.webview&&this.webview.remove()},render:function(){return e.createElement("div",{className:"simulator-bd-webview",ref:"container"})}});_exports=l}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewcard.js b/app/dist/components/simulator/webviewcard.js index c14e3a99..16b9aa18 100644 --- a/app/dist/components/simulator/webviewcard.js +++ b/app/dist/components/simulator/webviewcard.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/webviewStores.js'),d=require('../../actions/webviewActions.js');require('../../actions/leftviewActions.js'),require('../../stores/leftviewStores.js');const e=require('../../common/log/log.js'),f=require('../../common/jssdk/sdkNameTrans.js'),g=require('../../config/errcodeConfig.js'),h=a.createClass({displayName:'WebviewCard',getInitialState:function(){return{showDetails:!1}},cancel:function(){this.close();let j=this.props.cardInfo,k=j.data,l=j.webviewID,m=j.sdkName,n=j.isHavePurview;if('batchViewCard'!==m){let p={errMsg:`${f.getSdkDisplayName(m)}:cancel`};d.sendJSSDKRes(l,m,p,k.ext),d.setSdkLog(l,k,n,p,{type:'CARD_SDK'})}},close:function(j){return this.state.showDetails?void this.setState({showDetails:!1}):void this.props.closeCard()},batchAddCard:function(j){let k=j.currentTarget,l=k.dataset,m=l.index,n=this.props.cardInfo,o=n.data,p=o.args,q=n.webviewID,r=n.sdkName,s=n.isHavePurview,t=p.appId,u=this.props.cardInfo.cardData[m],v=p.card_list[m],w=[];for(let B=0;B{if(!B){let E=JSON.parse(D),F=E.baseresponse;if(0===F.errcode){let G={errMsg:'addCard:ok',card_list:JSON.stringify(w)},H=w.map(I=>{return{cardExt:I.card_ext,cardId:I.card_id,isSuccess:!0}});d.sendJSSDKRes(q,r,G,o.ext),d.setSdkLog(q,o,s,{errMsg:'addCard:ok',cardList:H},A),this.close()}else{let G={errMsg:`addCard:fail; ${F.errmsg}`};d.sendJSSDKRes(q,r,G,o.ext),d.setSdkLog(q,o,s,G,A),this.close()}}else{e.error(`WebviewCards.js batchAddCard request error ${JSON.stringify(B)}`);let E={errMsg:`addCard:fail; ${JSON.stringify(B)}`};d.sendJSSDKRes(q,r,E,o.ext),d.setSdkLog(q,o,s,E,A),this.close()}})},chooseCard:function(j){let k=this.props.cardInfo,l=k.data,m=k.sdkName,n=k.webviewID,o=k.isHavePurview,p=j.currentTarget,q=p.dataset,r=[{card_id:q.cardid,encrypt_code:q.encryptcode}],s={errMsg:'chooseCard:ok',choose_card_info:JSON.stringify(r)};d.sendJSSDKRes(n,m,s,l.ext),d.setSdkLog(n,l,o,s,{type:'CARD_SDK'}),this.close()},formatTime:function(j){let k=new Date(1000*j);return`${k.getFullYear()}.${k.getMonth()+1}.${k.getDate()}`},cardDetail:function(j){let k=j.currentTarget,l=k.dataset,m=l.index;this.setState({showDetails:!0,cardIndex:m})},render:function(){let j=this.props.showCard?{}:b.displayNone,k=c.getOffset();delete k.dpr,j=Object.assign({},j,k);let l=this.props.cardInfo,m=l.sdkName,n=l.cardData,o=a.createElement('div',null);if('batchAddCard'===m){let p={},q=n.map((r,s)=>{if(r.errmsg)return a.createElement('div',{className:'webview-card-add-item',key:s},a.createElement('div',{className:'webview-card-add-item_top'},a.createElement('div',{className:'webview-card-add-item_details'},a.createElement('div',{className:'webview-card-add-item_name'},'cardId: ',r.card_id),a.createElement('div',{className:'webview-card-add-item_info'},a.createElement('span',{className:'webview-card-add-item_intro'},'errmsg: ',r.errmsg)))),a.createElement('div',{className:'webview-card-add-item_bottom webview-card-add-item_bottom_error'},a.createElement('div',{className:'webview-card-add-item_button'},'\u9519\u8BEF\u5361\u5238')));let t=r.card_tp_info,u=t.brand_name,v=t.title,w=t.logo_url,x=r.card_data_info;p.backgroundColor=t.color;let B,y=this.formatTime(t.begin_time),z=this.formatTime(t.end_time),A=0===x.limit_num;return B=A?a.createElement('div',{className:'webview-card-add-item_bottom webview-card-add-item_bottom_disable',style:p},a.createElement('div',{className:'webview-card-add-item_button_error'},t.limit_wording)):a.createElement('div',{'data-index':s,onClick:this.batchAddCard,className:'webview-card-add-item_bottom',style:p},a.createElement('div',{className:'webview-card-add-item_button'},t.accept_wording)),a.createElement('div',{className:'webview-card-add-item',key:s},a.createElement('div',{className:'webview-card-add-item_top'},a.createElement('div',{className:'webview-card-add-item_left'},a.createElement('img',{className:'webview-card-add-item_img',src:w})),a.createElement('div',{className:'webview-card-add-item_details'},a.createElement('div',{className:'webview-card-add-item_name'},u),a.createElement('div',{className:'webview-card-add-item_info'},a.createElement('span',{className:'webview-card-add-item_intro'},v),a.createElement('span',{className:'webview-card-add-item_num'},'X',r.amount)),a.createElement('div',{className:'webview-card-add-item_time'},y,' - ',z))),B)});o=a.createElement('div',{className:'webview-card-add',style:p},a.createElement('div',{className:'webview-card-add-header'},a.createElement('div',{className:'webview-card-add-header_button',onClick:this.cancel},' \u53D6\u6D88 '),a.createElement('div',{className:'webview-card-add-header_title'},' \u6DFB\u52A0\u5361\u5377 ')),a.createElement('div',{className:'webview-card-add-container'},q))}else if('chooseCard'===m){let p=n.available_cards,q=p.map((s,t)=>{return a.createElement('div',{onClick:this.chooseCard,key:t,'data-appid':s.app_id,'data-cardid':s.card_tp_id,'data-encryptcode':s.encrypt_code,className:'webview-card-choose-item'},a.createElement('div',{className:'webview-card-choose_m'},a.createElement('div',{className:'webview-card-choose_left'},a.createElement('img',{className:'webview-card-choose-item_img',src:s.logo_url})),a.createElement('div',{className:'webview-card-choose_details'},a.createElement('div',{className:'webview-card-choose-item_name'},s.sub_title),a.createElement('div',{className:'webview-card-choose-item_info'},s.title))))}),r;r=q.length?a.createElement('div',{className:'webview-card-choose-container',style:{height:k.height-42}},a.createElement('span',{className:'webview-card-choose-mycard'},'\u6211\u7684\u5361\u5377'),a.createElement('div',{className:'webview-card-choose-item'},q)):a.createElement('div',{className:'webview-card-choose-container',style:{height:k.height-42}},a.createElement('span',{className:'webview-card-choose-mycard webview-card-choose-mycardEmpty'},'\u6682\u65E0\u53EF\u6DFB\u52A0\u7684\u5361\u5238')),o=a.createElement('div',{className:'webview-card-choose'},a.createElement('div',{className:'webview-card-choose-header'},a.createElement('div',{className:'webview-card-choose-header_button',onClick:this.cancel},' \u53D6\u6D88 '),a.createElement('div',{className:'webview-card-choose-header_title'},' \u9009\u62E9\u5361\u5377 ')),r)}else if('batchViewCard'===m){let p=l.cardData.retData.card_array,q=l.cardData.errData,r=!!q.length,s=this.state.showDetails;if(1===p.length&&!r||s){let t=s?p[this.state.cardIndex]:p[0],u=t.card_data_info,v=this.formatTime(u.begin_time),w=this.formatTime(u.end_time),x=t.card_tp_info,y=x.brand_name,z=x.title,A=x.logo_url,B=0===x.limit_num,C={};C.backgroundColor=x.color,B?a.createElement('div',{className:'webview-card-add-item_bottom webview-card-add-item_bottom_disable'},a.createElement('div',{className:'webview-card-add-item_button_error'},x.limit_wording)):a.createElement('div',{onClick:this.batchAddCard,className:'webview-card-add-item_bottom'},a.createElement('div',{className:'webview-card-add-item_button'},x.accept_wording));let D=s?'\u8FD4\u56DE':'\u5173\u95ED';o=a.createElement('div',{className:'webview-card-open',style:C},a.createElement('div',{className:'webview-card-open-header'},a.createElement('div',{className:'webview-card-open-header_button',onClick:this.cancel},' ',D,' ')),a.createElement('div',{className:'webview-card-open-container'},a.createElement('div',{className:'webview-card-open_top'},a.createElement('img',{className:'webview-card-open-item_img',src:A})),a.createElement('div',{className:'webview-card-open_middle'},a.createElement('div',{className:'webview-card-open-name'},y),a.createElement('div',{className:'webview-card-open-intro'},z),a.createElement('div',{className:'webview-card-open-item_button',style:C},a.createElement('div',{className:'webview-card-open_buttom_wording'},'\u7ACB\u5373\u4F7F\u7528')),a.createElement('div',{className:'webview-card-open-time'},'\u6709\u6548\u671F: ',v,'-',w)),a.createElement('div',{className:'webview-card-open_bottom'},a.createElement('div',{className:'webview-card-open_detail'},'\u5151\u6362\u5377\u8BE6\u60C5'),a.createElement('div',{className:'webview-card-open_detail'},'\u516C\u4F17\u53F7'),a.createElement('div',{className:'webview-card-open_detail'},'\u5728\u7EBF\u5151\u6362'))))}else{let t=p.map((v,w)=>{let x=v.card_tp_info;return a.createElement('div',{onClick:this.cardDetail,key:w,'data-index':w,className:'webview-card-choose-item'},a.createElement('div',{className:'webview-card-choose_m'},a.createElement('div',{className:'webview-card-choose_left'},a.createElement('img',{className:'webview-card-choose-item_img',src:x.logo_url})),a.createElement('div',{className:'webview-card-choose_details'},a.createElement('div',{className:'webview-card-choose-item_name'},x.brand_name),a.createElement('div',{className:'webview-card-choose-item_info'},x.title))))}),u=q.map((v,w)=>{let x='INVALID_CODE'===g[v.errcode]?'\u9519\u8BEF\u5361\u5238 ID':'\u9519\u8BEF\u5361\u5377 code';return a.createElement('div',{key:w,className:'webview-card-choose-item'},a.createElement('div',{className:'webview-card-choose_mErr'},a.createElement('div',{className:'webview-card-choose_details'},a.createElement('div',{className:'webview-card-choose-item_error'},x),a.createElement('div',{className:'webview-card-choose-item_error'},'cardId: ',v.card_id),a.createElement('div',{className:'webview-card-choose-item_error'},'code: ',v.code))))});o=a.createElement('div',{className:'webview-card-choose'},a.createElement('div',{className:'webview-card-choose-header'},a.createElement('div',{className:'webview-card-choose-header_button',onClick:this.cancel},' \u5173\u95ED '),a.createElement('div',{className:'webview-card-choose-header_title'},' \u5361\u5238\u5217\u8868 ')),a.createElement('div',{className:'webview-card-choose-container',style:{height:k.height-42}},a.createElement('div',{className:'webview-card-choose-item'},t,u)))}}return a.createElement('div',{className:'webview-card',style:j},o)}});_exports=h}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),a=require("../../cssStr/cssStr.js"),t=require("../../stores/webviewStores.js"),r=require("../../actions/webviewActions.js"),c=(require("../../actions/leftviewActions.js"),require("../../stores/leftviewStores.js"),require("../../common/log/log.js")),i=require("../../common/jssdk/sdkNameTrans.js"),d=require("../../config/errcodeConfig.js"),s="https://mp.weixin.qq.com/debug/cgi-bin/webdebugger/acceptcarditem",m=e.createClass({displayName:"WebviewCard",getInitialState:function(){return{showDetails:!1}},cancel:function(){this.close();var e=this.props.cardInfo,a=e.data,t=e.webviewID,c=e.sdkName,d=e.isHavePurview;if("batchViewCard"!==c){var s={errMsg:i.getSdkDisplayName(c)+":cancel"},m={type:"CARD_SDK"};r.sendJSSDKRes(t,c,s,a.ext),r.setSdkLog(t,a,d,s,m)}},close:function(e){return this.state.showDetails?void this.setState({showDetails:!1}):void this.props.closeCard()},batchAddCard:function(e){for(var a=this,t=e.currentTarget,i=t.dataset,d=i.index,m=this.props.cardInfo,o=m.data,l=o.args,n=m.webviewID,v=m.sdkName,w=m.isHavePurview,b=l.appId,_=this.props.cardInfo.cardData[d],h=l.card_list[d],N=[],E=0;E<_.amount;E++)N.push({card_id:h.card_id,card_ext:h.card_ext,is_succ:1});var p=require("../../common/request/request.js"),u={appid:b,acceptitem_list:N,js_checinfo_url:o.ext.url},g={url:s,body:JSON.stringify(u),method:"post",needToken:!0},f={type:"CARD_SDK"};p(g,function(e,t,i){if(e){c.error("WebviewCards.js batchAddCard request error "+JSON.stringify(e));var d={errMsg:"addCard:fail; "+JSON.stringify(e)};r.sendJSSDKRes(n,v,d,o.ext),r.setSdkLog(n,o,w,d,f),a.close()}else{var s=JSON.parse(i),m=s.baseresponse;if(0===m.errcode){var l={errMsg:"addCard:ok",card_list:JSON.stringify(N)},b=N.map(function(e){return{cardExt:e.card_ext,cardId:e.card_id,isSuccess:!0}}),_={errMsg:"addCard:ok",cardList:b};r.sendJSSDKRes(n,v,l,o.ext),r.setSdkLog(n,o,w,_,f),a.close()}else{var h={errMsg:"addCard:fail; "+m.errmsg};r.sendJSSDKRes(n,v,h,o.ext),r.setSdkLog(n,o,w,h,f),a.close()}}})},chooseCard:function(e){var a=this.props.cardInfo,t=a.data,c=a.sdkName,i=a.webviewID,d=a.isHavePurview,s=e.currentTarget,m=s.dataset,o={type:"CARD_SDK"},l=[{card_id:m.cardid,encrypt_code:m.encryptcode}],n={errMsg:"chooseCard:ok",choose_card_info:JSON.stringify(l)};r.sendJSSDKRes(i,c,n,t.ext),r.setSdkLog(i,t,d,n,o),this.close()},formatTime:function(e){var a=new Date(1e3*e);return a.getFullYear()+"."+(a.getMonth()+1)+"."+a.getDate()},cardDetail:function(e){var a=e.currentTarget,t=a.dataset,r=t.index;this.setState({showDetails:!0,cardIndex:r})},render:function(){var r=this,c=this.props.showCard?{}:a.displayNone,i=t.getOffset();delete i.dpr,c=Object.assign({},c,i);var s=this.props.cardInfo,m=s.sdkName,o=s.cardData,l=e.createElement("div",null);if("batchAddCard"===m){var n={},v=o.map(function(a,t){if(a.errmsg)return e.createElement("div",{className:"webview-card-add-item",key:t},e.createElement("div",{className:"webview-card-add-item_top"},e.createElement("div",{className:"webview-card-add-item_details"},e.createElement("div",{className:"webview-card-add-item_name"},"cardId: ",a.card_id),e.createElement("div",{className:"webview-card-add-item_info"},e.createElement("span",{className:"webview-card-add-item_intro"},"errmsg: ",a.errmsg)))),e.createElement("div",{className:"webview-card-add-item_bottom webview-card-add-item_bottom_error"},e.createElement("div",{className:"webview-card-add-item_button"},"错误卡券")));var c=a.card_tp_info,i=c.brand_name,d=c.title,s=c.logo_url,m=a.card_data_info;n.backgroundColor=c.color;var o=r.formatTime(c.begin_time),l=r.formatTime(c.end_time),v=0===m.limit_num,w=void 0;return w=v?e.createElement("div",{className:"webview-card-add-item_bottom webview-card-add-item_bottom_disable",style:n},e.createElement("div",{className:"webview-card-add-item_button_error"},c.limit_wording)):e.createElement("div",{"data-index":t,onClick:r.batchAddCard,className:"webview-card-add-item_bottom",style:n},e.createElement("div",{className:"webview-card-add-item_button"},c.accept_wording)),e.createElement("div",{className:"webview-card-add-item",key:t},e.createElement("div",{className:"webview-card-add-item_top"},e.createElement("div",{className:"webview-card-add-item_left"},e.createElement("img",{className:"webview-card-add-item_img",src:s})),e.createElement("div",{className:"webview-card-add-item_details"},e.createElement("div",{className:"webview-card-add-item_name"},i),e.createElement("div",{className:"webview-card-add-item_info"},e.createElement("span",{className:"webview-card-add-item_intro"},d),e.createElement("span",{className:"webview-card-add-item_num"},"X",a.amount)),e.createElement("div",{className:"webview-card-add-item_time"},o," - ",l))),w)});l=e.createElement("div",{className:"webview-card-add",style:n},e.createElement("div",{className:"webview-card-add-header"},e.createElement("div",{className:"webview-card-add-header_button",onClick:this.cancel}," 取消 "),e.createElement("div",{className:"webview-card-add-header_title"}," 添加卡卷 ")),e.createElement("div",{className:"webview-card-add-container"},v))}else if("chooseCard"===m){var w=o.available_cards,b=w.map(function(a,t){return e.createElement("div",{onClick:r.chooseCard,key:t,"data-appid":a.app_id,"data-cardid":a.card_tp_id,"data-encryptcode":a.encrypt_code,className:"webview-card-choose-item"},e.createElement("div",{className:"webview-card-choose_m"},e.createElement("div",{className:"webview-card-choose_left"},e.createElement("img",{className:"webview-card-choose-item_img",src:a.logo_url})),e.createElement("div",{className:"webview-card-choose_details"},e.createElement("div",{className:"webview-card-choose-item_name"},a.sub_title),e.createElement("div",{className:"webview-card-choose-item_info"},a.title))))}),_=void 0;_=b.length?e.createElement("div",{className:"webview-card-choose-container",style:{height:i.height-42}},e.createElement("span",{className:"webview-card-choose-mycard"},"我的卡卷"),e.createElement("div",{className:"webview-card-choose-item"},b)):e.createElement("div",{className:"webview-card-choose-container",style:{height:i.height-42}},e.createElement("span",{className:"webview-card-choose-mycard webview-card-choose-mycardEmpty"},"暂无可添加的卡券")),l=e.createElement("div",{className:"webview-card-choose"},e.createElement("div",{className:"webview-card-choose-header"},e.createElement("div",{className:"webview-card-choose-header_button",onClick:this.cancel}," 取消 "),e.createElement("div",{className:"webview-card-choose-header_title"}," 选择卡卷 ")),_)}else if("batchViewCard"===m){var h=s.cardData.retData.card_array,N=s.cardData.errData,E=!!N.length,p=this.state.showDetails;if(1===h.length&&!E||p){var u=p?h[this.state.cardIndex]:h[0],g=u.card_data_info,f=this.formatTime(g.begin_time),y=this.formatTime(g.end_time),C=u.card_tp_info,D=C.brand_name,S=C.title,k=C.logo_url,x=0===C.limit_num,I=void 0,q={};q.backgroundColor=C.color,I=x?e.createElement("div",{className:"webview-card-add-item_bottom webview-card-add-item_bottom_disable"},e.createElement("div",{className:"webview-card-add-item_button_error"},C.limit_wording)):e.createElement("div",{onClick:this.batchAddCard,className:"webview-card-add-item_bottom"},e.createElement("div",{className:"webview-card-add-item_button"},C.accept_wording));var j=p?"返回":"关闭";l=e.createElement("div",{className:"webview-card-open",style:q},e.createElement("div",{className:"webview-card-open-header"},e.createElement("div",{className:"webview-card-open-header_button",onClick:this.cancel}," ",j," ")),e.createElement("div",{className:"webview-card-open-container"},e.createElement("div",{className:"webview-card-open_top"},e.createElement("img",{className:"webview-card-open-item_img",src:k})),e.createElement("div",{className:"webview-card-open_middle"},e.createElement("div",{className:"webview-card-open-name"},D),e.createElement("div",{className:"webview-card-open-intro"},S),e.createElement("div",{className:"webview-card-open-item_button",style:q},e.createElement("div",{className:"webview-card-open_buttom_wording"},"立即使用")),e.createElement("div",{className:"webview-card-open-time"},"有效期: ",f,"-",y)),e.createElement("div",{className:"webview-card-open_bottom"},e.createElement("div",{className:"webview-card-open_detail"},"兑换卷详情"),e.createElement("div",{className:"webview-card-open_detail"},"公众号"),e.createElement("div",{className:"webview-card-open_detail"},"在线兑换"))))}else{var A=h.map(function(a,t){var c=a.card_tp_info;return e.createElement("div",{onClick:r.cardDetail,key:t,"data-index":t,className:"webview-card-choose-item"},e.createElement("div",{className:"webview-card-choose_m"},e.createElement("div",{className:"webview-card-choose_left"},e.createElement("img",{className:"webview-card-choose-item_img",src:c.logo_url})),e.createElement("div",{className:"webview-card-choose_details"},e.createElement("div",{className:"webview-card-choose-item_name"},c.brand_name),e.createElement("div",{className:"webview-card-choose-item_info"},c.title))))}),J=N.map(function(a,t){var r="INVALID_CODE"===d[a.errcode]?"错误卡券 ID":"错误卡卷 code";return e.createElement("div",{key:t,className:"webview-card-choose-item"},e.createElement("div",{className:"webview-card-choose_mErr"},e.createElement("div",{className:"webview-card-choose_details"},e.createElement("div",{className:"webview-card-choose-item_error"},r),e.createElement("div",{className:"webview-card-choose-item_error"},"cardId: ",a.card_id),e.createElement("div",{className:"webview-card-choose-item_error"},"code: ",a.code))))});l=e.createElement("div",{className:"webview-card-choose"},e.createElement("div",{className:"webview-card-choose-header"},e.createElement("div",{className:"webview-card-choose-header_button",onClick:this.cancel}," 关闭 "),e.createElement("div",{className:"webview-card-choose-header_title"}," 卡券列表 ")),e.createElement("div",{className:"webview-card-choose-container",style:{height:i.height-42}},e.createElement("div",{className:"webview-card-choose-item"},A,J)))}}return e.createElement("div",{className:"webview-card",style:c},l)}});_exports=m}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewfooter.js b/app/dist/components/simulator/webviewfooter.js index de7b8e67..1082e3ae 100644 --- a/app/dist/components/simulator/webviewfooter.js +++ b/app/dist/components/simulator/webviewfooter.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=a.createClass({displayName:'WebviewFooter',getInitialState:function(){return{webviewID:parseInt(this.props.webviewID)}},handleShareClick:function(){this.props.getSimulatorActions('S_POSTMSG_TO_AS',null,{eventName:'onShareAppMessage',data:{data:'{}'},webviewID:this.state.webviewID}),this.props.showFooter(!1)},handleOnClick:function(d){let e=d.currentTarget,f=e.dataset,g=f.type;if('share'===g){let h=f.name;this.props.getSimulatorActions('S_SET_ACTION',this.state.webviewID,{act:'sendMsg',sdkName:h,res:{}})}else'reload'===g?this.props.getSimulatorActions('S_SET_ACTION',this.state.webviewID,{act:'reLoad'}):'open'===g&&this.props.getSimulatorActions('S_SET_ACTION',this.state.webviewID,{act:'open'});this.props.showFooter(!1)},render:function(){let d=this.props.show?{}:b.displayNone,e=!!this.props.project,{shareBtnShow:f}=this.props;return a.createElement('div',{style:d,className:'simulator-actionsheet-wrapper'},a.createElement('div',{className:'simulator-actionsheet-mask'}),a.createElement('div',{className:'simulator-actionsheet'},a.createElement('div',{style:e?{}:b.displayNone},a.createElement('div',{className:'wx-action-sheet-item',onClick:this.handleShareClick,style:f?{}:b.displayNone},'\u5206\u4EAB')),a.createElement('div',{className:'simulator-actionsheet-bd',style:e?b.displayNone:{}},a.createElement('a',{onClick:this.handleOnClick,'data-type':'share','data-name':'menu:share:appmessage',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2friend'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u53D1\u9001\u7ED9\u670B\u53CB')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'share','data-name':'menu:share:timeline',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2moment'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5206\u4EAB\u5230\u670B\u53CB\u5708')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'open',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-safari'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5728\u6D4F\u89C8\u5668\u6253\u5F00')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'reload',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-refresh'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5237\u65B0'))),a.createElement('div',{className:'simulator-actionsheet-bd',style:e?b.displayNone:{}},a.createElement('a',{onClick:this.handleOnClick,'data-type':'share','data-name':'menu:share:appmessage',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2friend'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u53D1\u9001\u7ED9\u670B\u53CB')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'share','data-name':'menu:share:timeline',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2moment'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5206\u4EAB\u5230\u670B\u53CB\u5708')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'open',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-safari'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5728\u6D4F\u89C8\u5668\u6253\u5F00')),a.createElement('a',{onClick:this.handleOnClick,'data-type':'reload',href:'javascript:;',className:'simulator-actionsheet-menu'},a.createElement('i',{className:'simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-refresh'}),a.createElement('label',{className:'simulator-actionsheet-menu-label'},'\u5237\u65B0'))),a.createElement('div',{onClick:this.handleOnClick,'data-type':'cancel',className:'simulator-actionsheet-ft'},a.createElement('a',{href:'javascript:;'},e&&!f?'\u5F53\u524D\u9875\u9762\u672A\u8BBE\u7F6E\u5206\u4EAB':'\u53D6\u6D88'))))}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),a=e.createClass({displayName:"WebviewFooter",getInitialState:function(){return{webviewID:parseInt(this.props.webviewID)}},handleMaskClick:function(){this.props.showFooter(!1)},handleShareClick:function(){this.props.getSimulatorActions("S_POSTMSG_TO_AS",null,{eventName:"onShareAppMessage",data:{mode:this.props.shareWithTicket?"withShareTicket":"common"},webviewID:this.state.webviewID}),this.props.showFooter(!1)},handleOnClick:function(e){var t=e.currentTarget,a=t.dataset,s=a.type;if("share"===s){var i=a.name;this.props.getSimulatorActions("S_SET_ACTION",this.state.webviewID,{act:"sendMsg",sdkName:i,res:{}})}else"reload"===s?this.props.getSimulatorActions("S_SET_ACTION",this.state.webviewID,{act:"reLoad"}):"open"===s&&this.props.getSimulatorActions("S_SET_ACTION",this.state.webviewID,{act:"open"});this.props.showFooter(!1)},render:function(){var a=this.props.show?{}:t.displayNone,s=!!this.props.project,i=this.props.shareBtnShow;return e.createElement("div",{style:a,className:"simulator-actionsheet-wrapper"},e.createElement("div",{className:"simulator-actionsheet-mask",onClick:this.handleMaskClick}),e.createElement("div",{className:"simulator-actionsheet"},e.createElement("div",{style:s?{}:t.displayNone},e.createElement("div",{className:"wx-action-sheet-item",onClick:this.handleShareClick,style:i?{}:t.displayNone},"分享")),e.createElement("div",{className:"simulator-actionsheet-bd",style:s?t.displayNone:{}},e.createElement("a",{onClick:this.handleOnClick,"data-type":"share","data-name":"menu:share:appmessage",href:"javascript:;",className:"simulator-actionsheet-menu"},e.createElement("i",{className:"simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2friend"}),e.createElement("label",{className:"simulator-actionsheet-menu-label"},"发送给朋友")),e.createElement("a",{onClick:this.handleOnClick,"data-type":"share","data-name":"menu:share:timeline",href:"javascript:;",className:"simulator-actionsheet-menu"},e.createElement("i",{className:"simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-share2moment"}),e.createElement("label",{className:"simulator-actionsheet-menu-label"},"分享到朋友圈")),e.createElement("a",{onClick:this.handleOnClick,"data-type":"open",href:"javascript:;",className:"simulator-actionsheet-menu"},e.createElement("i",{className:"simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-safari"}),e.createElement("label",{className:"simulator-actionsheet-menu-label"},"在浏览器打开")),e.createElement("a",{onClick:this.handleOnClick,"data-type":"reload",href:"javascript:;",className:"simulator-actionsheet-menu"},e.createElement("i",{className:"simulator-actionsheet-menu-icon simulator-actionsheet-menu-icon-refresh"}),e.createElement("label",{className:"simulator-actionsheet-menu-label"},"刷新"))),e.createElement("div",{onClick:this.handleOnClick,"data-type":"cancel",className:"simulator-actionsheet-ft"},e.createElement("a",{href:"javascript:;"},s&&!i?"当前页面未设置分享":"取消"))))}});_exports=a}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewheader.js b/app/dist/components/simulator/webviewheader.js index d52f590d..045715cd 100644 --- a/app/dist/components/simulator/webviewheader.js +++ b/app/dist/components/simulator/webviewheader.js @@ -1 +1 @@ -'use strict';var _exports;function init(){require('path'),require('fs');const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/webviewStores.js');require('../../stores/windowStores.js');const d=require('../../actions/leftviewActions.js');require('../../weapp/utils/tools.js'),require('../../common/log/log.js'),require('../../weapp/utils/projectManager.js');const e=a.createClass({displayName:'WebviewHeader',getInitialState:function(){let{project:f,appJSON:g,pageJSON:h}=this.props,i='';return f&&(i=h.navigationBarTitleText||g.window.navigationBarTitleText||''),{title:i,webviewID:parseInt(this.props.webviewID),canGoBack:!1,showRightBtn:!0,showBarLoading:!1}},_upWebviewStatus:function(f,g){0!==f&&(g.canGoBack=!0),Object.assign(this.state,g),this.setState(this.state)},_cleanWebview:function(){this.state.webviewID,this.setState({title:'',showRightBtn:!0,showBarLoading:!1})},_setInterfaceFromPageFrame:function(f){let g=f.name;'setNavigationBarTitle'===g?this.setState({title:f.value}):'showNavigationBarLoading'===g?this.setState({showBarLoading:!0}):'hideNavigationBarLoading'===g&&this.setState({showBarLoading:!1})},_setInterfaceRes:function(f,g,h,i){h&&('hideOptionMenu'===g||'hideMenuItems'===g||'hideAllNonBaseMenuItem'===g?this.setState({showRightBtn:!1}):('showOptionMenu'==g||'showMenuItems'==g||'showAllNonBaseMenuItem'==g)&&this.setState({showRightBtn:!0}))},componentDidMount:function(){let f=this.state.webviewID;c.on(`SET_INTERFACE_RES_${f}`,this._setInterfaceRes),c.on(`UP_WEBVIEW_STATUS_${f}`,this._upWebviewStatus),c.on(`CLEAN_WEBVIEW_${f}`,this._cleanWebview),c.on(`SET_INTERFACT_FROMPAGEFRAME_${f}`,this._setInterfaceFromPageFrame)},componentWillUnmount:function(){let f=this.state.webviewID;c.removeListener(`CLEAN_WEBVIEW_${f}`,this._cleanWebview),c.removeListener(`SET_INTERFACE_RES_${f}`,this._setInterfaceRes),c.removeListener(`UP_WEBVIEW_STATUS_${f}`,this._upWebviewStatus),c.removeListener(`SET_INTERFACT_FROMPAGEFRAME_${f}`,this._setInterfaceFromPageFrame)},handleRightClick:function(){d.clickRightHeader(this.state.webviewID)},goBack:function(f){this.props.goBack()},closeLocation:function(){this.goBack(),this.props.closeLocation()},chooseLocation:function(){this.goBack(),this.props.chooseLocation()},render:function(){let{offset:f,hideBack:g,webviewID:h,project:i,isMap:j,goBack:k,showFooter:l,pageJSON:m,appJSON:n}=this.props;if(this.props.isMap)return a.createElement('div',{style:{width:f.width},className:'simulator-hd'},a.createElement('div',{onClick:this.closeLocation,className:'simulator-hd-back'},a.createElement('span',null,'\u53D6\u6D88')),a.createElement('h3',{className:'simulator-hd-title'},'\u4F4D\u7F6E'),a.createElement('div',{onClick:this.chooseLocation,className:'simulator-hd-option'},'\u53D1\u9001'));let o={width:f.width,backgroundColor:m.navigationBarBackgroundColor||n.window.navigationBarBackgroundColor||'#000000'},p=!g&&this.state.canGoBack?{}:b.visibilityHidden;0==h&&i&&(p=b.visibilityHidden);let q={};this.props.project||!this.state.showRightBtn&&(q=b.visibilityHidden);let r={color:m.navigationBarTextStyle||n.window.navigationBarTextStyle||'white'},s=this.state.title||m.navigationBarTitleText||n.window.navigationBarTitleText,t=this.props.showRecordWording?' \u5F55\u97F3\u4E2D...':'';return a.createElement('div',{style:o,className:'simulator-hd'},a.createElement('div',{onClick:this.goBack,style:p,className:'simulator-hd-back'},a.createElement('i',{className:'simulator-hd-back-icon'}),a.createElement('span',{style:r},'\u8FD4\u56DE')),a.createElement('h3',{className:'simulator-hd-title',style:r},this.state.showBarLoading?a.createElement('i',{className:'simulator-hd-title-loading'}):'',s,t),a.createElement('div',{style:q,onClick:l,className:'simulator-hd-option'},a.createElement('i',{className:'simulator-hd-option-icon'})))}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=(require("path"),require("fs"),require("../../lib/react.js")),t=require("../../cssStr/cssStr.js"),i=require("../../stores/webviewStores.js"),o=(require("../../stores/windowStores.js"),require("../../actions/leftviewActions.js")),a=(require("../../weapp/utils/tools.js"),require("../../common/log/log.js"),require("../../weapp/utils/projectManager.js"),"white"),s="#000000",n=e.createClass({displayName:"WebviewHeader",getInitialState:function(){var e=this.props,t=e.project,i=e.appJSON,o=e.pageJSON,a="";return t&&(a=o.navigationBarTitleText||i.window.navigationBarTitleText||""),{title:a,webviewID:parseInt(this.props.webviewID),canGoBack:!1,showRightBtn:!0,showBarLoading:!1}},_upWebviewStatus:function(e,t){0!==e&&(t.canGoBack=!0),Object.assign(this.state,t),this.setState(this.state)},_cleanWebview:function(){this.state.webviewID;this.setState({title:"",showRightBtn:!0,showBarLoading:!1})},_setInterfaceFromPageFrame:function(e){var t=e.name;"setNavigationBarTitle"===t?this.setState({title:e.value}):"showNavigationBarLoading"===t?this.setState({showBarLoading:!0}):"hideNavigationBarLoading"===t&&this.setState({showBarLoading:!1})},_setInterfaceRes:function(e,t,i,o){i&&("hideOptionMenu"===t||"hideMenuItems"===t||"hideAllNonBaseMenuItem"===t?this.setState({showRightBtn:!1}):"showOptionMenu"!==t&&"showMenuItems"!==t&&"showAllNonBaseMenuItem"!==t||this.setState({showRightBtn:!0}))},showFooter:function(){"function"==typeof this.props.showFooter&&this.props.showFooter()},componentDidMount:function(){var e=this.state.webviewID;i.on("SET_INTERFACE_RES_"+e,this._setInterfaceRes),i.on("UP_WEBVIEW_STATUS_"+e,this._upWebviewStatus),i.on("CLEAN_WEBVIEW_"+e,this._cleanWebview),i.on("SET_INTERFACT_FROMPAGEFRAME_"+e,this._setInterfaceFromPageFrame)},componentWillUnmount:function(){var e=this.state.webviewID;i.removeListener("CLEAN_WEBVIEW_"+e,this._cleanWebview),i.removeListener("SET_INTERFACE_RES_"+e,this._setInterfaceRes),i.removeListener("UP_WEBVIEW_STATUS_"+e,this._upWebviewStatus),i.removeListener("SET_INTERFACT_FROMPAGEFRAME_"+e,this._setInterfaceFromPageFrame)},handleRightClick:function(){o.clickRightHeader(this.state.webviewID)},goBack:function(e){this.props.goBack()},closeLocation:function(){this.goBack(),this.props.closeLocation()},chooseLocation:function(){this.goBack(),this.props.chooseLocation()},render:function(){var i=this.props,o=i.offset,n=i.hideBack,r=i.webviewID,c=i.project,l=(i.isMap,i.goBack,i.showFooter,i.pageJSON),h=i.appJSON;if(this.props.isMap)return e.createElement("div",{style:{width:o.width},className:"simulator-hd"},e.createElement("div",{onClick:this.closeLocation,className:"simulator-hd-back"},e.createElement("span",null,"取消")),e.createElement("h3",{className:"simulator-hd-title"},"位置"),e.createElement("div",{onClick:this.chooseLocation,className:"simulator-hd-option"},"发送"));var w={width:o.width,backgroundColor:l.navigationBarBackgroundColor||h.window.navigationBarBackgroundColor||s},u=!n&&this.state.canGoBack?{}:t.visibilityHidden;0==r&&c&&(u=t.visibilityHidden);var d={};this.props.project||this.state.showRightBtn||(d=t.visibilityHidden);var p={color:l.navigationBarTextStyle||h.window.navigationBarTextStyle||a};"white"!==p.color&&"black"!==p.color&&(p.color="white");var m={borderColor:l.navigationBarTextStyle||h.window.navigationBarTextStyle||a};"white"!==m.color&&"black"!==m.color&&(m.color="white");var v="black"===p.color?"ui-icon-dots-black":"ui-icon-dots-white",g=this.state.title||l.navigationBarTitleText||h.window.navigationBarTitleText,B=this.props.showRecordWording?" 录音中...":"";return e.createElement("div",{style:w,className:"simulator-hd"},e.createElement("div",{onClick:this.goBack,style:u,className:"simulator-hd-back"},e.createElement("i",{className:"simulator-hd-back-icon",style:m}),e.createElement("span",{style:p},"返回")),e.createElement("h3",{className:"simulator-hd-title",style:p},this.state.showBarLoading?e.createElement("i",{className:"simulator-hd-title-loading"}):"",g,B),e.createElement("div",{style:d,onClick:this.showFooter,className:"simulator-hd-option"},e.createElement("i",{className:v})))}});_exports=n}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewloading.js b/app/dist/components/simulator/webviewloading.js index ac9123a9..f5928a30 100644 --- a/app/dist/components/simulator/webviewloading.js +++ b/app/dist/components/simulator/webviewloading.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../stores/webviewStores.js');var c,d;const e=a.createClass({displayName:'Webviewloading',getInitialState:function(){return{webviewID:parseInt(this.props.webviewID),rate:0}},_upWebviewStatus:function(f,g){let h=g.loading;if('start'===h){clearTimeout(c);let i=parseInt(100*Math.random());this.state.rate=i,this.setState(this.state),d=setTimeout(()=>{50>this.state.rate&&(this.state.rate+=5),75>this.state.rate&&(this.state.rate+=2),90>this.state.rate&&(this.state.rate+=1),this.setState(this.state)},200)}else'stop'===h&&(clearTimeout(c),clearTimeout(d),this.state.rate=100,this.setState(this.state),c=setTimeout(()=>{this.state.rate=0,this.setState(this.state)},200))},_cleanWebview:function(f){this.setState({rate:0})},componentDidMount:function(){let f=this.state.webviewID;b.on(`UP_WEBVIEW_STATUS_${f}`,this._upWebviewStatus),b.on(`CLEAN_WEBVIEW_${f}`,this._cleanWebview)},componentWillUnmount:function(){let f=this.state.webviewID;clearTimeout(c),clearTimeout(d),b.removeListener(`UP_WEBVIEW_STATUS_${f}`,this._upWebviewStatus),b.removeListener(`CLEAN_WEBVIEW_${f}`,this._cleanWebview)},render:function(){let f={width:`${this.state.rate}%`};return 0===this.state.rate&&(f.display='none'),a.createElement('div',{className:'simulator-bd-loading',style:f})}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t,e,a=require("../../lib/react.js"),s=require("../../stores/webviewStores.js"),i=a.createClass({displayName:"Webviewloading",getInitialState:function(){return{webviewID:parseInt(this.props.webviewID),rate:0}},_upWebviewStatus:function(a,s){var i=this,r=s.loading;if("start"===r){clearTimeout(t);var n=parseInt(100*Math.random());this.state.rate=n,this.setState(this.state),e=setTimeout(function(){i.state.rate<50&&(i.state.rate+=5),i.state.rate<75&&(i.state.rate+=2),i.state.rate<90&&(i.state.rate+=1),i.setState(i.state)},200)}else"stop"===r&&(clearTimeout(t),clearTimeout(e),this.state.rate=100,this.setState(this.state),t=setTimeout(function(){i.state.rate=0,i.setState(i.state)},200))},_cleanWebview:function(t){this.setState({rate:0})},componentDidMount:function(){var t=this.state.webviewID;s.on("UP_WEBVIEW_STATUS_"+t,this._upWebviewStatus),s.on("CLEAN_WEBVIEW_"+t,this._cleanWebview)},componentWillUnmount:function(){var a=this.state.webviewID;clearTimeout(t),clearTimeout(e),s.removeListener("UP_WEBVIEW_STATUS_"+a,this._upWebviewStatus),s.removeListener("CLEAN_WEBVIEW_"+a,this._cleanWebview)},render:function(){var t={width:this.state.rate+"%"};return 0===this.state.rate&&(t.display="none"),a.createElement("div",{className:"simulator-bd-loading",style:t})}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/simulator/webviewtab.js b/app/dist/components/simulator/webviewtab.js index b095ef2c..94ec963e 100644 --- a/app/dist/components/simulator/webviewtab.js +++ b/app/dist/components/simulator/webviewtab.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js');require('../../weapp/utils/projectManager.js'),require('../../stores/webviewStores.js'),require('../../config/config.js'),require('../../stores/projectStores.js');const c=require('../../weapp/utils/tools.js'),{default_tabheight:d,default_backgroundColor:e}=require('../../config/weappConfig.js');require('url');const f=a.createClass({displayName:'Tab',getInitialState:function(){let g=c.getBaseURL(this.props.project);return{href:g}},clickTab:function(g){let h=g.currentTarget,i=h.dataset,j=i.index,k=this.props.tabBar,l=k.list||[],m=this.props._openNewWindowWebview,n=`${l[j].pagePath}`;m({url:n})},render:function(){let{tabBar:g,tabPageIndex:h}=this.props,i=g.position||'bottom',j=g.list||[],k={};k.backgroundColor=g.backgroundColor,k.borderColor='white'===g.borderStyle?'white':'black',k.color=g.color;let l=j.map((n,o)=>{let p=o===h&&g.selectedColor?{color:g.selectedColor}:{color:g.color},q=o===h?n.selectedIconPath:n.iconPath,r=q?{}:b.displayNone;return q=q?`${this.state.href}${q}?r=${Math.random()}`:'',a.createElement('a',{className:`tabbar-item ${o===h?'tabbar-item-selected':''}`,href:'javascript:;','data-index':o,onClick:this.clickTab,style:{height:d},key:o},'bottom'===i?a.createElement('img',{className:'tabbar-icon',style:r,src:q}):null,a.createElement('p',{className:'tabbar-label',style:p},n.text,'top'===i?a.createElement('i',{className:'tabbar-label-indicator'}):''))}),m=`tabbar tabbar-${i}`;return a.createElement('div',{className:m,style:k},l)}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),r=require("../../cssStr/cssStr.js"),t=(require("../../weapp/utils/projectManager.js"),require("../../stores/webviewStores.js"),require("../../config/config.js"),require("../../stores/projectStores.js"),require("../../weapp/utils/tools.js")),a=require("../../config/weappConfig.js"),o=a.default_tabheight,s=(a.default_backgroundColor,a.default_tabBarBorderBlackColor),i=a.default_tabBarBorderWhiteColor,l=(require("url"),e.createClass({displayName:"Tab",getInitialState:function(){var e=t.getBaseURL(this.props.project);return{href:e}},clickTab:function(e){var r=e.currentTarget,t=r.dataset,a=t.index,o=this.props.tabBar,s=o.list||[],i=this.props._openNewWindowWebview,l=""+s[a].pagePath;i({url:l})},render:function(){var t=this,a=this.props,l=a.tabBar,c=a.tabPageIndex,n=l.position||"bottom",b=l.list||[],u={};u.backgroundColor=l.backgroundColor,u.borderColor="white"===l.borderStyle?i:s,u.color=l.color;var p=b.map(function(a,s){var i=s===c&&l.selectedColor?{color:l.selectedColor}:{color:l.color},b=s===c?a.selectedIconPath:a.iconPath,u=b?{}:r.displayNone;return b=b?""+t.state.href+b+"?r="+Math.random():"",e.createElement("a",{className:"tabbar-item "+(s===c?"tabbar-item-selected":""),href:"javascript:;","data-index":s,onClick:t.clickTab,style:{height:o},key:s},"bottom"===n?e.createElement("img",{className:"tabbar-icon",style:u,src:b}):null,e.createElement("p",{className:"tabbar-label",style:i},a.text,"top"===n?e.createElement("i",{className:"tabbar-label-indicator"}):""))}),d="tabbar tabbar-"+n;return e.createElement("div",{className:d,style:u},p)}}));_exports=l}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toast/toast.js b/app/dist/components/toast/toast.js index 8769d1d1..1cd7cf64 100644 --- a/app/dist/components/toast/toast.js +++ b/app/dist/components/toast/toast.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../stores/windowStores.js');var d;const e=a.createClass({displayName:'Toast',getInitialState:function(){return{msg:'',show:!1,type:''}},_tipsMsg:function(f){this.setState({msg:f.msg,show:!0,type:f.type||'success'}),d=setTimeout(()=>{this.setState({show:!1})},2000)},componentDidMount:function(){c.on('SHOW_TIPS_MSG',this._tipsMsg)},componentWillUnmount:function(){clearTimeout(d),c.removeListener('SHOW_TIPS_MSG',this._tipsMsg)},render:function(){let f=this.state.show?b.displayBlock:b.displayNone;return a.createElement('div',{className:`toast toast-${this.state.type}`,style:f},a.createElement('i',{className:'icon-info'}),this.state.msg)}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t,e=require("../../lib/react.js"),s=require("../../cssStr/cssStr.js"),i=require("../../stores/windowStores.js"),o=e.createClass({displayName:"Toast",getInitialState:function(){return{lazyLoaded:!1,msg:"",show:!1,type:""}},_tipsMsg:function(e){var s=this;this.setState({lazyLoaded:!0,msg:e.msg,show:!0,type:e.type||"success"}),t=setTimeout(function(){s.setState({show:!1})},2e3)},componentDidMount:function(){i.on("SHOW_TIPS_MSG",this._tipsMsg)},componentWillUnmount:function(){clearTimeout(t),i.removeListener("SHOW_TIPS_MSG",this._tipsMsg)},render:function(){if(!this.state.lazyLoaded)return null;var t=this.state.show?s.displayBlock:s.displayNone;return e.createElement("div",{className:"toast toast-"+this.state.type,style:t},e.createElement("i",{className:"icon-info"}),this.state.msg)}});_exports=o}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toolbar/clearbutton.js b/app/dist/components/toolbar/clearbutton.js index e50a0547..18a7a16c 100644 --- a/app/dist/components/toolbar/clearbutton.js +++ b/app/dist/components/toolbar/clearbutton.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../actions/webviewActions.js'),d=require('../../stores/windowStores.js'),e=require('../../actions/windowActions.js'),f=a.createClass({displayName:'Clearbutton',getInitialState:function(){return{show:!1,showSuc:''}},handleOnClick:function(g){g.stopPropagation();let h=this.state.show;this.setState({show:!h})},buttonClick:function(g){g.stopPropagation();let h=g.currentTarget,i=h.dataset,j=i.type,k=()=>{this.setState({showSuc:j}),setTimeout(()=>{this.setState({showSuc:''})},500)};'cookies'===j?c.clearWebview({cookies:!0,callBack:k}):'cache'===j?c.clearWebview({appcache:!0,cache:!0,fileSystems:!0,indexedDB:!0,localStorage:!0,webSQL:!0,callBack:k}):'historyUrl'===j&&e.clearAddressHistory({callBack:k})},_bodyClick:function(){this.setState({show:!1})},componentDidMount:function(){d.on('BODY_CLICK',this._bodyClick)},componentWillUnmount:function(){d.removeListener('BODY_CLICK',this._bodyClick)},render:function(){let g=this.state.show?{}:b.displayNone,h=this.state.show?'toolbar-clear-icon-up':'toolbar-clear-icon-down',i=this.state.showSuc;return a.createElement('div',{className:'toolbar-clear',onClick:this.handleOnClick},a.createElement('p',null,'\u6E05\u7406\u7F13\u5B58 ',a.createElement('i',{className:h})),a.createElement('div',{onClick:this.handleOnClick,className:'toolbar-clear-dropdown',style:g},a.createElement('div',{onClick:this.buttonClick,'data-type':'cookies',className:'toolbar-clear-dropdown-item'},a.createElement('p',null,'\u6E05\u9664\u5F00\u53D1\u8005\u5DE5\u5177cookie'),a.createElement('span',{style:'cookies'===i?{}:b.displayNone},'\u5DF2\u6E05\u9664')),a.createElement('div',{onClick:this.buttonClick,'data-type':'cache',className:'toolbar-clear-dropdown-item'},a.createElement('p',null,'\u6E05\u9664\u5F00\u53D1\u8005\u5DE5\u5177\u7F13\u5B58'),a.createElement('span',{style:'cache'===i?{}:b.displayNone},'\u5DF2\u6E05\u9664')),a.createElement('div',{onClick:this.buttonClick,'data-type':'historyUrl',className:'toolbar-clear-dropdown-item'},a.createElement('p',null,'\u6E05\u9664\u5730\u5740\u680F\u5386\u53F2\u8BB0\u5F55'),a.createElement('span',{style:'historyUrl'===i?{}:b.displayNone},'\u5DF2\u6E05\u9664'))))}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),o=require("../../actions/webviewActions.js"),a=require("../../stores/windowStores.js"),s=require("../../actions/windowActions.js"),c=e.createClass({displayName:"Clearbutton",getInitialState:function(){return{show:!1,showSuc:""}},handleOnClick:function(e){e.stopPropagation();var t=this.state.show;this.setState({show:!t})},buttonClick:function(e){var t=this;e.stopPropagation();var a=e.currentTarget,c=a.dataset,i=c.type,n=function(){t.setState({showSuc:i}),setTimeout(function(){t.setState({showSuc:""})},500)};"cookies"===i?o.clearWebview({cookies:!0,callBack:n}):"cache"===i?o.clearWebview({appcache:!0,cache:!0,fileSystems:!0,indexedDB:!0,localStorage:!0,webSQL:!0,callBack:n}):"historyUrl"===i&&s.clearAddressHistory({callBack:n})},_bodyClick:function(){this.setState({show:!1})},componentDidMount:function(){a.on("BODY_CLICK",this._bodyClick)},componentWillUnmount:function(){a.removeListener("BODY_CLICK",this._bodyClick)},render:function(){var o=this.state.show?{}:t.displayNone,a=this.state.show?"toolbar-clear-icon-up":"toolbar-clear-icon-down",s=this.state.showSuc;return e.createElement("div",{className:"toolbar-clear",onClick:this.handleOnClick},e.createElement("p",null,"清理缓存 ",e.createElement("i",{className:a})),e.createElement("div",{onClick:this.handleOnClick,className:"toolbar-clear-dropdown",style:o},e.createElement("div",{onClick:this.buttonClick,"data-type":"cookies",className:"toolbar-clear-dropdown-item"},e.createElement("p",null,"清除开发者工具cookie"),e.createElement("span",{style:"cookies"===s?{}:t.displayNone},"已清除")),e.createElement("div",{onClick:this.buttonClick,"data-type":"cache",className:"toolbar-clear-dropdown-item"},e.createElement("p",null,"清除开发者工具缓存"),e.createElement("span",{style:"cache"===s?{}:t.displayNone},"已清除")),e.createElement("div",{onClick:this.buttonClick,"data-type":"historyUrl",className:"toolbar-clear-dropdown-item"},e.createElement("p",null,"清除地址栏历史记录"),e.createElement("span",{style:"historyUrl"===s?{}:t.displayNone},"已清除"))))}});_exports=c}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toolbar/toolbar.js b/app/dist/components/toolbar/toolbar.js index b1a811a5..9943642c 100644 --- a/app/dist/components/toolbar/toolbar.js +++ b/app/dist/components/toolbar/toolbar.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('./userinfo.js'),c=require('./urlbar.js'),d=require('./clearbutton.js'),e=require('../../stores/windowStores.js'),f=a.createClass({displayName:'Toolbar',getInitialState:function(){let g=e.getUserInfo();return{userInfo:g}},_upDataUserInfo:function(g){this.setState({uesrInfo:g})},componentDidMount:function(){e.on('UPDATA_USER_INFO',this._upDataUserInfo)},componentWillUnmount:function(){e.removeListener('UPDATA_USER_INFO',this._upDataUserInfo)},render:function(){let g=this.props.project;return g?a.createElement('div',{className:'toolbar'},a.createElement(b,{project:this.props.project,userInfo:this.state.userInfo})):a.createElement('div',{className:'toolbar'},a.createElement(b,{userInfo:this.state.userInfo}),a.createElement(c,{project:this.props.project}),a.createElement(d,null))}});_exports=f}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("./userinfo.js"),r=require("./urlbar.js"),o=require("./clearbutton.js"),n=require("../../stores/windowStores.js"),s=e.createClass({displayName:"Toolbar",getInitialState:function(){var e=n.getUserInfo();return{userInfo:e}},_upDataUserInfo:function(e){this.setState({uesrInfo:e})},componentDidMount:function(){n.on("UPDATA_USER_INFO",this._upDataUserInfo)},componentWillUnmount:function(){n.removeListener("UPDATA_USER_INFO",this._upDataUserInfo)},render:function(){var n=this.props.project;return n?e.createElement("div",{className:"toolbar"},e.createElement(t,{project:this.props.project,userInfo:this.state.userInfo})):e.createElement("div",{className:"toolbar"},e.createElement(t,{userInfo:this.state.userInfo}),e.createElement(r,{project:this.props.project}),e.createElement(o,null))}});_exports=s}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toolbar/urlbar.js b/app/dist/components/toolbar/urlbar.js index 1e42b621..ff2bd3ca 100644 --- a/app/dist/components/toolbar/urlbar.js +++ b/app/dist/components/toolbar/urlbar.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js');require('../../cssStr/cssStr.js');const b=require('../../actions/webviewActions.js'),c=require('../../stores/windowStores.js'),d=require('../../actions/windowActions.js'),e=require('./urlcomplete.js');var f;const g=a.createClass({displayName:'Urlbar',getInitialState:function(){return{webviewID:0,url:'',autoIndex:0,autocomplete:[]}},loadUrl:function(h){h=h||this.getCurrentUrl(),h=h.trim();let i=this.state.webviewID;'about:blank'===h?b.setWebviewAction(i,{act:'reLoad'}):(d.setAutoComplete(h),b.getA8keyWebview(i,{url:h,isSync:!0,from:'urlbar'})),this.setState({autocomplete:[]})},getAutoComplete:function(h){let i=h.trim(),j=/^http:\/\//.test(i),k=/^https:\/\//.test(i),l=[],m=c.getAutoComplete();return m.forEach(n=>{4=k?0:k;else{let m=this.state.autocomplete.length;k++,k=k>=m?m-1:k}l=0<=k?this.state.autocomplete[k]:l,this.setState({autoIndex:k,url:l},()=>{setTimeout(()=>{i.selectionStart=i.value.length},17)})}else 8===j&&(i.dataset.changeFrom='backspace')},handleChange:function(h){let i=h.target,j=i.value,k='backspace'===i.dataset.changeFrom,l=this.getAutoComplete(j);if(this.state.webviewID,k)return i.dataset.changeFrom='',void this.setState({url:j,autocomplete:l});let m=l[0]&&!k?l[0]:j;this.setState({url:m,autocomplete:l},()=>{let n=m.indexOf(j)+j.length;n===m.length||(this.refs.urlinput.selectionStart=n,this.refs.urlinput.selectionEnd=m.length)})},handleBlur:function(){f=setTimeout(()=>{this.setState({autocomplete:[]})},100)},handleFocus:function(){let h=this.getCurrentUrl(),i=this.getAutoComplete(h);this.setState({autocomplete:i})},handleOnClick:function(){this.loadUrl()},getCurrentUrl:function(){return this.state.url},autoClick:function(h){clearTimeout(f);let i=h.currentTarget,j=i.dataset,k=j.index,l=this.state.autocomplete[k];this.setState({url:l,autocomplete:[]}),this.loadUrl(l)},_changeWebviewID:function(h){this.setState({webviewID:h})},_changeUrl:function(h){0===h.indexOf('chrome-extension:')&&(h='about:blank'),this.setState({url:h})},_focusAddressbar:function(h){this.refs.urlinput.select(),this.refs.urlinput.focus()},componentDidMount:function(){c.on('CHANGE_WEBVIEW_URL',this._changeUrl),c.on('FOCUS_ADDRESSBAR',this._focusAddressbar)},componentWillUnmount:function(){c.removeListener('CHANGE_WEBVIEW_URL',this._changeUrl),c.removeListener('FOCUS_ADDRESSBAR',this._focusAddressbar)},render:function(){this.state.webviewID;let h=this.state.url;return a.createElement('div',{className:'toolbar-location'},a.createElement('input',{className:'toolbar-location-input',type:'text',ref:'urlinput',onKeyDown:this.handleKeyUp,onBlur:this.handleBlur,onFocus:this.handleFocus,value:h,onChange:this.handleChange}),a.createElement('div',{className:'toolbar-location-refresh'},a.createElement('i',{className:'toolbar-location-refresh-icon'})),a.createElement('div',{className:'toolbar-location-history'},a.createElement('i',{className:'toolbar-location-history-icon'})),a.createElement(e,{autoClick:this.autoClick,autocomplete:this.state.autocomplete,autoIndex:this.state.autoIndex}))}});_exports=g}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var t,e=require("../../lib/react.js"),a=(require("../../cssStr/cssStr.js"),require("../../actions/webviewActions.js")),o=require("../../stores/windowStores.js"),s=require("../../actions/windowActions.js"),n=require("./urlcomplete.js"),i=e.createClass({displayName:"Urlbar",getInitialState:function(){return{webviewID:0,url:"",autoIndex:0,autocomplete:[]}},loadUrl:function(t){t=t||this.getCurrentUrl(),t=t.trim();var e=this.state.webviewID;"about:blank"===t?a.setWebviewAction(e,{act:"reLoad"}):(s.setAutoComplete(t),a.getA8keyWebview(e,{url:t,isSync:!0,from:"urlbar"})),this.setState({autocomplete:[]})},getAutoComplete:function(t){var e=t.trim(),a=/^http:\/\//.test(e),s=/^https:\/\//.test(e),n=a||s,i=[],r=o.getAutoComplete();return r.forEach(function(t){e.length>4&&(n?/^https?:\/\//.test(t)||(t=a?"http://"+t:"https://"+t):t=t.replace(/^https?:\/\//,"")),0===t.indexOf(e)&&i.indexOf(t)===-1&&i.push(t)}),i},handleKeyUp:function(t){var e=t.target,a=t.keyCode;this.state.webviewID;if(13===a)e.selectionStart=e.value.length,this.loadUrl();else if(40===a||38===a){var o=this.state.autoIndex,s=this.getCurrentUrl(),n=38===a;if(n)o--,o=o<=0?0:o;else{var i=this.state.autocomplete.length;o++,o=o>=i?i-1:o}s=o>=0?this.state.autocomplete[o]:s,this.setState({autoIndex:o,url:s},function(){setTimeout(function(){e.selectionStart=e.value.length},17)})}else 8===a&&(e.dataset.changeFrom="backspace")},handleChange:function(t){var e=this,a=t.target,o=a.value,s="backspace"===a.dataset.changeFrom,n=this.getAutoComplete(o);this.state.webviewID;if(s)return a.dataset.changeFrom="",void this.setState({url:o,autocomplete:n});var i=n[0]&&!s?n[0]:o;this.setState({url:i,autocomplete:n},function(){var t=i.indexOf(o)+o.length;t!==i.length&&(e.refs.urlinput.selectionStart=t,e.refs.urlinput.selectionEnd=i.length)})},handleBlur:function(){var e=this;t=setTimeout(function(){e.setState({autocomplete:[]})},100)},handleFocus:function(){var t=this.getCurrentUrl(),e=this.getAutoComplete(t);this.setState({autocomplete:e})},handleOnClick:function(){this.loadUrl()},getCurrentUrl:function(){return this.state.url},autoClick:function(e){clearTimeout(t);var a=e.currentTarget,o=a.dataset,s=o.index,n=this.state.autocomplete[s];this.setState({url:n,autocomplete:[]}),this.loadUrl(n)},_changeWebviewID:function(t){this.setState({webviewID:t})},_changeUrl:function(t){0===t.indexOf("chrome-extension:")&&(t="about:blank"),this.setState({url:t})},_focusAddressbar:function(t){this.refs.urlinput.select(),this.refs.urlinput.focus()},componentDidMount:function(){o.on("CHANGE_WEBVIEW_URL",this._changeUrl),o.on("FOCUS_ADDRESSBAR",this._focusAddressbar)},componentWillUnmount:function(){o.removeListener("CHANGE_WEBVIEW_URL",this._changeUrl),o.removeListener("FOCUS_ADDRESSBAR",this._focusAddressbar)},render:function(){var t=(this.state.webviewID,this.state.url);return e.createElement("div",{className:"toolbar-location"},e.createElement("input",{className:"toolbar-location-input",type:"text",ref:"urlinput",onKeyDown:this.handleKeyUp,onBlur:this.handleBlur,onFocus:this.handleFocus,value:t,onChange:this.handleChange}),e.createElement("div",{className:"toolbar-location-refresh"},e.createElement("i",{className:"toolbar-location-refresh-icon"})),e.createElement("div",{className:"toolbar-location-history"},e.createElement("i",{className:"toolbar-location-history-icon"})),e.createElement(n,{autoClick:this.autoClick,autocomplete:this.state.autocomplete,autoIndex:this.state.autoIndex}))}});_exports=i}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toolbar/urlcomplete.js b/app/dist/components/toolbar/urlcomplete.js index 4d6c938f..7def1afa 100644 --- a/app/dist/components/toolbar/urlcomplete.js +++ b/app/dist/components/toolbar/urlcomplete.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=a.createClass({displayName:'Urlcomplete',render:function(){let d=this.props.autocomplete;this.props.autoIndex;let e=this.props.autocomplete.length?{}:b.displayNone,f=d.map((g,h)=>{let i='toolbar-location-recommend-item'+(this.props.autoIndex===h?' toolbar-location-recommend-item-selected':'');return a.createElement('p',{onClick:this.props.autoClick,'data-index':h,key:h,className:i},g)});return a.createElement('div',{className:'toolbar-location-recommend',style:e},f)}});_exports=c}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),o=e.createClass({displayName:"Urlcomplete",render:function(){var o=this,r=this.props.autocomplete,s=(this.props.autoIndex,this.props.autocomplete.length?{}:t.displayNone),a=r.map(function(t,r){var s="toolbar-location-recommend-item"+(o.props.autoIndex===r?" toolbar-location-recommend-item-selected":"");return e.createElement("p",{onClick:o.props.autoClick,"data-index":r,key:r,className:s},t)});return e.createElement("div",{className:"toolbar-location-recommend",style:s},a)}});_exports=o}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/components/toolbar/userinfo.js b/app/dist/components/toolbar/userinfo.js index b23b7f78..8000d53c 100644 --- a/app/dist/components/toolbar/userinfo.js +++ b/app/dist/components/toolbar/userinfo.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../../lib/react.js'),b=require('../../cssStr/cssStr.js'),c=require('../../actions/windowActions.js'),d=require('../../stores/windowStores.js'),e=a.createClass({displayName:'Userinfo',getInitialState:function(){return{show:!1}},clearUserInfo:function(){c.clearUserInfo()},showProfile:function(f){let g=this.state.show;this.setState({show:!g}),f.stopPropagation()},_bodyClick:function(){this.setState({show:!1})},componentDidMount:function(){d.on('BODY_CLICK',this._bodyClick)},componentWillUnmount:function(){d.removeListener('BODY_CLICK',this._bodyClick)},render:function(){let f=this.props.userInfo,g=this.props.project,h=this.state.show?{}:b.displayNone;return a.createElement('div',{onClick:this.showProfile,className:g?'toolbar-avatar':'toolbar-avatar-noproject'},a.createElement('img',{src:f.headUrl}),a.createElement('div',{className:'toolbar-profile',style:h},a.createElement('img',{className:'toolbar-profile-avatar',src:f.headUrl}),a.createElement('h3',{className:'toolbar-profile-nickname'},f.nickName),a.createElement('a',{href:'javascript:;',onClick:this.clearUserInfo,className:'toolbar-profile-button'},'\u9000\u51FA')))}});_exports=e}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../../lib/react.js"),t=require("../../cssStr/cssStr.js"),o=require("../../actions/windowActions.js"),r=require("../../stores/windowStores.js"),s=e.createClass({displayName:"Userinfo",getInitialState:function(){return{show:!1}},clearUserInfo:function(){o.clearUserInfo()},showProfile:function(e){var t=this.state.show;this.setState({show:!t}),e.stopPropagation()},_bodyClick:function(){this.setState({show:!1})},componentDidMount:function(){r.on("BODY_CLICK",this._bodyClick)},componentWillUnmount:function(){r.removeListener("BODY_CLICK",this._bodyClick)},render:function(){var o=this.props.userInfo,r=this.props.project,s=this.state.show?{}:t.displayNone;return e.createElement("div",{onClick:this.showProfile,className:r?"toolbar-avatar":"toolbar-avatar-noproject"},e.createElement("img",{src:o.headUrl}),e.createElement("div",{className:"toolbar-profile",style:s},e.createElement("img",{className:"toolbar-profile-avatar",src:o.headUrl}),e.createElement("h3",{className:"toolbar-profile-nickname"},o.nickName),e.createElement("a",{href:"javascript:;",onClick:this.clearUserInfo,className:"toolbar-profile-button"},"退出")))}});_exports=s}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/config/DeviceModules.js b/app/dist/config/DeviceModules.js index 014c3af5..8e6c452b 100644 --- a/app/dist/config/DeviceModules.js +++ b/app/dist/config/DeviceModules.js @@ -1 +1 @@ -'use strict';let version=global.appVersion;module.exports={'iPhone 4':{title:'iPhone 4',os:'iOS','user-agent':`Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${version} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,screen:{horizontal:{width:480,height:320},'device-pixel-ratio':1,vertical:{width:320,height:480}}},'iPhone 4s':{title:'iPhone 4s',os:'iOS','user-agent':`Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${version} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,screen:{horizontal:{width:480,height:320},'device-pixel-ratio':2,vertical:{width:320,height:480}}},'iPhone 5':{title:'iPhone 5',os:'iOS','user-agent':`Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${version} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,screen:{horizontal:{width:568,height:320},'device-pixel-ratio':2,vertical:{width:320,height:568}}},'iPhone 6':{title:'iPhone 6',os:'iOS','user-agent':`Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${version} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,screen:{horizontal:{width:375,height:667},'device-pixel-ratio':2,vertical:{width:375,height:667}}},'iPhone 6 Plus':{title:'iPhone 6 Plus',os:'iOS','user-agent':`Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${version} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,screen:{horizontal:{width:414,height:736},'device-pixel-ratio':3,vertical:{width:414,height:736}}},'Galaxy S5':{title:'Galaxy S5',os:'Android','user-agent':`Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:640,height:384},'device-pixel-ratio':3,vertical:{width:384,height:640}}},'Galaxy Note II':{title:'Galaxy Note II',os:'Android','user-agent':`Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:640,height:360},'device-pixel-ratio':2,vertical:{width:360,height:640}}},'Nexus 4':{title:'Nexus 4',os:'Android','user-agent':`Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:640,height:384},'device-pixel-ratio':2,vertical:{width:384,height:640}}},'Nexus 5':{title:'Nexus 5',os:'Android','user-agent':`Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:360,height:640},'device-pixel-ratio':3,vertical:{width:360,height:640}}},'Nexus 5x':{title:'Nexus 5x',os:'Android','user-agent':`Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:731,height:411},'device-pixel-ratio':2.625,vertical:{width:411,height:731}}},'Nexus 6':{title:'Nexus 6',os:'Android','user-agent':`Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/${version} MicroMessenger/{{version}} webview/{{webviewID}}`,screen:{horizontal:{width:732,height:412},'device-pixel-ratio':3.5,vertical:{width:412,height:732}}}}; \ No newline at end of file +"use strict";var version=global.appVersion;module.exports={"iPhone 4":{title:"iPhone 4",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:480,height:320},"device-pixel-ratio":1,vertical:{width:320,height:480}}},"iPhone 4s":{title:"iPhone 4s",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:480,height:320},"device-pixel-ratio":2,vertical:{width:320,height:480}}},"iPhone 5":{title:"iPhone 5",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:568,height:320},"device-pixel-ratio":2,vertical:{width:320,height:568}}},"iPhone 6":{title:"iPhone 6",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:375,height:667},"device-pixel-ratio":2,vertical:{width:375,height:667}}},"iPhone 6 Plus":{title:"iPhone 6 Plus",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:414,height:736},"device-pixel-ratio":3,vertical:{width:414,height:736}}},"iPhone 7":{title:"iPhone 7",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:375,height:667},"device-pixel-ratio":2,vertical:{width:375,height:667}}},"iPhone 7 Plus":{title:"iPhone 7 Plus",os:"iOS","user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 Safari/601.1 wechatdevtools/"+version+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",screen:{horizontal:{width:414,height:736},"device-pixel-ratio":3,vertical:{width:414,height:736}}},"Galaxy S5":{title:"Galaxy S5",os:"Android","user-agent":"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:640,height:384},"device-pixel-ratio":3,vertical:{width:384,height:640}}},"Galaxy Note II":{title:"Galaxy Note II",os:"Android","user-agent":"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:640,height:360},"device-pixel-ratio":2,vertical:{width:360,height:640}}},"Nexus 4":{title:"Nexus 4",os:"Android","user-agent":"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:640,height:384},"device-pixel-ratio":2,vertical:{width:384,height:640}}},"Nexus 5":{title:"Nexus 5",os:"Android","user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:360,height:640},"device-pixel-ratio":3,vertical:{width:360,height:640}}},"Nexus 5x":{title:"Nexus 5x",os:"Android","user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:731,height:411},"device-pixel-ratio":2.625,vertical:{width:411,height:731}}},"Nexus 6":{title:"Nexus 6",os:"Android","user-agent":"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 wechatdevtools/"+version+" MicroMessenger/{{version}} webview/{{webviewID}}",screen:{horizontal:{width:732,height:412},"device-pixel-ratio":3.5,vertical:{width:412,height:732}}}}; \ No newline at end of file diff --git a/app/dist/config/appserviceConfig.js b/app/dist/config/appserviceConfig.js index 24826426..096eec1d 100644 --- a/app/dist/config/appserviceConfig.js +++ b/app/dist/config/appserviceConfig.js @@ -1 +1 @@ -module.exports={AppserviceMaxDataSize:1048576,HTTPSetting:{HTTPHeaderMode:'BlackList',HeaderBlackList:['User-Agent'],HeaderWhiteList:[],UploadMaxTimeoutMS:60000,DownloadMaxTimeoutMS:60000,WebsocketMaxTimeoutMS:60000,RequestMaxTimeoutMS:60000,HTTPHeaderReferer:'servicewechat.com'},CDNBaseURL:'https://res.wx.qq.com/weapp',AppMaxRunningCount:5,DownloadFileSizeLimit:10,TempFileSizeLimitTotal:300}; \ No newline at end of file +"use strict";module.exports={AppserviceMaxDataSize:1048576,HTTPSetting:{HTTPHeaderMode:"BlackList",HeaderBlackList:["User-Agent"],HeaderWhiteList:[],UploadMaxTimeoutMS:6e4,DownloadMaxTimeoutMS:6e4,WebsocketMaxTimeoutMS:6e4,RequestMaxTimeoutMS:6e4,HTTPHeaderReferer:"servicewechat.com"},CDNBaseURL:"https://res.wx.qq.com/weapp",AppMaxRunningCount:5,DownloadFileSizeLimit:10,TempFileSizeLimitTotal:300}; \ No newline at end of file diff --git a/app/dist/config/config.js b/app/dist/config/config.js index bbe71b69..13ee08cd 100644 --- a/app/dist/config/config.js +++ b/app/dist/config/config.js @@ -1 +1 @@ -'use strict';function init(){let a=global.appVersion;module.exports={COMPONENT_FOR_DEVELOPER:'For developer:',WXML_RUNTIME_ERROR:'WXMLRT:',WXML_ERROR:'WXML ERROR:',WXML_LOSE_ERROR:'WXML_LOSE_ERROR',PAGE_DEFINE_ERROR:'PAGE DEFINE ERROR',ES6_ERROR:'ES6_ERROR',WXSS_ERROR:'WXSS_ERROR',WXSS_IMPORT_ERROR:'WXSS_IMPORT_ERROR',JSON_FILE_ERROR:'JSON_FILE_ERROR',JSON_PARSE_ERROR:'JSON_PARSE_ERROR',JSON_CONTENT_ERROR:'JSON_CONTENT_ERROR',PAGEJS_FILE_ERROR:'PAGEJS_FILE_ERROR',JSON_ENTRANCE_ERROR:'JSON_ENTRANCE_ERROR',WEBVIEW_ERROR:'WEBVIEW_ERROR',WEBVIEW_NETWORK_ERROR:'WEBVIEW_NETWORK_ERROR',SELECT_URL_TYPE:1,SELECT_UNKNOW_TYPE:0,weappURLRegular:/^https?\:\/\/.*?\.debug.open.weixin.qq.com/,weappASURLRegular:/^https?\:\/\/.*?\.appservice.open.weixin.qq.com/,weappLocalIdRegular:/^https?\:\/\/wxfile.open.weixin.qq.com\//,defaultWechatVersion:'6.3.9',defaultUa:`Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/${a} MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}`,Android_useragent:`Mozilla/5.0 (Linux; Android 4.4.4; AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38 Mobile Safari/537.36 wechatdevtools/${a} MicroMessenger/{{version}} webview/{{webviewID}}`}}init(); \ No newline at end of file +"use strict";function init(){var R=global.appVersion;module.exports={COMPONENT_FOR_DEVELOPER:"For developer:",WXML_RUNTIME_ERROR:"WXMLRT:",WXML_ERROR:"WXML ERROR:",WXML_LOSE_ERROR:"WXML_LOSE_ERROR",PAGE_DEFINE_ERROR:"PAGE DEFINE ERROR",ES6_ERROR:"ES6_ERROR",WXSS_ERROR:"WXSS_ERROR",WXSS_IMPORT_ERROR:"WXSS_IMPORT_ERROR",JSON_FILE_ERROR:"JSON_FILE_ERROR",JSON_PARSE_ERROR:"JSON_PARSE_ERROR",JSON_CONTENT_ERROR:"JSON_CONTENT_ERROR",PAGEJS_FILE_ERROR:"PAGEJS_FILE_ERROR",JSON_ENTRANCE_ERROR:"JSON_ENTRANCE_ERROR",WEBVIEW_ERROR:"WEBVIEW_ERROR",WEBVIEW_NETWORK_ERROR:"WEBVIEW_NETWORK_ERROR",SELECT_URL_TYPE:1,SELECT_UNKNOW_TYPE:0,weappURLRegular:/^https?\:\/\/.*?\.debug.open.weixin.qq.com/,weappASURLRegular:/^https?\:\/\/.*?\.appservice.open.weixin.qq.com/,weappLocalIdRegular:/^https?\:\/\/wxfile.open.weixin.qq.com\//,defaultWechatVersion:"6.5.6",defaultUa:"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/"+R+" MicroMessenger/{{version}} Language/zh_CN webview/{{webviewID}}",Android_useragent:"Mozilla/5.0 (Linux; Android 4.4.4; AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38 Mobile Safari/537.36 wechatdevtools/"+R+" MicroMessenger/{{version}} webview/{{webviewID}}"}}init(); \ No newline at end of file diff --git a/app/dist/config/dirConfig.js b/app/dist/config/dirConfig.js index 1913dc11..1078215f 100644 --- a/app/dist/config/dirConfig.js +++ b/app/dist/config/dirConfig.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('path'),b=require('mkdir-p'),c=a.join(nw.App.getDataPath(),'..');_exports={},_exports.WeappStorage=a.join(c,'WeappStorage'),b.sync(_exports.WeappStorage),_exports.WeappFileCache=a.join(c,'WeappFileCache'),b.sync(_exports.WeappFileCache),_exports.Weappdest=a.join(c,'Weappdest'),b.sync(_exports.Weappdest),_exports.WeappApplication=a.join(c,'WeappApplication'),b.sync(_exports.WeappApplication),_exports.WeappVendor=a.join(c,'WeappVendor'),b.sync(_exports.WeappVendor),_exports.WeappBuildCache=a.join(c,'WeappBuildCache'),b.sync(_exports.WeappBuildCache),_exports.WeappLog=a.join(c,'WeappLog'),b.sync(_exports.WeappLog),_exports.WeappProjectInfo=a.join(c,'WeappProject'),b.sync(_exports.WeappProjectInfo),_exports.ProxyCache=a.join(c,'ProxyCache'),b.sync(_exports.ProxyCache)}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var p=require("path"),e=require("mkdir-p"),o=p.join(nw.App.getDataPath(),"..");_exports={},_exports.WeappStorage=p.join(o,"WeappStorage"),e.sync(_exports.WeappStorage),_exports.WeappFileCache=p.join(o,"WeappFileCache"),e.sync(_exports.WeappFileCache),_exports.Weappdest=p.join(o,"Weappdest"),e.sync(_exports.Weappdest),_exports.WeappApplication=p.join(o,"WeappApplication"),e.sync(_exports.WeappApplication),_exports.WeappVendor=p.join(o,"WeappVendor"),e.sync(_exports.WeappVendor),_exports.WeappBuildCache=p.join(o,"WeappBuildCache"),e.sync(_exports.WeappBuildCache),_exports.WeappLog=p.join(o,"WeappLog"),e.sync(_exports.WeappLog),_exports.WeappProjectInfo=p.join(o,"WeappProject"),e.sync(_exports.WeappProjectInfo),_exports.ProxyCache=p.join(o,"ProxyCache"),e.sync(_exports.ProxyCache)}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/config/errcodeConfig.js b/app/dist/config/errcodeConfig.js index 2b6bfafb..7f352c4f 100644 --- a/app/dist/config/errcodeConfig.js +++ b/app/dist/config/errcodeConfig.js @@ -1 +1 @@ -"use strict";module.exports={ILLEGAL_URL:-2005,NOT_LIMITS:-1024,NOT_LIMITS_QY:-1025,NOT_LIMITS_CARD:-1026,NOT_LOGIN:41001,INVALID_TOKEN:40001,INVALID_LOGIN:42001,INVALID_CODE:10010,INVALID_CARD_ID:10023,DEV_Invalid_Appid:40013,DEV_Missing_Appid:41002,DEV_Limit:45011,DEV_Need_ReLogin:-80001,DEV_App_Not_Band:-80002,DEV_Need_Admin:-80003,DEV_Invalid_Clinet_Report:-80004,DEV_Need_Update:-80005,DEV_Need_SCAN_CODE:-80006,DEV_COMPILE_EMPTY_SOURCE:-80050,DEV_COMPILE_SOURCE_MAX_LIMIT:-80051,DEV_COMPILE_WXPKG_MAX_LIMIT:-80052,DEV_COMPILE_INVALID_WXPKG:-80053,DEV_COMPILE_WXML_FAIL:-80054,DEV_COMPILE_WXSS_FAIL:-80056,DEV_Expired_Signature:42002,DEV_Invalid_Signature:40030,DEV_COMPILE_INVALID_JSON_FILE:-80058,DEV_COMPILE_LACK_OF_FILE:-800059,DEV_BIND_NOT_24H:-80007}; \ No newline at end of file +"use strict";module.exports={ILLEGAL_URL:-2005,NOT_LIMITS:-1024,NOT_LIMITS_QY:-1025,NOT_LIMITS_CARD:-1026,NOT_LOGIN:41001,INVALID_TOKEN:40001,INVALID_LOGIN:42001,NEED_CONFORM:-12e3,INVALID_CODE:10010,INVALID_CARD_ID:10023,DEV_Invalid_Appid:40013,DEV_Missing_Appid:41002,DEV_Limit:45011,DEV_Need_ReLogin:-80001,DEV_App_Not_Band:-80002,DEV_Need_Admin:-80003,DEV_Invalid_Clinet_Report:-80004,DEV_Need_Update:-80005,DEV_Need_SCAN_CODE:-80006,DEV_COMPILE_EMPTY_SOURCE:-80050,DEV_COMPILE_SOURCE_MAX_LIMIT:-80051,DEV_COMPILE_WXPKG_MAX_LIMIT:-80052,DEV_COMPILE_INVALID_WXPKG:-80053,DEV_COMPILE_WXML_FAIL:-80054,DEV_COMPILE_WXSS_FAIL:-80056,DEV_Expired_Signature:42002,DEV_Invalid_Signature:40030,DEV_COMPILE_INVALID_JSON_FILE:-80058,DEV_COMPILE_LACK_OF_FILE:-800059,DEV_BIND_NOT_24H:-80007,DEV_PLATFORM_NOT_BAND_DEV:-80060,DEV_PLATFORM_INVALID_EXT_APPID:-80061,DEV_PLATFORM_EXT_APPID_NOT_AUTH:-80062}; \ No newline at end of file diff --git a/app/dist/config/permissionConfig.js b/app/dist/config/permissionConfig.js new file mode 100644 index 00000000..ea505310 --- /dev/null +++ b/app/dist/config/permissionConfig.js @@ -0,0 +1 @@ +"use strict";module.exports={NoAllow:0,Allow:1,UserCancel:2,AuthFail:3}; \ No newline at end of file diff --git a/app/dist/config/sceneConfig.js b/app/dist/config/sceneConfig.js new file mode 100644 index 00000000..b5d958a6 --- /dev/null +++ b/app/dist/config/sceneConfig.js @@ -0,0 +1 @@ +"use strict";function init(){var e={1001:"发现栏小程序主入口",1005:"顶部搜索框的搜索结果页",1006:"发现栏小程序主入口搜索框的搜索结果页",1007:"单人聊天会话",1008:"群聊会话",1011:"扫描二维码",1014:"小程序模版消息",1020:"公众号 profile 页相关小程序列表",1022:"聊天顶部置顶小程序入口",1023:"安卓系统桌面图标",1024:"小程序 profile 页",1025:"扫描一维码",1028:"我的卡包",1029:"卡券详情页",1035:"公众号自定义菜单",1036:"App 分享消息卡片",1042:"添加好友搜索框的搜索结果页",1043:"公众号模板消息"};module.exports={getSceneWording:function(n){return e[n]||"未知"},defaultScene:1001,sceneData:e}}init(); \ No newline at end of file diff --git a/app/dist/config/urlConfig.js b/app/dist/config/urlConfig.js index 28a7f13a..29f1d878 100644 --- a/app/dist/config/urlConfig.js +++ b/app/dist/config/urlConfig.js @@ -1 +1 @@ -'use strict';function init(){var a=localStorage.getItem('urlConfig');a=a?JSON.parse(a):{};const b='https://servicewechat.com/',c='https://mp.weixin.qq.com/',d='https://open.weixin.qq.com/';var e=a.webdebugger_geta8key||`${c}debug/cgi-bin/webdebugger/geta8key`,f=a.webdebugger_preverify||`${c}debug/cgi-bin/webdebugger/preverify`,g=a.wechat_login||`${d}connect/qrconnect?appid=wxde40e023744664cb&redirect_uri=https%3a%2f%2fmp.weixin.qq.com%2fdebug%2fcgi-bin%2fwebdebugger%2fqrcode&scope=snsapi_login&state=login#wechat_redirect`,h=a.webdebugger_clientreport||`${c}debug/cgi-bin/webdebugger/clientreport`,i=a.webdebugger_download||`${c}debug/cgi-bin/webdebugger/download`,j=a.refresh_ticket||`${c}debug/cgi-bin/webdebugger/refreshticket`;module.exports={CGI_DOMAIN:b,MP_DOMAIN:c,OPEN_DOMAIN:d,LOADCONFIG_URL:`${c}debug/cgi-bin/webdebugger/loadconfig`,GET8KEY_URL:global.appConfig.GET8KEY_URL||e,PREVERIFY_URL:global.appConfig.PREVERIFY_URL||f,LOGIN_URL:global.appConfig.LOGIN_URL||g,CLIENTREPORT_URL:h,DOWNLOAD_URL:i,refreshTicketURL:j,batchAddCardURL:`${c}debug/cgi-bin/webdebugger/getcarditeminfo`,chooseCardURL:`${c}debug/cgi-bin/webdebugger/getavailablecard`,batchViewCardURL:`${c}debug/cgi-bin/webdebugger/batchgetcarditembytpinfo`,createWeappURL:`${b}wxa-dev-logic/getappinfo`,newReportURL:`${b}wxa-dev-logic/clientreport`,getWeappAttrURL:`${b}wxa-dev-logic/batchgetappattr`,jsLoginURL:`${b}wxa-dev-logic/jslogin`,jsRefreshSessionURL:`${b}wxa-dev-logic/jsrefresh_session`,jsOperateWXDATAURL:`${b}wxa-dev-logic/jsoperatewxdata`,jsDecodeQRCodeURL:`${b}wxa-dev-logic/decode_qrcode`,jsAuthorizeURL:`${b}wxa-dev-logic/jsauthorize`,jsAuthorizeConfirmURL:`${b}wxa-dev-logic/jsauthorize-confirm`,testSourceURL:`${b}wxa-dev/testsource`,testSourceNewFeatureURL:`${b}wxa-dev-new/testsource`,commitSourceURL:`${b}wxa-dev/commitsource`,downloadRedirectURL:``,touristCreateURL:`${b}wxa-dev-logic/createtourist`,uploadQrCodeURL:`${b}wxa-dev-logic/getcommitqrcode`,paymentURL:`${b}wxa-dev-logic/payment`,paymentStateURL:`${b}wxa-dev-logic/querypaymentstate`,refreshUploadConfirm:`${b}wxa-dev-logic/queryqrcodestate`}}init(); \ No newline at end of file +"use strict";function init(){var e=localStorage.getItem("urlConfig");e=e?JSON.parse(e):{};var t="https://servicewechat.com/",i="https://mp.weixin.qq.com/",o="https://open.weixin.qq.com/",g=e.webdebugger_geta8key||i+"debug/cgi-bin/webdebugger/geta8key",a=e.webdebugger_preverify||i+"debug/cgi-bin/webdebugger/preverify",c=e.wechat_login||o+"connect/qrconnect?appid=wxde40e023744664cb&redirect_uri=https%3a%2f%2fmp.weixin.qq.com%2fdebug%2fcgi-bin%2fwebdebugger%2fqrcode&scope=snsapi_login&state=login#wechat_redirect",r=e.webdebugger_clientreport||i+"debug/cgi-bin/webdebugger/clientreport",d=e.webdebugger_download||i+"debug/cgi-bin/webdebugger/download",b=e.refresh_ticket||i+"debug/cgi-bin/webdebugger/refreshticket";module.exports={NEW_VERSION_LOG:"https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/new.html",CGI_DOMAIN:t,MP_DOMAIN:i,OPEN_DOMAIN:o,LOADCONFIG_URL:i+"debug/cgi-bin/webdebugger/loadconfig",GET8KEY_URL:global.appConfig.GET8KEY_URL||g,PREVERIFY_URL:global.appConfig.PREVERIFY_URL||a,LOGIN_URL:global.appConfig.LOGIN_URL||c,CLIENTREPORT_URL:r,DOWNLOAD_URL:d,refreshTicketURL:b,batchAddCardURL:i+"debug/cgi-bin/webdebugger/getcarditeminfo",chooseCardURL:i+"debug/cgi-bin/webdebugger/getavailablecard",batchViewCardURL:i+"debug/cgi-bin/webdebugger/batchgetcarditembytpinfo",createWeappURL:t+"wxa-dev-logic/getappinfo",newReportURL:t+"wxa-dev-logic/clientreport",getWeappAttrURL:t+"wxa-dev-logic/batchgetappattr",jsLoginURL:t+"wxa-dev-logic/jslogin",jsRefreshSessionURL:t+"wxa-dev-logic/jsrefresh_session",jsOperateWXDATAURL:t+"wxa-dev-logic/jsoperatewxdata",jsDecodeQRCodeURL:t+"wxa-dev-logic/decode_qrcode",jsAuthorizeURL:t+"wxa-dev-logic/jsauthorize",jsAuthorizeConfirmURL:t+"wxa-dev-logic/jsauthorize-confirm",testSourceURL:t+"wxa-dev/testsource",testSourceNewFeatureURL:t+"wxa-dev-new/testsource",commitSourceURL:t+"wxa-dev/commitsource",downloadRedirectURL:"https://github.com/yuan1994/wechat_web_devtools",touristCreateURL:t+"wxa-dev-logic/createtourist",uploadQrCodeURL:t+"wxa-dev-logic/getcommitqrcode",paymentURL:t+"wxa-dev-logic/payment",paymentStateURL:t+"wxa-dev-logic/querypaymentstate",refreshUploadConfirm:t+"wxa-dev-logic/queryqrcodestate",cleanUserAuth:t+"wxa-dev-logic/deleteuserauth",getBbsTicket:t+"wxa-dev-logic/getbbsopenticket",checkApiAuth:t+"wxa-dev-logic/jsapiauth",getAuthList:t+"wxa-dev-logic/getauthlist",setAuth:t+"wxa-dev-logic/setauth"}}init(); \ No newline at end of file diff --git a/app/dist/config/weappConfig.js b/app/dist/config/weappConfig.js index 3fe29451..45c4166e 100644 --- a/app/dist/config/weappConfig.js +++ b/app/dist/config/weappConfig.js @@ -1 +1 @@ -module.exports={default_tabheight:56,default_backgroundColor:'#ffffff',default_navigationBarTextStyle:'white',default_navigationBarBackgroundColor:'#000000'}; \ No newline at end of file +"use strict";module.exports={default_tabheight:56,default_backgroundColor:"#ffffff",default_navigationBarTextStyle:"white",default_navigationBarBackgroundColor:"#000000",default_tabBarBorderBlackColor:"rgba(0, 0, 0, 0.33)",default_tabBarBorderWhiteColor:"rgba(255, 255, 255, 0.33)"}; \ No newline at end of file diff --git a/app/dist/config/wordingConfig.js b/app/dist/config/wordingConfig.js index d2e3dfc6..4e13af5b 100644 --- a/app/dist/config/wordingConfig.js +++ b/app/dist/config/wordingConfig.js @@ -1 +1 @@ -module.exports=['\u7CFB\u7EDF\u9519\u8BEF\uFF0C \u9519\u8BEF\u7801','\u6682\u4E0D\u652F\u6301\u5F53\u524D URL \u7684 Oatuh \u8C03\u8BD5\u652F\u6301']; \ No newline at end of file +"use strict";module.exports=["系统错误, 错误码","暂不支持当前 URL 的 Oatuh 调试支持"]; \ No newline at end of file diff --git a/app/dist/contentscript/contentScript.js b/app/dist/contentscript/contentScript.js index 13243468..0e3d3ec4 100644 --- a/app/dist/contentscript/contentScript.js +++ b/app/dist/contentscript/contentScript.js @@ -1 +1 @@ -'use strict';var ua=navigator.userAgent,webviewID=parseInt(ua.match(/webview\/(\d*)/)[1]),weapp=ua.match(/weapp\/(\d*)/),weappID=weapp?parseInt(weapp[1]):void 0;window.runtime={};var portInit=!1,postMessageInit=!1,portMsgQuery=[],postMessageQuery=[],port=window.runtime.port=chrome.runtime.connect('',{name:`webview${webviewID}`}),__msgQueue={},__id=0;function postMessageToNW(a){if(a.webviewID=webviewID,a.weappID=weappID,!portInit)return void portMsgQuery.push(a);for(__msgQueue[a.__id]=a;__msgQueue[__id];)port.postMessage(__msgQueue[__id]),delete __msgQueue[__id],__id++}function postMessageToWebPage(a){return postMessageInit?void(a.webviewID=webviewID,window.postMessage(a,'*')):void postMessageQuery.push(a)}function handleMsg(a){let b=a.command;'SHAKE_HANDS'===b&&(portInit=!0,portMsgQuery.length&&(portMsgQuery.forEach(c=>{postMessageToNW(c)}),portMsgQuery=[]))}function receiveMessageFromPageFrame(a){'backgroundjs'===a.to&&postMessageToNW(a)}port.onMessage.addListener(a=>{let b=a.to;'contentscript'===b?handleMsg(a):'webframe'===b?postMessageToWebPage(a):'appservice'===b&&postMessageToWebPage(a)}),window.addEventListener('message',a=>{let b=a.data;if(b&&'object'==typeof b&&b.webviewID===webviewID){let i=b.comefrom,j=b.to;if('webframe'===i){let k=b.command;'contentscript'===j&&'SHAKE_HANDS'===k?(postMessageInit=!0,postMessageQuery.length&&(postMessageQuery.forEach(l=>{postMessageToWebPage(l)}),postMessageQuery=[])):receiveMessageFromPageFrame(b)}}}); \ No newline at end of file +"use strict";function postMessageToNW(e){if(e.webviewID=webviewID,e.weappID=weappID,!portInit)return void portMsgQuery.push(e);for(__msgQueue[e.__id]=e;__msgQueue[__id];)port.postMessage(__msgQueue[__id]),delete __msgQueue[__id],__id++}function postMessageToWebPage(e){return postMessageInit?(e.webviewID=webviewID,void window.postMessage(e,"*")):void postMessageQuery.push(e)}function handleMsg(e){var o=e.command;if("SHAKE_HANDS"===o)portInit=!0,portMsgQuery.length&&(portMsgQuery.forEach(function(e){postMessageToNW(e)}),portMsgQuery=[]);else if("ERR_CONNECTION_RESET"!==o||showProxyErr){if("SHOW_SYS_INFO"===o){var t=e.msg,s=t.memory,r=t.restartInfo,n=+new Date-r.projectBeginTime,a=r.projectRestartNum;console.group(new Date+" 工具系统信息"),console.info("工具已运行 "+(n/1e3).toFixed(2)+" 秒,执行编译 "+a+" 次, 当前内存占用 "+s.toFixed(2)+"m"),console.table(t.info),console.groupEnd()}}else{var i=e.msg,p="因为网络代理软件或者 VPN 影响,工具无法加载本地模拟开发服务 "+i.url+" 请尝试以下任一解决方案\n1.关闭相关网络代理软件,重新编译成功后,再启动相关网络代理软件;\n2.配置相关软件不针对 *.appservice.open.weixin.qq.com 和 *.debug.open.weixin.qq.com 进行代理;\n3.配置相关软件不针对 开发者工具 做代理。";console.group(new Date+" 工具加载错误"),console.error(p),console.groupEnd(),showProxyErr=!0}}function receiveMessageFromPageFrame(e){"backgroundjs"===e.to&&postMessageToNW(e)}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ua=navigator.userAgent,webviewID=parseInt(ua.match(/webview\/(\d*)/)[1]),weapp=ua.match(/weapp\/(\d*)/),weappID=weapp?parseInt(weapp[1]):void 0;window.runtime={};var portInit=!1,postMessageInit=!1,portMsgQuery=[],postMessageQuery=[],port=window.runtime.port=chrome.runtime.connect("",{name:"webview"+webviewID}),__msgQueue={},__id=0,showProxyErr=!1;port.onMessage.addListener(function(e){var o=e.to;"contentscript"===o?handleMsg(e):"webframe"===o?postMessageToWebPage(e):"appservice"===o&&postMessageToWebPage(e)}),window.addEventListener("message",function(e){var o=e.data;if(o&&"object"===("undefined"==typeof o?"undefined":_typeof(o))&&o.webviewID===webviewID){var t=o.comefrom,s=o.to;if("webframe"===t){var r=o.command;"contentscript"===s&&"SHAKE_HANDS"===r?(postMessageInit=!0,postMessageQuery.length&&(postMessageQuery.forEach(function(e){postMessageToWebPage(e)}),postMessageQuery=[])):receiveMessageFromPageFrame(o)}}}); \ No newline at end of file diff --git a/app/dist/contentscript/editcontent.js b/app/dist/contentscript/editcontent.js index 443a0c3b..24b8068c 100644 --- a/app/dist/contentscript/editcontent.js +++ b/app/dist/contentscript/editcontent.js @@ -1 +1 @@ -'use strict';var portInit=!1,postMessageInit=!1,portMsgQuery=[],postMessageQuery=[],port=chrome.runtime.connect('',{name:`edit`});function postMessageToNW(a){return portInit?void port.postMessage(a):void portMsgQuery.push(a)}function postMessageToWebPage(a){return postMessageInit?void window.postMessage(a,'*'):void postMessageQuery.push(a)}function handleMsg(a){let b=a.command;'SHAKE_HANDS'===b&&(portInit=!0,portMsgQuery.length&&(portMsgQuery.forEach(c=>{postMessageToNW(c)}),portMsgQuery=[]))}function receiveMessageFromPageFrame(a){'backgroundjs'===a.to&&postMessageToNW(a)}port.onMessage.addListener(a=>{let b=a.to;'contentscript'===b?handleMsg(a):'webframe'===b&&postMessageToWebPage(a)}),window.addEventListener('message',a=>{let b=a.data;if('object'==typeof b){let f=b.to,g=b.command;'contentscript'===f&&'SHAKE_HANDS'===g?(postMessageInit=!0,postMessageQuery.length&&(postMessageQuery.forEach(h=>{postMessageToWebPage(h)}),postMessageQuery=[])):'backgroundjs'===f&&receiveMessageFromPageFrame(b)}}); \ No newline at end of file +"use strict";function postMessageToNW(e){return portInit?void port.postMessage(e):void portMsgQuery.push(e)}function postMessageToWebPage(e){return postMessageInit?void window.postMessage(e,"*"):void postMessageQuery.push(e)}function handleMsg(e){var o=e.command;"SHAKE_HANDS"===o&&(portInit=!0,portMsgQuery.length&&(portMsgQuery.forEach(function(e){postMessageToNW(e)}),portMsgQuery=[]))}function receiveMessageFromPageFrame(e){"backgroundjs"===e.to&&postMessageToNW(e)}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},portInit=!1,postMessageInit=!1,portMsgQuery=[],postMessageQuery=[],port=chrome.runtime.connect("",{name:"edit"});port.onMessage.addListener(function(e){var o=e.to;"contentscript"===o?handleMsg(e):"webframe"===o&&postMessageToWebPage(e)}),window.addEventListener("message",function(e){var o=e.data;if("object"===("undefined"==typeof o?"undefined":_typeof(o))){var t=o.to,s=o.command;"contentscript"===t&&"SHAKE_HANDS"===s?(postMessageInit=!0,postMessageQuery.length&&(postMessageQuery.forEach(function(e){postMessageToWebPage(e)}),postMessageQuery=[])):"backgroundjs"===t&&receiveMessageFromPageFrame(o)}}); \ No newline at end of file diff --git a/app/dist/cssStr/cssStr.js b/app/dist/cssStr/cssStr.js index d77396a3..45ac5b62 100644 --- a/app/dist/cssStr/cssStr.js +++ b/app/dist/cssStr/cssStr.js @@ -1 +1 @@ -'use strict';module.exports={displayNone:{display:'none'},displayBlock:{display:'block'},displayFlex:{display:'flex'},visibilityHidden:{visibility:'hidden'},visibilityVisible:{visibility:'visible'},webviewDisplayNone:{height:0.01,width:0.01,marginTop:0,overflow:'hidden',flex:'initial'}}; \ No newline at end of file +"use strict";module.exports={displayNone:{display:"none"},displayBlock:{display:"block"},displayFlex:{display:"flex"},visibilityHidden:{visibility:"hidden"},visibilityVisible:{visibility:"visible"},webviewDisplayNone:{height:.01,width:.01,marginTop:0,overflow:"hidden",flex:"initial"}}; \ No newline at end of file diff --git a/app/dist/debugger/debugger.js b/app/dist/debugger/debugger.js index aca1b436..80382cd5 100644 --- a/app/dist/debugger/debugger.js +++ b/app/dist/debugger/debugger.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('async');chrome.debugger;var b={};chrome.debugger.onEvent.addListener(function(d,e,f){let g=d.targetId;b[g]&&b[g].onEventCall(d,e,f)}),chrome.debugger.onDetach.addListener(function(d,e){let f=d.targetId;b[f]&&(b[f].onDetachCall(d,e),delete b[f])}),_exports={start:function(d,e,f,g,h){let i=[];i.push(function(k){chrome.debugger.getTargets(l=>{k(null,l)})}),i.push(function(k,l){let m=k.find(o=>{return o.url===d.src});var n={targetId:m.id};chrome.debugger.attach(n,'1.1',()=>{b[n.targetId]={onEventCall:g,onDetachCall:h},l(null,n)})}),i.push(function(k,l){chrome.debugger.sendCommand(k,'DOM.enable',()=>{l(null,k)})}),i.push(function(k,l){chrome.debugger.sendCommand(k,'CSS.enable',()=>{l(null,k)})}),i.push(function(k,l){chrome.debugger.sendCommand(k,'Emulation.setTouchEmulationEnabled',{enabled:!0,configuration:'mobile'},()=>{l(null,k)})}),i.push(function(k,l){let m=e.webviewOffset;chrome.debugger.sendCommand(k,'Emulation.setDeviceMetricsOverride',{width:parseInt(m.width),height:parseInt(m.height),deviceScaleFactor:m.dpr,mobile:!0,fitWindow:!1},()=>{l(null,k)})}),a.waterfall(i,(j,k)=>{f&&f(k)})},sendCommand:function(d,e,f,g){f?chrome.debugger.sendCommand(d,e,f,g):chrome.debugger.sendCommand(d,e,g)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,n,t,r){t?chrome.debugger.sendCommand(e,n,t,r):chrome.debugger.sendCommand(e,n,r)}function n(e,n,t){var r=e.targetId;u[r]&&u[r].onEventCall(e,n,t)}function t(e,n){var t=e.targetId;u[t]&&(u[t].onDetachCall(e,n),delete u[t])}function r(e,n,t,r,i){function d(e){chrome.debugger.getTargets(function(n){e(null,n)})}function a(n,t){var o=n.find(function(n){return n.url===e.src});if(!o)return void t("did not find target");var d={targetId:o.id};chrome.debugger.attach(d,"1.1",function(){u[d.targetId]={onEventCall:r,onDetachCall:i},t(null,d)})}function c(e,n){chrome.debugger.sendCommand(e,"DOM.enable",function(){n(null,e)})}function l(e,n){chrome.debugger.sendCommand(e,"CSS.enable",function(){n(null,e)})}function g(e,n){chrome.debugger.sendCommand(e,"Emulation.setTouchEmulationEnabled",{enabled:!0,configuration:"mobile"},function(){n(null,e)})}function m(e,t){var r=n.webviewOffset;chrome.debugger.sendCommand(e,"Emulation.setDeviceMetricsOverride",{width:parseInt(r.width),height:parseInt(r.height),deviceScaleFactor:r.dpr,mobile:!0,fitWindow:!1},function(){t(null,e)})}var s=[];s.push(d),s.push(a),s.push(c),s.push(l),s.push(g),s.push(m),o.waterfall(s,function(e,n){e||t&&t(n)})}var o=require("async"),u=(chrome.debugger,{});chrome.debugger.onEvent.addListener(n),chrome.debugger.onDetach.addListener(t),_exports={start:r,sendCommand:e}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/dispatcher/dispatcher.js b/app/dist/dispatcher/dispatcher.js index ddf01d5c..4d1fa7f6 100644 --- a/app/dist/dispatcher/dispatcher.js +++ b/app/dist/dispatcher/dispatcher.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=require('../lib/flux.js').Dispatcher,b=new a,c=require('./webviewDispatcher.js'),d=require('./leftviewDispatcher.js'),e=require('./windowDispatcher.js'),f=require('./projectDispatcher.js');let g=c(b);d(b,g),e(b),f(b),_exports=b}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("../lib/flux.js").Dispatcher,r=new e,i=require("./webviewDispatcher.js"),s=require("./leftviewDispatcher.js"),t=require("./windowDispatcher.js"),p=require("./projectDispatcher.js"),u=i(r);s(r,u),t(r),p(r),_exports=r}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/dispatcher/leftviewDispatcher.js b/app/dist/dispatcher/leftviewDispatcher.js index 1ca08391..578473bf 100644 --- a/app/dist/dispatcher/leftviewDispatcher.js +++ b/app/dist/dispatcher/leftviewDispatcher.js @@ -1 +1 @@ -'use strict';function init(){const a=require('../stores/leftviewStores.js');module.exports=(b,c)=>{b.register(d=>{b.waitFor([c]);let e=d.webviewID;switch(d.actionType){case'LEFTVIEW_CLICK_RIGHTHEADER':a.clickRightHeader(e);break;case'LEFTVIEW_UP_SHARESTATUS':a.upShareStatus(e,d.show);break;case'LEFTVIEW_CLICK_MASK':a.clickMask(e);break;case'LEFTVIEW_HIDEALL':a.hideAll(e);break;default:}})}}init(); \ No newline at end of file +"use strict";function init(){var e=require("../stores/leftviewStores.js");module.exports=function(i,t){i.register(function(r){i.waitFor([t]);var s=r.webviewID;switch(r.actionType){case"LEFTVIEW_CLICK_RIGHTHEADER":e.clickRightHeader(s);break;case"LEFTVIEW_UP_SHARESTATUS":e.upShareStatus(s,r.show);break;case"LEFTVIEW_CLICK_MASK":e.clickMask(s);break;case"LEFTVIEW_HIDEALL":e.hideAll(s)}})}}init(); \ No newline at end of file diff --git a/app/dist/dispatcher/projectDispatcher.js b/app/dist/dispatcher/projectDispatcher.js index 812fbfbe..f57a2a06 100644 --- a/app/dist/dispatcher/projectDispatcher.js +++ b/app/dist/dispatcher/projectDispatcher.js @@ -1 +1 @@ -'use strict';function init(){const a=require('../stores/projectStores.js');module.exports=b=>{b.register(c=>{switch(c.actionType){case'ADD_PROJECT':a.add(c.project,c.needInitQuickStart);break;case'DELETE_PROJECT':a.del(c.projectid);break;case'CLOSE_PROJECT':a.close();break;case'RESTART_PROJECT':a.restart(c.project);break;default:}})}}init(); \ No newline at end of file +"use strict";function init(){var e=require("../stores/projectStores.js");module.exports=function(t){t.register(function(t){switch(t.actionType){case"ADD_PROJECT":e.add(t.project,t.needInitQuickStart);break;case"DELETE_PROJECT":e.del(t.projectid);break;case"CLOSE_PROJECT":e.close();break;case"RESTART_PROJECT":e.restart(t.project)}})}}init(); \ No newline at end of file diff --git a/app/dist/dispatcher/webviewDispatcher.js b/app/dist/dispatcher/webviewDispatcher.js index e347ae85..4d92baa9 100644 --- a/app/dist/dispatcher/webviewDispatcher.js +++ b/app/dist/dispatcher/webviewDispatcher.js @@ -1 +1 @@ -'use strict';function init(){const a=require('../stores/webviewStores.js');module.exports=b=>{return b.register(c=>{let d=c.webviewID;switch(c.actionType){case'UP_WEBVIEW_STATUS':a.upStatus(d,c.data);break;case'SET_WEBVIEW_ACTION':a.setAction(d,c.data);break;case'GET_A8KEY_WEBVIEW':a.getA8key(d,c.data);break;case'EXEC_WEBVIEW_JSSDK':a.execJSSDK(d,c.data);break;case'SHOW_SHARE_WEBVIEW':a.showShare(d,c.data);break;case'CLEAR_WEBVIEW_DATA':a.clearData(c.data);break;case'SET_WEBVIEW_UA':a.setUA(c.data);break;case'SET_WEBVIEW_INFO':a.setInfo(c.data);break;case'SET_INIT_URL':a.setInitURL(c.URL);break;case'SET_WEBVIEW_SNAPSHOT':a.setSnapShot(d,c.data);break;case'CHANGE_WEBVIEW_ID':a.changeWebviewID(d);break;case'DELETE_WEBVIEW_ID':a.deleteWebviewID(d);break;case'GET_JSSDK_RES':a.sendJSSDKRes(c.webviewID,c.sdkName,c.sdkRes,c.sdkResExt);break;case'SET_INTERFACT_FROMPAGEFRAME':a.setInterfaceFromPageFrame(c.webviewID,c.header);break;case'ClEAN_WEBVIEW':a.cleanWebview(c.webviewID);break;case'AS_TO_JS':a.asTojs(c.data);break;case'UP_AS_DATA':a.upASData(c.appid,c.data);break;case'AS_PUBLISH':a.asPublish(c.msg);break;case'POST_MSG_TOAS':a.postMessageToAS(c.msg);break;case'SEND_AS_SDK':a.sendASSdk(c.api,c.data,c.callback);break;case'SHOW_AUTHORIZE_SDK_DIALOG':a.authorizeSdkShowDialog(c.webviewId,c.authorizeSdkId,c.appicon_url,c.appname,c.scope_list);break;case'AUTHORIZE_SDK_RETURN':a.authorizeSdkReturn(c.authorizeSdkId,c.scope_list,c.isAllowed);break;case'STOP_PULL_DOWN_REFRESH':a.stopPullDownRefresh(c.args);break;case'TOUCH_SET_SUC':a.touchSetSuc(c.webviewID);break;case'TOGGLE_RECORD_WORDING':a.togglerRecordWording(c.show);break;default:}})}}init(); \ No newline at end of file +"use strict";function init(){var e=require("../stores/webviewStores.js");module.exports=function(a){return a.register(function(a){var s=a.webviewID;switch(a.actionType){case"UP_WEBVIEW_STATUS":e.upStatus(s,a.data);break;case"SET_WEBVIEW_ACTION":e.setAction(s,a.data);break;case"GET_A8KEY_WEBVIEW":e.getA8key(s,a.data);break;case"EXEC_WEBVIEW_JSSDK":e.execJSSDK(s,a.data);break;case"SHOW_SHARE_WEBVIEW":e.showShare(s,a.data);break;case"CLEAR_WEBVIEW_DATA":e.clearData(a.data);break;case"SET_WEBVIEW_UA":e.setUA(a.data);break;case"SET_WEBVIEW_INFO":e.setInfo(a.data);break;case"SET_INIT_URL":e.setInitURL(a.URL);break;case"SET_WEBVIEW_SNAPSHOT":e.setSnapShot(s,a.data);break;case"CHANGE_WEBVIEW_ID":e.changeWebviewID(s);break;case"DELETE_WEBVIEW_ID":e.deleteWebviewID(s);break;case"GET_JSSDK_RES":e.sendJSSDKRes(a.webviewID,a.sdkName,a.sdkRes,a.sdkResExt);break;case"SET_INTERFACT_FROMPAGEFRAME":e.setInterfaceFromPageFrame(a.webviewID,a.header);break;case"ClEAN_WEBVIEW":e.cleanWebview(a.webviewID);break;case"AS_TO_JS":e.asTojs(a.data);break;case"UP_AS_DATA":e.upASData(a.appid,a.data);break;case"UP_BL_DATA":e.upBLData(a.appid,a.data);break;case"AS_PUBLISH":e.asPublish(a.msg);break;case"POST_MSG_TOAS":e.postMessageToAS(a.msg);break;case"SEND_AS_SDK":e.sendASSdk(a.api,a.data,a.callback);break;case"STOP_PULL_DOWN_REFRESH":e.stopPullDownRefresh(a.args);break;case"TOUCH_SET_SUC":e.touchSetSuc(a.webviewID);break;case"TOGGLE_RECORD_WORDING":e.togglerRecordWording(a.show);break;case"OPERATE_PAYMENT_QRCODE_WND":e.operatePaymentQrcodeWnd(a.data)}})}}init(); \ No newline at end of file diff --git a/app/dist/dispatcher/windowDispatcher.js b/app/dist/dispatcher/windowDispatcher.js index df9c5767..48958d7b 100644 --- a/app/dist/dispatcher/windowDispatcher.js +++ b/app/dist/dispatcher/windowDispatcher.js @@ -1 +1 @@ -'use strict';function init(){const a=require('../stores/windowStores.js');module.exports=b=>{b.register(c=>{switch(c.actionType){case'WINDOW_RESIZE':a.resize(c.height);break;case'WINDOW_BLUR':a.blur();break;case'WINDOW_FOCUS':a.focus();break;case'UPDATA_USER_INFO':a.updateUserInfo(c.info);break;case'CLEAR_USER_INFO':a.clearUserInfo();break;case'SET_AUTO_COMPLETET':a.setAutoComplete(c.url);break;case'FOCUS_ADDRESSBAR':a.focusAddressBar(c.webviewID);break;case'CLEAR_ADDRESSBAR_HISTORY':a.clearAddressHistory(c.data);break;case'BODY_CLICK':a.bodyClick(c.event);break;case'SHOW_SETTING':a.showSetting();break;case'SHOW_LOGIN_LAYER':a.showLoginLayer();break;case'SHOW_ABOUT_LAYER':a.showAbout();break;case'UPDATA_PROXY_SETTING':a.updataProxySetting(c.proxyType,c.callback);break;case'SHOW_TIPS_MSG':a.showTipsMsg(c.opt);break;case'CHANGE_DEVTOOLS':a.changeDevtools();break;case'UP_USER_TICKET':a.upUserTikcet(c.newticket,c.ticketExpiredTime);break;case'DEL_USER_TICKET':a.delUserTicket();break;case'SAVE_SETTING':a.saveSetting(c.data);break;case'CHANGE_WEBVIEW_URL':a.changeUrl(c.url,c.webviewID);break;case'CLOSE_WEBVIEW_DEVTOOLS':a.closeDevtools(c.webviewID);break;case'OPEN_WEBVIEW_DEVTOOLS':a.openDevtools(c.webviewID,c.webview,c.webviewOffset);break;case'WINDOW_SET_WEBVIEW_INFO':a.setInfo(c.data);break;case'APP_ENTER_BACKGROUND':a.appEnterBackground();break;case'APP_ENTER_FOREGROUND':a.appEnterForeground();break;case'CLICK_TOOLSBAR':a.clickToolsbar(c.clickkey);break;case'OPERATE_MUSIC_PLAY':a.operateMusicPlayer(c.opt);break;case'GET_MUSIC_PLAY_STATE':a.getMusicPlayState(c.callback);break;case'START_WEBVIEW_DEBUGGEE':a.startDebuggee(c.webviewID,c.data);break;case'WINDOW_CHANGE_WEBVIEW_ID':a.changeWebviewID(c.webviewID);break;case'WINDOW_GET_WEBAPP_ERROR':a.getWeappError(c.webviewID,c.url,c.errStr);break;case'WINDOW_SHOW_WEBAPP_ERROR':a.showWeappError(c.type,c.event);case'WINDOW_SHOW_CONFIRM':a.showConfirm(c.data);break;case'WINDOW_SHOW_SIMULATOR_CONFIRM':a.showSimulatorConfirm(c.data);break;case'OPEN_PROJECT_FILE':a.openProjectFile(c.data);break;case'TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS':a.toggleNewFeatureCheckShowStatus(c.status);break;case'SHOW_CUSTOM_PREVIEW':a.showCustomPreview(c.options);break;default:}})}}init(); \ No newline at end of file +"use strict";function init(){var e=require("../stores/windowStores.js");module.exports=function(a){a.register(function(a){switch(a.actionType){case"WINDOW_RESIZE":e.resize(a.height);break;case"WINDOW_BLUR":e.blur();break;case"WINDOW_FOCUS":e.focus();break;case"UPDATA_USER_INFO":e.updateUserInfo(a.info);break;case"CLEAR_USER_INFO":e.clearUserInfo();break;case"SET_AUTO_COMPLETET":e.setAutoComplete(a.url);break;case"FOCUS_ADDRESSBAR":e.focusAddressBar(a.webviewID);break;case"CLEAR_ADDRESSBAR_HISTORY":e.clearAddressHistory(a.data);break;case"BODY_CLICK":e.bodyClick(a.event);break;case"SHOW_SETTING":e.showSetting();break;case"SHOW_LOGIN_LAYER":e.showLoginLayer();break;case"SHOW_ABOUT_LAYER":e.showAbout();break;case"UPDATA_PROXY_SETTING":e.updataProxySetting(a.proxyType,a.callback);break;case"SHOW_TIPS_MSG":e.showTipsMsg(a.opt);break;case"CHANGE_DEVTOOLS":e.changeDevtools();break;case"UP_USER_TICKET":e.upUserTikcet(a.newticket,a.ticketExpiredTime);break;case"DEL_USER_TICKET":e.delUserTicket();break;case"SAVE_SETTING":e.saveSetting(a.data);break;case"CHANGE_WEBVIEW_URL":e.changeUrl(a.url,a.webviewID);break;case"CLOSE_WEBVIEW_DEVTOOLS":e.closeDevtools(a.webviewID);break;case"OPEN_WEBVIEW_DEVTOOLS":e.openDevtools(a.webviewID,a.webview,a.webviewOffset);break;case"WINDOW_SET_WEBVIEW_INFO":e.setInfo(a.data);break;case"APP_ENTER_BACKGROUND":e.appEnterBackground();break;case"APP_ENTER_FOREGROUND":e.appEnterForeground(a.data);break;case"CLICK_TOOLSBAR":e.clickToolsbar(a.clickkey);break;case"OPERATE_MUSIC_PLAY":e.operateMusicPlayer(a.opt);break;case"GET_MUSIC_PLAY_STATE":e.getMusicPlayState(a.callback);break;case"START_WEBVIEW_DEBUGGEE":e.startDebuggee(a.webviewID,a.data);break;case"WINDOW_CHANGE_WEBVIEW_ID":e.changeWebviewID(a.webviewID);break;case"WINDOW_GET_WEBAPP_ERROR":e.getWeappError(a.webviewID,a.url,a.errStr);break;case"WINDOW_SHOW_WEBAPP_ERROR":e.showWeappError(a.type,a.event);case"WINDOW_SHOW_CONFIRM":e.showConfirm(a.data);break;case"WINDOW_SHOW_SIMULATOR_CONFIRM":e.showSimulatorConfirm(a.data);break;case"OPEN_PROJECT_FILE":e.openProjectFile(a.data);break;case"TOGGLE_NEW_FEACHE_CHECK_SHOW_STATUS":e.toggleNewFeatureCheckShowStatus(a.status);break;case"SHOW_CUSTOM_PREVIEW":e.showCustomPreview(a.options);break;case"WINDOW_SHOW_AUTHORIZE_CONFIRM":e.showAuthorizeConfirm(a.data);break;case"EDITOR_FOCUS":e.editorFocus();break;case"EDITOR_BLUR":e.editorBlur()}})}}init(); \ No newline at end of file diff --git a/app/dist/editor/index.min.js b/app/dist/editor/index.min.js index ec55e63d..9f5e89c8 100644 --- a/app/dist/editor/index.min.js +++ b/app/dist/editor/index.min.js @@ -1,13 +1,13 @@ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(4),a=n(38),s=n(68),l=n(242),c=n(250),u=n(11),d=n(16),p=n(19),f=n(253),h=n(258);n(259);var g,m,v=!0,b=r.createClass({displayName:"Page",getInitialState:function(){return this.changeFileList={},{showSearchResultTab:!1,searchResultTabSelected:!1,showSearchResultContent:!1,searchResult:[],currentFile:"",files:[],tree:[],code:"",showCode:!1,appname:"",appid:"",modifiedFiles:[],treeStyle:{display:"flex",width:"300px"},isSearchFile:!1,simulatorShow:!0,fileinfo:{},isSearchFileGlobally:!1,searchKey:"",searchGloballyOpts:{wholeword:!1,i:!0,initPos:{top:100,left:100}},resizeEditor:0}},fileChange:function(){var e=this;clearTimeout(g),g=setTimeout(function(){window.EditBridge.getFileList(function(t,n){if(t||e.setState({tree:n.files,fileinfo:n.info}),v){e.getOpenFilesfromDB();var r=e;p.getItem("editorRightWidth",function(e){e&&r.setState({treeStyle:{width:e}})}),v=!1}})},17)},openSearchResult:function(e,t){var n=this,r=Object.assign([],this.state.files);if(r.indexOf(null)<0){var o=r.length;r[o]=null}EditBridge.findStr(e,t,function(o,i){n.setState({showSearchResultTab:!0,searchResultTabSelected:!0,showSearchResultContent:!0,searchResult:i,searchKey:e,searchGloballyOpts:t,files:r})})},globallySearch:function(e){var t=Object.assign([],this.state.searchGloballyOpts);t.cwd="undefined"!=e?e:"",this.setState({isSearchFileGlobally:!0,searchGloballyOpts:t})},folderNameChange:function(e,t){var n=Object.assign([],this.state.files),r=[];0==e.indexOf("/")&&(e=e.substr(1)),0==t.indexOf("/")&&(t=t.substr(1));for(var o=0;o-1&&0==i.indexOf(e)&&(i=i.replace(e,t)),r.push(i)}var a=this.state.currentFile;a.indexOf("/")>-1&&0==a.indexOf(e)&&(a=a.replace(e,t)),this.setState({files:r,currentFile:a})},componentDidMount:function(){var e=this;d.on("FILE_CHANGE",this.fileChange),d.on("FOLDER_NAME_CHANGE",this.folderNameChange),d.on("FILE_NAME_CHANGE",this.fileNameChange);var t=function(){e.fileChange(),EditBridge.on("FILE_CHANGE",function(t,n){u.fileChange();var r=n.replace(/\\/g,"/");window.editorState&&window.editorState[r]&&(window.editorState[r]=void 0),"change"==t&&(r==e.state.currentFile?u.editorEvent("FILE_CONTENT_CHANGE",r,!0):e.changeFileList[r]=!0),"unlink"==t&&window.EditBridge.getFileList(function(t,n){t||e.setState({tree:n.files,fileinfo:n.info})})}),EditBridge.getProjectInfo(function(t,n){e.setState({appname:n.appname,appid:n.appid,simulatorShow:n.editWebview||!1}),p.init(e.state.appid,e.state.appname)}),EditBridge.on("WINDOW_CHANGE",function(e){"blur"==e&&u.editorEvent("SET_CURSOR",t.state.currentFile)});var t=e;EditBridge.on("WEBVIEW_SHOW_CHANGE",function(e){t.setState({simulatorShow:e})}),EditBridge.on("OPEN_FILE",function(e){t.editorRevealPosition(e.file,parseInt(e.line),1)})};window.EditBridge?t():document.addEventListener("EditBridgeReady",function(){t()}),window.addEventListener("resize",function(t){var n=e.state.currentFile;u.editorEvent("RESIZE_EDITOR",n,n);var r=e.state.resizeEditor+1;e.setState({resizeEditor:r})}),window.addEventListener("keydown",function(t){var n=t.code.toLowerCase();if("keys"===n&&(t.ctrlKey||t.metaKey)){var r=e.state.currentFile;if(!r)return;u.editorEvent("SAVE_FILE",r,r);var o=e.state.modifiedFiles;o.splice(o.indexOf(r),1)}if("keys"===n&&t.shiftKey&&t.ctrlKey){var i=e.state.modifiedFiles;for(var a in i)u.editorEvent("SAVE_FILE",i[a],i[a]);e.setState({modifiedFiles:[]})}if("backslash"===n&&(t.ctrlKey||t.metaKey)&&e.handleHideTree(),"keyp"===n&&(t.ctrlKey||t.metaKey)){var s=e.state.isSearchFile;e.setState({isSearchFile:!s})}if("escape"===n&&e.state.isSearchFile&&e.setState({isSearchFile:!1}),"keyw"===n&&t.ctrlKey&&e.closeFile(e.state.currentFile),"keym"===n&&t.ctrlKey){var l=e.state.simulatorShow;e.setState({simulatorShow:!l}),EditBridge.setEditWebview(!l,function(e,t){})}"keyf"===n&&t.shiftKey&&t.ctrlKey&&e.globallySearch()}),d.on("DidChangeModelContent",function(t){e.state.modifiedFiles.indexOf(t)<0&&e.setState({modifiedFiles:[t].concat(e.state.modifiedFiles)})}),d.on("DidModelSave",function(t){e.state.tree.indexOf(t)==-1&&window.EditBridge.getFileList(function(t,n){t||e.setState({tree:n.files,fileinfo:n.info})})}),window.oncontextmenu=function(e){var t=e.target.className;(t.indexOf("directory")>-1||t.indexOf("filetab-list")>-1||t.indexOf("root-folder")>-1)&&e.preventDefault()}},componentWillUnmount:function(){d.removeListener("FILE_CHANGE",this.fileChange),d.removeListener("FILE_NAME_CHANGE",this.fileNameChange)},saveOpenFilestoDB:function(e,t){p.setItem("openFiles",{currentFile:e,files:t})},fileNameChange:function(e,t){var n=this.state.files,r=this.state.files.indexOf(e),o=this.state.currentFile;r!=-1&&(n[r]=t),e==this.state.currentFile&&(o=t),this.setState({files:n,currentFile:o})},editorRevealPosition:function(e,t,n){this.openFile(e),window.setTimeout(function(){u.editorEvent("REVEAL_POSITION",e,{lineNumber:t,column:n})},30)},getOpenFilesfromDB:function(){var e=this;p.getItem("openFiles",function(t){if(t&&t.files){for(var n=[],r=t.currentFile,o=e.state.tree,i=0;i-1&&n.push(t.files[i]);o.indexOf(r)==-1&&(r=n[0],t.currentFile=r),t.files=n,e.setState(t)}})},closeFile:function(e){var t=this.state.currentFile,n=Object.assign([],this.state.files),r=n.indexOf(e);if(r!=-1){n.splice(r,1);var o="";o=n.indexOf(t)>-1?t:0==r?n[0]:n[r-1],null===o&&this.setState({searchResultTabSelected:!0,showSearchResultContent:!0}),this.setState({currentFile:o,files:n}),this.saveOpenFilestoDB(o,n)}},closeSearchResult:function(){var e=this.state.currentFile,t=Object.assign([],this.state.files),n=t.indexOf(null);n>=0&&t.splice(n,1);var r=void 0;r=t.indexOf(e)>-1?e:0==n?t[0]:t[n-1],this.setState({currentFile:r,showSearchResultTab:!1,searchResultTabSelected:!1,showSearchResultContent:!1,files:t})},resultItemClicked:function(){this.setState({searchResultTabSelected:!0,showSearchResultContent:!0})},openFile:function(e){this.setState({isSearchFile:!1,showSearchResultContent:!1,searchResultTabSelected:!1});var t=(this.state.currentFile,Object.assign([],this.state.files));t.indexOf(e)>-1?(this.setState({currentFile:e}),this.changeFileList[e]&&(u.editorEvent("FILE_CONTENT_CHANGE",e,!0),this.changeFileList[e]=!1)):(t.push(e),this.setState({files:t,currentFile:e})),this.saveOpenFilestoDB(e,t);var n=window.editorState?window.editorState[e]:null,r=n?n.viewState:null;u.cursorChange(r)},addFile:function(e){},delFile:function(e){var t=Object.assign([],this.state.files),n=t.indexOf(e),r=this.state.currentFile;t.splice(n,1),this.state.currentFile==e&&(r=t[0]),this.setState({currentFile:r,files:t})},delDir:function(e){e=(e+"/").replace(/^\//,"")},bodyClick:function(e){u.bodyClick(e);var t=!!e&&e.target;t&&(t.className.indexOf("search-input")>-1||t.className.indexOf("search-result-item-desc")>-1)||this.state.isSearchFile&&this.setState({isSearchFile:!1})},resizeRightMouseDown:function(e){return m=!0,!1},resizeRightMouseMove:function(e){if(m){var t=document.body.clientWidth-200,n=300,r=0,o=e.clientX;r=o>t?t:o1){for(var m=Array(g),v=0;v1){for(var y=Array(b),A=0;A>"),S={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:s(),arrayOf:l,element:c(),instanceOf:u,node:h(),objectOf:p,oneOf:d,oneOfType:f,shape:g};o.prototype=Error.prototype,t.exports=S},{12:12,14:14,19:19,23:23,26:26,9:9}],14:[function(e,t,n){"use strict";var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";t.exports=r},{}],15:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=l,this.updater=n||s}function o(){}var i=e(27),a=e(6),s=e(11),l=e(24);o.prototype=a.prototype,r.prototype=new o,r.prototype.constructor=r,i(r.prototype,a.prototype),r.prototype.isPureReactComponent=!0,t.exports=r},{11:11,24:24,27:27,6:6}],16:[function(e,t,n){"use strict";var r=e(27),o=e(3),i=r({__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:e(7)}},o);t.exports=i},{27:27,3:3,7:7}],17:[function(e,t,n){"use strict";t.exports="15.4.1"},{}],18:[function(e,t,n){"use strict";var r=!1;t.exports=r},{}],19:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],20:[function(e,t,n){"use strict";function r(e){return i.isValidElement(e)?void 0:o("143"),e}var o=e(21),i=e(9);e(25),t.exports=r},{21:21,25:25,9:9}],21:[function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r8&&x<=11),C=32,k=String.fromCharCode(C),T={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},S=!1,_=null,D={eventTypes:T,extractEvents:function(e,t,n,r){return[c(e,t,n,r),p(e,t,n,r)]}};t.exports=D},{123:123,19:19,20:20,78:78,82:82}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},s={isUnitlessNumber:o,shorthandPropertyExpansions:a};t.exports=s},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(123),i=(e(58),e(125),e(94)),a=e(136),s=e(140),l=(e(142),s(function(e){return a(e)})),c=!1,u="cssFloat";if(o.canUseDOM){var d=document.createElement("div").style;try{d.font=""}catch(e){c=!0}void 0===document.documentElement.style.cssFloat&&(u="styleFloat")}var p={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=l(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=u),s)o[a]=s;else{var l=c&&r.shorthandPropertyExpansions[a];if(l)for(var d in l)o[d]="";else o[a]=""}}}};t.exports=p},{123:123,125:125,136:136,140:140,142:142,4:4,58:58,94:94}],6:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=e(113),i=e(24),a=(e(137),function(){function e(t){r(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length?o("24"):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r8));var R=!1;A.canUseDOM&&(R=k("input")&&(!document.documentMode||document.documentMode>11));var M={get:function(){return N.get.call(this)},set:function(e){O=""+e,N.set.call(this,e)}},P={eventTypes:S,extractEvents:function(e,t,n,o){var i,a,s=t?x.getNodeFromInstance(t):window;if(r(s)?I?i=l:a=c:T(s)?R?i=f:(i=g,a=h):m(s)&&(i=v),i){var u=i(e,t);if(u){var d=w.getPooled(S.change,u,n,o);return d.type="change",y.accumulateTwoPhaseDispatches(d),d}}a&&a(e,s,t)}};t.exports=P},{102:102,110:110,111:111,123:123,16:16,19:19,33:33,71:71,80:80}],8:[function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}function o(e,t,n){u.insertTreeBefore(e,t,n)}function i(e,t,n){Array.isArray(t)?s(e,t[0],t[1],n):g(e,t,n)}function a(e,t){if(Array.isArray(t)){var n=t[1];t=t[0],l(e,t,n),e.removeChild(n)}e.removeChild(t)}function s(e,t,n,r){for(var o=t;;){var i=o.nextSibling;if(g(e,o,r),o===n)break;o=i}}function l(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}function c(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&g(r,document.createTextNode(n),o):n?(h(o,n),l(r,o,t)):l(r,e,t)}var u=e(9),d=e(13),p=(e(33),e(58),e(93)),f=e(115),h=e(116),g=p(function(e,t,n){e.insertBefore(t,n)}),m=d.dangerouslyReplaceNodeWithMarkup,v={dangerouslyReplaceNodeWithMarkup:m,replaceDelimitedText:c,processUpdates:function(e,t){for(var n=0;n-1?void 0:a("96",e),!c.plugins[n]){t.extractEvents?void 0:a("97",e),c.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)?void 0:a("98",i,e)}}}function o(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,c.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];i(s,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){c.registrationNameModules[e]?a("100",e):void 0,c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=e(113),s=(e(137),null),l={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];l.hasOwnProperty(n)&&l[n]===o||(l[n]?a("102",n):void 0,l[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in l)l.hasOwnProperty(e)&&delete l[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=c},{113:113,137:137}],18:[function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.getNodeFromInstance(r),t?g.invokeGuardedCallbackWithCatch(o,n,e):g.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),t.exports=r},{107:107,143:143,24:24}],21:[function(e,t,n){"use strict";var r=e(11),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,l=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,"default":i,defer:i,dir:0,disabled:i,download:l,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,"typeof":0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{}};t.exports=c},{11:11}],22:[function(e,t,n){"use strict";function r(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var i={escape:r,unescape:o};t.exports=i},{}],23:[function(e,t,n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?s("87"):void 0}function o(e){r(e),null!=e.value||null!=e.onChange?s("88"):void 0}function i(e){r(e),null!=e.checked||null!=e.onChange?s("89"):void 0}function a(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var s=e(113),l=e(121),c=e(64),u=(e(137),e(142),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),d={value:function(e,t,n){return!e[t]||u[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:l.PropTypes.func},p={},f={checkPropTypes:function(e,t,n){for(var r in d){if(d.hasOwnProperty(r))var o=d[r](t,r,e,"prop",null,c);o instanceof Error&&!(o.message in p)&&(p[o.message]=!0,a(n))}},getValue:function(e){return e.valueLink?(o(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(i(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(o(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(i(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};t.exports=f},{113:113,121:121,137:137,142:142,64:64}],24:[function(e,t,n){"use strict";var r=e(113),o=(e(137),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},l=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},c=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length=0||null!=t.is}function h(e){var t=e.type;p(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var g=e(113),m=e(143),v=e(2),b=e(5),y=e(9),A=e(10),x=e(11),E=e(12),w=e(16),C=e(17),k=e(25),T=e(32),S=e(33),_=e(38),D=e(39),O=e(40),N=e(43),I=(e(58),e(61)),R=e(68),M=(e(129),e(95)),P=(e(137),e(110),e(141),e(119),e(142),T),F=w.deleteListener,j=S.getNodeFromInstance,L=k.listenTo,B=C.registrationNameModules,U={string:!0,number:!0},H="style",V="__html",G={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},K=11,Q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},Y={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},W={listing:!0,pre:!0,textarea:!0},z=m({menuitem:!0},Y),J=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,q={},X={}.hasOwnProperty,Z=1;h.displayName="ReactDOMComponent",h.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Z++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(u,this);break;case"input":_.mountWrapper(this,i,t),i=_.getHostProps(this,i),e.getReactMountReady().enqueue(u,this);break;case"option":D.mountWrapper(this,i,t),i=D.getHostProps(this,i);break;case"select":O.mountWrapper(this,i,t),i=O.getHostProps(this,i),e.getReactMountReady().enqueue(u,this);break;case"textarea":N.mountWrapper(this,i,t),i=N.getHostProps(this,i),e.getReactMountReady().enqueue(u,this)}o(this,i);var a,d;null!=t?(a=t._namespaceURI,d=t._tag):n._tag&&(a=n._namespaceURI,d=n._tag),(null==a||a===A.svg&&"foreignobject"===d)&&(a=A.html),a===A.html&&("svg"===this._tag?a=A.svg:"math"===this._tag&&(a=A.mathml)),this._namespaceURI=a;var p;if(e.useCreateElement){var f,h=n._ownerDocument;if(a===A.html)if("script"===this._tag){var g=h.createElement("div"),m=this._currentElement.type;g.innerHTML="<"+m+">",f=g.removeChild(g.firstChild)}else f=i.is?h.createElement(this._currentElement.type,i.is):h.createElement(this._currentElement.type);else f=h.createElementNS(a,this._currentElement.type);S.precacheNode(this,f),this._flags|=P.hasCachedChildNodes,this._hostParent||E.setAttributeForRoot(f),this._updateDOMProperties(null,i,e);var b=y(f);this._createInitialChildren(e,i,r,b),p=b}else{var x=this._createOpenTagMarkupAndPutListeners(e,i),w=this._createContentMarkup(e,i,r);p=!w&&Y[this._tag]?x+"/>":x+">"+w+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(l,this),i.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"select":i.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"button":i.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this)}return p},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(B.hasOwnProperty(r))o&&i(this,r,o,e);else{r===H&&(o&&(o=this._previousStyleCopy=m({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&f(this._tag,t)?G.hasOwnProperty(r)||(a=E.createMarkupForCustomAttribute(r,o)):a=E.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+E.createMarkupForRoot()),n+=" "+E.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=U[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=M(i);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return W[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&y.queueHTML(r,o.__html);else{var i=U[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)y.queueText(r,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),l=0;l"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),t.exports=a},{143:143,33:33,9:9}],36:[function(e,t,n){"use strict";var r={useCreateElement:!0,useFiber:!1};t.exports=r},{}],37:[function(e,t,n){"use strict";var r=e(8),o=e(33),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};t.exports=i},{33:33,8:8}],38:[function(e,t,n){"use strict";function r(){this._rootNodeID&&d.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=l.executeOnChange(t,e);u.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var a=c.getNodeFromInstance(this),s=a;s.parentNode;)s=s.parentNode;for(var d=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),p=0;pt.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[u()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=c(e,o),l=c(e,i);if(s&&l){var d=document.createRange();d.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(d),n.extend(l.node,l.offset)):(d.setEnd(l.node,l.offset),n.addRange(d))}}}var l=e(123),c=e(106),u=e(107),d=l.canUseDOM&&"selection"in document&&!("getSelection"in window),p={getOffsets:d?o:i,setOffsets:d?a:s};t.exports=p},{106:106,107:107,123:123}],42:[function(e,t,n){"use strict";var r=e(113),o=e(143),i=e(8),a=e(9),s=e(33),l=e(95),c=(e(137),e(119),function(e){this._currentElement=e,this._stringText=""+e, -this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ",c=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var u=n._ownerDocument,d=u.createComment(i),p=u.createComment(c),f=a(u.createDocumentFragment());return a.queueChild(f,a(d)),this._stringText&&a.queueChild(f,a(u.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,d),this._closingComment=p,f}var h=l(this._stringText);return e.renderToStaticMarkup?h:""+h+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),t.exports=c},{113:113,119:119,137:137,143:143,33:33,8:8,9:9,95:95}],43:[function(e,t,n){"use strict";function r(){this._rootNodeID&&u.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return c.asap(r,this),n}var i=e(113),a=e(143),s=e(23),l=e(33),c=e(71),u=(e(137),e(142),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?i("91"):void 0;var n=a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,l=t.children;null!=l&&(null!=a?i("92"):void 0,Array.isArray(l)&&(l.length<=1?void 0:i("93"),l=l[0]),a=""+l),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=l.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=l.getNodeFromInstance(e);t.value=t.textContent}});t.exports=u},{113:113,137:137,142:142,143:143,23:23,33:33,71:71}],44:[function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:l("33"),"_hostNode"in t?void 0:l("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e?void 0:l("35"),"_hostNode"in t?void 0:l("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e?void 0:l("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(l[c],"captured",i)}var l=e(113);e(137),t.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},{113:113,137:137}],45:[function(e,t,n){"use strict";var r=e(143),o=e(30),i=r({__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactInstanceMap:e(57)}},o);t.exports=i},{143:143,30:30,57:57}],46:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(143),i=e(71),a=e(89),s=e(129),l={initialize:s,close:function(){p.isBatchingUpdates=!1}},c={initialize:s,close:i.flushBatchedUpdates.bind(i)},u=[c,l];o(r.prototype,a,{getTransactionWrappers:function(){return u}});var d=new r,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):d.perform(e,null,t,n,r,o,i)}};t.exports=p},{129:129,143:143,71:71,89:89}],47:[function(e,t,n){"use strict";function r(){w||(w=!0,b.EventEmitter.injectReactEventListener(v),b.EventPluginHub.injectEventPluginOrder(s),b.EventPluginUtils.injectComponentTree(p),b.EventPluginUtils.injectTreeTraversal(h),b.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:l,ChangeEventPlugin:a,SelectEventPlugin:x,BeforeInputEventPlugin:i}),b.HostComponent.injectGenericComponentClass(d),b.HostComponent.injectTextComponentClass(g),b.DOMProperty.injectDOMPropertyConfig(o),b.DOMProperty.injectDOMPropertyConfig(c),b.DOMProperty.injectDOMPropertyConfig(A),b.EmptyComponent.injectEmptyComponentFactory(function(e){return new f(e)}),b.Updates.injectReconcileTransaction(y),b.Updates.injectBatchingStrategy(m),b.Component.injectEnvironment(u))}var o=e(1),i=e(3),a=e(7),s=e(14),l=e(15),c=e(21),u=e(27),d=e(31),p=e(33),f=e(35),h=e(44),g=e(42),m=e(46),v=e(52),b=e(55),y=e(65),A=e(73),x=e(74),E=e(75),w=!1;t.exports={inject:r}},{1:1,14:14,15:15,21:21,27:27,3:3,31:31,33:33,35:35,42:42,44:44,46:46,52:52,55:55,65:65,7:7,73:73,74:74,75:75}],48:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103;t.exports=r},{}],49:[function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,t.exports=i},{}],50:[function(e,t,n){"use strict";function r(e,t,n){try{t(n)}catch(e){null===o&&(o=e)}}var o=null,i={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var e=o;throw o=null,e}}};t.exports=i},{}],51:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e(16),i={handleTopLevel:function(e,t,n,i){var a=o.extractEvents(e,t,n,i);r(a)}};t.exports=i},{16:16}],52:[function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=d.getNodeFromInstance(e),n=t.parentNode;return d.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=f(e.nativeEvent),n=d.getClosestInstanceFromNode(t),o=n;do e.ancestors.push(o),o=o&&r(o);while(o);for(var i=0;i/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=a},{92:92}],60:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;r.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=m.createElement(L,{child:t});if(e){var l=E.get(e);a=l._processChildContext(l._context)}else a=S;var u=p(n);if(u){var d=u._currentElement,h=d.props.child;if(O(h,t)){var g=u._renderedComponent.getPublicInstance(),v=r&&function(){r.call(g)};return B._updateRootComponent(u,s,a,n,v),g}B.unmountComponentAtNode(n)}var b=o(n),y=b&&!!i(b),A=c(n),x=y&&!u&&!A,w=B._renderNewRootComponent(s,n,x,a)._renderedComponent.getPublicInstance();return r&&r.call(w),w},render:function(e,t,n){return B._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){u(e)?void 0:f("40");var t=p(e);return t?(delete F[t._instance.rootID],T.batchedUpdates(l,t,e,!1),!0):(c(e),1===e.nodeType&&e.hasAttribute(I),!1)},_mountImageIntoNode:function(e,t,n,i,a){if(u(t)?void 0:f("41"),i){var s=o(t);if(w.canReuseMarkup(e,s))return void b.precacheNode(n,s);var l=s.getAttribute(w.CHECKSUM_ATTR_NAME);s.removeAttribute(w.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(w.CHECKSUM_ATTR_NAME,l);var d=e,p=r(d,c),g=" (client) "+d.substring(p-20,p+20)+"\n (server) "+c.substring(p-20,p+20);t.nodeType===M?f("42",g):void 0}if(t.nodeType===M?f("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else D(t,e),b.precacheNode(n,t.firstChild)}};t.exports=B},{109:109,11:11,113:113,115:115,117:117,120:120,121:121,130:130,137:137,142:142,25:25,33:33,34:34,36:36,53:53,57:57,58:58,59:59,66:66,70:70,71:71,9:9}],61:[function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:p.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function l(e,t){return t&&(e=e||[],e.push(t)),e}function c(e,t){d.processChildrenUpdates(e,t)}var u=e(113),d=e(28),p=(e(57),e(58),e(120),e(66)),f=e(26),h=(e(129),e(97)),g=(e(137),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return f.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,s=0;return a=h(t,s),f.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],l=0,c=p.mountComponent(s,t,this,this._hostContainerInfo,n,l);s._mountIndex=i++,o.push(c)}return o},updateTextContent:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&u("118");var r=[s(e)];c(this,r)},updateMarkup:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&u("118");var r=[a(e)];c(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,u=null,d=0,f=0,h=0,g=null;for(s in a)if(a.hasOwnProperty(s)){var m=r&&r[s],v=a[s];m===v?(u=l(u,this.moveChild(m,g,d,f)),f=Math.max(m._mountIndex,f),m._mountIndex=d):(m&&(f=Math.max(m._mountIndex,f)),u=l(u,this._mountChildAtIndex(v,i[h],g,d,t,n)),h++),d++,g=p.getHostNode(v)}for(s in o)o.hasOwnProperty(s)&&(u=l(u,this._unmountChild(r[s],o[s])));u&&c(this,u),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;f.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);return n?n:null}var a=e(113),s=(e(120),e(57)),l=(e(58),e(71)),c=(e(137),e(142),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var o=i(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],void r(o)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=i(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,o(e)):void 0}});t.exports=c},{113:113,120:120,137:137,142:142,57:57,58:58,71:71}],71:[function(e,t,n){"use strict";function r(){S.ReactReconcileTransaction&&x?void 0:u("123")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=p.getPooled(),this.reconcileTransaction=S.ReactReconcileTransaction.getPooled(!0)}function i(e,t,n,o,i,a){return r(),x.batchedUpdates(e,t,n,o,i,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==v.length?u("124",t,v.length):void 0,v.sort(a),b++;for(var n=0;n]/;t.exports=o},{}],96:[function(e,t,n){"use strict";function r(e){if(null==e)return null;if(1===e.nodeType)return e;var t=a.get(e);return t?(t=s(t),t?i.getNodeFromInstance(t):null):void("function"==typeof e.render?o("44"):o("45",Object.keys(e)))}var o=e(113),i=(e(120),e(33)),a=e(57),s=e(103);e(137),e(142),t.exports=r},{103:103,113:113,120:120,137:137,142:142,33:33,57:57}],97:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e,i=void 0===o[n];i&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return i(e,r,n),n}var i=(e(22),e(118));e(142),"undefined"!=typeof n&&n.env,t.exports=o}).call(this,void 0)},{118:118,142:142,22:22}],98:[function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}t.exports=r},{}],99:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],100:[function(e,t,n){"use strict";function r(e){if(e.key){var t=i[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var o=e(99),i={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{99:99}],101:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],102:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}t.exports=r},{}],103:[function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=e(62);t.exports=r},{62:62}],104:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],105:[function(e,t,n){"use strict";function r(){return o++}var o=1;t.exports=r},{}],106:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}t.exports=i},{}],107:[function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=e(123),i=null;t.exports=r},{123:123}],108:[function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in l)return s[e]=t[n];return""}var i=e(123),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},l={};i.canUseDOM&&(l=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),t.exports=o},{123:123}],109:[function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||e===!1)n=c.create(i);else if("object"==typeof e){var s=e;!s||"function"!=typeof s.type&&"string"!=typeof s.type?a("130",null==s.type?s.type:typeof s.type,r(s._owner)):void 0,"string"==typeof s.type?n=u.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new d(s)}else"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=e(113),s=e(143),l=e(29),c=e(49),u=e(54),d=(e(105),e(137),e(142),function(e){this.construct(e)});s(d.prototype,l,{_instantiateReactComponent:i}),t.exports=i},{105:105,113:113,137:137,142:142,143:143,29:29,49:49,54:54}],110:[function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=e(123);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{123:123}],111:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],112:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(95);t.exports=r},{95:95}],113:[function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r]/,l=e(93),c=l(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),u=null}t.exports=c},{10:10,123:123,93:93}],116:[function(e,t,n){"use strict";var r=e(123),o=e(95),i=e(115),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void i(e,o(t))})),t.exports=a},{115:115,123:123,95:95}],117:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}t.exports=r},{}],118:[function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var p=typeof e;if("undefined"!==p&&"boolean"!==p||(e=null),null===e||"string"===p||"number"===p||"object"===p&&e.$$typeof===s)return n(i,e,""===t?u+r(e,0):t),1;var f,h,g=0,m=""===t?u:t+d;if(Array.isArray(e))for(var v=0;v":a.innerHTML="<"+e+">",s[e]=!a.firstChild),s[e]?p[e]:null}var o=e(123),i=e(137),a=o.canUseDOM?document.createElement("div"):null,s={},l=[1,'"],c=[1,"","
"],u=[3,"","
"],d=[1,'',""],p={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:l,option:l,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:u,th:u},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){p[e]=d,s[e]=!0}),t.exports=r},{123:123,137:137}],134:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],135:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=e(135),i=/^ms-/;t.exports=r},{135:135}],137:[function(e,t,n){"use strict";function r(e,t,n,r,o,i,a,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],u=0;l=new Error(t.replace(/%s/g,function(){return c[u++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}t.exports=r},{}],138:[function(e,t,n){"use strict";function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],139:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(138);t.exports=r},{138:138}],140:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a-1)return void alert("当前目录有同名文件,修改文件 "+a+" 名失败");var c=h.props.modifiedFiles;return c.indexOf(u)!=-1&&u!=r?void alert("文件修改尚未保存,修改文件名"+r+"失败"):void EditBridge.rename(u,r,function(e,n){t(),e?alert("修改文件 "+a+" 名失败"):(l.fileChange(),h.props.files.indexOf(u)>-1&&l.fileNameChange(u,r))})}function r(e){var t=e.keyCode;13===t&&(n(),e.preventDefault(),e.stopPropagation())}e.preventDefault(),e.stopPropagation();var o=e.currentTarget,i=o.dataset,a=i.filename,s=i.basename,u=i.path,d=c.closest(o,".directory"),p=d.querySelector(".input-filename"),f=d.querySelector(".directory__file"),h=this;if(p.addEventListener("blur",n),p.addEventListener("keydown",r),p.value=a,p.classList.add("show"),p.value.indexOf(".")>-1){var g=p.value.match(/.*\./),m=g?g[0].length:p.value.length;p.select(),p.selectionStart=0,p.selectionEnd=m-1}else p.select(),p.selectionStart=0,p.selectionEnd=p.value.length;f.classList.add("hide")},handleDelFile:function(e,t){var n=this;return function(r){confirm("确定删除文件"+e+"?")&&EditBridge.delFile(t,function(r,o){r?alert("删除文件"+e+"失败"):(l.fileChange(),n.props.delFile(t))}),r.preventDefault(),r.stopPropagation()}},fileNameKeydownHandle:function(e){e.stopPropagation()},getFileIcon:function(e){var t=r.extname(e),n={".wxss":"icon-file-wxss",".wxml":"icon-file-wxml",".js":"icon-file-js",".json":"icon-file-json",".png":"icon-file-img",".gif":"icon-file-img",".jpg":"icon-file-img",".jpeg":"icon-file-img"};return n[t]||"icon-file"},handleRenameClick:function(e){e.preventDefault(),e.stopPropagation()},createTreeView:function(e){var t=this,n=[],r=this.props.currentFile;return e.folderNames.sort().forEach(function(r){var i=t.state.currentFolderPath,s=e.children[r].path+"/",l=s+r,c=i===l?"selected":"",u=!0;//!this.first -t.first=!1,n.push(o.createElement(a,{handleAddFile:t.handleAddFile,delDir:t.props.delDir,folderName:r,key:l,path:l,baseName:s,defaultCollapsed:u,itemClassName:c,onClick:t.selectFolder,handleIconClick:t.handleIconClick},t.createTreeView(e.children[r])))}),e.fileNames.sort().forEach(function(i){var a=e.children[i].path,s=e.children[i].baseName,l=r===a?"directory selected":"directory",c=t.getFileIcon(i),u={};u.display="none",n.push(o.createElement("div",{className:l,key:a,path:a,"data-path":a,onMouseDown:t.handleFileClickOnMouseDown},o.createElement("i",{className:"directory__icon "+c,"data-path":a}),o.createElement("input",{className:"input-filename",type:"text",onClick:t.handleRenameClick}),o.createElement("span",{className:"directory__file","data-path":a}," ",i," "),o.createElement("div",{className:"directory-operation"},o.createElement("a",{href:"javascript:;","data-filename":i,"data-basename":s,"data-path":a,onClick:t.handleMvFile,style:u},o.createElement("i",{className:"icon-rename"})),o.createElement("a",{href:"javascript:;",onClick:t.handleDelFile(i,a),style:u},o.createElement("i",{className:"icon-delete"})),o.createElement("a",{href:"javascript:;","data-path":a},o.createElement("i",{className:"icon-moreactions file","data-path":a,onClick:t.handleIconClick})))))}),n},handleFileClickOnMouseDown:function(e){0==e.button?this.openFile(e):2==e.button},addWithRename:function(e){var t=i.findDOMNode(this.refs.directoryOperation),n=t.querySelector('a[data-path="'+e+'"]');!!n&&n.click()},handleAddFile:function(e){var t=e.currentTarget,n=c.getOffset(t),r=n.left,o=n.top,i=t.dataset.path,a=i!==this.state.createInfo.path;a||(i=void 0),this.setState({showAddFile:a,createInfo:{left:r+10,top:o-5,path:i}}),e.preventDefault(),e.stopPropagation()},hideAddFile:function(e){if(e){var t=e.target.className;if(t.indexOf("right-click-create")>-1||t.indexOf("icon-moreactions")>-1||t.indexOf("icon-new")>-1||t.indexOf("tree-view-create-item ")>-1)return}this.setState({showAddFile:!1,createInfo:{left:0,top:0,path:void 0},showTreeRightClick:{show:!1,path:void 0,left:0,top:0}})},componentDidMount:function(){u.on("BODY_CLICK",this.hideAddFile),u.on("ADD_FILE",this.addWithRename)},componentWillMount:function(){u.removeListener("BODY_CLICK",this.hideAddFile),u.removeListener("ADD_FILE",this.addWithRename)},handleTreeRightClick:function(e){if(2==e.button){var t=e.target.getAttribute("data-path"),n="file";e.target.className.indexOf("root-folder")>-1?n="root-folder":e.target.className.indexOf("folder")>-1&&(n="folder",l.folderCollapsed(t,!1)),this.setState({showTreeRightClick:{path:t,show:!0,top:e.clientY,left:e.clientX,type:n}})}},handleIconClick:function(e){event.preventDefault(),event.stopPropagation();var t=e.target.getAttribute("data-path"),n="file";e.target.className.indexOf("folder")>-1&&(n="folder",l.folderCollapsed(t,!1)),this.setState({showTreeRightClick:{path:t,show:!0,top:e.clientY-20,left:e.clientX,type:n}})},render:function(){this.first=!0;var e=this.calculateStructor(this.props.tree),t=this.state.showAddFile,n=[];return this.props.simulatorShow||n.push(o.createElement("a",{href:"javascript:;",className:"filetab-toggle-mo",onClick:this.props.handleClickSimulatorIcon},o.createElement("i",{className:"icon-mo"}))),"none"!=this.props.treeStyle.display&&n.push(o.createElement("a",{className:"tree-project-name-toggle",title:"收起文件树",href:"javascript:;",onClick:this.props.handleHideTree},o.createElement("i",{className:"icon-tree"}))),o.createElement("div",{className:"tree-container",style:this.props.treeStyle,onMouseDown:this.handleTreeRightClick},o.createElement(p,{showTreeRightClick:this.state.showTreeRightClick,openFile:this.props.openFile,globallySearch:this.props.globallySearch,delFile:this.props.delFile,delDir:this.props.delDir,tree:this.props.tree,hideAddFile:this.hideAddFile}),o.createElement(s,{createInfo:this.state.createInfo,show:t,hideAddFile:this.hideAddFile,openFile:this.props.openFile,tree:this.props.tree}),o.createElement("div",{className:"tree-project-name root-folder","data-path":"/"},n,o.createElement("p",{className:"root-folder","data-path":"/"},decodeURI(this.props.projectname)),o.createElement("a",{className:"tree-project-name-add",href:"javascript:;",title:"新建"},o.createElement("i",{className:"icon-moreactions root-folder","data-path":"/","data-isadd":1,onClick:this.handleIconClick}))),o.createElement("div",{className:"tree-view-wrapper noselect",ref:"directoryOperation"},this.createTreeView(e)))}});e.exports=f},function(e,t,n){(function(t){"use strict";function r(e,t){for(var n=[],r=0;r=0&&!e[r];r--);return 0===n&&r===t?e:n>r?[]:e.slice(n,r+1)}function i(e){var t=d.exec(e),n=(t[1]||"")+(t[2]||""),r=t[3]||"",o=p.exec(r),i=o[1],a=o[2],s=o[3];return[n,i,a,s]}function a(e){var t=d.exec(e),n=t[1]||"",r=!!n&&":"!==n[1];return{device:n,isUnc:r,isAbsolute:r||!!t[2],tail:t[3]}}function s(e){return"\\\\"+e.replace(/^[\\\/]+/,"").replace(/[\\\/]+/g,"\\")}function l(e){return h.exec(e).slice(1)}var c="win32"===t.platform,u=n(7),d=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,p=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,f={};f.resolve=function(){for(var e="",n="",o=!1,i=arguments.length-1;i>=-1;i--){var l;if(i>=0?l=arguments[i]:e?(l=t.env["="+e],l&&l.substr(0,3).toLowerCase()===e.toLowerCase()+"\\"||(l=e+"\\")):l=t.cwd(),!u.isString(l))throw new TypeError("Arguments to path.resolve must be strings");if(l){var c=a(l),d=c.device,p=c.isUnc,f=c.isAbsolute,h=c.tail;if((!d||!e||d.toLowerCase()===e.toLowerCase())&&(e||(e=d),o||(n=h+"\\"+n,o=f),e&&o))break}}return p&&(e=s(e)),n=r(n.split(/[\\\/]+/),!o).join("\\"),e+(o?"\\":"")+n||"."},f.normalize=function(e){var t=a(e),n=t.device,o=t.isUnc,i=t.isAbsolute,l=t.tail,c=/[\\\/]$/.test(l);return l=r(l.split(/[\\\/]+/),!i).join("\\"),l||i||(l="."),l&&c&&(l+="\\"),o&&(n=s(n)),n+(i?"\\":"")+l},f.isAbsolute=function(e){return a(e).isAbsolute},f.join=function(){for(var e=[],t=0;t=-1&&!n;o--){var i=o>=0?arguments[o]:t.cwd();if(!u.isString(i))throw new TypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,n="/"===i[0])}return e=r(e.split("/"),!n).join("/"),(n?"/":"")+e||"."},g.normalize=function(e){var t=g.isAbsolute(e),n=e&&"/"===e[e.length-1];return e=r(e.split("/"),!t).join("/"),e||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e},g.isAbsolute=function(e){return"/"===e.charAt(0)},g.join=function(){for(var e="",t=0;t1)for(var n=1;n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),g(n)?r.showHidden=n:n&&t._extend(r,n),x(r.showHidden)&&(r.showHidden=!1),x(r.depth)&&(r.depth=2),x(r.colors)&&(r.colors=!1),x(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),l(r,e,r.depth)}function i(e,t){var n=o.styles[t];return n?"["+o.colors[n][0]+"m"+e+"["+o.colors[n][1]+"m":e}function a(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function l(e,n,r){if(e.customInspect&&n&&T(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return y(o)||(o=l(e,o,r)),o}var i=c(e,n);if(i)return i;var a=Object.keys(n),g=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),k(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return u(n);if(0===a.length){if(T(n)){var m=n.name?": "+n.name:"";return e.stylize("[Function"+m+"]","special")}if(E(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(k(n))return u(n)}var v="",b=!1,A=["{","}"];if(h(n)&&(b=!0,A=["[","]"]),T(n)){var x=n.name?": "+n.name:"";v=" [Function"+x+"]"}if(E(n)&&(v=" "+RegExp.prototype.toString.call(n)),C(n)&&(v=" "+Date.prototype.toUTCString.call(n)),k(n)&&(v=" "+u(n)),0===a.length&&(!b||0==n.length))return A[0]+v+A[1];if(r<0)return E(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var w;return w=b?d(e,n,r,g,a):a.map(function(t){return p(e,n,r,g,t,b)}),e.seen.pop(),f(w,v,A)}function c(e,t){if(x(t))return e.stylize("undefined","undefined");if(y(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return b(t)?e.stylize(""+t,"number"):g(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,o){for(var i=[],a=0,s=t.length;a-1&&(s=i?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),x(a)){if(i&&o.match(/^\d+$/))return s;a=JSON.stringify(""+o),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function f(e,t,n){var r=0,o=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return o>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function h(e){return Array.isArray(e)}function g(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return null==e}function b(e){return"number"==typeof e}function y(e){return"string"==typeof e}function A(e){return"symbol"==typeof e}function x(e){return void 0===e}function E(e){return w(e)&&"[object RegExp]"===_(e)}function w(e){return"object"==typeof e&&null!==e}function C(e){return w(e)&&"[object Date]"===_(e)}function k(e){return w(e)&&("[object Error]"===_(e)||e instanceof Error)}function T(e){return"function"==typeof e}function S(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function _(e){return Object.prototype.toString.call(e)}function D(e){return e<10?"0"+e.toString(10):e.toString(10)}function O(){var e=new Date,t=[D(e.getHours()),D(e.getMinutes()),D(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var I=/%[sdj%]/g;t.format=function(e){if(!y(e)){for(var t=[],n=0;n=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return e}}),s=r[n];n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=n(2),i=(n(3),n(11)),a=n(16),s=n(18),l=n(19),c=o.createClass({displayName:"TreeView",propTypes:{collapsed:o.PropTypes.bool,defaultCollapsed:o.PropTypes.bool,className:o.PropTypes.string,itemClassName:o.PropTypes.string},getInitialState:function(){return this.getCollapsedfromDB(),{collapsed:this.props.defaultCollapsed,showAddFile:!1}},handleAddFile:function(e){this.props.handleAddFile(e),this.setState({collapsed:!1}),e.preventDefault(),e.stopPropagation()},hideAddFile:function(){this.setState({showAddFile:!1})},handleMvFile:function(e){function t(){p.removeEventListener("blur",n),p.removeEventListener("keydown",r),p.classList.remove("show"),f.classList.remove("hide")}function n(e){var n=p.value.trim();return n&&n!==l?void EditBridge.rename(u,c+n,function(e,r){t(),e?alert("修改目录 "+l+" 名失败"):(i.fileChange(),i.folderNameChange(u,c+n))}):void t()}function r(e){var t=e.keyCode;13===t&&n()}e.preventDefault(),e.stopPropagation();var o=e.currentTarget,a=o.dataset,l=a.foldername,c=a.basename,u=a.path,d=s.closest(o,".tree-view_item"),p=d.querySelector(".input-filename"),f=d.querySelector(".directory__folder");p.addEventListener("blur",n),p.addEventListener("keydown",r),p.value=l,p.classList.add("show"),p.select(),f.classList.add("hide")},handleDelFile:function(e,t){var n=this;return function(r){confirm("确定删除目录"+e+"?")&&EditBridge.rmdir(t,function(r,o){r?confirm("删除目录"+e+"失败"):(i.fileChange(),n.props.delDir(t))}),r.preventDefault(),r.stopPropagation()}},folderCollapsed:function(e,t){this.setState({collapsed:t})},handleClick:function(){var e=arguments.length<=0?void 0:arguments[0],t=e.target.className;t.indexOf("input-filename show")>-1||t.indexOf("icon-moreactions")>-1||(this.setState({collapsed:!this.state.collapsed}),this.props.onClick&&this.props.onClick(this.props.path,!this.state.collapsed),this.hideAddFile())},componentDidMount:function(){var e=this.props.path;a.on("HIDE_ADD_FILE_"+e,this.hideAddFile),a.on("FOLDER_COLLAPSED_"+e,this.folderCollapsed)},componentWillUnmount:function(){var e=this.props.path;a.removeListener("HIDE_ADD_FILE_"+e,this.hideAddFile),a.removeListener("FOLDER_COLLAPSED_"+e,this.folderCollapsed)},getCollapsedfromDB:function(){var e="tree-collapsed-"+this.props.path,t=this;l.getItem(e,function(e){e===!1&&t.setState({collapsed:!1})})},handleIconClick:function(e){this.props.handleIconClick(e)},render:function(){var e=this.props,t=e.collapsed,n=void 0===t?this.state.collapsed:t,i=e.className,a=void 0===i?"":i,s=e.itemClassName,l=void 0===s?"":s,c=e.children,u=(e.defaultCollapsed,e.folderName),d=e.baseName,p=e.path,f=(r(e,["collapsed","className","itemClassName","children","defaultCollapsed","folderName","baseName","path"]),"tree-view_arrow"),h="tree-view_children",g="directory__icon icon-folder";this.state.showAddFile;n?(f+=" tree-view_arrow-collapsed",h+=" tree-view_children-collapsed"):g+="-open";var m={};m.display="none";var v=o.createElement("div",{className:a+" "+f,"data-path":p}),b=o.createElement("div",{className:"tree-view-item-operation"},o.createElement("a",{"data-foldername":u,"data-basename":d,"data-path":p,onClick:this.handleMvFile,style:m,href:"javascript:;",title:"重命名"},o.createElement("i",{className:"icon-rename"})),o.createElement("a",{href:"javascript:;",title:"删除",onClick:this.handleDelFile(u,p),style:m},o.createElement("i",{className:"icon-delete"})),o.createElement("a",{href:"javascript:;",title:"添加",style:m},o.createElement("i",{"data-isadd":1,"data-path":p,onClick:this.handleAddFile,className:"icon-new"})),o.createElement("a",{href:"javascript:;"},o.createElement("i",{className:"icon-moreactions folder","data-path":p,onClick:this.handleIconClick})));return o.createElement("div",{className:"tree-view"},o.createElement("div",{className:"folder tree-view_item "+l,onClick:this.handleClick,"data-path":p},v,o.createElement("span",{className:"directory folder","data-path":p},o.createElement("i",{className:g,"data-path":p}),o.createElement("input",{className:"input-filename",type:"text"}),o.createElement("span",{className:"directory__folder","data-path":p}," ",u," ")),b),o.createElement("div",{className:h},n?null:c))}});e.exports=c},function(e,t,n){"use strict";var r=n(12),o={hideAddFile:function(e){r.dispatch({actionType:"HIDE_ADD_FILE",data:{path:e}})},fileChange:function(){r.dispatch({actionType:"FILE_CHANGE"})},addFile:function(e){r.dispatch({actionType:"ADD_FILE",data:{path:e}})},folderNameChange:function(e,t){r.dispatch({actionType:"FOLDER_NAME_CHANGE",data:{oldpath:e,newpath:t}})},fileNameChange:function(e,t){r.dispatch({actionType:"FILE_NAME_CHANGE",data:{oldpath:e,newpath:t}})},bodyClick:function(e){r.dispatch({actionType:"BODY_CLICK",data:{event:e}})},cursorChange:function(e){r.dispatch({actionType:"CURSOR_CHANGE",data:{viewState:e}})},editorEvent:function(e,t,n){r.dispatch({actionType:"EDITOR_EVENT",data:{action:e,path:t,opt:n}})},folderCollapsed:function(e,t){r.dispatch({actionType:"FOLDER_COLLAPSED",data:{path:e,collapsed:t}})}};e.exports=o},function(e,t,n){"use strict";var r=n(13),o=n(16),i=new r.Dispatcher;i.register(function(e){var t=(e.actionType,e.data);switch(e.actionType){case"HIDE_ADD_FILE":o.hideAddFile(t.path);break;case"FILE_CHANGE":o.fileChange();break;case"FILE_NAME_CHANGE":o.fileNameChange(t.oldpath,t.newpath);break;case"FOLDER_NAME_CHANGE":o.folderNameChange(t.oldpath,t.newpath);break;case"BODY_CLICK":o.bodyClick(t.event);break;case"CURSOR_CHANGE":o.cursorChange(t.viewState);break;case"EDITOR_EVENT":o.editorEvent(t.action,t.path,t.opt);break;case"ADD_FILE":o.addFile(t.path);break;case"FOLDER_COLLAPSED":o.folderCollapsed(t.path,t.collapsed)}}),e.exports=i},function(e,t,n){e.exports.Dispatcher=n(14)},function(e,t,n){(function(r){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var i=n(15),a="ID_",s=function(){function e(){o(this,e),this._callbacks={},this._isDispatching=!1,this._isHandled={},this._isPending={},this._lastID=1}return e.prototype.register=function(e){var t=a+this._lastID++;return this._callbacks[t]=e,t},e.prototype.unregister=function(e){this._callbacks[e]?void 0:"production"!==r.env.NODE_ENV?i(!1,"Dispatcher.unregister(...): `%s` does not map to a registered callback.",e):i(!1),delete this._callbacks[e]},e.prototype.waitFor=function(e){this._isDispatching?void 0:"production"!==r.env.NODE_ENV?i(!1,"Dispatcher.waitFor(...): Must be invoked while dispatching."):i(!1);for(var t=0;t0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),o||(o=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var o=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,o,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,o=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){o=s;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],r(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t){"use strict";function n(e){return e.split(".").pop()}function r(e){var t=n(e);return a[t]||"unknow"}function o(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}}function i(e,t){for(var n=e.matches;e;){if(n.call(e,t))return e;e=e.parentElement}return null}var a={js:"javascript",json:"json",wxml:"xml",wxss:"css",html:"html",css:"css",md:"markdown",png:"image",jpg:"image",icon:"image",gif:"image",txt:"plain"};e.exports={getFileType:r,getFileExtname:n,getOffset:o,closest:i}},function(e,t){"use strict";function n(e,t){l=e+"_"+t+"_editor";var n=indexedDB.open(l,c);n.onsuccess=function(e){d=this.result},n.onerror=function(e){console.error("initDb:",e.target.errorCode)},n.onupgradeneeded=function(e){e.currentTarget.result.createObjectStore(u,{keyPath:"name",autoIncrement:!1})}}function r(){var e=window.indexedDB.deleteDatabase(l);e.onsuccess=function(e){},e.onerror=function(e){console.log("Database error: "+e.target.errorCode)}}function o(e,t){if(!d)return void console.log("setItem: the db is not initialized");var n=d.transaction(u,"readwrite"),r=n.objectStore(u),o=r.put({name:e,value:t});o.onsuccess=function(e){},o.onerror=function(){console.log("put error",this.error)}}function i(e){if(d)return void(!!e&&e());var t=indexedDB.open(l,c);t.onsuccess=function(t){d=this.result,!!e&&e()},t.onerror=function(e){console.error("initDb:",e.target.errorCode)},t.onupgradeneeded=function(e){e.currentTarget.result.createObjectStore(u,{ -keyPath:"name",autoIncrement:!1})}}function a(e,t){i(function(){var n=d.transaction(u),r=n.objectStore(u),o=r.get(e);o.onsuccess=function(e){t(o.result?o.result.value:null)},o.onerror=function(){console.log("put error",this.error)}})}function s(e){i(function(){var t=d.transaction(u,"readwrite"),n=t.objectStore(u),r=n["delete"](e);r.onsuccess=function(e){console.log("del succ")},r.onerror=function(){}})}var l=null,c=1,u="editor",d=null;e.exports={init:n,clear:r,setItem:o,getItem:a,delItem:s}},function(e,t,n){"use strict";var r=n(2),o=(n(3),n(11));n(21);var i=r.createClass({displayName:"Create",propTypes:{},addDir:function(e){var t=this,n=this.props.createInfo.path,r=this.props.tree;0==n.indexOf("/")&&(n=n.substr(1));for(var i="untitled",a=(n?n+"/"+i:i)+"/",s=1;r.indexOf(a)>-1;)i="untitled("+s+")",a=(n?n+"/"+i:i)+"/",s+=1;EditBridge.mkdir(a,function(e,n){e?alert("创建目录"+i+"失败"):(o.fileChange(),setTimeout(function(){a.lastIndexOf("/")==a.length-1&&(a=a.substr(0,a.length-1)),a.indexOf("/")==-1&&(a="/"+a),o.addFile(a)},100)),t.props.hideAddFile()}),e.preventDefault(),e.stopPropagation()},addFile:function(e){var t=this;return function(n){t.props.hideAddFile();var r=t.props.createInfo.path,i=t.props.tree;0==r.indexOf("/")&&(r=r.substr(1)),setTimeout(function(){var n="untitled";n=n+"."+e;for(var a=1,s=r?r+"/"+n:n;i.indexOf(s)>-1;)n="untitled("+a+")."+e,s=r?r+"/"+n:n,a+=1;EditBridge.addFile(s,function(e,r){e?alert("创建文件"+n+"失败"):(o.fileChange(),setTimeout(function(){o.addFile(s)},100),t.props.openFile(s))})}),n.preventDefault(),n.stopPropagation()}},render:function(){var e=this.props.show,t=this.props.createInfo,n=e?{top:t.top,left:t.left,display:"block"}:{};return r.createElement("div",{className:"tree-view-create",style:n},r.createElement("div",{onClick:this.addDir,className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-folder"}),"目录")),r.createElement("div",{onClick:this.addFile("js"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-js"}),".js")),r.createElement("div",{onClick:this.addFile("json"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-json"}),".json")),r.createElement("div",{onClick:this.addFile("wxml"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-wxml"}),".wxml")),r.createElement("div",{onClick:this.addFile("wxss"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-wxss"}),".wxss")))}});e.exports=i},function(e,t,n){var r=n(22);"string"==typeof r&&(r=[[e.id,r,""]]);n(29)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(23)(),t.push([e.id,'.tree-view-create{display:none;position:absolute;left:100%;top:0;margin-left:20px;background:#fff;border:1px solid #f0f0f0;box-shadow:1px 1px 10px #ccc;z-index:10000}.tree-view-create:before{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#e6e6e6;margin-left:-19px}.tree-view-create:after{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#fff;margin-left:-18px}.tree-view-create-item-wrapper{background:#ecf8eb;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tree-view-create-item-wrapper .tree-view-create-item{padding-left:35px}.tree-view-create-item-wrapper .tree-view-create-item:hover{background-color:#48c23d;color:#fff}.tree-view-create-item-wrapper .tree-view-create-item:hover .icon-folder{width:16px;height:15px;display:inline-block;vertical-align:middle;background:url('+n(24)+") no-repeat}.tree-view-create-item-wrapper .tree-view-create-item:hover .icon-file-js{width:16px;height:16px;display:inline-block;vertical-align:middle;background:url("+n(25)+") no-repeat}.tree-view-create-item-wrapper .tree-view-create-item:hover .icon-file-json{width:16px;height:16px;display:inline-block;vertical-align:middle;background:url("+n(26)+") no-repeat}.tree-view-create-item-wrapper .tree-view-create-item:hover .icon-file-wxml{width:16px;height:9px;display:inline-block;vertical-align:middle;background:url("+n(27)+") no-repeat}.tree-view-create-item-wrapper .tree-view-create-item:hover .icon-file-wxss{width:16px;height:17px;display:inline-block;vertical-align:middle;background:url("+n(28)+") no-repeat}.tree-view-create-item{padding:10px 15px;cursor:pointer}.tree-view-create-item.tree-view-create-item-expand,.tree-view-create-item:hover{background-color:#ecf8eb}.tree-view-create-item p{display:flex;align-items:center;white-space:nowrap}.tree-view-create-item p i{margin-right:5px}.tree-view-item-operation a{display:inline-block;vertical-align:3px;margin:0 3px}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t=0&&y.splice(t,1)}function s(e){var t=document.createElement("style");return t.type="text/css",i(e,t),t}function l(e){var t=document.createElement("link");return t.rel="stylesheet",i(e,t),t}function c(e,t){var n,r,o;if(t.singleton){var i=b++;n=v||(v=s(t)),r=u.bind(null,n,i,!1),o=u.bind(null,n,i,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(t),r=p.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),r=d.bind(null,n),o=function(){a(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}function u(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=A(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function d(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function p(e,t){var n=t.css,r=t.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=e.href;e.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var f={},h=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=h(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,b=0,y=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=o(e);return r(n,t),function(e){for(var i=[],a=0;a-1;)i="untitled("+s+")",a=(n?n+"/"+i:i)+"/",s+=1;EditBridge.mkdir(a,function(e,n){e?alert("创建目录"+i+"失败"):(o.fileChange(),setTimeout(function(){a.lastIndexOf("/")==a.length-1&&(a=a.substr(0,a.length-1)),a.indexOf("/")==-1&&(a="/"+a),o.addFile(a)},100)),t.props.hideAddFile()}),e.preventDefault(),e.stopPropagation()},addFile:function(e){var t=this;return function(n){t.props.hideAddFile();var r=t.props.path,i=t.props.tree;0==r.indexOf("/")&&(r=r.substr(1)),setTimeout(function(){var n="untitled";n=n+"."+e;for(var a=1,s=r?r+"/"+n:n;i.indexOf(s)>-1;)n="untitled("+a+")."+e,s=r?r+"/"+n:n,a+=1;EditBridge.addFile(s,function(e,r){e?alert("创建文件"+n+"失败"):(o.fileChange(),setTimeout(function(){o.addFile(s),t.props.openFile(s)},100))})}),n.preventDefault(),n.stopPropagation()}},render:function(){return this.props.treeCreateShow?r.createElement("div",{className:"tree-view-create-item-wrapper"},r.createElement("div",{onClick:this.addDir,className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-folder"}),"目录")),r.createElement("div",{onClick:this.addFile("js"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-js"}),".js")),r.createElement("div",{onClick:this.addFile("json"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-json"}),".json")),r.createElement("div",{onClick:this.addFile("wxml"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-wxml"}),".wxml")),r.createElement("div",{onClick:this.addFile("wxss"),className:"tree-view-create-item"},r.createElement("p",null,r.createElement("i",{className:"icon-file-wxss"}),".wxss"))):null}});e.exports=i},function(e,t,n){var r=n(33);"string"==typeof r&&(r=[[e.id,r,""]]);n(29)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(23)(),t.push([e.id,'.tree-view{overflow-y:hidden}.tree-view_children{margin-left:16px}.tree-view_children-collapsed{height:0}.tree-view_arrow{cursor:pointer;margin-right:6px;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tree-view_arrow:after{content:"\\25BE"}.tree-view_arrow-collapsed{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}',""])},function(e,t,n){var r=n(35);"string"==typeof r&&(r=[[e.id,r,""]]);n(29)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(23)(),t.push([e.id,".tree-container{min-width:250px;height:100%;display:flex;flex-direction:column;border-right:1px solid #d8d8d8}.tree-project-name{background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;padding:0 10px 0 0;display:flex;align-items:center;position:relative;min-height:26px}.tree-project-name .tree-project-name-add{margin-left:auto;cursor:pointer;line-height:1}.tree-project-name .tree-project-name-add .tree-view-create{color:#404042;top:3px;margin-left:10px}.tree-project-name .tree-project-name-add:hover .icon-new{width:14px;height:14px;display:inline-block;vertical-align:middle;background:url("+n(36)+") no-repeat}.tree-project-name .tree-project-name-toggle{border-right:1px solid #fff;padding:3px 5px 4px;line-height:1;margin-right:10px}.tree-project-name .tree-project-name-toggle:hover{background-color:#ecf8eb}.tree-project-name .tree-project-name-toggle:hover .icon-tree{width:16px;height:17px;display:inline-block;vertical-align:middle;background:url("+n(37)+') no-repeat}.tree-view-wrapper{padding:10px;color:#404042;flex:1 1 auto;overflow-y:auto}.tree-view_arrow{color:#888}.tree-view_children>.directory{margin-left:10px}.directory{cursor:pointer;position:relative;padding:0 0 3px 5px;line-height:24px;display:flex;align-items:center}.directory .directory__file,.directory .directory__folder{display:inline-block;vertical-align:middle;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:40px}.directory .directory__file.hide,.directory .directory__folder.hide{display:none}.directory.selected{color:#65cc5c}.directory:hover:before{content:"";position:absolute;left:-999px;top:0;right:-999px;height:100%;background-color:#ecf8eb;z-index:-1}.directory:hover .directory-operation{display:flex}.directory__icon{min-width:16px;margin-right:5px;margin-top:1px}.directory__icon-folder{display:inline-block}.tree-view{overflow-y:visible}.tree-view_arrow{margin-right:0}.tree-view_item{position:relative;display:flex;align-items:center}.tree-view_item:hover:before{content:"";position:absolute;left:-999px;top:0;right:-999px;height:100%;background-color:#ecf8eb;z-index:-1}.tree-view_item:hover .tree-view-item-operation{display:block}.tree-view_item.selected:before{content:"";position:absolute;left:-999px;top:0;right:-20px;height:100%;background-color:#ecf8eb;z-index:-1}.tree-view-item-operation{display:none;position:absolute;right:0;cursor:pointer}.input-filename{display:none;flex:1;border:1px solid #d8d8d8;outline:0;padding:0 5px;vertical-align:1px;line-height:22px;font-size:14px}.input-filename::selection{background:#48c23d}.input-filename.show{display:inline-block}.directory-operation{display:none;margin-left:auto;position:absolute;right:0;top:0}.directory-operation a{margin-left:10px}.directory-operation a:first-child{margin-left:0}::selection{color:#fff;background-color:blue}',""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAElJREFUKBVjYKA28Dps1wDCuMxlwiVBSHwIaWQE+cXzsH0app/++ULEmDajy223PTiLBSL43xhdEsiXxCOHRTlUaDQ6cIcNQRkAGq0Pv7oFQ7cAAAAASUVORK5CYII="},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAAAXNSR0IArs4c6QAAAJNJREFUOBGlkFEOgDAIQ53xWvrtkf3Wg2nQ1JQKWxb3w4D2wVbWfT4HOdtyFCnlqQI0z51PZ2wJWv3fgMkm9K7d2qqr//62bcG/H23FfUy5n4BEIxsioOkdACI2KhQa1B2gZoRBNQ4AEaJOQz2MXWIipBtEQF3fOCnAmmyIgB8ARGw0ER9ouBbeVag5TNUnZCaYLV65fjpbYtmGBAAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(16),a=n(11),s=n(39),l=n(19),c=n(18);n(66);var u,d=r.createClass({displayName:"Editor",getInitialState:function(){return this.dirty=!1,{path:this.props.path,imgurl:"",notSupport:!1}},getFileExt:function(e){return e.split(".").pop()},_changeFile:function(e){if(!this.state.notSupport){var t=this.state.path;this.dirty?e&&confirm("文件内容已经发生变化,是否载入新的文件内容?")&&this._reloadEditor(t):this._reloadEditor(t)}},_reloadEditor:function(e){var t=this;EditBridge.getFile(e,function(n,r){var d=c.getFileType(e),p=o.findDOMNode(t.refs.container),f=t;return"image"===d?void t.setState({imgurl:encodeURI(r.data)}):(s.addJSCompletion(),void l.getItem("content_"+e,function(t){t&&f.props.fileinfo[e]&&t.mtime==r.info.mtime&&(r.data==t.content||(r.data=t.content,f.dirty=!0,i.emit("DidChangeModelContent",e))),f.editor&&f.editor.dispose(),f.editor=monaco.editor.create(p,{value:r.data,language:d,folding:!0,wrappingColumn:0}),"xml"!==d&&"css"!==d||f.editor.addAction({id:"format-code",label:"格式化代码",keybindings:[monaco.KeyMod.Shift|monaco.KeyMod.Alt|monaco.KeyCode.KEY_F],keybindingContext:"Shift+Alt+F",contextMenuGroupId:"1_modification",contextMenuOrder:1.5,run:function(e){return EditBridge.formatCode(f.editor.getValue(),{fileType:d},function(e,t){f.editor.setValue(t)}),null}}),f.editor.onDidChangeModelContent(function(){f.dirty=!0,i.emit("DidChangeModelContent",e),clearTimeout(u),u=setTimeout(function(){l.setItem("content_"+e,{mtime:r.info.mtime,content:f.editor.getValue()})},400)}),f.editor.onDidChangeCursorPosition(function(){f.saveEditorState(e),a.cursorChange(f.editor.saveViewState())})}))})},revealPosition:function(e){var t=this.state.path,n=this.props.currentFile;if(t==n&&this.editor){var r={lineNumber:e.lineNumber,column:e.column};this.editor.revealPositionInCenter(r),this.editor.setPosition(r),this.editor.focus()}},saveEditorState:function(e){this.editor&&(window.editorState=window.editorState||{},window.editorState[e]={viewState:this.editor.saveViewState(),model:this.editor.getModel()})},_resizeEditor:function(e){var t=o.findDOMNode(this.refs.container);!!this.editor&&this.editor.layout({width:t.offsetWidth,height:t.offsetHeight})},_setCursor:function(){var e=this.state.path,t=this.props.currentFile;if(e==t&&this.editor){var n=this;if(this.props.isNeedSetCursor){var r=null;if(window.editorState&&window.editorState[e]&&(r=window.editorState[e]),!r)return;n.editor.setModel(r.model),n.editor.restoreViewState(r.viewState),n.editor.focus()}}},_saveFile:function(e){var t=this,n=this.editor.getValue();EditBridge.saveFile(e,n,function(n){n?alert("保存失败,"+n):(t.dirty=!1,i.emit("DidModelSave",e))})},editorEvent:function(e,t){"REVEAL_POSITION"==e?this.revealPosition(t):"SET_CURSOR"==e?this._setCursor():"RESIZE_EDITOR"==e?this._resizeEditor(t):"SAVE_EDITOR_STATE"==e?this.saveEditorState(t):"FILE_CONTENT_CHANGE"==e?this._changeFile(t):"SAVE_FILE"==e&&this._saveFile(t)},componentDidMount:function(){var e=this.state.path,t=c.getFileType(e);o.findDOMNode(this.refs.container);"unknow"===t?this.setState({notSupport:!0}):(this._reloadEditor(e),i.on("EDITOR_EVENT_"+e,this.editorEvent))},componentWillUnmount:function(){var e=this.state.path;i.removeListener("EDITOR_EVENT_"+e,this.editorEvent)},componentDidUpdate:function(){this._resizeEditor(),this._setCursor()},render:function(){var e=this.props.show,t=e?{}:{display:"none"},n=void 0;return this.state.imgurl?n=r.createElement("div",{className:"editor-container_img"},r.createElement("img",{src:this.state.imgurl})):this.state.notSupport&&(n=r.createElement("div",null,"暂不支持此文件类型")),r.createElement("div",{ref:"container",style:t,className:"editor-container"},n)}});e.exports=d},function(e,t,n){"use strict";function r(){var e=n(40),t=n(57),r=n(62);o||(o=!0,monaco.languages.registerCompletionItemProvider("xml",{provideCompletionItems:t.provideCompletionItems}),monaco.languages.registerCompletionItemProvider("javascript",{triggerCharacters:e.triggerCharacters,provideCompletionItems:e.provideCompletionItems}),monaco.languages.registerCompletionItemProvider("json",{provideCompletionItems:r.provideCompletionItems}))}var o=!1;e.exports={addJSCompletion:r}},function(e,t,n){"use strict";var r=n(41),o={wx:[]},i=r.api;for(var a in i)o.wx.push({label:a,kind:monaco.languages.CompletionItemKind.Function,insertText:i[a].insertText,documentation:i[a].documentation});var s=r.mina;for(var l in s)o[l]=[s[l]];var c=function(e,t,n){var r=e.getWordUntilPosition({lineNumber:t.lineNumber,column:t.column-1}),i=r.word;if(o[i])return o[i];var a=e.getWordUntilPosition({lineNumber:t.lineNumber,column:t.column}),s=a.word;return o[s]?o[s]:[]},u=["."];e.exports={provideCompletionItems:c,triggerCharacters:u}},function(e,t,n){"use strict";var r=n(42),o=n(44),i=n(45),a=n(46),s=n(47),l=n(48),c=n(49),u=n(50),d=n(51),p=n(52),f=n(53),h=n(54),g=n(55),m=n(56),v=Object.assign({},r,o,i,a,s,l,c,u,d,p,f,h);e.exports={api:v,mina:{a:g,p:m}}},function(e,t,n){"use strict";var r=n(43),o="request({\n url: 'https://{{URL}}',\n data: {{{}}},\n method: '{{GET}}', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT\n // header: {}, // 设置请求的 header\n "+r.cb+"\n})",i="发起 https 请求。一个微信小程序,同时只能有5个网络请求连接。",a={insertText:o,documentation:i};o="connectSocket({\n url: \"wss://{{URL}}\",\n data: {{{}}},\n // header: {}, // 设置请求的 header\n method: '{{GET}}', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT\n "+r.cb+"\n})",i="创建一个 WebSocket 连接。";var s={insertText:o,documentation:i};o="onSocketClose(function() {\n {{// callback}}\n})",i="监听 WebSocket 关闭。";var l={insertText:o,documentation:i};o="onSocketError(function() {\n {{// callback}}\n})",i="监听 WebSocket 错误。";var c={insertText:o,documentation:i};o="onSocketMessage(function(data) {\n {{// data}}\n})",i="监听 WebSocket 接受到服务器的消息事件。";var u={insertText:o,documentation:i};o="onSocketOpen(function() {\n {{// callback}}\n})",i="监听 WebSocket 连接打开事件。";var d={insertText:o,documentation:i};o="sendSocketMessage({\n data: '{{String}}',\n "+r.cb+"\n})",i="通过 WebSocket 连接发送数据,需要先 wx.connectSocket,并在 wx.onSocketOpen 回调之后才能发送。";var p={insertText:o,documentation:i};o="downloadFile({\n url: \"https://{{URL}}\",\n // type: 'image', // 下载资源的类型,用于客户端识别处理,有效值:image/audio/video\n // header: {}, // 设置请求的 header\n "+r.cb+"\n})",i="下载文件资源到本地。客户端直接发起一个 HTTP GET 请求,把下载到的资源根据 type 进行处理,并返回文件的本地临时路径。";var f={insertText:o,documentation:i};o="uploadFile({\n url: 'https://{{String}}',\n filePath:'{{filePath}}',\n name:'{{name}}',\n // header: {}, // 设置请求的 header\n // formData: {}, // HTTP 请求中其他额外的 form data\n "+r.cb+"\n})",i="将本地资源上传到开发者服务器。";var h={insertText:o,documentation:i};o="closeSocket()",i="关闭 WebSocket 连接。";var g={insertText:o,documentation:i};e.exports={request:a,connectSocket:s,onSocketClose:l,onSocketError:c,onSocketMessage:u,onSocketOpen:d,sendSocketMessage:p,downloadFile:f,uploadFile:h,closeSocket:g}},function(e,t){"use strict";var n="success: function(res){\n {{// success}}\n },\n fail: function() {\n {{// fail}}\n },\n complete: function() {\n {{// complete}}\n }";e.exports={cb:n}},function(e,t,n){"use strict";var r=n(43),o="chooseImage({\n count: {{9}}, // 最多可以选择的图片张数,默认9\n sizeType: [{{'original', 'compressed'}}], // original 原图,compressed 压缩图,默认二者都有\n sourceType: [{{'album', 'camera'}}], // album 从相册选图,camera 使用相机,默认二者都有\n "+r.cb+"\n})",i="从本地相册选择图片或使用相机拍照。",a={insertText:o,documentation:i};o="previewImage({\n // current: '{{String}}', // 当前显示图片的链接,不填则默认为 urls 的第一张\n urls: [{{StringArray}}],\n "+r.cb+"\n})",i="预览图片。";var s={insertText:o,documentation:i};o="getImageInfo({\n src: '{{src}}',\n "+r.cb+"\n})",i="获取图片信息。";var l={insertText:o,documentation:i};o="startRecord({\n "+r.cb+"\n})",i="开始录音。当主动调用 wx.stopRecord,或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。";var c={insertText:o,documentation:i};o="stopRecord({\n "+r.cb+"\n})",i="​ 主动调用停止录音。";var u={insertText:o,documentation:i};o="playVoice({\n filePath: '{{String}}',\n "+r.cb+"\n})",i="​开始播放语音,同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。";var d={insertText:o,documentation:i};o="pauseVoice({\n "+r.cb+"\n})",i="​暂停正在播放的语音。";var p={insertText:o,documentation:i};o="stopVoice({\n "+r.cb+"\n})",i="​结束播放语音。";var f={insertText:o,documentation:i};o="getBackgroundAudioPlayerState({\n "+r.cb+"\n})",i="​获取音乐播放状态。";var h={insertText:o,documentation:i};o="playBackgroundAudio({\n dataUrl: '{{String}}',\n "+r.cb+"\n})",i="​播放音乐,同时只能有一首音乐正在播放。";var g={insertText:o,documentation:i};o="pauseBackgroundAudio({\n "+r.cb+"\n})",i="​暂停播放音乐。";var m={insertText:o,documentation:i};o="seekBackgroundAudio({\n position: {{Number}},\n "+r.cb+"\n})",i="控制音乐播放进度。";var v={insertText:o,documentation:i};o="stopBackgroundAudio({\n "+r.cb+"\n})",i="​停止播放音乐。";var b={insertText:o,documentation:i};o="onBackgroundAudioPlay(function() {\n {{// callback}}\n})",i="​监听音乐播放。";var y={insertText:o,documentation:i};o="onBackgroundAudioPause(function() {\n {{// callback}}\n})",i="​监听音乐暂停。";var A={insertText:o,documentation:i};o="onBackgroundAudioStop(function() {\n {{// callback}}\n})",i="​监听音乐停止。";var x={insertText:o,documentation:i};o="chooseVideo({\n sourceType: ['album', 'camera'], // album 从相册选视频,camera 使用相机拍摄\n // maxDuration: 60, // 拍摄视频最长拍摄时间,单位秒。最长支持60秒\n camera: ['front', 'back'],\n "+r.cb+"\n})",i="拍摄视频或从手机相册中选视频,返回视频的临时文件路径。";var E={insertText:o,documentation:i};o="createAudioContext({{AudioId}})\n",i="创建并返回 audio 上下文 audioContext 对象。";var w={insertText:o,documentation:i};o="createVideoContext({{VideoId}})\n",i="创建并返回 video 上下文 videoContext 对象。";var C={insertText:o,documentation:i};e.exports={chooseImage:a,previewImage:s,getImageInfo:l,startRecord:c,stopRecord:u,playVoice:d,pauseVoice:p,stopVoice:f,getBackgroundAudioPlayerState:h,playBackgroundAudio:g,pauseBackgroundAudio:m,seekBackgroundAudio:v,stopBackgroundAudio:b,onBackgroundAudioPlay:y,onBackgroundAudioPause:A,onBackgroundAudioStop:x,chooseVideo:E,createAudioContext:w,createVideoContext:C}},function(e,t,n){"use strict";var r=n(43),o="saveFile({\n tempFilePath: '{{String}}',\n "+r.cb+"\n})",i="保存文件到本地。",a={insertText:o,documentation:i};o="openDocument({\n filePath: '{{String}}',\n "+r.cb+"\n})",i="在新 webview 打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx。";var s={insertText:o,documentation:i};o="getSavedFileList({\n "+r.cb+"\n})",i="获取该小程序下已保存的文件列表。";var l={insertText:o,documentation:i};o="getSavedFileInfo({\n filePath: '{{String}}',\n "+r.cb+"\n})",i="获取该已保存的文件信息。";var c={insertText:o,documentation:i};o="removeSavedFile({\n filePath: '{{String}}',\n "+r.cb+"\n})",i="删除已保存的文件。";var u={insertText:o,documentation:i};e.exports={saveFile:a,openDocument:s,getSavedFileList:l,getSavedFileInfo:c,removeSavedFile:u}},function(e,t,n){ -"use strict";var r=n(43),o="setStorage({\n key: '{{String}}',\n data: {{Object/String}},\n "+r.cb+"\n})",i="将数据存储在本地缓存中指定的 key 中,这是一个异步接口。",a={insertText:o,documentation:i};o="setStorageSync('{{String}}', {{Object/String}})",i="将 data 存储在本地缓存中指定的 key 中,这是一个同步接口。";var s={insertText:o,documentation:i};o="getStorage({\n key: '{{String}}',\n "+r.cb+"\n})",i="从本地缓存中异步获取指定 key 对应的内容,这是一个异步接口。";var l={insertText:o,documentation:i};o="getStorageSync('{{String}}')",i="从本地缓存中同步获取指定 key 对应的内容,这是一个同步接口。";var c={insertText:o,documentation:i};o="clearStorage({\n key: '{{String}}',\n "+r.cb+"\n})",i="清理本地数据缓存,这是一个异步接口。";var u={insertText:o,documentation:i};o="clearStorageSync()",i="清理本地数据缓存,这是一个同步接口。";var d={insertText:o,documentation:i};o="getStorageInfo({\n key: '{{String}}',\n "+r.cb+"\n})",i="获取 storage 相关信息,这是一个异步接口。";var p={insertText:o,documentation:i};o="getStorageInfoSync()",i="获取 storage 相关信息,这是一个同步接口。";var f={insertText:o,documentation:i};o="removeStorage({\n key: '{{String}}',\n "+r.cb+"\n})",i="指定 key 删除本地数据,这是一个异步接口。";var h={insertText:o,documentation:i};o="removeStorageSync('{{String}}')",i="指定 key 删除本地数据,这是一个同步接口。";var g={insertText:o,documentation:i};e.exports={setStorage:a,setStorageSync:s,getStorage:l,getStorageSync:c,clearStorage:u,clearStorageSync:d,getStorageInfo:p,getStorageInfoSync:f,removeStorage:h,removeStorageSync:g}},function(e,t,n){"use strict";var r=n(43),o="getLocation({\n type: '{{wgs84}}', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标\n "+r.cb+"\n})",i="获取当前的地理位置、速度。",a={insertText:o,documentation:i};o="openLocation({\n latitude: {{Float}}, // 纬度,范围为-90~90,负数表示南纬\n longitude: {{Float}}, // 经度,范围为-180~180,负数表示西经\n scale: {{28}}, // 缩放比例\n // name: '{{name}}', // 位置名\n // address: '{{address}}', // 地址的详细说明\n "+r.cb+"\n})",i="使用微信内置地图查看位置。";var s={insertText:o,documentation:i};o="chooseLocation({\n "+r.cb+"\n})",i="调起原生地图选点界面,返回用户所选的位置名称及经纬度。";var l={insertText:o,documentation:i};o="createMapContext({{MapId}})\n",i="创建并返回 map 上下文 mapContext 对象。";var c={insertText:o,documentation:i};e.exports={getLocation:a,openLocation:s,chooseLocation:l,createMapContext:c}},function(e,t){"use strict";var n="getNetworkType({\n success: function(res) {\n {{// success}}\n }\n})",r="获取网络类型。",o={insertText:n,documentation:r};n="getSystemInfo({\n success: function(res) {\n {{// success}}\n }\n})",r="获取系统信息,这是一个异步接口。";var i={insertText:n,documentation:r};n="getSystemInfoSync()",r="获取系统信息,这是一个同步接口。";var a={insertText:n,documentation:r};n="onAccelerometerChange(function(res){\n {{// callback}}\n})",r="监听重力感应数据,频率:5次/秒。";var s={insertText:n,documentation:r};n="onCompassChange(function(res){\n {{// callback}}\n})",r="监听罗盘数据,频率:5次/秒。";var l={insertText:n,documentation:r};n="makePhoneCall({\n phoneNumber: '{{String}}',\n success: function(res) {\n {{// success}}\n }\n})",r="拨打电话";var c={insertText:n,documentation:r};n="scanCode({\n success: function(res) {\n {{// success}}\n },\n fail: function(res) {\n {{// fail}}\n },\n complete: function(res) {\n {{// complete}}\n }\n})",r="调起扫码界面";var u={insertText:n,documentation:r};e.exports={getNetworkType:o,getSystemInfo:i,getSystemInfoSync:a,onAccelerometerChange:s,onCompassChange:l,makePhoneCall:c,scanCode:u}},function(e,t){"use strict";var n="setNavigationBarTitle({\n title: '{{String}}',\n success: function(res) {\n {{// success}}\n }\n})",r="动态设置当前页面的标题。",o={insertText:n,documentation:r};n="hideNavigationBarLoading()",r="隐藏导航条加载动画。";var i={insertText:n,documentation:r};n="showNavigationBarLoading()",r="在当前页面显示导航条加载动画。";var a={insertText:n,documentation:r};e.exports={setNavigationBarTitle:o,showNavigationBarLoading:a,hideNavigationBarLoading:i}},function(e,t,n){"use strict";var r=n(43),o="navigateTo({\n url: '{{String}}',\n "+r.cb+"\n})",i="保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。",a={insertText:o,documentation:i};o="redirectTo({\n url: '{{String}}',\n "+r.cb+"\n})",i="关闭当前页面,跳转到应用内的某个页面。";var s={insertText:o,documentation:i};o="navigateBack({\n delta: {{1}}, // 回退前 delta(默认为1) 页面\n "+r.cb+"\n})",i="关闭当前页面,回退前 delta(默认为1) 页面。";var l={insertText:o,documentation:i};o="switchTab({\n url: '{{String}}',\n "+r.cb+"\n})",i="跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面";var c={insertText:o,documentation:i};e.exports={navigateTo:a,redirectTo:s,navigateBack:l,switchTab:c}},function(e,t){"use strict";var n='createAnimation({\n duration: 400,\n timingFunction: \'linear\', // "linear","ease","ease-in","ease-in-out","ease-out","step-start","step-end"\n delay: 0,\n transformOrigin: \'50% 50% 0\',\n success: function(res) {\n {{function code}}\n }\n})',r="创建一个动画实例 animation。",o={insertText:n,documentation:r};e.exports={createAnimation:o}},function(e,t,n){"use strict";var r=n(43),o="createContext()",i="创建并返回绘图上下文context对象。",a={insertText:o,documentation:i};o="drawCanvas({\n canvasId: '{{String}}',\n actions: {{actions}}\n})",i="drawCanvas。";var s={insertText:o,documentation:i};o="canvasToTempFilePath({\n canvasId: {{canvasId}},\n "+r.cb+"\n})\n",i="将 canvas 导出为图片,并返回临时文件路劲。";var l={insertText:o,documentation:i};o="canvasToTempFilePath({\n canvasId: {{canvasId}}\n})\n",i="创建 canvas 绘图上下文(指定 canvasId)";var c={insertText:o,documentation:i};e.exports={createContext:a,drawCanvas:s,canvasToTempFilePath:l,createCanvasContext:c}},function(e,t,n){"use strict";var r=n(43),o="hideKeyboard()",i="收起键盘。",a={insertText:o,documentation:i};o="stopPullDownRefresh()",i="停止当前页面下拉刷新。";var s={insertText:o,documentation:i};o="scanCode({\n "+r.cb+"\n})",i="调起客户端扫码界面,扫码成功后返回对应的结果";var l={insertText:o,documentation:i};e.exports={hideKeyboard:a,stopPullDownRefresh:s,scanCode:l}},function(e,t,n){"use strict";var r=n(43),o="login({\n "+r.cb+"\n})",i="调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。",a={insertText:o,documentation:i};o="getUserInfo({\n "+r.cb+"\n})",i="获取用户信息,需要先调用 wx.login 接口。";var s={insertText:o,documentation:i};o="requestPayment({\n timeStamp: '{{String1}}',\n nonceStr: '{{String2}}',\n package: '{{String3}}',\n signType: 'MD5',\n paySign: '{{String4}}',\n "+r.cb+"\n})",i="发起微信支付。";var l={insertText:o,documentation:i};e.exports={login:a,getUserInfo:s,requestPayment:l}},function(e,t){"use strict";var n="App({\n onLaunch: function () {\n {{String1}}\n },\n onShow: function () {\n {{String2}}\n },\n onHide: function () {\n {{String3}}\n },\n onError: function (msg) {\n {{String4}}\n }\n})",r="使用 App 函数来生成一个程序实例",o=monaco.languages.CompletionItemKind.Function,i="App";e.exports={insertText:n,documentation:r,kind:o,label:i}},function(e,t){"use strict";var n="Page({\n data:{\n {{String1}}\n },\n onLoad:function(options){\n // 生命周期函数--监听页面加载\n {{String2}}\n },\n onReady:function(){\n // 生命周期函数--监听页面初次渲染完成\n {{String3}}\n },\n onShow:function(){\n // 生命周期函数--监听页面显示\n {{String4}}\n },\n onHide:function(){\n // 生命周期函数--监听页面隐藏\n {{String5}}\n },\n onUnload:function(){\n // 生命周期函数--监听页面卸载\n {{String6}}\n },\n onPullDownRefresh: function() {\n // 页面相关事件处理函数--监听用户下拉动作\n {{String7}}\n },\n onReachBottom: function() {\n // 页面上拉触底事件的处理函数\n {{String8}}\n },\n onShareAppMessage: function() {\n // 用户点击右上角分享\n return {\n title: '{{title}}', // 分享标题\n desc: '{{desc}}', // 分享描述\n path: '{{path}}' // 分享路径\n }\n }\n})",r="使用 Page 函数来生成一个页面实例",o=monaco.languages.CompletionItemKind.Function,i="Page";e.exports={insertText:n,documentation:r,kind:o,label:i}},function(e,t,n){"use strict";var r=n(58).tag,o=n(59).tag,i=n(60).name,a=n(61).value,s=function(e,t,n){var s=t.lineNumber,l=(t.column,e.getLineContent(s).substr(0,t.column-2));if(!(l.lastIndexOf("<")!=l.lastIndexOf("l.lastIndexOf(">")&&l.lastIndexOf(" ")>l.lastIndexOf("<")))return l.lastIndexOf("<")>-1&&l.lastIndexOf("<")==l.length-1?o:r;var c=l.substring(l.lastIndexOf("<")).trim(),u=c.indexOf(" ")>0?c.substring(1,c.indexOf(" ")):c.substr(1).trim(),d=c.substring(c.lastIndexOf(" "),c.lastIndexOf('="')).trim();if(c.lastIndexOf('="')==c.length-2){if(u&&d&&a[u+","+d])return a[u+","+d]}else if(u&&i[u])return i[u];return[]};e.exports={provideCompletionItems:s}},function(e,t){"use strict";var n=[{insertText:'',documentation:"音频",label:"audio",kind:13},{insertText:"",documentation:"按钮",label:"button",kind:13},{insertText:"",documentation:"画布",label:"canvas",kind:13},{insertText:"{{}}",documentation:"多项选择器",label:"checkbox-group",kind:13},{insertText:"",documentation:"多选项目",label:"checkbox",kind:13},{insertText:"",documentation:"客服会话按钮",label:"contact-button",kind:13},{insertText:"
{{}}
",documentation:"表单",label:"form",kind:13},{insertText:'',documentation:"图标",label:"icon",kind:13},{insertText:'',documentation:"图片",label:"image",kind:13},{insertText:"",documentation:"输入框",label:"input",kind:13},{insertText:"",documentation:"标签",label:"label",kind:13},{insertText:"",documentation:"地图",label:"map",kind:13},{insertText:'{{}}',documentation:"页面链接",label:"navigator",kind:13},{insertText:"{{}}",documentation:"内嵌选择器项",label:"picker-view-column",kind:13},{insertText:"{{}}",documentation:"内嵌选择器",label:"picker-view",kind:13},{insertText:"{{}}",documentation:"选择器",label:"picker",kind:13},{insertText:"",documentation:"地图",label:"progress",kind:13},{insertText:"{{}}",documentation:"单项选择器",label:"radio-group",kind:13},{insertText:"{{}}",documentation:"单选项目",label:"radio",kind:13},{insertText:"{{}}",documentation:"可滚动视图区域",label:"scroll-view",kind:13},{insertText:"",documentation:"分享按钮",label:"share-button",kind:13},{insertText:"",documentation:"滑动选择器",label:"slider",kind:13},{insertText:"{{}}",documentation:"滑块视图项目",label:"swiper-item",kind:13},{insertText:"{{}}",documentation:"滑块视图",label:"swiper",kind:13},{insertText:'',documentation:"开关选择器",label:"switch",kind:13},{insertText:"{{}}",documentation:"文本",label:"text",kind:13},{insertText:"\n
\n \n ',properties:{value:{type:String,value:"",public:!0,coerce:"defaultValueChange"},maxlength:{type:Number,value:140,public:!0},placeholder:{type:String,value:"",public:!0},hidden:{type:Boolean,value:!1,public:!0},disabled:{type:Boolean,value:!1,public:!0},focus:{type:Number,value:0,public:!0,coerce:"focusChanged"},autoFocus:{type:Boolean,value:!1,public:!0},placeholderClass:{type:String,value:"textarea-placeholder",public:!0},placeholderStyle:{type:String,value:"",public:!0},autoHeight:{type:Boolean,value:!1,public:!0,observer:"autoHeightChanged"},bindinput:{type:String,value:"",public:!0}},listeners:{"textarea.input":"onTextAreaInput","textarea.focus":"onTextAreaFocus","textarea.blur":"onTextAreaBlur"},resetFormData:function(){this.$.textarea.value="",this.value=""},getFormData:function(e){var t=this;this.value=this.$.textarea.value,setTimeout(function(){"function"==typeof e&&e(t.value)},0)},couldFocus:function(e){this.disabled||this.$.textarea.focus()},focusChanged:function(e,t){return this.couldFocus(Boolean(e)),e},attached:function(){var e=this;this.__scale=750/window.innerWidth,this.getComputedStyle(),this.checkRows(this.value),this.__updateTextArea=this.updateTextArea.bind(this),document.addEventListener("pageReRender",this.__updateTextArea),this.__routeDoneId=exparser.addListenerToElement(document,"routeDone",function(){e.checkAutoFocus()}),this.__attached=!0},checkAutoFocus:function(){this.__autoFocused||(this.__autoFocused=!0,this.couldFocus(this.autoFocus||this.focus))},detached:function(){document.removeEventListener("pageReRender",this.__updateTextArea),exparser.removeListenerFromElement(document,"routeDone",this.__routeDoneId)},getHexColor:function(e){if(e.indexOf("#")>=0)return e;var t=e.match(/\d+/g),n=[];if(t.map(function(e,t){if(t<3){var i=parseInt(e);i=i>9?i.toString(16):"0"+i,n.push(i)}}),t.length>3){var i=parseFloat(t.slice(3).join("."));0==i?n.push("00"):i>=1?n.push("ff"):(i=parseInt(255*i),i=i>9?i.toString(16):"0"+i,n.push(i))}return"#"+n.join("")},getComputedStyle:function(){var e=window.getComputedStyle(this.$$),t=this.$$.getBoundingClientRect(),n=["Left","Right"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),i=["Top","Bottom"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),o=this.$.textarea;o.style.width=t.width-n[0]-n[1]+"px",o.style.height=t.height-i[0]-i[1]+"px",o.style.fontWeight=e.fontWeight,o.style.fontSize=e.fontSize||"16px",o.style.color=e.color,this.$.compute.style.fontSize=e.fontSize||"16px",this.$.compute.style.width=o.style.width,this.$.placeholder.style.width=o.style.width,this.$.placeholder.style.height=o.style.height,this.disabled?o.setAttribute("disabled",!0):o.removeAttribute("disabled"),this.$$.style.display=this.hidden?"none":""},getCurrentRows:function(e){var t=window.getComputedStyle(this.$.compute),n=1.2*(parseFloat(t.fontSize)||16);return this.$.compute.innerText=e,this.$.compute.appendChild(document.createElement("br")),{height:Math.max(this.$.compute.scrollHeight,n),heightRpx:this.__scale*this.$.compute.scrollHeight,lineHeight:n,lineCount:Math.ceil(this.$.compute.scrollHeight/n)}},onTextAreaInput:function(e){if(this.value=e.target.value,this.bindinput){var t={id:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft};WeixinJSBridge.publish("SPECIAL_PAGE_EVENT",{eventName:this.bindinput,ext:{setKeyboardValue:!1},data:{data:{type:"input",timestamp:Date.now(),detail:{value:e.target.value},target:t,currentTarget:t,touches:[]},eventName:this.bindinput}})}return!1},onTextAreaFocus:function(e){this.triggerEvent("focus",{value:this.value})},onTextAreaBlur:function(e){this.triggerEvent("blur",{value:this.value})},updateTextArea:function(){this.checkAutoFocus(),this.getComputedStyle(),this.maxlengthChanged(this.maxlength)},hiddenChanged:function(e,t){this.$$.style.display=e?"none":""},_getPlaceholderStyle:function(e){var t=["position:absolute"],n=["font-size","font-weight","color"];try{var i=e.split(";");for(var o in i){var r=i[o].split(":");n.indexOf(r[0].trim())>=0&&t.push(r.join(":"))}}catch(e){t=[]}return t.join(";")},defaultValueChange:function(e){return this.checkPlaceholderStyle(e),this.$.textarea.value=e,this.__attached&&this.checkRows(e),e},autoHeightChanged:function(e){if(e){var t=this.getCurrentRows(this.value),n=t.heighte&&(this.value=this.value.slice(0,e))}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};!function(){/wechatdevtools/.test(window.navigator.userAgent.toLowerCase())||window.exparser.registerElement({is:"wx-textarea",behaviors:["wx-base","wx-native","wx-data-component"],template:'
\n

\n
',properties:{value:{type:String,value:"",coerce:"defaultValueChange",public:!0},maxlength:{type:Number,value:140,public:!0},placeholder:{type:String,value:"",public:!0},disabled:{type:Boolean,value:!1,public:!0},hidden:{type:Boolean,value:!1,public:!0,observer:"hiddenChanged"},focus:{type:Boolean,value:!1,public:!0,observer:"focusChanged"},autoFocus:{type:Boolean,value:!1,public:!0},placeholderStyle:{type:String,value:"",public:!0},placeholderClass:{type:String,value:"textarea-placeholder",public:!0},autoHeight:{type:Boolean,value:!1,public:!0},confirm:{type:Boolean,value:!0,public:!0},bindinput:{type:String,value:"",public:!0},cursorSpacing:{type:Number,value:0,public:!0},fixed:{type:Boolean,value:!1,public:!0}},resetFormData:function(){this._keyboardShow&&(this.__formResetCallback=!0,wx.hideKeyboard()),this.value=""},getFormData:function(e){this._keyboardShow?this.__formCallback=e:"function"==typeof e&&e(this.value)},attached:function(){var e=this;this._isReady=!1,this.__scale=750/window.innerWidth,this.__reRenderCallback=this.reRenderCallback.bind(this),document.addEventListener("pageReRender",this.__reRenderCallback,!1),this.__onKeyboardShowId=exparser.addListenerToElement(document,"onKeyboardShow",this.onKeyboardShow.bind(this)),this.__onKeyboardCompleteId=exparser.addListenerToElement(document,"onKeyboardComplete",this.onKeyboardComplete.bind(this)),this.__onTextAreaHeightChangeId=exparser.addListenerToElement(document,"onTextAreaHeightChange",this.onTextAreaHeightChange.bind(this)),this.__onKeyboardConfirmId=exparser.addListenerToElement(document,"onKeyboardConfirm",this.onKeyboardConfirm.bind(this)),this.__routeDoneId=exparser.addListenerToElement(document,"routeDone",function(){e.checkAutoFocus()})},detached:function(){this.__detached=!0,document.removeEventListener("pageReRender",this.__reRenderCallback,!1),exparser.removeListenerFromElement(document,"onKeyboardShow",this.__onKeyboardShowId),exparser.removeListenerFromElement(document,"onKeyboardComplete",this.__onKeyboardCompleteId),exparser.removeListenerFromElement(document,"onTextAreaHeightChange",this.__onTextAreaHeightChangeId),exparser.removeListenerFromElement(document,"routeDone",this.__routeDoneId),exparser.removeListenerFromElement(document,"onKeyboardConfirm",this.__onKeyboardConfirmId),this.removeTextArea()},removeTextArea:function(){this.__detached&&this._inputId&&WeixinJSBridge.invoke("removeTextArea",{inputId:this._inputId},function(e){})},checkInsert:function(){this.__insert||(this.insertTextArea(),this.__insert=!0)},checkAutoFocus:function(){this.__autoFocused||window.__onAppRouteDone&&(this.__autoFocused=!0,this.couldFocus(this.autoFocus||this.focus))},couldFocus:function(e){this._isReady&&window.__onAppRouteDone&&!this.disabled&&e&&WeixinJSBridge.invoke("showKeyboard",{inputId:this._inputId},function(e){})},focusChanged:function(e){this.couldFocus(e)},onKeyboardConfirm:function(e){e.detail.inputId===this._inputId&&(this.value=e.detail.value,this.triggerEvent("confirm",{value:this.value}))},onKeyboardShow:function(e){e.detail.inputId===this._inputId&&(this._keyboardShow=!0,this.triggerEvent("focus",{value:this.value}))},onKeyboardComplete:function(e){e.detail.inputId===this._inputId&&(this.value=e.detail.value,this.__formResetCallback&&(this.value="",this.__formResetCallback=void 0),"function"==typeof this.__formCallback&&this.__formCallback(this.value),this.triggerEvent("blur",{value:this.value}),this.resetInputState())},onTextAreaHeightChange:function(e){e.detail.inputId===this._inputId&&(this.triggerEvent("linechange",{lineCount:e.detail.lineCount,height:e.detail.height,heightRpx:e.detail.height*this.__scale}),this.styleHeight=e.detail.height+this.invalidHeight,this.autoHeight&&(this.$$.style.height=this.styleHeight+"px",document.dispatchEvent(new CustomEvent("pageReRender",{}))))},getHexColor:function(e){if(!e)return"#000000";if(e.indexOf("#")>=0)return e;try{var t,n,i=function(){t=e.match(/\d+/g);var i=[];return t.map(function(e,t){if(t<3){var n=parseInt(e).toString(16);n=n.length>1?n:"0"+n,i.push(n)}}),t.length>3&&(n=parseFloat(t.slice(3).join(".")), -0==n?i.push("00"):n>=1?i.push("ff"):(n=parseInt(255*n).toString(16),n=n.length>1?n:"0"+n,i.push(n))),{v:"#"+i.join("")}}();if("object"===("undefined"==typeof i?"undefined":_typeof(i)))return i.v}catch(e){return"#000000"}},getComputedStyle:function(){var e=window.getComputedStyle(this.$$),t=this.$$.getBoundingClientRect(),n=["Left","Right"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),i=["Top","Bottom"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),o=parseInt(e.fontWeight);isNaN(o)?o=e.fontWeight:o<500?o="normal":o>=500&&(o="bold"),this.invalidHeight=i[0]+i[1],this.invalidWidth=n[0]+n[1];var r={width:t.width-this.invalidWidth,left:t.left+n[0]+window.scrollX,top:this.fixed?t.top+i[0]:t.top+i[0]+window.scrollY,fontWeight:o,fontSize:parseFloat(e.fontSize)||14,color:this.getHexColor(e.color),marginBottom:this.cursorSpacing||parseFloat(e.marginBottom)};return this.autoHeight||(r.height=t.height-this.invalidHeight),r},getPlaceholderStyle:function(){var e=this.$.placeholder,t=window.getComputedStyle(e),n=parseInt(t.fontWeight);return isNaN(n)?n=t.fontWeight:n<500?n="normal":n>=500&&(n="bold"),this.placeholderStyle&&this.placeholderStyle.split(";"),{fontSize:parseFloat(t.fontSize)||16,fontWeight:n,color:this.getHexColor(t.color)}},insertTextArea:function(){var e=this;this.args=this.getCurrrentArgs(),this.args.value=this.value,WeixinJSBridge.invoke("insertTextArea",this.args,function(t){if(/:ok/.test(t.errMsg)){if(e._ready(),e._inputId=t.inputId,e.__detached&&e.removeTextArea(),e.checkAutoFocus(),e._isiOS()&&(e.triggerEvent("linechange",{lineCount:t.lineCount,height:t.height,heightRpx:t.height*e.__scale}),e.styleHeight=t.height+e.invalidHeight,e.autoHeight&&(e.$$.style.height=e.styleHeight+"px",document.dispatchEvent(new CustomEvent("pageReRender",{}))),e._needUpdate)){var n=e.getCurrrentArgs();n.value=e.value,e.updateTextArea(n)}}else console.error(t.errMsg)})},diff:function e(t,n){var e={},i=!1;for(var o in n)"[object Object]"===Object.prototype.toString.call(n[o])?JSON.stringify(n[o])!=JSON.stringify(t[o])&&(e[o]=n[o],i=!0):t[o]!=n[o]&&(e[o]=n[o],i=!0);return i?e:void 0},reRenderCallback:function(){var e=this;window.requestAnimationFrame(function(){e.afterRerender()})},afterRerender:function(){if(!this.__detached){this.checkInsert();var e=this.getCurrrentArgs();this.updateTextArea(e)}},getCurrrentArgs:function(){return{style:this.getComputedStyle(),placeholderStyle:this.getPlaceholderStyle(),maxLength:this.maxlength,placeholder:this.placeholder,disabled:this.disabled,hidden:this.hidden,autoSize:this.autoHeight,confirm:this.confirm,data:this.formateEventTarget(),fixed:this.fixed}},updateTextArea:function(e){var t=this;if(!this._isReady)return void(this._needUpdate=!0);this.autoHeight&&this.styleHeight&&(this.$$.style.height=this.styleHeight+"px");var n=this.diff(this.args,e);n&&(n.inputId=this._inputId,WeixinJSBridge.invoke("updateTextArea",n,function(n){if(/:ok/.test(n.errMsg))for(var i in e)t.args[i]=e[i]}))},resetInputState:function(){this._keyboardShow=!1},hiddenChanged:function(e){this.$$.style.display=e?"none":""},_getPlaceholderStyle:function(e){return e+";display:none;"},_getPlaceholderClass:function(e){return"textarea-placeholder "+e},defaultValueChange:function(e,t){return this.maxlength>0&&e.length>this.maxlength&&(e=e.slice(0,this.maxlength)),this.value!=e&&(this.args&&(this.args.value=void 0),this.updateTextArea({value:e})),e},formateEventTarget:function(){var e={bindinput:this.bindinput,target:{id:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},setKeyboardValue:!1};return e.currentTarget=e.target,this.bindinput?JSON.stringify(e):""}})}(),window.exparser.registerElement({is:"wx-toast",template:'\n
\n
\n \n

\n
\n ',behaviors:["wx-base","wx-mask-behavior"],properties:{icon:{type:String,value:"success_no_circle",public:!0},hidden:{type:Boolean,value:!1,public:!0,observer:"hiddenChange"},duration:{type:Number,value:1500,public:!0,observer:"durationChange"}},durationChange:function(e,t){this.timer&&(clearTimeout(this.timer),this.hiddenChange(this.hidden))},hiddenChange:function(e){if(!e&&0!=this.duration){var t=this;this.timer=setTimeout(function(){t.triggerEvent("change",{value:t.hidden})},this.duration)}}});var _slicedToArray=function(){function e(e,t){var n=[],i=!0,o=!1,r=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){o=!0,r=e}finally{try{!i&&s.return&&s.return()}finally{if(o)throw r}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};"ios"!==wx.getPlatform()&&window.exparser.registerElement({is:"wx-video",behaviors:["wx-base","wx-player"],template:'\n
\n \n \n
\n
\n
\n
\n ',properties:{hidden:{type:Boolean,value:!1,public:!0,observer:"_hiddenChanged"},autoplay:{type:Boolean,value:!1,public:!0},danmuBtn:{type:Boolean,value:!1,public:!0,observer:"danmuBtnChanged"},enableDanmu:{type:Boolean,value:!1,observer:"enableDanmuChanged",public:!0},enableFullScreen:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!0,public:!0,observer:"controlsChanged"},danmuList:{type:Array,value:[],public:!0},objectFit:{type:String,value:"contain",public:!0,observer:"objectFitChanged"},duration:{type:Number,value:0,public:!0,observer:"durationChanged"},_videoId:{type:Number},_isLockTimeUpdateProgress:{type:Boolean,value:!1},_rate:{type:Number,value:0},_progressLeft:{type:Number,value:-22},_progressLength:{type:Number,value:0},_barType:{type:String,value:"full"},_danmuStatus:{type:String,value:""}},listeners:{"ball.touchstart":"onBallTouchStart"},_reset:function(){this._buttonType="play",this._currentTime="00:00",this._duration=this._formatTime(this.duration),this._progressLeft=-22,this._progressLength=0,this._barType=this.controls?"full":"part"},_hiddenChanged:function(e,t){this.$.player.pause(),this.$$.style.display=e?"none":""},posterChanged:function(e,t){this._isError||(this.$.player.poster=e)},srcChanged:function(e,t){if(!this._isError&&e)if("wechatdevtools"===wx.getPlatform()){this.$.player.src=e.replace("wxfile://","http://wxfile.open.weixin.qq.com/");var n=this;setTimeout(function(){n._reset()},0)}else{this.$.player.src=e;var n=this;setTimeout(function(){n._reset()},0)}},controlsChanged:function(e,t){this.$.controls.style.display=e?"flex":"none"},objectFitChanged:function(e,t){this.$.player.style.objectFit=e},durationChanged:function(e,t){console.log("durationChanged",e),e>0&&(this._duration=this._formatTime(Math.floor(e)))},danmuBtnChanged:function(e,t){this.$.danmuBtn.style.display=e?"":"none"},enableDanmuChanged:function(e,t){this._danmuStatus=e?"active":"",this.$.danmu.style.zIndex=e?"0":"-9999"},actionChanged:function(e,t){if("object"===("undefined"==typeof e?"undefined":_typeof(e))){var n=e.method,i=e.data;if("play"===n)this.$.player.play();else if("pause"===n)this.$.player.pause();else if("seek"===n)this.$.player.currentTime=i[0],this._resetDanmu();else if("sendDanmu"===n){var o=_slicedToArray(i,2),r=o[0],a=o[1],s=parseInt(this.$.player.currentTime);this.danmuObject[s]?this.danmuObject[s].push({text:r,color:a,time:s}):this.danmuObject[s]=[{text:r,color:a,time:s}]}}},onPlay:function(e){var t=this,n=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(n,[function(e){var n=3*(parseInt(getComputedStyle(e).left)+e.offsetWidth)/(e.offsetWidth+t.$$.offsetWidth);e.style.left="-"+e.offsetWidth+"px",e.style.transitionDuration=n+"s",e.style.webkitTransitionDuration=n+"s"}])},onPause:function(e){var t=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(t,[function(e){e.style.left=getComputedStyle(e).left}])},onEnded:function(e){},_computeRate:function(e){var t=this.$.progress.getBoundingClientRect().left,n=this.$.progress.offsetWidth,i=(e-t)/n;return i<0?i=0:i>1&&(i=1),i},_setProgress:function(e){this._progressLength=Math.floor(this.$.progress.offsetWidth*e),this._progressLeft=this._progressLength-22},_sendDanmu:function(e){if(this.playing&&!e.flag){e.flag=!0;var t=document.createElement("p");t.className+="wx-video-danmu-item",t.textContent=e.text,t.style.top=this._genDanmuPosition()+"%",t.style.color=e.color,this.$.danmu.appendChild(t),t.style.left="-"+t.offsetWidth+"px"}},_genDanmuPosition:function(){if(this.lastDanmuPosition){var e=100*Math.random();Math.abs(e-this.lastDanmuPosition)<10?this.lastDanmuPosition=(this.lastDanmuPosition+50)%100:this.lastDanmuPosition=e}else this.lastDanmuPosition=100*Math.random();return this.lastDanmuPosition},attached:function(){var e=this,t=this;WeixinJSBridge.publish("videoPlayerInsert",{domId:this.id,videoPlayerId:0}),this.$.default.style.display="",this.$.player.style.display="",this.$.player.autoplay=this.autoplay,this.$.player.style.objectFit=this.objectFit,console.log("attached",this.objectFit),this.danmuObject=this.danmuList.reduce(function(e,t){return"number"==typeof t.time&&t.time>=0&&"string"==typeof t.text&&t.text.length>0&&(e[t.time]?e[t.time].push({text:t.text,color:t.color||"#ffffff"}):e[t.time]=[{text:t.text,color:t.color||"#ffffff"}]),e},{}),this.$.button.onclick=function(e){e.stopPropagation(),t.$.player[t._buttonType]()},this.$.progress.onclick=function(e){e.stopPropagation();var n=t._computeRate(e.clientX);t.$.player.currentTime=t.$.player.duration*n,t._resetDanmu()},this.$.fullscreen.onclick=function(e){e.stopPropagation(),"android"===wx.getPlatform()?t.enableFullScreen=!0:t.enableFullScreen=!t.enableFullScreen,t.enableFullScreen&&t.$.player.webkitEnterFullscreen(),t.triggerEvent("togglefullscreen",{enable:t.enableFullScreen})},this.$.danmuBtn.onclick=function(e){e.stopPropagation(),t.enableDanmu=!t.enableDanmu,t.triggerEvent("toggledanmu",{enable:t.enableDanmu})},WeixinJSBridge.subscribe("video_"+this.id+"_actionChanged",function(t){e.action=t,e.actionChanged(t)})},onTimeUpdate:function(e){var t=this;e.stopPropagation();var n=this.$.player.currentTime/this.$.player.duration;this._isLockTimeUpdateProgress||this._setProgress(n);var i=this.danmuObject[parseInt(this.$.player.currentTime)];void 0!==i&&i.length>0&&i.forEach(function(e){t._sendDanmu(e)})},detached:function(){},onBallTouchStart:function(){var e=this;e._isLockTimeUpdateProgress=!0;var t=function(t){t.stopPropagation(),t.preventDefault(),e._rate=e._computeRate(t.touches[0].clientX),e._setProgress(e._rate)},n=function n(i){e.$.player.currentTime=e.$.player.duration*e._rate,document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n),e._isLockTimeUpdateProgress=!1,e._resetDanmu()};document.addEventListener("touchmove",t),document.addEventListener("touchend",n)},_resetDanmu:function(){var e=this;this.$.danmu.innerHTML="",Object.keys(this.danmuObject).forEach(function(t){e.danmuObject[t].forEach(function(e){e.flag=!1})})}});var _slicedToArray=function(){function e(e,t){var n=[],i=!0,o=!1,r=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){o=!0,r=e}finally{try{!i&&s.return&&s.return()}finally{if(o)throw r}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};"ios"===wx.getPlatform()&&window.exparser.registerElement({is:"wx-video",behaviors:["wx-base","wx-player","wx-native"],template:'\n
\n \n \n
\n
\n
\n
\n ',properties:{autoplay:{type:Boolean,value:!1,public:!0},bindplay:{type:String,value:"",public:!0},bindpause:{type:String,value:"",public:!0},bindended:{type:String,value:"",public:!0},bindtimeupdate:{type:String,value:"",public:!0},danmuBtn:{type:Boolean,value:!1,public:!0,observer:"danmuBtnChanged"},enableDanmu:{type:Boolean,value:!1,observer:"enableDanmuChanged",public:!0},enableFullScreen:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!0,public:!0,observer:"controlsChanged"},danmuList:{type:Array,value:[],public:!0},objectFit:{type:String,value:"contain",public:!0},duration:{type:Number,value:0,public:!0},_videoId:{type:Number},_isLockTimeUpdateProgress:{type:Boolean,value:!1},_rate:{type:Number,value:0},_progressLeft:{type:Number,value:-22},_progressLength:{type:Number,value:0},_barType:{type:String,value:"full"},_danmuStatus:{type:String,value:""}},listeners:{"ball.touchstart":"onBallTouchStart"},_reset:function(){this._buttonType="play",this._currentTime="00:00",this._duration="00:00",this._progressLeft=-22,this._progressLength=0,this._barType=this.controls?"full":"part"},_update:function(e){var t=this;e.videoPlayerId=this._videoId,e.hide=this.hidden;var n=this._getData();e.needEvent=Object.keys(n.handlers).length>0,e.objectFit=this.objectFit,e.showBasicControls=this.controls,e.showDanmuBtn=this.danmuBtn,e.enableDanmu=this.enableDanmu,this.duration>0&&(args.duration=duration),WeixinJSBridge.invoke("updateVideoPlayer",e,function(e){/ok/.test(e.errMsg)||t._publish("error",{errMsg:e.errMsg})})},_updatePosition:function(){this._isiOS()?this._update({position:this._box},"位置"):(this.$.player.width=this._box.width,this.$.player.height=this._box.height)},_hiddenChanged:function(e,t){this._isiOS()?(this.$$.style.display=e?"none":"",this._update({hide:e},e?"隐藏":"显示")):(this.$.player.pause(),this.$$.style.display=e?"none":"")},posterChanged:function(e,t){if(!this._isError)return this._isReady?void(this._isiOS()&&(/http:\/\//.test(e)||/https:\/\//.test(e))?this._update({poster:e},"封面"):this.$.player.poster=e):void this._deferred.push({callback:"posterChanged",args:[e,t]})},srcChanged:function(e,t){if(!this._isError&&e){if(!this._isReady)return void this._deferred.push({callback:"srcChanged",args:[e,t]});if(this._isiOS())/wxfile:\/\//.test(e)||/http:\/\//.test(e)||/https:\/\//.test(e)?this._update({filePath:e},"资源"):this._publish("error",{errMsg:"MEDIA_ERR_SRC_NOT_SUPPORTED"});else if(this._isDevTools()){this.$.player.src=e.replace("wxfile://","http://wxfile.open.weixin.qq.com/");var n=this;setTimeout(function(){n._reset()},0)}else{this.$.player.src=e;var n=this;setTimeout(function(){n._reset()},0)}}},controlsChanged:function(e,t){this._update({}),this.$.controls.style.display=e?"flex":"none"},danmuBtnChanged:function(e,t){this._update({}),this.$.danmuBtn.style.display=e?"":"none"},enableDanmuChanged:function(e,t){this._update({}),this._danmuStatus=e?"active":"",this.$.danmu.style.zIndex=e?"0":"-9999"},actionChanged:function(e,t){if(this._isiOS());else{if("object"!==("undefined"==typeof e?"undefined":_typeof(e)))return;var n=e.method,i=e.data;if("play"===n)this.$.player.play();else if("pause"===n)this.$.player.pause();else if("seek"===n)this.$.player.currentTime=i[0],this._resetDanmu();else if("sendDanmu"===n){var o=_slicedToArray(i,2),r=o[0],a=o[1],s=parseInt(this.$.player.currentTime);this.danmuObject[s]?this.danmuObject[s].push({text:r,color:a,time:s}):this.danmuObject[s]=[{text:r,color:a,time:s}]}}},onPlay:function(e){var t=this,n=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(n,[function(e){var n=3*(parseInt(getComputedStyle(e).left)+e.offsetWidth)/(e.offsetWidth+t.$$.offsetWidth);e.style.left="-"+e.offsetWidth+"px",e.style.transitionDuration=n+"s",e.style.webkitTransitionDuration=n+"s"}]),this.bindplay&&wx.publishPageEvent(this.bindplay,{type:"play"})},onPause:function(e){var t=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(t,[function(e){e.style.left=getComputedStyle(e).left}]),wx.publishPageEvent(this.bindpause,{type:"pause"})},onEnded:function(e){wx.publishPageEvent(this.bindended,{type:"ended"})},_computeRate:function(e){var t=this.$.progress.getBoundingClientRect().left,n=this.$.progress.offsetWidth,i=(e-t)/n;return i<0?i=0:i>1&&(i=1),i},_setProgress:function(e){this._progressLength=Math.floor(this.$.progress.offsetWidth*e),this._progressLeft=this._progressLength-22},_sendDanmu:function(e){if(this.playing&&!e.flag){e.flag=!0;var t=document.createElement("p");t.className+="wx-video-danmu-item",t.textContent=e.text,t.style.top=this._genDanmuPosition()+"%",t.style.color=e.color,this.$.danmu.appendChild(t),t.style.left="-"+t.offsetWidth+"px"}},_genDanmuPosition:function(){if(this.lastDanmuPosition){var e=100*Math.random();Math.abs(e-this.lastDanmuPosition)<10?this.lastDanmuPosition=(this.lastDanmuPosition+50)%100:this.lastDanmuPosition=e}else this.lastDanmuPosition=100*Math.random();return this.lastDanmuPosition},attached:function(){var e=this,t=this;if(this._isiOS()){this._box=this._getBox();var n=this._getData(),i={data:JSON.stringify(n),needEvent:Object.keys(n.handlers).length>0,position:this._box,hide:this.hidden,enableDanmu:this.enableDanmu,showDanmuBtn:this.danmuBtn,showBasicControls:this.controls,objectFit:this.objectFit,autoplay:this.autoplay,danmuList:this.danmuList};this.duration>0&&(i.duration=this.duration),WeixinJSBridge.invoke("insertVideoPlayer",i,function(e){/ok/.test(e.errMsg)?(t._videoId=e.videoPlayerId,t._ready(),t.createdTimestamp=Date.now(),document.addEventListener("pageReRender",t._pageReRenderCallback.bind(t)),WeixinJSBridge.publish("videoPlayerInsert",{domId:t.id,videoPlayerId:e.videoPlayerId})):(t._isError=!0,t.$$.style.display="none",t._publish("error",{errMsg:e.errMsg}))})}else WeixinJSBridge.publish("videoPlayerInsert",{domId:this.id,videoPlayerId:0}),this.$.default.style.display="",this.$.player.style.display="",this.$.player.autoplay=this.autoplay,this.danmuObject=this.danmuList.reduce(function(e,t){return"number"==typeof t.time&&t.time>=0&&"string"==typeof t.text&&t.text.length>0&&(e[t.time]?e[t.time].push({text:t.text,color:t.color||"#ffffff"}):e[t.time]=[{text:t.text,color:t.color||"#ffffff"}]),e},{}),this.$.button.onclick=function(e){e.stopPropagation(),t.$.player[t._buttonType]()},this.$.progress.onclick=function(e){e.stopPropagation();var n=t._computeRate(e.clientX);t.$.player.currentTime=t.$.player.duration*n,t._resetDanmu()},this.$.fullscreen.onclick=function(e){e.stopPropagation(),t.enableFullScreen=!t.enableFullScreen,t.enableFullScreen&&t.$.player.webkitEnterFullscreen(),t.triggerEvent("togglefullscreen",{enable:t.enableFullScreen})},this.$.danmuBtn.onclick=function(e){e.stopPropagation(),t.enableDanmu=!t.enableDanmu,t.triggerEvent("toggledanmu",{enable:t.enableDanmu})},this._ready(),document.addEventListener("pageReRender",this._pageReRenderCallback.bind(this));WeixinJSBridge.subscribe("video_"+this.id+"_actionChanged",function(t){e.action=t,e.actionChanged(t)})},onTimeUpdate:function(e){var t=this;e.stopPropagation();var n=this.$.player.currentTime/this.$.player.duration;this._isLockTimeUpdateProgress||this._setProgress(n);var i=this.danmuObject[parseInt(this.$.player.currentTime)];void 0!==i&&i.length>0&&i.forEach(function(e){t._sendDanmu(e)}),this.bindtimeupdate&&wx.publishPageEvent(this.bindtimeupdate,{type:"timeupdate",detail:{currentTime:this.$.player.currentTime,duration:this.$.player.duration}})},detached:function(){this._isiOS()&&wx.removeVideoPlayer({videoPlayerId:this._videoId,success:function(e){}})},onBallTouchStart:function(){var e=this;e._isLockTimeUpdateProgress=!0;var t=function(t){t.stopPropagation(),t.preventDefault(),e._rate=e._computeRate(t.touches[0].clientX),e._setProgress(e._rate)},n=function n(i){e.$.player.currentTime=e.$.player.duration*e._rate,document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n),e._isLockTimeUpdateProgress=!1,e._resetDanmu()};document.addEventListener("touchmove",t),document.addEventListener("touchend",n)},_resetDanmu:function(){var e=this;this.$.danmu.innerHTML="",Object.keys(this.danmuObject).forEach(function(t){e.danmuObject[t].forEach(function(e){e.flag=!1})})},_getData:function(){var e=this;return{handlers:["bindplay","bindpause","bindended","bindtimeupdate"].reduce(function(t,n){return n&&(t[n]=e[n]),t},{}),event:{target:{dataset:this.dataset,id:this.$$.id,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},currentTarget:{dataset:this.dataset,id:this.$$.id,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft}},createdTimestamp:this.createdTimestamp}}}),window.exparser.registerElement({is:"wx-view",template:"",behaviors:["wx-base","wx-hover"],properties:{inline:{type:Boolean,public:!0},hover:{type:Boolean,value:!1,public:!0}}}),function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n,i){Reporter.speedReport({key:e,timeMark:{startTime:t,endTime:n},force:"reRenderTime"!==e,data:i})}Object.defineProperty(t,"__esModule",{value:!0}),t.reset=void 0;var r=n(1),a=i(r),s=n(11),l=i(s),c=n(12),d=i(c),u=n(14),h=n(2),p=n(15),g=n(16);(0,g.init)(),window.__mergeData__=d.default.mergeData;var f="__DOMReady",v=function(e,t,n,i,o,r){return new a.default(e,t,n,i,o,r)},m=function(e){return new l.default(e)},b=function e(t){if((0,h.isString)(t)||Number(t)===t&&Number(t)%1===0)return m(String(t));var n=[];return t.children.forEach(function(t){n.push(e(t))}),v(t.tag,t.attr,t.n,t.wxKey,t.wxVkey,n)},A=function(e){var t=window.__generateFunc__(d.default.getAppData(),e);return t.tag="body",b(t)},_=void 0,w={},y={funcReady:!1,dataReady:!1,firstRender:!1},x=[];window.__DOMTree__=void 0;var C={webviewStartTime:Date.now(),funcReady:0};t.reset=function(){_=void 0,window.__DOMTree__=void 0,w={}};window.onerror=function(e,t,n,i,o){console.error(o.stack),Reporter.errorReport({key:"webviewScriptError",error:o}),"ios"===wx.getPlatform()&&webkit.messageHandlers.publishHandler.postMessage("wawebview sdk error:"+o.msg)};var k=function(e){e.ext&&("undefined"!=typeof e.ext.webviewId&&(window.__webviewId__=e.ext.webviewId),e.ext.enablePullUpRefresh&&(window.__enablePullUpRefresh__=!0)),_=A(e.data),window.__DOMTree__=_.render(),exparser.Element.replaceDocumentElement(window.__DOMTree__,document.body),setTimeout(function(){wx.publishPageEvent(f,{}),wx.initReady(),(0,p.enablePullUpRefresh)()},0)},E=function(e){var t=A(e.data),n=_.diff(t);n.apply(window.__DOMTree__),_=t};wx.onAppDataChange((0,u.catchError)(function(e){y.dataReady=!0,y.funcReady?S(e):x.push(e)})),document.addEventListener("generateFuncReady",(0,u.catchError)(function(e){if(C.funcReady=Date.now(),o("funcReady",C.webviewStartTime,C.funcReady),window.__pageFrameStartTime__&&window.__pageFrameEndTime__&&o("pageframe",window.__pageFrameStartTime__,window.__pageFrameEndTime__),window.__WAWebviewStartTime__&&window.__WAWebviewEndTime__&&o("WAWebview",window.__WAWebviewStartTime__,window.__WAWebviewEndTime__),window.__generateFunc__=e.detail.generateFunc,y.funcReady=!0,y.dataReady)for(var t in x){var n=x[t];S(n)}}));var S=function(e){var t=Date.now();y.firstRender?(E(e),o("reRenderTime",t,Date.now(),e.data)):(o("firstGetData",C.funcReady,Date.now(),e.data),k(e),o("firstRenderTime",t,Date.now(),e.data),e.options&&e.options.firstRender||(console.error("firstRender not the data from Page.data"),Reporter.errorReport({key:"webviewScriptError",error:new Error("firstRender not the data from Page.data"),extend:"firstRender not the data from Page.data"})),y.firstRender=!0),document.dispatchEvent(new CustomEvent("pageReRender",{}))}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n="0"&&a<="9"?i?(n*=.1,t+=(a-"0")*n):t=10*t+(a-"0"):"."===a?i=!0:"-"===a&&(o=!0)}return o&&(t=-t),u(t)},p=/%%\?[+-]?\d+(\.\d+)?rpx\?%%/g,g=/(:|\s)[+-]?\d+(\.\d+)?rpx/g;t.transformRpx=function(e,t){if(!a(e))return e;var n=void 0;return n=t?e.match(g):e.match(p),n&&n.forEach(function(n){var i=h(n),o=(t?n[0]:"")+i+"px";e=e.replace(n,o)}),e},t.uuid=function(){var e=function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)};return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()},t.getDataType=function(e){return Object.prototype.toString.call(e).split(" ")[1].split("]")[0]},t.getPageConfig=function(){var e={};if(window.__wxConfig&&window.__wxConfig.window)e=window.__wxConfig.window;else{var t={};window.__wxConfig&&window.__wxConfig.global&&window.__wxConfig.global.window&&(t=window.__wxConfig.global.window);var n={};window.__wxConfig&&window.__wxConfig.page&&window.__wxConfig.page[window.__route__]&&window.__wxConfig.page[window.__route__].window&&(n=window.__wxConfig.page[window.__route__].window),e=i({},t,n)}return e}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PATCH_TYPE={NONE:0,TEXT:1,VNODE:2,PROPS:3,REORDER:4,INSERT:5,REMOVE:6},t.WX_KEY="wxKey",t.ATTRIBUTE_NAME=["class","style"],t.RPX_RATE=20,t.BASE_DEVICE_WIDTH=750,t.INLINE_STYLE=["placeholderStyle","hoverStyle","style"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeProperty=t.applyProperties=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=n(2),r=n(5),a=n(3),s=/^data-/,l=function(e){return{id:e.id,offsetLeft:e.$$.offsetLeft,offsetTop:e.$$.offsetTop,dataset:e.dataset}},c=function(e){if(e){for(var t=[],n=0;n0&&!function(){var t=function(){if(nh.length?a.length:h.length,f=0;f>1,a=e[r];if(an))return!0;o=r-1}}return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getItemKey=t.makeKeyAndFreeIndexes=t.listDiff=void 0;var i=n(2),o=(t.listDiff=function(e,t){function n(e,t,n){return e.splice(t,1),{index:t,key:n}}var a=o(e),s=a.keyIndexes;a.freeIndexes;if((0,i.isEmptyObject)(s))return{children:t,moves:null};var l=o(t),c=l.keyIndexes,d=l.freeIndexes;if((0,i.isEmptyObject)(c))return{children:t,moves:null};for(var u=[],h=0,p=0,g=0;g=A&&u.push(w)}for(var y=u.slice(0),x=0,C=[],k=[],E=0;E"9")throw new Error("only number 0-9 could inside []: "+e);r=!0,o=10*o+l.charCodeAt(0)-48}else i+=l}if(i&&n.push(i),0===n.length)throw new Error("path can not be empty");return n},t.getObjectByPath=function(e,t,n){for(var o=void 0,r=void 0,a=e,s=!1,l=0;l=r()&&e)},l=!1,c=!0,d=t.triggerPullUpRefresh=function(){c&&!l&&(wx.publishPageEvent("onReachBottom",{}),c=!1,setTimeout(function(){c=!0},350))};t.enablePullUpRefresh=function(){window.__enablePullUpRefresh__&&!function(){window.onscroll=function(){s()&&d()};var e=0;window.__DOMTree__.addListener("touchstart",function(t){e=t.touches[0].pageY,l=!1}),window.__DOMTree__.addListener("touchmove",function(t){if(!l){var n=t.touches[0].pageY;n0?window.innerWidth:screen.width;document.documentElement.style.fontSize=e/i.RPX_RATE+"px"},1e3)});t.init=function(){window.__webview_engine_version__=.02,o()}}]),function(e){function t(){var t=document.createElement("style");if(document.getElementsByTagName("head")[0].insertBefore(t,document.getElementsByTagName("head")[0].firstChild),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=e);else try{t.innerHTML=e}catch(n){t.innerText=e}}window.document&&"complete"===window.document.readyState?t():window.onload=t}('html {\n -webkit-user-select: none;\n user-select: none;\n height: 100%;\n width: 100%;\n}\nbody {\n -webkit-user-select: none;\n user-select: none;\n width: 100%;\n overflow-x: hidden;\n}\nwx-action-sheet-item {\n background-color: #FFFFFF;\n position: relative;\n padding: 10px 0;\n text-align: center;\n font-size: 18px;\n display: block;\n}\nwx-action-sheet-item:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 1px;\n border-top: 1px solid #D9D9D9;\n color: #D9D9D9;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-action-sheet-item:active {\n background-color: #ECECEC;\n}\nwx-action-sheet .wx-action-sheet {\n position: fixed;\n left: 0;\n bottom: 0;\n -webkit-transform: translate(0, 100%);\n transform: translate(0, 100%);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n z-index: 5000;\n width: 100%;\n background-color: #FFFFFF;\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-action-sheet .wx-action-sheet-show {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n}\nwx-action-sheet .wx-action-sheet-menu {\n background-color: #FFFFFF;\n}\nwx-action-sheet .wx-action-sheet-mask {\n position: fixed;\n z-index: 1000;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: rgba(0, 0, 0, 0.6);\n}\nwx-audio {\n display: inline-block;\n line-height: 0;\n}\nwx-audio[hidden] {\n display: none;\n}\nwx-audio > .wx-audio-default {\n max-width: 100%;\n min-width: 302px;\n height: 65px;\n background: #fcfcfc;\n border: 1px solid #e0e0e0;\n border-radius: 2.5px;\n display: inline-block;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-left {\n width: 65px;\n height: 65px;\n float: left;\n background-color: #e6e6e6;\n background-size: 100% 100%;\n background-position: 50% 50%;\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button {\n width: 24px;\n height: 24px;\n margin: 20.5px;\n background-size: cover;\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button.play {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAB4dJREFUaAXNWg1MlVUYvpcfIRCJ+MnCaOBl8dOcOCEQZ9kmI5cQG5Yb6MifKbMaGVobOtlibTWHDpgpxBUwF07826iFsMkYJhg559JdGiQSkUzSBA0QkZ7n4/u+nXsvwf3jwru99/y/3/N+3znvec97rlbjABofH38GYtaAV4MjwDqwH9gHTBoE3wd3gA3gi+B6rVY7hHR2CKD9wFngs+BHYGuJYziWMqiscwgP8wLvBQ+AHUWURZle1mqhtXQAhLui7xZwPvgFsBENDg7+Drp069at2z09Pf03b978u6mpqZ+dVq1aFRAVFeW/aNGigNDQ0JfDwsISfXx8wowETBT+QpIPLsf0GpuomvrXIgUAPhhizoGXi+II+tq1az/o9fpLFRUVd8S26fJZWVkLN2/enBgTE/PW/PnzF5v0b0P5HSjxp0m9WXFaBQD+NYw6C1bf+vDwcF9DQ4N+/fr19ciPm0m1osLT01N76tSpNaD3PTw8FgpD+TXSoESrUGeWnVIBgM/EiDKwJ0eiPNrS0nJsw4YNNd3d3aOscxSFhIS4V1dXpyckJGRB5jxZ7jDSbVDiW7lslriY1cgVMvjjKErgR0dH/zl06NCuFStWfOdo8HwkZVL2wYMHP3ny5AlNLonPPi5jkSpMfyb9AhjAadMIlsBjrndmZ2fnnThxos9UwEyUMzIynj9y5EgB1gb3ExK/xBuTTSczBQCeC/ZnsDTnCR6f9YMbN25QiNMoOjras7W1tcjb2ztcfijXRKzpwjaaQgBPU0lrI4HntOGbdzZ4AuYzt2/fvm9sbOweyyBiOidjlCr4Y6QAyrTzkqlEx9GSkpJ9zpo2BGNKfHZRUdF+1D+W24iNGFVSpxAAcxekryK9/cuXLx/FoqpWe85iBlPpvbi4uB0yBE4lHabSvyyLX2AXyhJ42nmYytPsMBcI+80ZWKZeGQsxEqtEkgJ4+3Sm9sh1Gm5SM2EqFfnWpsRSV1dXIYzbI2NWv0AqGiXXl+4Bd1ihs0XZu3fvHhgYGNBXVVUlWDTAyk7p6ekNIyMj7fIwYiVmIwWkNvo2trgHAQEBy+CghW7cuPGLvr6+L3fu3PmSJNBBP8R09erVHwVxEwrgU/AwkqQ00DFT8lamqkEICgqKKy4u1sMU7li6dKnVLvL/Pbe0tLRFaEsidi1+UlB5ng3ctBYsWLBV6GRxFnJ4yjIj7CX36uvrS1NTU+uwEM3ara3Al/gaTl+EPC6Vi/hNRUhHR8dPSt5Rqbu7+3Nr1679rL+//3BBQYHyYJvFd3V1iTNkNRV4RZF2G6TkHZ36+vpG5uXlHcah59Pk5GSbj5AY3y1gi6ACisOk4UlKaJyJrBYnsuTa2trjzc3N7/r7+9N1sYo6OzsfCAN0VEB9GzwGCo0zlnV1dfVOTEzMhn3Xl5eXx1rzIBOMflRAsv8UopxhrRFoT18vL68QHCu/am9vz7FUjglGHyow6xQcHBxjKwgqwKCTRIweKHlnpZhGDfC7LP4CJhgH3QCUxzd/AmboA0kP8zNNcDt+w8ZUvHv37l+tedaSJUueFfrfpwJ0oSVLxLiN0DgjWWxsDxobG79JSUn53haXRafT+QrAOjiFDEoFg05K3tEpduoxg8FweuXKlRlJSUm1toAnpvDwcB55FTJQAdUFYMRMaXFkil34l9zc3K2RkZElV65ceWSPbCz414XxF6kAXWfpdMNwHyNmQge7skNDQ3dOnjy5PzAwMLewsLDLLmEYDJMb5ObmFiXLIeZ6FxzNGOK+IFeyk91f4enTpyNtbW3HIiIiNsHCNCmy7U1zcnKWCTIuEDu/AOn8RKLRMFbJcJ9StjRlBIN94Y40ZmZmboqNja3iScrS8dP1IyaEWt4W+kmYaYVILHA/8GGglbHKdevWqV+FHaYjOGofw811hcfZOV1fW9pxzE1wcXGJlscSq6SA+qZhJfai8nN2wNHtDhb0pt7eXoe9Qcq1lRg3hRvNkLtyytuHfAHlKVOI+UIwQxYaRolramrSmZ8LhLefJIAnRmKVSFUAHbiq8yeqNRpGiWE5XlXKs5WWlZUthu3/SHh+voxVqlKnEEuYRvTPee5czjKjxDCr2bMVnYNF9IO7fRRQAokHxIuPeCig3t4YKcAeUCIYiRrcffjwYUd8fPyHzo6PwuJ4XL9+/QAWrjILOHWmDu5SAWjHa500sBSNZoibUWKGvNnuDOKbNwFPLLytITYjUteAWIuOvNbZptQxxF1ZWXnYGWuCc57TRnjzhMFbGmIyI7MpJPbAdMpEuQzsKdc/hi+jT0tLO+NoE0tTSWsjL9h58vP45qe8YppSAQqBEmaXfAy0MlbJcJ+tXqUMUMMdlpsUIuE78JYVO89mznn7LvmUh8gL+xzKknVS6hmrZLiPETNrr1npmNG3oXsg7LCKaFobx1yzKhKhBE3sFnA+mCFuI4IyBuyWzYjb/MHQh+lFN09SPIxgirxIlxhepeIWiHL41vPBFl90i4MtykOROfVXA4tAT9YJisyJP3tMu4gnA29aB2UY4V4DXg1m/FMH9gMrMSd6jwwe8PxtAPMU6JC/2/wHuyI2cMsNBRIAAAAASUVORK5CYII=\');\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button.pause {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABatJREFUaAXVWl1IpFUYnllZGUf3wlz6MXER1ES7s83VUDJw6KpdaSTDwMnYFSK6KNirooHullKQCNzQRjZ/wom1u9ALQ0mT1ktFdEBWXLdibaH1jwmx5zme83W+z2Hm+7bZmc8X3jl/73vO837n/z3j9aSBjo6O8lBNC7gZXAUuBxeCz4FJj8APwTHwCngaPOX1evcRZocAuhAcAt8G74KdEnWoyzpobGYIjfnBn4D/BqeLWBfr9Du1wmtXAZXnQPY9cBj8HNhEe3t7sbW1tfn19fW7m5ubD5aXl7dnZmYeUKipqel8dXV1UUlJyfmysrILFRUV9X6/n8PMSveREQYPYHgdWgsTpW0ZAPDPQ3kC/JJeCUEvLi7+NDg4+EskEvldL0sVD4VCz3Z1db1SW1v7egJj7kD/Coy4l6qelAYAfB0quQ02vno8Hr8/OTkZaWtrmzo4ODhK1Uiycp/P5x0fH28JBAKh3Nxcow3osDdaYcRCMv2kBgD8O1D+BuyTlcTn5+cj7e3t0Y2NjX+SVey0rLS09OzY2Fiwvr4+BN1cqX+A8CqM+E6mTwRnTuTIDAn+FpIC/OHh4V+9vb0fNzQ0jKYbPJtknaybbbAtCYNt35JYZJY5SNgDctj8DFEBfnd3d627u/vT4eHhP8zqTybV0dHxTH9//+f5+fkVsgX2xKuJhtMJAwCeE/Y3sBiPBF9XV/fh0tISK8kY1dTU+BYWFvo0IzgnLlontmkIATyXSq42Ajy7kl8+0+D5ldgm29aGEzFNSIwUEWQyADlc59VSGe/r6/ssU8PmGI75l20TA3LjsoTYiNEgYwjBMu6CPKuIr4/Vph+TasyQzGJkbm7ubaxO1yQEDqVyDKU9pvUe+AhpAZ7rPJbKHyjgBuKyTUwSCzESqyBhAL4+D1PXZZ6Hm9STWCpV/U5DYiEmTe+6xOwRQwiJEAq/pQCPB0VFRdf+7w7LutJJ3LG3t7dvaseOdzGMImoIXVaN8WzjNvDERkzEpnAiFJjP4OvzMhJQBTyYqbjdEDov7+/vf4+6pu0wZQcGBi7arV/JWbAFiN2Lnzcg8COFuGkVFBSo2a70UoYEhC5+OqWgJoAv+mdeXt5bWpat6M7Ozk1tc7vMIfSa0lxdXf1VxZ2ETsGz7sfRoV4sFtMxNtOAF1hAugs6jrn3lxcmDV0VDTBuRrxJaYWujFowltMA40LNa6ArUWugLBgLaYByfXjUHVaTd13UgvEcDTjVRAPodBJE74GKuzW0YHxEA+gxE0TXh4q7NbRgfEgDeIQWRL+Nirs1tGCM0YAVBZZOJxV3a2jBuEIDphVYesxU3EnIY4ETeco+jg71LBinacAUWNxueFSlx4yCTmh0dPRLJ4AoOzIy8oWTNihLbNpxmpin1H2AnrcrFJqdnf0KM901tzFiUoQ94M3GxsYPZHoC94FW9gBJnEYZoa8SBy1hGNNuIWIiNg2PwKwbIPYDdhF9lZqgK6LEpA0fYv3PAHQF94IbCikdrcXFxWdVOtsh/abEpOG4ITGbvBI9EBA3f3qJo9FoUFPIapROX81zTYzEKkgNIQ8s4qwOH2d7PPQS9/T0vKjS2QqJQXqsFYSwxCrSpsmK6yVdi7zx0APmoVuvs7Pz/Wx55+jkHRoa+jonJ+cp4gHdAV+CAcbrjckASsCI0+vcpQGw7h6CVrDwRvMCTS8xvwbLM0Fsy+KZJha+1hCbiYw5oOdCkM86V1UejWBXZmJOsA22pXkeCIOvNAmfmk4MIQWaIYZTwiemYDAY3dracsUTU1IDpBGn95FP9Yac2KfzmVUzgkssHxfCYOGGR2gQvXp0jNG3lOyh+wKosrLykmWMq3q4SYXBth+6laLtEL3hqr8a2AZuFYQhrvizR8pJbAWeKA1j6OFuATeDq8D09hWClc+Jp0ceGHn/5hWWt8C0/N3mX15C4bDnCIuAAAAAAElFTkSuQmCC\');\n}\nwx-audio > .wx-audio-default > .wx-audio-right {\n box-sizing: border-box;\n height: 65px;\n margin-left: 65px;\n padding: 11px 16.5px 13.5px 15px;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info {\n margin-right: 70px;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info > .wx-audio-name {\n height: 22.5px;\n line-height: 22.5px;\n margin-bottom: 3.5px;\n font-size: 14px;\n color: #353535;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info > .wx-audio-author {\n height: 14.5px;\n line-height: 14.5px;\n font-size: 12px;\n color: #888888;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-time {\n margin-top: 3.5px;\n height: 16.5px;\n font-size: 12px;\n color: #888888;\n float: right;\n}\nwx-button {\n position: relative;\n display: block;\n margin-left: auto;\n margin-right: auto;\n padding-left: 14px;\n padding-right: 14px;\n box-sizing: border-box;\n font-size: 18px;\n text-align: center;\n text-decoration: none;\n line-height: 2.55555556;\n border-radius: 5px;\n -webkit-tap-highlight-color: transparent;\n overflow: hidden;\n color: #000000;\n background-color: #F8F8F8;\n}\nwx-button[hidden] {\n display: none !important;\n}\nwx-button:after {\n content: " ";\n width: 200%;\n height: 200%;\n position: absolute;\n top: 0;\n left: 0;\n border: 1px solid rgba(0, 0, 0, 0.2);\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n box-sizing: border-box;\n border-radius: 10px;\n}\nwx-button[type=default] {\n color: #000000;\n background-color: #F8F8F8;\n}\nwx-button[type=primary] {\n color: #FFFFFF;\n background-color: #1AAD19;\n}\nwx-button[type=warn] {\n color: #FFFFFF;\n background-color: #E64340;\n}\nwx-button[type=warn]:not([disabled]):visited {\n color: #FFFFFF;\n}\nwx-button[type=warn]:not([disabled]):active {\n color: rgba(255, 255, 255, 0.6);\n background-color: #CE3C39;\n}\nwx-button[disabled] {\n color: rgba(255, 255, 255, 0.6);\n}\nwx-button[disabled][type=default],\nwx-button[disabled]:not([type]) {\n color: rgba(0, 0, 0, 0.3);\n background-color: #F7F7F7;\n}\nwx-button[disabled][type=primary] {\n background-color: #9ED99D;\n}\nwx-button[disabled][type=warn] {\n background-color: #EC8B89;\n}\nwx-button[type=primary][plain] {\n color: #1aad19;\n border: 1px solid #1aad19;\n background-color: transparent;\n}\nwx-button[type=primary][plain]:not([disabled]):active {\n color: rgba(26, 173, 25, 0.6);\n border-color: rgba(26, 173, 25, 0.6);\n background-color: transparent;\n}\nwx-button[type=primary][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=primary][plain]:after {\n border-width: 0;\n}\nwx-button[type=default][plain] {\n color: #353535;\n border: 1px solid #353535;\n background-color: transparent;\n}\nwx-button[type=default][plain]:not([disabled]):active {\n color: rgba(53, 53, 53, 0.6);\n border-color: rgba(53, 53, 53, 0.6);\n background-color: transparent;\n}\nwx-button[type=default][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=default][plain]:after {\n border-width: 0;\n}\nwx-button[plain] {\n color: #353535;\n border: 1px solid #353535;\n background-color: transparent;\n}\nwx-button[plain]:not([disabled]):active {\n color: rgba(53, 53, 53, 0.6);\n border-color: rgba(53, 53, 53, 0.6);\n background-color: transparent;\n}\nwx-button[plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[plain]:after {\n border-width: 0;\n}\nwx-button[type=warn][plain] {\n color: #e64340;\n border: 1px solid #e64340;\n background-color: transparent;\n}\nwx-button[type=warn][plain]:not([disabled]):active {\n color: rgba(230, 67, 64, 0.6);\n border-color: rgba(230, 67, 64, 0.6);\n background-color: transparent;\n}\nwx-button[type=warn][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=warn][plain]:after {\n border-width: 0;\n}\nwx-button[size=mini] {\n display: inline-block;\n line-height: 2.3;\n font-size: 13px;\n padding: 0 1.34em;\n}\nwx-button[loading]:before {\n content: " ";\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n -webkit-animation: wx-button-loading-animate 1s steps(12, end) infinite;\n animation: wx-button-loading-animate 1s steps(12, end) infinite;\n background: transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;\n background-size: 100%;\n}\nwx-button[loading][type=primary] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #179B16;\n}\nwx-button[loading][type=primary][plain] {\n color: #1aad19;\n background-color: transparent;\n}\nwx-button[loading][type=default] {\n color: rgba(0, 0, 0, 0.6);\n background-color: #DEDEDE;\n}\nwx-button[loading][type=default][plain] {\n color: #353535;\n background-color: transparent;\n}\nwx-button[loading][type=warn] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #CE3C39;\n}\nwx-button[loading][type=warn][plain] {\n color: #e64340;\n background-color: transparent;\n}\n@-webkit-keyframes wx-button-loading-animate {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n@keyframes wx-button-loading-animate {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n.button-hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.button-hover[type=primary] {\n background-color: #179B16;\n}\n.button-hover[type=default] {\n background-color: #DEDEDE;\n}\nwx-canvas {\n width: 300px;\n height: 150px;\n display: block;\n}\nwx-checkbox {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-checkbox[hidden] {\n display: none;\n}\nwx-checkbox .wx-checkbox-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-checkbox .wx-checkbox-input {\n margin-right: 5px;\n -webkit-appearance: none;\n appearance: none;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #FFFFFF;\n border-radius: 3px;\n width: 22px;\n height: 22px;\n position: relative;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-checked {\n color: #09BB07;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n font-size: 22px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-disabled {\n background-color: #E1E1E1;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-disabled:before {\n color: #ADADAD;\n}\nwx-checkbox-group {\n display: block;\n}\nwx-checkbox-group[hidden] {\n display: none;\n}\nwx-icon {\n display: inline-block;\n font-size: 0;\n}\nwx-icon[hidden] {\n display: none;\n}\nwx-icon i {\n font: normal normal normal 14px/1 "weui";\n}\n@font-face {\n font-weight: normal;\n font-style: normal;\n font-family: "weui";\n src: url(\'data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx1AAABfAAAAFZjbWFw64JcfgAAAhQAAAI0Z2x5ZvCBJt8AAARsAAAHLGhlYWQIuM5WAAAA4AAAADZoaGVhCC0D+AAAALwAAAAkaG10eDqYAAAAAAHUAAAAQGxvY2EO3AzsAAAESAAAACJtYXhwAR4APgAAARgAAAAgbmFtZeNcHtgAAAuYAAAB5nBvc3RP98ExAAANgAAAANYAAQAAA+gAAABaA+gAAP//A+kAAQAAAAAAAAAAAAAAAAAAABAAAQAAAAEAAKZXmK1fDzz1AAsD6AAAAADS2MTEAAAAANLYxMQAAAAAA+kD6QAAAAgAAgAAAAAAAAABAAAAEAAyAAQAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOqAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqDwPoAAAAWgPpAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAAAAAUAAAADAAAALAAAAAQAAAFwAAEAAAAAAGoAAwABAAAALAADAAoAAAFwAAQAPgAAAAQABAABAADqD///AADqAf//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAMQAAAAAAAAADwAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAAAAAALgBmAKIA3gEaAV4BtgHkAgoCRgKIAtIDFANOA5YAAAACAAAAAAOvA60ACwAXAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEB9bz5BQX5vLv5BQX5u6zjBQXjrKvjBQXjA60F+by7+gQE+ru8+fy0BOSrq+QEBOSrq+QAAAIAAAAAA7MDswALACEAAAEOAQceARc+ATcuAQMHBiIvASY2OwERNDY7ATIWFREzMhYB7rn7BQX7ucL+BQX+JHYPJg92DgwYXQsHJggKXRgMA7MF/sK5+wUF+7nC/v31mhISmhIaARcICwsI/ukaAAADAAAAAAOtA6sACwAZACIAAAEOAQceARc+ATcuAQMUBisBIiY1ETY3MxYXJy4BNDYyFhQGAfC49gUF9ri++gUF+poKBxwHCgEILAgBHxMZGSYZGQOrBfq+uPYFBfa4vvr9dQcKCgcBGggBAQg5ARklGRklGQAAAAACAAAAAAOSA8IADQAfAAABDgEHERYEFzYkNxEuARMBBi8BJj8BNh8BFjclNh8BFgH0gchUCQEDkZEBAwlUyHr+vwQDlAMCFQMDegMEAScEAxMDA8IePRz+w9TwJCTw1AE9HD3+3f7DAgOZBAMcBANdAgL2AwMTBAADAAAAAAOCA7AADQAZACIAAAEOAQcRHgEXPgE3ES4BBzMWFQcGByMmLwE0EyImNDYyFhQGAfV7wVEJ+YuL+QlRwZIuCQoBBCIEAQogDhISHBISA7AdOxr+z8vnIyPnywExGjv3AQjYBAEBBNgI/rETHBISHBMAAAACAAAAAAO9A70AFwAjAAABLgE/AT4BHwEWMjclNhYXJxYUBwEGJiclJgAnBgAHFgAXNgABIAUCBQMFEAdiBxIGARMHEQYCBgb+0AYQBgIcBf79x77/AAUFAQC+xwEDAccGEQcEBwIFTAQF5QYBBgIGEAb+1QYBBqzHAQMFBf79x77/AAUFAQAABAAAAAADrwOtAAsAFwAtADEAAAEOAQceARc+ATcuAQMuASc+ATceARcOARMFDgEvASYGDwEGFh8BFjI3AT4BJiIXFjEXAfW8+QUF+by7+QUF+bus4wUF46yr4wUF4yv+9gcRBmAGDwUDBQEGfQUQBgElBQELDxQBAQOtBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAiLdBQEFSQUCBgQHEQaABgUBIQUPCwQBAQAAAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUIGQzLDSALAh0MHgsNCgr9uQscCwGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA7gDuAALABEAAAEGAgceARc2JDcmABMhETMRMwHuvP0FBf28xQEABQX/ADr+2i35A7gF/wDFvP0FBf28xQEA/d4BTv7fAAAEAAAAAAOvA60AAwAPABsAIQAAARYxFwMOAQceARc+ATcuAQMuASc+ATceARcOAQMjFTM1IwLlAQHyvPkFBfm8u/kFBfm7rOMFBeOsq+MFBePZJP3ZAoMBAQEsBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAi39JAADAAAAAAPDA8MACwAbACQAAAEGAAcWABc2ADcmAAczMhYVAw4BKwEiJicDNDYTIiY0NjIWFAYB7sD+/AUFAQTAyQEHBQX++d42CAoOAQUEKgQFAQ4KIxMaGiYaGgPDBf75ycD+/AUFAQTAyQEH5woI/tMEBgYEASwIC/4oGicZGScaAAAEAAAAAAPAA8AACAASAB4AKgAAAT4BNCYiBhQWFyMVMxEjFTM1IwMGAAcWBBc+ATcmAgMuASc+ATceARcOAQH0GCEhMCEhUY85Ock6K83++AQEAQjNuf8FBf/Hq+MEBOOrq+MEBOMCoAEgMSAgMSA6Hf7EHBwCsQT++M25/wUF/7nNAQj8pwTjq6vjBATjq6vjAAAAAwAAAAADpwOnAAsAFwAjAAABBycHFwcXNxc3JzcDDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgECjpqaHJqaHJqaHJqatrn1BQX1ubn1BQX1uajfBATfqKjfBATfAqqamhyamhyamhyamgEZBfW5ufUFBfW5ufX8xwTfqKjfBATfqKjfAAAAAwAAAAAD6QPpABEAHQAeAAABDgEjLgEnPgE3HgEXFAYHAQcBPgE3LgEnDgEHHgEXAo41gEmq4gQE4qqq4gQvKwEjOf3giLUDA7WIiLUDBLSIASMrLwTiqqriBATiqkmANP7dOQEZA7WIiLUDA7WIiLUDAAACAAAAAAPoA+gACwAnAAABBgAHFgAXNgA3JgADFg4BIi8BBwYuATQ/AScmPgEyHwE3Nh4BFA8BAfTU/uUFBQEb1NQBGwUF/uUDCgEUGwqiqAobEwqoogoBFBsKoqgKGxMKqAPoBf7l1NT+5QUFARvU1AEb/WgKGxMKqKIKARQbCqKoChsTCqiiCgEUGwqiAAAAABAAxgABAAAAAAABAAQAAAABAAAAAAACAAcABAABAAAAAAADAAQACwABAAAAAAAEAAQADwABAAAAAAAFAAsAEwABAAAAAAAGAAQAHgABAAAAAAAKACsAIgABAAAAAAALABMATQADAAEECQABAAgAYAADAAEECQACAA4AaAADAAEECQADAAgAdgADAAEECQAEAAgAfgADAAEECQAFABYAhgADAAEECQAGAAgAnAADAAEECQAKAFYApAADAAEECQALACYA+ndldWlSZWd1bGFyd2V1aXdldWlWZXJzaW9uIDEuMHdldWlHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQB3AGUAdQBpAFIAZQBnAHUAbABhAHIAdwBlAHUAaQB3AGUAdQBpAFYAZQByAHMAaQBvAG4AIAAxAC4AMAB3AGUAdQBpAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzc19jaXJjbGURc3VjY2Vzc19ub19jaXJjbGUHd2FpdGluZw53YWl0aW5nX2NpcmNsZQR3YXJuC2luZm9fY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xvc2UAAAAA\') format(\'truetype\');\n}\n[class^="wx-icon-"]:before,\n[class*=" wx-icon-"]:before {\n margin: 0;\n}\n.wx-icon-success {\n color: #09BB07;\n}\n.wx-icon-success:before {\n content: "\\EA06";\n}\n.wx-icon-info {\n color: #10AEFF;\n}\n.wx-icon-info:before {\n content: "\\EA03";\n}\n.wx-icon-warn {\n color: #F76260;\n}\n.wx-icon-warn:before {\n content: "\\EA0B";\n}\n.wx-icon-waiting {\n color: #10AEFF;\n}\n.wx-icon-waiting:before {\n content: "\\EA09";\n}\n.wx-icon-safe_success {\n color: #09BB07;\n}\n.wx-icon-safe_success:before {\n content: "\\EA04";\n}\n.wx-icon-safe_warn {\n color: #FFBE00;\n}\n.wx-icon-safe_warn:before {\n content: "\\EA05";\n}\n.wx-icon-success_circle {\n color: #09BB07;\n}\n.wx-icon-success_circle:before {\n content: "\\EA07";\n}\n.wx-icon-success_no_circle {\n color: #09BB07;\n}\n.wx-icon-success_no_circle:before {\n content: "\\EA08";\n}\n.wx-icon-waiting_circle {\n color: #10AEFF;\n}\n.wx-icon-waiting_circle:before {\n content: "\\EA0A";\n}\n.wx-icon-circle {\n color: #C9C9C9;\n}\n.wx-icon-circle:before {\n content: "\\EA01";\n}\n.wx-icon-download {\n color: #09BB07;\n}\n.wx-icon-download:before {\n content: "\\EA02";\n}\n.wx-icon-info_circle {\n color: #09BB07;\n}\n.wx-icon-info_circle:before {\n content: "\\EA0C";\n}\n.wx-icon-cancel {\n color: #F43530;\n}\n.wx-icon-cancel:before {\n content: "\\EA0D";\n}\n.wx-icon-search {\n color: #B2B2B2;\n}\n.wx-icon-search:before {\n content: "\\EA0E";\n}\n.wx-icon-clear {\n color: #B2B2B2;\n}\n.wx-icon-clear:before {\n content: "\\EA0F";\n}\n[class^="wx-icon-"]:before,\n[class*=" wx-icon-"]:before {\n box-sizing: border-box;\n}\nwx-image {\n width: 320px;\n height: 240px;\n display: inline-block;\n overflow: hidden;\n}\nwx-image[hidden] {\n display: none;\n}\nwx-image > div {\n width: 100%;\n height: 100%;\n}\nwx-image > img {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n display: block;\n}\n.input-placeholder {\n color: gray;\n}\nwx-input {\n display: block;\n height: 1.4rem;\n text-overflow: clip;\n overflow: hidden;\n white-space: nowrap;\n font-family: UICTFontTextStyleBody;\n min-height: 1.4rem;\n}\nwx-input input {\n position: relative;\n min-height: 1.4rem;\n border: none;\n height: inherit;\n width: 100%;\n font-size: inherit;\n font-weight: inherit;\n font-family: UICTFontTextStyleBody;\n color: inherit;\n background: transparent;\n display: inherit;\n padding: 0;\n margin: 0;\n outline: none;\n vertical-align: middle;\n text-align: inherit;\n overflow: inherit;\n white-space: inherit;\n text-overflow: inherit;\n -webkit-tap-highlight-color: transparent;\n z-index: 100;\n}\nwx-input[disabled] div {\n color: grey;\n}\nwx-input[hidden] {\n display: none;\n}\nwx-input div {\n position: relative;\n min-height: 1.4rem;\n text-overflow: inherit;\n border: none;\n height: inherit;\n width: inherit;\n font-size: inherit;\n font-weight: inherit;\n font-family: UICTFontTextStyleBody;\n color: inherit;\n background: inherit;\n padding: 0;\n margin: 0;\n outline: none;\n text-align: inherit;\n -webkit-tap-highlight-color: transparent;\n}\nwx-input div[type=password] div {\n color: black;\n}\nwx-input div div {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n line-height: 100%;\n height: inherit;\n min-height: 1.4rem;\n white-space: nowrap;\n text-align: inherit;\n overflow: hidden;\n vertical-align: middle;\n z-index: 1;\n}\n.wx-loading {\n position: fixed;\n z-index: 2000000000;\n width: 7.6em;\n min-height: 7.6em;\n top: 180px;\n left: 50%;\n margin-left: -3.8em;\n background: rgba(40, 40, 40, 0.75);\n text-align: center;\n border-radius: 5px;\n color: #FFFFFF;\n font-size: 16px;\n line-height: normal;\n}\n.wx-loading-icon {\n margin: 30px 0 10px;\n width: 38px;\n height: 38px;\n vertical-align: baseline;\n display: inline-block;\n -webkit-animation: weuiLoading 1s steps(12, end) infinite;\n animation: weuiLoading 1s steps(12, end) infinite;\n background: transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;\n background-size: 100%;\n}\n.wx-loading-content {\n margin: 0 0 15px;\n}\n.wx-loading-mask {\n position: fixed;\n z-index: 1000;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\n@-webkit-keyframes weuiLoading {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n@keyframes weuiLoading {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n }\n}\nwx-map {\n position: relative;\n width: 300px;\n height: 150px;\n display: block;\n}\n.wx-mask {\n position: fixed;\n z-index: inherit;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: inherit;\n}\n.wx-mask[show=false] {\n display: none;\n}\n.wx-mask-transparent {\n background-color: rgba(0, 0, 0, 0);\n}\nwx-mask {\n z-index: 1000;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.6);\n}\nwx-modal .wx-modal-mask {\n z-index: inherit;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: inherit;\n z-index: 1000;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.6);\n -webkit-animation: fadeIn ease .3s forwards;\n animation: fadeIn ease .3s forwards;\n}\nwx-modal .wx-modal-dialog {\n position: fixed;\n z-index: 5000;\n width: 85%;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n background-color: #FAFAFC;\n text-align: center;\n border-radius: 3px;\n overflow: hidden;\n}\nwx-modal .wx-modal-dialog-hd {\n padding: 1.2em 20px .5em;\n}\nwx-modal .wx-modal-dialog-hd strong {\n font-weight: normal;\n font-size: 17px;\n}\nwx-modal .wx-modal-dialog-bd {\n text-align: left;\n padding: 0 20px;\n font-size: 15px;\n color: #888;\n word-wrap: break-word;\n word-break: break-all;\n}\nwx-modal .wx-modal-dialog-ft {\n position: relative;\n line-height: 42px;\n margin-top: 20px;\n font-size: 17px;\n display: -webkit-flex;\n display: flex;\n}\nwx-modal .wx-modal-dialog-ft:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 1px;\n border-top: 1px solid #D5D5D6;\n color: #D5D5D6;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-modal .wx-modal-dialog-ft a {\n position: relative;\n display: block;\n -webkit-flex: 1;\n flex: 1;\n text-decoration: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nwx-modal .wx-modal-dialog-ft a[hidden] {\n display: none;\n}\nwx-modal .wx-modal-dialog-ft a:active {\n background-color: #eee;\n}\nwx-modal .wx-modal-btn-primary {\n color: #3CC51F;\n}\nwx-modal .wx-modal-btn-default {\n color: #000000;\n}\nwx-modal .wx-modal-btn-default:before {\n content: " ";\n position: absolute;\n right: 0;\n top: 0;\n width: 1px;\n height: 100%;\n border-right: 1px solid #D5D5D6;\n color: #D5D5D6;\n -webkit-transform-origin: 100% 0;\n transform-origin: 100% 0;\n -webkit-transform: scaleX(0.5);\n transform: scaleX(0.5);\n}\n@media screen and (min-width: 1024px) {\n wx-modal .wx-modal-dialog {\n width: 35%;\n }\n}\n@-webkit-keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\nwx-picker {\n display: block;\n}\nwx-picker-view {\n display: block;\n}\nwx-picker-view .wrapper {\n display: -webkit-flex;\n display: flex;\n position: relative;\n overflow: hidden;\n}\nwx-picker-view[hidden] {\n display: none;\n}\nwx-picker-view-column {\n -webkit-flex: 1;\n flex: 1;\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.wx-picker__mask {\n transform: translateZ(0);\n -webkit-transform: translateZ(0);\n}\n.wx-picker__indicator,\n.wx-picker__mask {\n position: absolute;\n left: 0;\n width: 100%;\n z-index: 3;\n}\n.wx-picker__mask {\n top: 0;\n height: 100%;\n margin: 0 auto;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(0deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));\n background-position: top,bottom;\n background-size: 100% 102px;\n background-repeat: no-repeat;\n}\n.wx-picker__indicator {\n height: 34px;\n top: 102px;\n}\n.wx-picker__indicator,\n.wx-picker__mask {\n position: absolute;\n left: 0;\n width: 100%;\n z-index: 3;\n pointer-events: none;\n}\n.wx-picker__content {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n}\n.wx-picker__indicator:after,\n.wx-picker__indicator:before {\n content: " ";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n color: #e5e5e5;\n}\n.wx-picker__indicator:before {\n top: 0;\n border-top: 1px solid #e5e5e5;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\n.wx-picker__indicator:after {\n bottom: 0;\n border-bottom: 1px solid #e5e5e5;\n -webkit-transform-origin: 0 100%;\n transform-origin: 0 100%;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\n.wx-picker__indicator:after,\n.wx-picker__indicator:before {\n content: " ";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n color: #e5e5e5;\n}\nwx-progress {\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n}\nwx-progress[hidden] {\n display: none;\n}\n.wx-progress-bar {\n background-color: #EBEBEB;\n -webkit-flex: 1;\n flex: 1;\n}\n.wx-progress-inner-bar {\n width: 0;\n height: 100%;\n}\n.wx-progress-info {\n margin-top: 0;\n margin-bottom: 0;\n min-width: 2em;\n margin-left: 15px;\n font-size: 16px;\n}\nwx-radio {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-radio[hidden] {\n display: none;\n}\nwx-radio .wx-radio-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-radio .wx-radio-input {\n -webkit-appearance: none;\n appearance: none;\n margin-right: 5px;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #ffffff;\n border-radius: 50%;\n width: 22px;\n height: 22px;\n position: relative;\n}\nwx-radio .wx-radio-input.wx-radio-input-checked {\n background-color: #09BB07;\n border-color: #09BB07;\n}\nwx-radio .wx-radio-input.wx-radio-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n color: #ffffff;\n font-size: 18px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-radio .wx-radio-input.wx-radio-input-disabled {\n background-color: #E1E1E1;\n border-color: #D1D1D1;\n}\nwx-radio .wx-radio-input.wx-radio-input-disabled:before {\n color: #ADADAD;\n}\nwx-radio-group {\n display: block;\n}\nwx-radio-group[hidden] {\n display: none;\n}\nwx-scroll-view {\n display: block;\n width: 100%;\n}\nwx-scroll-view[hidden] {\n display: none;\n}\n.wx-scroll-view {\n position: relative;\n -webkit-overflow-scrolling: touch;\n height: 100%;\n}\nwx-swiper {\n display: block;\n height: 150px;\n}\nwx-swiper[hidden] {\n display: none;\n}\nwx-swiper .wx-swiper-wrapper {\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n}\nwx-swiper .wx-swiper-slides {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\nwx-swiper .wx-swiper-slides-tracking {\n transition: none;\n}\nwx-swiper .wx-swiper-dots {\n position: absolute;\n font-size: 20px;\n line-height: 20px;\n}\nwx-swiper .wx-swiper-dots-horizontal {\n left: 50%;\n bottom: 0;\n text-align: center;\n white-space: nowrap;\n height: 24px;\n -webkit-transform: translate(-50%, 0);\n transform: translate(-50%, 0);\n}\nwx-swiper .wx-swiper-dots-vertical {\n right: 0;\n top: 50%;\n text-align: right;\n width: 24px;\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n}\nwx-swiper .wx-swiper-dot {\n display: inline-block;\n width: 24px;\n text-align: center;\n cursor: pointer;\n color: grey;\n transition-property: color;\n transition-timing-function: ease;\n}\nwx-swiper .wx-swiper-dot-active {\n color: black;\n}\nwx-swiper .wx-swiper-dot::before {\n content: "\\2022";\n}\nwx-swiper-item {\n display: block;\n overflow: hidden;\n transition-property: -webkit-transform;\n transition-property: transform;\n transition-property: transform, -webkit-transform;\n transition-timing-function: ease;\n will-change: transform;\n}\nwx-swiper-item[hidden] {\n display: none;\n}\nwx-slider {\n margin: 10px 18px;\n padding: 0;\n display: block;\n}\nwx-slider[hidden] {\n display: none;\n}\nwx-slider .wx-slider-wrapper {\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n min-height: 16px;\n}\nwx-slider .wx-slider-tap-area {\n -webkit-flex: 1;\n flex: 1;\n padding: 8px 0;\n}\nwx-slider .wx-slider-handle-wrapper {\n position: relative;\n height: 2px;\n border-radius: 5px;\n background-color: #e9e9e9;\n cursor: pointer;\n transition: background-color 0.3s ease;\n -webkit-tap-highlight-color: transparent;\n}\nwx-slider .wx-slider-track {\n height: 100%;\n border-radius: 6px;\n background-color: #1aad19;\n transition: background-color 0.3s ease;\n}\nwx-slider .wx-slider-handle {\n position: absolute;\n width: 28px;\n height: 28px;\n left: 50%;\n top: 50%;\n margin-left: -14px;\n margin-top: -14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: #fff;\n z-index: 2;\n transition: border-color 0.3s ease;\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);\n}\nwx-slider .wx-slider-step {\n position: absolute;\n width: 100%;\n height: 2px;\n background: transparent;\n z-index: 1;\n}\nwx-slider .wx-slider-value {\n color: #888;\n font-size: 14px;\n margin-left: 1em;\n}\nwx-slider .wx-slider-disabled .wx-slider-track {\n background-color: #ccc;\n}\nwx-slider .wx-slider-disabled .wx-slider-handle {\n background-color: #FFF;\n border-color: #ccc;\n}\n* {\n margin: 0;\n}\nwx-switch {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-switch[hidden] {\n display: none;\n}\nwx-switch .wx-switch-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-switch .wx-switch-input {\n -webkit-appearance: none;\n appearance: none;\n position: relative;\n width: 52px;\n height: 32px;\n margin-right: 5px;\n border: 1px solid #DFDFDF;\n outline: 0;\n border-radius: 16px;\n box-sizing: border-box;\n background-color: #DFDFDF;\n transition: background-color 0.1s, border 0.1s;\n}\nwx-switch .wx-switch-input:before {\n content: " ";\n position: absolute;\n top: 0;\n left: 0;\n width: 50px;\n height: 30px;\n border-radius: 15px;\n background-color: #FDFDFD;\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-switch .wx-switch-input:after {\n content: " ";\n position: absolute;\n top: 0;\n left: 0;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n background-color: #FFFFFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-switch .wx-switch-input.wx-switch-input-checked {\n border-color: #04BE02;\n background-color: #04BE02;\n}\nwx-switch .wx-switch-input.wx-switch-input-checked:before {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\nwx-switch .wx-switch-input.wx-switch-input-checked:after {\n -webkit-transform: translateX(20px);\n transform: translateX(20px);\n}\nwx-switch .wx-checkbox-input {\n margin-right: 5px;\n -webkit-appearance: none;\n appearance: none;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #FFFFFF;\n border-radius: 3px;\n width: 22px;\n height: 22px;\n position: relative;\n color: #09BB07;\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n color: inherit;\n font-size: 22px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-disabled {\n background-color: #E1E1E1;\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-disabled:before {\n color: #ADADAD;\n}\nwx-text[selectable] {\n user-select: text;\n -webkit-user-select: text;\n}\n.wx-toast {\n position: fixed;\n z-index: 2000000000;\n width: 7.6em;\n min-height: 7.6em;\n top: 180px;\n left: 50%;\n margin-left: -3.8em;\n background: rgba(40, 40, 40, 0.75);\n text-align: center;\n border-radius: 5px;\n color: #FFFFFF;\n font-size: 16px;\n line-height: normal;\n}\n.wx-toast-icon {\n margin-top: 14px;\n margin-bottom: 8px;\n font-family: weui;\n font-style: normal;\n}\n.wx-toast-content {\n margin: 0 0 15px;\n}\n.wx-toast-mask {\n position: fixed;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.6);\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\nwx-video {\n width: 300px;\n height: 225px;\n display: inline-block;\n line-height: 0;\n overflow: hidden;\n}\nwx-video[hidden] {\n display: none;\n}\nwx-video .wx-video-container {\n width: 100%;\n height: 100%;\n background-color: black;\n display: inline-block;\n position: relative;\n}\nwx-video video {\n width: 100%;\n height: 100%;\n}\nwx-video .wx-video-bar {\n height: 44px;\n background-color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n padding: 0 10px;\n}\nwx-video .wx-video-bar.full {\n left: 0;\n}\nwx-video .wx-video-bar.part {\n margin: 5px;\n border-radius: 5px;\n height: 34px;\n}\nwx-video .wx-video-bar > .wx-video-controls {\n display: -webkit-flex;\n display: flex;\n -webkit-flex-grow: 1;\n flex-grow: 1;\n margin: 0 8.5px;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-button {\n width: 13px;\n height: 15px;\n margin: 14.5px 12.5px 14.5px 0;\n background-size: cover;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-button.play {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==\');\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-button.pause {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC\');\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress {\n height: 2px;\n margin: 21px 12px;\n background-color: rgba(255, 255, 255, 0.5);\n position: relative;\n -webkit-flex-grow: 2;\n flex-grow: 2;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress > .wx-video-ball {\n width: 16px;\n height: 16px;\n padding: 14px;\n position: absolute;\n top: -21px;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress > .wx-video-ball > .wx-video-inner {\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n border-radius: 50%;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress > .wx-video-inner {\n width: 0;\n height: 100%;\n background-color: #ffffff;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-time {\n height: 14.5px;\n line-height: 14.5px;\n margin-top: 15px;\n margin-bottom: 14.5px;\n font-size: 12px;\n color: #cbcbcb;\n}\nwx-video .wx-video-bar > .wx-video-danmu-btn {\n white-space: nowrap;\n line-height: 1;\n padding: 2px 10px;\n border: 1px solid #fff;\n border-radius: 5px;\n font-size: 13px;\n color: #fff;\n margin: 0 8.5px;\n}\nwx-video .wx-video-bar > .wx-video-danmu-btn.active {\n border-color: #48c23d;\n color: #48c23d;\n}\nwx-video .wx-video-bar > .wx-video-fullscreen {\n width: 17px;\n height: 17px;\n /*margin: 13.5px 16px 13.5px 17px;*/\n margin: 0 8.5px;\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAQRJREFUWAnt1d0NwiAQB/CmS7hHX5zFxLF0Ah2hE/lg7BT4PyMJUj6Oyt299BIioZT7ARYG59wLpTXmoXOMGO/QecxtwyWW4o42AupGALkFdX1MkHxE3Q7jIbQPqNthQogpJoZkMLRlsn/gFMQEk4OoY0oQVUwNoobhQFQwgMxUKFkt0C8+Zy61d8SeR5iHWCLOwF/MCb8Tp//ex3QFsE1HlCfKFUX2OijNFMnPKD7k76YcBoL402Zh8B77+MjlXrVvwfglXA32b0MrRgxCE2nBiEJaMOIQLkYFwsGoQWoYVUgJow4pYD4Weq4ayBqfwDYQmnUK0301kITujuawu65/l2B5A4z3Qe+Ut7EBAAAAAElFTkSuQmCC\');\n background-size: cover;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n}\nwx-video .wx-video-danmu {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin-bottom: 44px;\n}\nwx-video .wx-video-danmu > .wx-video-danmu-item {\n line-height: 1;\n position: absolute;\n color: #ffffff;\n white-space: nowrap;\n left: 100%;\n transition: 3s linear;\n}\nwx-view {\n display: block;\n}\nwx-view[hidden] {\n display: none;\n}\n.navigator-hover {\n background-color: rgba(0, 0, 0, 0.1);\n opacity: 0.7;\n}\nwx-navigator {\n height: auto;\n width: auto;\n display: block;\n}\nwx-navigator[hidden] {\n display: none;\n}\nwx-action-sheet-cancel {\n background-color: #FFFFFF;\n font-size: 18px;\n}\nwx-action-sheet-cancel .wx-action-sheet-middle {\n background-color: #EFEFF4;\n height: 6px;\n width: 100%;\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel {\n background-color: inherit;\n position: relative;\n padding: 10px 0;\n text-align: center;\n font-size: inherit;\n display: block;\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n border-top: 1px solid #D9D9D9;\n color: #D9D9D9;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel:active {\n background-color: #ECECEC;\n}\n.textarea-placeholder {\n color: grey;\n}\nwx-textarea {\n width: 300px;\n height: 150px;\n display: block;\n position: relative;\n}\nwx-textarea textarea {\n outline: none;\n border: none;\n resize: none;\n background-color: transparent;\n line-height: 1.2;\n z-index: 2;\n position: absolute;\n padding: 0;\n font-family: inherit;\n background: transparent;\n}\nwx-textarea .compute {\n color: transparent;\n top: 0;\n z-index: 0;\n}\nwx-textarea div {\n word-break: break-all;\n line-height: 1.2;\n font-family: inherit;\n position: absolute;\n}\n/*wx-share-button {*/\n/*display: inline-block;*/\n/*line-height: 0;*/\n/*z-index: 9999999999;*/\n/*-webkit-tap-highlight-color: transparent;*/\n/*>.wx-share-button-wrapper {*/\n/*width: 36px;*/\n/*height: 36px;*/\n/*display: inline-block;*/\n/*background-size: 100% 100%;*/\n/*background-repeat: no-repeat;*/\n/*-webkit-tap-highlight-color: transparent;*/\n/*}*/\n/*}*/\nwx-contact-button {\n display: inline-block;\n line-height: 0;\n z-index: 9999999999;\n}\nwx-contact-button > .wx-contact-button-wrapper {\n width: 36px;\n height: 36px;\n display: inline-block;\n background-size: 100% 100%;\n background-repeat: no-repeat;\n -webkit-tap-highlight-color: transparent;\n}\n\n/*# sourceMappingURL=wx-components.css.map */'), -wx.version={updateTime:"2016.12.18 20:39:33",info:"",version:30};;var __WAWebviewEndTime__ = Date.now(); \ No newline at end of file +;var __WAWebviewStartTime__ = Date.now();function _toArray(e){return Array.isArray(e)?e:Array.from(e)}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t-1||t.indexOf("wechatdevtools")>-1){var n=e.WeixinJSBridge;return delete e.WeixinJSBridge,n}}var i=e.hasOwnProperty("document"),o=!1,r={},a=0,s={},l="custom_event_",c={};if(i){var t=e.navigator.userAgent,d=t.indexOf("Android")!=-1;o=!d}var u=e.__wxConfig||{},h=e.webkit,p=e.WeixinJSCore;delete e.webkit,("android"===u.platform||"ios"===u.platform&&u.clientVersion)&&delete e.WeixinJSCore;var f=function(e,t,n){if(o)h.messageHandlers.invokeHandler.postMessage({event:e,paramsString:t,callbackId:n});else{var i=p.invokeHandler(e,t,n);if("undefined"!=typeof i&&"function"==typeof r[n]&&""!==i){try{i=JSON.parse(i)}catch(e){i={}}r[n](i),delete r[n]}}},g=function(e,t,n){o?h.messageHandlers.publishHandler.postMessage({event:e,paramsString:t,webviewIds:n}):p.publishHandler(e,t,n)},v=function(e,t,n){var i=JSON.stringify(t||{}),o=++a;r[o]=n,f(e,i,o)},_=function(e,t){var n=r[e];"function"==typeof n&&n(t),delete r[e]},m=function(e,t){s[e]=t},b=function(e,t,n){n=n||[],n=JSON.stringify(n);var i=l+e,o=JSON.stringify(t);g(i,o,n)},w=function(e,t){c[l+e]=t},A=function(e,t,n,i){var o;o=e.indexOf(l)!=-1?c[e]:s[e],"function"==typeof o&&o(t,n,i)};return e.WeixinJSBridge={get invokeCallbackHandler(){return _},get subscribeHandler(){return A}},{on:m,publish:b,invoke:v,subscribe:w,get invokeCallbackHandler(){return _},get subscribeHandler(){return A}}}(this),Reporter=function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){function i(e){"undefined"!=typeof WeixinJSBridge?e():document.addEventListener("WeixinJSBridgeReady",e,!1)}function o(){var e=arguments;i(function(){WeixinJSBridge.invoke.apply(WeixinJSBridge,e)})}function r(){var e=arguments;i(function(){WeixinJSBridge.publish.apply(WeixinJSBridge,e)})}function a(){return"undefined"!=typeof wx?wx.version&&wx.version.version||"":""}function s(){!T||T.length<=0||(o("reportKeyValue",{dataArray:T}),T=[])}function l(){!I||I.length<=0||(o("reportIDKey",{dataArray:I}),I=[])}function c(){!B||B.length<=0||(o("systemLog",{dataArray:B}),B=[])}function d(){return"undefined"!=typeof window&&window.navigator?window.navigator.userAgent.indexOf("appservice")>-1?"devtools":window.navigator.userAgent.toLowerCase().indexOf("android")>-1?"android":"":"android"===__wxConfig.platform?"android":"devtools"===__wxConfig.platform?"devtools":"ios"}function u(e){return function(){try{return e.apply(e,arguments)}catch(e){console.error("reporter error:"+e.message)}}}function h(e){z.__defineGetter__(e,function(){return u(W[e])})}var p=n(1),f=1,g=20,v=50,_=50,m=50,b=20,w=50,A=500,y=500,x=3,C=3,S=3,k=50,E=50,T=[],I=[],B=[],N=0,P=0,D=0,R=0,F=0,M={},L={},O={},$="ios"===d(),H=("devtools"===d(),function(){}),J="",j="",W={surroundThirdByTryCatch:function(e,t){var n="";return J&&(n="at "+J+" "+j+" function;"),function(){var i=void 0;try{var o=Date.now();i=e.apply(e,arguments);var r=Date.now()-o;r>1e3&&W.slowReport({key:"apiCallback",cost:r,extend:n+t})}catch(e){W.thirdErrorReport({error:e,extend:n+t})}return i}},slowReport:function(e){var t=e.key,n=e.cost,i=e.extend,o=e.force,r=p.SlowValueType[t],a=Date.now();if(r&&(o||!(a-FE||(O[i]||(O[i]=0),O[i]++,O[i]>S))){F=a;var s=n+","+encodeURIComponent(i)+","+r;W.reportKeyValue({key:"Slow",value:s,force:!0})}},speedReport:function(e){var t=e.key,n=e.data,i=e.timeMark,o=e.force,r=p.SpeedValueType[t],a=Date.now(),s=0,l=i.nativeTime;if(r&&(o||!(a-(M[r]||0)=g&&s()))},reportIDKey:function(e){var t=e.id,n=e.key,i=e.force;p.IDKeyType[n]&&(!i&&Date.now()-P=f&&l()))},thirdErrorReport:function(e){var t=e.error,n=e.extend;W.errorReport({key:"thirdScriptError",error:t,extend:n})},errorReport:function(e){var t=e.key,n=e.error,i=e.extend;if(p.ErrorType[t]){var o=i?n.message+";"+i:n.message,d=t+"\n"+o+"\n"+n.stack;if(console.error(d),"undefined"!=typeof window&&"undefined"!=typeof window.__webviewId__?r("WEBVIEW_ERROR_MSG",{data:{msg:d},options:{timestamp:Date.now()}}):W.triggerErrorMessage(d),!(Object.keys(L).length>k)){var u=p.ErrorType[t]+","+n.name+","+encodeURIComponent(o)+","+encodeURIComponent(n.stack)+","+encodeURIComponent(a());L[u]||(L[u]=0),L[u]++,"thirdScriptError"===t&&L[u]>x||L[u]>C||(W.reportIDKey({key:t}),W.reportKeyValue({key:"Error",value:u}),l(),s(),c())}}},log:function(e,t){e&&"string"==typeof e&&(!t&&Date.now()-D=v&&c()))},submit:function(){Date.now()-R<_||(R=Date.now(),l(),s(),c())},registerErrorListener:function(e){"function"==typeof e&&(H=e)},unRegisterErrorListener:function(){H=function(){}},triggerErrorMessage:function(e){H(e)}},z={};for(var Y in W)h(Y);z.__defineSetter__("__route__",function(e){J=e}),z.__defineSetter__("__method__",function(e){j=e}),"undefined"!=typeof window&&(window.onbeforeunload=function(){W.submit()}),e.exports=z},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});t.IDKeyType={login:1,login_cancel:2,login_fail:3,request_fail:4,connectSocket_fail:5,closeSocket_fail:6,sendSocketMessage_fail:7,uploadFile_fail:8,downloadFile_fail:9,redirectTo_fail:10,navigateTo_fail:11,navigateBack_fail:12,appServiceSDKScriptError:13,webviewSDKScriptError:14,jsEnginScriptError:15,thirdScriptError:16,webviewScriptError:17,exparserScriptError:18,startRecord:19,startRecord_fail:20,getLocation:21,getLocation_fail:22,chooseLocation:23,chooseLocation_fail:24,openAddress:25,openAddress_fail:26,openLocation:27,openLocation_fail:28,makePhoneCall:29,makePhoneCall_fail:30,operateWXData:31,operateWXData_fail:32,checkLogin:33,checkLogin_fail:34,refreshSession:35,refreshSession_fail:36,chooseVideo:37,chooseVideo_fail:38,chooseImage:39,chooseImage_fail:40,verifyPaymentPassword:41,verifyPaymentPassword_fail:42,requestPayment:43,requestPayment_fail:44,bindPaymentCard:45,bindPaymentCard_fail:46,requestPaymentToBank:47,requestPaymentToBank_fail:48,openDocument:49,openDocument_fail:50,chooseContact:51,chooseContact_fail:52,operateMusicPlayer:53,operateMusicPlayer_fail:54,getMusicPlayerState_fail:55,playVoice_fail:56,setNavigationBarTitle_fail:57,switchTab_fail:58,getImageInfo_fail:59,enableCompass_fail:60,enableAccelerometer_fail:61,getStorage_fail:62,setStorage_fail:63,clearStorage_fail:64,removeStorage_fail:65,getStorageInfo_fail:66,getStorageSync_fail:67,setStorageSync_fail:68,addCard_fail:69,openCard_fail:70},t.KeyValueType={Speed:"13544",Error:"13582",Slow:"13968"},t.SpeedValueType={webview2AppService:1,appService2Webview:2,funcReady:3,firstGetData:4,firstRenderTime:5,reRenderTime:6,forceUpdateRenderTime:7,appRoute2newPage:8,newPage2pageReady:9,thirdScriptRunTime:10,pageframe:11,WAWebview:12},t.SlowValueType={apiCallback:1,pageInvoke:2},t.ErrorType={appServiceSDKScriptError:1,webviewSDKScriptError:2,jsEnginScriptError:3,thirdScriptError:4,webviewScriptError:5,exparserScriptError:6}}]),wx=function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}({0:function(e,t,n){function i(e){return p?void(h[e]=g[e]):void h.__defineGetter__(e,function(){return function(){try{return g[e].apply(this,arguments)}catch(e){o(e)}}})}function o(e,t){if("[object Error]"===Object.prototype.toString.apply(e)){if("WebviewSdkKnownError"==e.type)throw e;Reporter.errorReport({key:"webviewSDKScriptError",error:e,extend:t})}}var r=n(32),a=n(33),s=n(34),l=n(35);n(36);var c=n(37),d=0,u=[],h={},p="devtools"===(0,l.getPlatform)(),f=function(e,t){(0,r.publish)("INVOKE_METHOD",{name:e,args:t})},g={invoke:r.invoke,on:r.on,getPlatform:l.getPlatform,onAppEnterForeground:s.onAppEnterForeground,onAppEnterBackground:s.onAppEnterBackground,reportIDKey:function(e,t){console.warn("reportIDKey has been removed wx")},reportKeyValue:function(e,t){console.warn("reportKeyValue has been removed from wx")},initReady:function(){(0,r.invokeMethod)("initReady")},redirectTo:function(e){f("redirectTo",e)},navigateTo:function(e){f("navigateTo",e)},switchTab:function(e){f("switchTab",e)},reLaunch:function(e){f("reLaunch",e)},navigateBack:function(e){f("navigateBack",e)},clearStorage:function(){f("clearStorage",{})},showKeyboard:function(e){(0,r.invokeMethod)("showKeyboard",e)},showDatePickerView:function(e){(0,r.invokeMethod)("showDatePickerView",e)},hideKeyboard:function(e){(0,r.invokeMethod)("hideKeyboard",e)},insertMap:function(e){(0,r.invokeMethod)("insertMap",e)},removeMap:function(e){(0,r.invokeMethod)("removeMap",e)},updateMapCovers:function(e){(0,r.invokeMethod)("updateMapCovers",e)},insertContactButton:a.insertContactButton,updateContactButton:a.updateContactButton,removeContactButton:a.removeContactButton,enterContact:a.enterContact,getRealRoute:l.getRealRoute,getCurrentRoute:function(e){(0,r.invokeMethod)("getCurrentRoute",e,{beforeSuccess:function(e){e.route=e.route.split("?")[0]}})},getLocalImgData:function(e){function t(){if(d-=1,u.length>0){var e=u.shift();g.getLocalImgData(e)}}d2&&void 0!==arguments[2]?arguments[2]:{},a=o&&o.timestamp||0,s=Date.now();"function"==typeof t&&t(i,n),Reporter.speedReport({key:"appService2Webview",data:i||{},timeMark:{startTime:a,endTime:s,nativeTime:r.nativeTime}})},n(function(){WeixinJSBridge.subscribe.apply(WeixinJSBridge,e)})}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={};for(var r in t)"function"==typeof t[r]&&(o[r]=t[r],delete t[r]);i(e,t,function(t){t.errMsg=t.errMsg||e+":ok";var i=0===t.errMsg.indexOf(e+":ok"),r=0===t.errMsg.indexOf(e+":cancel"),a=0===t.errMsg.indexOf(e+":fail");"function"==typeof n.beforeAll&&n.beforeAll(t),i?("function"==typeof n.beforeSuccess&&n.beforeSuccess(t),"function"==typeof o.success&&o.success(t),"function"==typeof n.afterSuccess&&n.afterSuccess(t)):r?("function"==typeof o.cancel&&o.cancel(t),"function"==typeof n.cancel&&n.cancel(t)):a&&("function"==typeof o.fail&&o.fail(t),"function"==typeof n.fail&&n.fail(t)),"function"==typeof o.complete&&o.complete(t),"function"==typeof n.complete&&n.complete(t)})}function l(e,t){o(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.invoke=i,t.on=o,t.publish=r,t.subscribe=a,t.invokeMethod=s,t.onMethod=l},33:function(e,t,n){function i(e){(0,s.invokeMethod)("insertContactButton",e)}function o(e){(0,s.invokeMethod)("updateContactButton",e)}function r(e){(0,s.invokeMethod)("removeContactButton",e)}function a(e){(0,s.invokeMethod)("enterContact",e)}Object.defineProperty(t,"__esModule",{value:!0}),t.insertContactButton=i,t.updateContactButton=o,t.removeContactButton=r,t.enterContact=a;var s=n(32)},34:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.onAppEnterBackground=t.onAppEnterForeground=void 0;var i=n(32),o=[],r=[],a=function(e){o.push(e)},s=function(e){r.push(e)};(0,i.subscribe)("onAppEnterForeground",function(e){o.forEach(function(t){t(e)})}),(0,i.subscribe)("onAppEnterBackground",function(e){r.forEach(function(t){t(e)})}),t.onAppEnterForeground=a,t.onAppEnterBackground=s},35:function(e,t){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(0===t.indexOf("/"))return t.substr(1);if(0===t.indexOf("./"))return a(e,t.substr(2));var n,i,o=t.split("/");for(n=0,i=o.length;n0?e.split("/"):[];r.splice(r.length-n-1,n+1);var s=r.concat(o),l=s.join("/");return l}function s(e){var t=e.animates,n=e.option,i=void 0===n?{}:n,o=i.transformOrigin,a=i.transition;if("undefined"==typeof a||"undefined"==typeof t)return{transformOrigin:"",transform:"",transition:""};var s=t.filter(function(e){var t=e.type;return"style"!==t}).map(function(e){var t=e.type,n=e.args;switch(t){case"matrix":return"matrix("+n.join(",")+")";case"matrix3d":return"matrix3d("+n.join(",")+")";case"rotate":return n=n.map(u),"rotate("+n[0]+")";case"rotate3d":return n[3]=u(n[3]),"rotate3d("+n.join(",")+")";case"rotateX":return n=n.map(u),"rotateX("+n[0]+")";case"rotateY":return n=n.map(u),"rotateY("+n[0]+")";case"rotateZ":return n=n.map(u),"rotateZ("+n[0]+")";case"scale":return"scale("+n.join(",")+")";case"scale3d":return"scale3d("+n.join(",")+")";case"scaleX":return"scaleX("+n[0]+")";case"scaleY":return"scaleY("+n[0]+")";case"scaleZ":return"scaleZ("+n[0]+")";case"translate":return n=n.map(d),"translate("+n.join(",")+")";case"translate3d":return n=n.map(d),"translate3d("+n.join(",")+")";case"translateX":return n=n.map(d),"translateX("+n[0]+")";case"translateY":return n=n.map(d),"translateY("+n[0]+")";case"translateZ":return n=n.map(d),"translateZ("+n[0]+")";case"skew":return n=n.map(u),"skew("+n.join(",")+")";case"skewX":return n=n.map(u),"skewX("+n[0]+")";case"skewY":return n=n.map(u),"skewY("+n[0]+")";default:return""}}).join(" "),l=t.filter(function(e){var t=e.type;return"style"===t}).reduce(function(e,t){return e[t.args[0]]=t.args[1],e},{}),c=["transform"].concat(r(Object.keys(l))).join(",");return{style:l,transformOrigin:o,transform:s,transitionProperty:c,transition:a.duration+"ms "+a.timingFunction+" "+a.delay+"ms"}}function l(){var e=window.navigator.userAgent.toLowerCase();return/wechatdevtools/.test(e)?"wechatdevtools":/(iphone|ipad)/.test(e)?"ios":/android/.test(e)?"android":void 0}function c(){var e=window.navigator.userAgent;return(/OS 8_/.test(e)||/Version\/8/.test(e))&&"ios"===l()}function d(e){return"number"==typeof e?e+"px":e}function u(e){return e+"deg"}Object.defineProperty(t,"__esModule",{value:!0}),t.getRealRoute=a,t.animationToStyle=s,t.getPlatform=l,t.isiOS8=c;t.WebviewSdkKnownError=function(e){function t(e){n(this,t);var o=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,"Webview-SDK:"+e));return o.type="WebviewSdkKnownError",o}return o(t,e),t}(Error)},36:function(e,t,n){function i(e){"loading"!==document.readyState?e():document.addEventListener("DOMContentLoaded",e)}var o=n(32),r=!1,a=["log","warn","error","info","debug"];a.forEach(function(e){(0,o.subscribe)(e,function(t){var n=t.log;console[e].apply(console,n)})}),(0,o.subscribe)("initLogs",function(e){var t=e.logs;r===!1&&(r=!0,t.forEach(function(e){var t=e.method,n=e.log;console[t].apply(console,n)}),r=!0)}),i(function(){setTimeout(function(){(0,o.publish)("DOMContentLoaded",{})},1e3)})},37:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_GET_LOCAL_IMG_DATA_MAX_COUNT=void 0;var i=n(35),o=(0,i.isiOS8)()?16:64;t.MAX_GET_LOCAL_IMG_DATA_MAX_COUNT=o}});!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.exparser=t():e.exparser=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){var i=n(1),o=n(3),r=n(4),a=n(6),s=n(8),l=n(11),c=n(9),d=n(12),u=n(7),h=n(2),p=n(13);t.FreeTmpl=p,t.precompileTemplate=p.precompiler?p.precompiler.compile:null,t.Event=o,t.Element=a,t.TextNode=l,t.NativeNode=c,t.VirtualNode=d,t.Behavior=r,t.Component=s,t.Observer=u,t.registerBehavior=r.create,t.registerElement=s.register,t.createElement=s.create,t.createTextNode=l.create,t.createVirtualNode=d.create,t.appendChild=a.appendChild,t.insertBefore=a.insertBefore,t.removeChild=a.removeChild,t.replaceChild=a.replaceChild,t.addListenerToElement=o.addListenerToElement,t.removeListenerFromElement=o.removeListenerFromElement,t.triggerEvent=o.triggerEvent,t.addGlobalErrorListener=i.addGlobalErrorListener,t.removeGlobalErrorListener=i.removeGlobalErrorListener,t.globalOptions=h,s._setDefaultTemplateEngine(p),s.register({is:"",options:{lazyRegistration:!1,classPrefix:"",addGlobalClass:!1,templateEngine:null,renderingMode:"full",multipleSlots:!1}});var f=function(e){var t="";if(e instanceof exparser.Element&&(e.id&&(t+=' id="'+e.id+'"'),e.slot&&(t+=' slot="'+e.slot+'"'),e.__slotName&&(t+=' name="'+e.__slotName+'"'),e.$$&&(e.$$.getAttribute("class")&&(t+=' class="'+e.$$.getAttribute("class")+'"'),e.$$.getAttribute("style")&&(t+=' style="'+e.$$.getAttribute("style")+'"'))),e instanceof exparser.VirtualNode)return t;if(e instanceof exparser.Component)return s.listPublicProperties(e).forEach(function(n){t+=" "+n+"="+JSON.stringify(e[n])}),t;e instanceof exparser.NativeNode&&(e=e.$$);for(var n=e.attributes,i=0;i",a+=e instanceof exparser.VirtualNode?" [Exp-Virtual]":e instanceof exparser.NativeNode?" [Exp-Native]":" [Exp-Component]",a+="\n"+g(t?e.__wxSlotChildren:e.childNodes,t,n+1);else if(e instanceof exparser.TextNode)a+=r+e.textContent+" [Exp-Text]\n";else if(i&&e instanceof i.HTMLElement)a+=r+"<"+e.tagName.toLowerCase()+f(e)+"> [DOM-Element]",a+="\n"+g(t?e.__wxSlotChildren||e.childNodes:e.childNodes,t,n+1);else if(i&&e instanceof i.Text)a+=r+e.textContent+" [DOM-Text]\n";else if(void 0!==e.length)for(o=0;o=0;l--){var c=a[l],d=c[0];if(t.target=c[1],n(d.__wxCaptureEvents[i],d),t.__stopped)break}if(t.target=e,!t.__stopped)for(var u=!t.bubbles,h=e.parentNode,p=e;p&&(h===p&&(h=p.parentNode),p.__wxEvents&&p.__wxEvents[i]&&n(p.__wxEvents[i],p),!u&&!t.__stopped);)if(p.__wxHost){if(o)break;h&&h instanceof r||(h=p.__wxHost,t.target=h),p=p.__wxHost}else{var f=!0;p instanceof r&&(f=!1),p=f||o?p.parentNode:p.__wxSlotParent}}},o.triggerEvent=function(e,t,n,i){var r=o.create(t,n,i);o.dispatchEvent(e,r)},o.addListenerToElement=function(e,t,n,o){return o&&o.useCapture?(e.__wxCaptureEvents||(e.__wxCaptureEvents=Object.create(null)),e.__wxCaptureEvents[t]||(e.__wxCaptureEvents[t]=i.create("Event Listener")),e.__wxCaptureEvents[t].add(n)):(e.__wxEvents||(e.__wxEvents=Object.create(null)),e.__wxEvents[t]||(e.__wxEvents[t]=i.create("Event Listener")),e.__wxEvents[t].add(n))},o.removeListenerFromElement=function(e,t,n,i){return i&&i.useCapture?void(e.__wxCaptureEvents&&e.__wxCaptureEvents[t]&&e.__wxCaptureEvents[t].remove(n)):void(e.__wxEvents&&e.__wxEvents[t]&&e.__wxEvents[t].remove(n))},e.exports=o},function(e,t,n){var i=n(1),o=n(5),r=n(2),a=["created","attached","moved","detached"],s=[String,Number,Boolean,Object,Array,null],l=function(){};l.prototype=Object.create(Object.prototype,{constructor:{value:l,writable:!0,configurable:!0}}),l.create=function(e){var t=Object.create(l.prototype,{is:{value:e.is||""}});return t.using=e.using||{},t.template=e.template,t.data=null,t.properties=Object.create(null),t.methods=Object.create(null),t.listeners=Object.create(null),t.ancestors=[],t.options={publicProperties:!!(e.options&&void 0!==e.options.publicProperties?e.options.publicProperties:r.publicProperties)},t._unprepared=e,(e.options&&void 0!==e.options.lazyRegistration?e.options.lazyRegistration:r.lazyRegistration)||l.prepare(t),e.is&&(l._list[e.is]=t),t},l.prepare=function(e){var t=e._unprepared;e._unprepared=null;var n=e.ancestors,i="",r=0;for(r=0;r<(t.behaviors||[]).length;r++){var c=t.behaviors[r];Object.prototype.hasOwnProperty.call(e.using,c)&&(c=t.using[c]);var d=c;"string"==typeof d&&(d=l._list[c]),d._unprepared&&l.prepare(d),"object"==typeof d.data&&(null===e.data?e.data=d.data:o.shallowMerge(e.data,d.data));for(i in d.properties)e.properties[i]=d.properties[i];for(i in d.methods)e.methods[i]=d.methods[i];for(var u=0;u=0&&(h={type:h}),void 0===h.value&&(h.type===String?h.value="":h.type===Number?h.value=0:h.type===Boolean?h.value=!1:h.type===Array?h.value=[]:h.value=null),e.properties[i]={type:h.type,value:h.value,filter:h.filter,observer:h.observer,public:!!(void 0===h.public?e.options.publicProperties:h.public)}}for(r=0;r=0&&(this._rawNames.splice(n,1),r(this))},n.prototype.contains=function(e){return this._rawNames.indexOf(e)>=0},n.prototype._setPrefix=function(e,t,n){this._prefix!==e&&(this._prefix=e,this._using=t,this._addOriginalClass=n,r(this))},n.prototype.setClassNames=function(e){e=void 0===e||null===e?"":String(e),this._rawNames=e.match(/[0-9a-z][-_0-9a-z]*/gi)||[],r(this)},n.prototype.getClassNames=function(){return o(this)},e.exports=n},function(e,t,n){var i=n(7),o=n(2),r=function(){};r.prototype=Object.create(Object.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),r.create=function(e,t){var n=Object.create(r.prototype);n.__slot="";var i=null;return(void 0!==t?t:o.inDocument)?(i=document.createTextNode(e||""),i.__wxElement=n):n.__textContent=e,n.$$=n.__domElement=i,n.__subtreeObserversCount=0,n.parentNode=null,n.ownerShadowRoot=null,n},Object.defineProperty(r.prototype,"textContent",{get:function(){return this.__domElement?this.__domElement.textContent:this.__textContent},set:function(e){this.__domElement?this.__domElement.textContent=e:this.__textContent=String(e),(this.__textObservers&&!this.__textObservers.empty||this.__subtreeObserversCount)&&i._callObservers(this,"__textObservers",{type:"characterData",target:this})}}),e.exports=r},function(e,t,n){var i=n(6),o=n(2),r=function(){};r.prototype=Object.create(i.prototype,{constructor:{value:r,writable:!0,configurable:!0}});var a=r.initialize=function(e,t,n){e.__virtual=!0,e.is=t||"";var r=null;(void 0!==n?n:o.inDocument)&&(r=void 0),i.initialize(e,r)};r.create=function(e,t){var n=Object.create(r.prototype);return a(n,e,t),n},e.exports=r},function(e,t,n){(function(t){var i=n(1),o=n(6),r=n(9),a=n(12),s=n(11),l=n(15),c=n(8),d=n(16),u=n(17),h=function(){};h.prototype=Object.create(Object.prototype,{constructor:{value:h,writable:!0,configurable:!0}});var p=function(){};p.prototype=Object.create(Object.prototype,{constructor:{value:p,writable:!0,configurable:!0}});var f=null;h.precompiler=f;var g=function(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})},v=Object.prototype.hasOwnProperty,_=function(e,t){if(null!==e&&"object"==typeof e&&v.call(e,t))return e[t]},m=function(e,t,n,o){if(v.call(t,n)){var r=t[n];if("function"==typeof r)return i.safeCallback("Template Method",r,e,o)}},b=function(e,t){return[{t:1,n:"slot",a:[],c:[],p:null}]},w={t:1,n:'"slot"',v:!0,sn:"",a:[],c:[],p:null},A=function(e,t,n){e.classList.toggle(t,!!n)},y=function(e,t,n){e[t]=n},x=function(e,t,n){e.class=n},C=function(e,t,n){e.setAttribute("style",n)},S=function(e,t,n){e.setAttribute("class",n)},k=function(e,t,n){e.textContent=n},E=function(e,t,n){e.dataset||(e.dataset={}),e.dataset[t]=n},T={$:function(e,t,n){var i=e.__domElement||e.__fakeDomElement;n===!0?i.setAttribute(t,""):n===!1||void 0===n||null===n?i.removeAttribute(t):i.setAttribute(t,n)},":":y,c:A,s:function(e,t,n){(e.__domElement||e.__fakeDomElement).style[t]=n},d:E},I={$:function(e,t,n){n===!0?e.setAttribute(t,""):n===!1||void 0===n||null===n?e.removeAttribute(t):e.setAttribute(t,n)},":":y,c:A,s:function(e,t,n){e.style[t]=n},d:E},B=function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]};h.create=function(e,n,i){var o=void 0===e.template?B:e.template,r=o;if("function"!=typeof o)if(f&&"undefined"!=typeof window&&"undefined"!=typeof document){var a="__exparserFreeTmpl",s=f.compile(o),l=document.createElement("script");l.type="text/javascript",l.innerHTML="window."+a+"="+s,document.head.appendChild(l),document.head.removeChild(l),r=window[a],window[a]=null}else r="undefined"!=typeof t&&"undefined"!=typeof t.versions&&"undefined"!=typeof t.versions.node?h.precompileAndGetCreator(o):b;var c=Object.create(h.prototype);return c._tagTreeRoot=N(r,e.using,n,e.methods,i),c._renderingMode=i.renderingMode,c._inDocument=i.inDocument,c};var N=function(e,t,n,i,o){var a=o.renderingMode,s="native"===a,l=s,c=o.inDocument,d=!1,h=Object.create(null);s&&!c&&(e=b);var p={},f=e(_,m,i),v=function(e){for(var i=0;i1)for(var n=1;n=0?(b(A),s--):(h[y]=s,p[y]=A,A.__wxForToRemove=!0);var x=-1,C=0,S=1,k=[];for(C=h[r[0][f]],C>=0||(C=-1),w[C]&&(w[C].__wxForToRemove=!1),s=1;s=0&&(xS)&&(k.push(w[C]),x=C),C=S,w[C]&&(w[C].__wxForToRemove=!1));for(x1)return;window.__hoverElement__&&(window.__hoverElement__._hoverReset(),window.__hoverElement__=void 0),this.__hoverStyleTimeId=setTimeout(function(){if(t.__hovering=!0,window.__hoverElement__=t,t._hoverClass&&t._hoverClass.length>0)for(var e=0;e0)for(var e=0;e=10?n:"0"+n)+":"+(i>=10?i:"0"+i):(t>=10?t:"0"+t)+":"+(n>=10?n:"0"+n)+":"+(i>=10?i:"0"+i)},_publish:function(e,t){this.triggerEvent(e,t)}},attached:function(){var e=this,t=this.$.player.$$||this.$.player,n=this,i={};for(var o in MediaError)i[MediaError[o]]=o;t.onerror=function(e){if(e.stopPropagation(),e.srcElement.error){var t=e.srcElement.error.code;n._publish("error",{errMsg:i[t]})}},t.onplay=function(e){n.playing=!0,e.stopPropagation(),n._publish("play",{}),n._buttonType="pause","function"==typeof n.onPlay&&n.onPlay(e),n.paused=!1},t.onpause=function(e){n.playing=!1,e.stopPropagation(),n._publish("pause",{}),n._buttonType="play","function"==typeof n.onPause&&n.onPause(e),n.paused=!0},t.onended=function(e){n.playing=!1,e.stopPropagation(),n._publish("ended",{}),"function"==typeof n.onEnded&&n.onEnded(e)},"AUDIO"==t.tagName&&(t.onratechange=function(e){e.stopPropagation(),n._publish("ratechange",{playbackRate:t.playbackRate})});var r=0;t.addEventListener("timeupdate",function(e){e.stopPropagation(),Math.abs(t.currentTime-r)%t.duration>=1&&(n._publish("timeupdate",{currentTime:t.currentTime,duration:t.duration}),r=1e3*t.currentTime),n._isLockTimeUpdateProgress||(n._currentTime=n._formatTime(Math.floor(t.currentTime))),"function"==typeof n.onTimeUpdate&&n.onTimeUpdate(e)}),t.addEventListener("durationchange",function(){t.duration===1/0?e._isLive=!0:e._isLive=!1,NaN!==t.duration&&0===e.duration&&(n._duration=n._formatTime(Math.floor(t.duration)))})}}),function(){var e=1;window.exparser.registerBehavior({is:"wx-positioning-target",created:function(){this._positioningId=e++,this._parentPositioningContainer=null,this._positioningSyncing=!1},methods:{_requestPositioningContainer:function(){this.triggerEvent("wxAddPositionTracker",{element:this},{bubbles:!0,composed:!0})},trackPositionInDocument:function(){this._positioningSyncing||(this._positioningSyncing=!0,this._parentPositioningContainer=document)},trackPositionInContainer:function(e){this._positioningSyncing||(this._positioningSyncing=!0,this._parentPositioningContainer=e)},getPositioningOffset:function(){var e=this.$$.getBoundingClientRect();if(this._parentPositioningContainer===document)return{left:e.left+window.scrollX,top:e.top+window.scrollY,width:this.$$.offsetWidth,height:this.$$.offsetHeight};var t=this._parentPositioningContainer.$$.getBoundingClientRect();return{left:e.left-t.left,top:e.top-t.top,width:this.$$.offsetWidth,height:this.$$.offsetHeight}},fetchPositioningParentId:function(){return 0},getPositioningId:function(){return this._positioningId}}}),window.exparser.registerBehavior({is:"wx-positioning-container",behaviors:["wx-positioning-target"],attached:function(){var e=this;document.addEventListener("pageReRender",function(){if(e._positioningSyncing){var t=e.getPositioningOffset(),n=e.getScrollPosition(),i=n.scrollLeft,o=n.scrollTop;e._sendContainerUpdate(i,o,t)}})},detached:function(){this._positioningSyncing&&this._sendContainerRemoval()},listeners:{"this.wxAddPositionTracker":"_addPositionTracker"},methods:{_addPositionTracker:function(e){if(e.target!==this)return this._positioningSyncing||(this._requestPositioningContainer(),this._positioningSyncing||this.trackPositionInDocument()),e.detail.element.trackPositionInContainer(this),!1},trackPositionInDocument:function(){this._positioningSyncing||(this._positioningSyncing=!0,this._parentPositioningContainer=document,this._initPositioningContainer())},trackPositionInContainer:function(e){this._positioningSyncing||(this._positioningSyncing=!0,this._parentPositioningContainer=e,this._initPositioningContainer())},_initPositioningContainer:function(){var e=this.getPositioningOffset(),t=this.getScrollPosition(),n=t.scrollLeft,i=t.scrollTop;this._sendContainerCreation(n,i,e)},_sendContainerCreation:function(e,t,n){({position:n,visible:!0,contentOffsetLeft:e,contentOffsetTop:t,containerId:this._positioningId,parentId:this._parentPositioningContainer===document?0:this._parentPositioningContainer._positioningId})},_sendContainerUpdate:function(e,t,n){({position:n,visible:!0,contentOffsetLeft:e,contentOffsetTop:t,containerId:this._positioningId})},_sendContainerRemoval:function(){},getScrollPosition:function(){return{scrollLeft:0,scrollTop:0}},updateScrollPosition:function(e){if(this._positioningSyncing){var t=this.getScrollPosition(),n=t.scrollLeft,i=t.scrollTop;return!(!e&&this._prevScrollLeft===n&&this._prevScrollTop===i)&&(this._prevScrollLeft=n,this._prevScrollTop=i,this._sendContainerUpdate(n,i,e),!0)}}}})}(),function(){function e(e,t,n){function i(t,n,o,r){if(!t||!t.cancelled){o(n);var a=e.done();a||t.cancelled||(t.id=requestAnimationFrame(i.bind(null,t,n,o,r))),a&&r&&r(n)}}function o(e){e&&e.id&&cancelAnimationFrame(e.id),e&&(e.cancelled=!0)}var r={id:0,cancelled:!1};return i(r,e,t,n),{cancel:o.bind(null,r),model:e}}function t(e){this._drag=e,this._dragLog=Math.log(e),this._x=0,this._v=0,this._startTime=0}function n(e,t,n){return e>t-n&&e0){var c=(-n-Math.sqrt(r))/(2*i),d=(-n+Math.sqrt(r))/(2*i),l=(t-c*e)/(d-c),s=e-l;return{x:function(e){var t,n;return e===this._t&&(t=this._powER1T,n=this._powER2T),this._t=e,t||(t=this._powER1T=Math.pow(Math.E,c*e)),n||(n=this._powER2T=Math.pow(Math.E,d*e)),s*t+l*n},dx:function(e){var t,n;return e===this._t&&(t=this._powER1T,n=this._powER2T),this._t=e,t||(t=this._powER1T=Math.pow(Math.E,c*e)),n||(n=this._powER2T=Math.pow(Math.E,d*e)),s*c*t+l*d*n}}}var u=Math.sqrt(4*i*o-n*n)/(2*i),a=-(n/2*i),s=e,l=(t-a*e)/u;return{x:function(e){return Math.pow(Math.E,a*e)*(s*Math.cos(u*e)+l*Math.sin(u*e))},dx:function(e){var t=Math.pow(Math.E,a*e),n=Math.cos(u*e),i=Math.sin(u*e);return t*(l*u*n-s*u*i)+a*t*(l*i+s*n)}}},o.prototype.x=function(e){return void 0==e&&(e=((new Date).getTime()-this._startTime)/1e3),this._solution?this._endPosition+this._solution.x(e):0},o.prototype.dx=function(e){return void 0==e&&(e=((new Date).getTime()-this._startTime)/1e3),this._solution?this._solution.dx(e):0},o.prototype.setEnd=function(e,t,n){if(n||(n=(new Date).getTime()),e!=this._endPosition||!i(t,s)){t=t||0;var o=this._endPosition;this._solution&&(i(t,s)&&(t=this._solution.dx((n-this._startTime)/1e3)),o=this._solution.x((n-this._startTime)/1e3),i(t,s)&&(t=0),i(o,s)&&(o=0),o+=this._endPosition),this._solution&&i(o-e,s)&&i(t,s)||(this._endPosition=e,this._solution=this._solve(o-this._endPosition,t),this._startTime=n)}},o.prototype.snap=function(e){this._startTime=(new Date).getTime(),this._endPosition=e,this._solution={x:function(){return 0},dx:function(){return 0}}},o.prototype.done=function(e){return e||(e=(new Date).getTime()),n(this.x(),this._endPosition,s)&&i(this.dx(),s)},o.prototype.reconfigure=function(e,t,n){this._m=e,this._k=t,this._c=n,this.done()||(this._solution=this._solve(this.x()-this._endPosition,this.dx()),this._startTime=(new Date).getTime())},o.prototype.springConstant=function(){return this._k},o.prototype.damping=function(){return this._c},o.prototype.configuration=function(){function e(e,t){e.reconfigure(1,t,e.damping())}function t(e,t){e.reconfigure(1,e.springConstant(),t)}return[{label:"Spring Constant",read:this.springConstant.bind(this),write:e.bind(this,this),min:100,max:1e3},{label:"Damping",read:this.damping.bind(this),write:t.bind(this,this),min:1,max:500}]},r.prototype.snap=function(e,t){this._springOffset=0,this._springing=!0,this._spring.snap(e),this._spring.setEnd(t)},r.prototype.set=function(e,t){this._friction.set(e,t),e>0&&t>=0?(this._springOffset=0,this._springing=!0,this._spring.snap(e),this._spring.setEnd(0)):e<-this._extent&&t<=0?(this._springOffset=0,this._springing=!0,this._spring.snap(e),this._spring.setEnd(-this._extent)):this._springing=!1,this._startTime=(new Date).getTime()},r.prototype.x=function(e){if(!this._startTime)return 0;if(e||(e=((new Date).getTime()-this._startTime)/1e3),this._springing)return this._spring.x()+this._springOffset;var t=this._friction.x(e),n=this.dx(e);return(t>0&&n>=0||t<-this._extent&&n<=0)&&(this._springing=!0,this._spring.setEnd(0,n),t<-this._extent?this._springOffset=-this._extent:this._springOffset=0,t=this._spring.x()+this._springOffset),t},r.prototype.dx=function(e){var t=0;return t=this._lastTime===e?this._lastDx:this._springing?this._spring.dx(e):this._friction.dx(e),this._lastTime=e,this._lastDx=t,t},r.prototype.done=function(){return this._springing?this._spring.done():this._friction.done()},r.prototype.setVelocityByEnd=function(e){this._friction.setVelocityByEnd(e)},r.prototype.configuration=function(){var e=this._friction.configuration();return e.push.apply(e,this._spring.configuration()),e};var l=.5;a.prototype.onTouchStart=function(){this._startPosition=this._position,this._startPosition>0?this._startPosition/=l:this._startPosition<-this._extent&&(this._startPosition=(this._startPosition+this._extent)/l-this._extent),this._animation&&(this._animation.cancel(),this._scrolling=!1),this.updatePosition()},a.prototype.onTouchMove=function(e,t){var n=this._startPosition;this._enableX?n+=e:this._enableY&&(n+=t),n>0?n*=l:n<-this._extent&&(n=(n+this._extent)*l-this._extent),this._position=n,this.updatePosition(),this.dispatchScroll()},a.prototype.onTouchEnd=function(t,n,i){var o=this;if(this._enableSnap&&this._position>-this._extent&&this._position<0){if(this._enableY&&(Math.abs(n)this._itemSize/2?r-(this._itemSize-Math.abs(a)):r-a;s<=0&&s>=-this._extent&&this._scroll.setVelocityByEnd(s)}this._lastTime=Date.now(),this._lastDelay=0,this._scrolling=!0,this._animation=e(this._scroll,function(){var e=Date.now(),t=(e-o._scroll._startTime)/1e3,n=o._scroll.x(t);o._position=n,o.updatePosition();var i=Math.abs(2e3/o._scroll.dx(t));e-o._lastTime>o._lastDelay&&(o.dispatchScroll(),o._lastDelay=i,o._lastTime=e)},function(){o._enableSnap&&(s<=0&&s>=-o._extent&&(o._position=s,o.updatePosition()),"function"==typeof o._options.onSnap&&o._options.onSnap(Math.floor(Math.abs(o._position)/o._itemSize))),o.dispatchScroll(),o._scrolling=!1})},a.prototype.onTransitionEnd=function(){this._element.style.transition="",this._element.style.webkitTransition="",this._element.removeEventListener("transitionend",this._onTransitionEnd),this._element.removeEventListener("webkitTransitionEnd",this._onTransitionEnd),this._snapping&&(this._snapping=!1),this.dispatchScroll()},a.prototype.snap=function(){var e=this._itemSize,t=this._position%e,n=Math.abs(t)>this._itemSize/2?this._position-(e-Math.abs(t)):this._position-t;this._position!==n&&(this._snapping=!0,this.scrollTo(-n),"function"==typeof this._options.onSnap&&this._options.onSnap(Math.floor(Math.abs(this._position)/this._itemSize)))},a.prototype.scrollTo=function(e,t){this._animation&&(this._animation.cancel(),this._scrolling=!1),"number"==typeof e&&(this._position=-e),this._position<-this._extent?this._position=-this._extent:this._position>0&&(this._position=0),this._element.style.transition="transform "+(t||.2)+"s ease-out",this._element.style.webkitTransition="-webkit-transform "+(t||.2)+"s ease-out",this.updatePosition(),this._element.addEventListener("transitionend",this._onTransitionEnd),this._element.addEventListener("webkitTransitionEnd",this._onTransitionEnd)},a.prototype.dispatchScroll=function(){if("function"==typeof this._options.onScroll&&Math.round(this._lastPos)!==Math.round(this._position)){this._lastPos=this._position;var e={target:{scrollLeft:this._enableX?-this._position:0,scrollTop:this._enableY?-this._position:0,scrollHeight:this._scrollHeight||this._element.offsetHeight,scrollWidth:this._scrollWidth||this._element.offsetWidth,offsetHeight:this._element.parentElement.offsetHeight,offsetWidth:this._element.parentElement.offsetWidth}};this._options.onScroll(e)}},a.prototype.update=function(e,t,n){var i=0,o=this._position;this._enableX?(i=(t||this._element.offsetWidth)-this._element.parentElement.offsetWidth,this._scrollWidth=t):(i=(t||this._element.offsetHeight)-this._element.parentElement.offsetHeight,this._scrollHeight=t),"number"==typeof e&&(this._position=-e),this._position<-i?this._position=-i:this._position>0&&(this._position=0),this._itemSize=n||this._itemSize,this.updatePosition(),o!==this._position&&(this.dispatchScroll(),"function"==typeof this._options.onSnap&&this._options.onSnap(Math.floor(Math.abs(this._position)/this._itemSize))),this._extent=i,this._scroll._extent=i},a.prototype.updatePosition=function(){var e="";this._enableX?e="translateX("+this._position+"px) translateZ(0)":this._enableY&&(e="translateY("+this._position+"px) translateZ(0)"),this._element.style.webkitTransform=e,this._element.style.transform=e},a.prototype.isScrolling=function(){return this._scrolling||this._snapping},window.exparser.registerBehavior({is:"wx-scroller",methods:{initScroller:function(e,t){this._touchInfo={trackingID:-1,maxDy:0,maxDx:0},this._scroller=new a(e,t),this.__handleTouchStart=this._handleTouchStart.bind(this),this.__handleTouchMove=this._handleTouchMove.bind(this),this.__handleTouchEnd=this._handleTouchEnd.bind(this),this._initedScroller=!0},_findDelta:function(e){var t=this._touchInfo;return"move"==e.detail.state||"end"==e.detail.state?{x:e.detail.dx,y:e.detail.dy}:{x:e.screenX-t.x,y:e.screenY-t.y}},_handleTouchStart:function(e){var t=this._touchInfo,n=this._scroller;n&&("start"==e.detail.state?(t.trackingID="touch",t.x=e.detail.x,t.y=e.detail.y):(t.trackingID="mouse",t.x=e.screenX,t.y=e.screenY),t.maxDx=0,t.maxDy=0,t.historyX=[0],t.historyY=[0],t.historyTime=[e.detail.timeStamp],t.listener=n,n.onTouchStart&&n.onTouchStart())},_handleTouchMove:function(e){var t=this._touchInfo;if(t.trackingID!=-1){e.preventDefault();var n=this._findDelta(e);if(n){for(t.maxDy=Math.max(t.maxDy,Math.abs(n.y)),t.maxDx=Math.max(t.maxDx,Math.abs(n.x)),t.historyX.push(n.x),t.historyY.push(n.y),t.historyTime.push(e.detail.timeStamp);t.historyTime.length>10;)t.historyTime.shift(),t.historyX.shift(),t.historyY.shift();t.listener&&t.listener.onTouchMove&&t.listener.onTouchMove(n.x,n.y,e.detail.timeStamp)}}},_handleTouchEnd:function(e){var t=this._touchInfo;if(t.trackingID!=-1){e.preventDefault();var n=this._findDelta(e); +if(n){var i=t.listener;t.trackingID=-1,t.listener=null;var o=t.historyTime.length,r={x:0,y:0};if(o>2)for(var a=t.historyTime.length-1,s=t.historyTime[a],l=t.historyX[a],c=t.historyY[a];a>0;){a--;var d=t.historyTime[a],u=s-d;if(u>30&&u<50){r.x=(l-t.historyX[a])/(u/1e3),r.y=(c-t.historyY[a])/(u/1e3);break}}t.historyTime=[],t.historyX=[],t.historyY=[],i&&i.onTouchEnd&&i.onTouchEnd(n.x,n.y,r)}}}}})}(),exparser.registerBehavior({is:"wx-touchtrack",methods:{touchtrack:function(e,t,n){var i=this,o=0,r=0,a=0,s=0,l=function(e,n,l,c){var d=i[t].call(i,{target:e.target,currentTarget:e.currentTarget,preventDefault:e.preventDefault.bind(e),stopPropagation:e.stopPropagation.bind(e),detail:{state:n,x:l,y:c,dx:l-o,dy:c-r,ddx:l-a,ddy:c-s,timeStamp:e.timeStamp}});if(d===!1)return!1},c=null;exparser.addListenerToElement(e,"touchstart",function(e){if(1===e.touches.length&&!c)return c=e,o=a=e.touches[0].pageX,r=s=e.touches[0].pageY,l(e,"start",o,r)}),exparser.addListenerToElement(e,"touchmove",function(e){if(1===e.touches.length&&c){var t=l(e,"move",e.touches[0].pageX,e.touches[0].pageY);return a=e.touches[0].pageX,s=e.touches[0].pageY,t}}),exparser.addListenerToElement(e,"touchend",function(e){if(0===e.touches.length&&c)return c=null,l(e,"end",e.changedTouches[0].pageX,e.changedTouches[0].pageY)}),exparser.addListenerToElement(e,"touchcancel",function(e){if(c){var t=c;return c=null,l(e,n?"cancel":"end",t.touches[0].pageX,t.touches[0].pageY)}})}}}),window.exparser.registerElement({is:"wx-action-sheet",template:function(e,t,n){return[{t:1,n:"div",id:"mask",cl:{v:"wx-action-sheet-mask"},st:{v:"display: none;"},a:[{n:"z-index",v:"1000",o:"s"}],c:[]},{t:1,n:"div",cl:{v:"wx-action-sheet"},a:[{n:"wx-action-sheet-show",o:"c",e:function(e,t,n){return!e.hidden},l:null,b:[[null,"hidden"]]}],c:[{t:1,n:"div",cl:{v:"wx-action-sheet-menu"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]}]},behaviors:["wx-base"],properties:{hidden:{type:Boolean,value:!0,observer:"hiddenChange",public:!0}},listeners:{"mask.tap":"hide","this.actionSheetCancel":"cancel"},methods:{cancel:function(e){return this.hide(),!1},hide:function(){this.triggerEvent("change")},hiddenChange:function(e){var t=this.$.mask;e?(setTimeout(function(){t.style.display="none"},300),t.style.backgroundColor="rgba(0,0,0,0)"):(t.style.display="block",t.focus(),t.style.backgroundColor="rgba(0,0,0,0.6)")}}}),window.exparser.registerElement({is:"wx-action-sheet-cancel",template:function(e,t,n){return[{t:1,n:"div",id:"middle",cl:{v:"wx-action-sheet-middle"},a:[],c:[]},{t:1,n:"div",id:"cancel",cl:{v:"wx-action-sheet-cancel"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]},properties:{},listeners:{"middle.tap":"handleMiddleTap","cancel.tap":"handleCancelTap"},behaviors:["wx-base"],methods:{handleMiddleTap:function(e){return!1},handleCancelTap:function(e){this.triggerEvent("actionSheetCancel",void 0,{bubbles:!0})}}}),window.exparser.registerElement({is:"wx-action-sheet-item",template:function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},properties:{},behaviors:["wx-base"]}),window.exparser.registerElement({is:"wx-audio",behaviors:["wx-base","wx-player"],template:function(e,t,n){return[{t:1,n:"audio",id:"player",st:{v:"display: none;"},a:[{n:"loop",o:"$",e:function(e,t,n){return e.loop},l:[null],b:[[null,"loop"]]}],c:[]},{t:1,n:"div",id:"default",cl:{v:"wx-audio-default"},st:{v:"display: none;"},a:[],c:[{t:1,n:"div",id:"poster",cl:{v:"wx-audio-left"},a:[],c:[{t:1,n:"div",id:"button",cl:{e:function(e,t,n){return"wx-audio-button "+e._buttonType},b:[[null,"_buttonType"]]},a:[],c:[]}]},{t:1,n:"div",cl:{v:"wx-audio-right"},a:[],c:[{t:1,n:"div",cl:{v:"wx-audio-time"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._currentTime},b:[[null,"_currentTime"]],t:3}]},{t:1,n:"div",cl:{v:"wx-audio-info"},a:[],c:[{t:1,n:"div",cl:{v:"wx-audio-name"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.name},b:[[null,"name"]],t:3}]},{t:1,n:"div",cl:{v:"wx-audio-author"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.author},b:[[null,"author"]],t:3}]}]}]}]},{t:1,n:"div",id:"fakebutton",a:[],c:[]}]},properties:{action:{type:Object,observer:"actionChanged",public:!0},name:{type:String,value:"未知歌曲",public:!0},author:{type:String,value:"未知作者",public:!0},loop:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!1,observer:"controlsChanged",public:!0},_srcTimer:{type:Number},_actionTimer:{type:Number},_canSrc:{type:Boolean,value:!0},_deferredSrc:{type:String,value:""},_canAction:{type:Boolean,value:!1},_deferredAction:{type:Array,value:[]}},methods:{_reset:function(){this._buttonType="play",this._currentTime="00:00",this._duration="00:00"},_readySrc:function(){this._canSrc=!0,this._srcChanged(this._deferredSrc),this._deferredSrc=""},_readyAction:function(){var e=this;this._canAction=!0,this._deferredAction.forEach(function(t){e.actionChanged(t)},this),this._deferredAction=[]},_srcChanged:function(e,t){if(e){clearTimeout(this._srcTimer),this._canAction=!1,this.$.player.src=e;var n=this;this._srcTimer=setTimeout(function(){n._reset(),n._readyAction()},0)}},_posterChanged:function(e,t){this.$.poster.style.backgroundImage="url('"+e+"')"},controlsChanged:function(e,t){this.$.default.style.display=e?"":"none"},actionChanged:function(e,t){var n=this;if(e){var i=e.method;if(this.action=e,!this._canAction&&"setSrc"!==i)return void this._deferredAction.push(e);var o=null;if(null!=(o=/^set([a-z|A-Z]*)/.exec(i))){var r=o[1],a=e.data;if(r=r[0].toLowerCase()+r.slice(1),"currentTime"==r)if(0===this.$.player.readyState||1===this.$.player.readyState){var s=function e(){n.$.player[r]=a,n.$.player.removeEventListener("canplay",e,!1)};this.$.player.addEventListener("canplay",s,!1)}else this.$.player[r]=a;else"src"===r?this._srcChanged(a):this.triggerEvent("error",{errMsg:i+" is not an action"})}else if("play"==i||"pause"==i){if(this.isBackground===!0&&"play"===i)return;this.$.fakebutton.click()}else this.triggerEvent("error",{errMsg:i+" is not an action"});this.action=null}}},attached:function(){var e=this,t=this.$.player,n=this;this.$.button.onclick=function(e){e.stopPropagation(),n.action={method:n._buttonType}},this.$.fakebutton.onclick=function(e){e.stopPropagation(),n.action&&"function"==typeof t[n.action.method]&&t[n.action.method]()},WeixinJSBridge.subscribe("audio_"+this.id+"_actionChanged",function(t){e.action=t}),WeixinJSBridge.publish("audioInsert",{audioId:this.id}),wx.onAppEnterBackground(function(t){e.$.player.pause(),e.isBackground=!0}),wx.onAppEnterForeground(function(t){e.isBackground=!1})}});var touchEventNames=["touchstart","touchmove","touchend","touchcancel","longtap"],touchEventMap={touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",touchcancel:"onTouchCancel",longtap:"onLongPress"},LONG_PRESS_TIME_THRESHOLD=300,LONG_PRESS_DISTANCE_THRESHOLD=5,format=function(e,t,n,i){n=Array.prototype.slice.call(n);var o=e+"."+t+"("+n.map(function(e){return"string"==typeof e?"'"+e+"'":e}).join(", ")+")";return i&&(o=i+" = "+o),o},resolveColor=function(e){var t=e.slice(0);return t[3]=t[3]/255,"rgba("+t.join(",")+")"},getCanvasTouches=function(e){var t=this;return[].concat(_toConsumableArray(e)).map(function(e){return{identifier:e.identifier,x:e.pageX-t._box.left,y:e.pageY-t._box.top}})},calcDistance=function(e,t){var n=e.x-t.x,i=e.y-t.y;return n*n+i*i};window.exparser.registerElement({is:"wx-canvas",behaviors:["wx-base","wx-native"],template:function(e,t,n){return[{t:1,n:"canvas",id:"canvas",a:[{n:"width",v:"300"},{n:"height",v:"150"}],c:[]}]},properties:{canvasId:{type:String,public:!0},bindtouchstart:{type:String,value:"",public:!0},bindtouchmove:{type:String,value:"",public:!0},bindtouchend:{type:String,value:"",public:!0},bindtouchcancel:{type:String,value:"",public:!0},bindlongtap:{type:String,value:"",public:!0},disableScroll:{type:Boolean,value:!1,public:!0,observer:"disableScrollChanged"}},attached:function(){var e=this,t=(this.$.canvas,this);if(this._images={},this._box=this._getBox(),this.$.canvas.width=this.$$.offsetWidth,this.$.canvas.height=this.$$.offsetHeight,!this.canvasId)return this.triggerEvent("error",{errMsg:"canvas-id attribute is undefined"}),this._isError=!0,void(this.$$.style.display="none");window.__canvasNumbers__=window.__canvasNumbers__||{};var n=window.__webviewId__+"canvas"+this.canvasId;if(window.__canvasNumbers__.hasOwnProperty(n))return this.triggerEvent("error",{errMsg:"canvas-id "+t.canvasId+" in this page has already existed"}),this._isError=!0,void(this.$$.style.display="none");if(window.__canvasNumber__=window.__canvasNumber__||1e5,window.__canvasNumbers__[n]=window.__canvasNumber__+__webviewId__,window.__canvasNumber__+=1e5,this._canvasNumber=window.__canvasNumbers__[n],this._isMobile()){t._isReady=!1;var i={target:{target:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},startTime:+new Date},o=!1;touchEventNames.forEach(function(t){e["bind"+t]&&(i[touchEventMap[t]]=e["bind"+t],o=!0)}),WeixinJSBridge.invoke("insertCanvas",{data:JSON.stringify({type:"canvas",webviewId:window.__webviewId__,canvasNumber:t._canvasNumber}),gesture:o,canvasId:t._canvasNumber,position:t._box,hide:this.hidden,disableScroll:this.disableScroll},function(e){WeixinJSBridge.publish("canvasInsert",{canvasId:t.canvasId,canvasNumber:t._canvasNumber,data:i}),t._ready(),document.addEventListener("pageReRender",t._pageReRenderCallback.bind(t))})}else WeixinJSBridge.publish("canvasInsert",{canvasId:t.canvasId,canvasNumber:t._canvasNumber}),WeixinJSBridge.subscribe("canvas"+t._canvasNumber+"actionsChanged",function(e){var n=e.actions,i=e.reserve;t.actions=n,t.actionsChanged(n,i)}),WeixinJSBridge.subscribe("invokeCanvasToDataUrl_"+this._canvasNumber,function(){var t=e.$.canvas.toDataURL().replace(/^data:image\/(jpg|png);base64,/,"");WeixinJSBridge.publish("onCanvasToDataUrl_"+e._canvasNumber,{dataUrl:t})}),t._ready(),document.addEventListener("pageReRender",t._pageReRenderCallback.bind(t)),this.addTouchEventForWebview()},detached:function(){var e=__webviewId__+"canvas"+this.canvasId;delete window.__canvasNumbers__[e],this._isMobile()&&WeixinJSBridge.invoke("removeCanvas",{canvasId:this._canvasNumber},function(e){}),WeixinJSBridge.publish("canvasRemove",{canvasId:this.canvasId,canvasNumber:this._canvasNumber})},methods:{_updatePosition:function(){this.$.canvas.width=this._box.width,this.$.canvas.height=this._box.height,this._isMobile()?WeixinJSBridge.invoke("updateCanvas",{canvasId:this._canvasNumber,position:this._box},function(e){}):this.actionsChanged(this.actions)},addTouchEventForWebview:function(){var e=this;touchEventNames.forEach(function(t){e.$$.addEventListener(t,function(n){var i=getCanvasTouches.call(e,n.touches),o=getCanvasTouches.call(e,n.changedTouches);e.bindlongtap&&(e._touchInfo=e._touchInfo||{},e._disableScroll=e._disableScroll||0,"touchstart"===t?o.forEach(function(t){e._touchInfo[t.identifier]={},e._touchInfo[t.identifier].x=t.x,e._touchInfo[t.identifier].y=t.y,e._touchInfo[t.identifier].timeStamp=n.timeStamp,e._touchInfo[t.identifier].handler=setTimeout(function(){if(e._touchInfo.hasOwnProperty(t.identifier)){e._touchInfo[t.identifier].longPress=!0,++e._disableScroll;var i=[],o=[];for(var r in e._touchInfo){var a={identifier:r,x:e._touchInfo[r].x,y:e._touchInfo[r].y};i.push(a),r===String(t.identifier)&&o.push(a)}wx.publishPageEvent(e.bindlongtap,{type:"bindlongtap",timeStamp:e._touchInfo[t.identifier].timeStamp+LONG_PRESS_TIME_THRESHOLD,target:{id:n.target.parentElement.id,offsetLeft:n.target.offsetLeft,offsetTop:n.target.offsetTop,dataset:e.dataset},touches:i,changedTouches:o})}},LONG_PRESS_TIME_THRESHOLD)}):"touchend"===t||"touchcancel"===t?o.forEach(function(n){e._touchInfo.hasOwnProperty(n.identifier)||console.error("in "+t+", can not found "+n.identifier+" in "+JSON.stringify(e._touchInfo)),e._touchInfo[n.identifier].longPress&&--e._disableScroll,clearTimeout(e._touchInfo[n.identifier].handler),delete e._touchInfo[n.identifier]}):o.forEach(function(n){e._touchInfo.hasOwnProperty(n.identifier)||console.error("in "+t+", can not found "+n.identifier+" in "+JSON.stringify(e._touchInfo)),calcDistance(e._touchInfo[n.identifier],n)>LONG_PRESS_DISTANCE_THRESHOLD&&!e._touchInfo[n.identifier].longPress&&clearTimeout(e._touchInfo[n.identifier].handler),e._touchInfo[n.identifier].x=n.x,e._touchInfo[n.identifier].y=n.y})),e["bind"+t]&&i.length+o.length>0&&wx.publishPageEvent(e["bind"+t],{type:t,timeStamp:n.timeStamp,target:{id:n.target.parentElement.id,offsetLeft:n.target.offsetLeft,offsetTop:n.target.offsetTop,dataset:e.dataset},touches:i,changedTouches:o}),(e.disableScroll||e._disableScroll)&&(n.preventDefault(),n.stopPropagation())})})},actionsChanged:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this._isMobile()&&e){var n=this.$.canvas,i=n.getContext("2d");t===!1&&(i.fillStyle="#000000",i.strokeStyle="#000000",i.shadowColor="#000000",i.shadowBlur=0,i.shadowOffsetX=0,i.shadowOffsetY=0,i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,n.width,n.height)),e.forEach(function(e){var t=this,n=e.method,o=e.data;if(/^set/.test(n)){var r=n[3].toLowerCase()+n.slice(4),a=void 0;if("fillStyle"===r||"strokeStyle"===r){if("normal"===o[0])a=resolveColor(o[1]);else if("linear"===o[0]){var a=i.createLinearGradient.apply(i,o[1]);o[2].forEach(function(e){var t=e[0],n=resolveColor(e[1]);a.addColorStop(t,n)})}else if("radial"===o[0]){var s=o[1][0],l=o[1][1],c=o[1][2],d=[s,l,0,s,l,c],a=i.createRadialGradient.apply(i,d);o[2].forEach(function(e){var t=e[0],n=resolveColor(e[1]);a.addColorStop(t,n)})}i[r]=a}else if("globalAlpha"===r)i[r]=o[0]/255;else if("shadow"===r){var u=["shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor"];o.forEach(function(e,t){"shadowColor"===u[t]?i[u[t]]=resolveColor(e):i[u[t]]=e})}else"fontSize"===r?i.font=i.font.replace(/\d+\.?\d*px/,o[0]+"px"):i[r]=o[0]}else if("fillPath"===n||"strokePath"===n)n=n.replace(/Path/,""),i.beginPath(),o.forEach(function(e){i[e.method].apply(i,e.data)}),i[n]();else if("fillText"===n)i.fillText.apply(i,o);else if("drawImage"===n){var h=_toArray(o),p=h[0],f=h.slice(1);this._images=this._images||{},p=p.replace("wxfile://","http://wxfile.open.weixin.qq.com/"),this._images[p]?i.drawImage.apply(i,[this._images[p]].concat(_toConsumableArray(f))):(this._images[p]=new Image,this._images[p].src=p,this._images[p].onload=function(){i.drawImage.apply(i,[t._images[p]].concat(_toConsumableArray(f)))})}else i[n].apply(i,o)},this)}},_hiddenChanged:function(e,t){this._isMobile()?(this.$$.style.display=e?"none":"",WeixinJSBridge.invoke("updateCanvas",{canvasId:this._canvasNumber,hide:e},function(e){})):this.$$.style.display=e?"none":""},disableScrollChanged:function(e,t){this._isMobile()&&WeixinJSBridge.invoke("updateCanvas",{canvasId:this._canvasNumber,disableScroll:e},function(e){})}}}),window.exparser.registerElement({is:"wx-button",template:function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},behaviors:["wx-base","wx-hover","wx-label-target"],properties:{type:{type:String,value:"default",public:!0},size:{type:String,value:"default",public:!0},disabled:{type:Boolean,public:!0},plain:{type:Boolean,public:!0},loading:{type:Boolean,public:!0},formType:{type:String,public:!0},openType:{value:"",type:String,public:!0},hoverStartTime:{type:Number,value:20,public:!0},hoverStayTime:{type:Number,value:70,public:!0},hoverClass:{type:String,value:"button-hover",public:!0,observer:"_hoverClassChange"},sessionFrom:{type:String,value:"wxapp",public:!0}},listeners:{tap:"_preventTapOnDisabled",longtap:"_preventTapOnDisabled",canceltap:"_preventTapOnDisabled","this.tap":"_onThisTap"},methods:{_preventTapOnDisabled:function(){if(this.disabled)return!1},_onThisTap:function(){"submit"===this.formType?this.triggerEvent("formSubmit",void 0,{bubbles:!0}):"reset"===this.formType&&this.triggerEvent("formReset",void 0,{bubbles:!0}),"contact"===this.openType&&wx.enterContact({sessionFrom:this.sessionFrom})},handleLabelTap:function(e){exparser.triggerEvent(this.shadowRoot,"tap",e.detail,{bubbles:!0,composed:!0,extraFields:{touches:e.touches,changedTouches:e.changedTouches}})}}}),window.exparser.registerElement({is:"wx-checkbox",template:function(e,t,n){return[{t:1,n:"div",cl:{v:"wx-checkbox-wrapper"},a:[],c:[{t:1,n:"div",id:"input",cl:{v:"wx-checkbox-input"},a:[{n:"wx-checkbox-input-checked",o:"c",e:function(e,t,n){return e.checked},l:[null],b:[[null,"checked"]]},{n:"wx-checkbox-input-disabled",o:"c",e:function(e,t,n){return e.disabled},l:[null],b:[[null,"disabled"]]},{n:"color",o:"s",e:function(e,i,o){return t(o,n,"_getColor",[e.checked,e.color])},l:null,b:[[null,"_getColor"],[null,"checked"],[null,"color"]]}],c:[]},{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]},behaviors:["wx-base","wx-label-target","wx-item","wx-disabled"],properties:{color:{type:String,value:"#09BB07",public:!0}},listeners:{tap:"_inputTap"},methods:{_getColor:function(e,t){return e?t:""},_inputTap:function(){return!this.disabled&&(this.checked=!this.checked,void this.changedByTap())},handleLabelTap:function(){this._inputTap()}}});var MAX_SIZE=27,MIN_SIZE=18,buttonTypes={"default-dark":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABRCAYAAABBuPE1AAAAAXNSR0IArs4c6QAAA1tJREFUeAHtm89rE0EcxZttbA00ePBc8CLkEEMlNId69uKtWKt/gqRevcejeBNRj/aiKNibHpVST4GQ5gc9F/RYEaE1BNLG9y1ZSNXa3eyb7Ya8hWUmuztv5vuZN9nJTnZqSpsIiIAIiIAIiMB4EEiVSqXLnU7neb/fv4Umz41Hs09t5X4qlfqYyWTK1Wr1+6lXOTiRHkBcdaB9HpJzMMQqYrK678bZAG/gxDjrdF7XecTkIapxH87/6pjYYzKQ2ggEBJIA0SQEUiBJBEgycqRAkgiQZORIgSQRIMnIkQJJIkCSkSMFkkSAJCNHCiSJAElGjhRIEgGSjBxJApkm6SRaJp/P9x008CsW2p41m80nSPty5OiE57E29LhQKDw0CYEcHeRxScB8IJARIQ6KzwskB+SxioY2CaZACiSJAElGjhRIEgGSjBwpkCQCJBk5UiBJBEgycqRAkgiQZORIIsh9klaSZGKPybPXKZJEgNSWD77OwsLCop93mXr2TgpgvkMlsfeig8AshrfZbLbsax8eHq75eZdpKox40LUPdMwv6K61Wq1XYfTZ18KNNwDyM55iX2BrD+u12+2Ui8WvnXQ6fader+8MVxZ3HhCvAuJ71xD9uKgg4cT1mZmZcq1WM0fGvhWLxUtHR0dXer3ebey2KHUxrkZQQEYdykG/Ms6C0u12z7rE2XkGyEQMZWeEAgpHmpDbUJ6dnV087+/DgLE6vWwkR9pQxl7GvwzWnbZujMRDgQS8b4jtB+7K9+TCk70camhPT09fy+Vy1wXxJET7FGpC/ndxzhHWXZvTmvAqNiEP5cjwVUxOCYEk9bVACiSJAElGjhRIEgGSTFIc+YUUT+wy+JGyZZUmAiR+ry+jQW+w/4ydxIgVWluxv8YKw7JJJGJCPmIsIxXD5P8+ADwN+sDXJttBKkqEI4M0lHUNwLyE1k3seyxN05k4kBY01pI28eBlEc5s2mfGNpEgDdz29vYuQC4huyGQEQngeeoB3Lnied4jSEV6O2xiHen3AVzZB9AKHhGuIH/gHw+bTjxIH1ij0djAnXwJMHf9Y2FSgRyihTt6E8vJdhPatMNIPw2d/m9WIP/AgzX5PcC06dELgLS1cW1RCFQqFZksCkCVFQEREAEREIHEEvgNdubEHW4rptkAAAAASUVORK5CYII=","default-light":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABRCAYAAABBuPE1AAAAAXNSR0IArs4c6QAAAsJJREFUeAHtm71KA0EUhbOijT8o6APY2FgoCFYW9nYK/pSWkvTaig9hrY2iYKmdIOgLWGgrqIUgIpKoIOh6RjMQgpid3bOb3cwZOEyMd86d++UmG3fdUklDBERABERABESgGAQCs80wDIcxbUNzUD9U5FHD5k+gchAET1kVYkEeIOFSVkkzynMIkMsZ5SpZkFUkLHonNjOrAeRA85Np/WxBhmklaKcvQP7Ul8UeurJI4kMOgSS9ygIpkCQCJBt1pECSCJBs1JECSSJAslFHCiSJAMlGHSmQJAIkG3WkQJIIkGzUkQJJIkCyUUcKpBsBXOBLY9zCdB36PRVvMrhtqxjRjZcaUq5xw5trNimDvBNI0ptLBxuBJBEg2agjBZJEgGSjjhRIEgGSjTpSIEkESDbqSIEkESDZqCMFkkSAZKOOJIM0dwJ02si0JtuR5naKThvHtiCci5y2j9Oau+vG5frcKffZGIi2JlNapV5ffiZzpjnieEXcart3jj3MQB8R9xw7zLnOiJmuEDfubE5egD2MQQ8R95wozHnrEbLtIKbX2Zi0ALkHoUloC3qHMhn2M5JRxhtMKrhytxPHzFQbZ11e1rBAXqOgRUA0s5fDfv1JUvwuFk/7DNHAS9KR5q1sbuU1IL0fcUDeg9oztOJ7FzZ2z88/CDQ+0eoxjglDiKkC4merWJffF/1g4wzSBY5LbNFBMg42Lrw6NlYgSS+tQAokiQDJRh0pkCQCJJs8deQFqaZ22JznCeQ8COxDL+0gETOn2eseZPbu38CX/zUo8llz/wg5VAyQs9Aj1HI42PoZCoKj0GUrkn7ScawaEPugo/9gOlr6Gw6IAbQJff0F1F8yMSsHxAWo1gwzpp3fywBxArpphOk3kQTVA+IIdFaHeZrASksBsQfahqZEIyEBQMzTX34Jq9FyERABERABERCBXwLfe8eGVVx752oAAAAASUVORK5CYII="};window.exparser.registerElement({is:"wx-contact-button",behaviors:["wx-base","wx-native"],template:function(e,t,n){return[{t:1,n:"div",id:"wrapper",cl:{v:"wx-contact-button-wrapper"},a:[],c:[]}]},properties:{type:{type:String,value:"default-dark",public:!0,observer:"typeChanged"},size:{type:Number,value:36,public:!0,observer:"sizeChanged"},sessionFrom:{type:String,value:"wxapp",public:!0}},attached:function(){var e=this;if(this._isMobile(),1){var t=void 0;t=buttonTypes[this.type]?buttonTypes[this.type]:buttonTypes["default-dark"],this.$.wrapper.style.backgroundImage="url('"+t+"')",this.$.wrapper.addEventListener("click",function(){e._isMobile()?wx.enterContact({sessionFrom:e.sessionFrom}):alert("进入客服会话,sessionFrom: "+e.sessionFrom)})}else this._box=this._getBox(),console.log("insertContactButton",this._box),wx.insertContactButton({position:this._box,buttonType:this.type,sessionFrom:this.sessionFrom,complete:function(t){console.log("insertContactButton complete",t),e.contactButtonId=t.contactButtonId,document.addEventListener("pageReRender",e._pageReRender.bind(e),!1)}})},detached:function(){this._isMobile(),1},methods:{sizeChanged:function(e,t){this._box=this._getBox(),this.$.wrapper.style.width=this._box.width+"px",this.$.wrapper.style.height=this._box.height+"px",this._updateContactButton()},typeChanged:function(e,t){if(this._isMobile(),1){var n=void 0;n=buttonTypes[this.type]?buttonTypes[this.type]:buttonTypes["default-dark"],this.$.wrapper.style.backgroundImage="url('"+n+"')"}else this._updateContactButton()},_updateContactButton:function(){this._isMobile(),1},_getBox:function(){var e=this.$.wrapper.getBoundingClientRect(),t=this.size;"number"!=typeof t&&(t=MIN_SIZE),t=t>MAX_SIZE?MAX_SIZE:t,t=t=0&&this.value.splice(t,1)}},renameItem:function(e,t,n){if(e.checked){var i=this.value.indexOf(n);i>=0&&(this.value[i]=t)}},changed:function(e){if(e.checked)this.value.push(e.value);else{var t=this.value.indexOf(e.value);t>=0&&this.value.splice(t,1)}}}}),window.exparser.registerElement({is:"wx-form",template:function(e,t,n){return[{t:1,n:"span",id:"wrapper",a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]},behaviors:["wx-base"],properties:{reportSubmit:{type:Boolean,value:!1,public:!0}},listeners:{"this.formSubmit":"submitHandler","this.formReset":"resetHandler"},methods:{resetDfs:function(e){if(e.childNodes)for(var t=0;t0&&(e=e.slice(0,this.maxlength)),this._checkPlaceholderStyle(e),this._showValueChange(e),this._value=e,e},_getPlaceholderStyle:function(e){return e},_placeholderClassChange:function(e){var t=e.split(/\s/);this._placeholderClass=[];for(var n=0;n0))for(var i=0;i0))for(var i=0;i=500&&(r="bold");var a=t.textAlign;return["left","center","right"].indexOf(a)<0&&(a="left"),{width:n.width-i[0]-i[1],height:n.height-o[0]-o[1],left:n.left+i[0]+window.scrollX,top:n.top+o[0]+window.scrollY,fontFamily:t.fontFamily,fontSize:parseFloat(t.fontSize)||16,fontWeight:r,color:this._getHexColor(t.color),backgroundColor:"#00000000",marginBottom:this.cursorSpacing||parseFloat(t.marginBottom),textAlign:a}},getPlaceholderStyle:function(){var e=this.$.placeholder,t=window.getComputedStyle(e),n=parseFloat(t.fontWeight);return isNaN(n)?n=t.fontWeight:n<500?n="normal":n>=500&&(n="bold"),{fontSize:parseFloat(t.fontSize)||16,fontWeight:n,color:this._getHexColor(t.color)}},pageReRenderCallback:function(){this.checkAutoFocus(),this._updateInput(),this.checkLineHeight()},_inputFocus:function(e){return!this.disabled&&(this.triggerEvent("focus",{value:this.value}),!this._keyboardShow&&(this._showNativeInput(),!1))},defaultValueChange:function(e,t){return this.maxlength>0&&(e=e.slice(0,this.maxlength)),this._inputId&&this._keyboardShow?WeixinJSBridge.invoke("updateInput",{value:e||"",inputId:this._inputId,confirmHold:this.confirmHold},function(e){}):this._checkPlaceholderStyle(e),this._value=e,e},_showNativeInput:function(e){var t=this;this.inputArgs=this.getCurrentInputArgs(),this.inputArgs.defaultValue=this.value,WeixinJSBridge.invoke("showKeyboard",this.inputArgs,function(e){/:ok/.test(e.errMsg)?(t._inputId=e.inputId,t._keyboardShow=!0,t.showValue=" "):console.info(e.errMsg)})},_diff:function(e,t){var n={},i=!1;for(var o in t)"[object Object]"===Object.prototype.toString.call(t[o])?JSON.stringify(t[o])!=JSON.stringify(e[o])&&(n[o]=t[o],i=!0):e[o]!=t[o]&&(n[o]=t[o],i=!0);return i?n:void 0},formateEventTarget:function(){var e={bindinput:this.bindinput,target:{id:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},setKeyboardValue:!0};return e.currentTarget=e.target,this.bindinput?JSON.stringify(e):""},_updateInput:function(){if(this._keyboardShow){var e=this.getCurrentInputArgs(),t=this._diff(this.inputArgs,e);t&&(this.inputArgs=e,t.inputId=this._inputId,WeixinJSBridge.invoke("updateInput",t,function(e){}))}},getCurrentInputArgs:function(){return{type:"password"==this.type?"text":this.type,maxLength:this.maxlength,password:this.password||"password"==this.type,style:this.getComputedStyle(),data:this.formateEventTarget(),placeholder:this.placeholder,placeholderStyle:this.getPlaceholderStyle(),confirmHold:this.confirmHold,confirmType:this.confirmType}},_resetInputState:function(){this._keyboardShow=!1,this._inputId=void 0,this.value=this._value||"",this._value=void 0,this._checkPlaceholderStyle(this.value)},_getHexColor:function(e){if(!e)return"#000000";if(e.indexOf("#")>=0)return e;try{var t=e.match(/\d+/g),n=[];if(t.map(function(e,t){if(t<3){var i=parseInt(e).toString(16);i=i.length>1?i:"0"+i,n.push(i)}}),t.length>3){var i=parseFloat(t.slice(3).join("."));0==i?n.push("00"):i>=1?n.push("ff"):(i=parseInt(255*i).toString(16),i=i.length>1?i:"0"+i,n.push(i))}return"#"+n.join("")}catch(e){return"#000000"}},_getPlaceholderStyle:function(e){return e+";display:none;"},checkLineHeight:function(){var e=this;window.requestAnimationFrame(function(){var t=window.getComputedStyle(e.$$),n=e.$$.getBoundingClientRect(),i=["Left","Right"].map(function(e){return parseFloat(t["border"+e+"Width"])+parseFloat(t["padding"+e])}),o=["Top","Bottom"].map(function(e){return parseFloat(t["border"+e+"Width"])+parseFloat(t["padding"+e])}),r=n.height-o[0]-o[1];if(r!=e.__lastHeight){var a=e.$.input;a.style.height=r+"px",a.style.lineHeight=r+"px",a.style.width=n.width-i[0]-i[1]+"px",e.__lastHeight=r}})},_placeholderClassChange:function(e){var t=e.split(/\s/);this._placeholderClass=[];for(var n=0;n0)for(var o=0;o0)for(var o=0;o-1?n.iconPath:wx.getRealRoute(t,n.iconPath),n):e})},_hiddenChanged:function(e,t){this._isMobile()?(this.$$.style.display=e?"none":"",WeixinJSBridge.invoke("updateMap",{mapId:this._mapId,hide:e},function(e){})):this.$$.style.display=e?"none":""},_transformMarkers:function(e){var t=this;return(e||[]).map(function(e){var n={};return e?(Object.keys(e).forEach(function(t){n[t]=e[t]}),e.name&&(n.title=n.title||n.name),(e.iconPath||"").match(/^(http|\/\/)/)&&(console.group(new Date+" iconPath不支持网络地址"),console.warn("iconPath不支持网络地址,如需要,可传入通过wx.downloadFile接口下载得到的临时地址。"),console.groupEnd(),e.iconPath=""),n.longitude=Number(e.longitude),n.latitude=Number(e.latitude),"undefined"!=typeof e.id&&t.bindmarkertap&&(n.data=JSON.stringify({markerId:e.id,bindmarkertap:t.bindmarkertap})),n):n})},_transformControls:function(e){var t=this;return e.map(function(e){var n={};return Object.keys(e).forEach(function(t){n[t]=e[t]}),"undefined"!=typeof e.id&&t.bindcontroltap&&e.clickable&&(n.data=JSON.stringify({controlId:e.id,bindcontroltap:t.bindcontroltap})),n})},_transformColor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";0===e.indexOf("#")&&(e=e.substr(1));var t=Number("0x"+e.substr(0,2)),n=Number("0x"+e.substr(2,2)),i=Number("0x"+e.substr(4,2)),o=e.substr(6,2)?Number("0x"+e.substr(6,2))/255:1;return new qq.maps.Color(t,n,i,o)},_initFeatures:function(){this._mapId&&((this.markers&&this.markers.length>0||this.covers&&this.covers.length>0)&&WeixinJSBridge.invoke("addMapMarkers",{mapId:this._mapId,markers:this._transformMarkers(this.markers).concat(this.covers)},function(e){}),this.includePoints&&this.includePoints.length>0&&WeixinJSBridge.invoke("includeMapPoints",{mapId:this._mapId,points:this.includePoints},function(e){}),this.polyline&&this.polyline.length>0&&WeixinJSBridge.invoke("addMapLines",{mapId:this._mapId,lines:this.polyline},function(e){}),this.circles&&this.circles.length>0&&WeixinJSBridge.invoke("addMapCircles",{mapId:this._mapId,circles:this.circles},function(e){}),this.controls&&this.controls.length>0&&WeixinJSBridge.invoke("addMapControls",{mapId:this._mapId,controls:this._transformControls(this.controls)},function(e){}))},_insertNativeMap:function(){var e=this,t=this.getPositioningId(),n=this.fetchPositioningParentId();this._box=this._getBox(),this._box.width=this._box.width||1,this._box.height=this._box.height||1;var i={position:this._box,centerLongitude:this.longitude,centerLatitude:this.latitude,scale:this.scale,covers:this.covers||[],hide:this.hidden,showLocation:this.showLocation,mapId:t,parentId:n};this._canInvokeNewFeature||(i.markers=this.markers||[]),WeixinJSBridge.invoke("insertMap",i,function(n){/ok/.test(n.errMsg)?(e._mapId=t,e._ready(),e._canInvokeNewFeature&&WeixinJSBridge.publish("mapInsert",{domId:e.id,mapId:e._mapId,showLocation:e.showLocation,bindregionchange:e.bindregionchange,bindtap:e.bindtap}),e.__pageReRenderCallback=e._pageReRenderCallback.bind(e),document.addEventListener("pageReRender",e.__pageReRenderCallback)):e.triggerEvent("error",{errMsg:n.errMsg})})},_insertIframeMap:function(){var e=this,t=this._map=new qq.maps.Map(this.$.map,{zoom:this.scale,center:new qq.maps.LatLng(this.latitude,this.longitude),mapTypeId:qq.maps.MapTypeId.ROADMAP,zoomControl:!1,mapTypeControl:!1});this.$.map.addEventListener("touchmove",function(e){e.stopPropagation()});var n=!1,i=!1;qq.maps.event.addListener(t,"click",function(){e.bindtap&&wx.publishPageEvent(e.bindtap,{})}),qq.maps.event.addListener(t,"drag",function(){e.bindregionchange&&!n&&(wx.publishPageEvent(e.bindregionchange,{type:"begin"}),n=!0,i=!1)}),qq.maps.event.addListener(t,"dragend",function(){n&&(n=!1,i=!0)}),qq.maps.event.addListener(t,"bounds_changed",function(){e.bindregionchange&&i&&(wx.publishPageEvent(e.bindregionchange,{type:"end"}),i=!1)});var o=qq.maps.event.addListener(t,"tilesloaded",function(){e._mapId=__map_jssdk_id++,e._ready(),WeixinJSBridge.subscribe("doMapAction"+e._mapId,function(t){if(e._map&&e._mapId===t.data.mapId)if("getMapCenterLocation"===t.data.method){var n=e._map.getCenter();WeixinJSBridge.publish("doMapActionCallback",{mapId:e._mapId,callbackId:t.data.callbackId,method:t.data.method,latitude:n.getLat(),longitude:n.getLng()})}else"moveToMapLocation"===t.data.method&&e.showLocation&&WeixinJSBridge.invoke("private_geolocation",{},function(t){try{t=JSON.parse(t)}catch(e){t={}}if(t.result&&t.result.location){var n=t.result.location;e._posOverlay&&e._posOverlay.setMap(null),e._posOverlay=new e.CustomOverlay(new qq.maps.LatLng(n.lat,n.lng)),e._posOverlay.setMap(e._map),e._map.panTo(new qq.maps.LatLng(n.lat,n.lng))}})}),WeixinJSBridge.publish("mapInsert",{domId:e.id,mapId:e._mapId,showLocation:e.showLocation,bindregionchange:e.bindregionchange,bindtap:e.bindtap}),qq.maps.event.removeListener(o),o=null}),r=this.CustomOverlay=function(e,t){this.index=t,this.position=e};r.prototype=new qq.maps.Overlay,r.prototype.construct=function(){var e=this.div=document.createElement("div");e.setAttribute("style","width: 32px;height: 32px;background: rgba(31, 154, 228,.3);border-radius: 20px;position: absolute;");var t=document.createElement("div");t.setAttribute("style","position: absolute;width: 16px;height: 16px;background: white;border-radius: 8px;top: 8px;left: 8px;"),e.appendChild(t);var n=document.createElement("div");n.setAttribute("style","position: absolute;width: 12px;height: 12px;background: rgb(31, 154, 228);border-radius: 6px;top: 2px;left: 2px;"),t.appendChild(n);var i=this.getPanes();i.overlayMouseTarget.appendChild(e)},r.prototype.draw=function(){var e=this.getProjection(),t=e.fromLatLngToDivPixel(this.position),n=this.div.style;n.left=t.x-16+"px",n.top=t.y-16+"px"},r.prototype.destroy=function(){this.div.onclick=null,this.div.parentNode.removeChild(this.div),this.div=null}},latitudeChanged:function(e,t){if(e)return this._isReady?void(this._isMobile()?this._update({centerLatitude:e,centerLongitude:this.longitude},"纬度"):this._map.setCenter(new qq.maps.LatLng(e,this.longitude))):void this._delay("latitudeChanged",e,t)},longitudeChanged:function(e,t){if(e)return this._isReady?void(this._isMobile()?this._update({centerLatitude:this.latitude,centerLongitude:e},"经度"):this._map.setCenter(new qq.maps.LatLng(this.latitude,e))):void this._delay("longitudeChanged",e,t)},scaleChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments[1];if(e)return this._isReady?void(this._isMobile()?this._update({centerLatitude:this.latitude,centerLongitude:this.longitude,scale:e},"缩放"):this._map.zoomTo(e)):void this._delay("scaleChanged",e,t)},coversChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];return this._isReady?void(this._isMobile()?wx.getCurrentRoute({success:function(n){e._update({centerLatitude:e.latitude,centerLongitude:e.longitude,covers:e._transformPath(t,n.route)},"覆盖物")}}):((this._covers||[]).forEach(function(e){e.setMap(null)}),this._covers=t.map(function(t){var n=new qq.maps.Marker({position:new qq.maps.LatLng(t.latitude,t.longitude),map:e._map});return t.iconPath&&(t.iconPath.match(/^(http|\/\/)/)?(console.group(new Date+" iconPath不支持网络地址"),console.warn("iconPath不支持网络地址,如需要,可传入通过wx.downloadFile接口下载得到的临时地址。"),console.groupEnd()):n.setIcon(new qq.maps.MarkerImage(t.iconPath))),n}))):void this._delay("coversChanged",t,n)},markersChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];return this._isReady?void(this._isMobile()?wx.getCurrentRoute({success:function(n){var i=e._transformPath(e._transformMarkers(t),n.route);e._canInvokeNewFeature?WeixinJSBridge.invoke("addMapMarkers",{mapId:e._mapId,markers:i},function(e){}):e._update({centerLatitude:e.latitude,centerLongitude:e.longitude,markers:i})}}):((this._markers||[]).forEach(function(e){e.setMap(null)}),this._markers=t.map(function(t){var n=new qq.maps.Marker({position:new qq.maps.LatLng(t.latitude,t.longitude),map:e._map});return(t.iconPath||"").match(/^(http|\/\/)/)?(console.group(new Date+" iconPath不支持网络地址"),console.warn("iconPath不支持网络地址,如需要,可传入通过wx.downloadFile接口下载得到的临时地址。"),console.groupEnd()):t.iconPath&&(t.iconPath=t.iconPath.replace("wxfile://","http://wxfile.open.weixin.qq.com/"),Number(t.width)&&Number(t.height)?n.setIcon(new qq.maps.MarkerImage(t.iconPath,new qq.maps.Size(t.width,t.height),new qq.maps.Point(0,0),new qq.maps.Point(t.width/2,t.height),new qq.maps.Size(t.width,t.height))):n.setIcon(new qq.maps.MarkerImage(t.iconPath))),(t.title||t.name)&&n.setTitle(t.title||t.name),"number"==typeof t.rotate&&n.setRotation&&n.setRotation(t.rotate),e.bindmarkertap&&"undefined"!=typeof t.id&&qq.maps.event.addListener(n,"click",function(n){var i=n.event;i instanceof TouchEvent?"touchend"===i.type&&wx.publishPageEvent(e.bindmarkertap,{markerId:t.id}):wx.publishPageEvent(e.bindmarkertap,{markerId:t.id})}),n}))):void this._delay("markersChanged",t,n)},linesChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];return this._isReady?void(this._isMobile()?(t.forEach(function(e){(e&&e.points||[]).forEach(function(e){e.longitude=Number(e.longitude),e.latitude=Number(e.latitude)})}),this._canInvokeNewFeature&&WeixinJSBridge.invoke("addMapLines",{mapId:this._mapId,lines:t},function(e){})):((this._lines||[]).forEach(function(e){e.setMap(null)}),this._lines=t.map(function(t){var n=t.points.map(function(e){return new qq.maps.LatLng(e.latitude,e.longitude)});return new qq.maps.Polyline({map:e._map,path:n,strokeColor:e._transformColor(t.color)||"",strokeWeight:t.width,strokeDashStyle:t.dottedLine?"dash":"solid"})}))):void this._delay("linesChanged",t,n)},circlesChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];return this._isReady?void(this._isMobile()?(t.forEach(function(e){e.longitude=Number(e.longitude),e.latitude=Number(e.latitude)}),this._canInvokeNewFeature&&WeixinJSBridge.invoke("addMapCircles",{mapId:this._mapId,circles:t},function(e){})):((this._circles||[]).forEach(function(e){e.setMap(null)}),this._circles=t.map(function(t){return new qq.maps.Circle({map:e._map,center:new qq.maps.LatLng(t.latitude,t.longitude),radius:t.radius,fillColor:e._transformColor(t.fillColor)||"",strokeColor:e._transformColor(t.color)||"",strokeWidth:t.strokeWidth})}))):void this._delay("circlesChanged",t,n)},pointsChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(!this._isReady)return void this._delay("pointsChanged",e,t);if(this._isMobile())e.forEach(function(e){e.latitude=Number(e.latitude),e.longitude=Number(e.longitude)}),this._canInvokeNewFeature&&WeixinJSBridge.invoke("includeMapPoints",{mapId:this._mapId,points:e},function(e){});else{if(e.length<=0)return;var n=new qq.maps.LatLngBounds;e.forEach(function(e){n.extend(new qq.maps.LatLng(e.latitude,e.longitude))}),this._map.fitBounds(n)}},controlsChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!this._isReady)return void this._delay("controlsChanged",t,n);if(this._isMobile())this._canInvokeNewFeature&&wx.getCurrentRoute({success:function(n){var i=e._transformPath(e._transformControls(t),n.route);WeixinJSBridge.invoke("addMapControls",{mapId:e._mapId,controls:i},function(e){})}});else{for(var i=this._controls=this._controls||[];i.length;){var o=i.pop();o.onclick=null,o.parentNode.removeChild(o)}t.forEach(function(t){var n=document.createElement("img");n.style.position="absolute",n.style.left=(t.position&&t.position.left||0)+"px",n.style.top=(t.position&&t.position.top||0)+"px",n.style.width=(t.position&&t.position.width||"")+"px",n.style.height=(t.position&&t.position.height||"")+"px",n.style.zIndex=9999,(t.iconPath||"").match(/^(http|\/\/)/)?(console.group(new Date+" iconPath不支持网络地址"),console.warn("iconPath不支持网络地址,如需要,可传入通过wx.downloadFile接口下载得到的临时地址。"),console.groupEnd()):n.src=t.iconPath.replace("wxfile://","http://wxfile.open.weixin.qq.com/"),t.clickable&&"undefined"!=typeof t.id&&(n.onclick=function(){wx.publishPageEvent(e.bindcontroltap,{controlId:t.id})}),i.push(n),e.$.map.appendChild(n)})}},showLocationChanged:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments[1];return this._isReady?void(this._isMobile()?this._update({showLocation:t}):(this._posOverlay&&(this._posOverlay.setMap(null),this._posOverlay=null),t&&WeixinJSBridge.invoke("private_geolocation",{},function(t){try{t=JSON.parse(t)}catch(e){t={}}if(t.result&&t.result.location){var n=t.result.location;e._posOverlay=new e.CustomOverlay(new qq.maps.LatLng(n.lat,n.lng)),e._posOverlay.setMap(e._map)}}))):void this._delay("showLocationChanged",t,n)}},attached:function(){if(this.latitude>90||this.latitude<-90)return console.group(new Date+" latitude 字段取值有误"),console.warn("纬度范围 -90 ~ 90"),void console.groupEnd();if(this.longitude>180||this.longitude<-180)return console.group(new Date+" longitude 字段取值有误"),console.warn("经度范围 -180 ~ 180"),void console.groupEnd();if(this._canInvokeNewFeature=!0,this._isMobile())this._insertNativeMap();else if(__map_jssdk_ready)this._insertIframeMap();else if(__map_jssdk_callback.push(this._insertIframeMap.bind(this)),!document.getElementById("__wx_map_jssdk__")){var e=document.createElement("script");e.id="__wx_map_jssdk__",e.type="text/javascript",e.src="https://map.qq.com/api/js?v=2.exp&callback=__map_jssdk_init",e.async=!0,document.body.appendChild(e)}},detached:function(){this._isMobile()&&(WeixinJSBridge.invoke("removeMap",{mapId:this._mapId},function(e){}),this.__pageReRenderCallback&&document.removeEventListener("pageReRender",this.__pageReRenderCallback))}}),window.exparser.registerElement({is:"wx-mask",template:function(e,t,n){return[{t:1,n:"div",id:"mask",cl:{v:"wx-mask"},st:{v:"display: none;"},a:[],c:[]}]},behaviors:["wx-base"],properties:{hidden:{type:Boolean,value:!0,observer:"hiddenChange",public:!0}},methods:{hiddenChange:function(e){var t=this.$.mask;e===!0?(setTimeout(function(){t.style.display="none"},300),this.$.mask.classList.add("wx-mask-transparent")):(t.style.display="block",t.focus(),t.classList.remove("wx-mask-transparent"))}}}),window.exparser.registerElement({is:"wx-modal",template:function(e,t,n){return[{t:1,n:"div",id:"mask",cl:{v:"wx-modal-mask"},a:[],c:[]},{t:1,n:"div",cl:{v:"wx-modal-dialog"},a:[],c:[{t:1,n:"div",cl:{v:"wx-modal-dialog-hd"},a:[],c:[{t:1,n:"strong",a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.title},b:[[null,"title"]],t:3}]}]},{t:1,n:"div",cl:{v:"wx-modal-dialog-bd"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},{t:1,n:"div",cl:{v:"wx-modal-dialog-ft"},a:[],c:[{t:1,n:"a",id:"cancel",cl:{v:"wx-modal-btn-default"},a:[{n:"hidden",o:"$",e:function(e,t,n){return e.noCancel},l:[null],b:[[null,"noCancel"]]},{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.cancelText},b:[[null,"cancelText"]],t:3}]},{t:1,n:"a",id:"confirm",cl:{v:"wx-modal-btn-primary" +},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.confirmText},b:[[null,"confirmText"]],t:3}]}]}]}]},behaviors:["wx-base"],properties:{title:{type:String,public:!0},noCancel:{type:Boolean,value:!1,public:!0},confirmText:{type:String,value:"确定",public:!0},cancelText:{type:String,value:"取消",public:!0}},listeners:{"mask.tap":"_handleCancel","confirm.tap":"_handleConfirm","cancel.tap":"_handleCancel"},methods:{_handleConfirm:function(){this.triggerEvent("confirm")},_handleCancel:function(){this.triggerEvent("cancel")}}}),window.exparser.registerElement({is:"wx-navigator",behaviors:["wx-base","wx-hover"],template:function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},properties:{url:{type:String,public:!0},delta:{type:Number,public:!0,value:1},redirect:{type:Boolean,value:!1,public:!0},openType:{type:String,value:"navigate",public:!0},hoverClass:{type:String,value:"navigator-hover",public:!0,observer:"_hoverClassChange"},hover:{type:Boolean,value:!0},hoverStayTime:{type:Number,value:600,public:!0}},listeners:{tap:"navigateTo"},methods:{navigateTo:function(){if("navigateBack"!==this.openType&&!this.url)return void console.error(" should have url attribute when using navigateTo, redirectTo or switchTab");if(this.redirect)return void wx.redirectTo({url:this.url});switch(this.openType){case"navigate":case"navigateTo":return void wx.navigateTo({url:this.url});case"redirect":case"redirectTo":return void wx.redirectTo({url:this.url});case"switchTab":return void wx.switchTab({url:this.url});case"navigateBack":return void wx.navigateBack({delta:this.delta});case"reLaunch":return void wx.reLaunch({url:this.url});default:return void console.error(" with invalid openType "+this.openType)}}}}),window.exparser.registerElement({is:"wx-picker",template:function(e,t,n){return[{t:1,n:"div",id:"wrapper",a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]},behaviors:["wx-base","wx-data-component"],properties:{range:{type:Array,value:[],public:!0},value:{type:String,value:"",public:!0},mode:{type:String,value:"selector",public:!0},fields:{type:String,value:"day",public:!0},start:{type:String,value:"",public:!0},end:{type:String,value:"",public:!0},disabled:{type:Boolean,value:!1,public:!0},rangeKey:{type:String,value:"",public:!0}},listeners:{"wrapper.tap":"showPickerView"},methods:{resetFormData:function(){"selector"==this.mode?this.value=-1:this.value=""},getFormData:function(e){this.__pickerShow?this.__formCallback=e:"function"==typeof e&&e(this.value)},formGetDataCallback:function(){"function"==typeof this.__formCallback&&this.__formCallback(this.value),this.__formCallback=void 0},showPickerView:function(){"date"==this.mode||"time"==this.mode?this.showDatePickerView():"selector"===this.mode&&this.showSelector()},getCustomerStyle:function(){var e=this.$.wrapper.getBoundingClientRect();return{width:e.width,height:e.height,left:e.left+window.scrollX,top:e.top+window.scrollY}},showSelector:function(e){var t=this;if(!this.disabled){var n=parseInt(this.value);(isNaN(n)||n>=this.range.length)&&(n=0);var i=[];if(this.rangeKey)for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:[];(this._columns||[]).forEach(function(t,n){t._setCurrent(e[n]||0),t._update()})}}}),window.exparser.registerElement({is:"wx-picker-view-column",template:function(e,t,n){return[{t:1,n:"div",id:"main",cl:{v:"wx-picker__group"},a:[],c:[{t:1,n:"div",id:"mask",cl:{v:"wx-picker__mask"},a:[],c:[]},{t:1,n:"div",id:"indicator",cl:{v:"wx-picker__indicator"},a:[],c:[]},{t:1,n:"div",id:"content",cl:{v:"wx-picker__content"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]}]},behaviors:["wx-base","wx-touchtrack","wx-scroller"],listeners:{"this.tap":"_handleTap"},created:function(){this.touchtrack(this.$.main,"_handleTrack",!0)},attached:function(){var e=this;this._observer=exparser.Observer.create(function(){for(var t=e.$.indicator.offsetHeight,n=e.$.content.children,i=0,o=n.length;i100&&(this.percent=100),e<0&&(this.percent=0),this.__timerId&&clearInterval(this.__timerId),this.activeAnimation(this.active)},activeAnimation:function(e){if(!isNaN(this.percent))if(e){var t=function(){return this.percent<=this.curPercent+1?(this.curPercent=this.percent,void clearInterval(this.__timerId)):void++this.curPercent};this.curPercent=0,this.__timerId=setInterval(t.bind(this),30),t.call(this)}else this.curPercent=this.percent}},detached:function(){this.__timerId&&clearInterval(this.__timerId)}}),window.exparser.registerElement({is:"wx-radio-group",template:function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},behaviors:["wx-base","wx-data-component","wx-group"],properties:{value:{type:String}},created:function(){this._selectedItem=null},methods:{addItem:function(e){e.checked&&(this._selectedItem&&(this._selectedItem.checked=!1),this.value=e.value,this._selectedItem=e)},removeItem:function(e){this._selectedItem===e&&(this.value="",this._selectedItem=null)},renameItem:function(e,t){this._selectedItem===e&&(this.value=t)},changed:function(e){this._selectedItem===e?this.removeItem(e):this.addItem(e)}}});var SCROLL_DELTA=20;window.exparser.registerElement({is:"wx-scroll-view",template:function(e,t,n){return[{t:1,n:"div",id:"wrap",cl:{v:"wx-scroll-view"},a:[],c:[{t:1,n:"div",id:"main",cl:{v:"wx-scroll-view"},st:{v:"overflow-x: hidden; overflow-y: hidden;"},a:[],c:[{t:1,n:"div",id:"content",a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]}]}]},behaviors:["wx-base","wx-touchtrack","wx-scroller","wx-positioning-container"],properties:{scrollX:{type:Boolean,value:!1,public:!0,observer:"_scrollXChanged"},scrollY:{type:Boolean,value:!1,public:!0,observer:"_scrollYChanged"},upperThreshold:{type:Number,value:50,public:!0},lowerThreshold:{type:Number,value:50,public:!0},scrollTop:{type:Number,filter:"_scrollTopChanged",public:!0},scrollLeft:{type:Number,filter:"_scrollLeftChanged",public:!0},scrollIntoView:{type:String,filter:"_scrollIntoViewChanged",public:!0},scrollWithAnimation:{type:Boolean,observer:"_scrollWithAnimationChanged",public:!0,value:!1},enableBackToTop:{type:Boolean,observer:"_enableBackToTopChanged",public:!0,value:!1}},created:function(){this._lastScrollTop=this.scrollTop||0,this._lastScrollLeft=this.scrollLeft||0,this.__transitionEnd=this._transitionEnd.bind(this),this.__pageRerender=this._pageRerender.bind(this),this.touchtrack(this.$.main,"_handleTrack")},attached:function(){var e=this,t=this;this._isAutoHeight=0===this.$$.offsetHeight,this._scrollXChanged(this.scrollX),this._scrollYChanged(this.scrollY),this._scrollTopChanged(this.scrollTop),this._scrollLeftChanged(this.scrollLeft),this._scrollIntoViewChanged(this.scrollIntoView),this.__handleScroll=function(e){e.preventDefault(),e.stopPropagation(),t._syncScrollPosition(),t._handleScroll.bind(t,e)()},this.__handleTouchMove=function(e){var n=e.touches[0].pageY,i=t.$.main;t.__touchStartY0&&e.stopPropagation():i.scrollHeight>i.offsetHeight+i.scrollTop&&e.stopPropagation()},this.__handleTouchStart=function(e){t._syncScrollPosition(),t.__touchStartY=e.touches[0].pageY,WeixinJSBridge.invoke("disableScrollBounce",{disable:!0},function(){})},this.__handleTouchEnd=function(){WeixinJSBridge.invoke("disableScrollBounce",{disable:!1},function(){})},this.$.main.addEventListener("touchstart",this.__handleTouchStart),this.$.main.addEventListener("touchmove",this.__handleTouchMove),this.$.main.addEventListener("touchend",this.__handleTouchEnd),this.$.main.addEventListener("scroll",this.__handleScroll),WeixinJSBridge.on("onTapStatusBar",function(t){e.scrollY&&e.enableBackToTop&&e.scrollTo(0,"y")});var n=window.navigator.userAgent.toLowerCase();if(!/wechatdevtools/.test(n)&&/iphone/.test(n)){document.getElementById("__scroll_view_hack")&&document.body.removeChild(document.getElementById("__scroll_view_hack"));var i=document.createElement("div");i.setAttribute("style","position: fixed; left: 0; bottom: 0; line-height: 1; font-size: 1px; z-index: 10000; border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,.4); width: 1px; height: 1px; overflow: hidden;"),i.innerText=".",i.id="__scroll_view_hack",document.body.appendChild(i)}},detached:function(){this.$.main.removeEventListener("scroll",this.__handleScroll),this.$.main.removeEventListener("touchstart",this.__handleTouchStart),this.$.main.removeEventListener("touchmove",this.__handleTouchMove),this.$.main.removeEventListener("touchend",this.__handleTouchEnd)},methods:{getScrollPosition:function(){var e=this.$.main;return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}},_syncScrollPosition:function(){var e=this;if(!this._scheduledScrollPosition){this._scheduledScrollPosition=!0;var t=4,n=function n(){e._scheduledScrollPosition=!1,e.updateScrollPosition()?t=4:t--,t&&window.requestAnimationFrame(n)};window.requestAnimationFrame(n)}},scrollTo:function(e,t){var n=this.$.main;e<0?e=0:"x"===t&&e>n.scrollWidth-n.offsetWidth?e=n.scrollWidth-n.offsetWidth:"y"===t&&e>n.scrollHeight-n.offsetHeight&&(e=n.scrollHeight-n.offsetHeight);var i=0,o="";"x"===t?i=n.scrollLeft-e:"y"===t&&(i=n.scrollTop-e),0!==i&&(this.$.content.style.transition="transform .3s ease-out",this.$.content.style.webkitTransition="-webkit-transform .3s ease-out","x"===t?o="translateX("+i+"px) translateZ(0)":"y"===t&&(o="translateY("+i+"px) translateZ(0)"),this.$.content.style.transform=o,this.$.content.style.webkitTransform=o,"x"===t?n.style.overflowX="hidden":"y"===t&&(n.style.overflowY="hidden"),this.__transitionEnd=this._transitionEnd.bind(this,e,t),this.$.content.addEventListener("transitionend",this.__transitionEnd),this.$.content.addEventListener("webkitTransitionEnd",this.__transitionEnd))},_getStyle:function(e,t){var n=e?"auto":"hidden",i=t?"auto":"hidden";return"overflow-x: "+n+"; overflow-y: "+i+";"},_handleTrack:function(e){return"start"===e.detail.state?(this._x=e.detail.x,this._y=e.detail.y,void(this._noBubble=null)):("end"===e.detail.state&&(this._noBubble=!1),null===this._noBubble&&this.scrollY&&(Math.abs(this._y-e.detail.y)/Math.abs(this._x-e.detail.x)>1?this._noBubble=!0:this._noBubble=!1),null===this._noBubble&&this.scrollX&&(Math.abs(this._x-e.detail.x)/Math.abs(this._y-e.detail.y)>1?this._noBubble=!0:this._noBubble=!1),this._x=e.detail.x,this._y=e.detail.y,void(this._noBubble&&e.stopPropagation()))},_handleScroll:function(e){if(!(e.timeStamp-this._lastScrollTime0,i=this._lastScrollTop-t.scrollTop<0;t.scrollTop<=this.upperThreshold&&n&&this.triggerEvent("scrolltoupper",{direction:"top"}),t.scrollTop+t.offsetHeight+this.lowerThreshold>=t.scrollHeight&&i&&this.triggerEvent("scrolltolower",{direction:"bottom"})}if(this.scrollX){var o=this._lastScrollLeft-t.scrollLeft>0,r=this._lastScrollLeft-t.scrollLeft<0;t.scrollLeft<=this.upperThreshold&&o&&this.triggerEvent("scrolltoupper",{direction:"left"}),t.scrollLeft+t.offsetWidth+this.lowerThreshold>=t.scrollWidth&&r&&this.triggerEvent("scrolltolower",{direction:"right"})}this._innerSetScrollTop=!0,this._innerSetScrollLeft=!0,this.scrollTop=this._lastScrollTop=t.scrollTop,this.scrollLeft=this._lastScrollLeft=t.scrollLeft}},_scrollXChanged:function(e){var t=this,n=window.navigator.userAgent.toLowerCase();if(e){if(this.scrollY||/android/.test(n))return document.removeEventListener("pageReRender",t.__pageRerender),this.$.main.style.overflowX="auto",this.$.main.style.paddingBottom="",this.$.wrap.style.overflowY="",void(this.$.wrap.style.height="");this.$.main.style.overflowX="auto",this.$.main.style.paddingBottom="20px",this.$.wrap.style.overflowY="hidden",this._isAutoHeight?(this.$.wrap.style.height=this.$.content.offsetHeight+"px",this.$.content.style.height=""):(this.$.wrap.style.height="",this.$.content.style.height=this.$$.offsetHeight+"px"),document.addEventListener("pageReRender",t.__pageRerender)}else document.removeEventListener("pageReRender",t.__pageRerender),this.$.main.style.overflowX="hidden",this.$.main.style.paddingBottom="",this.$.wrap.style.overflowY="",this.$.wrap.style.height="",this.$.content.style.height="100%"},_scrollYChanged:function(e){this.$.main.style.overflowY=e?"auto":"hidden"},_scrollTopChanged:function(e){this.scrollY&&(this._innerSetScrollTop?this._innerSetScrollTop=!1:this.scrollWithAnimation?this.scrollTo(e,"y"):this.$.main.scrollTop=e)},_scrollLeftChanged:function(e){this.scrollX&&(this._innerSetScrollLeft?this._innerSetScrollLeft=!1:this.scrollWithAnimation?this.scrollTo(e,"x"):this.$.main.scrollLeft=e)},_scrollIntoViewChanged:function(e){if(e){if(!/^[a-zA-Z_]/.test(e))return console.group('scroll-into-view="'+e+'" 有误'),console.warn("id属性值格式错误,如不能以数字开头"),void console.groupEnd();var t=this.$$.querySelector("#"+e);t&&(this.scrollWithAnimation?this.scrollTo(t.offsetTop,"y"):this.$.main.scrollTop=t.offsetTop)}},_enableBackToTopChanged:function(e){e?WeixinJSBridge.invoke("listenTapStatusBar",{listen:!0},function(){}):WeixinJSBridge.invoke("listenTapStatusBar",{listen:!1},function(){})},_transitionEnd:function(e,t){this.$.content.style.transition="",this.$.content.style.webkitTransition="",this.$.content.style.transform="",this.$.content.style.webkitTransform="";var n=this.$.main;"x"===t?(n.style.overflowX=this.scrollX?"auto":"hidden",n.scrollLeft=e):"y"===t&&(n.style.overflowY=this.scrollY?"auto":"hidden",n.scrollTop=e),this.$.content.removeEventListener("transitionend",this.__transitionEnd),this.$.content.removeEventListener("webkitTransitionEnd",this.__transitionEnd)},_pageRerender:function(){var e=this;window.requestAnimationFrame(function(){e.$.wrap.style.height=0,e._isAutoHeight=0===e.$$.offsetHeight,e._isAutoHeight?(e.$.wrap.style.height=e.$.content.offsetHeight+"px",e.$.content.style.height=""):(e.$.wrap.style.height="",e.$.content.style.height=e.$$.offsetHeight+"px")})}}});var SLIDE_ACTIVE_COLOR="#1AAD19",SLIDE_BACKGROUND_COLOR="#E9E9E9";window.exparser.registerElement({is:"wx-slider",template:function(e,t,n){return[{t:1,n:"div",cl:{v:"wx-slider-wrapper"},a:[{n:"wx-slider-disabled",o:"c",e:function(e,t,n){return e.disabled},l:[null],b:[[null,"disabled"]]}],c:[{t:1,n:"div",id:"wrapper",cl:{v:"wx-slider-tap-area"},a:[],c:[{t:1,n:"div",cl:{v:"wx-slider-handle-wrapper"},a:[{n:"background-color",o:"s",e:function(e,i,o){return t(o,n,"_getBackgroundColor",[e.color,e.backgroundColor])},l:null,b:[[null,"_getBackgroundColor"],[null,"color"],[null,"backgroundColor"]]}],c:[{t:1,n:"div",id:"handle",cl:{v:"wx-slider-handle"},a:[{n:"left",o:"s",e:function(e,i,o){return t(o,n,"_getValueWidth",[e._filteredValue,e.min,e.max])},l:null,b:[[null,"_getValueWidth"],[null,"_filteredValue"],[null,"min"],[null,"max"]]}],c:[]},{t:1,n:"div",cl:{v:"wx-slider-track"},a:[{n:"width",o:"s",e:function(e,i,o){return t(o,n,"_getValueWidth",[e._filteredValue,e.min,e.max])},l:null,b:[[null,"_getValueWidth"],[null,"_filteredValue"],[null,"min"],[null,"max"]]},{n:"background-color",o:"s",e:function(e,i,o){return t(o,n,"_getActiveColor",[e.selectedColor,e.activeColor])},l:null,b:[[null,"_getActiveColor"],[null,"selectedColor"],[null,"activeColor"]]}],c:[]},{t:1,n:"div",id:"step",cl:{v:"wx-slider-step"},a:[],c:[]}]}]},{t:1,n:"span",cl:{v:"wx-slider-value"},a:[{n:"hidden",o:"$",e:function(e,t,n){return!e.showValue},l:null,b:[[null,"showValue"]]}],c:[{t:1,n:"p",a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._filteredValue},b:[[null,"_filteredValue"]],t:3}]}]}]}]},properties:{min:{type:Number,value:0,public:!0,observer:"_revalicateRange"},max:{type:Number,value:100,public:!0,observer:"_revalicateRange"},step:{type:Number,value:1,public:!0},value:{type:Number,value:0,public:!0,observer:"_revalicateRange"},showValue:{type:Boolean,value:!1,public:!0},activeColor:{type:String,value:SLIDE_ACTIVE_COLOR,public:!0},backgroundColor:{type:String,value:SLIDE_BACKGROUND_COLOR,public:!0},selectedColor:{type:String,value:SLIDE_ACTIVE_COLOR},color:{type:String,value:SLIDE_BACKGROUND_COLOR},_filteredValue:{type:Number}},listeners:{"wrapper.tap":"_onTap"},behaviors:["wx-base","wx-data-component","wx-disabled","wx-touchtrack"],created:function(){this.touchtrack(this.$.handle,"_onTrack")},methods:{_filterValue:function(e){if(ethis.max)return this.max;var t=Math.round((e-this.min)/this.step);return t*this.step+this.min},_revalicateRange:function(){this._filteredValue=this._filterValue(this.value)},_getValueWidth:function(e,t,n){return 100*(e-t)/(n-t)+"%"},_getBackgroundColor:function(e,t){return t!==SLIDE_BACKGROUND_COLOR?t:e!==SLIDE_BACKGROUND_COLOR?e:SLIDE_BACKGROUND_COLOR},_getActiveColor:function(e,t){return t!==SLIDE_ACTIVE_COLOR?t:e!==SLIDE_ACTIVE_COLOR?e:SLIDE_ACTIVE_COLOR},_getXPosition:function(e){for(var t=e.offsetLeft;e;e=e.offsetParent)t+=e.offsetLeft;return t-document.body.scrollLeft},_onUserChangedValue:function(e){var t=this.$.step.offsetWidth,n=this._getXPosition(this.$.step),i=(e.detail.x-n)*(this.max-this.min)/t+this.min;i=this._filterValue(i),this.value=i},_onTrack:function(e){if(!this.disabled)return"move"===e.detail.state?(this._onUserChangedValue(e),!1):void("end"===e.detail.state&&this.triggerEvent("change",{value:this.value}))},_onTap:function(e){this.disabled||(this._onUserChangedValue(e),this.triggerEvent("change",{value:this.value}))},resetFormData:function(){this.value=this.min}}}),window.exparser.registerElement({is:"wx-swiper",template:function(e,t,n){return[{t:1,n:"div",id:"slidesWrapper",cl:{v:"wx-swiper-wrapper"},a:[],c:[{t:1,n:"div",id:"slides",cl:{v:"wx-swiper-slides"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},{t:1,n:"div",id:"slidesDots",cl:{v:"wx-swiper-dots"},a:[{n:"hidden",o:"$",e:function(e,t,n){return!e.indicatorDots},l:null,b:[[null,"indicatorDots"]]},{n:"wx-swiper-dots-horizontal",o:"c",e:function(e,t,n){return!e.vertical},l:null,b:[[null,"vertical"]]},{n:"wx-swiper-dots-vertical",o:"c",e:function(e,t,n){return e.vertical},l:[null],b:[[null,"vertical"]]}],c:[]}]}]},behaviors:["wx-base","wx-touchtrack","wx-positioning-container"],properties:{indicatorDots:{type:Boolean,value:!1,public:!0},vertical:{type:Boolean,value:!1,observer:"_initSlides",public:!0},autoplay:{type:Boolean,value:!1,observer:"_autoplayChanged",public:!0},circular:{type:Boolean,value:!1,observer:"_initSlides",public:!0},interval:{type:Number,value:5e3,public:!0,observer:"_autoplayChanged"},duration:{type:Number,value:500,public:!0},current:{type:Number,value:0,observer:"_currentSlideChanged",public:!0},indicatorColor:{type:String,value:"",observer:"_updateDotsColor",public:!0},indicatorActiveColor:{type:String,value:"",observer:"_updateDotsColor",public:!0}},listeners:{"slidesDots.tap":"_handleDotTap","slides.canceltap":"_handleSlidesCancelTap","this.wxSwiperItemChanged":"_itemChanged"},created:function(){this.touchtrack(this.$.slides,"_handleContentTrack",!0)},attached:function(){this._attachedCb()},moved:function(){this._detachedCb(),this._attachedCb()},detached:function(){this._detachedCb()},methods:{_attachedCb:function(){this._attached=!0,this._initSlides(),this.autoplay&&this._scheduleNextSlide()},_detachedCb:function(){this._attached=!1,this._cancelSchedule()},_initSlides:function(){if(this._attached){this._cancelSchedule();var e=this._items=[],t=function t(n){for(var i=0;i=0?this._updateItemPos(o,o-i):this._updateItemPos(o,-1);this._updateDots(i)}},_updateViewport:function(e,t){var n=this,i=this._viewport;this._viewport=e;var o=this._slideCount,r=function(r){var a=(r%o+o)%o;n.circular&&n._slideCount>1||(r=a);var s=!1;t&&(i<=e?i-1<=r&&r<=e+1&&(s=!0):e-1<=r&&r<=i+1&&(s=!0)),s?n._updateItemPos(a,r-e,r-i):n._updateItemPos(a,r-e)};if(i=0?this.indicatorActiveColor&&(n.style.backgroundColor=this.indicatorActiveColor):this.indicatorColor&&(n.style.backgroundColor=this.indicatorColor)}},_gotoSlide:function(e,t){if(this._slideCount){if(this._updateDots(e),this.circular&&this._slideCount>1){var n=Math.round(this._viewport),i=Math.floor(n/this._slideCount),o=i*this._slideCount+e;t>0?on&&(o-=this._slideCount),this._updateViewport(o,!0)}else this._updateViewport(e,!0);this.autoplay&&this._scheduleNextSlide()}},_updateItemPos:function(e,t,n){if(void 0!==n||this._itemPos[e]!==t){this._itemPos[e]=t;var i=0;void 0!==n&&(i=this.duration),this.vertical?this._items[e]._setTransform(i,0,t,0,n):this._items[e]._setTransform(i,t,0,n,0)}},_stopItemsAnimation:function(){for(var e=0;e1||(r<0||r>i-1)&&(r<0?r=-o(-r):r>i-1&&(r=i-1+o(r-(i-1))),t._contentTrackSpeed=0),t._updateViewport(r,!1)};this.vertical?r(-e.dy/this.$.slidesWrapper.offsetHeight,-e.ddy/(this._contentTrackT-n)):r(-e.dx/this.$.slidesWrapper.offsetWidth,-e.ddx/(this._contentTrackT-n))},_handleTrackEnd:function(e){this.autoplay&&this._scheduleNextSlide(),this._tracking=!1;var t=0;!e&&Math.abs(this._contentTrackSpeed)>.2&&(t=.5*this._contentTrackSpeed/Math.abs(this._contentTrackSpeed));var n=this._normalizeCurrentSlide(this._viewport+t);this.current!==n?(this._nextDirection=this._contentTrackSpeed,this.current=n):this._gotoSlide(n,0),e&&this._stopItemsAnimation(),this.autoplay&&this._scheduleNextSlide()},_handleContentTrack:function(e){if(this._isCurrentSlideLegal(this.current)){if("start"===e.detail.state)return this._userTracking=!0,this._userWaitingCancelTap=!1,this._userDirectionChecked=!1,this._handleTrackStart();if(this._userTracking){if(this._userWaitingCancelTap)return!1;if(!this._userDirectionChecked){this._userDirectionChecked=!0;var t=Math.abs(e.detail.dx),n=Math.abs(e.detail.dy);if(t>=n&&this.vertical?this._userTracking=!1:t<=n&&!this.vertical&&(this._userTracking=!1),!this._userTracking)return void(this.autoplay&&this._scheduleNextSlide()); +}return"end"===e.detail.state?this._handleTrackEnd(!1):"cancel"===e.detail.state?this._handleTrackEnd(!0):(this._handleTrackMove(e.detail),!1)}}},getScrollPosition:function(){return{scrollLeft:0,scrollTop:0}}}}),function(){var e=function(e,t,n){var i="translate("+100*t+"%, "+100*n+"%) translateZ(0)";e.style["-webkit-transform"]=i,e.style.transform=i},t=!1,n=[],i=function(e){n.push(e),t||(t=!0,requestAnimationFrame(function(){t=!1;var e=n;n=[];for(var i=0;i=1&&r>=1||n<=-1&&r<=-1||n===r,d=o>=1&&a>=1||o<=-1&&a<=-1||o===a;c&&d&&(l=!1)}if(l){this._toX=n,this._toY=o,this.$$.style.willChange="transform",e(this.$$,r,a);var u=this._currentTransformId,h=r-n,p=2*h/(t*t),f=a-o,g=2*f/(t*t),v=Date.now()+t,_=function t(){if(u===s._currentTransformId){var r=v-Date.now();if(r<=0)return s._toX=void 0,s._toY=void 0,e(s.$$,n,o),void(s.$$.style.willChange="auto");var a=p*r*r/2,l=n+a,c=g*r*r/2,d=o+c;e(s.$$,l,d),i(t)}};i(_)}else e(this.$$,n,o),this.$$.style.willChange="auto"},_interruptTransform:function(){this._currentTransformId++,void 0!==this._toX&&(e(this.$$,this._toX,this._toY),this.$$.style.willChange="auto")},getScrollPosition:function(){return{scrollLeft:0,scrollTop:0}},_keepSyncScrollPosition:function(){var e=this;if(!this._scheduledScrollPosition){this._scheduledScrollPosition=!0;var t=0,n={},i=function i(){var o=e.getPositioningOffset();return o.left===n.left&&o.top===n.top&&(t++,4===t)?void(e._scheduledScrollPosition=!1):(n=o,e.updateScrollPosition(o),void window.requestAnimationFrame(i))};window.requestAnimationFrame(i)}}}})}(),window.exparser.registerElement({is:"wx-switch",template:function(e,t,n){return[{t:1,n:"div",cl:{v:"wx-switch-wrapper"},a:[],c:[{t:1,n:"div",id:"switchInput",cl:{v:"wx-switch-input"},a:[{n:"hidden",o:"$",e:function(e,i,o){return!t(o,n,"isSwitch",[e.type])},l:null,b:[[null,"isSwitch"],[null,"type"]]},{n:"type",v:"checkbox"},{n:"wx-switch-input-checked",o:"c",e:function(e,t,n){return e.checked},l:[null],b:[[null,"checked"]]},{n:"wx-switch-input-disabled",o:"c",e:function(e,t,n){return e.disabled},l:[null],b:[[null,"disabled"]]},{n:"background-color",o:"s",e:function(e,t,n){return e.color},l:[null],b:[[null,"color"]]},{n:"border-color",o:"s",e:function(e,i,o){return t(o,n,"_getSwitchBorderColor",[e.checked,e.color])},l:null,b:[[null,"_getSwitchBorderColor"],[null,"checked"],[null,"color"]]}],c:[]},{t:1,n:"div",id:"checkboxInput",cl:{v:"wx-checkbox-input"},a:[{n:"hidden",o:"$",e:function(e,i,o){return!t(o,n,"isCheckbox",[e.type])},l:null,b:[[null,"isCheckbox"],[null,"type"]]},{n:"type",v:"checkbox"},{n:"wx-checkbox-input-checked",o:"c",e:function(e,t,n){return e.checked},l:[null],b:[[null,"checked"]]},{n:"wx-checkbox-input-disabled",o:"c",e:function(e,t,n){return e.disabled},l:[null],b:[[null,"disabled"]]},{n:"color",o:"s",e:function(e,t,n){return e.color},l:[null],b:[[null,"color"]]}],c:[]}]}]},properties:{checked:{type:Boolean,value:!1,public:!0},type:{type:String,value:"switch",public:!0},color:{type:String,value:"#04BE02",public:!0}},behaviors:["wx-base","wx-label-target","wx-disabled","wx-data-component"],listeners:{"switchInput.tap":"onInputChange","checkboxInput.tap":"onInputChange"},methods:{_getSwitchBorderColor:function(e,t){return e?t:""},handleLabelTap:function(e){this.disabled||(this.checked=!this.checked)},onInputChange:function(e){return this.checked=!this.checked,this.disabled?void(this.checked=!this.checked):void this.triggerEvent("change",{value:this.checked})},isSwitch:function(e){return"checkbox"!==e},isCheckbox:function(e){return"checkbox"===e},getFormData:function(){return this.checked},resetFormData:function(){this.checked=!1}}}),window.exparser.registerElement({is:"wx-text",template:function(e,t,n){return[{t:1,n:"span",id:"raw",st:{v:"display:none;"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},{t:1,n:"span",id:"main",a:[],c:[]}]},behaviors:["wx-base"],properties:{style:{type:String,public:!0,observer:"_styleChanged"},class:{type:String,public:!0,observer:"_classChanged"},selectable:{type:Boolean,value:!1,public:!0}},methods:{_styleChanged:function(e){this.$$.setAttribute("style",e)},_classChanged:function(e){this.$$.setAttribute("class",e)},_htmlEncode:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/\"/g,""").replace(/\'/g,"'")},_update:function(){for(var e=this.$.raw,t=document.createDocumentFragment(),n=0,i=e.childNodes.length;n"),t.appendChild(r)}else o.nodeType===o.ELEMENT_NODE&&"WX-TEXT"===o.tagName&&t.appendChild(o.cloneNode(!0))}this.$.main.innerHTML="",this.$.main.appendChild(t)}},created:function(){this._observer=exparser.Observer.create(function(){this._update()}),this._observer.observe(this,{childList:!0,subtree:!0,characterData:!0,properties:!0})},attached:function(){this._update()}}),function(){/wechatdevtools/.test(window.navigator.userAgent.toLowerCase())&&window.exparser.registerElement({is:"wx-textarea",behaviors:["wx-base","wx-data-component"],template:function(e,t,n){return[{t:1,n:"div",id:"wrapped",a:[],c:[{t:1,n:"div",id:"placeholder",a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e.placeholder},b:[[null,"placeholder"]],t:3}]},{t:1,n:"textarea",id:"textarea",a:[{n:"maxlength",o:"$",e:function(e,i,o){return t(o,n,"_getMaxlength",[e.maxlength])},l:null,b:[[null,"_getMaxlength"],[null,"maxlength"]]}],c:[]},{t:1,n:"div",id:"compute",cl:{v:"compute"},a:[],c:[]},{t:1,n:"div",id:"stylecompute",cl:{e:function(e,i,o){return t(o,n,"_getPlaceholderClass",[e.placeholderClass])},b:[[null,"_getPlaceholderClass"],[null,"placeholderClass"]]},st:{e:function(e,i,o){return t(o,n,"_getPlaceholderStyle",[e.placeholderStyle])},b:[[null,"_getPlaceholderStyle"],[null,"placeholderStyle"]]},a:[],c:[]}]}]},properties:{value:{type:String,value:"",public:!0,filter:"defaultValueChange"},maxlength:{type:Number,value:140,public:!0,observer:"maxlengthChanged"},placeholder:{type:String,value:"",public:!0},hidden:{type:Boolean,value:!1,public:!0},disabled:{type:Boolean,value:!1,public:!0},focus:{type:Number,value:0,public:!0,filter:"focusChanged"},autoFocus:{type:Boolean,value:!1,public:!0},placeholderClass:{type:String,value:"textarea-placeholder",observer:"_getComputePlaceholderStyle",public:!0},placeholderStyle:{type:String,value:"",observer:"_getComputePlaceholderStyle",public:!0},autoHeight:{type:Boolean,value:!1,public:!0,observer:"autoHeightChanged"},bindinput:{type:String,value:"",public:!0}},listeners:{"textarea.input":"onTextAreaInput","textarea.focus":"onTextAreaFocus","textarea.blur":"onTextAreaBlur"},attached:function(){var e=this;this.__attached=!0,this.__scale=750/window.innerWidth,this.getComputedStyle(),this.checkRows(this.value),this.__updateTextArea=this.updateTextArea.bind(this),document.addEventListener("pageReRender",this.__updateTextArea),this.__routeDoneId=exparser.addListenerToElement(document,"routeDone",function(){e.checkAutoFocus()}),this.checkPlaceholderStyle(this.value)},detached:function(){document.removeEventListener("pageReRender",this.__updateTextArea),exparser.removeListenerFromElement(document,"routeDone",this.__routeDoneId)},methods:{resetFormData:function(){this.$.textarea.value="",this.value=""},getFormData:function(e){var t=this;this.value=this.$.textarea.value,setTimeout(function(){"function"==typeof e&&e(t.value)},0)},couldFocus:function(e){var t=this;this.__attached&&(!this._keyboardShow&&e?this.disabled||window.requestAnimationFrame(function(){t.$.textarea.focus()}):this._keyboardShow&&!e&&this.$.textarea.blur())},focusChanged:function(e,t){return this.couldFocus(Boolean(e)),e},checkAutoFocus:function(){this.__autoFocused||(this.__autoFocused=!0,this.couldFocus(this.autoFocus||this.focus))},getHexColor:function(e){try{if(e.indexOf("#")>=0)return e;var t=e.match(/\d+/g),n=[];if(t.map(function(e,t){if(t<3){var i=parseInt(e);i=i>9?i.toString(16):"0"+i,n.push(i)}}),t.length>3){var i=parseFloat(t.slice(3).join("."));0==i?n.push("00"):i>=1?n.push("ff"):(i=parseInt(255*i),i=i>9?i.toString(16):"0"+i,n.push(i))}return"#"+n.join("")}catch(e){return""}},getComputedStyle:function(){var e=this;window.requestAnimationFrame(function(){var t=window.getComputedStyle(e.$$),n=e.$$.getBoundingClientRect(),i=["Left","Right"].map(function(e){return parseFloat(t["border"+e+"Width"])+parseFloat(t["padding"+e])}),o=["Top","Bottom"].map(function(e){return parseFloat(t["border"+e+"Width"])+parseFloat(t["padding"+e])}),r=e.$.textarea;r.style.width=n.width-i[0]-i[1]+"px",r.style.height=n.height-o[0]-o[1]+"px",r.style.fontWeight=t.fontWeight,r.style.fontSize=t.fontSize||"16px",r.style.color=t.color,e.$.compute.style.fontSize=t.fontSize||"16px",e.$.compute.style.width=r.style.width,e.$.placeholder.style.width=r.style.width,e.$.placeholder.style.height=r.style.height,e._styleMaxHeight=parseFloat(t.maxHeight.replace("px")),e.autoHeight&&e._lineHeight&&e._lineHeight>e._styleMaxHeight&&(e.$$.style.maxHeight=e._lineHeight+"px"),e.disabled?r.setAttribute("disabled",!0):r.removeAttribute("disabled")})},getCurrentRows:function(e,t){var n=this;window.requestAnimationFrame(function(){var i=window.getComputedStyle(n.$.compute),o=1.2*(parseFloat(i.fontSize)||16);n.$.compute.innerText=e,n.$.compute.appendChild(document.createElement("br")),t({height:Math.max(n.$.compute.scrollHeight,o),heightRpx:n.__scale*n.$.compute.scrollHeight,lineHeight:o,lineCount:Math.ceil(n.$.compute.scrollHeight/o)})})},onTextAreaInput:function(e){if(this.value=e.target.value,this.bindinput){var t={id:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft};WeixinJSBridge.publish("SPECIAL_PAGE_EVENT",{eventName:this.bindinput,ext:{setKeyboardValue:!1},data:{data:{type:"input",timestamp:Date.now(),detail:{value:e.target.value},target:t,currentTarget:t,touches:[]},eventName:this.bindinput}})}return!1},onTextAreaFocus:function(e){this._keyboardShow=!0,this.triggerEvent("focus",{value:this.value})},onTextAreaBlur:function(e){this._keyboardShow=!1,this.triggerEvent("blur",{value:this.value})},updateTextArea:function(){this.checkAutoFocus(),this.getComputedStyle(),this.autoHeightChanged(this.autoHeight)},hiddenChanged:function(e,t){this.$$.style.display=e?"none":""},_getPlaceholderStyle:function(e){return e+";display:none;"},_getComputePlaceholderStyle:function(){var e=this.$.stylecompute,t=window.getComputedStyle(e),n=parseInt(t.fontWeight);isNaN(n)?n=t.fontWeight:n<500?n="normal":n>=500&&(n="bold"),this.placeholderStyle&&this.placeholderStyle.split(";");var i=this.$.placeholder;i.style.position="absolute",i.style.fontSize=(parseFloat(t.fontSize)||16)+"px",i.style.fontWeight=n,i.style.color=this.getHexColor(t.color)},defaultValueChange:function(e){return this.maxlength>0&&e.length>this.maxlength&&(e=e.slice(0,this.maxlength)),this.checkPlaceholderStyle(e),this.$.textarea.value=e,this.__attached&&this.checkRows(e),e},autoHeightChanged:function(e){var t=this;e&&this.getCurrentRows(this.value,function(e){var n=e.height0&&this.value.length>e&&(this.value=this.value.slice(0,e))}}})}(),function(){/wechatdevtools/.test(window.navigator.userAgent.toLowerCase())||window.exparser.registerElement({is:"wx-textarea",behaviors:["wx-base","wx-native","wx-data-component","wx-positioning-target"],template:function(e,t,n){return[{t:1,n:"div",id:"textarea",a:[],c:[{t:1,n:"p",id:"placeholder",cl:{e:function(e,i,o){return t(o,n,"_getPlaceholderClass",[e.placeholderClass])},b:[[null,"_getPlaceholderClass"],[null,"placeholderClass"]]},st:{e:function(e,i,o){return t(o,n,"_getPlaceholderStyle",[e.placeholderStyle])},b:[[null,"_getPlaceholderStyle"],[null,"placeholderStyle"]]},a:[],c:[]}]}]},properties:{value:{type:String,value:"",filter:"defaultValueChange",public:!0},maxlength:{type:Number,value:140,public:!0},placeholder:{type:String,value:"",public:!0},disabled:{type:Boolean,value:!1,public:!0},hidden:{type:Boolean,value:!1,public:!0,observer:"hiddenChanged"},focus:{type:Boolean,value:!1,public:!0,filter:"focusChanged"},autoFocus:{type:Boolean,value:!1,public:!0},placeholderStyle:{type:String,value:"",public:!0},placeholderClass:{type:String,value:"textarea-placeholder",public:!0},autoHeight:{type:Boolean,value:!1,public:!0},confirm:{type:Boolean,value:!0,public:!0},bindinput:{type:String,value:"",public:!0},cursorSpacing:{type:Number,value:0,public:!0},fixed:{type:Boolean,value:!1,public:!0}},attached:function(){this._attachedCb()},detached:function(){this._detachedCb()},methods:{resetFormData:function(){this._keyboardShow&&(this.__formResetCallback=!0,wx.hideKeyboard()),this.value=""},getFormData:function(e){this._keyboardShow?this.__formCallback=e:"function"==typeof e&&e(this.value)},_attachedCb:function(){var e=this;this._isReady=!1,this._inputId=this.getPositioningId(),this._parentId=this.fetchPositioningParentId(),this.insertTextArea(),this.__scale=750/window.innerWidth,this.__reRenderCallback=this.reRenderCallback.bind(this),document.addEventListener("pageReRender",this.__reRenderCallback,!1),this.__onKeyboardShowId=exparser.addListenerToElement(document,"onKeyboardShow",this.onKeyboardShow.bind(this)),this.__onKeyboardCompleteId=exparser.addListenerToElement(document,"onKeyboardComplete",this.onKeyboardComplete.bind(this)),this.__onTextAreaHeightChangeId=exparser.addListenerToElement(document,"onTextAreaHeightChange",this.onTextAreaHeightChange.bind(this)),this.__onKeyboardConfirmId=exparser.addListenerToElement(document,"onKeyboardConfirm",this.onKeyboardConfirm.bind(this)),this.__routeDoneId=exparser.addListenerToElement(document,"routeDone",function(){e.checkAutoFocus()})},_detachedCb:function(){this._detached=!0,document.removeEventListener("pageReRender",this.__reRenderCallback,!1),exparser.removeListenerFromElement(document,"onKeyboardShow",this.__onKeyboardShowId),exparser.removeListenerFromElement(document,"onKeyboardComplete",this.__onKeyboardCompleteId),exparser.removeListenerFromElement(document,"onTextAreaHeightChange",this.__onTextAreaHeightChangeId),exparser.removeListenerFromElement(document,"routeDone",this.__routeDoneId),exparser.removeListenerFromElement(document,"onKeyboardConfirm",this.__onKeyboardConfirmId),this.removeTextArea()},removeTextArea:function(){this._detached&&this._inputId&&WeixinJSBridge.invoke("removeTextArea",{inputId:this._inputId},function(e){})},checkAutoFocus:function(){this.__autoFocused||window.__onAppRouteDone&&(this.__autoFocused=!0,this.couldFocus(this.autoFocus||this.focus))},couldFocus:function(e){this._isReady&&window.__onAppRouteDone&&(!this._keyboardShow&&e?this.hidden||this.disabled||!this._inputId||WeixinJSBridge.invoke("showKeyboard",{inputId:this._inputId},function(e){}):this._keyboardShow&&!e&&wx.hideKeyboard())},focusChanged:function(e){this.couldFocus(e)},onKeyboardConfirm:function(e){e.detail.inputId===this._inputId&&(this.value=e.detail.value,this.triggerEvent("confirm",{value:this.value}))},onKeyboardShow:function(e){e.detail.inputId===this._inputId&&(this._keyboardShow=!0,this.triggerEvent("focus",{value:this.value}))},onKeyboardComplete:function(e){e.detail.inputId===this._inputId&&(this.value=e.detail.value,this.__formResetCallback&&(this.value="",this.__formResetCallback=void 0),"function"==typeof this.__formCallback&&this.__formCallback(this.value),this._keyboardShow=!1,this.triggerEvent("blur",{value:this.value}))},onTextAreaHeightChange:function(e){e.detail.inputId===this._inputId&&(this.triggerEvent("linechange",{lineCount:e.detail.lineCount,height:e.detail.height,heightRpx:e.detail.height*this.__scale}),this.styleHeight=e.detail.height+this.invalidHeight,this.autoHeight&&(this._lineHeight=e.detail.height/(e.detail.lineCount||1),this.checkMaxHeight(),this.$$.style.height=this.styleHeight+"px",document.dispatchEvent(new CustomEvent("pageReRender",{}))))},getHexColor:function(e){if(!e)return"#000000";if(e.indexOf("#")>=0)return e;try{var t=e.match(/\d+/g),n=[];if(t.map(function(e,t){if(t<3){var i=parseInt(e).toString(16);i=i.length>1?i:"0"+i,n.push(i)}}),t.length>3){var i=parseFloat(t.slice(3).join("."));0==i?n.push("00"):i>=1?n.push("ff"):(i=parseInt(255*i).toString(16),i=i.length>1?i:"0"+i,n.push(i))}return"#"+n.join("")}catch(e){return"#000000"}},getComputedStyle:function(){var e=window.getComputedStyle(this.$$),t=this.$$.getBoundingClientRect(),n=["Left","Right"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),i=["Top","Bottom"].map(function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}),o=parseInt(e.fontWeight);isNaN(o)?o=e.fontWeight:o<500?o="normal":o>=500&&(o="bold");var r=0,a=0;try{r=parseFloat(e.minHeight.replace("px")),a=parseFloat(e.maxHeight.replace("px"))}catch(e){}this.invalidHeight=i[0]+i[1],this.invalidWidth=n[0]+n[1],this._styleMaxHeight=a;var s={width:t.width-this.invalidWidth,left:t.left+n[0]+window.scrollX,minHeight:r,maxHeight:a,top:this.fixed?t.top+i[0]:t.top+i[0]+window.scrollY,fontWeight:o,fontSize:parseFloat(e.fontSize)||14,color:this.getHexColor(e.color),marginBottom:this.cursorSpacing||parseFloat(e.marginBottom)};return this.autoHeight||(s.height=t.height-this.invalidHeight),s},getPlaceholderStyle:function(){var e=this.$.placeholder,t=window.getComputedStyle(e),n=parseInt(t.fontWeight);return isNaN(n)?n=t.fontWeight:n<500?n="normal":n>=500&&(n="bold"),this.placeholderStyle&&this.placeholderStyle.split(";"),{fontSize:parseFloat(t.fontSize)||16,fontWeight:n,color:this.getHexColor(t.color)}},checkMaxHeight:function(){if(this.autoHeight&&this._lineHeight&&this._lineHeight>this._styleMaxHeight){this.$$.style.maxHeight=this._lineHeight+"px";var e=this.getCurrrentArgs();e.style.maxHeight=this._lineHeight,this.updateTextArea(e)}},insertTextArea:function(){var e=this;this.args=this.getCurrrentArgs(),this.args.value=this.value,WeixinJSBridge.invoke("insertTextArea",this.args,function(t){if(/:ok/.test(t.errMsg)){if(e._ready(),e._inputId=t.inputId,e._detached&&e.removeTextArea(),e.checkAutoFocus(),e._isiOS()&&(e.triggerEvent("linechange",{lineCount:t.lineCount,height:t.height,heightRpx:t.height*e.__scale}),e.styleHeight=t.height+e.invalidHeight,e.autoHeight&&(e._lineHeight=t.height/(t.lineCount||1),e.checkMaxHeight(),e.$$.style.height=e.styleHeight+"px",document.dispatchEvent(new CustomEvent("pageReRender",{}))),e._needUpdate)){var n=e.getCurrrentArgs();n.value=e.value,e.updateTextArea(n)}}else console.error(t.errMsg)})},diff:function e(t,n){var e={},i=!1;for(var o in n)"[object Object]"===Object.prototype.toString.call(n[o])?JSON.stringify(n[o])!=JSON.stringify(t[o])&&(e[o]=n[o],i=!0):t[o]!=n[o]&&(e[o]=n[o],i=!0);return i?e:void 0},reRenderCallback:function(){var e=this;window.requestAnimationFrame(function(){e.afterRerender()})},afterRerender:function(){if(!this._detached){var e=this.getCurrrentArgs();this.updateTextArea(e)}},getCurrrentArgs:function(){var e={parentId:this._parentId,style:this.getComputedStyle(),placeholderStyle:this.getPlaceholderStyle(),maxLength:this.maxlength,placeholder:this.placeholder,disabled:this.disabled,hidden:this.hidden,autoSize:this.autoHeight,confirm:this.confirm,data:this.formateEventTarget(),fixed:this.fixed};return this._isiOS()&&(e.inputId=this._inputId),e},updateTextArea:function(e){var t=this;if(!this._isReady)return void(this._needUpdate=!0);this.autoHeight&&this.styleHeight&&(this.$$.style.height=this.styleHeight+"px");var n=this.diff(this.args,e);n&&(n.inputId=this._inputId,WeixinJSBridge.invoke("updateTextArea",n,function(n){if(/:ok/.test(n.errMsg))for(var i in e)t.args[i]=e[i]}))},hiddenChanged:function(e){e&&this._keyboardShow&&wx.hideKeyboard()},_getPlaceholderStyle:function(e){return e+";display:none;"},_getPlaceholderClass:function(e){return"textarea-placeholder "+e},defaultValueChange:function(e,t){return this.maxlength>0&&e.length>this.maxlength&&(e=e.slice(0,this.maxlength)),this.args&&(this.args.value=void 0),this.updateTextArea({value:e}),e},formateEventTarget:function(){var e={bindinput:this.bindinput,target:{id:this.$$.id,dataset:this.dataset,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},setKeyboardValue:!1};return e.currentTarget=e.target,this.bindinput?JSON.stringify(e):""}}})}(),window.exparser.registerElement({is:"wx-toast",template:function(e,t,n){return[{t:1,n:"div",id:"mask",cl:{v:"wx-toast-mask"},st:{e:function(e,i,o){return t(o,n,"_getMaskStyle",[e.mask])},b:[[null,"_getMaskStyle"],[null,"mask"]]},a:[],c:[]},{t:1,n:"div",cl:{v:"wx-toast"},a:[],c:[{t:1,n:"i",cl:{e:function(e,t,n){return"wx-toast-icon wx-icon-"+e.icon},b:[[null,"icon"]]},a:[{n:"color",v:"#FFFFFF",o:"s"},{n:"font-size",v:"55px",o:"s"},{n:"display",v:"block",o:"s"}],c:[]},{t:1,n:"p",cl:{v:"wx-toast-content"},a:[],c:[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]}]}]},behaviors:["wx-base","wx-mask-behavior"],properties:{icon:{type:String,value:"success_no_circle",public:!0},hidden:{type:Boolean,value:!1,public:!0,observer:"hiddenChange"},duration:{type:Number,value:1500,public:!0,observer:"durationChange"}},methods:{durationChange:function(e,t){this.timer&&(clearTimeout(this.timer),this.hiddenChange(this.hidden))},hiddenChange:function(e){if(!e&&0!=this.duration){var t=this;this.timer=setTimeout(function(){t.triggerEvent("change",{value:t.hidden})},this.duration)}}}});var _slicedToArray=function(){function e(e,t){var n=[],i=!0,o=!1,r=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){o=!0,r=e}finally{try{!i&&s.return&&s.return()}finally{if(o)throw r}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};if("ios"!==wx.getPlatform()){var HIDE_BAR_TIMEOUT=5e3;window.exparser.registerElement({is:"wx-video",behaviors:["wx-base","wx-player"],options:{renderingMode:"full"},template:function(e,t,n){return[{t:1,n:"div",cl:{v:"wx-video-container"},a:[],c:[{t:1,n:"video",id:"player",a:[{n:"webkit-playsinline",v:""}],c:[]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return!e.stopped&&e.controls},b:[[null,"stopped"],[null,"controls"]]}],c:[{t:1,n:"div",id:"bar",cl:{v:"wx-video-bar full"},a:[{n:"bindtap",v:"handleTapBar"}],c:[{t:1,n:"div",id:"controls",cl:{v:"wx-video-controls"},a:[],c:[{t:1,n:"div",id:"controlButton",cl:{e:function(e,t,n){return"wx-video-control-button "+(e.paused?"play":"pause")},b:[[null,"paused"]]},a:[{n:"bindtap",v:"handleTapControlButton"}],c:[]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return!e.live},b:[[null,"live"]]}],c:[{t:1,n:"div",cl:{v:"wx-video-current-time"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._currentTime},b:[[null,"_currentTime"]],t:3}]}]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return!e.live},b:[[null,"live"]]}],c:[{t:1,n:"div",cl:{v:"wx-video-progress-container"},a:[{n:"bindtap",v:"handleTapProgress"}],c:[{t:1,n:"div",id:"progress",cl:{v:"wx-video-progress"},a:[],c:[{t:1,n:"div",id:"ball",cl:{v:"wx-video-ball"},st:{e:function(e,t,n){return"left: "+e._progressLeft+"px;"},b:[[null,"_progressLeft"]]},a:[{n:"bindtouchstart",v:"handleTouchStartBall"}],c:[{t:1,n:"div",cl:{v:"wx-video-inner"},a:[],c:[]}]}]}]}]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return!e.live},b:[[null,"live"]]}],c:[{t:1,n:"div",cl:{v:"wx-video-duration"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._duration},b:[[null,"_duration"]],t:3}]}]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return e.live},b:[[null,"live"]]}],c:[{t:1,n:"div",cl:{v:"wx-video-live-button"},a:[],c:[{c:"直播",t:3}]}]}]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return e.danmuBtn},b:[[null,"danmuBtn"]]}],c:[{t:1,n:"div",id:"danmuBtn",cl:{e:function(e,t,n){return"wx-video-danmu-btn "+(e.enableDanmu?"active":"")},b:[[null,"enableDanmu"]]},a:[{n:"bindtap",v:"handleTapDanmuButton"}],c:[{c:"弹幕",t:3}]}]},{t:1,n:"div",id:"fullscreen",cl:{v:"wx-video-fullscreen"},a:[{n:"bindtap",v:"handleTapFullscreen"}],c:[]}]}]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return e.stopped},b:[[null,"stopped"]]}],c:[{t:1,n:"div",id:"cover",cl:{v:"wx-video-cover"},a:[],c:[{t:1,n:"img",id:"coverPlayBtn",cl:{v:"wx-video-cover-play-button"},a:[{n:"src",v:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg=="},{n:"bindtap",v:"handleTapCoverPlayButton"}],c:[]},{t:1,n:"block",v:!0,a:[{s:[],n:"if",d:function(e,t,n){return!e.live},b:[[null,"live"]]}],c:[{t:1,n:"p",cl:{v:"wx-video-cover-duration"},a:[],c:[{c:"",e:function(e,t,n){return e._duration},b:[[null,"_duration"]],t:3}]}]}]}]},{t:1,n:"div",id:"danmu",cl:{v:"wx-video-danmu"},st:{v:"z-index: -9999"},a:[],c:[]}]}]},properties:{hidden:{type:Boolean,value:!1,public:!0,observer:"_hiddenChanged"},autoplay:{type:Boolean,value:!1,public:!0,observer:function(e,t){this.$.player.$$.autoplay=e}},danmuBtn:{type:Boolean,value:!1,public:!0},enableDanmu:{type:Boolean,value:!1,observer:"_enableDanmuChanged",public:!0},enableFullScreen:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!0,public:!0},danmuList:{type:Array,value:[],public:!0,observer:"_danmuListChanged"},objectFit:{type:String,value:"contain",public:!0,observer:"_objectFitChanged"},duration:{type:Number,value:0,public:!0,observer:"_durationChanged"},live:{type:Boolean,value:!1,public:!0,observer:"liveChanged"},_isLockTimeUpdateProgress:{type:Boolean,value:!1},_rate:{type:Number,value:0},_progressLeft:{type:Number,value:-22},_progressLength:{type:Number,value:0},_danmuStatus:{type:String,value:""},_isBarShow:{type:Boolean,value:!0},_danmuObject:{type:Object,value:{}}},listeners:{tap:function(){this._isBarShow?this._hideBar():this._showBar()}},methods:{onPlay:function(){this.stopped=!1,this._showBar()},onPause:function(){this._showBar(),clearTimeout(this._hideBarTimer)},onTimeUpdate:function(){var e=this,t=this.$.player.$$.currentTime/this.$.player.$$.duration;this._isLockTimeUpdateProgress||this._setProgress(t);var n=this._danmuObject[parseInt(this.$.player.$$.currentTime)];void 0!==n&&n.length>0&&n.forEach(function(t){e._sendDanmu(t)})},onEnded:function(){this.stopped=!0},_srcChanged:function(e,t){if("wechatdevtools"===wx.getPlatform()?this.$.player.$$.src=e.replace("wxfile://","http://wxfile.open.weixin.qq.com/"):this.$.player.$$.src=e,"wechatdevtools"===wx.getPlatform()&&this.live===!0&&"undefined"!=typeof Hls){var n=new Hls;n.loadSource(e),n.attachMedia(this.$.player.$$)}},_posterChanged:function(e,t){this.$.player.$$.poster=e},_objectFitChanged:function(e,t){this.$.player.$$.style.objectFit=e},_durationChanged:function(e,t){e>0&&(this._duration=this._formatTime(Math.floor(e)))},_hiddenChanged:function(e,t){this.$.player.$$.pause()},_danmuListChanged:function(e,t){this._danmuObject=e.reduce(function(e,t){return"number"==typeof t.time&&t.time>=0&&"string"==typeof t.text&&t.text.length>0&&(e[t.time]?e[t.time].push({text:t.text,color:t.color||"#ffffff"}):e[t.time]=[{text:t.text,color:t.color||"#ffffff"}]),e},{})},_enableDanmuChanged:function(e,t){this._danmuStatus=e?"active":"",this.$.danmu.$$.style.zIndex=e?"0":"-9999"},actionChanged:function(e,t){var n=this;if("object"===("undefined"==typeof e?"undefined":_typeof(e))){var i=e.method,o=e.data;if("play"===i)this.$.player.$$.play();else if("pause"===i)this.$.player.$$.pause();else if("seek"===i){var r=function e(){n.$.player.$$.duration!==1/0&&n.live!==!0&&(n.$.player.$$.currentTime=o[0],n._resetDanmu(),n.$.player.$$.removeEventListener("canplay",e,!1))};0===this.$.player.$$.readyState||1===this.$.player.$$.readyState?this.$.player.$$.addEventListener("canplay",r,!1):r()}else if("sendDanmu"===i){var a=_slicedToArray(o,2),s=a[0],l=a[1],c=parseInt(this.$.player.$$.currentTime);this._danmuObject[c]?this._danmuObject[c].push({text:s,color:l,time:c}):this._danmuObject[c]=[{text:s,color:l,time:c}]}}},handleTapBar:function(e){e.stopPropagation(),this._showBar()},handleTapCoverPlayButton:function(e){this.$.player.$$.play()},handleTapControlButton:function(e){this.paused?this.$.player.$$.play():this.$.player.$$.pause()},handleTapFullscreen:function(e){"android"===wx.getPlatform()?this.enableFullScreen=!0:this.enableFullScreen=!this.enableFullScreen,this.enableFullScreen&&this.$.player.$$.webkitEnterFullscreen(),this.triggerEvent("togglefullscreen",{enable:this.enableFullScreen})},handleTapProgress:function(e){var t=this,n=function n(){var i=t._computeRate(e.touches[0].clientX),o=t.$.player.$$.duration*i;!isNaN(parseFloat(o))&&isFinite(o)&&(t.$.player.$$.currentTime=o),t._resetDanmu(),t.$.player.$$.removeEventListener("canplay",n,!1)};0===this.$.player.$$.readyState||1===this.$.player.$$.readyState?this.$.player.$$.addEventListener("canplay",n,!1):n()},handleTapDanmuButton:function(e){e.stopPropagation(),this.enableDanmu=!this.enableDanmu,this.triggerEvent("toggledanmu",{enable:this.enableDanmu})},handleTouchStartBall:function(e){var t=this;this._isLockTimeUpdateProgress=!0;var n=function(e){e.preventDefault(),t._showBar(),t._rate=t._computeRate(e.touches[0].clientX),t._currentTime=t._formatTime(Math.floor(t.$.player.$$.duration*t._rate)),t._setProgress(t._rate)},i=function e(i){var o=t.$.player.$$.duration*t._rate;!isNaN(parseFloat(o))&&isFinite(o)&&(t.$.player.$$.currentTime=o),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",e),t._isLockTimeUpdateProgress=!1,t._resetDanmu()};document.addEventListener("touchmove",n), +document.addEventListener("touchend",i)},_reset:function(){},_computeRate:function(e){var t=this.$.progress.$$.getBoundingClientRect().left,n=this.$.progress.$$.offsetWidth,i=(e-t)/n;return i<0?i=0:i>1&&(i=1),i},_setProgress:function(e){this.live||this.$.progress&&(this._progressLength=Math.floor(this.$.progress.$$.offsetWidth*e),this._progressLeft=this._progressLength-22)},_showBar:function(){var e=this;this.$.bar&&(this._isBarShow=!0,this.$.bar.$$.style.transition="",this.$.bar.$$.style.webkitTransition="",this.$.bar.$$.style.opacity="1",this.$.bar.$$.style.display="",clearTimeout(this._hideBarTimer),this._hideBarTimer=setTimeout(function(){e._hideBar(!0)},HIDE_BAR_TIMEOUT))},_hideBar:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._isBarShow=!1,this.$.bar&&(t?(this.$.bar.$$.style.transition="400ms",this.$.bar.$$.style.webkitTransition="400ms",this.$.bar.$$.style.opacity="0",setTimeout(function(){e.$.bar.$$.style.display="none"},400)):this.$.bar.$$.style.display="none")},_sendDanmu:function(e){if(!this.$.player.$$.paused&&!e.flag){e.flag=!0;var t=document.createElement("p");t.className+="wx-video-danmu-item",t.textContent=e.text,t.style.top=this._genDanmuPosition()+"%",t.style.color=e.color,this.$.danmu.$$.appendChild(t),t.style.left="-"+t.offsetWidth+"px"}},_resetDanmu:function(){var e=this;this.$.danmu&&(this.$.danmu.$$.innerHTML="",Object.keys(this._danmuObject).forEach(function(t){e._danmuObject[t].forEach(function(e){e.flag=!1})}))},_genDanmuPosition:function(){if(this._lastDanmuPosition){var e=100*Math.random();Math.abs(e-this._lastDanmuPosition)<10?this._lastDanmuPosition=(this._lastDanmuPosition+50)%100:this._lastDanmuPosition=e}else this._lastDanmuPosition=100*Math.random();return this._lastDanmuPosition}},created:function(){},attached:function(){var e=this;WeixinJSBridge.publish("videoPlayerInsert",{domId:this.id,videoPlayerId:0}),this.$.player.$$.autoplay=this.autoplay,WeixinJSBridge.subscribe("video_"+this.id+"_actionChanged",function(t){e.action=t,e.actionChanged(t)})},detached:function(){}})}var _slicedToArray=function(){function e(e,t){var n=[],i=!0,o=!1,r=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){o=!0,r=e}finally{try{!i&&s.return&&s.return()}finally{if(o)throw r}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};"ios"===wx.getPlatform()&&window.exparser.registerElement({is:"wx-video",behaviors:["wx-base","wx-player","wx-native","wx-positioning-target"],template:function(e,t,n){return[{t:1,n:"div",cl:{v:"wx-video-container"},a:[],c:[{t:1,n:"video",id:"player",st:{v:"display: none;"},a:[{n:"webkit-playsinline",v:""}],c:[]},{t:1,n:"div",id:"default",cl:{e:function(e,t,n){return"wx-video-bar "+e._barType},b:[[null,"_barType"]]},st:{v:"display: none;"},a:[],c:[{t:1,n:"div",id:"controls",cl:{v:"wx-video-controls"},a:[],c:[{t:1,n:"div",id:"button",cl:{e:function(e,t,n){return"wx-video-button "+e._buttonType},b:[[null,"_buttonType"]]},a:[],c:[]},{t:1,n:"div",cl:{v:"wx-video-time"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._currentTime},b:[[null,"_currentTime"]],t:3}]},{t:1,n:"div",id:"progress",cl:{v:"wx-video-progress"},a:[],c:[{t:1,n:"div",id:"ball",cl:{v:"wx-video-ball"},st:{e:function(e,t,n){return"left: "+e._progressLeft+"px;"},b:[[null,"_progressLeft"]]},a:[],c:[{t:1,n:"div",cl:{v:"wx-video-inner"},a:[],c:[]}]},{t:1,n:"div",cl:{v:"wx-video-inner"},st:{e:function(e,t,n){return"width: "+e._progressLength+"px;"},b:[[null,"_progressLength"]]},a:[],c:[]}]},{t:1,n:"div",cl:{v:"wx-video-time"},a:[{n:"parse-text-content",v:""}],c:[{c:"",e:function(e,t,n){return e._duration},b:[[null,"_duration"]],t:3}]}]},{t:1,n:"div",id:"danmuBtn",cl:{e:function(e,t,n){return"wx-video-danmu-btn "+e._danmuStatus},b:[[null,"_danmuStatus"]]},st:{v:"display: none"},a:[],c:[{c:"弹幕",t:3}]},{t:1,n:"div",id:"fullscreen",cl:{v:"wx-video-fullscreen"},a:[],c:[]}]},{t:1,n:"div",id:"danmu",cl:{v:"wx-video-danmu"},st:{v:"z-index: -9999"},a:[],c:[]}]},{t:1,n:"div",id:"fakebutton",a:[],c:[]}]},properties:{autoplay:{type:Boolean,value:!1,public:!0},bindplay:{type:String,value:"",public:!0},bindpause:{type:String,value:"",public:!0,observer:"handlersChanged"},bindended:{type:String,value:"",public:!0,observer:"handlersChanged"},bindtimeupdate:{type:String,value:"",public:!0,observer:"handlersChanged"},danmuBtn:{type:Boolean,value:!1,public:!0,observer:"danmuBtnChanged"},enableDanmu:{type:Boolean,value:!1,observer:"enableDanmuChanged",public:!0},enableFullScreen:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!0,public:!0,observer:"controlsChanged"},danmuList:{type:Array,value:[],public:!0,observer:"_danmuListChanged"},objectFit:{type:String,value:"contain",public:!0},duration:{type:Number,value:0,public:!0},live:{type:Number,value:!1,public:!0,observer:"liveChanged"},_videoId:{type:Number},_isLockTimeUpdateProgress:{type:Boolean,value:!1},_rate:{type:Number,value:0},_progressLeft:{type:Number,value:-22},_progressLength:{type:Number,value:0},_barType:{type:String,value:"full"},_danmuStatus:{type:String,value:""}},listeners:{"ball.touchstart":"onBallTouchStart"},attached:function(){this._attachedCb()},detached:function(){this._detachedCb()},methods:{handlersChanged:function(){this._update()},_reset:function(){this._buttonType="play",this._currentTime="00:00",this._duration="00:00",this._progressLeft=-22,this._progressLength=0,this._barType=this.controls?"full":"part"},_update:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this;e.videoPlayerId=this._videoId,e.hide=this.hidden;var n=this._getData();e.needEvent=Object.keys(n.handlers).length>0,e.objectFit=this.objectFit,e.showBasicControls=this.controls,e.showDanmuBtn=this.danmuBtn,e.enableDanmu=this.enableDanmu,e.data=JSON.stringify(n),e.live=this.live,e.danmuList=this.danmuList,this.duration>0&&(e.duration=this.duration),WeixinJSBridge.invoke("updateVideoPlayer",e,function(e){/ok/.test(e.errMsg)||t._publish("error",{errMsg:e.errMsg})})},_updatePosition:function(){this._isiOS()?this._update({position:this._box},"位置"):(this.$.player.width=this._box.width,this.$.player.height=this._box.height)},_hiddenChanged:function(e,t){this._isiOS()?(this.$$.style.display=e?"none":"",this._update({hide:e},e?"隐藏":"显示")):(this.$.player.pause(),this.$$.style.display=e?"none":"")},_posterChanged:function(e,t){if(!this._isError)return this._isReady?void(this._isiOS()&&(/http:\/\//.test(e)||/https:\/\//.test(e))?this._update({poster:e},"封面"):this.$.player.poster=e):void this._deferred.push({callback:"_posterChanged",args:[e,t]})},_srcChanged:function(e,t){if(!this._isError&&e){if(!this._isReady)return void this._deferred.push({callback:"_srcChanged",args:[e,t]});if(this._isiOS())/wxfile:\/\//.test(e)||/http:\/\//.test(e)||/https:\/\//.test(e)?this._update({filePath:e},"资源"):this._publish("error",{errMsg:"MEDIA_ERR_SRC_NOT_SUPPORTED"});else if(this._isDevTools()){this.$.player.src=e.replace("wxfile://","http://wxfile.open.weixin.qq.com/");var n=this;setTimeout(function(){n._reset()},0)}else{this.$.player.src=e;var n=this;setTimeout(function(){n._reset()},0)}}},controlsChanged:function(e,t){this._update({}),this.$.controls.style.display=e?"flex":"none"},danmuBtnChanged:function(e,t){this._update({}),this.$.danmuBtn.style.display=e?"":"none"},enableDanmuChanged:function(e,t){this._update({}),this._danmuStatus=e?"active":"",this.$.danmu.style.zIndex=e?"0":"-9999"},liveChanged:function(e,t){this._update({})},_danmuListChanged:function(e,t){this._update({})},actionChanged:function(e,t){if(this._isiOS());else{if("object"!==("undefined"==typeof e?"undefined":_typeof(e)))return;var n=e.method,i=e.data;if("play"===n)this.$.player.play();else if("pause"===n)this.$.player.pause();else if("seek"===n)this.$.player.currentTime=i[0],this._resetDanmu();else if("sendDanmu"===n){var o=_slicedToArray(i,2),r=o[0],a=o[1],s=parseInt(this.$.player.currentTime);this.danmuObject[s]?this.danmuObject[s].push({text:r,color:a,time:s}):this.danmuObject[s]=[{text:r,color:a,time:s}]}}},onPlay:function(e){var t=this,n=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(n,[function(e){var n=3*(parseInt(getComputedStyle(e).left)+e.offsetWidth)/(e.offsetWidth+t.$$.offsetWidth);e.style.left="-"+e.offsetWidth+"px",e.style.transitionDuration=n+"s",e.style.webkitTransitionDuration=n+"s"}]),this.bindplay&&wx.publishPageEvent(this.bindplay,{type:"play"})},onPause:function(e){var t=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(t,[function(e){e.style.left=getComputedStyle(e).left}]),wx.publishPageEvent(this.bindpause,{type:"pause"})},onEnded:function(e){wx.publishPageEvent(this.bindended,{type:"ended"})},_computeRate:function(e){var t=this.$.progress.getBoundingClientRect().left,n=this.$.progress.offsetWidth,i=(e-t)/n;return i<0?i=0:i>1&&(i=1),i},_setProgress:function(e){this._progressLength=Math.floor(this.$.progress.offsetWidth*e),this._progressLeft=this._progressLength-22},_sendDanmu:function(e){if(this.playing&&!e.flag){e.flag=!0;var t=document.createElement("p");t.className+="wx-video-danmu-item",t.textContent=e.text,t.style.top=this._genDanmuPosition()+"%",t.style.color=e.color,this.$.danmu.appendChild(t),t.style.left="-"+t.offsetWidth+"px"}},_genDanmuPosition:function(){if(this.lastDanmuPosition){var e=100*Math.random();Math.abs(e-this.lastDanmuPosition)<10?this.lastDanmuPosition=(this.lastDanmuPosition+50)%100:this.lastDanmuPosition=e}else this.lastDanmuPosition=100*Math.random();return this.lastDanmuPosition},_attachedCb:function(){var e=this,t=this;if(this._isiOS()){var n=this.getPositioningId(),i=this.fetchPositioningParentId(),o=this._getData();this._box=this._getBox();var r={data:JSON.stringify(o),needEvent:Object.keys(o.handlers).length>0,position:this._box,hide:this.hidden,enableDanmu:this.enableDanmu,showDanmuBtn:this.danmuBtn,showBasicControls:this.controls,objectFit:this.objectFit,autoplay:this.autoplay,danmuList:this.danmuList,live:this.live,videoPlayerId:n,parentId:i};this.duration>0&&(r.duration=this.duration),WeixinJSBridge.invoke("insertVideoPlayer",r,function(e){/ok/.test(e.errMsg)?(t._videoId=e.videoPlayerId,t._ready(),t.createdTimestamp=Date.now(),document.addEventListener("pageReRender",t._pageReRenderCallback.bind(t)),WeixinJSBridge.publish("videoPlayerInsert",{domId:t.id,videoPlayerId:e.videoPlayerId}),this._detached&&WeixinJSBridge.invoke("removeVideoPlayer",{videoPlayerId:e.videoPlayerId})):(t._isError=!0,t.$$.style.display="none",t._publish("error",{errMsg:e.errMsg}))})}else WeixinJSBridge.publish("videoPlayerInsert",{domId:this.id,videoPlayerId:0}),this.$.default.style.display="",this.$.player.style.display="",this.$.player.autoplay=this.autoplay,this.danmuObject=this.danmuList.reduce(function(e,t){return"number"==typeof t.time&&t.time>=0&&"string"==typeof t.text&&t.text.length>0&&(e[t.time]?e[t.time].push({text:t.text,color:t.color||"#ffffff"}):e[t.time]=[{text:t.text,color:t.color||"#ffffff"}]),e},{}),this.$.button.onclick=function(e){e.stopPropagation(),t.$.player[t._buttonType]()},this.$.progress.onclick=function(e){e.stopPropagation();var n=t._computeRate(e.clientX);t.$.player.currentTime=t.$.player.duration*n,t._resetDanmu()},this.$.fullscreen.onclick=function(e){e.stopPropagation(),t.enableFullScreen=!t.enableFullScreen,t.enableFullScreen&&t.$.player.webkitEnterFullscreen(),t.triggerEvent("togglefullscreen",{enable:t.enableFullScreen})},this.$.danmuBtn.onclick=function(e){e.stopPropagation(),t.enableDanmu=!t.enableDanmu,t.triggerEvent("toggledanmu",{enable:t.enableDanmu})},this._ready(),document.addEventListener("pageReRender",this._pageReRenderCallback.bind(this));WeixinJSBridge.subscribe("video_"+this.id+"_actionChanged",function(t){e.action=t,e.actionChanged(t)})},onTimeUpdate:function(e){var t=this;e.stopPropagation();var n=this.$.player.currentTime/this.$.player.duration;this._isLockTimeUpdateProgress||this._setProgress(n);var i=this.danmuObject[parseInt(this.$.player.currentTime)];void 0!==i&&i.length>0&&i.forEach(function(e){t._sendDanmu(e)}),this.bindtimeupdate&&wx.publishPageEvent(this.bindtimeupdate,{type:"timeupdate",detail:{currentTime:this.$.player.currentTime,duration:this.$.player.duration}})},_detachedCb:function(){this._detached=!0,this._isiOS()&&wx.removeVideoPlayer({videoPlayerId:this._videoId,success:function(e){}}),WeixinJSBridge.publish("videoPlayerRemoved",{domId:this.id,videoPlayerId:this.videoPlayerId})},onBallTouchStart:function(){var e=this;e._isLockTimeUpdateProgress=!0;var t=function(t){t.stopPropagation(),t.preventDefault(),e._rate=e._computeRate(t.touches[0].clientX),e._setProgress(e._rate)},n=function n(i){e.$.player.currentTime=e.$.player.duration*e._rate,document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n),e._isLockTimeUpdateProgress=!1,e._resetDanmu()};document.addEventListener("touchmove",t),document.addEventListener("touchend",n)},_resetDanmu:function(){var e=this;this.$.danmu.innerHTML="",Object.keys(this.danmuObject).forEach(function(t){e.danmuObject[t].forEach(function(e){e.flag=!1})})},_getData:function(){var e=this;return{handlers:["bindplay","bindpause","bindended","bindtimeupdate"].reduce(function(t,n){return n&&(t[n]=e[n]),t},{}),event:{target:{dataset:this.dataset,id:this.$$.id,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft},currentTarget:{dataset:this.dataset,id:this.$$.id,offsetTop:this.$$.offsetTop,offsetLeft:this.$$.offsetLeft}},createdTimestamp:this.createdTimestamp}}}}),window.exparser.registerElement({is:"wx-view",template:function(e,t,n){return[{t:1,n:"slot",v:!0,sn:"",a:[],c:[]}]},behaviors:["wx-base","wx-hover"],properties:{inline:{type:Boolean,public:!0},hover:{type:Boolean,value:!1,public:!0},sessionFrom:{type:String,value:"wxapp",public:!0}}}),function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n,i){Reporter.speedReport({key:e,timeMark:{startTime:t,endTime:n},force:"reRenderTime"!==e,data:i})}Object.defineProperty(t,"__esModule",{value:!0}),t.reset=void 0;var r=n(1),a=i(r),s=n(11),l=i(s),c=n(12),d=i(c),u=n(14),h=n(2),p=n(15),f=n(16);(0,f.init)(),window.__mergeData__=d.default.mergeData;var g="__DOMReady",v=function(e,t,n,i,o,r){return new a.default(e,t,n,i,o,r)},_=function(e){return new l.default(e)},m=function e(t){if((0,h.isString)(t)||Number(t)===t&&Number(t)%1===0)return _(String(t));var n=[];return t.children.forEach(function(t){n.push(e(t))}),v(t.tag,t.attr,t.n,t.wxKey,t.wxVkey,n)},b=function(e){var t=window.__generateFunc__(d.default.getAppData(),e);return t.tag="body",m(t)},w=void 0,A={},y={funcReady:!1,dataReady:!1,firstRender:!1},x=[];window.__DOMTree__=void 0;var C={webviewStartTime:Date.now(),funcReady:0};t.reset=function(){w=void 0,window.__DOMTree__=void 0,A={}};window.onerror=function(e,t,n,i,o){console.error(o.stack),Reporter.errorReport({key:"webviewScriptError",error:o}),"ios"===wx.getPlatform()&&webkit.messageHandlers.publishHandler.postMessage("wawebview sdk error:"+o.msg)};var S=function(e){e.ext&&("undefined"!=typeof e.ext.webviewId&&(window.__webviewId__=e.ext.webviewId),e.ext.enablePullUpRefresh&&(window.__enablePullUpRefresh__=!0)),w=b(e.data),window.__DOMTree__=w.render(),exparser.Element.replaceDocumentElement(window.__DOMTree__,document.body),window.requestAnimationFrame(function(){wx.publishPageEvent(g,{}),wx.initReady(),(0,p.enablePullUpRefresh)()})},k=function(e){var t=b(e.data),n=w.diff(t);n.apply(window.__DOMTree__),w=t};wx.onAppDataChange((0,u.catchError)(function(e){y.dataReady=!0,y.funcReady?E(e):x.push(e)})),document.addEventListener("generateFuncReady",(0,u.catchError)(function(e){if(C.funcReady=Date.now(),o("funcReady",C.webviewStartTime,C.funcReady),window.__pageFrameStartTime__&&window.__pageFrameEndTime__&&o("pageframe",window.__pageFrameStartTime__,window.__pageFrameEndTime__),window.__WAWebviewStartTime__&&window.__WAWebviewEndTime__&&o("WAWebview",window.__WAWebviewStartTime__,window.__WAWebviewEndTime__),window.__generateFunc__=e.detail.generateFunc,y.funcReady=!0,y.dataReady)for(var t in x){var n=x[t];E(n)}}));var E=function(e){if(y.firstRender)setTimeout(function(){var t=Date.now();k(e),o("reRenderTime",t,Date.now()),document.dispatchEvent(new CustomEvent("pageReRender",{}))},0);else{var t=Date.now();o("firstGetData",C.funcReady,Date.now()),S(e),o("firstRenderTime",t,Date.now()),e.options&&e.options.firstRender||(console.error("firstRender not the data from Page.data"),Reporter.errorReport({key:"webviewScriptError",error:new Error("firstRender not the data from Page.data"),extend:"firstRender not the data from Page.data"})),y.firstRender=!0,document.dispatchEvent(new CustomEvent("pageReRender",{}))}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n="0"&&a<="9"?i?(n*=.1,t+=(a-"0")*n):t=10*t+(a-"0"):"."===a?i=!0:"-"===a&&(o=!0)}return o&&(t=-t),u(t)},p=/%%\?[+-]?\d+(\.\d+)?rpx\?%%/g,f=/(:|\s)[+-]?\d+(\.\d+)?rpx/g;t.transformRpx=function(e,t){if(!a(e))return e;var n=void 0;return n=t?e.match(f):e.match(p),n&&n.forEach(function(n){var i=h(n),o=(t?n[0]:"")+i+"px";e=e.replace(n,o)}),e},t.uuid=function(){var e=function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)};return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()},t.getDataType=function(e){return Object.prototype.toString.call(e).split(" ")[1].split("]")[0]},t.getPageConfig=function(){var e={};if(window.__wxConfig&&window.__wxConfig.window)e=window.__wxConfig.window;else{var t={};window.__wxConfig&&window.__wxConfig.global&&window.__wxConfig.global.window&&(t=window.__wxConfig.global.window);var n={};window.__wxConfig&&window.__wxConfig.page&&window.__wxConfig.page[window.__route__]&&window.__wxConfig.page[window.__route__].window&&(n=window.__wxConfig.page[window.__route__].window),e=i({},t,n)}return e}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PATCH_TYPE={NONE:0,TEXT:1,VNODE:2,PROPS:3,REORDER:4,INSERT:5,REMOVE:6},t.WX_KEY="wxKey",t.ATTRIBUTE_NAME=["class","style"],t.RPX_RATE=20,t.BASE_DEVICE_WIDTH=750,t.INLINE_STYLE=["placeholderStyle","hoverStyle","style"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeProperty=t.applyProperties=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(2),r=n(5),a=n(3),s=/^data-/,l=function(e){return{id:e.id,offsetLeft:e.$$.offsetLeft,offsetTop:e.$$.offsetTop,dataset:e.dataset}},c=function(e){if(e){for(var t=[],n=0;n0&&!function(){var t=function(){if(nh.length?a.length:h.length,g=0;g>1,a=e[r];if(an))return!0;o=r-1}}return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getItemKey=t.makeKeyAndFreeIndexes=t.listDiff=void 0;var i=n(2),o=(t.listDiff=function(e,t){function n(e,t,n){return e.splice(t,1),{index:t,key:n}}var a=o(e),s=a.keyIndexes;a.freeIndexes;if((0,i.isEmptyObject)(s))return{children:t,moves:null};var l=o(t),c=l.keyIndexes,d=l.freeIndexes;if((0,i.isEmptyObject)(c))return{children:t,moves:null};for(var u=[],h=0,p=0,f=0;f=b&&u.push(A)}for(var y=u.slice(0),x=0,C=[],S=[],k=0;k"9")throw new Error("only number 0-9 could inside []: "+e);r=!0,o=10*o+l.charCodeAt(0)-48}else i+=l}if(i&&n.push(i),0===n.length)throw new Error("path can not be empty");return n},t.getObjectByPath=function(e,t,n){for(var o=void 0,r=void 0,a=e,s=!1,l=0;l=r()&&e)},l=!1,c=!0,d=t.triggerPullUpRefresh=function(){c&&!l&&(wx.publishPageEvent("onReachBottom",{}),c=!1,setTimeout(function(){c=!0},350))};t.enablePullUpRefresh=function(){if(window.__enablePullUpRefresh__){window.onscroll=function(){s()&&d()};var e=0;window.__DOMTree__.addListener("touchstart",function(t){e=t.touches[0].pageY,l=!1}),window.__DOMTree__.addListener("touchmove",function(t){if(!l){var n=t.touches[0].pageY;n0?window.innerWidth:screen.width;document.documentElement.style.fontSize=e/i.RPX_RATE+"px"},1e3)});t.init=function(){window.__webview_engine_version__=.02,o()}}]),function(e){function t(){var t=document.createElement("style");if(document.getElementsByTagName("head")[0].insertBefore(t,document.getElementsByTagName("head")[0].firstChild),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=e);else try{t.innerHTML=e}catch(n){t.innerText=e}}window.document&&"complete"===window.document.readyState?t():window.onload=t}('html {\n -webkit-user-select: none;\n user-select: none;\n height: 100%;\n width: 100%;\n}\nbody {\n -webkit-user-select: none;\n user-select: none;\n width: 100%;\n overflow-x: hidden;\n}\nwx-action-sheet-item {\n background-color: #FFFFFF;\n position: relative;\n padding: 10px 0;\n text-align: center;\n font-size: 18px;\n display: block;\n}\nwx-action-sheet-item:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 1px;\n border-top: 1px solid #D9D9D9;\n color: #D9D9D9;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-action-sheet-item:active {\n background-color: #ECECEC;\n}\nwx-action-sheet .wx-action-sheet {\n position: fixed;\n left: 0;\n bottom: 0;\n -webkit-transform: translate(0, 100%);\n transform: translate(0, 100%);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n z-index: 5000;\n width: 100%;\n background-color: #FFFFFF;\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-action-sheet .wx-action-sheet-show {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n}\nwx-action-sheet .wx-action-sheet-menu {\n background-color: #FFFFFF;\n}\nwx-action-sheet .wx-action-sheet-mask {\n position: fixed;\n z-index: 1000;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: rgba(0, 0, 0, 0.6);\n}\nwx-audio {\n display: inline-block;\n line-height: 0;\n}\nwx-audio[hidden] {\n display: none;\n}\nwx-audio > .wx-audio-default {\n max-width: 100%;\n min-width: 302px;\n height: 65px;\n background: #fcfcfc;\n border: 1px solid #e0e0e0;\n border-radius: 2.5px;\n display: inline-block;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-left {\n width: 65px;\n height: 65px;\n float: left;\n background-color: #e6e6e6;\n background-size: 100% 100%;\n background-position: 50% 50%;\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button {\n width: 24px;\n height: 24px;\n margin: 20.5px;\n background-size: cover;\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button.play {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAB4dJREFUaAXNWg1MlVUYvpcfIRCJ+MnCaOBl8dOcOCEQZ9kmI5cQG5Yb6MifKbMaGVobOtlibTWHDpgpxBUwF07826iFsMkYJhg559JdGiQSkUzSBA0QkZ7n4/u+nXsvwf3jwru99/y/3/N+3znvec97rlbjABofH38GYtaAV4MjwDqwH9gHTBoE3wd3gA3gi+B6rVY7hHR2CKD9wFngs+BHYGuJYziWMqiscwgP8wLvBQ+AHUWURZle1mqhtXQAhLui7xZwPvgFsBENDg7+Drp069at2z09Pf03b978u6mpqZ+dVq1aFRAVFeW/aNGigNDQ0JfDwsISfXx8wowETBT+QpIPLsf0GpuomvrXIgUAPhhizoGXi+II+tq1az/o9fpLFRUVd8S26fJZWVkLN2/enBgTE/PW/PnzF5v0b0P5HSjxp0m9WXFaBQD+NYw6C1bf+vDwcF9DQ4N+/fr19ciPm0m1osLT01N76tSpNaD3PTw8FgpD+TXSoESrUGeWnVIBgM/EiDKwJ0eiPNrS0nJsw4YNNd3d3aOscxSFhIS4V1dXpyckJGRB5jxZ7jDSbVDiW7lslriY1cgVMvjjKErgR0dH/zl06NCuFStWfOdo8HwkZVL2wYMHP3ny5AlNLonPPi5jkSpMfyb9AhjAadMIlsBjrndmZ2fnnThxos9UwEyUMzIynj9y5EgB1gb3ExK/xBuTTSczBQCeC/ZnsDTnCR6f9YMbN25QiNMoOjras7W1tcjb2ztcfijXRKzpwjaaQgBPU0lrI4HntOGbdzZ4AuYzt2/fvm9sbOweyyBiOidjlCr4Y6QAyrTzkqlEx9GSkpJ9zpo2BGNKfHZRUdF+1D+W24iNGFVSpxAAcxekryK9/cuXLx/FoqpWe85iBlPpvbi4uB0yBE4lHabSvyyLX2AXyhJ42nmYytPsMBcI+80ZWKZeGQsxEqtEkgJ4+3Sm9sh1Gm5SM2EqFfnWpsRSV1dXIYzbI2NWv0AqGiXXl+4Bd1ihs0XZu3fvHhgYGNBXVVUlWDTAyk7p6ekNIyMj7fIwYiVmIwWkNvo2trgHAQEBy+CghW7cuPGLvr6+L3fu3PmSJNBBP8R09erVHwVxEwrgU/AwkqQ00DFT8lamqkEICgqKKy4u1sMU7li6dKnVLvL/Pbe0tLRFaEsidi1+UlB5ng3ctBYsWLBV6GRxFnJ4yjIj7CX36uvrS1NTU+uwEM3ara3Al/gaTl+EPC6Vi/hNRUhHR8dPSt5Rqbu7+3Nr1679rL+//3BBQYHyYJvFd3V1iTNkNRV4RZF2G6TkHZ36+vpG5uXlHcah59Pk5GSbj5AY3y1gi6ACisOk4UlKaJyJrBYnsuTa2trjzc3N7/r7+9N1sYo6OzsfCAN0VEB9GzwGCo0zlnV1dfVOTEzMhn3Xl5eXx1rzIBOMflRAsv8UopxhrRFoT18vL68QHCu/am9vz7FUjglGHyow6xQcHBxjKwgqwKCTRIweKHlnpZhGDfC7LP4CJhgH3QCUxzd/AmboA0kP8zNNcDt+w8ZUvHv37l+tedaSJUueFfrfpwJ0oSVLxLiN0DgjWWxsDxobG79JSUn53haXRafT+QrAOjiFDEoFg05K3tEpduoxg8FweuXKlRlJSUm1toAnpvDwcB55FTJQAdUFYMRMaXFkil34l9zc3K2RkZElV65ceWSPbCz414XxF6kAXWfpdMNwHyNmQge7skNDQ3dOnjy5PzAwMLewsLDLLmEYDJMb5ObmFiXLIeZ6FxzNGOK+IFeyk91f4enTpyNtbW3HIiIiNsHCNCmy7U1zcnKWCTIuEDu/AOn8RKLRMFbJcJ9StjRlBIN94Y40ZmZmboqNja3iScrS8dP1IyaEWt4W+kmYaYVILHA/8GGglbHKdevWqV+FHaYjOGofw811hcfZOV1fW9pxzE1wcXGJlscSq6SA+qZhJfai8nN2wNHtDhb0pt7eXoe9Qcq1lRg3hRvNkLtyytuHfAHlKVOI+UIwQxYaRolramrSmZ8LhLefJIAnRmKVSFUAHbiq8yeqNRpGiWE5XlXKs5WWlZUthu3/SHh+voxVqlKnEEuYRvTPee5czjKjxDCr2bMVnYNF9IO7fRRQAokHxIuPeCig3t4YKcAeUCIYiRrcffjwYUd8fPyHzo6PwuJ4XL9+/QAWrjILOHWmDu5SAWjHa500sBSNZoibUWKGvNnuDOKbNwFPLLytITYjUteAWIuOvNbZptQxxF1ZWXnYGWuCc57TRnjzhMFbGmIyI7MpJPbAdMpEuQzsKdc/hi+jT0tLO+NoE0tTSWsjL9h58vP45qe8YppSAQqBEmaXfAy0MlbJcJ+tXqUMUMMdlpsUIuE78JYVO89mznn7LvmUh8gL+xzKknVS6hmrZLiPETNrr1npmNG3oXsg7LCKaFobx1yzKhKhBE3sFnA+mCFuI4IyBuyWzYjb/MHQh+lFN09SPIxgirxIlxhepeIWiHL41vPBFl90i4MtykOROfVXA4tAT9YJisyJP3tMu4gnA29aB2UY4V4DXg1m/FMH9gMrMSd6jwwe8PxtAPMU6JC/2/wHuyI2cMsNBRIAAAAASUVORK5CYII=\');\n}\nwx-audio > .wx-audio-default > .wx-audio-left > .wx-audio-button.pause {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABatJREFUaAXVWl1IpFUYnllZGUf3wlz6MXER1ES7s83VUDJw6KpdaSTDwMnYFSK6KNirooHullKQCNzQRjZ/wom1u9ALQ0mT1ktFdEBWXLdibaH1jwmx5zme83W+z2Hm+7bZmc8X3jl/73vO837n/z3j9aSBjo6O8lBNC7gZXAUuBxeCz4FJj8APwTHwCngaPOX1evcRZocAuhAcAt8G74KdEnWoyzpobGYIjfnBn4D/BqeLWBfr9Du1wmtXAZXnQPY9cBj8HNhEe3t7sbW1tfn19fW7m5ubD5aXl7dnZmYeUKipqel8dXV1UUlJyfmysrILFRUV9X6/n8PMSveREQYPYHgdWgsTpW0ZAPDPQ3kC/JJeCUEvLi7+NDg4+EskEvldL0sVD4VCz3Z1db1SW1v7egJj7kD/Coy4l6qelAYAfB0quQ02vno8Hr8/OTkZaWtrmzo4ODhK1Uiycp/P5x0fH28JBAKh3Nxcow3osDdaYcRCMv2kBgD8O1D+BuyTlcTn5+cj7e3t0Y2NjX+SVey0rLS09OzY2Fiwvr4+BN1cqX+A8CqM+E6mTwRnTuTIDAn+FpIC/OHh4V+9vb0fNzQ0jKYbPJtknaybbbAtCYNt35JYZJY5SNgDctj8DFEBfnd3d627u/vT4eHhP8zqTybV0dHxTH9//+f5+fkVsgX2xKuJhtMJAwCeE/Y3sBiPBF9XV/fh0tISK8kY1dTU+BYWFvo0IzgnLlontmkIATyXSq42Ajy7kl8+0+D5ldgm29aGEzFNSIwUEWQyADlc59VSGe/r6/ssU8PmGI75l20TA3LjsoTYiNEgYwjBMu6CPKuIr4/Vph+TasyQzGJkbm7ubaxO1yQEDqVyDKU9pvUe+AhpAZ7rPJbKHyjgBuKyTUwSCzESqyBhAL4+D1PXZZ6Hm9STWCpV/U5DYiEmTe+6xOwRQwiJEAq/pQCPB0VFRdf+7w7LutJJ3LG3t7dvaseOdzGMImoIXVaN8WzjNvDERkzEpnAiFJjP4OvzMhJQBTyYqbjdEDov7+/vf4+6pu0wZQcGBi7arV/JWbAFiN2Lnzcg8COFuGkVFBSo2a70UoYEhC5+OqWgJoAv+mdeXt5bWpat6M7Ozk1tc7vMIfSa0lxdXf1VxZ2ETsGz7sfRoV4sFtMxNtOAF1hAugs6jrn3lxcmDV0VDTBuRrxJaYWujFowltMA40LNa6ArUWugLBgLaYByfXjUHVaTd13UgvEcDTjVRAPodBJE74GKuzW0YHxEA+gxE0TXh4q7NbRgfEgDeIQWRL+Nirs1tGCM0YAVBZZOJxV3a2jBuEIDphVYesxU3EnIY4ETeco+jg71LBinacAUWNxueFSlx4yCTmh0dPRLJ4AoOzIy8oWTNihLbNpxmpin1H2AnrcrFJqdnf0KM901tzFiUoQ94M3GxsYPZHoC94FW9gBJnEYZoa8SBy1hGNNuIWIiNg2PwKwbIPYDdhF9lZqgK6LEpA0fYv3PAHQF94IbCikdrcXFxWdVOtsh/abEpOG4ITGbvBI9EBA3f3qJo9FoUFPIapROX81zTYzEKkgNIQ8s4qwOH2d7PPQS9/T0vKjS2QqJQXqsFYSwxCrSpsmK6yVdi7zx0APmoVuvs7Pz/Wx55+jkHRoa+jonJ+cp4gHdAV+CAcbrjckASsCI0+vcpQGw7h6CVrDwRvMCTS8xvwbLM0Fsy+KZJha+1hCbiYw5oOdCkM86V1UejWBXZmJOsA22pXkeCIOvNAmfmk4MIQWaIYZTwiemYDAY3dracsUTU1IDpBGn95FP9Yac2KfzmVUzgkssHxfCYOGGR2gQvXp0jNG3lOyh+wKosrLykmWMq3q4SYXBth+6laLtEL3hqr8a2AZuFYQhrvizR8pJbAWeKA1j6OFuATeDq8D09hWClc+Jp0ceGHn/5hWWt8C0/N3mX15C4bDnCIuAAAAAAElFTkSuQmCC\');\n}\nwx-audio > .wx-audio-default > .wx-audio-right {\n box-sizing: border-box;\n height: 65px;\n margin-left: 65px;\n padding: 11px 16.5px 13.5px 15px;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info {\n margin-right: 70px;\n overflow: hidden;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info > .wx-audio-name {\n height: 22.5px;\n line-height: 22.5px;\n margin-bottom: 3.5px;\n font-size: 14px;\n color: #353535;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-info > .wx-audio-author {\n height: 14.5px;\n line-height: 14.5px;\n font-size: 12px;\n color: #888888;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nwx-audio > .wx-audio-default > .wx-audio-right > .wx-audio-time {\n margin-top: 3.5px;\n height: 16.5px;\n font-size: 12px;\n color: #888888;\n float: right;\n}\nwx-button {\n position: relative;\n display: block;\n margin-left: auto;\n margin-right: auto;\n padding-left: 14px;\n padding-right: 14px;\n box-sizing: border-box;\n font-size: 18px;\n text-align: center;\n text-decoration: none;\n line-height: 2.55555556;\n border-radius: 5px;\n -webkit-tap-highlight-color: transparent;\n overflow: hidden;\n color: #000000;\n background-color: #F8F8F8;\n}\nwx-button[hidden] {\n display: none !important;\n}\nwx-button:after {\n content: " ";\n width: 200%;\n height: 200%;\n position: absolute;\n top: 0;\n left: 0;\n border: 1px solid rgba(0, 0, 0, 0.2);\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n box-sizing: border-box;\n border-radius: 10px;\n}\nwx-button[type=default] {\n color: #000000;\n background-color: #F8F8F8;\n}\nwx-button[type=primary] {\n color: #FFFFFF;\n background-color: #1AAD19;\n}\nwx-button[type=warn] {\n color: #FFFFFF;\n background-color: #E64340;\n}\nwx-button[disabled] {\n color: rgba(255, 255, 255, 0.6);\n}\nwx-button[disabled][type=default],\nwx-button[disabled]:not([type]) {\n color: rgba(0, 0, 0, 0.3);\n background-color: #F7F7F7;\n}\nwx-button[disabled][type=primary] {\n background-color: #9ED99D;\n}\nwx-button[disabled][type=warn] {\n background-color: #EC8B89;\n}\nwx-button[type=primary][plain] {\n color: #1aad19;\n border: 1px solid #1aad19;\n background-color: transparent;\n}\nwx-button[type=primary][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=primary][plain]:after {\n border-width: 0;\n}\nwx-button[type=default][plain] {\n color: #353535;\n border: 1px solid #353535;\n background-color: transparent;\n}\nwx-button[type=default][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=default][plain]:after {\n border-width: 0;\n}\nwx-button[plain] {\n color: #353535;\n border: 1px solid #353535;\n background-color: transparent;\n}\nwx-button[plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[plain]:after {\n border-width: 0;\n}\nwx-button[type=warn][plain] {\n color: #e64340;\n border: 1px solid #e64340;\n background-color: transparent;\n}\nwx-button[type=warn][plain][disabled] {\n color: rgba(0, 0, 0, 0.2);\n border-color: rgba(0, 0, 0, 0.2);\n}\nwx-button[type=warn][plain]:after {\n border-width: 0;\n}\nwx-button[size=mini] {\n display: inline-block;\n line-height: 2.3;\n font-size: 13px;\n padding: 0 1.34em;\n}\nwx-button[loading]:before {\n content: " ";\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n -webkit-animation: wx-button-loading-animate 1s steps(12, end) infinite;\n animation: wx-button-loading-animate 1s steps(12, end) infinite;\n background: transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;\n background-size: 100%;\n}\nwx-button[loading][type=primary] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #179B16;\n}\nwx-button[loading][type=primary][plain] {\n color: #1aad19;\n background-color: transparent;\n}\nwx-button[loading][type=default] {\n color: rgba(0, 0, 0, 0.6);\n background-color: #DEDEDE;\n}\nwx-button[loading][type=default][plain] {\n color: #353535;\n background-color: transparent;\n}\nwx-button[loading][type=warn] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #CE3C39;\n}\nwx-button[loading][type=warn][plain] {\n color: #e64340;\n background-color: transparent;\n}\n@-webkit-keyframes wx-button-loading-animate {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n@keyframes wx-button-loading-animate {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n.button-hover {\n color: rgba(0, 0, 0, 0.6);\n background-color: #DEDEDE;\n}\n.button-hover[plain] {\n color: rgba(53, 53, 53, 0.6);\n border-color: rgba(53, 53, 53, 0.6);\n background-color: transparent;\n}\n.button-hover[type=primary] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #179B16;\n}\n.button-hover[type=primary][plain] {\n color: rgba(26, 173, 25, 0.6);\n border-color: rgba(26, 173, 25, 0.6);\n background-color: transparent;\n}\n.button-hover[type=default] {\n color: rgba(0, 0, 0, 0.6);\n background-color: #DEDEDE;\n}\n.button-hover[type=default][plain] {\n color: rgba(53, 53, 53, 0.6);\n border-color: rgba(53, 53, 53, 0.6);\n background-color: transparent;\n}\n.button-hover[type=warn] {\n color: rgba(255, 255, 255, 0.6);\n background-color: #CE3C39;\n}\n.button-hover[type=warn][plain] {\n color: rgba(230, 67, 64, 0.6);\n border-color: rgba(230, 67, 64, 0.6);\n background-color: transparent;\n}\nwx-canvas {\n width: 300px;\n height: 150px;\n display: block;\n}\nwx-checkbox {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-checkbox[hidden] {\n display: none;\n}\nwx-checkbox .wx-checkbox-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-checkbox .wx-checkbox-input {\n margin-right: 5px;\n -webkit-appearance: none;\n appearance: none;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #FFFFFF;\n border-radius: 3px;\n width: 22px;\n height: 22px;\n position: relative;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-checked {\n color: #09BB07;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n font-size: 22px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-disabled {\n background-color: #E1E1E1;\n}\nwx-checkbox .wx-checkbox-input.wx-checkbox-input-disabled:before {\n color: #ADADAD;\n}\nwx-checkbox-group {\n display: block;\n}\nwx-checkbox-group[hidden] {\n display: none;\n}\nwx-icon {\n display: inline-block;\n font-size: 0;\n}\nwx-icon[hidden] {\n display: none;\n}\nwx-icon i {\n font: normal normal normal 14px/1 "weui";\n}\n@font-face {\n font-weight: normal;\n font-style: normal;\n font-family: "weui";\n src: url(\'data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx+AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5ZvCRR/EAAASUAAAKtGhlYWQLKIN9AAAA4AAAADZoaGVhCCwD+gAAALwAAAAkaG10eEJo//8AAAHUAAAASGxvY2EYqhW6AAAEbAAAACZtYXhwASEAVQAAARgAAAAgbmFtZeNcHtgAAA9IAAAB5nBvc3T6bLhLAAARMAAAAOYAAQAAA+gAAABaA+j/////A+kAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAACkCj3dfDzz1AAsD6AAAAADUER9XAAAAANQRH1f//wAAA+kD6gAAAAgAAgAAAAAAAAABAAAAEgBJAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPqAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+j//wPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARgCMANIBJgF4AcQCMgJgAqgC/ANIA6YD/gROBKAE9AVaAAAAAgAAAAADrwOtABQAKQAAASIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAfV4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NlteA608O2Rn8GdjOzw8O2Nn8GdkOzz8rzc1W17bXlw1Nzc1XF7bXls1NwAAAAACAAAAAAOzA7MAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTBwYiLwEmNjsBETQ2OwEyFhURMzIWAe52Z2Q7PT07ZGd2fGpmOz4+O2ZpIXYOKA52Dg0XXQsHJgcLXRcNA7M+O2ZqfHZnZDs9PTtkZ3Z9aWY7Pv3wmhISmhIaARcICwsI/ukaAAMAAAAAA+UD5QAXACMALAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAxQrASI1AzQ7ATIHJyImNDYyFhQGAe6Ecm9BRERBb3KEiXZxQkREQnF1aQIxAwgCQgMBIxIZGSQZGQPkREJxdomEcm9BRERBb3KEinVxQkT9HQICAWICAjEZIxkZIxkAAAAAAwAAAAADsQPkABsAKgAzAAABBgcGBwYHBjcRFBcWFxYXNjc2NzY1ESQXJicmBzMyFhUDFAYrASInAzQ2EyImNDYyFhQGAfVBQTg7LDt/IEc+bF5sbF1tPUj+2KhQQVVvNAQGDAMCJgUBCwYeDxYWHhUVA+QPEg4SDhIpCv6tj3VkST4dHT5JZHWPAVNeNRkSGPwGBP7GAgMFAToEBv5AFR8VFR8VAAAAAgAAAAADsQPkABkALgAAAQYHBgc2BREUFxYXFhc2NzY3NjURJBcmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9VVVQk+v/tFHPmxebGxdbT1I/tGvT0JVo/7VBASKAwMSAQUBcQEFAgESAgUBEQQD4xMYEhk3YP6sjnVlSD8cHD9IZXWOAVRgNxkSGP62/tkDA48EBBkCAVYCAQHlAQIQBAAAAAACAAAAAAPkA+QAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTAQYiLwEmPwE2Mh8BFjI3ATYyHwEWAe6Ecm9BQ0NCbnODiXVxQkREQnF1kf6gAQUBowMDFgEFAYUCBQEBQwIFARUEA+NEQnF1iYNzbkJDQ0FvcoSJdXFCRP6j/qUBAagEBR4CAWYBAQENAgIVBAAAAAQAAAAAA68DrQAUACkAPwBDAAABIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYTBQ4BLwEmBg8BBhYfARYyNwE+ASYiFzAfAQH1eGdkOzw8O2Rn8GZkOzw8O2RmeG5eWzY3NzZbXtteWzY3NzZbXmn+9gYSBmAGDwUDBQEGfQUQBgElBQELEBUBAQOtPDtkZ/BnYzs8PDtjZ/BnZDs8/K83NVte215cNTc3NVxe215bNTcCJt0FAQVJBQIGBAcRBoAGBQEhBQ8LBAEBAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUHGgzLDCELAh0LHwsNCgr9uQoeCgGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA+UD5gAXACwAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBi8BJicmNRM0NjsBMhYVExceAQHvhHJvQUNDQm5zg4l1cUJEREJxdVcQAwT6AwIEEAMCKwIDDsUCAQPlREJxdYmDc25CQ0NBb3KEiXVxQkT9VhwEAncCAgMGAXoCAwMC/q2FAgQAAAQAAAAAA68DrQADABgALQAzAAABMB8BAyIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAyMVMzUjAuUBAfJ4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NltemyT92QKDAQEBLDw7ZGfwZ2M7PDw7Y2fwZ2Q7PPyvNzVbXtteXDU3NzVcXtteWzU3AjH9JAAAAAMAAAAAA+QD5AAXACcAMAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAzMyFhUDFAYrASImNQM0NhMiJjQ2MhYUBgHuhHJvQUNDQm5zg4l1cUJEREJxdZ42BAYMAwInAwMMBh8PFhYeFhYD40RCcXWJg3NuQkNDQW9yhIl1cUJE/vYGBf7AAgMDAgFABQb+NhYfFhYfFgAABAAAAAADwAPAAAgAEgAoAD0AAAEyNjQmIgYUFhcjFTMRIxUzNSMDIgcGBwYVFBYXFjMyNzY3NjU0Jy4BAyInJicmNDc2NzYyFxYXFhQHBgcGAfQYISEwISFRjzk5yTorhG5rPT99am+DdmhlPD4+PMyFbV5bNTc3NVte2l5bNTc3NVteAqAiLyIiLyI5Hf7EHBwCsT89a26Ed8w8Pj48ZWh2g29qffyjNzVbXtpeWzU3NzVbXtpeWzU3AAADAAAAAAOoA6gACwAgADUAAAEHJwcXBxc3FzcnNwMiBwYHBhQXFhcWMjc2NzY0JyYnJgMiJyYnJjQ3Njc2MhcWFxYUBwYHBgKOmpocmpocmpocmpq2dmZiOjs7OmJm7GZiOjs7OmJmdmtdWTQ2NjRZXdZdWTQ2NjRZXQKqmpocmpocmpocmpoBGTs6YmbsZmI6Ozs6YmbsZmI6O/zCNjRZXdZdWTQ2NjRZXdZdWTQ2AAMAAAAAA+kD6gAaAC8AMAAAAQYHBiMiJyYnJjQ3Njc2MhcWFxYVFAcGBwEHATI3Njc2NCcmJyYiBwYHBhQXFhcWMwKONUBCR21dWjU3NzVaXdpdWzU2GBcrASM5/eBXS0grKysrSEuuSkkqLCwqSUpXASMrFxg2NVtd2l1aNTc3NVpdbUdCQDX+3jkBGSsrSEuuSkkqLCwqSUquS0grKwAC//8AAAPoA+gAFAAwAAABIgcGBwYQFxYXFiA3Njc2ECcmJyYTFg4BIi8BBwYuATQ/AScmPgEWHwE3Nh4BBg8BAfSIdHFDRERDcXQBEHRxQ0REQ3F0SQoBFBsKoqgKGxMKqKIKARQbCqKoChsUAQqoA+hEQ3F0/vB0cUNERENxdAEQdHFDRP1jChsTCqiiCgEUGwqiqAobFAEKqKIKARQbCqIAAAIAAAAAA+QD5AAXADQAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMUBiMFFxYUDwEGLwEuAT8BNh8BFhQPAQUyFh0BAe6Ecm9BQ0NCbnODiXVxQkREQnF1fwQC/pGDAQEVAwTsAgEC7AQEFAIBhAFwAgMD40RCcXWJg3NuQkNDQW9yhIl1cUJE/fYCAwuVAgQCFAQE0AIFAtEEBBQCBQGVCwMDJwAAAAUAAAAAA9QD0wAjACcANwBHAEgAAAERFAYjISImNREjIiY9ATQ2MyE1NDYzITIWHQEhMhYdARQGIyERIREHIgYVERQWOwEyNjURNCYjISIGFREUFjsBMjY1ETQmKwEDeyYb/XYbJkMJDQ0JAQYZEgEvExkBBgkNDQn9CQJc0QkNDQktCQ0NCf7sCQ0NCS0JDQ0JLQMi/TQbJiYbAswMCiwJDS4SGRkSLg0JLAoM/UwCtGsNCf5NCQ0NCQGzCQ0NCf5NCQ0NCQGzCQ0AAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA\') format(\'truetype\');\n}\n[class^="wx-icon-"]:before,\n[class*=" wx-icon-"]:before {\n margin: 0;\n}\n.wx-icon-success {\n color: #09BB07;\n}\n.wx-icon-success:before {\n content: "\\EA06";\n}\n.wx-icon-info {\n color: #10AEFF;\n}\n.wx-icon-info:before {\n content: "\\EA03";\n}\n.wx-icon-warn {\n color: #F76260;\n}\n.wx-icon-warn:before {\n content: "\\EA0B";\n}\n.wx-icon-waiting {\n color: #10AEFF;\n}\n.wx-icon-waiting:before {\n content: "\\EA09";\n}\n.wx-icon-safe_success {\n color: #09BB07;\n}\n.wx-icon-safe_success:before {\n content: "\\EA04";\n}\n.wx-icon-safe_warn {\n color: #FFBE00;\n}\n.wx-icon-safe_warn:before {\n content: "\\EA05";\n}\n.wx-icon-success_circle {\n color: #09BB07;\n}\n.wx-icon-success_circle:before {\n content: "\\EA07";\n}\n.wx-icon-success_no_circle {\n color: #09BB07;\n}\n.wx-icon-success_no_circle:before {\n content: "\\EA08";\n}\n.wx-icon-waiting_circle {\n color: #10AEFF;\n}\n.wx-icon-waiting_circle:before {\n content: "\\EA0A";\n}\n.wx-icon-circle {\n color: #C9C9C9;\n}\n.wx-icon-circle:before {\n content: "\\EA01";\n}\n.wx-icon-download {\n color: #09BB07;\n}\n.wx-icon-download:before {\n content: "\\EA02";\n}\n.wx-icon-info_circle {\n color: #09BB07;\n}\n.wx-icon-info_circle:before {\n content: "\\EA0C";\n}\n.wx-icon-cancel {\n color: #F43530;\n}\n.wx-icon-cancel:before {\n content: "\\EA0D";\n}\n.wx-icon-search {\n color: #B2B2B2;\n}\n.wx-icon-search:before {\n content: "\\EA0E";\n}\n.wx-icon-clear {\n color: #B2B2B2;\n}\n.wx-icon-clear:before {\n content: "\\EA0F";\n}\n[class^="wx-icon-"]:before,\n[class*=" wx-icon-"]:before {\n box-sizing: border-box;\n}\nwx-image {\n width: 320px;\n height: 240px;\n display: inline-block;\n overflow: hidden;\n}\nwx-image[hidden] {\n display: none;\n}\nwx-image > div {\n width: 100%;\n height: 100%;\n}\nwx-image > img {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n display: block;\n}\n.input-placeholder {\n color: gray;\n}\nwx-input {\n display: block;\n height: 1.4rem;\n text-overflow: clip;\n overflow: hidden;\n white-space: nowrap;\n font-family: UICTFontTextStyleBody;\n min-height: 1.4rem;\n}\nwx-input input {\n position: relative;\n min-height: 1.4rem;\n border: none;\n height: inherit;\n width: 100%;\n font-size: inherit;\n font-weight: inherit;\n font-family: UICTFontTextStyleBody;\n color: inherit;\n background: transparent;\n display: inherit;\n padding: 0;\n margin: 0;\n outline: none;\n vertical-align: middle;\n text-align: inherit;\n overflow: inherit;\n white-space: inherit;\n text-overflow: inherit;\n -webkit-tap-highlight-color: transparent;\n z-index: 2;\n}\nwx-input[disabled] div {\n color: grey;\n}\nwx-input[hidden] {\n display: none;\n}\nwx-input div {\n position: relative;\n min-height: 1.4rem;\n text-overflow: inherit;\n border: none;\n height: inherit;\n width: inherit;\n font-size: inherit;\n font-weight: inherit;\n font-family: UICTFontTextStyleBody;\n color: inherit;\n background: inherit;\n padding: 0;\n margin: 0;\n outline: none;\n text-align: inherit;\n -webkit-tap-highlight-color: transparent;\n}\nwx-input div[type=password] div {\n color: black;\n}\nwx-input div div {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n line-height: 100%;\n height: inherit;\n min-height: 1.4rem;\n white-space: nowrap;\n text-align: inherit;\n overflow: hidden;\n vertical-align: middle;\n z-index: 1;\n}\n.wx-loading {\n position: fixed;\n z-index: 2000000000;\n width: 7.6em;\n min-height: 7.6em;\n top: 180px;\n left: 50%;\n margin-left: -3.8em;\n background: rgba(40, 40, 40, 0.75);\n text-align: center;\n border-radius: 5px;\n color: #FFFFFF;\n font-size: 16px;\n line-height: normal;\n}\n.wx-loading-icon {\n margin: 30px 0 10px;\n width: 38px;\n height: 38px;\n vertical-align: baseline;\n display: inline-block;\n -webkit-animation: weuiLoading 1s steps(12, end) infinite;\n animation: weuiLoading 1s steps(12, end) infinite;\n background: transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;\n background-size: 100%;\n}\n.wx-loading-content {\n margin: 0 0 15px;\n}\n.wx-loading-mask {\n position: fixed;\n z-index: 1000;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\n@-webkit-keyframes weuiLoading {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n }\n}\n@keyframes weuiLoading {\n 0% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n }\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 360deg);\n }\n}\nwx-map {\n position: relative;\n width: 300px;\n height: 150px;\n display: block;\n}\n.wx-mask {\n position: fixed;\n z-index: inherit;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: inherit;\n}\n.wx-mask[show=false] {\n display: none;\n}\n.wx-mask-transparent {\n background-color: rgba(0, 0, 0, 0);\n}\nwx-mask {\n z-index: 1000;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.6);\n}\nwx-modal .wx-modal-mask {\n z-index: inherit;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n transition: background-color 0.3s;\n background-color: inherit;\n z-index: 1000;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.6);\n -webkit-animation: fadeIn ease .3s forwards;\n animation: fadeIn ease .3s forwards;\n}\nwx-modal .wx-modal-dialog {\n position: fixed;\n z-index: 5000;\n width: 85%;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n background-color: #FAFAFC;\n text-align: center;\n border-radius: 3px;\n overflow: hidden;\n}\nwx-modal .wx-modal-dialog-hd {\n padding: 1.2em 20px .5em;\n}\nwx-modal .wx-modal-dialog-hd strong {\n font-weight: normal;\n font-size: 17px;\n}\nwx-modal .wx-modal-dialog-bd {\n text-align: left;\n padding: 0 20px;\n font-size: 15px;\n color: #888;\n word-wrap: break-word;\n word-break: break-all;\n}\nwx-modal .wx-modal-dialog-ft {\n position: relative;\n line-height: 42px;\n margin-top: 20px;\n font-size: 17px;\n display: -webkit-flex;\n display: flex;\n}\nwx-modal .wx-modal-dialog-ft:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 1px;\n border-top: 1px solid #D5D5D6;\n color: #D5D5D6;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-modal .wx-modal-dialog-ft a {\n position: relative;\n display: block;\n -webkit-flex: 1;\n flex: 1;\n text-decoration: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nwx-modal .wx-modal-dialog-ft a[hidden] {\n display: none;\n}\nwx-modal .wx-modal-dialog-ft a:active {\n background-color: #eee;\n}\nwx-modal .wx-modal-btn-primary {\n color: #3CC51F;\n}\nwx-modal .wx-modal-btn-default {\n color: #000000;\n}\nwx-modal .wx-modal-btn-default:before {\n content: " ";\n position: absolute;\n right: 0;\n top: 0;\n width: 1px;\n height: 100%;\n border-right: 1px solid #D5D5D6;\n color: #D5D5D6;\n -webkit-transform-origin: 100% 0;\n transform-origin: 100% 0;\n -webkit-transform: scaleX(0.5);\n transform: scaleX(0.5);\n}\n@media screen and (min-width: 1024px) {\n wx-modal .wx-modal-dialog {\n width: 35%;\n }\n}\n@-webkit-keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\nwx-picker {\n display: block;\n}\nwx-picker-view {\n display: block;\n}\nwx-picker-view .wrapper {\n display: -webkit-flex;\n display: flex;\n position: relative;\n overflow: hidden;\n}\nwx-picker-view[hidden] {\n display: none;\n}\nwx-picker-view-column {\n -webkit-flex: 1;\n flex: 1;\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.wx-picker__mask {\n transform: translateZ(0);\n -webkit-transform: translateZ(0);\n}\n.wx-picker__indicator,\n.wx-picker__mask {\n position: absolute;\n left: 0;\n width: 100%;\n z-index: 3;\n}\n.wx-picker__mask {\n top: 0;\n height: 100%;\n margin: 0 auto;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(0deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));\n background-position: top,bottom;\n background-size: 100% 102px;\n background-repeat: no-repeat;\n}\n.wx-picker__indicator {\n height: 34px;\n top: 102px;\n}\n.wx-picker__indicator,\n.wx-picker__mask {\n position: absolute;\n left: 0;\n width: 100%;\n z-index: 3;\n pointer-events: none;\n}\n.wx-picker__content {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n will-change: transform;\n}\n.wx-picker__indicator:after,\n.wx-picker__indicator:before {\n content: " ";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n color: #e5e5e5;\n}\n.wx-picker__indicator:before {\n top: 0;\n border-top: 1px solid #e5e5e5;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\n.wx-picker__indicator:after {\n bottom: 0;\n border-bottom: 1px solid #e5e5e5;\n -webkit-transform-origin: 0 100%;\n transform-origin: 0 100%;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\n.wx-picker__indicator:after,\n.wx-picker__indicator:before {\n content: " ";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n color: #e5e5e5;\n}\nwx-progress {\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n}\nwx-progress[hidden] {\n display: none;\n}\n.wx-progress-bar {\n -webkit-flex: 1;\n flex: 1;\n}\n.wx-progress-inner-bar {\n width: 0;\n height: 100%;\n}\n.wx-progress-info {\n margin-top: 0;\n margin-bottom: 0;\n min-width: 2em;\n margin-left: 15px;\n font-size: 16px;\n}\nwx-radio {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-radio[hidden] {\n display: none;\n}\nwx-radio .wx-radio-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-radio .wx-radio-input {\n -webkit-appearance: none;\n appearance: none;\n margin-right: 5px;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #ffffff;\n border-radius: 50%;\n width: 22px;\n height: 22px;\n position: relative;\n}\nwx-radio .wx-radio-input.wx-radio-input-checked {\n background-color: #09BB07;\n border-color: #09BB07;\n}\nwx-radio .wx-radio-input.wx-radio-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n color: #ffffff;\n font-size: 18px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-radio .wx-radio-input.wx-radio-input-disabled {\n background-color: #E1E1E1;\n border-color: #D1D1D1;\n}\nwx-radio .wx-radio-input.wx-radio-input-disabled:before {\n color: #ADADAD;\n}\nwx-radio-group {\n display: block;\n}\nwx-radio-group[hidden] {\n display: none;\n}\nwx-scroll-view {\n display: block;\n width: 100%;\n}\nwx-scroll-view[hidden] {\n display: none;\n}\n.wx-scroll-view {\n position: relative;\n -webkit-overflow-scrolling: touch;\n height: 100%;\n max-height: inherit;\n}\nwx-swiper {\n display: block;\n height: 150px;\n}\nwx-swiper[hidden] {\n display: none;\n}\nwx-swiper .wx-swiper-wrapper {\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n}\nwx-swiper .wx-swiper-slides {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\nwx-swiper .wx-swiper-slides-tracking {\n transition: none;\n}\nwx-swiper .wx-swiper-dots {\n position: absolute;\n font-size: 0;\n}\nwx-swiper .wx-swiper-dots-horizontal {\n left: 50%;\n bottom: 10px;\n text-align: center;\n white-space: nowrap;\n -webkit-transform: translate(-50%, 0);\n transform: translate(-50%, 0);\n}\nwx-swiper .wx-swiper-dots-horizontal .wx-swiper-dot {\n margin-right: 9px;\n}\nwx-swiper .wx-swiper-dots-horizontal .wx-swiper-dot:last-child {\n margin-right: 0;\n}\nwx-swiper .wx-swiper-dots-vertical {\n right: 10px;\n top: 50%;\n text-align: right;\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n}\nwx-swiper .wx-swiper-dots-vertical .wx-swiper-dot {\n display: block;\n margin-bottom: 9px;\n}\nwx-swiper .wx-swiper-dots-vertical .wx-swiper-dot:last-child {\n margin-bottom: 0;\n}\nwx-swiper .wx-swiper-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n cursor: pointer;\n transition-property: background-color;\n transition-timing-function: ease;\n background: rgba(0, 0, 0, 0.3);\n border-radius: 50%;\n}\nwx-swiper .wx-swiper-dot-active {\n background-color: #000000;\n}\nwx-swiper-item {\n display: block;\n overflow: hidden;\n}\nwx-swiper-item[hidden] {\n display: none;\n}\nwx-slider {\n margin: 10px 18px;\n padding: 0;\n display: block;\n}\nwx-slider[hidden] {\n display: none;\n}\nwx-slider .wx-slider-wrapper {\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n min-height: 16px;\n}\nwx-slider .wx-slider-tap-area {\n -webkit-flex: 1;\n flex: 1;\n padding: 8px 0;\n}\nwx-slider .wx-slider-handle-wrapper {\n position: relative;\n height: 2px;\n border-radius: 5px;\n background-color: #e9e9e9;\n cursor: pointer;\n transition: background-color 0.3s ease;\n -webkit-tap-highlight-color: transparent;\n}\nwx-slider .wx-slider-track {\n height: 100%;\n border-radius: 6px;\n background-color: #1aad19;\n transition: background-color 0.3s ease;\n}\nwx-slider .wx-slider-handle {\n position: absolute;\n width: 28px;\n height: 28px;\n left: 50%;\n top: 50%;\n margin-left: -14px;\n margin-top: -14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: #fff;\n z-index: 2;\n transition: border-color 0.3s ease;\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);\n}\nwx-slider .wx-slider-step {\n position: absolute;\n width: 100%;\n height: 2px;\n background: transparent;\n z-index: 1;\n}\nwx-slider .wx-slider-value {\n color: #888;\n font-size: 14px;\n margin-left: 1em;\n}\nwx-slider .wx-slider-disabled .wx-slider-track {\n background-color: #ccc;\n}\nwx-slider .wx-slider-disabled .wx-slider-handle {\n background-color: #FFF;\n border-color: #ccc;\n}\n* {\n margin: 0;\n}\nwx-switch {\n -webkit-tap-highlight-color: transparent;\n display: inline-block;\n}\nwx-switch[hidden] {\n display: none;\n}\nwx-switch .wx-switch-wrapper {\n display: -webkit-inline-flex;\n display: inline-flex;\n -webkit-align-items: center;\n align-items: center;\n vertical-align: middle;\n}\nwx-switch .wx-switch-input {\n -webkit-appearance: none;\n appearance: none;\n position: relative;\n width: 52px;\n height: 32px;\n margin-right: 5px;\n border: 1px solid #DFDFDF;\n outline: 0;\n border-radius: 16px;\n box-sizing: border-box;\n background-color: #DFDFDF;\n transition: background-color 0.1s, border 0.1s;\n}\nwx-switch .wx-switch-input:before {\n content: " ";\n position: absolute;\n top: 0;\n left: 0;\n width: 50px;\n height: 30px;\n border-radius: 15px;\n background-color: #FDFDFD;\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-switch .wx-switch-input:after {\n content: " ";\n position: absolute;\n top: 0;\n left: 0;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n background-color: #FFFFFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n transition: -webkit-transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\nwx-switch .wx-switch-input.wx-switch-input-checked {\n border-color: #04BE02;\n background-color: #04BE02;\n}\nwx-switch .wx-switch-input.wx-switch-input-checked:before {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\nwx-switch .wx-switch-input.wx-switch-input-checked:after {\n -webkit-transform: translateX(20px);\n transform: translateX(20px);\n}\nwx-switch .wx-checkbox-input {\n margin-right: 5px;\n -webkit-appearance: none;\n appearance: none;\n outline: 0;\n border: 1px solid #D1D1D1;\n background-color: #FFFFFF;\n border-radius: 3px;\n width: 22px;\n height: 22px;\n position: relative;\n color: #09BB07;\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-checked:before {\n font: normal normal normal 14px/1 "weui";\n content: "\\EA08";\n color: inherit;\n font-size: 22px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -48%) scale(0.73);\n -webkit-transform: translate(-50%, -48%) scale(0.73);\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-disabled {\n background-color: #E1E1E1;\n}\nwx-switch .wx-checkbox-input.wx-checkbox-input-disabled:before {\n color: #ADADAD;\n}\nwx-text[selectable] {\n user-select: text;\n -webkit-user-select: text;\n}\n.wx-toast {\n position: fixed;\n z-index: 2000000000;\n width: 7.6em;\n min-height: 7.6em;\n top: 180px;\n left: 50%;\n margin-left: -3.8em;\n background: rgba(40, 40, 40, 0.75);\n text-align: center;\n border-radius: 5px;\n color: #FFFFFF;\n font-size: 16px;\n line-height: normal;\n}\n.wx-toast-icon {\n margin-top: 14px;\n margin-bottom: 8px;\n font-family: weui;\n font-style: normal;\n}\n.wx-toast-content {\n margin: 0 0 15px;\n}\n.wx-toast-mask {\n position: fixed;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.6);\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\nwx-video {\n width: 300px;\n height: 225px;\n display: inline-block;\n line-height: 0;\n overflow: hidden;\n}\nwx-video[hidden] {\n display: none;\n}\nwx-video .wx-video-container {\n width: 100%;\n height: 100%;\n background-color: black;\n display: inline-block;\n position: relative;\n}\nwx-video video {\n width: 100%;\n height: 100%;\n}\nwx-video .wx-video-bar {\n height: 44px;\n background-color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n display: -webkit-flex;\n display: flex;\n -webkit-align-items: center;\n align-items: center;\n padding: 0 10px;\n}\nwx-video .wx-video-bar.full {\n left: 0;\n}\nwx-video .wx-video-bar.part {\n margin: 5px;\n border-radius: 5px;\n height: 34px;\n}\nwx-video .wx-video-bar.none {\n display: none;\n}\nwx-video .wx-video-bar > .wx-video-controls {\n display: -webkit-flex;\n display: flex;\n -webkit-flex-grow: 1;\n flex-grow: 1;\n margin: 0 8.5px;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-control-button {\n width: 13px;\n height: 15px;\n margin: 14.5px 12.5px 14.5px 0;\n background-size: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-control-button.play {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==\');\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-control-button.pause {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC\');\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container {\n -webkit-flex-grow: 2;\n flex-grow: 2;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container > .wx-video-progress {\n height: 2px;\n margin: 21px 12px;\n background-color: rgba(255, 255, 255, 0.5);\n position: relative;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container > .wx-video-progress > .wx-video-progress-inner {\n width: 100%;\n height: 100%;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container > .wx-video-progress > .wx-video-ball {\n width: 16px;\n height: 16px;\n padding: 14px;\n position: absolute;\n top: -21px;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container > .wx-video-progress > .wx-video-ball > .wx-video-inner {\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n border-radius: 50%;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-progress-container > .wx-video-progress > .wx-video-inner {\n width: 0;\n height: 100%;\n background-color: #ffffff;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-current-time,\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-duration {\n height: 14.5px;\n line-height: 14.5px;\n margin-top: 15px;\n margin-bottom: 14.5px;\n font-size: 12px;\n color: #cbcbcb;\n}\nwx-video .wx-video-bar > .wx-video-controls > .wx-video-live-button {\n height: 14.5px;\n line-height: 14.5px;\n margin-top: 15px;\n margin-bottom: 14.5px;\n font-size: 12px;\n color: #cbcbcb;\n}\nwx-video .wx-video-bar > .wx-video-danmu-btn {\n white-space: nowrap;\n line-height: 1;\n padding: 2px 10px;\n border: 1px solid #fff;\n border-radius: 5px;\n font-size: 13px;\n color: #fff;\n margin: 0 8.5px;\n}\nwx-video .wx-video-bar > .wx-video-danmu-btn.active {\n border-color: #48c23d;\n color: #48c23d;\n}\nwx-video .wx-video-bar > .wx-video-fullscreen {\n width: 17px;\n height: 17px;\n /*margin: 13.5px 16px 13.5px 17px;*/\n margin: 0 8.5px;\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAQRJREFUWAnt1d0NwiAQB/CmS7hHX5zFxLF0Ah2hE/lg7BT4PyMJUj6Oyt299BIioZT7ARYG59wLpTXmoXOMGO/QecxtwyWW4o42AupGALkFdX1MkHxE3Q7jIbQPqNthQogpJoZkMLRlsn/gFMQEk4OoY0oQVUwNoobhQFQwgMxUKFkt0C8+Zy61d8SeR5iHWCLOwF/MCb8Tp//ex3QFsE1HlCfKFUX2OijNFMnPKD7k76YcBoL402Zh8B77+MjlXrVvwfglXA32b0MrRgxCE2nBiEJaMOIQLkYFwsGoQWoYVUgJow4pYD4Weq4ayBqfwDYQmnUK0301kITujuawu65/l2B5A4z3Qe+Ut7EBAAAAAElFTkSuQmCC\');\n background-size: cover;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n}\nwx-video .wx-video-danmu {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin-bottom: 44px;\n}\nwx-video .wx-video-danmu > .wx-video-danmu-item {\n line-height: 1;\n position: absolute;\n color: #ffffff;\n white-space: nowrap;\n left: 100%;\n transition: 3s linear;\n}\nwx-video .wx-video-cover {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n display: -webkit-flex;\n display: flex;\n -webkit-flex-direction: column;\n flex-direction: column;\n -webkit-justify-content: center;\n justify-content: center;\n -webkit-align-items: center;\n align-items: center;\n background-color: rgba(1, 1, 1, 0.5);\n z-index: 1;\n}\nwx-video .wx-video-cover .wx-video-cover-play-button {\n width: 15px;\n height: 15px;\n}\nwx-video .wx-video-cover .wx-video-cover-duration {\n color: #fff;\n font-size: 16px;\n line-height: 1;\n margin-top: 10px;\n}\nwx-view {\n display: block;\n}\nwx-view[hidden] {\n display: none;\n}\n.navigator-hover {\n background-color: rgba(0, 0, 0, 0.1);\n opacity: 0.7;\n}\nwx-navigator {\n height: auto;\n width: auto;\n display: block;\n}\nwx-navigator[hidden] {\n display: none;\n}\nwx-action-sheet-cancel {\n background-color: #FFFFFF;\n font-size: 18px;\n}\nwx-action-sheet-cancel .wx-action-sheet-middle {\n background-color: #EFEFF4;\n height: 6px;\n width: 100%;\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel {\n background-color: inherit;\n position: relative;\n padding: 10px 0;\n text-align: center;\n font-size: inherit;\n display: block;\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel:before {\n content: " ";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n border-top: 1px solid #D9D9D9;\n color: #D9D9D9;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-transform: scaleY(0.5);\n transform: scaleY(0.5);\n}\nwx-action-sheet-cancel .wx-action-sheet-cancel:active {\n background-color: #ECECEC;\n}\n.textarea-placeholder {\n color: grey;\n}\nwx-textarea {\n width: 300px;\n height: 150px;\n display: block;\n position: relative;\n}\nwx-textarea[hidden] {\n display: none;\n}\nwx-textarea textarea {\n outline: none;\n border: none;\n resize: none;\n background-color: transparent;\n line-height: 1.2;\n z-index: 2;\n position: absolute;\n padding: 0;\n font-family: inherit;\n background: transparent;\n}\nwx-textarea .compute {\n color: transparent;\n top: 0;\n z-index: 0;\n}\nwx-textarea div {\n word-break: break-all;\n line-height: 1.2;\n font-family: inherit;\n position: absolute;\n}\n/*wx-share-button {*/\n/*display: inline-block;*/\n/*line-height: 0;*/\n/*z-index: 9999999999;*/\n/*-webkit-tap-highlight-color: transparent;*/\n/*>.wx-share-button-wrapper {*/\n/*width: 36px;*/\n/*height: 36px;*/\n/*display: inline-block;*/\n/*background-size: 100% 100%;*/\n/*background-repeat: no-repeat;*/\n/*-webkit-tap-highlight-color: transparent;*/\n/*}*/\n/*}*/\nwx-contact-button {\n display: inline-block;\n line-height: 0;\n z-index: 9999999999;\n}\nwx-contact-button[hidden] {\n display: none;\n}\nwx-contact-button > .wx-contact-button-wrapper {\n width: 18px;\n height: 18px;\n display: inline-block;\n background-size: 100% 100%;\n background-repeat: no-repeat;\n -webkit-tap-highlight-color: transparent;\n}\n\n/*# sourceMappingURL=wx-components.css.map */'), +wx.version={updateTime:"2017.3.28 23:10:15",info:"",version:"1.1.0"};;var __WAWebviewEndTime__ = Date.now(); \ No newline at end of file diff --git a/app/dist/weapp/onlinevendor/hls.js b/app/dist/weapp/onlinevendor/hls.js new file mode 100644 index 00000000..0eb3174f --- /dev/null +++ b/app/dist/weapp/onlinevendor/hls.js @@ -0,0 +1,7 @@ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Hls=e()}}(function(){var e;return function e(t,r,i){function a(s,o){if(!r[s]){if(!t[s]){var l="function"==typeof require&&require;if(!o&&l)return l(s,!0);if(n)return n(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var d=r[s]={exports:{}};t[s][0].call(d.exports,function(e){var r=t[s][1][e];return a(r?r:e)},d,d.exports,e,t,r,i)}return r[s].exports}for(var n="function"==typeof require&&require,s=0;s0&&this._events[e].length>r&&(this._events[e].warned=!0,"function"==typeof console.trace)),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!a(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},i.prototype.removeListener=function(e,t){var r,i,n,o;if(!a(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],n=r.length,i=-1,r===t||a(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(r)){for(o=n;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){i=o;break}if(i<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},i.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],a(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},i.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?a(this._events[e])?[this._events[e]]:this._events[e].slice():[]},i.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(a(t))return 1;if(t)return t.length}return 0},i.listenerCount=function(e,t){return e.listenerCount(t)}},{}],2:[function(t,r,i){!function(t){var a={buildAbsoluteURL:function(e,t){if(t=t.trim(),/^[a-z]+:/i.test(t))return t;var r=null,i=null,n=/^([^#]*)(.*)$/.exec(t);n&&(i=n[2],t=n[1]);var s=/^([^\?]*)(.*)$/.exec(t);s&&(r=s[2],t=s[1]);var o=/^([^#]*)(.*)$/.exec(e);o&&(e=o[1]);var l=/^([^\?]*)(.*)$/.exec(e);l&&(e=l[1]);var u=/^(([a-z]+:)?\/\/[a-z0-9\.\-_~]+(:[0-9]+)?)?(\/.*)$/i.exec(e);if(!u)throw new Error("Error trying to parse base URL.");var d=u[2]||"",f=u[1]||"",h=u[4],c=null;return c=/^\/\//.test(t)?d+"//"+a.buildAbsolutePath("",t.substring(2)):/^\//.test(t)?f+"/"+a.buildAbsolutePath("",t.substring(1)):a.buildAbsolutePath(f+h,t),r&&(c+=r),i&&(c+=i),c},buildAbsolutePath:function(e,t){for(var r,i,a=t,n="",s=e.replace(/[^\/]*$/,a.replace(/(\/|^)(?:\.?\/+)+/g,"$1")),o=0;i=s.indexOf("/../",o),i>-1;o=i+r)r=/^\/(?:\.\.\/)*/.exec(s.slice(i))[0].length,n=(n+s.substring(o,i)).replace(new RegExp("(?:\\/+[^\\/]*){0,"+(r-1)/3+"}$"),"/");return n+s.substr(o)}};"object"==typeof i&&"object"==typeof r?r.exports=a:"function"==typeof e&&e.amd?e([],function(){return a}):"object"==typeof i?i.URLToolkit=a:t.URLToolkit=a}(this)},{}],3:[function(e,t,r){var i=arguments[3],a=arguments[4],n=arguments[5],s=JSON.stringify;t.exports=function(e,t){function r(e){p[e]=!0;for(var t in a[e][1]){var i=a[e][1][t];p[i]||r(i)}}for(var o,l=Object.keys(n),u=0,d=l.length;u500*r.duration/o){var l=e.levels,d=Math.max(1,n.bw?n.bw/8:1e3*n.loaded/s),f=n.total?n.total:Math.max(n.loaded,Math.round(r.duration*l[r.level].bitrate/8)),h=t.currentTime,g=(f-n.loaded)/d,p=(c.default.bufferInfo(t,h,e.config.maxBufferHole).end-h)/o;if(p<2*r.duration/o&&g>p){var y=void 0,m=void 0;for(m=r.level-1;m>a&&(y=r.duration*l[m].bitrate/(6.4*d),!(y=i;u--){var d=l[u],f=d.details,h=f?f.totalduration/f.fragments.length:t,c=!!f&&f.live,g=void 0;g=u<=e?s*r:o*r;var p=l[u].bitrate,y=p*h/g;if(v.logger.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+u+"/"+Math.round(g)+"/"+p+"/"+h+"/"+n+"/"+y),g>p&&(!y||c||yr)return a;return 0}},{key:"maxAutoLevel",get:function(){var e,t=this.hls.levels,r=this._autoLevelCapping;return e=r===-1&&t&&t.length?t.length-1:r}},{key:"nextABRAutoLevel",get:function(){var e=this.hls,t=this.maxAutoLevel,r=e.levels,i=e.config,a=this.minAutoLevel,n=e.media,s=this.lastLoadedFragLevel,o=this.fragCurrent?this.fragCurrent.duration:0,l=n?n.currentTime:0,u=n&&0!==n.playbackRate?Math.abs(n.playbackRate):1,d=this.bwEstimator?this.bwEstimator.getEstimate():i.abrEwmaDefaultEstimate,f=(c.default.bufferInfo(n,l,i.maxBufferHole).end-l)/u,h=this.findBestLevel(s,o,d,a,t,f,i.abrBandWidthFactor,i.abrBandWidthUpFactor,r);if(h>=0)return h;v.logger.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var g=i.maxStarvationDelay,p=i.abrBandWidthFactor,y=i.abrBandWidthUpFactor;if(0===f){var m=this.bitrateTestDelay;m&&(g=i.maxLoadingDelay-m,v.logger.trace("bitrate test took "+Math.round(1e3*m)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*g)+" ms"),p=y=1)}return h=this.findBestLevel(s,o,d,a,t,f+g,p,y,r),Math.max(h,0)}}]),t}(f.default);r.default=m},{26:26,27:27,28:28,30:30,45:45,9:9}],5:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=function(){function e(e,t){for(var r=0;r0&&e===-1?(T.logger.log("audio:override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=A.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:e,this.state=A.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=e,this.state=A.STOPPED}},{key:"stopLoad",value:function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=A.STOPPED}},{key:"tick",value:function(){this.ticks++,1===this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)}},{key:"doTick",value:function(){var e,t,r,i,a,n,s=this,l=this.hls,u=l.config,f=function(){switch(s.state){case A.ERROR:case A.PAUSED:break;case A.STARTING:s.state=A.WAITING_TRACK,s.loadedmetadata=!1;break;case A.IDLE:if(!s.media&&(s.startFragRequested||!u.startFragPrefetch))break;e=s.loadedmetadata?s.media.currentTime:s.nextLoadPosition;var o=s.mediaBuffer?s.mediaBuffer:s.media,f=h.default.bufferInfo(o,e,u.maxBufferHole),c=f.len,g=f.end,v=s.fragPrevious,y=u.maxMaxBufferLength,m=s.audioSwitch;if(c_))return{v:void 0};T.logger.log("alt audio track ahead of main track, seek to start of alt audio track"),s.media.currentTime=_+.05}if(g<_?S=E[0]:!function(){var e=void 0,t=u.maxFragLookUpTolerance;gR-t&&(t=0),e=d.default.search(E,function(e){return e.start+e.duration-t<=g?1:e.start-t>g?-1:0})):e=E[b-1],e&&(S=e,_=e.start,v&&S.level===v.level&&S.sn===v.sn&&(S.snL&&Math.abs(s.fragLoadIdx-S.loadIdx)=a||n)&&(T.logger.log("audioStreamController: retryDate reached, switch back to IDLE state"),s.state=A.IDLE);break;case A.WAITING_INIT_PTS:case A.STOPPED:case A.FRAG_LOADING:case A.PARSING:case A.PARSED:case A.ENDED:}}();if("object"===("undefined"==typeof f?"undefined":o(f)))return f.v}},{key:"onMediaAttached",value:function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended);var r=this.config;this.tracks&&r.autoStartLoad&&this.startLoad(r.startPosition)}},{key:"onMediaDetaching",value:function(){var e=this.media;e&&e.ended&&(T.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.tracks;t&&t.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.loadCounter=void 0})}),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()}},{key:"onMediaSeeking",value:function(){this.state===A.ENDED&&(this.state=A.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()}},{key:"onMediaEnded",value:function(){this.startPosition=this.lastCurrentTime=0}},{key:"onAudioTracksUpdated",value:function(e){T.logger.log("audio tracks updated"),this.tracks=e.audioTracks}},{key:"onAudioTrackSwitching",value:function(e){var t=!!e.url;this.trackId=e.id,this.state=A.IDLE,this.fragCurrent=null,this.state=A.PAUSED,this.waitingFragment=null,t?this.timer||(this.timer=setInterval(this.ontick,100)):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),t&&(this.audioSwitch=!0,this.state=A.IDLE,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()}},{key:"onAudioTrackLoaded",value:function(e){var t=e.details,r=e.id,i=this.tracks[r],a=t.totalduration,n=0;if(T.logger.log("track "+r+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),t.live){var s=i.details;s&&t.fragments.length>0?(b.default.mergeDetails(s,t),n=t.fragments[0].start,t.PTSKnown?T.logger.log("live audio playlist sliding:"+n.toFixed(3)):T.logger.log("live audio playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,T.logger.log("live audio playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(i.details=t,!this.startFragRequested){if(this.startPosition===-1){var o=t.startTimeOffset;isNaN(o)?this.startPosition=0:(T.logger.log("start time offset found in playlist, adjust startPosition to "+o),this.startPosition=o)}this.nextLoadPosition=this.startPosition}this.state===A.WAITING_TRACK&&(this.state=A.IDLE),this.tick()}},{key:"onKeyLoaded",value:function(){this.state===A.KEY_LOADING&&(this.state=A.IDLE,this.tick())}},{key:"onFragLoaded",value:function(e){var t=this.fragCurrent;if(this.state===A.FRAG_LOADING&&t&&"audio"===e.frag.type&&e.frag.level===t.level&&e.frag.sn===t.sn){this.state=A.PARSING,this.stats=e.stats;var r=this.tracks[this.trackId],i=r.details,a=i.totalduration,n=t.start,s=t.level,o=t.sn,l=t.cc,u=this.config.defaultAudioCodec||r.audioCodec;this.appended=!1,this.demuxer||(this.demuxer=new g.default(this.hls,"audio"));var d=this.initPTS[l];if(void 0!==d){this.pendingBuffering=!0,T.logger.log("Demuxing "+o+" of ["+i.startSN+" ,"+i.endSN+"],track "+s);var f=!1;this.demuxer.push(e.payload,u,null,n,l,s,o,a,t.decryptdata,f,d)}else T.logger.log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+o+" of ["+i.startSN+" ,"+i.endSN+"],track "+s),this.waitingFragment=e,this.state=A.WAITING_INIT_PTS}this.fragLoadError=0}},{key:"onFragParsingInitSegment",value:function(e){var t=this.fragCurrent;if(t&&"audio"===e.id&&e.sn===t.sn&&e.level===t.level&&this.state===A.PARSING){var r=e.tracks,i=void 0;if(r.video&&delete r.video,i=r.audio){i.levelCodec="mp4a.40.2",i.id=e.id,this.hls.trigger(p.default.BUFFER_CODECS,r),T.logger.log("audio track:audio,container:"+i.container+",codecs[level/parsed]=["+i.levelCodec+"/"+i.codec+"]");var a=i.initSegment;if(a){var n={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[n]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(p.default.BUFFER_APPENDING,n))}this.tick()}}}},{key:"onFragParsingData",value:function(e){var t=this,r=this.fragCurrent;r&&"audio"===e.id&&"audio"===e.type&&e.sn===r.sn&&e.level===r.level&&this.state===A.PARSING&&!function(){var r=t.trackId,i=t.tracks[r],a=t.fragCurrent,n=t.hls;T.logger.log("parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb),b.default.updateFragPTSDTS(i.details,a.sn,e.startPTS,e.endPTS);var s=t.audioSwitch,o=t.media,l=!1;if(s&&o)if(o.readyState){var u=o.currentTime;T.logger.log("switching audio track : currentTime:"+u),u>=e.startPTS&&(T.logger.log("switching audio track : flushing all audio"),n.trigger(p.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),l=!0,t.audioSwitch=!1,n.trigger(p.default.AUDIO_TRACK_SWITCHED,{id:r}))}else t.audioSwitch=!1,n.trigger(p.default.AUDIO_TRACK_SWITCHED,{id:r});var d=t.pendingData;t.audioSwitch||([e.data1,e.data2].forEach(function(t){t&&d.push({type:e.type,data:t,parent:"audio",content:"data"})}),!l&&d.length&&(d.forEach(function(e){t.pendingBuffering=!0,t.hls.trigger(p.default.BUFFER_APPENDING,e)}),t.pendingData=[],t.appended=!0)),t.tick()}()}},{key:"onFragParsed",value:function(e){var t=this.fragCurrent;t&&"audio"===e.id&&e.sn===t.sn&&e.level===t.level&&this.state===A.PARSING&&(this.stats.tparsed=performance.now(),this.state=A.PARSED,this._checkAppendedParsed())}},{key:"onBufferCreated",value:function(e){var t=e.tracks.audio;t&&(this.mediaBuffer=t.buffer,this.loadedmetadata=!0)}},{key:"onBufferAppended",value:function(e){if("audio"===e.parent){var t=this.state;t!==A.PARSING&&t!==A.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}}},{key:"_checkAppendedParsed",value:function(){if(!(this.state!==A.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent,t=this.stats,r=this.hls;if(e){this.fragPrevious=e,t.tbuffered=performance.now(),r.trigger(p.default.FRAG_BUFFERED,{stats:t,frag:e,id:"audio"});var i=this.mediaBuffer?this.mediaBuffer:this.media;T.logger.log("audio buffered : "+R.default.toString(i.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,r.trigger(p.default.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=A.IDLE}this.tick()}}},{key:"onError",value:function(e){var t=e.frag;if(!t||"audio"===t.type)switch(e.details){case k.ErrorDetails.FRAG_LOAD_ERROR:case k.ErrorDetails.FRAG_LOAD_TIMEOUT:if(!e.fatal){var r=this.fragLoadError;r?r++:r=1;var i=this.config;if(r<=i.fragLoadingMaxRetry){this.fragLoadError=r,t.loadCounter=0;var a=Math.min(Math.pow(2,r-1)*i.fragLoadingRetryDelay,i.fragLoadingMaxRetryTimeout);T.logger.warn("audioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=performance.now()+a,this.state=A.FRAG_LOADING_WAITING_RETRY}else T.logger.error("audioStreamController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.hls.trigger(p.default.ERROR,e),this.state=A.ERROR}break;case k.ErrorDetails.FRAG_LOOP_LOADING_ERROR:case k.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case k.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:case k.ErrorDetails.KEY_LOAD_ERROR:case k.ErrorDetails.KEY_LOAD_TIMEOUT:this.state!==A.ERROR&&(this.state=e.fatal?A.ERROR:A.IDLE,T.logger.warn("audioStreamController: "+e.details+" while loading frag,switch to "+this.state+" state ..."))}}},{key:"onBufferFlushed",value:function(){var e=this,t=this.pendingData;t&&t.length?(T.logger.log("appending pending audio data on Buffer Flushed"),t.forEach(function(t){e.hls.trigger(p.default.BUFFER_APPENDING,t)}),this.appended=!0,this.pendingData=[],this.state=A.PARSED):(this.state=A.IDLE,this.fragPrevious=null,this.tick())}}]),t}(m.default);r.default=S},{22:22,26:26,27:27,28:28,30:30,31:31,41:41,45:45,46:46}],6:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;r1&&setTimeout(this.tick,1),this.ticks=0)}},{key:"doTick",value:function(){this.updateTrack(this.trackId)}},{key:"onManifestLoading",value:function(){this.tracks=[],this.trackId=-1}},{key:"onManifestLoaded",value:function(e){var t=this,r=e.audioTracks||[],i=!1;this.tracks=r,this.hls.trigger(u.default.AUDIO_TRACKS_UPDATED,{audioTracks:r});var a=0;r.forEach(function(e){return e.default?(t.audioTrack=a,void(i=!0)):void a++}),i===!1&&r.length&&(h.logger.log("no default audio track defined, use first audio track as default"),this.audioTrack=0)}},{key:"onAudioTrackLoaded",value:function(e){e.id=0&&e=0&&e.1){var n=i.updating;try{i.abort()}catch(e){n=!0,h.logger.warn("can not abort audio buffer: "+e)}n?this.audioTimestampOffset=e.start:(h.logger.warn("change mpeg audio timestamp offset from "+i.timestampOffset+" to "+e.start), +i.timestampOffset=e.start)}}}},{key:"onManifestParsed",value:function(e){var t=e.audio,r=e.video,i=0;e.altAudio&&(t||r)&&(i=(t?1:0)+(r?1:0),h.logger.log(i+" sourceBuffer(s) expected")),this.sourceBufferNb=i}},{key:"onMediaAttaching",value:function(e){var t=this.media=e.media;if(t){var r=this.mediaSource=new MediaSource;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),r.addEventListener("sourceopen",this.onmso),r.addEventListener("sourceended",this.onmse),r.addEventListener("sourceclose",this.onmsc),t.src=URL.createObjectURL(r)}}},{key:"onMediaDetaching",value:function(){h.logger.log("media source detaching");var e=this.mediaSource;if(e){if("open"===e.readyState)try{e.endOfStream()}catch(e){h.logger.warn("onMediaDetaching:"+e.message+" while calling endOfStream")}e.removeEventListener("sourceopen",this.onmso),e.removeEventListener("sourceended",this.onmse),e.removeEventListener("sourceclose",this.onmsc),this.media&&(URL.revokeObjectURL(this.media.src),this.media.removeAttribute("src"),this.media.load()),this.mediaSource=null,this.media=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(u.default.MEDIA_DETACHED)}},{key:"onMediaSourceOpen",value:function(){h.logger.log("media source opened"),this.hls.trigger(u.default.MEDIA_ATTACHED,{media:this.media});var e=this.mediaSource;e&&e.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()}},{key:"checkPendingTracks",value:function(){var e=this.pendingTracks,t=Object.keys(e).length;t&&(this.sourceBufferNb<=t||0===this.sourceBufferNb)&&(this.createSourceBuffers(e),this.pendingTracks={},this.doAppending())}},{key:"onMediaSourceClose",value:function(){h.logger.log("media source closed")}},{key:"onMediaSourceEnded",value:function(){h.logger.log("media source ended")}},{key:"onSBUpdateEnd",value:function(){if(this.audioTimestampOffset){var e=this.sourceBuffer.audio;h.logger.warn("change mpeg audio timestamp offset from "+e.timestampOffset+" to "+this.audioTimestampOffset),e.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var t=this.parent,r=this.segments.reduce(function(e,r){return r.parent===t?e+1:e},0);this.hls.trigger(u.default.BUFFER_APPENDED,{parent:t,pending:r}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()}},{key:"onSBUpdateError",value:function(e){h.logger.error("sourceBuffer error:"+e),this.hls.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.BUFFER_APPENDING_ERROR,fatal:!1})}},{key:"onBufferReset",value:function(){var e=this.sourceBuffer;for(var t in e){var r=e[t];try{this.mediaSource.removeSourceBuffer(r),r.removeEventListener("updateend",this.onsbue),r.removeEventListener("error",this.onsbe)}catch(e){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}},{key:"onBufferCodecs",value:function(e){if(0===Object.keys(this.sourceBuffer).length){for(var t in e)this.pendingTracks[t]=e[t];var r=this.mediaSource;r&&"open"===r.readyState&&this.checkPendingTracks()}}},{key:"createSourceBuffers",value:function(e){var t=this.sourceBuffer,r=this.mediaSource;for(var i in e)if(!t[i]){var a=e[i],n=a.levelCodec||a.codec,s=a.container+";codecs="+n;h.logger.log("creating sourceBuffer("+s+")");try{var o=t[i]=r.addSourceBuffer(s);o.addEventListener("updateend",this.onsbue),o.addEventListener("error",this.onsbe),this.tracks[i]={codec:n,container:a.container},a.buffer=o}catch(e){h.logger.error("error while trying to add sourceBuffer:"+e.message),this.hls.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:e,mimeType:s})}}this.hls.trigger(u.default.BUFFER_CREATED,{tracks:e})}},{key:"onBufferAppending",value:function(e){this._needsFlush||(this.segments?this.segments.push(e):this.segments=[e],this.doAppending())}},{key:"onBufferAppendFail",value:function(e){h.logger.error("sourceBuffer error:"+e.event),this.hls.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.BUFFER_APPENDING_ERROR,fatal:!1,frag:this.fragCurrent})}},{key:"onBufferEos",value:function(e){var t=this.sourceBuffer,r=e.type;for(var i in t)r&&i!==r||t[i].ended||(t[i].ended=!0,h.logger.log(i+" sourceBuffer now EOS"));this.checkEos()}},{key:"checkEos",value:function(){var e=this.sourceBuffer,t=this.mediaSource;if(!t||"open"!==t.readyState)return void(this._needsEos=!1);for(var r in e){var i=e[r];if(!i.ended)return;if(i.updating)return void(this._needsEos=!0)}h.logger.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{t.endOfStream()}catch(e){h.logger.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1}},{key:"onBufferFlushing",value:function(e){this.flushRange.push({start:e.startOffset,end:e.endOffset,type:e.type}),this.flushBufferCounter=0,this.doFlush()}},{key:"onLevelUpdated",value:function(e){var t=e.details;0!==t.fragments.length&&(this._levelDuration=t.totalduration+t.fragments[0].start,this.updateMediaElementDuration())}},{key:"updateMediaElementDuration",value:function(){var e=this.media,t=this.mediaSource,r=this.sourceBuffer,i=this._levelDuration;if(null!==i&&e&&t&&r&&0!==e.readyState&&"open"===t.readyState){for(var a in r)if(r[a].updating)return;null===this._msDuration&&(this._msDuration=t.duration);var n=e.duration;(i>this._msDuration&&i>n||n===1/0||isNaN(n))&&(h.logger.log("Updating mediasource duration to "+i.toFixed(3)),this._msDuration=t.duration=i)}}},{key:"doFlush",value:function(){for(;this.flushRange.length;){var e=this.flushRange[0];if(!this.flushBuffer(e.start,e.end,e.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var t=0,r=this.sourceBuffer;try{for(var i in r)t+=r[i].buffered.length}catch(e){h.logger.error("error while accessing sourceBuffer.buffered")}this.appended=t,this.hls.trigger(u.default.BUFFER_FLUSHED)}}},{key:"doAppending",value:function(){var e=this.hls,t=this.sourceBuffer,r=this.segments;if(Object.keys(t).length){if(this.media.error)return this.segments=[],void h.logger.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(r&&r.length){var i=r.shift();try{var a=i.type,n=t[a];n?n.updating?r.unshift(i):(n.ended=!1,this.parent=i.parent,n.appendBuffer(i.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(t){h.logger.error("error while trying to append buffer:"+t.message),r.unshift(i);var s={type:c.ErrorTypes.MEDIA_ERROR};if(22===t.code)return this.segments=[],s.details=c.ErrorDetails.BUFFER_FULL_ERROR,s.fatal=!1,void e.trigger(u.default.ERROR,s);if(this.appendError?this.appendError++:this.appendError=1,s.details=c.ErrorDetails.BUFFER_APPEND_ERROR,s.frag=this.fragCurrent,this.appendError>e.config.appendErrorMaxRetry)return h.logger.log("fail "+e.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),r=[],s.fatal=!0,void e.trigger(u.default.ERROR,s);s.fatal=!1,e.trigger(u.default.ERROR,s)}}}}},{key:"flushBuffer",value:function(e,t,r){var i,a,n,s,o,l,u=this.sourceBuffer;if(Object.keys(u).length){if(h.logger.log("flushBuffer,pos/start/end: "+this.media.currentTime+"/"+e+"/"+t),this.flushBufferCounter.5)return this.flushBufferCounter++,h.logger.log("flush "+d+" ["+o+","+l+"], of ["+n+","+s+"], pos:"+this.media.currentTime),i.remove(o,l),!1}catch(e){h.logger.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else h.logger.warn("abort flushing too many retries");h.logger.log("buffer flushed")}return!0}}]),t}(f.default);r.default=g},{26:26,27:27,28:28,45:45}],8:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;rthis.autoLevelCapping&&this.hls.streamController.nextLevelSwitch(),this.autoLevelCapping=this.hls.autoLevelCapping)}}},{key:"getMaxLevel",value:function(e){var t=0,r=void 0,i=void 0,a=this.mediaWidth,n=this.mediaHeight,s=0,o=0;for(r=0;r<=e&&(i=this.levels[r],!this.isLevelRestricted(r))&&(t=r,s=i.width,o=i.height,!(a<=s||n<=o));r++);return t}},{key:"isLevelRestricted",value:function(e){return!(!this.restrictedLevels||this.restrictedLevels.indexOf(e)===-1)}},{key:"contentScaleFactor",get:function(){var e=1;try{e=window.devicePixelRatio}catch(e){}return e}},{key:"mediaWidth",get:function(){var e=void 0;return this.media&&(e=this.media.width||this.media.clientWidth||this.media.offsetWidth,e*=this.contentScaleFactor),e}},{key:"mediaHeight",get:function(){var e=void 0;return this.media&&(e=this.media.height||this.media.clientHeight||this.media.offsetHeight,e*=this.contentScaleFactor),e}}]),t}(f.default);r.default=h},{27:27,28:28}],9:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r=this.minWeight_}},{key:"getEstimate",value:function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}},{key:"destroy",value:function(){}}]),e}();r.default=l},{44:44}],10:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;r0&&n>this.hls.config.fpsDroppedMonitoringThreshold*s){var l=this.hls.currentLevel;h.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+l),l>0&&(this.hls.autoLevelCapping===-1||this.hls.autoLevelCapping>=l)&&(l-=1,this.hls.trigger(u.default.FPS_DROP_LEVEL_CAPPING,{level:l,droppedLevel:this.hls.currentLevel}),this.hls.autoLevelCapping=l,this.hls.streamController.nextLevelSwitch())}}this.lastTime=i,this.lastDroppedFrames=r,this.lastDecodedFrames=t}}},{key:"checkFPSInterval",value:function(){if(this.video)if(this.isVideoPlaybackQualityAvailable){var e=this.video.getVideoPlaybackQuality();this.checkFPS(this.video,e.totalVideoFrames,e.droppedVideoFrames)}else this.checkFPS(this.video,this.video.webkitDecodedFrameCount,this.video.webkitDroppedFrameCount)}}]),t}(f.default);r.default=c},{27:27,28:28,45:45}],11:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;r0})}else o.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:o.url,reason:"no level with compatible codecs found in manifest"})}},{key:"setLevelInternal",value:function(e){var t=this._levels;if(e>=0&&e1&&a.loadErrore&&(this._level===e&&void 0!==t[e].details||this.setLevelInternal(e))}},{key:"manualLevel",get:function(){return this._manualLevel},set:function(e){this._manualLevel=e,void 0===this._startLevel&&(this._startLevel=e),e!==-1&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this._firstLevel}return this._startLevel},set:function(e){e!==-1&&(e=Math.max(e,this.hls.abrController.minAutoLevel)),this._startLevel=e}},{key:"nextLoadLevel",get:function(){return this._manualLevel!==-1?this._manualLevel:this.hls.abrController.nextAutoLevel},set:function(e){this.level=e,this._manualLevel===-1&&(this.hls.abrController.nextAutoLevel=e)}}]),t}(f.default);r.default=p},{26:26,27:27,28:28,30:30,45:45}],12:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;r0&&e===-1&&(k.logger.log("override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=T.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else k.logger.warn("cannot start loading as manifest not parsed yet"),this.state=T.STOPPED}},{key:"stopLoad",value:function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=T.STOPPED}},{key:"tick",value:function(){this.ticks++,1===this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)}},{key:"doTick",value:function(){switch(this.state){case T.ERROR:break;case T.BUFFER_FLUSHING:this.fragLoadError=0;break;case T.IDLE:if(!this._doTickIdle())return;break;case T.WAITING_LEVEL:var e=this.levels[this.level];e&&e.details&&(this.state=T.IDLE);break;case T.FRAG_LOADING_WAITING_RETRY:var t=performance.now(),r=this.retryDate;(!r||t>=r||this.media&&this.media.seeking)&&(k.logger.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=T.IDLE);break;case T.ERROR:case T.STOPPED:case T.FRAG_LOADING:case T.PARSING:case T.PARSED:case T.ENDED:}this._checkBuffer(),this._checkFragmentChanged()}},{key:"_doTickIdle",value:function(){var e=this.hls,t=e.config,r=this.media;if(void 0!==this.levelLastLoaded&&!r&&(this.startFragRequested||!t.startFragPrefetch))return!0;var i=void 0;i=this.loadedmetadata?r.currentTime:this.nextLoadPosition;var a=e.nextLoadLevel,n=this.levels[a],s=n.bitrate,o=void 0;o=s?Math.max(8*t.maxBufferSize/s,t.maxBufferLength):t.maxBufferLength,o=Math.min(o,t.maxMaxBufferLength);var l=f.default.bufferInfo(this.mediaBuffer?this.mediaBuffer:r,i,t.maxBufferHole),u=l.len;if(u>=o)return!0;k.logger.trace("buffer length of "+u.toFixed(3)+" is below max of "+o.toFixed(3)+". checking for more payload ..."),this.level=e.nextLoadLevel=a;var d=n.details;if("undefined"==typeof d||d.live&&this.levelLastLoaded!==a)return this.state=T.WAITING_LEVEL,!0;var h=this.fragPrevious;if(!d.live&&h&&h.sn===d.endSN&&(!r.seeking&&l.len||r.duration-l.end<=h.duration/2)){var c={};return this.altAudio&&(c.type="video"),this.hls.trigger(v.default.BUFFER_EOS,c),this.state=T.ENDED,!0}return this._fetchPayloadOrEos({pos:i,bufferInfo:l,levelDetails:d})}},{key:"_fetchPayloadOrEos",value:function(e){var t=e.pos,r=e.bufferInfo,i=e.levelDetails,a=this.fragPrevious,n=this.level,s=i.fragments,o=s.length;if(0===o)return!1;var l=s[0].start,u=s[o-1].start+s[o-1].duration,d=r.end,f=void 0;if(i.live){var h=this.config.initialLiveManifestSize;if(oh&&(u.currentTime=h)}if(t.PTSKnown&&r>a&&u&&u.readyState)return null;if(this.startFragRequested&&!t.PTSKnown){if(n){var c=n.sn+1;c>=t.startSN&&c<=t.endSN&&(d=s[c-t.startSN],k.logger.log("live playlist, switching playlist, load frag with next SN: "+d.sn))}d||(d=s[Math.min(o-1,Math.round(o/2))],k.logger.log("live playlist, switching playlist, unknown, load middle frag : "+d.sn))}return d}},{key:"_findFragment",value:function(e){var t=e.start,r=e.fragPrevious,i=e.fragLen,a=e.fragments,n=e.bufferEnd,s=e.end,o=e.levelDetails,l=this.hls.config,d=void 0,f=void 0,h=l.maxFragLookUpTolerance;if(ns-h&&(h=0),f=u.default.search(a,function(e){return e.start+e.duration-h<=n?1:e.start-h>n&&e.start?-1:0})):f=a[i-1],f&&(d=f,t=f.start,r&&d.level===r.level&&d.sn===r.sn))if(d.snl.maxBufferHole&&r.dropped&&g?(d=a[g-1],k.logger.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this"),r.loadCounter--):(d=a[g+1],k.logger.log("SN just loaded, load next one: "+d.sn))}else d=null;return d}},{key:"_loadFragmentOrKey",value:function(e){var t=e.frag,r=e.level,i=e.levelDetails,a=e.pos,n=e.bufferEnd,s=this.hls,o=s.config;if(null==t.decryptdata.uri||null!=t.decryptdata.key){if(k.logger.log("Loading "+t.sn+" of ["+i.startSN+" ,"+i.endSN+"],level "+r+", currentTime:"+a.toFixed(3)+",bufferEnd:"+n.toFixed(3)),void 0!==this.fragLoadIdx?this.fragLoadIdx++:this.fragLoadIdx=0,t.loadCounter){t.loadCounter++;var l=o.fragLoadingLoopThreshold;if(t.loadCounter>l&&Math.abs(this.fragLoadIdx-t.loadIdx)=0;t--)if(r=i[t],e>=r.start&&e<=r.end)return r;return null}},{key:"followingBufferRange",value:function(e){return e?this.getBufferRange(e.end+.5):null}},{key:"_checkFragmentChanged",value:function(){var e,t,r=this.media;if(r&&r.readyState&&r.seeking===!1&&(t=r.currentTime,t>r.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=t),f.default.isBuffered(r,t)?e=this.getBufferRange(t):f.default.isBuffered(r,t+.1)&&(e=this.getBufferRange(t+.1)),e)){var i=e.frag;i!==this.fragPlaying&&(this.fragPlaying=i,this.hls.trigger(v.default.FRAG_CHANGED,{frag:i}))}}},{key:"immediateLevelSwitch",value:function(){if(k.logger.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var e=this.media,t=void 0;e?(t=e.paused,e.pause()):t=!0,this.previouslyPaused=t}var r=this.fragCurrent;r&&r.loader&&r.loader.abort(),this.fragCurrent=null,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}},{key:"immediateLevelSwitchEnd",value:function(){var e=this.media;e&&e.buffered.length&&(this.immediateSwitch=!1,f.default.isBuffered(e,e.currentTime)&&(e.currentTime-=1e-4),this.previouslyPaused||e.play())}},{key:"nextLevelSwitch",value:function(){var e=this.media;if(e&&e.readyState){var t=void 0,r=void 0,i=void 0;if(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,r=this.getBufferRange(e.currentTime),r&&r.start>1&&this.flushMainBuffer(0,r.start-1),e.paused)t=0;else{var a=this.hls.nextLoadLevel,n=this.levels[a],s=this.fragLastKbps;t=s&&this.fragCurrent?this.fragCurrent.duration*n.bitrate/(1e3*s)+1:0; +}if(i=this.getBufferRange(e.currentTime+t),i&&(i=this.followingBufferRange(i))){var o=this.fragCurrent;o&&o.loader&&o.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(i.start,Number.POSITIVE_INFINITY)}}}},{key:"flushMainBuffer",value:function(e,t){this.state=T.BUFFER_FLUSHING;var r={startOffset:e,endOffset:t};this.altAudio&&(r.type="video"),this.hls.trigger(v.default.BUFFER_FLUSHING,r)}},{key:"onMediaAttached",value:function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("seeked",this.onvseeked),t.addEventListener("ended",this.onvended);var r=this.config;this.levels&&r.autoStartLoad&&this.hls.startLoad(r.startPosition)}},{key:"onMediaDetaching",value:function(){var e=this.media;e&&e.ended&&(k.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.levels;t&&t.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.loadCounter=void 0})}),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()}},{key:"onMediaSeeking",value:function(){var e=this.media,t=e?e.currentTime:void 0,r=this.config;if(k.logger.log("media seeking to "+t.toFixed(3)),this.state===T.FRAG_LOADING){var i=this.mediaBuffer?this.mediaBuffer:e,a=f.default.bufferInfo(i,t,this.config.maxBufferHole),n=this.fragCurrent;if(0===a.len&&n){var s=r.maxFragLookUpTolerance,o=n.start-s,l=n.start+n.duration+s;tl?(n.loader&&(k.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=T.IDLE):k.logger.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===T.ENDED&&(this.state=T.IDLE);e&&(this.lastCurrentTime=t),this.state!==T.FRAG_LOADING&&void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*r.fragLoadingLoopThreshold),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=t),this.tick()}},{key:"onMediaSeeked",value:function(){k.logger.log("media seeked to "+this.media.currentTime.toFixed(3)),this.tick()}},{key:"onMediaEnded",value:function(){k.logger.log("media ended"),this.startPosition=this.lastCurrentTime=0}},{key:"onManifestLoading",value:function(){k.logger.log("trigger BUFFER_RESET"),this.hls.trigger(v.default.BUFFER_RESET),this.bufferRange=[],this.stalled=!1,this.startPosition=this.lastCurrentTime=0}},{key:"onManifestParsed",value:function(e){var t,r=!1,i=!1;e.levels.forEach(function(e){t=e.audioCodec,t&&(t.indexOf("mp4a.40.2")!==-1&&(r=!0),t.indexOf("mp4a.40.5")!==-1&&(i=!0))}),this.audioCodecSwitch=r&&i,this.audioCodecSwitch&&k.logger.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startLevelLoaded=!1,this.startFragRequested=!1;var a=this.config;a.autoStartLoad&&this.hls.startLoad(a.startPosition)}},{key:"onLevelLoaded",value:function(e){var t=e.details,r=e.level,i=this.levels[r],a=t.totalduration,n=0;if(k.logger.log("level "+r+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),this.levelLastLoaded=r,t.live){var s=i.details;s&&t.fragments.length>0?(E.default.mergeDetails(s,t),n=t.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(n,s),t.PTSKnown?k.logger.log("live playlist sliding:"+n.toFixed(3)):k.logger.log("live playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,k.logger.log("live playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(i.details=t,this.hls.trigger(v.default.LEVEL_UPDATED,{details:t,level:r}),this.startFragRequested===!1){if(this.startPosition===-1||this.lastCurrentTime===-1){var o=t.startTimeOffset;isNaN(o)?t.live?(this.startPosition=this.computeLivePosition(n,t),k.logger.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(o<0&&(k.logger.log("negative start time offset "+o+", count from end of last fragment"),o=n+a+o),k.logger.log("start time offset found in playlist, adjust startPosition to "+o),this.startPosition=o),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===T.WAITING_LEVEL&&(this.state=T.IDLE),this.tick()}},{key:"onKeyLoaded",value:function(){this.state===T.KEY_LOADING&&(this.state=T.IDLE,this.tick())}},{key:"onFragLoaded",value:function(e){var t=this.fragCurrent,r=e.frag;if(this.state===T.FRAG_LOADING&&t&&"main"===r.type&&r.level===t.level&&r.sn===t.sn){var i=e.stats,a=this.levels[t.level],n=a.details;if(k.logger.log("Loaded "+t.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+t.level),this.bitrateTest=!1,r.bitrateTest===!0&&this.hls.nextLoadLevel)this.state=T.IDLE,this.startFragRequested=!1,i.tparsed=i.tbuffered=performance.now(),this.hls.trigger(v.default.FRAG_BUFFERED,{stats:i,frag:t,id:"main"}),this.tick();else{this.state=T.PARSING,this.stats=i;var s=n.totalduration,o=isNaN(t.startDTS)?t.start:t.startDTS,l=t.level,u=t.sn,d=this.config.defaultAudioCodec||a.audioCodec;this.audioCodecSwap&&(k.logger.log("swapping playlist audio codec"),void 0===d&&(d=this.lastAudioCodec),d&&(d=d.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,k.logger.log("Parsing "+u+" of ["+n.startSN+" ,"+n.endSN+"],level "+l+", cc "+t.cc);var f=this.demuxer;f||(f=this.demuxer=new c.default(this.hls,"main"));var h=this.media,g=h&&h.seeking,p=!g&&(n.PTSKnown||!n.live);f.push(e.payload,d,a.videoCodec,o,t.cc,l,u,s,t.decryptdata,p,null)}}this.fragLoadError=0}},{key:"onFragParsingInitSegment",value:function(e){var t=this.fragCurrent;if(t&&"main"===e.id&&e.sn===t.sn&&e.level===t.level&&this.state===T.PARSING){var r,i,a=e.tracks;if(a.audio&&this.altAudio&&delete a.audio,i=a.audio){var n=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();n&&this.audioCodecSwap&&(k.logger.log("swapping playlist audio codec"),n=n.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==i.metadata.channelCount&&s.indexOf("firefox")===-1&&(n="mp4a.40.5"),s.indexOf("android")!==-1&&"audio/mpeg"!==i.container&&(n="mp4a.40.2",k.logger.log("Android: force audio codec to "+n)),i.levelCodec=n,i.id=e.id}if(i=a.video,i&&(i.levelCodec=this.levels[this.level].videoCodec,i.id=e.id),e.unique){var o={codec:"",levelCodec:""};for(r in e.tracks)i=a[r],o.container=i.container,o.codec&&(o.codec+=",",o.levelCodec+=","),i.codec&&(o.codec+=i.codec),i.levelCodec&&(o.levelCodec+=i.levelCodec);a={audiovideo:o}}this.hls.trigger(v.default.BUFFER_CODECS,a);for(r in a){i=a[r],k.logger.log("main track:"+r+",container:"+i.container+",codecs[level/parsed]=["+i.levelCodec+"/"+i.codec+"]");var l=i.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(v.default.BUFFER_APPENDING,{type:r,data:l,parent:"main",content:"initSegment"}))}this.tick()}}},{key:"onFragParsingData",value:function(e){var t=this,r=this.fragCurrent;if(r&&"main"===e.id&&e.sn===r.sn&&e.level===r.level&&("audio"!==e.type||!this.altAudio)&&this.state===T.PARSING){var i=this.levels[this.level],a=this.fragCurrent;k.logger.log("Parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb+",dropped:"+(e.dropped||0));var n=E.default.updateFragPTSDTS(i.details,a.sn,e.startPTS,e.endPTS,e.startDTS,e.endDTS),s=this.hls;s.trigger(v.default.LEVEL_PTS_UPDATED,{details:i.details,level:this.level,drift:n,type:e.type,start:e.startPTS,end:e.endPTS}),"video"===e.type&&(a.dropped=e.dropped),[e.data1,e.data2].forEach(function(r){r&&(t.appended=!0,t.pendingBuffering=!0,s.trigger(v.default.BUFFER_APPENDING,{type:e.type,data:r,parent:"main",content:"data"}))}),this.bufferRange.push({type:e.type,start:e.startPTS,end:e.endPTS,frag:a}),this.tick()}}},{key:"onFragParsed",value:function(e){var t=this.fragCurrent;t&&"main"===e.id&&e.sn===t.sn&&e.level===t.level&&this.state===T.PARSING&&(this.stats.tparsed=performance.now(),this.state=T.PARSED,this._checkAppendedParsed())}},{key:"onAudioTrackSwitching",value:function(e){var t=!!e.url,r=e.id;if(!t){if(this.mediaBuffer!==this.media){k.logger.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var i=this.fragCurrent;i.loader&&(k.logger.log("switching to main audio track, cancel main fragment load"),i.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=T.IDLE}var a=this.hls;a.trigger(v.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),a.trigger(v.default.AUDIO_TRACK_SWITCHED,{id:r}),this.altAudio=!1}}},{key:"onAudioTrackSwitched",value:function(e){var t=e.id,r=!!this.hls.audioTracks[t].url;if(r){var i=this.videoBuffer;i&&this.mediaBuffer!==i&&(k.logger.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i)}this.altAudio=r,this.tick()}},{key:"onBufferCreated",value:function(e){var t=e.tracks,r=void 0,i=void 0,a=!1;for(var n in t){var s=t[n];"main"===s.id?(i=n,r=s,"video"===n&&(this.videoBuffer=t[n].buffer)):a=!0}a&&r?(k.logger.log("alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media}},{key:"onBufferAppended",value:function(e){if("main"===e.parent){var t=this.state;t!==T.PARSING&&t!==T.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}}},{key:"_checkAppendedParsed",value:function(){if(!(this.state!==T.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent,t=this.stats;if(e){this.fragPrevious=e,t.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*t.total/(t.tbuffered-t.tfirst)),this.hls.trigger(v.default.FRAG_BUFFERED,{stats:t,frag:e,id:"main"});var r=this.mediaBuffer?this.mediaBuffer:this.media;k.logger.log("main buffered : "+_.default.toString(r.buffered)),this.state=T.IDLE}this.tick()}}},{key:"onError",value:function(e){var t=e.frag||this.fragCurrent;if(!t||"main"===t.type){var r=this.media,i=r&&f.default.isBuffered(r,r.currentTime)&&f.default.isBuffered(r,r.currentTime+.5);switch(e.details){case R.ErrorDetails.FRAG_LOAD_ERROR:case R.ErrorDetails.FRAG_LOAD_TIMEOUT:case R.ErrorDetails.KEY_LOAD_ERROR:case R.ErrorDetails.KEY_LOAD_TIMEOUT:if(!e.fatal){var a=this.fragLoadError;a?a++:a=1;var n=this.config;if(a<=n.fragLoadingMaxRetry||i||t.autoLevel&&t.level){this.fragLoadError=a,t.loadCounter=0;var s=Math.min(Math.pow(2,a-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);k.logger.warn("mediaController: frag loading failed, retry in "+s+" ms"),this.retryDate=performance.now()+s,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.state=T.FRAG_LOADING_WAITING_RETRY}else k.logger.error("mediaController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.hls.trigger(v.default.ERROR,e),this.state=T.ERROR}break;case R.ErrorDetails.FRAG_LOOP_LOADING_ERROR:e.fatal||(i?(this._reduceMaxBufferLength(t.duration),this.state=T.IDLE):t.autoLevel&&0!==t.level||(e.fatal=!0,this.hls.trigger(v.default.ERROR,e),this.state=T.ERROR));break;case R.ErrorDetails.LEVEL_LOAD_ERROR:case R.ErrorDetails.LEVEL_LOAD_TIMEOUT:this.state!==T.ERROR&&(e.fatal?(this.state=T.ERROR,k.logger.warn("streamController: "+e.details+",switch to "+this.state+" state ...")):this.state===T.WAITING_LEVEL&&(this.state=T.IDLE));break;case R.ErrorDetails.BUFFER_FULL_ERROR:this.state!==T.PARSING&&this.state!==T.PARSED||(i?(this._reduceMaxBufferLength(t.duration),this.state=T.IDLE):(k.logger.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}}},{key:"_reduceMaxBufferLength",value:function(e){var t=this.config;t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,k.logger.warn("reduce max buffer length to "+t.maxMaxBufferLength+"s and switch to IDLE state"),this.fragLoadIdx+=2*t.fragLoadingLoopThreshold)}},{key:"_checkBuffer",value:function(){var e=this.media;if(e&&e.readyState){var t=e.currentTime,r=this.mediaBuffer?this.mediaBuffer:e,i=r.buffered;if(this.loadedmetadata||!i.length||e.seeking)if(this.immediateSwitch)this.immediateLevelSwitchEnd();else{var a=f.default.bufferInfo(e,t,0),n=!(e.paused||e.ended||0===e.buffered.length),s=.5,o=t>e.playbackRate*this.lastCurrentTime,l=this.config;if(this.stalled&&o&&(this.stalled=!1,k.logger.log("playback not stuck anymore @"+t)),n&&a.len<=s&&(o?(s=0,this.seekHoleNudgeDuration=0):this.stalled?this.seekHoleNudgeDuration+=l.seekHoleNudgeDuration:(this.seekHoleNudgeDuration=0,k.logger.log("playback seems stuck @"+t),this.hls.trigger(v.default.ERROR,{type:R.ErrorTypes.MEDIA_ERROR,details:R.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1}),this.stalled=!0),a.len<=s)){var u=a.nextStart,d=u-t;if(u&&d0){k.logger.log("adjust currentTime from "+e.currentTime+" to next buffered @ "+u+" + nudge "+this.seekHoleNudgeDuration);var h=u+this.seekHoleNudgeDuration-e.currentTime;e.currentTime=u+this.seekHoleNudgeDuration,this.hls.trigger(v.default.ERROR,{type:R.ErrorTypes.MEDIA_ERROR,details:R.ErrorDetails.BUFFER_SEEK_OVER_HOLE,fatal:!1,hole:h})}}}else{this.loadedmetadata=!0;var c=this.startPosition,g=f.default.isBuffered(r,c);t===c&&g||(k.logger.log("target start position:"+c),g||(c=i.start(0),k.logger.log("target start position not buffered, seek to buffered.start(0) "+c)),k.logger.log("adjust currentTime from "+t+" to "+c),e.currentTime=c)}}}},{key:"onFragLoadEmergencyAborted",value:function(){this.state=T.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()}},{key:"onBufferFlushed",value:function(){var e=this.mediaBuffer?this.mediaBuffer:this.media,t=this.bufferRange,r=[],i=void 0,a=void 0;for(a=0;a0;)e.removeCue(e.cues[0])}},{key:"getExistingTrack",value:function(e){var t=this.media;if(t)for(var r=0;r>>8^255&g^99,e[f]=g,t[g]=f;var v=d[f],p=d[v],y=d[p],m=257*d[g]^16843008*g;r[f]=m<<24|m>>>8,i[f]=m<<16|m>>>16,a[f]=m<<8|m>>>24,n[f]=m,m=16843009*y^65537*p^257*v^16843008*f,s[g]=m<<24|m>>>8,o[g]=m<<16|m>>>16,l[g]=m<<8|m>>>24,u[g]=m,f?(f=v^d[d[d[y^v]]],h^=d[d[h]]):f=h=1}}},{key:"expandKey",value:function(e){for(var t=this.uint8ArrayToUint32Array_(e),r=!0,i=0;i>8|e>>>24}},{key:"decrypt",value:function(e,t,r){for(var i,a,n=this.keySize+6,s=this.invKeySchedule,o=this.invSBox,l=this.invSubMix[0],u=this.invSubMix[1],d=this.invSubMix[2],f=this.invSubMix[3],h=this.uint8ArrayToUint32Array_(r),c=h[0],g=h[1],v=h[2],p=h[3],y=new Int32Array(e),m=new Int32Array(y.length),E=void 0,b=void 0,_=void 0,R=void 0,k=void 0,T=void 0,A=void 0,S=void 0,L=void 0,D=void 0,w=void 0,O=void 0;t>>24]^u[T>>16&255]^d[A>>8&255]^f[255&S]^s[i],b=l[T>>>24]^u[A>>16&255]^d[S>>8&255]^f[255&k]^s[i+1],_=l[A>>>24]^u[S>>16&255]^d[k>>8&255]^f[255&T]^s[i+2],R=l[S>>>24]^u[k>>16&255]^d[T>>8&255]^f[255&A]^s[i+3],k=E,T=b,A=_,S=R,i+=4;E=o[k>>>24]<<24^o[T>>16&255]<<16^o[A>>8&255]<<8^o[255&S]^s[i],b=o[T>>>24]<<24^o[A>>16&255]<<16^o[S>>8&255]<<8^o[255&k]^s[i+1],_=o[A>>>24]<<24^o[S>>16&255]<<16^o[k>>8&255]<<8^o[255&T]^s[i+2],R=o[S>>>24]<<24^o[k>>16&255]<<16^o[T>>8&255]<<8^o[255&A]^s[i+3],i+=3,m[t]=this.networkToHostOrderSwap(E^c),m[t+1]=this.networkToHostOrderSwap(R^g),m[t+2]=this.networkToHostOrderSwap(_^v),m[t+3]=this.networkToHostOrderSwap(b^p),c=L,g=D,v=w,p=O,t+=4}return m.buffer}},{key:"destroy",value:function(){this.key=void 0,this.keySize=void 0,this.ksRows=void 0,this.sBox=void 0,this.invSBox=void 0,this.subMix=void 0,this.invSubMix=void 0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.rcon=void 0}}]),e}();r.default=n},{}],16:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r>>5,v-=E,v>0&&m+E+v<=_);)for(b=T+y*p,R={unit:e.subarray(m+E,m+E+v),pts:b,dts:b},c.samples.push(R),c.len+=v,m+=v+E,y++;m<_-1&&(255!==e[m]||240!==(240&e[m+1]));m++);this.remuxer.remux(n,s,a,this._aacTrack,{samples:[]},{samples:[{pts:T,dts:T,unit:k.payload}]},{samples:[]},i,A,f,h)}},{key:"destroy",value:function(){}}],[{key:"probe",value:function(e){var t,r,i=new d.default(e);if(i.hasTimeStamp)for(t=i.length,r=e.length;t>>6)+1,o=(60&t[r+2])>>>2,o>h.length-1?void e.trigger(Event.ERROR,{type:s.ErrorTypes.MEDIA_ERROR,details:s.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+o}):(u=(1&t[r+2])<<2,u|=(192&t[r+3])>>>6,n.logger.log("manifest codec:"+i+",ADTS data:type:"+a+",sampleingIndex:"+o+"["+h[o]+"Hz],channelConfig:"+u),/firefox|OPR/i.test(f)?o>=6?(a=5,d=new Array(4),l=o-3):(a=2,d=new Array(2),l=o):f.indexOf("android")!==-1?(a=2,d=new Array(2),l=o):(a=5,d=new Array(4),i&&(i.indexOf("mp4a.40.29")!==-1||i.indexOf("mp4a.40.5")!==-1)||!i&&o>=6?l=o-3:((i&&i.indexOf("mp4a.40.2")!==-1&&o>=6&&1===u||!i&&1===u)&&(a=2,d=new Array(2)),l=o)),d[0]=a<<3,d[0]|=(14&o)>>1,d[1]|=(1&o)<<7,d[1]|=u<<3,5===a&&(d[1]|=(14&l)>>1,d[2]=(1&l)<<7,d[2]|=8,d[3]=0),{config:d,samplerate:h[o],channelCount:u,codec:"mp4a.40."+a})}}]),e}();r.default=o},{26:26,45:45}],20:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null;a(this,e),this.hls=t,this.id=r,this.config=this.hls.config||n,this.typeSupported=i}return n(e,[{key:"destroy",value:function(){var e=this.demuxer;e&&e.destroy()}},{key:"push",value:function(e,t,r,i,a,n,s,u,f,c){var v=this.demuxer;if(!v||a!==this.cc&&!v.probe(e)){var y=this.hls,m=this.id,E=this.config,b=this.typeSupported;if(h.default.probe(e))v=this.typeSupported.mp2t===!0?new h.default(y,m,p.default,E,b):new h.default(y,m,g.default,E,b),v.probe=h.default.probe;else{if(!d.default.probe(e))return void y.trigger(o.default.ERROR,{type:l.ErrorTypes.MEDIA_ERROR,id:m,details:l.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"});v=new d.default(y,m,g.default,E,b),v.probe=d.default.probe}this.demuxer=v}v.push(e,t,r,i,a,n,s,u,f,c),this.cc=a}}]),e}();r.default=y},{18:18,25:25,26:26,28:28,38:38,39:39}],21:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var a=e(20),n=i(a),s=e(28),o=i(s),l=e(45),u=e(1),d=i(u),f=function(e){ +var t=new d.default;t.trigger=function(e){for(var r=arguments.length,i=Array(r>1?r-1:0),a=1;a1?r-1:0),a=1;a0&&null!=u&&null!=u.key&&"AES-128"===u.method){null==this.decrypter&&(this.decrypter=new g.default(this.hls));var h=this,c=performance.now();this.decrypter.decrypt(e,u.key.buffer,u.iv.buffer,function(e){h.hls.trigger(o.default.FRAG_DECRYPTED,{level:n,sn:s,stats:{tstart:c,tdecrypt:performance.now()}}),h.pushDecrypted(e,t,r,i,a,n,s,l,d,f)})}else this.pushDecrypted(e,t,r,i,a,n,s,l,d,f)}},{key:"onWorkerMessage",value:function(e){var t=e.data,r=this.hls;switch(t.event){case"init":URL.revokeObjectURL(this.w.objectURL);break;case o.default.FRAG_PARSING_DATA:t.data.data1=new Uint8Array(t.data1),t.data.data2=new Uint8Array(t.data2);default:r.trigger(t.event,t.data)}}}]),t}();r.default=p},{16:16,20:20,21:21,26:26,28:28,3:3,45:45}],23:[function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;re?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}},{key:"readBits",value:function(e){var t=Math.min(this.bitsAvailable,e),r=this.word>>>32-t;return e>32&&n.logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),t=e-t,t>0&&this.bitsAvailable?r<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBoolean",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"readUShort",value:function(){return this.readBits(16)}},{key:"readUInt",value:function(){return this.readBits(32)}},{key:"skipScalingList",value:function(e){var t,r,i=8,a=8;for(t=0;t>4,p>1){if(y=f+5+e[f+4],y===f+188)continue}else y=f+4;switch(v){case S:if(g){if(O&&(m=x(O))&&(N(m,!1),b&&k.codec&&(L===-1||T.codec)))return void this.remux(n,s,a,e,i);O={data:[],size:0}}O&&(O.data.push(e.subarray(y,f+188)),O.size+=f+188-y);break;case L:if(g){if(I&&(m=x(I))&&(T.isAAC?F(m):U(m),b&&T.codec&&(S===-1||k.codec)))return void this.remux(n,s,a,e,i);I={data:[],size:0}}I&&(I.data.push(e.subarray(y,f+188)),I.size+=f+188-y);break;case D:g&&(P&&(m=x(P))&&G(m),P={data:[],size:0}),P&&(P.data.push(e.subarray(y,f+188)),P.size+=f+188-y);break;case 0:g&&(y+=e[y]+1),w=this._pmtId=C(e,y);break;case w:g&&(y+=e[y]+1);var B=M(e,y,this.typeSupported.mpeg===!0||this.typeSupported.mp3===!0);S=B.avc,S>0&&(k.id=S),L=B.audio,L>0&&(T.id=L,T.isAAC=B.isAAC),D=B.id3,D>0&&(A.id=D),_&&!R&&(h.logger.log("reparse from beginning"),_=!1,f=-188),R=this.pmtParsed=!0;break;case 17:case 8191:break;default:_=!0}}else this.observer.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,id:this.id,details:c.ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});O&&(m=x(O))?(N(m,!0),k.pesData=null):k.pesData=O,I&&(m=x(I))?(T.isAAC?F(m):U(m),T.pesData=null):(I&&I.size&&h.logger.log("last AAC PES packet truncated,might overlap between fragments"),T.pesData=I),P&&(m=x(P))?(G(m),A.pesData=null):A.pesData=P,this.remux(n,s,a,null,i,d)}},{key:"remux",value:function(e,t,r,i,a,n){for(var s=this._avcTrack,o=s.samples,l=0,u=0,d=0;d1;){var c=new Uint8Array(f[0].length+f[1].length);c.set(f[0]),c.set(f[1],f[0].length),f[0]=c,f.splice(1,1)}if(t=f[0],i=(t[0]<<16)+(t[1]<<8)+t[2],1===i){if(a=(t[4]<<8)+t[5],a&&a>e.size-6)return null;r=t[7],192&r&&(o=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,o>4294967295&&(o-=8589934592),64&r?(l=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2,l>4294967295&&(l-=8589934592),o-l>54e5&&(h.logger.warn(Math.round((o-l)/9e4)+"s delta between PTS and DTS, align them"),o=l)):l=o),n=t[8],u=n+9,e.size-=u,s=new Uint8Array(e.size);for(var g=0,v=f.length;gp){u-=p;continue}t=t.subarray(u),p-=u,u=0}s.set(t,d),d+=p}return a&&(a-=n+3),{data:s,pts:o,dts:l,len:a}}return null}},{key:"pushAccesUnit",value:function(e,t){e.units.units.length&&e.frame&&(!this.config.forceKeyFrameOnDiscontinuity||e.key===!0||t.sps&&(t.samples.length||this.contiguous)?t.samples.push(e):t.dropped++),e.debug.length&&h.logger.log(e.pts+"/"+e.dts+":"+e.debug+","+e.units.length)}},{key:"_parseAVCPES",value:function(e,t){var r,i,a,n=this,s=this._avcTrack,o=this._parseAVCNALu(e.data),l=!1,u=this.avcSample;e.data=null,o.forEach(function(t){switch(t.type){case 1:i=!0,l&&u&&(u.debug+="NDR "),u.frame=!0;var o=t.data;if(o.length>1){var d=new f.default(o).readSliceType();2!==d&&4!==d&&7!==d&&9!==d||(u.key=!0)}break;case 5:i=!0,u||(u=n.avcSample=n._createAVCSample(!0,e.pts,e.dts,"")),l&&(u.debug+="IDR "),u.key=!0,u.frame=!0;break;case 6:i=!0,l&&u&&(u.debug+="SEI "),r=new f.default(n.discardEPB(t.data)),r.readUByte();for(var h=0,c=0,g=!1,v=0;!g&&r.bytesAvailable>1;){h=0;do v=r.readUByte(),h+=v;while(255===v);c=0;do v=r.readUByte(),c+=v;while(255===v);if(4===h&&0!==r.bytesAvailable){g=!0;var p=r.readUByte();if(181===p){var y=r.readUShort();if(49===y){var m=r.readUInt();if(1195456820===m){var E=r.readUByte();if(3===E){var b=r.readUByte(),_=r.readUByte(),R=31&b,k=[b,_];for(a=0;a0){if(t.pts>=e[r-1].pts)e.push(t);else for(var i=r-1;i>=0;i--)if(t.pts=0)i={data:e.subarray(h,s-u-1),type:n},f.push(i);else{var c=this._getLastNalUnit();if(c&&(d&&s<=4-d&&c.state&&(c.data=c.data.subarray(0,c.data.byteLength-d)),r=s-u-1,r>0)){var g=new Uint8Array(c.data.byteLength+r);g.set(c.data,0),g.set(e.subarray(0,r),c.data.byteLength),c.data=g}}s=0&&u>=0&&(i={data:e.subarray(h,o),type:n,state:u},f.push(i)),0===f.length){var v=this._getLastNalUnit();if(v){var p=new Uint8Array(v.data.byteLength+e.byteLength);p.set(v.data,0),p.set(e,v.data.byteLength),v.data=p}}return l.naluState=u,f}},{key:"discardEPB",value:function(e){for(var t,r,i=e.byteLength,a=[],n=1;n1&&(h.logger.log("AAC: align PTS for overlapping frames by "+Math.round((T-p)/90)),p=T)}for(;n+5>>5,r-=s,r>0&&n+s+r<=d);)for(l=p+a*i,f={unit:v.subarray(n+s,n+s+r),pts:l,dts:l},g.samples.push(f),g.len+=r,n+=r+s,a++;n0;)s+=t}},{key:"_onMpegFrame",value:function(e,t,r,i,a,n){var s=1152/r*1e3,o=n+a*s,l=this._audioTrack;l.config=[],l.channelCount=i,l.audiosamplerate=r,l.duration=this._duration,l.samples.push({unit:e,pts:o,dts:o}),l.len+=e.length}},{key:"_onMpegNoise",value:function(e){h.logger.warn("mpeg audio has noise: "+e.length+" bytes")}},{key:"_parseMpeg",value:function(e,t,r,i,a){var n=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],s=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3];if(t+2>r)return-1;if(255===e[t]||224===(224&e[t+1])){if(t+24>r)return-1;var o=e[t+1]>>3&3,l=e[t+1]>>1&3,u=e[t+2]>>4&15,d=e[t+2]>>2&3,f=!!(2&e[t+2]);if(1!==o&&0!==u&&15!==u&&3!==d){var h=3===o?3-l:3===l?3:4,c=1e3*n[14*h+u-1],g=3===o?0:2===o?1:2,v=s[3*g+d],p=f?1:0,y=e[t+3]>>6===3?1:2,m=3===l?(3===o?12:6)*c/v+p<<2:(3===o?144:72)*c/v+p|0;return t+m>r?-1:(this._onMpegFrame&&this._onMpegFrame(e.subarray(t,t+m),c,v,y,i,a),m)}}for(var E=t+2;E=564&&71===e[0]&&71===e[188]&&71===e[376]}}]),e}();r.default=g},{19:19,23:23,26:26,28:28,45:45}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ErrorTypes={NETWORK_ERROR:"networkError",MEDIA_ERROR:"mediaError",MUX_ERROR:"muxError",OTHER_ERROR:"otherError"},r.ErrorDetails={MANIFEST_LOAD_ERROR:"manifestLoadError",MANIFEST_LOAD_TIMEOUT:"manifestLoadTimeOut",MANIFEST_PARSING_ERROR:"manifestParsingError",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"manifestIncompatibleCodecsError",LEVEL_LOAD_ERROR:"levelLoadError",LEVEL_LOAD_TIMEOUT:"levelLoadTimeOut",LEVEL_SWITCH_ERROR:"levelSwitchError",AUDIO_TRACK_LOAD_ERROR:"audioTrackLoadError",AUDIO_TRACK_LOAD_TIMEOUT:"audioTrackLoadTimeOut",FRAG_LOAD_ERROR:"fragLoadError",FRAG_LOOP_LOADING_ERROR:"fragLoopLoadingError",FRAG_LOAD_TIMEOUT:"fragLoadTimeOut",FRAG_DECRYPT_ERROR:"fragDecryptError",FRAG_PARSING_ERROR:"fragParsingError",REMUX_ALLOC_ERROR:"remuxAllocError",KEY_LOAD_ERROR:"keyLoadError",KEY_LOAD_TIMEOUT:"keyLoadTimeOut",BUFFER_ADD_CODEC_ERROR:"bufferAddCodecError",BUFFER_APPEND_ERROR:"bufferAppendError",BUFFER_APPENDING_ERROR:"bufferAppendingError",BUFFER_STALLED_ERROR:"bufferStalledError",BUFFER_FULL_ERROR:"bufferFullError",BUFFER_SEEK_OVER_HOLE:"bufferSeekOverHole",INTERNAL_EXCEPTION:"internalException"}},{}],27:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(){function e(e,t){for(var r=0;r1?r-1:0),n=1;n=r.start(i)&&t<=r.end(i))return!0;return!1}},{key:"bufferInfo",value:function(e,t,r){if(e){var i,a=e.buffered,n=[];for(i=0;id&&(l[u-1].end=e[o].end):l.push(e[o])}else l.push(e[o])}for(o=0,i=0,a=n=t;o=f&&t=0&&ot.endSN)return 0;if(o=r-t.startSN,l=t.fragments,u=l[o],!isNaN(u.startPTS)){var f=Math.abs(u.startPTS-i);isNaN(u.deltaPTS)?u.deltaPTS=f:u.deltaPTS=Math.max(f,u.deltaPTS),i=Math.min(i,u.startPTS),a=Math.max(a,u.endPTS),n=Math.min(n,u.startDTS),s=Math.max(s,u.endDTS)}var h=i-u.start;for(u.start=u.startPTS=i,u.endPTS=a,u.startDTS=n,u.endDTS=s,u.duration=a-i,d=o;d>0;d--)e.updatePTS(l,d,d-1);for(d=o;dt?a.start=i.start+i.duration:a.start=i.start-a.duration:r>t?(i.duration=s-i.start,i.duration<0&&n.logger.warn("negative duration computed for frag "+i.sn+",level "+i.level+", there should be some duration drift between playlist and fragment!")):(a.duration=i.start-s,a.duration<0&&n.logger.warn("negative duration computed for frag "+a.sn+",level "+a.level+", there should be some duration drift between playlist and fragment!"))}}]),e}();r.default=s},{45:45}],32:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function"); +}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};a(this,e);var r=e.DefaultConfig;if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var i in r)i in t||(t[i]=r[i]);if(void 0!==t.liveMaxLatencyDurationCount&&t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(t.liveMaxLatencyDuration<=t.liveSyncDuration||void 0===t.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');(0,I.enableLogs)(t.debug),this.config=t;var n=this.observer=new x.default;n.trigger=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i1?t-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:-1;I.logger.log("startLoad("+e+")"),this.levelController.startLoad(),this.streamController.startLoad(e),this.audioStreamController.startLoad(e)}},{key:"stopLoad",value:function(){I.logger.log("stopLoad"),this.levelController.stopLoad(),this.streamController.stopLoad(),this.audioStreamController.stopLoad()}},{key:"swapAudioCodec",value:function(){I.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}},{key:"recoverMediaError",value:function(){I.logger.log("recoverMediaError");var e=this.media;this.detachMedia(),this.attachMedia(e)}},{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(e){I.logger.log("set currentLevel:"+e),this.loadLevel=e,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(e){I.logger.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(e){I.logger.log("set loadLevel:"+e),this.levelController.manualLevel=e}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(e){this.levelController.nextLoadLevel=e}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.abrController.minAutoLevel)},set:function(e){I.logger.log("set firstLevel:"+e),this.levelController.firstLevel=e}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(e){I.logger.log("set startLevel:"+e),this.levelController.startLevel=e}},{key:"autoLevelCapping",get:function(){return this.abrController.autoLevelCapping},set:function(e){I.logger.log("set autoLevelCapping:"+e),this.abrController.autoLevelCapping=e}},{key:"autoLevelEnabled",get:function(){return this.levelController.manualLevel===-1}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"audioTracks",get:function(){return this.audioTrackController.audioTracks}},{key:"audioTrack",get:function(){return this.audioTrackController.audioTrack},set:function(e){this.audioTrackController.audioTrack=e}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}}]),e}();r.default=B},{1:1,10:10,11:11,12:12,13:13,26:26,28:28,34:34,35:35,36:36,4:4,43:43,45:45,47:47,5:5,6:6,7:7,8:8}],33:[function(e,t,r){"use strict";t.exports=e(32).default},{32:32}],34:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,t){for(var r=0;r>8*(15-r)&255;return t}},{key:"fragmentDecryptdataFromLevelkey",value:function(e,t){var r=e;return e&&e.method&&e.uri&&!e.iv&&(r=Object.assign(new R,this.cloneObj(e)),r.iv=this.createInitializationVector(t)),r}},{key:"cloneObj",value:function(e){return JSON.parse(JSON.stringify(e))}},{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=u.default.buildAbsoluteURL(this.baseurl,this.relurl)),this._url},set:function(e){this._url=e}},{key:"programDateTime",get:function(){return!this._programDateTime&&this.rawProgramDateTime&&(this._programDateTime=new Date(Date.parse(this.rawProgramDateTime))),this._programDateTime}},{key:"byteRange",get:function(){if(!this._byteRange&&(this._byteRange=[],this.rawByteRange)){var e=this.rawByteRange.split("@",2);1===e.length?this._byteRange[0]=this.prevFrag?this.prevFrag.byteRangeEndOffset:0:this._byteRange[0]=parseInt(e[1]),this._byteRange[1]=parseInt(e[0])+this._byteRange[0],this.prevFrag=null}return this._byteRange}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}}]),e}(),T=function(e){function t(e){s(this,t);var r=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,f.default.MANIFEST_LOADING,f.default.LEVEL_LOADING,f.default.AUDIO_TRACK_LOADING));return r.loaders={},r}return n(t,e),o(t,[{key:"destroy",value:function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy()}this.loaders={},c.default.prototype.destroy.call(this)}},{key:"onManifestLoading",value:function(e){this.load(e.url,{type:"manifest"})}},{key:"onLevelLoading",value:function(e){this.load(e.url,{type:"level",level:e.level,id:e.id})}},{key:"onAudioTrackLoading",value:function(e){this.load(e.url,{type:"audioTrack",id:e.id})}},{key:"load",value:function(e,t){var r=this.loaders[t.type];if(r){var i=r.context;if(i&&i.url===e)return void y.logger.trace("playlist request ongoing");y.logger.warn("abort previous loader for type:"+t.type),r.abort()}var a=this.hls.config,n=void 0,s=void 0,o=void 0,l=void 0;"manifest"===t.type?(n=a.manifestLoadingMaxRetry,s=a.manifestLoadingTimeOut,o=a.manifestLoadingRetryDelay,l=a.manifestLoadingMaxRetryTimeout):(n=a.levelLoadingMaxRetry,s=a.levelLoadingTimeOut,o=a.levelLoadingRetryDelay,l=a.levelLoadingMaxRetryTimeout,y.logger.log("loading playlist for "+t.type+" "+(t.level||t.id))),r=this.loaders[t.type]=t.loader="undefined"!=typeof a.pLoader?new a.pLoader(a):new a.loader(a),t.url=e,t.responseType="";var u=void 0,d=void 0;u={timeout:s,maxRetry:n,retryDelay:o,maxRetryDelay:l},d={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},r.load(t,u,d)}},{key:"resolve",value:function(e,t){return u.default.buildAbsoluteURL(t,e)}},{key:"parseMasterPlaylist",value:function(e,t){var r=[],i=void 0;for(m.lastIndex=0;null!=(i=m.exec(e));){var a={},n=a.attrs=new p.default(i[1]);a.url=this.resolve(i[2],t);var s=n.decimalResolution("RESOLUTION");s&&(a.width=s.width,a.height=s.height),a.bitrate=n.decimalInteger("AVERAGE-BANDWIDTH")||n.decimalInteger("BANDWIDTH"),a.name=n.NAME;var o=n.CODECS;if(o){o=o.split(/[ ,]+/);for(var l=0;l2?(t=r.shift()+".",t+=parseInt(r.shift()).toString(16),t+=("000"+parseInt(r.shift()).toString(16)).substr(-4)):t=e,t}},{key:"parseLevelPlaylist",value:function(e,t,r,i){var a,n,s=0,o=0,l={type:null,version:null,url:t,fragments:[],live:!0,startSN:0},u=new R,d=0,f=null,h=new k;for(h.tagList=[],b.lastIndex=0;null!==(a=b.exec(e));){var c=a[1];if(c){h.duration=parseFloat(c);var g=a[2];h.title=g?g:null,h.tagList.push(g?["INF",c,g]:["INF",c])}else if(a[3]){if(!isNaN(h.duration)){var v=s++;h.type=i,h.prevFrag=f,h.start=o,h.levelkey=u,h.sn=v,h.level=r,h.cc=d,h.baseurl=t,h.relurl=a[3],l.fragments.push(h),f=h,o+=h.duration,h=new k,h.tagList=[]}}else if(a[4])h.rawByteRange=a[4];else if(a[5])h.rawProgramDateTime=a[5],h.tagList.push(["PROGRAM-DATE-TIME",a[5]]);else{for(a=a[0].match(_),n=1;n0){var u="audioTrack"!==n,d=this.parseLevelPlaylist(i,a,(u?o:s)||0,u?"main":"audio");"manifest"===n&&l.trigger(f.default.MANIFEST_LOADED,{levels:[{url:a,details:d}],audioTracks:[],url:a,stats:t}),t.tparsed=performance.now(),d.targetduration?u?l.trigger(f.default.LEVEL_LOADED,{details:d,level:o||0,id:s||0,stats:t}):l.trigger(f.default.AUDIO_TRACK_LOADED,{details:d,id:s,stats:t}):l.trigger(f.default.ERROR,{type:g.ErrorTypes.NETWORK_ERROR,details:g.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"invalid targetduration"})}else{var h=this.parseMasterPlaylist(i,a);if(h.length){var c=this.parseMasterPlaylistMedia(i,a,"AUDIO");if(c.length){var v=!1;c.forEach(function(e){e.url||(v=!0)}),v===!1&&h[0].audioCodec&&!h[0].attrs.AUDIO&&(y.logger.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),c.unshift({type:"main",name:"main"}))}l.trigger(f.default.MANIFEST_LOADED,{levels:h,audioTracks:c,url:a,stats:t})}else l.trigger(f.default.ERROR,{type:g.ErrorTypes.NETWORK_ERROR,details:g.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no level found in manifest"})}else l.trigger(f.default.ERROR,{type:g.ErrorTypes.NETWORK_ERROR,details:g.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no EXTM3U delimiter"})}},{key:"loaderror",value:function(e,t){var r,i,a=t.loader;switch(t.type){case"manifest":r=g.ErrorDetails.MANIFEST_LOAD_ERROR,i=!0;break;case"level":r=g.ErrorDetails.LEVEL_LOAD_ERROR,i=!1;break;case"audioTrack":r=g.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,i=!1}a&&(a.abort(),this.loaders[t.type]=void 0),this.hls.trigger(f.default.ERROR,{type:g.ErrorTypes.NETWORK_ERROR,details:r,fatal:i,url:a.url,loader:a,response:e,context:t})}},{key:"loadtimeout",value:function(e,t){var r,i,a=t.loader;switch(t.type){case"manifest":r=g.ErrorDetails.MANIFEST_LOAD_TIMEOUT,i=!0;break;case"level":r=g.ErrorDetails.LEVEL_LOAD_TIMEOUT,i=!1;break;case"audioTrack":r=g.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT,i=!1}a&&(a.abort(),this.loaders[t.type]=void 0),this.hls.trigger(f.default.ERROR,{type:g.ErrorTypes.NETWORK_ERROR,details:r,fatal:i,url:a.url,loader:a,context:t})}}]),t}(c.default);r.default=T},{2:2,26:26,27:27,28:28,40:40,45:45}],37:[function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;r>24&255,t[1]=i>>16&255,t[2]=i>>8&255,t[3]=255&i,t.set(e,4),a=0,i=8;a>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}},{key:"mdia",value:function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))}},{key:"mfhd",value:function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}},{key:"minf",value:function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))}},{key:"moof",value:function(t,r,i){return e.box(e.types.moof,e.mfhd(t),e.traf(i,r))}},{key:"moov",value:function(t){for(var r=t.length,i=[];r--;)i[r]=e.trak(t[r]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(e.mvex(t)))}},{key:"mvex",value:function(t){for(var r=t.length,i=[];r--;)i[r]=e.trex(t[r]);return e.box.apply(null,[e.types.mvex].concat(i))}},{key:"mvhd",value:function(t,r){r*=t;var i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,2,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,i)}},{key:"sdtp",value:function(t){var r,i,a=t.samples||[],n=new Uint8Array(4+a.length);for(i=0;i>>8&255),n.push(255&a),n=n.concat(Array.prototype.slice.call(i));for(r=0;r>>8&255),s.push(255&a),s=s.concat(Array.prototype.slice.call(i));var o=e.box(e.types.avcC,new Uint8Array([1,n[3],n[4],n[5],255,224|t.sps.length].concat(n).concat([t.pps.length]).concat(s))),l=t.width,u=t.height;return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])))}},{key:"esds",value:function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))}},{key:"mp4a",value:function(t){var r=t.audiosamplerate;return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]),e.box(e.types.esds,e.esds(t)))}},{key:"mp3",value:function(t){var r=t.audiosamplerate;return e.box(e.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]))}},{key:"stsd",value:function(t){return"audio"===t.type?t.isAAC||"mp3"!==t.codec?e.box(e.types.stsd,e.STSD,e.mp4a(t)):e.box(e.types.stsd,e.STSD,e.mp3(t)):e.box(e.types.stsd,e.STSD,e.avc1(t))}},{key:"tkhd",value:function(t){var r=t.id,i=t.duration*t.timescale,a=t.width,n=t.height;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,r>>24&255,r>>16&255,r>>8&255,255&r,0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,a>>8&255,255&a,0,0,n>>8&255,255&n,0,0]))}},{key:"traf",value:function(t,r){var i=e.sdtp(t),a=t.id;return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a])),e.box(e.types.tfdt,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),e.trun(t,i.length+16+16+8+16+8+8),i)}},{key:"trak",value:function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))}},{key:"trex",value:function(t){var r=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}},{key:"trun",value:function(t,r){var i,a,n,s,o,l,u=t.samples||[],d=u.length,f=12+16*d,h=new Uint8Array(f);for(r+=8+f,h.set([0,0,15,1,d>>>24&255,d>>>16&255,d>>>8&255,255&d,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0),i=0;i>>24&255,n>>>16&255,n>>>8&255,255&n,s>>>24&255,s>>>16&255,s>>>8&255,255&s,o.isLeading<<2|o.dependsOn,o.isDependedOn<<6|o.hasRedundancy<<4|o.paddingValue<<1|o.isNonSync,61440&o.degradPrio,15&o.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*i);return e.box(e.types.trun,h)}},{key:"initSegment",value:function(t){e.types||e.init();var r,i=e.moov(t);return r=new Uint8Array(e.FTYP.byteLength+i.byteLength),r.set(e.FTYP),r.set(i,e.FTYP.byteLength),r}}]),e}();r.default=n},{}],38:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;rMath.pow(2,32)&&!function(){var t=function e(t,r){return r?e(r,t%r):t};e.timescale=e.audiosamplerate/t(e.audiosamplerate,e.isAAC?1024:1152)}(),d.logger.log("audio mp4 timescale :"+e.timescale),e.isAAC||(g.mpeg?(v="audio/mpeg",e.codec=""):g.mp3&&(e.codec="mp3")),p.audio={container:v,codec:e.codec,initSegment:!e.isAAC&&g.mpeg?new Uint8Array:h.default.initSegment([e]),metadata:{channelCount:e.channelCount}},m&&(a=n=o[0].pts-f*r)),t.sps&&t.pps&&l.length&&(t.timescale=this.MP4_TIMESCALE,p.video={container:"video/mp4",codec:t.codec,initSegment:h.default.initSegment([t]),metadata:{width:t.width,height:t.height}},m&&(a=Math.min(a,l[0].pts-f*r),n=Math.min(n,l[0].dts-f*r),this.observer.trigger(u.default.INIT_PTS_FOUND,{id:this.id,initPTS:a,cc:i}))),Object.keys(p).length?(s.trigger(u.default.FRAG_PARSING_INIT_SEGMENT,y),this.ISGenerated=!0,m&&(this._initPTS=a,this._initDTS=n)):s.trigger(u.default.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,id:this.id,details:c.ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})}},{key:"remuxVideo",value:function(e,t,r,i){var a,n,s,o,l,f,g,v,p=8,y=this.PES_TIMESCALE,m=this.PES2MP4SCALEFACTOR,E=e.samples,b=[],_=E.length,R=this._PTSNormalize,k=this._initDTS;E.sort(function(e,t){var r=e.dts-t.dts;return r?r:e.pts-t.pts});var T=E.reduce(function(e,t){return Math.max(Math.min(e,t.pts-t.dts),-18e3)},0);if(T<0){d.logger.warn("PTS < DTS detected in video samples, shifting DTS by "+Math.round(T/90)+" ms to overcome this issue");for(var A=0;A1?d.logger.log("AVC:"+D+" ms hole between fragments detected,filling it"):D<-1&&d.logger.log("AVC:"+-D+" ms overlapping between fragments detected"),l=S,E[0].dts=l+k,o=Math.max(o-D,S),E[0].pts=o+k,d.logger.log("Video/PTS/DTS adjusted: "+Math.round(o/90)+"/"+Math.round(l/90)+",delta:"+D+" ms")),f=l,L=E[E.length-1],v=Math.max(R(L.dts-k,S),0),g=Math.max(R(L.pts-k,S),0),g=Math.max(g,v);var w=navigator.vendor,O=navigator.userAgent,I=w&&w.indexOf("Apple")>-1&&O&&!O.match("CriOS");I&&(a=Math.round((v-l)/(m*(E.length-1))));for(var P=0;P<_;P++){var C=E[P];I?C.dts=l+P*m*a:(C.dts=Math.max(R(C.dts-k,S),l),C.dts=Math.round(C.dts/m)*m),C.pts=Math.max(R(C.pts-k,S),C.dts),C.pts=Math.round(C.pts/m)*m}var M=e.len+4*e.nbNalu+8;try{n=new Uint8Array(M)}catch(e){return void this.observer.trigger(u.default.ERROR,{type:c.ErrorTypes.MUX_ERROR,level:this.level,id:this.id,details:c.ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,bytes:M,reason:"fail allocating video mdat "+M})}var x=new DataView(n.buffer);x.setUint32(0,M),n.set(h.default.types.mdat,4);for(var N=0;N<_;N++){for(var F=E[N],U=F.units.units,G=0,B=void 0,j=0,H=U.length;j0?N-1:N].dts;if(Y.stretchShortVideoTrack){var X=Y.maxBufferHole,z=Y.maxSeekHole,$=Math.floor(Math.min(X,z)*y),J=(i?o+i*y:this.nextAudioPts)-F.pts;J>$?(a=J-q,a<0&&(a=q),d.logger.log("It is approximately "+J/90+" ms to the next segment; using duration "+a/90+" ms for the last video frame.")):a=q}else a=q}a/=m,B=Math.round((F.pts-F.dts)/m)}b.push({size:G,duration:a,cts:B,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:F.key?2:1,isNonSync:F.key?0:1}})}this.nextAvcDts=v+a*m;var Q=e.dropped;if(e.len=0,e.nbNalu=0,e.dropped=0,b.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var Z=b[0].flags;Z.dependsOn=2,Z.isNonSync=0}e.samples=b,s=h.default.moof(e.sequenceNumber++,l/m,e),e.samples=[];var ee={id:this.id,level:this.level,sn:this.sn,data1:s,data2:n,startPTS:o/y,endPTS:(g+m*a)/y,startDTS:l/y,endDTS:this.nextAvcDts/y,type:"video",nb:b.length,dropped:Q};return this.observer.trigger(u.default.FRAG_PARSING_DATA,ee),ee}},{key:"remuxAudio",value:function(e,t,r,i){var a,n,s,l,f,g,v,p,y,m,E,b,_,R,k,T,A=this.PES_TIMESCALE,S=e.timescale,L=A/S,D=e.timescale*(e.isAAC?1024:1152)/e.audiosamplerate,w=D*L,O=this._PTSNormalize,I=this._initDTS,P=!e.isAAC&&this.typeSupported.mpeg,C=P?0:8,M=[],x=[];if(e.samples.sort(function(e,t){return e.pts-t.pts}),x=e.samples,T=this.nextAudioPts,r|=x.length&&T&&(Math.abs(t-T/A)<.1||Math.abs(x[0].pts-T-this._initDTS)<20*w),r||(T=t*A),i&&e.isAAC)for(var N=0,F=T;N=w){var j=Math.round(B/w);d.logger.warn("Injecting "+j+" audio frame @ "+Math.round(F/90)/1e3+"s due to "+Math.round(B/90)+" ms gap.");for(var H=0;H.1*w,F+=w,0===N?U.pts=U.dts=I+T:U.pts=U.dts=x[N-1].pts+w,N+=1}for(var K=0,W=x.length;K0)Y=Math.round((b-T)/w),d.logger.log(V+" ms hole between AAC samples detected,filling it"),Y>0&&(R=o.default.getSilentFrame(e.manifestCodec||e.codec,e.channelCount),R||(R=l.subarray()),e.len+=Y*R.length);else if(V<-12){d.logger.log(-V+" ms overlapping between AAC samples detected, drop frame"),e.len-=l.byteLength;continue}b=_=T}if(v=Math.max(0,b),p=Math.max(0,_),!(e.len>0))return;var q=P?e.len:e.len+8;try{f=new Uint8Array(q)}catch(e){return void this.observer.trigger(u.default.ERROR,{type:c.ErrorTypes.MUX_ERROR,level:this.level,id:this.id,details:c.ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,bytes:q,reason:"fail allocating audio mdat "+q})}P||(a=new DataView(f.buffer),a.setUint32(0,q),f.set(h.default.types.mdat,4));for(var X=0;X=2&&($=M[J-2].duration,s.duration=$),J){this.nextAudioPts=b+L*$,e.len=0,e.samples=M,g=P?new Uint8Array:h.default.moof(e.sequenceNumber++,p/L,e),e.samples=[];var Q={id:this.id,level:this.level,sn:this.sn,data1:g,data2:f,startPTS:v/A,endPTS:this.nextAudioPts/A,startDTS:p/A,endDTS:(_+L*$)/A,type:"audio",nb:J};return this.observer.trigger(u.default.FRAG_PARSING_DATA,Q),Q}return null}},{key:"remuxEmptyAudio",value:function(e,t,r,i){var a=this.PES_TIMESCALE,n=e.timescale?e.timescale:e.audiosamplerate,s=a/n,l=this.nextAudioPts,u=(void 0!==l?l:i.startDTS*a)+this._initDTS,f=i.endDTS*a+this._initDTS,h=1024,c=s*h,g=Math.ceil((f-u)/c),v=o.default.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(d.logger.warn("remux empty Audio"),!v)return void d.logger.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");for(var p=[],y=0;y4294967296;)e+=r;return e}},{key:"passthrough",get:function(){return!1}}]),e}();r.default=g},{26:26,28:28,29:29,37:37,45:45}],39:[function(e,t,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;rNumber.MAX_SAFE_INTEGER?1/0:t}},{key:"hexadecimalInteger",value:function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var r=new Uint8Array(t.length/2),i=0;iNumber.MAX_SAFE_INTEGER?1/0:t}},{key:"decimalFloatingPoint",value:function(e){return parseFloat(this[e])}},{key:"enumeratedString",value:function(e){return this[e]}},{key:"decimalResolution",value:function(e){var t=n.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}}}],[{key:"parseAttrList",value:function(e){var t,r={};for(s.lastIndex=0;null!==(t=s.exec(e));){var i=t[2],a='"';0===i.indexOf(a)&&i.lastIndexOf(a)===i.length-1&&(i=i.slice(1,-1)),r[t[1]]=i}return r}}]),e}();r.default=o},{}],41:[function(e,t,r){"use strict";var i={search:function(e,t){for(var r=0,i=e.length-1,a=null,n=null;r<=i;){a=(r+i)/2|0,n=e[a];var s=t(n);if(s>0)r=a+1;else{if(!(s<0))return n;i=a-1}}return null}};t.exports=i},{}],42:[function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;r=r}},v=function(e){for(var t=[],r=0;rl&&(g.log("ERROR","Too large cursor position "+this.pos),this.pos=l)}},{key:"moveCursor",value:function(e){var t=this.pos+e;if(e>1)for(var r=this.pos+1;r=144&&this.backSpace();var t=s(e);return this.pos>=l?void g.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),void this.moveCursor(1))}},{key:"clearFromPos",value:function(e){var t;for(t=e;t0&&(r=e?"["+t.join(" | ")+"]":t.join("\n")),r}},{key:"getTextAndFormat",value:function(){return this.rows}}]),e}(),b=function(){function e(t,r){i(this,e),this.chNr=t,this.outputFilter=r,this.mode=null,this.verbose=0,this.displayedMemory=new E,this.nonDisplayedMemory=new E,this.lastOutputScreen=new E,this.currRollUpRow=this.displayedMemory.rows[o-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return a(e,[{key:"reset",value:function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[o-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null}},{key:"getHandler",value:function(){return this.outputFilter}},{key:"setHandler",value:function(e){this.outputFilter=e}},{key:"setPAC",value:function(e){this.writeScreen.setPAC(e,this.lastOutputScreen)}},{key:"setBkgData",value:function(e){this.writeScreen.setBkgData(e)}},{key:"setMode",value:function(e){e!==this.mode&&(this.mode=e,g.log("INFO","MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset(),this.lastOutputScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}},{key:"insertChars",value:function(e){for(var t=0;t=46,t.italics)t.foreground="white";else{var r=Math.floor(e/2)-16,i=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=i[r]}g.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)}},{key:"outputDataUpdate",value:function(){var e=g.time;null!==e&&this.outputFilter&&(this.outputFilter.updateData&&this.outputFilter.updateData(e,this.displayedMemory),null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}},{key:"cueSplitAtTime",value:function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}}]),e}(),_=function(){function e(t,r,a){i(this,e),this.field=t||1,this.outputs=[r,a],this.channels=[new b(1,r),new b(2,a)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return a(e,[{key:"getHandler",value:function(e){return this.channels[e].getHandler()}},{key:"setHandler",value:function(e,t){this.channels[e].setHandler(t)}},{key:"addData",value:function(e,t){var r,i,a,n=!1;this.lastTime=e,g.setTime(e);for(var s=0;s ("+v([i,a])+")"),r=this.parseCmd(i,a),r||(r=this.parseMidrow(i,a)),r||(r=this.parsePAC(i,a)),r||(r=this.parseBackgroundAttributes(i,a)),!r&&(n=this.parseChars(i,a)))if(this.currChNr&&this.currChNr>=0){var o=this.channels[this.currChNr-1];o.insertChars(n)}else g.log("WARNING","No channel found yet. TEXT-MODE?");r?this.dataCounters.cmd+=2:n?this.dataCounters.char+=2:(this.dataCounters.other+=2,g.log("WARNING","Couldn't parse cleaned data "+v([i,a])+" orig: "+v([t[s],t[s+1]])))}else this.dataCounters.padding+=2}},{key:"parseCmd",value:function(e,t){var r=null,i=(20===e||28===e)&&32<=t&&t<=47,a=(23===e||31===e)&&33<=t&&t<=35;if(!i&&!a)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,g.log("DEBUG","Repeated command ("+v([e,t])+") is dropped"),!0;r=20===e||23===e?1:2;var n=this.channels[r-1];return 20===e||28===e?32===t?n.ccRCL():33===t?n.ccBS():34===t?n.ccAOF():35===t?n.ccAON():36===t?n.ccDER():37===t?n.ccRU(2):38===t?n.ccRU(3):39===t?n.ccRU(4):40===t?n.ccFON():41===t?n.ccRDC():42===t?n.ccTR():43===t?n.ccRTD():44===t?n.ccEDM():45===t?n.ccCR():46===t?n.ccENM():47===t&&n.ccEOC():n.ccTO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=r,!0}},{key:"parseMidrow",value:function(e,t){var r=null;if((17===e||25===e)&&32<=t&&t<=47){if(r=17===e?1:2,r!==this.currChNr)return g.log("ERROR","Mismatch channel in midrow parsing"),!1;var i=this.channels[r-1];return i.ccMIDROW(t),g.log("DEBUG","MIDROW ("+v([e,t])+")"),!0}return!1}},{key:"parsePAC",value:function(e,t){var r=null,i=null,a=(17<=e&&e<=23||25<=e&&e<=31)&&64<=t&&t<=127,n=(16===e||24===e)&&64<=t&&t<=95;if(!a&&!n)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;r=e<=23?1:2,i=64<=t&&t<=95?1===r?u[e]:f[e]:1===r?d[e]:h[e];var s=this.interpretPAC(i,t),o=this.channels[r-1];return o.setPAC(s),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=r,!0}},{key:"interpretPAC",value:function(e,t){var r=t,i={color:null,italics:!1,indent:null,underline:!1,row:e};return r=t>95?t-96:t-64,i.underline=1===(1&r),r<=13?i.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(r/2)]:r<=15?(i.italics=!0,i.color="white"):i.indent=4*Math.floor((r-16)/2),i}},{key:"parseChars",value:function(e,t){var r=null,i=null,a=null;if(e>=25?(r=2,a=e-8):(r=1,a=e),17<=a&&a<=19){var n=t;n=17===a?t+80:18===a?t+112:t+144,g.log("INFO","Special char '"+s(n)+"' in channel "+r),i=[n]}else 32<=e&&e<=127&&(i=0===t?[e]:[e,t]);if(i){var o=v(i);g.log("DEBUG","Char codes = "+o.join(",")),this.lastCmdA=null,this.lastCmdB=null}return i}},{key:"parseBackgroundAttributes",value:function(e,t){var r,i,a,n,s=(16===e||24===e)&&32<=t&&t<=47,o=(23===e||31===e)&&45<=t&&t<=47;return!(!s&&!o)&&(r={},16===e||24===e?(i=Math.floor((t-32)/2),r.background=c[i],t%2===1&&(r.background=r.background+"_semi")):45===t?r.background="transparent":(r.foreground="black",47===t&&(r.underline=!0)),a=e<24?1:2,n=this.channels[a-1],n.setBkgData(r),this.lastCmdA=null,this.lastCmdB=null,!0)}},{key:"reset",value:function(){for(var e=0;e=16?o--:o++,navigator.userAgent.match(/Firefox\//)?n.line=d+1:n.line=d>7?d-2:d+1,n.align="left",n.position=Math.max(0,Math.min(100,100*(o/32)+(navigator.userAgent.match(/Firefox\//)?50:0))),e.addCue(n)}}};t.exports=i},{}],44:[function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;r "+t}function n(e){var t=self.console[e];return t?function(){for(var r=arguments.length,i=Array(r),n=0;n1?t-1:0),i=1;i=2&&(0===i.tfirst&&(i.tfirst=Math.max(performance.now(),i.trequest),this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),s.timeout-(i.tfirst-i.trequest))),4===r))){var o=t.status;if(o>=200&&o<300){i.tload=Math.max(i.tfirst,performance.now());var l=void 0,u=void 0;"arraybuffer"===a.responseType?(l=t.response,u=l.byteLength):(l=t.responseText,u=l.length),i.loaded=i.total=u;var d={url:t.responseURL,data:l};this.callbacks.onSuccess(d,i,a)}else i.retry>=s.maxRetry||o>=400&&o<499?(n.logger.error(o+" while loading "+a.url),this.callbacks.onError({code:o,text:t.statusText},a)):(n.logger.warn(o+" while loading "+a.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,s.maxRetryDelay),i.retry++)}}},{key:"loadtimeout",value:function(){n.logger.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context)}},{key:"loadprogress",value:function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total);var r=this.callbacks.onProgress;r&&r(t,this.context,null)}}]),e}();r.default=s},{45:45}]},{},[33])(33)}); diff --git a/app/dist/weapp/onlinevendor/version.json b/app/dist/weapp/onlinevendor/version.json index c848721e..b970913d 100644 --- a/app/dist/weapp/onlinevendor/version.json +++ b/app/dist/weapp/onlinevendor/version.json @@ -1,6 +1,7 @@ { - "WAService.js": 2016122100, - "WAWebview.js": 2016122100, - "wcc": 2016122100, - "wcsc": 2016122100 + "WAService.js": 2017032800, + "WAWebview.js": 2017032800, + "wcc": 2017030300, + "wcsc": 2017030300, + "hls.js": 2017030300 } diff --git a/app/dist/weapp/onlinevendor/wcc b/app/dist/weapp/onlinevendor/wcc old mode 100644 new mode 100755 index 63f54634..6d60724b Binary files a/app/dist/weapp/onlinevendor/wcc and b/app/dist/weapp/onlinevendor/wcc differ diff --git a/app/dist/weapp/onlinevendor/wcc.exe b/app/dist/weapp/onlinevendor/wcc.exe index 316dfa49..891d8175 100644 Binary files a/app/dist/weapp/onlinevendor/wcc.exe and b/app/dist/weapp/onlinevendor/wcc.exe differ diff --git a/app/dist/weapp/onlinevendor/wcsc b/app/dist/weapp/onlinevendor/wcsc old mode 100644 new mode 100755 diff --git a/app/dist/weapp/onlinevendor/wcsc.exe b/app/dist/weapp/onlinevendor/wcsc.exe index 39604f05..b533756b 100644 Binary files a/app/dist/weapp/onlinevendor/wcsc.exe and b/app/dist/weapp/onlinevendor/wcsc.exe differ diff --git a/app/dist/weapp/tpl/appserviceErrorTpl.js b/app/dist/weapp/tpl/appserviceErrorTpl.js index fc1d4475..890d8804 100644 --- a/app/dist/weapp/tpl/appserviceErrorTpl.js +++ b/app/dist/weapp/tpl/appserviceErrorTpl.js @@ -1,6 +1 @@ -"use strict";module.exports=` - console.group('%c加载 {{fileName}} 错误', "color: red; font-size: x-large") - console.error(\`%c{{error}}\`, "color: red; font-size: x-large") - console.groupEnd() - Page({}) -`; \ No newline at end of file +"use strict";module.exports='\n console.group(\'%c加载 {{fileName}} 错误\', "color: red; font-size: x-large")\n console.error(`%c{{error}}`, "color: red; font-size: x-large")\n console.groupEnd()\n Page({})\n'; \ No newline at end of file diff --git a/app/dist/weapp/tpl/appserviceTpl.js b/app/dist/weapp/tpl/appserviceTpl.js index a4de6bb9..96088b85 100644 --- a/app/dist/weapp/tpl/appserviceTpl.js +++ b/app/dist/weapp/tpl/appserviceTpl.js @@ -1,41 +1 @@ -module.exports=` - - - - - - - - - - - - -

- 开发者工具使用 nwjs 来模拟小程序的实现,帮助大家来开发和调试微信小程序,所以这里是一个 webview,但真实 - 的手机端是运行在 jscore 中的,所以请不要使用任何 bom 对象。 -

-

- 我们建议你先完整阅读该开发文档,这将有助于更快地完成开发。如果发现我们的文档有任何错漏, - 或者开发过程中有任何疑问或者你有更好的建议,欢迎通过下列邮箱联系我们 - - weixin_developer@qq.com - - 或者访问微信小程序开发者社区提交问题: - - https://developers.weixin.qq.com -

- - - - - `; \ No newline at end of file +"use strict";module.exports='\n\n\n\n\n \n \n \n \n \n\n\n\n

\n 开发者工具使用 nwjs 来模拟小程序的实现,帮助大家来开发和调试微信小程序,所以这里是一个 webview,但真实\n 的手机端是运行在 jscore 中的,所以请不要使用任何 bom 对象。\n

\n

\n 我们建议你先完整阅读该开发文档,这将有助于更快地完成开发。如果发现我们的文档有任何错漏,\n 或者开发过程中有任何疑问或者你有更好的建议,欢迎通过下列邮箱联系我们\n\n weixin_developer@qq.com\n\n 或者访问微信小程序开发者社区提交问题:\n\n https://developers.weixin.qq.com\n

\n \n\n\n\n '; \ No newline at end of file diff --git a/app/dist/weapp/tpl/errorTpl.js b/app/dist/weapp/tpl/errorTpl.js index ecc31207..7c3a122e 100644 --- a/app/dist/weapp/tpl/errorTpl.js +++ b/app/dist/weapp/tpl/errorTpl.js @@ -1,14 +1 @@ -"use strict";module.exports=` - - - - - - - - -

{{error}}

- - - -`; \ No newline at end of file +"use strict";module.exports='\n \n \n \n \n \n \n \n \n

{{error}}

\n \n \n \n'; \ No newline at end of file diff --git a/app/dist/weapp/tpl/pageFrameTpl.js b/app/dist/weapp/tpl/pageFrameTpl.js index d69971ca..947f336b 100644 --- a/app/dist/weapp/tpl/pageFrameTpl.js +++ b/app/dist/weapp/tpl/pageFrameTpl.js @@ -1,52 +1 @@ -module.exports=` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -`; \ No newline at end of file +"use strict";module.exports='\n\n\n\n\n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n
\n\n\n\n'; \ No newline at end of file diff --git a/app/dist/weapp/trans/transConfigToPf.js b/app/dist/weapp/trans/transConfigToPf.js index b70054fc..052fff4a 100644 --- a/app/dist/weapp/trans/transConfigToPf.js +++ b/app/dist/weapp/trans/transConfigToPf.js @@ -1 +1 @@ -'use strict';var _exports;function init(){const a=global.appConfig.isDev,b=require('fs'),c=require('path');require('../utils/tools.js'),require('../../config/config.js');const d=require('../utils/vendorManager.js'),e=require('../utils/projectManager.js');require('async');var f={};const g=a?{'':'reporter-sdk.js','':'webview-sdk.js','':'virtual_dom.js','':'exparser.js','':'wx-components.js','':'wx-components.css'}:{'':'WAWebview.js'};d.manager.on('VENDOR_CHANGE',()=>{f={}}),e.manager.on('FILE_CHANGE',(h,i,j)=>{if('app.json'===j){let k=h.hash;delete f[k]}}),_exports=(h,i,j)=>{i.url;let k=h.hash;if(f[k])process.nextTick(()=>{let l=f[k];j(l.error,l.data)});else{let l=c.join(h.projectpath,'app.wxss'),m=b.existsSync(l),n=require('../tpl/pageFrameTpl.js');m&&(n=n.replace('',()=>{return``}));let o={};for(let p in g)o[p]=d.getFile(g[p]);for(let p in g){let q=g[p];n=n.replace(p,()=>{if(0${o[p]}`;return 0${o[p]}`:o.vendor[p]})}a||(f[k]={error:null,data:n}),j(null,n)}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=global.appConfig.isDev,r=require("fs"),s=require("path"),n=(require("../utils/tools.js"),require("../../config/config.js"),require("../utils/vendorManager.js")),i=require("../utils/projectManager.js"),t=(require("async"),{}),o=e?{"":"reporter-sdk.js","":"webview-sdk.js","":"virtual_dom.js","":"webview-engine.js","":"exparser.js","":"wx-components.js","":"wx-components.css","":"hls.js"}:{"":"WAWebview.js","":"hls.js"};n.manager.on("VENDOR_CHANGE",function(){t={}}),i.manager.on("FILE_CHANGE",function(e,r,s){if("app.wxss"===s){var n=e.hash;delete t[n]}}),_exports=function(i,a,p){var c=(a.url,i.hash);return t[c]?void process.nextTick(function(){var e=t[c];p(e.error,e.data)}):void!function(){var a=s.join(i.projectpath,"app.wxss"),u=r.existsSync(a),l=require("../tpl/pageFrameTpl.js");u&&(l=l.replace("",function(){return''}));var v={};for(var j in o)v[j]=n.getFile(o[j]);var f=function(e){var r=o[e];l=l.replace(e,function(){return r.indexOf(".js")>0?"":r.indexOf(".css")>0?"":v.vendor[e]})};for(var w in o)f(w);e||(t[c]={error:null,data:l}),p(null,l)}()}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/trans/transManager.js b/app/dist/weapp/trans/transManager.js index 7ecb15c8..0c444493 100644 --- a/app/dist/weapp/trans/transManager.js +++ b/app/dist/weapp/trans/transManager.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(v,w){if(!v.error)w(null,{},v.data);else if('object'==typeof v.error){let x=v.error||{},y=x.httpCode||404,z=x.msg||x.toString();w(y,{},z),(x.type===q||x.type===r)&&k.showWeappError(x.type,x.type===q?m.parseWxssErr(x):x)}else w(404,{'Weapp-Error':encodeURIComponent(v.error)},v.error.toString())}require('fs');const b=require('path'),c=require('async'),d=require('../utils/tools.js');require('../../stores/projectStores.js');const f=require('./transConfigToPf.js'),g=require('./transWxmlToJs.js'),h=require('./transWxmlToHtml.js'),i=require('../utils/projectManager.js'),j=require('./transWxssToCss.js'),k=require('../../actions/windowActions.js'),l=require('url'),m=require('../utils/parseErr.js'),{WXML_ERROR:n,PAGE_DEFINE_ERROR:o,WXSS_ERROR:q,WXSS_IMPORT_ERROR:r,WXML_LOSE_ERROR:s}=require('../../config/config.js'),{weappLocalIdRegular:t}=require('../../config/config.js');var u=require('../tpl/errorTpl.js');_exports={getResponse:function(w,x){let y=d.getProject(w),z=d.getFileNameFromUrl(w,y);z=decodeURI(z);let A=d.isWxmlFile(z),B=d.isWxssFile(z);if(B)j(w,{project:y},(C,D)=>{a({error:C,data:D},x)});else if(!A){let C=l.parse(w),D=C.pathname;b.basename(D);{let E=b.extname(z);d.whiteFileExtName[E]?i.getFile(y,z,(F,G)=>{a({error:F,data:G},x)}):a({error:'404'},x)}}else{let C=[];C.push(D=>{let E=i.getAppJSONSync(y),F=E.pages,G=z.replace(b.extname(z),''),H=F.findIndex(I=>{return I===G});-1 ${G}
请检查后重试。`})}),C.push(D=>{f(y,{url:w},(E,F)=>{D(E,F)})}),C.push(D=>{g(w,{project:y},(E,F)=>{D(E,F)})}),c.parallel(C,(D,E)=>{if(D){let I=u.replace(/{{error}}/,()=>{return D.msg}).replace(/{{msgForConsole}}/,()=>{let K,J=D.type;return J===n?K=m.parseWxmlErr(y,D.msgForConsole):J===o?K=D.msgForConsole:J===s&&(K=m.parseWxmlLoseErr(y,D.msgForConsole)),K});return void x(500,{},I)}let F={};try{F=i.getPageJSONSync(y,w)}catch(I){k.showWeappError(I.type,m.parseJsonParseErr(I))}let G={config:F,project:y,url:w,pageFrameTpl:E[1],generateFunc:E[2].generateFunc},H=h(G);x(null,H.header,H.body)})}}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r,o){if("object"!==("undefined"==typeof r?"undefined":_typeof(r))&&(o=r,r={}),e.error)if("object"===_typeof(e.error)){var t=e.error||{},n=t.httpCode||404,s=t.msg||t.toString();o(n,{},s),t.type!==j&&t.type!==d||l.showWeappError(t.type,t.type===j?f.parseWxssErr(t):t)}else o(404,{"Weapp-Error":encodeURIComponent(e.error)},e.error.toString());else{var i={};r.isSvg&&(i={"Content-Type":"image/svg+xml"}),o(null,i,e.data)}}function r(r,g){var j=n.getProject(r),d=n.getFileNameFromUrl(r,j);d=decodeURI(d);var v=n.isWxmlFile(d),E=n.isWxssFile(d);if(E)u(r,{project:j},function(r,o){e({error:r,data:o},g)});else if(v){var x=[];x.push(function(e){var r=p.getAppJSONSync(j),t=r.pages,n=d.replace(o.extname(d),""),s=t.findIndex(function(e){return e===n});s>-1?e(null,s):e({type:y,msgForConsole:y+"app.json 中未配置,当前页面 "+n+" 请检查后重试。",msg:"app.json 中未配置当前页面
"+n+"
请检查后重试。"})}),x.push(function(e){s(j,{url:r},function(r,o){e(r,o)})}),x.push(function(e){i(r,{project:j},function(r,o){e(r,o)})}),t.parallel(x,function(e,o){if(e){var t=S.replace(/{{error}}/,function(){return e.msg}).replace(/{{msgForConsole}}/,function(){var r=e.type,o=void 0;return r===m?o=f.parseWxmlErr(j,e.msgForConsole):r===y?o=e.msgForConsole:r===R&&(o=f.parseWxmlLoseErr(j,e.msgForConsole)),o});return void g(500,{},t)}var n={};try{n=p.getPageJSONSync(j,r)}catch(e){l.showWeappError(e.type,f.parseJsonParseErr(e))}var s={config:n,project:j,url:r,pageFrameTpl:o[1],generateFunc:o[2].generateFunc},i=a(s);g(null,i.header,i.body)})}else{var q=c.parse(r),F=q.pathname,W=(o.basename(F),o.extname(d));n.whiteFileExtName[W]?p.getFile(j,d,function(r,o){e({error:r,data:o},{isSvg:".svg"===W},g)}):e({error:"404"},g)}}var o=(require("fs"),require("path")),t=require("async"),n=require("../utils/tools.js"),s=(require("../../stores/projectStores.js"),require("./transConfigToPf.js")),i=require("./transWxmlToJs.js"),a=require("./transWxmlToHtml.js"),p=require("../utils/projectManager.js"),u=require("./transWxssToCss.js"),l=require("../../actions/windowActions.js"),c=require("url"),f=require("../utils/parseErr.js"),g=require("../../config/config.js"),m=g.WXML_ERROR,y=g.PAGE_DEFINE_ERROR,j=g.WXSS_ERROR,d=g.WXSS_IMPORT_ERROR,R=g.WXML_LOSE_ERROR,v=require("../../config/config.js"),S=(v.weappLocalIdRegular,require("../tpl/errorTpl.js"));_exports={getResponse:r}}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/trans/transWxmlToHtml.js b/app/dist/weapp/trans/transWxmlToHtml.js index ed1b6657..4a0bf293 100644 --- a/app/dist/weapp/trans/transWxmlToHtml.js +++ b/app/dist/weapp/trans/transWxmlToHtml.js @@ -1 +1 @@ -'use strict';var _exports;function init(){require('fs'),require('path');const a=require('../utils/tools.js');_exports=b=>{let c=b.pageFrameTpl,d=b.project;b.url;let e=b.config,f=a.getPageCssFiles(b.url,d);return f&&(c=c.replace('',``)),c=c.replace('',b.generateFunc),c=c.replace('',``),{header:{},body:c}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var r=(require("fs"),require("path"),require("../utils/tools.js"));_exports=function(e){var t=e.pageFrameTpl,n=e.project,i=(e.url,e.config),c=r.getPageCssFiles(e.url,n);return c&&(t=t.replace("",function(){return''})),t=t.replace("",function(){return e.generateFunc}),t=t.replace("",function(){return""}),{header:{},body:t}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/trans/transWxmlToJs.js b/app/dist/weapp/trans/transWxmlToJs.js index 8d8c5ad8..f5e2076a 100644 --- a/app/dist/weapp/trans/transWxmlToJs.js +++ b/app/dist/weapp/trans/transWxmlToJs.js @@ -1,10 +1 @@ -"use strict";var _exports;function init(){function a(p,q){return` - - - `}const b=global.appConfig.isDev,c="linux"===process.platform;require("fs");const d=require("path"),e=require("../../config/dirConfig.js"),f=e.WeappVendor,g=require("../utils/tools.js"),h=require("../utils/projectManager.js"),j=b?d.join(__dirname,"../vendor/"):f,k=c?d.join(j,"wcc"):d.join(j,"wcc.exe");require("glob");const l=require("child_process").spawn,{WXML_ERROR:m,WXML_LOSE_ERROR:n}=require("../../config/config.js");var o={};h.manager.on("FILE_CHANGE",(p,q,r)=>{".wxml"===d.extname(r)&&delete o[p.hash]}),_exports=(p,q,r)=>{let s=q.project,t=g.getFilePath(p,s),u=d.relative(s.projectpath,t),v="",w="";return o[s.hash]?void process.nextTick(()=>{r(null,{generateFunc:a(s,u.replace(/\\/g,"/")),styleStr:v})}):void h.getAllWXMLFileList(s,(x,y)=>{let z=h.getAppJSONSync(s),A=z.pages;for(let B=0,C=A.length;B{if(0===F)o[s.hash]=Buffer.concat(D).toString(),w=a(s,u.replace(/\\/g,"/")),r(null,{generateFunc:w,styleStr:v});else{let G=Buffer.concat(E).toString();r({type:m,msgForConsole:G,msg:`编译 .wxml 文件错误, 错误信息:${G},可在控制台查看更详细信息`})}}),C.stdout.on("data",F=>{D.push(F)}),C.stderr.on("data",F=>{E.push(F)})}else r(x.toString())})}}init(),module.exports=_exports; +"use strict";function init(){function e(e,n){return"\n \n \n "}var n=global.appConfig.isDev,t="darwin"===process.platform,r=(require("fs"),require("path")),i=require("../../config/dirConfig.js"),o=i.WeappVendor,s=require("../utils/tools.js"),c=require("../utils/projectManager.js"),a=n?r.join(__dirname,"../vendor/"):o,u=t?r.join(a,"wcc"):r.join(a,"wcc.exe"),l=(require("glob"),require("child_process").spawn),p=require("../../config/config.js"),g=p.WXML_ERROR,f=p.WXML_LOSE_ERROR,d={};c.manager.on("FILE_CHANGE",function(e,n,t){".wxml"===r.extname(t)&&delete d[e.hash]}),_exports=function(n,t,i){var o=t.project,a=s.getFilePath(n,o),p=r.relative(o.projectpath,a),h="",m="";return d[o.hash]?void process.nextTick(function(){i(null,{generateFunc:e(o,p.replace(/\\/g,"/")),styleStr:h})}):void c.getAllWXMLFileList(o,function(n,t){for(var r=c.getAppJSONSync(o),s=r.pages,a=0,v=s.length;a{if(!y){z=z.reverse().map(E=>{return E.replace(/\\/g,"/")});let A=z.concat(["-js","-db"]),B=k(j,A,{cwd:u.projectpath}),C=[],D=[];B.on("close",E=>{0===E?(!q[u.hash]&&(q[u.hash]={}),q[u.hash][r]=Buffer.concat(C).toString(),t(null,q[u.hash][r])):t({httpCode:500,file:r,msg:Buffer.concat(D).toString(),type:n})}),B.stdout.on("data",E=>{C.push(E)}),B.stderr.on("data",E=>{D.push(E)})}else t({httpCode:500,file:r,msg:y.toString().replace(/\\/g,"\\\\"),type:o})})}const b="darwin"===process.platform,c=global.appConfig.isDev;require("fs");const d=require("path");require("../utils/tools.js");const e=require("url"),f=require("../utils/projectManager.js"),g=require("../../config/dirConfig.js"),h=g.WeappVendor,i=c?d.join(__dirname,"../vendor/"):h,j=b?d.join(i,"wcsc"):d.join(i,"wcsc.exe"),k=require("child_process").spawn,l=require("../commit/getallwxss.js"),m=require("mkdir-p"),{WXSS_ERROR:n,WXSS_IMPORT_ERROR:o}=require("../../config/config.js"),p=g.WeappBuildCache;m.sync(p);var q={};f.manager.on("FILE_CHANGE",(r,s,t)=>{".wxss"===d.extname(t)&&delete q[r.hash]}),_exports=(r,s,t)=>{let u=s.project,w=e.parse(r),x=w.pathname;return q[u.hash]&&q[u.hash][x]?void process.nextTick(()=>{t(null,q[u.hash][x])}):void a(x,{project:u},t)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(e,r,t){var o=r.project,i=o.projectpath,s=n.join(i,e);h(s,i,function(r,n){if(r)t({httpCode:500,file:e,msg:r.toString().replace(/\\/g,"\\\\"),type:g});else{n=n.reverse().map(function(e){return e.replace(/\\/g,"/")});var i=n.concat(["-js","-db"]),s=u(p,i,{cwd:o.projectpath}),a=[],c=[];s.on("close",function(r){0===r?(m[o.hash]||(m[o.hash]={}),m[o.hash][e]=Buffer.concat(a).toString(),t(null,m[o.hash][e])):t({httpCode:500,file:e,msg:Buffer.concat(c).toString(),type:d})}),s.stdout.on("data",function(e){a.push(e)}),s.stderr.on("data",function(e){c.push(e)})}})}var r="darwin"===process.platform,t=global.appConfig.isDev,n=(require("fs"),require("path")),o=(require("../utils/tools.js"),require("url")),i=require("../utils/projectManager.js"),s=require("../../config/dirConfig.js"),a=s.WeappVendor,c=t?n.join(__dirname,"../vendor/"):a,p=r?n.join(c,"wcsc"):n.join(c,"wcsc.exe"),u=require("child_process").spawn,h=require("../commit/getallwxss.js"),f=require("mkdir-p"),l=require("../../config/config.js"),d=l.WXSS_ERROR,g=l.WXSS_IMPORT_ERROR,j=s.WeappBuildCache;f.sync(j);var m={};i.manager.on("FILE_CHANGE",function(e,r,t){".wxss"===n.extname(t)&&delete m[e.hash]}),_exports=function(r,t,n){var i=t.project,s=o.parse(r),a=s.pathname;return m[i.hash]&&m[i.hash][a]?void process.nextTick(function(){n(null,m[i.hash][a])}):void e(a,{project:i},n)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/utils/parseErr.js b/app/dist/weapp/utils/parseErr.js index a3f564ed..42f61c3a 100644 --- a/app/dist/weapp/utils/parseErr.js +++ b/app/dist/weapp/utils/parseErr.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(k,l,m){let n=k.split('\n'),o=0':' ';p.push(`${r} ${q+1} | ${n[q]}`)}return p}const b=require('path'),c=require('fs'),d=require('../../config/config.js'),f=require('../../lib/jsonlint.js').parser,g=require('../../stores/projectStores.js');f.parseError=f.lexer.parseError=function(k,l){throw l};const h=d.WXML_ERROR,j=d.WXML_LOSE_ERROR;_exports={},_exports.parseWXMLRuntimeErr=k=>{let l=g.getCurrentProject(),m=k.message.replace(d.WXML_RUNTIME_ERROR,''),n=m.split(':'),o=parseInt(n[2]);if(-1!==o){let p=c.readFileSync(b.join(l.projectpath,n[0]),'utf8'),q=m.replace(`${n[0]}:${n[1]}:${n[2]}:${n[3]}:`,'').replace(/`/g,'"'),r=a(p,o,q),s='';for(let u=0;u{let l=k.file.replace(/\.js$/,''),m=k.project,n=JSON.parse(c.readFileSync(b.join(m.projectpath,'app.json'),'utf8')),o=n.pages,p=o.findIndex(q=>{return q==l});return{file:l,msg:` app.json.pages\n > | pages[${p}] : ${o[p]}`}},_exports.parseJsonContentErr=k=>{return{file:k.file,msg:k.data}},_exports.parseJsonEntranceErr=k=>{let l=JSON.parse(k.data),m=l.pages;return{file:k.file,msg:`未找到入口页面\napp.json 中定义的 pages : ${JSON.stringify(m)}`}},_exports.parseJsonFileErr=k=>{return{file:k.file,msg:'\u672A\u627E\u5230\u5165\u53E3 app.json \u6587\u4EF6\uFF0C\u6216\u8005\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u65B0\u7F16\u8BD1\u3002'}},_exports.parseJsonParseErr=k=>{let l=k.data;k.e;try{f.parse(l)}catch(m){let n=`Expecting ${m.expected}, got ${m.token}`,o=a(l,m.line,n),p='',q=m.loc;for(let r=0;r{let m=(l||'').trim().split(':');try{if(m.length){let n=b.join(k.projectpath,m[0]);c.readFileSync(n,'utf8').split('\n');let o=parseInt(m[1])-1,p=a(c.readFileSync(n,'utf8'),o,m[3]),q='';for(let s=0;s{let m=l.match(/(\d.*?)\:/),n=m[1],o=JSON.parse(l.replace(m[0],'')),p=`未找到 ${o.pages[n]}.wxml 文件 \n > ${n} ${o.pages[n]}`;return`${j}${encodeURIComponent(p)}`},_exports.parseWxssErr=k=>{let{msg:l}=k,m=g.getCurrentProject();try{l=l.split('\n')[0];let n=l.match(/ERR:\s(.+)\((\d*):(\d*)\):\s*?(.+)/),o=parseInt(n[2]),p=n[4].replace(/`/g,'"'),q=n[1],r=c.readFileSync(b.join(m.projectpath,q),'utf8'),s=a(r,o,p),t='';for(let w=0;w0?t:1;var s=p(e,r,t);return n+"\n"+s}var r=require("path"),t=require("fs"),n=require("../../config/config.js"),s=require("../../lib/jsonlint.js").parser,a=require("../../stores/projectStores.js"),p=require("babel-code-frame");s.parseError=s.lexer.parseError=function(e,r){throw r};var o=n.WXML_ERROR,i=n.WXML_LOSE_ERROR;_exports={},_exports.parseWXMLRuntimeErr=function(s){var p=a.getCurrentProject(),o=s.message.replace(n.WXML_RUNTIME_ERROR,""),i=o.split(":"),c=parseInt(i[2]),l=parseInt(i[3]);if(c!==-1){var u=t.readFileSync(r.join(p.projectpath,i[0]),"utf8"),f=o.replace(i[0]+":"+i[1]+":"+i[2]+":"+i[3]+":","").replace(/`/g,'"'),g=e(u,c,l,f),m={file:i[0],reason:f,msg:g};return m}},_exports.parseJsFileErr=function(e){var n=e.file.replace(/\.js$/,""),s=e.project,a=JSON.parse(t.readFileSync(r.join(s.projectpath,"app.json"),"utf8")),p=a.pages,o=p.findIndex(function(e){return e==n});return{file:n,msg:" app.json.pages\n > | pages["+o+"] : "+p[o]}},_exports.parseJsonContentErr=function(e){return{file:e.file,msg:e.data}},_exports.parseJsonEntranceErr=function(e){var r=JSON.parse(e.data),t=r.pages;return{file:e.file,msg:"未找到入口页面\napp.json 中定义的 pages : "+JSON.stringify(t)}},_exports.parseJsonFileErr=function(e){return{file:e.file,msg:"未找到入口 "+e.file+" 文件,或者文件读取失败,请检查后重新编译。"}},_exports.parseJsonParseErr=function(r){var t=r.data;r.e;try{s.parse(t)}catch(s){var n="Expecting "+s.expected+", got "+s.token,a=e(t,s.line,s.loc.first_column,n);return r.msg=a,delete r.data,delete r.e,r}return r.msg=r.e.toString(),r},_exports.parseWxmlErr=function(n,s){var a=(s||"").trim().split(":");try{if(a.length){var p=r.join(n.projectpath,a[0]),i=(t.readFileSync(p,"utf8").split("\n"),parseInt(a[1])),c=parseInt(a[2]-1),l=e(t.readFileSync(p,"utf8"),i,c,a[3]),u={file:a[0],msg:l};return""+o+encodeURIComponent(JSON.stringify(u))}}catch(e){return s}},_exports.parseWxmlLoseErr=function(e,r){var t=r.match(/(\d.*?)\:/),n=t[1],s=JSON.parse(r.replace(t[0],"")),a="未找到 "+s.pages[n]+".wxml 文件 \n > "+n+" "+s.pages[n];return""+i+encodeURIComponent(a)},_exports.parseWxssErr=function(n){var s=n.msg,p=a.getCurrentProject();try{s=s.split("\n")[0];var o=s.match(/ERR:\s(.+)\((\d*):(\d*)\):\s*?(.+)/),i=parseInt(o[2]),c=parseInt(o[3]-1),l=o[4].replace(/`/g,'"'),u=o[1],f=t.readFileSync(r.join(p.projectpath,u),"utf8"),g=e(f,i,c,l),m={file:u,reason:l,msg:g};return m}catch(e){}}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/utils/projectManager.js b/app/dist/weapp/utils/projectManager.js index 45381fa0..41f1c14e 100644 --- a/app/dist/weapp/utils/projectManager.js +++ b/app/dist/weapp/utils/projectManager.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(){for(let B in r.info(`projectManager.js cleanProjects`),w)w[B].watcher&&w[B].watcher.close();w={}}function b(B){let C=B.hash;if(!w[C]){A.project=B,1{let H=k.extname(F);s.whiteFileExtName[H]&&(F=k.relative(B.projectpath,F),c(B,E,F,G))}),D.watcher.on('error',E=>{E&&!z&&(r.error(`projectManager.js obj.watcher error ${E.toString()}`),z=!0,a(),b(B))}),D.cache={},D.wxmlFileList=[],D.jsFileList=[],w[C]=D}}function c(B,C,D,E){let F=B.hash,G=w[F].cache;D=D.replace(/\\/g,'/'),'app.json'===D&&(w[F].cache={}),D&&G[D]&&(delete G[D],delete G['app-config.json']);let H=k.extname(D);'.wxml'===H?(clearTimeout(x),w[F].wxmlFileList=[],x=setTimeout(()=>{d(B)},20)):'.js'===H&&(clearTimeout(y),w[F].jsFileList=[],y=setTimeout(()=>{f(B)},20)),A.fileChange(B,C,D,E)}function d(B,C){try{let D=n.sync(`./**/*.wxml`,{nodir:!0,cwd:B.projectpath,ignore:['node_modules/**/*']}),E=B.hash;w[E].wxmlFileList=D,C&&C(null,D)}catch(D){r.error(`projectManager.js findAllWXMLFiles ${D.toString()}`),C&&C(D,[])}}function f(B,C){try{let D=n.sync(`**/*.js`,{nodir:!0,cwd:B.projectpath,ignore:['node_modules/**/*']}),E=B.hash;w[E].jsFileList=D,C&&C(null,D)}catch(D){r.error(`projectManager.js findAllJSFiles ${D.toString()}`),C&&C(D,[])}}function g(B,C){b(B);let D=B.hash,E=l.parse(C),F=E.pathname.replace(/^\//,''),G=k.extname(F),H=G?F.replace(G,'.json'):`${F}.json`,I=w[D].cache;if(I[H])return I[H];let J=B.projectpath,K=h(B),L=k.join(J,H),M=j.existsSync(L),N={};if(M){let O=j.readFileSync(L,'utf8');try{N=JSON.parse(O)}catch(P){throw{e:P,data:O,type:u.JSON_PARSE_ERROR,file:H}}}return I[H]=Object.assign({},K.window,N),I[H]}function h(B){b(B);let C=B.hash,D='app.json',E=w[C].cache,F=E[D];if(F)return F;let I,G=B.projectpath,H=k.join(G,'app.json');try{I=j.readFileSync(H,'utf8')}catch(M){throw{e:M,type:u.JSON_FILE_ERROR,file:'app.json'}}try{F=JSON.parse(I)}catch(M){throw{e:M,type:u.JSON_PARSE_ERROR,file:'app.json',data:I}}let J=F.pages;if(!J||0===J.length)throw{type:u.JSON_ENTRANCE_ERROR,file:'app.json',data:I};let K=F.tabBar;if(K){let M=[];if('[object Array]'!=Object.prototype.toString.call(K.list))M.push('tabBar.list \u5E94\u4E3A\u6570\u7EC4');else if(!K.list||2>K.list.length)M.push('tabBar.list \u9700\u81F3\u5C11\u5305\u542B\u4E24\u4E2A\u9879\u76EE');else if(5{let C=B.hash;r.info(`projectManager.js project config change`),w[C]&&(w[C]={cache:{},wxmlFileList:{},jsFileList:{}})});var A=Object.assign({},m.prototype,{fileChange:function(B,C,D,E){this.emit('FILE_CHANGE',B,C,D,E)},stopWatch:function(){a()},restartWatch:function(){b(this.project)}});_exports={manager:A,getFile:function(C,D,E){b(C);let F=C.hash,G=w[F].cache;if(G[D])return void process.nextTick(()=>{E(G[D].error,G[D].data)});let H=k.join(C.projectpath,D);j.readFile(H,(I,J)=>{I||(G[D]={error:I,data:J}),E(I,J)})},getAllWXMLFileList:function(C,D){b(C);let E=C.hash,F=w[E].wxmlFileList;F.length?process.nextTick(()=>{D(null,F)}):d(C,D)},getAllJSFileList:function(C,D){b(C);let E=C.hash,F=w[E].jsFileList;F.length?process.nextTick(()=>{D(null,F)}):f(C,D)},getScripts:function(C,D){let E=C.project,F=E.hash;b(E);let G=decodeURIComponent(C.fileName),H=w[F].cache;if(H[G])return void process.nextTick(()=>{D(H[G].error,H[G].data)});let I=E.es6,J=C.needRequire,K=k.join(E.projectpath,G);j.readFile(K,'utf8',(L,M)=>{if(L)return void D({e:L,type:u.PAGEJS_FILE_ERROR,file:G});if(I){let N=k.basename(G);try{let O=q.transform(M,{presets:['es2015'],sourceMaps:'inline',sourceFileName:N,babelrc:!1});M=O.code.replace('sourceMappingURL=data:application/json;','sourceMappingURL=data:application/json;charset=utf-8;')}catch(O){return void D({e:O,sourceFileName:N},M)}}M=`define("${G}", function(require, module, exports, ${v}){ ${M}\n});`,J&&(M+=`require("${G}")`),H[G]={error:null,data:M},D(null,M)})},getAppJSONSync:h,getAppEntranceSync:function(C,D={}){let E=s.getBaseURL(C);if(D.justHost)return E;let F=h(C)||{},G=F.pages||[],H=`${G[0]}.html`,I=C.initPath;return I&&I.enable&&(H=`${I.page}.html?${I.query}`),l.resolve(E,H)},getPageJSONSync:g,getAppConfigJSONSync:function(C){let D=C.hash,E=w[D].cache,F='app-config.json',G=E[F];if(G)return G;G={};let H=h(C)||{};G.pages=H.pages||[],G.entryPagePath=`${H.pages[0]}.html`,G.debug=H.debug||!1,G.networkTimeout=H.networkTimeout||{},G.global={window:H.window||{}},G.page={};var I=H.pages;for(var J=0;J{return H===D});return-1!==G}}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){function e(){E.info("projectManager.js cleanProjects");for(var e in J)J[e].watcher&&J[e].watcher.close();J={}}function t(a){var n=a.hash;if(!J[n]){B.project=a,Object.keys(J).length>L&&e(),E.info("manager.js initProject projectid "+a.projectid);var i={cache:{},wxmlFileList:[],jsFileList:[]};J[n]=i,i.watcher=O.watch(a.projectpath,{ignored:[/node_modules/],ignoreInitial:!0,ignorePermissionErrors:!0,followSymlinks:!0,interval:1e3,binaryInterval:1e3}).on("all",function(e,t,n){var i=S.extname(t);F.whiteFileExtName[i]&&(t=S.relative(a.projectpath,t),r(a,e,t,n))}),i.watcher.on("error",function(r){r&&!q&&(E.error("projectManager.js obj.watcher error "+r.toString()),q=!0,e(),t(a))}),_.setProjectExtAppid(n,d(a))}}function r(e,t,r,i){var o=e.hash,c=J[o].cache;r=r.replace(/\\/g,"/"),"app.json"!==r&&"ext.json"!==r||(J[o].cache={},"ext.json"===r&&_.setProjectExtAppid(o,d(e))),r&&c[r]&&(delete c[r],delete c["app-config.json"]);var s=S.extname(r);".wxml"===s?(clearTimeout(v),J[o].wxmlFileList=[],v=setTimeout(function(){a(e)},20)):".js"===s&&(clearTimeout(b),J[o].jsFileList=[],b=setTimeout(function(){n(e)},20)),B.fileChange(e,t,r,i)}function a(e,t){try{var r=w.sync("./**/*.wxml",{nodir:!0,cwd:e.projectpath,ignore:["node_modules/**/*"],nosort:!0,strict:!1,silent:!0}),a=e.hash;J[a].wxmlFileList=r,t&&t(null,r)}catch(e){E.error("projectManager.js findAllWXMLFiles "+e.toString()),t&&t(e,[])}}function n(e,t){try{var r=w.sync("**/*.js",{nodir:!0,cwd:e.projectpath,ignore:["node_modules/**/*"],nosort:!0,strict:!1,silent:!0}),a=e.hash;J[a].jsFileList=r,t&&t(null,r)}catch(e){E.error("projectManager.js findAllJSFiles "+e.toString()),t&&t(e,[])}}function i(e,r){var a=e.project,n=a.hash;t(a);var i=decodeURIComponent(e.fileName),o=J[n].cache;if(o[i])return void process.nextTick(function(){r(o[i].error,o[i].data)});var c=a.es6,s=e.needRequire,l=S.join(a.projectpath,i);m.readFile(l,"utf8",function(e,t){if(e)return void r({e:e,type:P.PAGEJS_FILE_ERROR,file:i});if(c){var a=S.basename(i);try{var n=R.transform(t,{presets:["es2015"],sourceMaps:"inline",sourceFileName:a,babelrc:!1});t=n.code.replace("sourceMappingURL=data:application/json;","sourceMappingURL=data:application/json;charset=utf-8;")}catch(e){var l=N(t,e.loc.line,e.loc.column>0?e.loc.column:1);return void r({msg:e.toString()+"\n"+l,sourceFileName:a},t)}}t='define("'+i+'", function(require, module, exports, '+A+"){ "+t+"\n});",s&&(t+='require("'+i+'")'),o[i]={error:null,data:t},r(null,t)})}function o(e,r,a){t(e);var n=e.hash,i=J[n].cache;if(i[r])return void process.nextTick(function(){a(i[r].error,i[r].data)});var o=S.join(e.projectpath,r);m.readFile(o,function(e,t){e||(i[r]={error:e,data:t}),a(e,t)})}function c(e,r){t(e);var n=e.hash,i=J[n].wxmlFileList;i.length?process.nextTick(function(){r(null,i)}):a(e,r)}function s(e,r){t(e);var a=e.hash,i=J[a].jsFileList;i.length?process.nextTick(function(){r(null,i)}):n(e,r)}function l(e,r){t(e);var a=e.hash,n=x.parse(r),i=n.pathname.replace(/^\//,""),o=S.extname(i),c=o?i.replace(o,".json"):i+".json",s=J[a].cache;if(s[c])return s[c];var l=e.projectpath,p=u(e),f=h(e)||{},g=S.join(l,c),j=m.existsSync(g),d=f&&f.extEnable&&f.extPages&&f.extPages[r],v={};if(j){var b=m.readFileSync(g,"utf8");try{v=JSON.parse(b)}catch(e){throw{e:e,data:b,type:P.JSON_PARSE_ERROR,file:c}}}return s[c]=Object.assign({},p.window,v,d?f.extPages[r]:{}),s[c]}function p(e){var t=e.hash,r=J[t].cache,a="app-config.json",n=r[a];if(n)return n;n={};var i=u(e)||{};n.pages=i.pages||[],n.entryPagePath=i.pages[0]+".html",n.debug=i.debug||!1,n.networkTimeout=i.networkTimeout||{},n.global={window:i.window||{}},n.customClose=new Boolean(i.customClose),n.ext=i.ext||{},n.extAppid=i.extAppid||"",n.page={};for(var o=i.pages,c=0;c5)g.push("tabBar.list 不能超过 5 个配置项");else for(var j=0;j=2?g.push("tabBar.list["+j+"].pagePath 不应该包含'?'"):v.split(".").length>=2&&g.push("tabBar.list["+j+"].pagePath 不应该包含'.'"):g.push("tabBar.list["+j+"].pagePath 需为 String")}else g.push("tabBar.list["+j+"] 需为 Object")}if(g.length>0)throw{type:P.JSON_CONTENT_ERROR,file:"app.json",data:g.join("\n")}}return i.window||(i.window={}),n[a]=i,i}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=F.getBaseURL(e);if(t.justHost)return r;var a=u(e)||{},n=a.pages||[],i=n[0]+".html",o=e.initPath;if(o&&o.enable){var c=o.page||n[0];i=c+".html?"+o.query}return x.resolve(r,i)}function g(e,t){var r=u(e),a=r.pages||[];t=t.replace(/\\/g,"/");var n=a.findIndex(function(e){return e===t});return n!==-1}function j(e,t){for(var r=S.resolve(t),a=u(e),n=a.tabBar||{},i=n.list||[],o=0;o/g)||[],j=[];return i.forEach(k=>{let l=k.match(/src="(.*?)"/),n=l?l[1]:'';n&&(!/$\.wxml/.test(n)&&(n+='.wxml'),j.push(n))}),j},_exports.getFileNameFromUrl=function(h,i){return this.getFileRelativePath(h,i)},_exports.getPageCssFiles=function(h,i){let j=this.getFileRelativePath(h,i),k=j.replace(/\..*$/g,'.wxss');return b.existsSync(a.join(i.projectpath,k))?a.parse(k).base:''},_exports.getProjectStorage=function(h){let i=h.appid,j=h.appname,k=g.getUserInfo(),l=k?k.openid:'unknow',n=a.join(f.WeappStorage,`${i}_${j}_${l}.data.json`),o;try{o=b.readFileSync(n,'utf8')}catch(p){o='{}'}return JSON.parse(o)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function init(){var e=require("path"),t=require("fs"),r=require("url"),o=require("../../stores/projectStores.js"),i=(require("../../config/config.js"),require("../../config/dirConfig.js")),s=require("../../stores/windowStores.js");_exports={},_exports.noBrowser=["window","document","frames","self","location","navigator","localStorage","history","Caches","screen","alert","confirm","prompt","fetch","XMLHttpRequest","WebSocket","webkit","WeixinJSCore","WeixinJSBridge","Reporter","print"],_exports.whiteFileExtName={".wxml":!0,".wxss":!0,".png":!0,".jpg":!0,".jpeg":!0,".gif":!0,".svg":!0,".js":!0,".json":!0},_exports.getBaseURL=function(e){return"http://"+e.hash+".debug.open.weixin.qq.com/"},_exports.getUrlFromFilePath=function(e,t){return _exports.getBaseURL(e)+t},_exports.getProjectHashFromURL=function(e){var t=e.replace(/https?:\/\//,"").split(".");return t[0]},_exports.getProject=function(e){var t=this.getProjectHashFromURL(e);return o.getProjectByHash(t)},_exports.getFileRelativePath=function(e,t){var o=r.parse(e),i=o.pathname||"";if(i=i.replace(/^\//,""),""===i){var s=void 0;try{s=_exports.getProjectConfig(t)}catch(e){return""}var n=s.pages||[];return n[0]?n[0]+".wxml":"index.wxml"}return i.replace(/\.html$/,".wxml")},_exports.getFilePath=function(t,r){var o=this.getFileRelativePath(t,r),i=r.projectpath;return e.join(i,o)},_exports.isWxmlFile=function(e){return/\.wxml$/.test(e)},_exports.isWxssFile=function(e){return/\.wxss$/.test(e)},_exports.isWxmlURL=function(t){var o=r.parse(t),i=o.pathname,s=e.extname(i);return""===s||".html"===s||".wxml"===s},_exports.getWxImports=function(e){var t=e.match(/\/g)||[],r=[];return t.forEach(function(e){var t=e.match(/src="(.*?)"/),o=t?t[1]:"";o&&(/$\.wxml/.test(o)||(o+=".wxml"),r.push(o))}),r},_exports.getFileNameFromUrl=function(e,t){return this.getFileRelativePath(e,t)},_exports.getPageCssFiles=function(r,o){var i=this.getFileRelativePath(r,o),s=e.basename(i),n=e.dirname(i),a=e.extname(i),p=e.join(n,s.replace(a,".wxss"));return t.existsSync(e.join(o.projectpath,p))?e.parse(p).base:""},_exports.getProjectStorage=function(r){var o=r.appid,n=r.appname,a=s.getUserInfo(),p=a?a.openid:"unknow",c=e.join(i.WeappStorage,o+"_"+n+"_"+p+".data.json"),u=void 0;try{u=t.readFileSync(c,"utf8")}catch(e){u="{}"}return JSON.parse(u)}}var _exports;init(),module.exports=_exports; \ No newline at end of file diff --git a/app/dist/weapp/utils/vendorManager.js b/app/dist/weapp/utils/vendorManager.js index 1cd628fb..f32fbf09 100644 --- a/app/dist/weapp/utils/vendorManager.js +++ b/app/dist/weapp/utils/vendorManager.js @@ -1 +1 @@ -'use strict';var _exports;function init(){function a(){for(let D in f.info(`vendorManager.js begin init`),t)if(!z[D]){let E=h.join(q,D),F=h.join(o,D),G=i.readFileSync(E);y[D]=G,i.writeFileSync(F,G)}else{let E=m?D:`${D}.exe`,F=h.join(q,E),G=h.join(o,E),H=i.readFileSync(F);i.writeFileSync(G,H,{mode:511})}t.appVersion=u;let C=JSON.stringify(t);i.writeFileSync(p,C),x=t,f.info(`vendorManager.js end init with config ${C}`)}function b(C){B.forEach(D=>{let E=x[D],F=C[D];if(E{if(!H){try{if(!z[D])y[D]=J.toString(),A.vendorChange(D,y[D]),i.writeFileSync(h.join(o,D),J),x[D]=F,i.writeFileSync(p,JSON.stringify(x),'utf8');else{let K=m?h.join(o,D):h.join(o,`${D}.exe`);i.writeFileSync(K,J,{mode:511}),x[D]=F,i.writeFileSync(p,JSON.stringify(x),'utf8')}clearTimeout(v),w.push(D),v=setTimeout(()=>{g.notifications({title:'\u57FA\u7840\u7EC4\u4EF6\u5E93\u66F4\u65B0\u5566',message:`这次更新的是 \n ${w.join(',')}`,buttons:[{title:'\u67E5\u770B\u66F4\u65B0\u65E5\u5FD7'}]},K=>{0===K&&nw.Shell.openExternal('https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html')}),w=[]},5000)}catch(K){f.error(`vendorManager.js end catch ${JSON.stringify(K)}`)}f.info(`vendorManager.js end up ${D}`)}else f.error(`vendorManager.js end error ${JSON.stringify(H)}`)})}})}const c=global.appConfig.isDev,d=require('request');require('glob'),require('crypto');const f=require('../../common/log/log.js');require('../../utils/tools.js');const g=require('../../utils/notifyManager.js');require('mkdir-p');const h=require('path'),i=require('fs'),j=require('events').EventEmitter,k=require('../../config/urlConfig.js'),l=require('../../config/dirConfig.js'),m='linux'===process.platform,n=k.downloadRedirectURL+(m?'?os=linux':'?os=win'),o=l.WeappVendor,p=h.join(o,'version.json'),q=c?h.join(__dirname,'../vendor/'):h.join(__dirname,'../onlinevendor/'),r=c?h.join(q,'config.json'):h.join(q,'version.json');var s=i.readFileSync(r,'utf8'),t=JSON.parse(s),u=global.appVersion,v,w=[],x,y={};const z={wcc:!0,wcsc:!0,'wcc.exe':!0,'wcsc.exe':!0};if(!c)try{if(x=JSON.parse(i.readFileSync(p,'utf8')),x.appVersion!==u)f.info(`vendorManager.js get appVersion is ${x.appVersion} , currentAppversion is ${u}`),a();else for(let C in x)if(!z[C]&&'appVersion'!==C){let D=h.join(o,C);y[C]=i.readFileSync(D,'utf8')}}catch(C){f.error(`vendorManager.js ${C.toString()}`),a()}var A=Object.assign({},j.prototype,{vendorChange:function(C,D){this.emit('VENDOR_CHANGE',C,D)}});const B=['WAService.js','WAWebview.js','wcc','wcsc'];_exports={check:C=>{c||b(C)},getFile:C=>{return c?i.readFileSync(h.join(q,C),'utf8'):y[C]},manager:A}}init(),module.exports=_exports; +"use strict";function init(){function e(){s.info("vendorManager.js begin init");for(var e in m)if(x[e]){var n=g?e:e+".exe",i=c.join(w,n),o=c.join(j,n),t=f.readFileSync(i);f.writeFileSync(o,t,{mode:511})}else{var a=c.join(w,e),l=c.join(j,e),u=f.readFileSync(a);F[e]=u,f.writeFileSync(l,u)}m.appVersion=q;var d=JSON.stringify(m);f.writeFileSync(v,d),r=m,s.info("vendorManager.js end init with config "+d)}function n(e){O.forEach(function(n){var o=r[n],l=e[n];if(o{return N?void y(404,{},`do not find ${M}`):void y(200,{},O)})}else{z.appname.toLowerCase(),z.appid.toLowerCase();let M=z.hash,N;try{N=o.getAppConfigJSONSync(z)}catch(Q){return y(200,{},''),void setTimeout(()=>{let S,R=Q.type;R===b?S=t.parseJsonParseErr(Q):R===d?S=t.parseJsonFileErr(Q):R===f?S=t.parseJsonEntranceErr(Q):R===g&&(S=t.parseJsonContentErr(Q)),s.showWeappError(Q.type,S)},200)}let O=q.getProjectConfig(z);N.projectConfig=O,N.appserviceConfig=p;let P=N.pages||[];if(C){let Q=require('./tpl/appserviceTpl.js'),R=`http://${M}.appservice.open.weixin.qq.com/`,S=[],T=[],U=[];o.getAllJSFileList(z,(V,W)=>{let X={};for(let Y=0,Z=P.length;Y__wxRoute = '${P[Y]}';__wxRouteBegin = true`),S.push(``),S.push(``)}for(let Y=0,Z=W.length;Y`):T.push(``))}S=T.concat(U).concat(S),a?(S.unshift(``),S.unshift(``),S.unshift(``),S.unshift(``)):S.unshift(``),S.unshift(``),N.app_nickname=z.app_nickname||z.appname,N.appname=z.appname,N.appid=z.appid,N.apphash=z.hash,N.isTourist=z.isTourist,N.platform='devtools',z.isTourist&&(N.userInfo=r.getUserInfo()),N.urlCheck=z.urlCheck,S.unshift(``),Q=Q.replace('',S.join('')),y(null,{},Q)})}else{let Q=x.replace(`http://${M}.appservice.open.weixin.qq.com/`,'');o.getScripts({project:z,fileName:Q,needRequire:'app.js'===Q||-1!==P.indexOf(Q.replace(/\.js/,''))},(R,S)=>{if(!R)y(null,{'Content-Type':'text/javascript; charset=UTF-8'},S);else if(!S)R.project=z,s.showWeappError(R.type,t.parseJsFileErr(R)),y(200,{},'');else{let T={file:R.sourceFileName,msg:R.e};y(null,{[c]:encodeURIComponent(JSON.stringify(T))},S)}})}}},_exports.getLocalIdResponse=function(x,y){if(u.isAppTmpPath(x)){let z=u.getRealPath(x);k.readFile(z,(A,B)=>{A?y(404,{'Weapp-Error':encodeURIComponent(A)},A.toString()):y(null,{},B)})}else y(404,{},`do not find ${x}`)},_exports.getResponse=function(x,y){h.getResponse(x,y)}}init(),module.exports=_exports; \ No newline at end of file +"use strict";function _defineProperty(e,r,s){return r in e?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s,e}function init(){var e=global.appConfig.isDev,r=require("../config/config.js"),s=r.JSON_PARSE_ERROR,i=r.ES6_ERROR,t=r.JSON_FILE_ERROR,n=r.JSON_ENTRANCE_ERROR,p=r.JSON_CONTENT_ERROR,a=require("./trans/transManager.js"),o=require("./utils/tools.js"),c=(require("async"),require("fs")),l=require("path"),u=require("url"),f=require("querystring"),g=require("./utils/vendorManager.js"),j=(require("glob"),require("./utils/projectManager.js")),h=require("../config/appserviceConfig.js"),v=require("../stores/projectStores.js"),d=require("../stores/windowStores.js"),_=require("../actions/windowActions.js"),q=require("./utils/parseErr.js"),R=require("../utils/file.js"),w=require("../config/sceneConfig.js"),E=w.defaultScene,m=(require("./tpl/errorTpl.js"),require("./tpl/appserviceErrorTpl.js"),l.join(__dirname,"appservice/asdebug.js")),S=c.readFileSync(m,"utf8");o.noBrowser.join(",");_exports.getAppservice=function(r,a){var R=o.getProject(r),w=u.parse(r),m=w.pathname,P=/appservice$/.test(m),C=/appservice-sdk\.js$/.test(m),y=/asdebug\.js$/.test(m),x=/ascheck\.js$/.test(m),F=/webnode\.js$/.test(m),O=/reporter-sdk\.js/.test(m),b=/app_service_engine\.js/.test(m),J=(/\.js$/.test(m),/\.js\.map$/.test(m)),N=/WAService\.js/.test(m),T=/favicon\.ico$/.test(m),k=/hls\.js/.test(m),A=/webview-engine\.js/.test(m);if(T)a(200,{},"");else if(N)a(null,{},g.getFile("WAService.js"));else if(O)a(null,{},g.getFile("reporter-sdk.js"));else if(b)a(null,{},g.getFile("app_service_engine.js"));else if(C)a(null,{},g.getFile("appservice-sdk.js"));else if(k)a(null,{},g.getFile("hls.js"));else if(A)a(null,{},g.getFile("webview-engine.js"));else if(y)a(null,{},S);else if(x)a(null,{},asCheck);else if(F)a(null,{},g.getFile("webnode.js"));else if(J){var I=l.join(R.projectpath,m);c.readFile(I,function(e,r){return e?void a(404,{},"do not find "+I):void a(200,{},r)})}else{var $=(R.appname.toLowerCase(),R.appid.toLowerCase(),R.hash),D=void 0;try{D=j.getAppConfigJSONSync(R)}catch(e){return a(200,{},""),void setTimeout(function(){var r=e.type,i=void 0;r===s?i=q.parseJsonParseErr(e):r===t?i=q.parseJsonFileErr(e):r===n?i=q.parseJsonEntranceErr(e):r===p&&(i=q.parseJsonContentErr(e)),_.showWeappError(e.type,i)},200)}var L=v.getProjectConfig(R);D.projectConfig=L,D.appserviceConfig=h;var W=D.pages||[];if(P){var B=require("./tpl/appserviceTpl.js"),U="http://"+$+".appservice.open.weixin.qq.com/",M=[],z=[],G=[];j.getAllJSFileList(R,function(r,s){for(var i={},t=0,n=W.length;t__wxRoute = '"+W[t]+"';__wxRouteBegin = true"),M.push(''),M.push('")}for(var o=0,c=s.length;o'):z.push(''))}M=z.concat(G).concat(M),e?(M.unshift(''),M.unshift(''),M.unshift(''),M.unshift('')):M.unshift(''),M.unshift(''),D.appname=R.appname,D.app_nickname=R.app_nickname||R.appname,D.appid=R.appid,D.apphash=R.hash,D.isTourist=R.isTourist,D.platform="devtools",R.isTourist&&(D.userInfo=d.getUserInfo()),D.urlCheck=R.urlCheck;var u=D.entryPagePath.replace(/\.html$/,""),g={},j=E,h={};if(R.initPath.enable){u=R.initPath.page||u,g=f.parse(R.initPath.query||""),j=R.initPath.scene||E,R.initPath.appid&&(h.appId=R.initPath.appid);var v={};if(R.initPath.referData){try{v=JSON.parse(R.initPath.referData)}catch(e){M.push(''),v={}}h.extraData=v}}D.appLaunchInfo={referrerInfo:h,path:u,scene:j,query:g},M.unshift(""),B=B.replace("",M.join("")),a(null,{},B)})}else{var H=r.replace("http://"+$+".appservice.open.weixin.qq.com/","");j.getScripts({project:R,fileName:H,needRequire:"app.js"===H||W.indexOf(H.replace(/\.js/,""))!==-1},function(e,r){if(e)if(r){var s={file:e.sourceFileName,msg:e.msg};a(null,_defineProperty({},i,encodeURIComponent(JSON.stringify(s))),r)}else e.project=R,_.showWeappError(e.type,q.parseJsFileErr(e)),a(200,{},"");else a(null,{"Content-Type":"text/javascript; charset=UTF-8"},r)})}}},_exports.getLocalIdResponse=function(e,r){if(R.isAppTmpPath(e)){var s=R.getRealPath(e);c.readFile(s,function(e,s){e?r(404,{"Weapp-Error":encodeURIComponent(e)},e.toString()):r(null,{},s)})}else r(404,{},"do not find "+e)},_exports.getResponse=function(e,r){a.getResponse(e,r)}}var _exports={};init(),module.exports=_exports; \ No newline at end of file diff --git a/app/images/delete_white.png b/app/images/delete_white.png new file mode 100644 index 00000000..ee7b887d Binary files /dev/null and b/app/images/delete_white.png differ diff --git a/app/images/delete_white@2x.png b/app/images/delete_white@2x.png new file mode 100644 index 00000000..1882fc98 Binary files /dev/null and b/app/images/delete_white@2x.png differ diff --git a/app/images/icon/arrow-down.png b/app/images/icon/arrow-down.png new file mode 100644 index 00000000..1dac08bf Binary files /dev/null and b/app/images/icon/arrow-down.png differ diff --git a/app/images/icon/arrow-down@2x.png b/app/images/icon/arrow-down@2x.png new file mode 100644 index 00000000..590ca86c Binary files /dev/null and b/app/images/icon/arrow-down@2x.png differ diff --git a/app/images/icon/arrow-left.png b/app/images/icon/arrow-left.png new file mode 100644 index 00000000..6f6a5bfd Binary files /dev/null and b/app/images/icon/arrow-left.png differ diff --git a/app/images/icon/arrow-left@2x.png b/app/images/icon/arrow-left@2x.png new file mode 100644 index 00000000..cfde80b8 Binary files /dev/null and b/app/images/icon/arrow-left@2x.png differ diff --git a/app/images/icon/backstage.png b/app/images/icon/backstage.png new file mode 100644 index 00000000..c0c88a26 Binary files /dev/null and b/app/images/icon/backstage.png differ diff --git a/app/images/icon/backstage@2x.png b/app/images/icon/backstage@2x.png new file mode 100644 index 00000000..446ff04a Binary files /dev/null and b/app/images/icon/backstage@2x.png differ diff --git a/app/images/icon/bars.png b/app/images/icon/bars.png new file mode 100644 index 00000000..e9e1d111 Binary files /dev/null and b/app/images/icon/bars.png differ diff --git a/app/images/icon/bars@2x.png b/app/images/icon/bars@2x.png new file mode 100644 index 00000000..4a8bea7f Binary files /dev/null and b/app/images/icon/bars@2x.png differ diff --git a/app/images/icon/cache.png b/app/images/icon/cache.png new file mode 100644 index 00000000..bb2b2a59 Binary files /dev/null and b/app/images/icon/cache.png differ diff --git a/app/images/icon/cache@2x.png b/app/images/icon/cache@2x.png new file mode 100644 index 00000000..49132b46 Binary files /dev/null and b/app/images/icon/cache@2x.png differ diff --git a/app/images/icon/caret.png b/app/images/icon/caret.png new file mode 100644 index 00000000..06c4bef3 Binary files /dev/null and b/app/images/icon/caret.png differ diff --git a/app/images/icon/caret@2x.png b/app/images/icon/caret@2x.png new file mode 100644 index 00000000..b1999f4d Binary files /dev/null and b/app/images/icon/caret@2x.png differ diff --git a/app/images/icon/check-square.png b/app/images/icon/check-square.png new file mode 100644 index 00000000..e45bab01 Binary files /dev/null and b/app/images/icon/check-square.png differ diff --git a/app/images/icon/check-square@2x.png b/app/images/icon/check-square@2x.png new file mode 100644 index 00000000..2d2fc578 Binary files /dev/null and b/app/images/icon/check-square@2x.png differ diff --git a/app/images/icon/circle-o.png b/app/images/icon/circle-o.png new file mode 100644 index 00000000..4d0fcd79 Binary files /dev/null and b/app/images/icon/circle-o.png differ diff --git a/app/images/icon/circle-o@2x.png b/app/images/icon/circle-o@2x.png new file mode 100644 index 00000000..6cac150c Binary files /dev/null and b/app/images/icon/circle-o@2x.png differ diff --git a/app/images/icon/compile.png b/app/images/icon/compile.png new file mode 100644 index 00000000..f4d54670 Binary files /dev/null and b/app/images/icon/compile.png differ diff --git a/app/images/icon/compile@2x.png b/app/images/icon/compile@2x.png new file mode 100644 index 00000000..cf864f6e Binary files /dev/null and b/app/images/icon/compile@2x.png differ diff --git a/app/images/icon/cross.png b/app/images/icon/cross.png new file mode 100644 index 00000000..2909e57d Binary files /dev/null and b/app/images/icon/cross.png differ diff --git a/app/images/icon/cross@2x.png b/app/images/icon/cross@2x.png new file mode 100644 index 00000000..2901c314 Binary files /dev/null and b/app/images/icon/cross@2x.png differ diff --git a/app/images/icon/debug.png b/app/images/icon/debug.png new file mode 100644 index 00000000..073a5643 Binary files /dev/null and b/app/images/icon/debug.png differ diff --git a/app/images/icon/debug@2x.png b/app/images/icon/debug@2x.png new file mode 100644 index 00000000..2f8b222b Binary files /dev/null and b/app/images/icon/debug@2x.png differ diff --git a/app/images/icon/dot-circle-o.png b/app/images/icon/dot-circle-o.png new file mode 100644 index 00000000..7be96008 Binary files /dev/null and b/app/images/icon/dot-circle-o.png differ diff --git a/app/images/icon/dot-circle-o@2x.png b/app/images/icon/dot-circle-o@2x.png new file mode 100644 index 00000000..e2736679 Binary files /dev/null and b/app/images/icon/dot-circle-o@2x.png differ diff --git a/app/images/icon/dots-black.png b/app/images/icon/dots-black.png new file mode 100644 index 00000000..afcb6550 Binary files /dev/null and b/app/images/icon/dots-black.png differ diff --git a/app/images/icon/dots-black@2x.png b/app/images/icon/dots-black@2x.png new file mode 100644 index 00000000..da1939c7 Binary files /dev/null and b/app/images/icon/dots-black@2x.png differ diff --git a/app/images/icon/dots-white.png b/app/images/icon/dots-white.png new file mode 100644 index 00000000..28757135 Binary files /dev/null and b/app/images/icon/dots-white.png differ diff --git a/app/images/icon/dots-white@2x.png b/app/images/icon/dots-white@2x.png new file mode 100644 index 00000000..4874f8ff Binary files /dev/null and b/app/images/icon/dots-white@2x.png differ diff --git a/app/images/icon/editor.png b/app/images/icon/editor.png new file mode 100644 index 00000000..33885b63 Binary files /dev/null and b/app/images/icon/editor.png differ diff --git a/app/images/icon/editor@2x.png b/app/images/icon/editor@2x.png new file mode 100644 index 00000000..c1d92a94 Binary files /dev/null and b/app/images/icon/editor@2x.png differ diff --git a/app/images/icon/file.png b/app/images/icon/file.png new file mode 100644 index 00000000..041266ef Binary files /dev/null and b/app/images/icon/file.png differ diff --git a/app/images/icon/file@2x.png b/app/images/icon/file@2x.png new file mode 100644 index 00000000..f5df5538 Binary files /dev/null and b/app/images/icon/file@2x.png differ diff --git a/app/images/icon/folder-open.png b/app/images/icon/folder-open.png new file mode 100644 index 00000000..dcf5f713 Binary files /dev/null and b/app/images/icon/folder-open.png differ diff --git a/app/images/icon/folder-open@2x.png b/app/images/icon/folder-open@2x.png new file mode 100644 index 00000000..8ac04f2b Binary files /dev/null and b/app/images/icon/folder-open@2x.png differ diff --git a/app/images/icon/folder.png b/app/images/icon/folder.png new file mode 100644 index 00000000..16aa703b Binary files /dev/null and b/app/images/icon/folder.png differ diff --git a/app/images/icon/folder@2x.png b/app/images/icon/folder@2x.png new file mode 100644 index 00000000..0c68fd50 Binary files /dev/null and b/app/images/icon/folder@2x.png differ diff --git a/app/images/icon/logo.png b/app/images/icon/logo.png new file mode 100644 index 00000000..e8dbf5ea Binary files /dev/null and b/app/images/icon/logo.png differ diff --git a/app/images/icon/logo@2x.png b/app/images/icon/logo@2x.png new file mode 100644 index 00000000..2dd81a97 Binary files /dev/null and b/app/images/icon/logo@2x.png differ diff --git a/app/images/icon/music.png b/app/images/icon/music.png new file mode 100644 index 00000000..368eade9 Binary files /dev/null and b/app/images/icon/music.png differ diff --git a/app/images/icon/music@2x.png b/app/images/icon/music@2x.png new file mode 100644 index 00000000..b0d455ad Binary files /dev/null and b/app/images/icon/music@2x.png differ diff --git a/app/images/icon/pause.png b/app/images/icon/pause.png new file mode 100644 index 00000000..5468bd75 Binary files /dev/null and b/app/images/icon/pause.png differ diff --git a/app/images/icon/pause@2x.png b/app/images/icon/pause@2x.png new file mode 100644 index 00000000..1241a4e7 Binary files /dev/null and b/app/images/icon/pause@2x.png differ diff --git a/app/images/icon/play.png b/app/images/icon/play.png new file mode 100644 index 00000000..41217587 Binary files /dev/null and b/app/images/icon/play.png differ diff --git a/app/images/icon/play@2x.png b/app/images/icon/play@2x.png new file mode 100644 index 00000000..fa25abfe Binary files /dev/null and b/app/images/icon/play@2x.png differ diff --git a/app/images/icon/selected-bars.png b/app/images/icon/selected-bars.png new file mode 100644 index 00000000..b8ad8720 Binary files /dev/null and b/app/images/icon/selected-bars.png differ diff --git a/app/images/icon/selected-bars@2x.png b/app/images/icon/selected-bars@2x.png new file mode 100644 index 00000000..cc7b7993 Binary files /dev/null and b/app/images/icon/selected-bars@2x.png differ diff --git a/app/images/icon/selected-debug.png b/app/images/icon/selected-debug.png new file mode 100644 index 00000000..c39fe8df Binary files /dev/null and b/app/images/icon/selected-debug.png differ diff --git a/app/images/icon/selected-debug@2x.png b/app/images/icon/selected-debug@2x.png new file mode 100644 index 00000000..dbe2c5b8 Binary files /dev/null and b/app/images/icon/selected-debug@2x.png differ diff --git a/app/images/icon/selected-editor.png b/app/images/icon/selected-editor.png new file mode 100644 index 00000000..45c6b0db Binary files /dev/null and b/app/images/icon/selected-editor.png differ diff --git a/app/images/icon/selected-editor@2x.png b/app/images/icon/selected-editor@2x.png new file mode 100644 index 00000000..6b9a5412 Binary files /dev/null and b/app/images/icon/selected-editor@2x.png differ diff --git a/app/images/icon/selected-file.png b/app/images/icon/selected-file.png new file mode 100644 index 00000000..24fb6632 Binary files /dev/null and b/app/images/icon/selected-file.png differ diff --git a/app/images/icon/selected-file@2x.png b/app/images/icon/selected-file@2x.png new file mode 100644 index 00000000..bfd675d4 Binary files /dev/null and b/app/images/icon/selected-file@2x.png differ diff --git a/app/images/icon/selected-trash.png b/app/images/icon/selected-trash.png new file mode 100644 index 00000000..2b46d51e Binary files /dev/null and b/app/images/icon/selected-trash.png differ diff --git a/app/images/icon/selected-trash@2x.png b/app/images/icon/selected-trash@2x.png new file mode 100644 index 00000000..01769483 Binary files /dev/null and b/app/images/icon/selected-trash@2x.png differ diff --git a/app/images/icon/sign-out.png b/app/images/icon/sign-out.png new file mode 100644 index 00000000..5cc2de0f Binary files /dev/null and b/app/images/icon/sign-out.png differ diff --git a/app/images/icon/sign-out@2x.png b/app/images/icon/sign-out@2x.png new file mode 100644 index 00000000..d724fc7e Binary files /dev/null and b/app/images/icon/sign-out@2x.png differ diff --git a/app/images/icon/square-o.png b/app/images/icon/square-o.png new file mode 100644 index 00000000..922b49a9 Binary files /dev/null and b/app/images/icon/square-o.png differ diff --git a/app/images/icon/square-o@2x.png b/app/images/icon/square-o@2x.png new file mode 100644 index 00000000..ec5c3be4 Binary files /dev/null and b/app/images/icon/square-o@2x.png differ diff --git a/app/images/icon/square.png b/app/images/icon/square.png new file mode 100644 index 00000000..922b49a9 Binary files /dev/null and b/app/images/icon/square.png differ diff --git a/app/images/icon/square@2x.png b/app/images/icon/square@2x.png new file mode 100644 index 00000000..ec5c3be4 Binary files /dev/null and b/app/images/icon/square@2x.png differ diff --git a/app/images/icon/times-green.png b/app/images/icon/times-green.png new file mode 100644 index 00000000..837370a9 Binary files /dev/null and b/app/images/icon/times-green.png differ diff --git a/app/images/icon/times-green@2x.png b/app/images/icon/times-green@2x.png new file mode 100644 index 00000000..3a9179c2 Binary files /dev/null and b/app/images/icon/times-green@2x.png differ diff --git a/app/images/icon/times.png b/app/images/icon/times.png new file mode 100644 index 00000000..08a66111 Binary files /dev/null and b/app/images/icon/times.png differ diff --git a/app/images/icon/times@2x.png b/app/images/icon/times@2x.png new file mode 100644 index 00000000..5ba5926a Binary files /dev/null and b/app/images/icon/times@2x.png differ diff --git a/app/images/icon/trash.png b/app/images/icon/trash.png new file mode 100644 index 00000000..614abbe6 Binary files /dev/null and b/app/images/icon/trash.png differ diff --git a/app/images/icon/trash@2x.png b/app/images/icon/trash@2x.png new file mode 100644 index 00000000..8db87582 Binary files /dev/null and b/app/images/icon/trash@2x.png differ diff --git a/app/style/app.css b/app/style/app.css index 66d4363b..21e0456a 100644 --- a/app/style/app.css +++ b/app/style/app.css @@ -1 +1 @@ -a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;text-decoration:none}a:visited{color:inherit}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif;color:#333}label{cursor:pointer}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}a{color:#586c94}body{font-size:14px}::-webkit-scrollbar{width:4px;height:6px}::-webkit-scrollbar-thumb{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#c3c3c3}::-webkit-scrollbar-track{background-color:#e4e4e4}.main,body,body>div,body>div>div,html{height:100%}body{line-height:1.6;color:#000;font-family:Helvetica Neue,Helvetica,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;background-color:#f0f0f0;overflow:hidden}.main{flex-direction:column}.body,.main{display:flex}.body{position:relative;flex:1;border-top:1px solid #dbdbdb}.app-drag{-webkit-app-region:drag}.app-no-drag{-webkit-app-region:no-drag;cursor:pointer}.app-up-data{display:flex;justify-content:center;align-items:center}.about_control{display:flex;flex-direction:column}.about_wrap{display:flex;margin:10px 0 10px 50px}.menubar-wrapper{display:flex;padding:10px}.menubar{display:flex}.menubar-item{position:relative;padding:0 10px;color:#646464}.menubar-item-sub{position:absolute;top:100%;left:0;width:160px;z-index:10;display:flex;flex-direction:column;border:1px solid #c5c5c5;background-color:#f0f0f0}.menubar-item-sub-item{padding:3px 15px;color:#000;font-size:14px}.menubar-item-sub-item-sep{border-top:1px solid #c5c5c5}.titlebar{flex:1;text-align:center}.operation-area{display:flex}.operation-item{display:inline-block;margin:0 4px}.operation-close-icon{width:19px;height:19px;background:url(../images/closeD.png)}.operation-close-icon,.operation-max-icon{display:inline-block;vertical-align:middle}.operation-max-icon{width:20px;height:20px;background:url(../images/max.png)}.operation-recover-icon{background:url(../images/recover_grey.png)}.operation-min-icon,.operation-recover-icon{display:inline-block;width:20px;height:20px;vertical-align:middle}.operation-min-icon{background:url(../images/min.png)}.lunch-toolbar{display:flex;padding:5px 10px;cursor:pointer}.lunch-toolbar-win .create-toolbar-setting{margin-left:inherit}.lunch-toolbar-win .lunch-toolbar-close{margin-left:auto}.lunch-toolbar-close:hover .lunch-toolbar-close-icon{background:url(../images/close-hover.png) no-repeat}.lunch-toolbar-close-icon{display:inline-block;width:19px;height:19px;vertical-align:middle;background:url(../images/close.png)}.lunch-body{text-align:center}.lunch-logo-wrapper{margin-bottom:20px}.lunch-logo{display:inline-block;width:80px;height:80px;vertical-align:middle;background:url(../images/logo.png);background-size:cover}.lunch-name{color:#48c23d}.lunch-line{height:1px;margin:30px 0;background-color:#d8d8d8}.lunch-qrcode{margin-bottom:20px;display:flex;justify-content:center}.lunch-qrcode webview{width:100%;height:250px}.create-toolbar{padding:10px 10px 7px;overflow:hidden}.create-toolbar-win .create-toolbar-close{float:right}.create-toolbar-win .create-toolbar-setting{float:left;cursor:pointer}.create-toolbar-win .create-toolbar-back{float:left;cursor:pointer;margin-right:10px}.create-toolbar-close{float:left}.create-toolbar-close:hover .create-toolbar-close-icon{background:url(../images/close-hover.png) no-repeat}.create-toolbar-close:hover .create-toolbar-back-icon{display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backD.png)}.create-toolbar-close:hover span{color:#000}.create-toolbar-close span{display:inline-block;vertical-align:middle;margin-left:10px;color:#646464}.create-toolbar-back{float:right;color:#646464;font-size:12px;cursor:pointer}.create-toolbar-close-icon{display:inline-block;width:19px;height:19px;vertical-align:middle;background:url(../images/close.png)}.create-toolbar-setting-icon{display:inline-block;vertical-align:-6px;margin-left:5px;border:7px solid transparent;border-top-color:#9a9a9a}.create-toolbar-setting{margin-left:auto;color:#646464;font-size:12px;cursor:pointer}.create-toolbar-back:hover .create-toolbar-back-icon{display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backD.png)}.create-toolbar-back-icon{cursor:pointer;display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backG.png);vertical-align:-6px}.create-body{text-align:center}.create-avatar-wrapper{position:relative;margin-bottom:30px;display:inline-block}.create-avatar-toggle{position:absolute;right:0;bottom:0;z-index:3}.create-avatar-toggle:hover .create-avatar-toggle-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/trans_green.png)}.create-avatar-toggle-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/trans_grey.png)}.create-avatar{width:60px;height:60px;border-radius:50%;vertical-align:middle}.create-name{margin-bottom:40px;font-size:14px}.create-select-box{display:flex;width:400px;margin:0 auto 20px;padding:18px 20px;background-color:#fff;cursor:pointer;border-radius:2px;border:1px solid #fff;align-items:center}.create-select-box.create-select-box-active,.create-select-box:hover{border:1px solid #48c23d;background-color:#ecf8eb}.create-select-box.create-select-box-active .create-select-icon-new,.create-select-box:hover .create-select-icon-new{display:inline-block;width:36px;height:36px;vertical-align:middle;background:url(../images/newBD.png)}.create-select-icon-new{background:url(../images/newBG.png)}.create-select-icon-new,.create-select-icon-url{display:inline-block;width:36px;height:36px;vertical-align:middle}.create-select-icon-url{background:url(../images/url.png)}.create-select-content{flex:1;text-align:left}.create-select-title{font-size:14px}.create-select-desc{color:#646464;font-size:14px}.create-choose-wrapper{position:relative}.create-choose-wrapper:before{content:"";position:absolute;top:0;left:40px;right:40px;border-top:1px solid #d8d8d8}.create-choose-wrapper:after{content:"";position:absolute;bottom:0;left:40px;right:40px;border-bottom:1px solid #d8d8d8}.create-choose{padding:30px 0 15px;text-align:center;height:173px;overflow-y:auto;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.create-choose-item{display:inline-block;margin:0 15px 15px;cursor:pointer}.create-choose-item:hover .create-choose-icon{position:relative}.create-choose-item:hover .create-choose-icon:before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.2)}.create-choose-item:hover .create-choose-icon:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid #48c23d;border-radius:4px}.create-choose-item:hover .create-choose-name{color:#48c23d}.create-choose-item-new .create-choose-icon{border:1px dashed #888;padding:22px}.create-choose-item-new .create-choose-icon:after{display:none}.create-choose-icon{margin-bottom:10px;background-color:#fff;border-radius:4px}.create-choose-icon img{display:block;width:82px;height:82px;border-radius:4px}.create-choose-icon-new{display:inline-block;width:36px;height:36px;vertical-align:middle;background:url(../images/new.png)}.create-choose-name{color:#646464;text-align:center;text-overflow:ellipsis;overflow:hidden;width:82px;white-space:nowrap}.create-choose-url{margin-top:20px}.create-choose-btn-wrapper{position:relative;display:inline-block;margin:0 auto;padding:7px 25px;background-color:#fff;border-radius:4px;cursor:pointer;color:#888}.create-choose-btn-wrapper p{display:inline-block;vertical-align:middle;margin-left:6px}.create-choose-btn-wrapper:hover{background-color:#f0f0f0;color:#646464}.create-choose-btn-wrapper:hover:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid #48c23d;border-radius:4px}.create-choose-btn-wrapper:hover .create-choose-btn-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/url-small.png)}.create-choose-btn-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/url-small-hover.png)}.create-form{display:inline-block}.create-form-item{display:flex;margin-bottom:30px}.create-form-label{width:4em;margin-right:1em;text-align:right;padding-top:5px}.create-form-input-box{text-align:left}.create-form-input{width:372px;padding:2px 10px;border:1px solid #d8d8d8;border-radius:2px;outline:0;line-height:32px;font-size:14px}.create-form-input-with-pointer{cursor:pointer}.create-form-tips{color:#888}.create-form-tips,.create-form-tips-warn{font-size:14px;text-align:left;margin-top:10px}.create-form-tips-warn{color:#f55c23}.create-form-extra{margin-left:10px}.create-form-extra-button{display:inline-block;border:1px solid #d8d8d8;background-color:#fff;color:#000;padding:7px 20px;border-radius:2px}.create-form-extra-button:hover{background-color:#f0f0f0}.create-form-footer{margin-top:57px;padding:20px 0;border-top:1px solid #d8d8d8;text-align:right}.create-form-button-default{display:inline-block;border:1px solid #d8d8d8;background-color:#fff;color:#000;margin-right:10px;padding:5px 20px;border-radius:2px;min-width:100px;text-align:center}.create-form-button-default:hover{background-color:#f0f0f0}.create-form-button-primary{display:inline-block;background-color:#48c23d;color:#fff;margin-right:20px;padding:5px 20px;border-radius:2px;min-width:100px;text-align:center}.create-form-button-primary:hover{background-color:#2b9e20}.create-quick-checkbox{display:flex;margin-top:-27px;margin-left:67px;margin-bottom:0}.create-quick-checkbox input{margin-top:5px}.create-form-tourist{color:#48c23d;float:right}.create-tourist-icon-info{margin-left:5px;position:relative;display:inline-block;vertical-align:middle;width:16px;height:16px;background:url(../images/info_grey.png) no-repeat}.create-tourist-icon-info:hover{background:url(../images/info_dark.png) no-repeat}.create-tourist-icon-info:hover .create-tourist-popover{display:block}.create-tourist-popover{display:none;margin-top:10px;position:absolute;border-radius:2px;top:100%;right:-17px;padding:15px;background-color:#fff;width:200px;box-shadow:1px 2px 10px #ccc;color:#000}.create-tourist-popover:before{content:"";position:absolute;bottom:100%;right:20px;border:7px solid transparent;border-bottom-color:#ccc}.create-tourist-popover:after{content:"";position:absolute;bottom:100%;right:20px;border:7px solid transparent;border-bottom-color:#fff}.popup{display:none;width:600px;position:fixed;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:6}.popup-hd{padding:20px 0;text-align:center}.popup-bd{padding:20px 30px 40px;text-align:center}.popup-icon-info{width:24px;height:24px;background:url(../images/info.png)}.popup-desc,.popup-icon-info{display:inline-block;vertical-align:middle}.popup-desc{margin-left:10px;font-size:14px}.popup-ft{padding:20px 0;border-top:1px solid #d8d8d8;text-align:right}.popup-button-default{border:1px solid #d8d8d8;background-color:#fff;color:#000;border-radius:2px}.popup-button-default,.popup-button-primary{display:inline-block;margin:0 15px;padding:5px 20px}.popup-button-primary{background-color:#48c23d;color:#fff;border-radius:2px}.toolbar{display:flex;padding:10px 12px;background:#efefef}.toolbar-avatar,.toolbar-avatar-noproject{position:relative;cursor:pointer}.toolbar-avatar:before{content:"";position:absolute;left:-10px;top:-10px;right:-14px;bottom:-10px;background:#fff}.toolbar-avatar img{position:relative;display:block;width:30px;height:30px;border:1px solid #efefef;border-radius:50%}.toolbar-avatar-noproject{margin-right:11px}.toolbar-avatar-noproject:before{display:none}.toolbar-avatar-noproject img{position:relative;display:block;width:34px;height:34px;border:1px solid #efefef;border-radius:50%}.toolbar-profile{position:absolute;width:200px;top:0;left:100%;padding:40px 0;margin-left:10px;background-color:#fff;text-align:center;border:1px solid #d8d8d8;z-index:11;box-shadow:1px 3px 15px #909090}.toolbar-profile .toolbar-profile-avatar{display:block;width:60px;height:60px;margin:0 auto 10px;border-radius:50%}.toolbar-profile .toolbar-profile-nickname{font-size:14px;margin-bottom:30px}.toolbar-profile .toolbar-profile-username{font-size:12px;color:#646464;margin-bottom:20px}.toolbar-profile .toolbar-profile-button{display:block;width:80px;margin:0 auto;padding:3px 0;text-decoration:none;color:#000;border:1px solid #646464;border-radius:2px}.toolbar-profile .toolbar-profile-button:hover{background-color:#f0f0f0}.toolbar-profile:before{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#e6e6e6;margin-left:-19px}.toolbar-profile:after{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#fff;margin-left:-18px}.toolbar-projects{position:relative;display:flex;padding:1px;border-right:0;background:#fff;border-right:1px solid #efefef}.toolbar-projects-logo{display:block;width:28px;height:28px}.toolbar-projects-name{padding:0 6px;line-height:28px;font-size:12px}.toolbar-location{flex:1;display:flex;position:relative;margin-right:10px}.toolbar-location-focus{border:1px solid #48c23d}.toolbar-location-input{flex:1;width:100%;padding:0 15px;outline:0;border:0}.toolbar-location-refresh{width:40px;margin-right:1px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.toolbar-location-refresh-icon{display:inline-block;width:21px;height:18px;vertical-align:middle;background:url(../images/refreshG.png)}.toolbar-location-refresh-icon:hover{display:inline-block;width:21px;height:18px;vertical-align:middle;background:url(../images/refreshD.png)}.toolbar-location-history{width:40px;margin-right:2px;background:#fff;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center}.toolbar-location-history-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downG.png)}.toolbar-location-history-icon:hover{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downD.png)}.toolbar-clear{position:relative;padding:0 10px;line-height:30px;background:#fff;cursor:pointer}.toolbar-clear p{display:flex;align-items:center}.toolbar-clear-icon-up{background:url(../images/upD.png)}.toolbar-clear-icon-down,.toolbar-clear-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle}.toolbar-clear-icon-down{background:url(../images/downD.png)}.toolbar-clear-dropdown{position:absolute;top:100%;right:0;width:250px;background-color:#fff;z-index:6;border:1px solid #f0f0f0;box-shadow:2px 2px 10px #ccc}.toolbar-clear-dropdown-item{padding:10px;display:flex}.toolbar-clear-dropdown-item:hover{background-color:rgba(72,194,61,.1)}.toolbar-clear-dropdown-item p{flex:1}.toolbar-clear-dropdown-item span{font-size:14px;color:#48c23d}.toolbar-location-recommend{position:absolute;top:100%;left:0;width:100%;z-index:10;background-color:#fff;border:1px solid #d8d8d8;margin-top:10px}.toolbar-location-recommend-item{padding:5px 10px}.toolbar-location-recommend-item-selected{background-color:#4a90e2;color:#fff}.toolbar-location-recommend-item:hover{background-color:#e9e8e9}.mobile{flex:1;padding:60px 40px;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.mobile-hd{border-bottom:1px solid #ccc;display:flex;padding:40px 95px;width:700px;margin:0 auto 30px}.mobile-hd-item{flex:1;text-align:center}.mobile-hd-item-option input{position:absolute;left:-9999em}.mobile-hd-item-option input:checked+.mobile-radio{background:url(../images/radio-selected.png)}.mobile-hd-item-option input:checked+.mobile-radio,.mobile-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;vertical-align:-4px;margin-right:5px}.mobile-radio{background:url(../images/radio.png)}.mobile-bd-step{margin-bottom:40px}.mobile-bd-title{margin-bottom:15px}.mobile-bd-step-desc{color:#646464}.mobile-bd-type{display:flex;margin-bottom:6px}.mobile-bd-type:last-child{margin-bottom:15px}.mobile-bd-type-label input{position:absolute;left:-9999em}.mobile-bd-type-label input:checked+.mobile-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;background:url(../images/radio-selected.png);vertical-align:-4px;margin-right:5px}.mobile-bd-type-desc{color:#646464;margin-left:1em}.mobile-hd-item-logo-apple{display:inline-block;width:64px;height:64px;vertical-align:middle;background:url(../images/apple.png)}.mobile-hd-item-logo-android{display:inline-block;width:66px;height:64px;vertical-align:middle;background:url(../images/android.png)}.mobile-bd{width:700px;margin:0 auto}.mobile-bd a{color:#48c23d}.mobile-bd-step-img{margin-bottom:20px;display:inline-block;width:583px;height:247px;vertical-align:middle;background:url(../images/debug-step.png)}.mobile-ft{width:700px;margin:0 auto;border-top:1px solid #ccc;padding-top:30px;text-align:center}.mobile-debug-button{display:inline-block;padding:5px 32px;line-height:30px;background-color:#48c23d;border-radius:4px;color:#fff}.mobile-debug-button:hover{background-color:#2b9e20}.mobile-verify-x5-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.mobile-verify-x5{position:absolute;padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);background-color:#fff}.mobile-verify-x5-qrcode{display:block;width:300px;height:300px;margin:0 auto 15px}.edit,.mobile-verify-x5-tips{text-align:center}.edit{flex:1;background:#fff;border-left:1px solid #d8d8d8;margin-top:-52px}.sidebar{display:flex;flex-direction:column;background-color:#fff}.sidebar-item{display:block;padding:20px 13px;text-align:center;cursor:pointer;width:56px}.sidebar-item:hover{background:#ecf8eb}.sidebar-item.sidebar-item-active{background:#48c23d}.sidebar-item.sidebar-item-active .sidebar-item-label{color:#fff}.sidebar-item.sidebar-item-active .sidebar-item-icon-detail{display:inline-block;width:16px;height:13px;vertical-align:middle;background:url(../images/detailW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-debug{display:inline-block;width:20px;height:12px;vertical-align:middle;background:url(../images/decodeW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-test{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/testW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-publish{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/publishW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-retreat{display:inline-block;width:17px;height:14px;vertical-align:middle;background:url(../images/retreatW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-editor{display:inline-block;width:30px;height:28px;vertical-align:middle;background:url(../images/editor-highlight.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-delete{display:inline-block;width:16px;height:17px;vertical-align:middle;background:url(../images/deleteW.png)}.sidebar-item-sep{flex:1;position:relative;margin-bottom:10px}.sidebar-item-sep:before{content:"";position:absolute;left:10px;right:10px;bottom:0;border-top:1px solid #d8d8d8;z-index:3}.sidebar-item-sep:hover{background-color:#fff}.sidebar-item:last-child{margin-bottom:0}.sidebar-item-toolbar .sidebar-item{position:relative;background-color:#fff}.sidebar-item-toolbar .sidebar-item.sidebar-item-active{background:#fff}.sidebar-item-toolbar .sidebar-item.sidebar-item-active .sidebar-item-label{color:#48c23d}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-backward{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/backward_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-forward{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/forward_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-close{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/closeP_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-music{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/music_d.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-reset{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/reset_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-custom{display:inline-block;width:17px;height:6px;vertical-align:middle;background:url(../images/customize_green.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-cache{display:inline-block;width:28px;height:23px;vertical-align:middle;background:url(../images/cache_green.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-label{color:#48c23d}.sidebar-item-icon{margin-bottom:5px;display:block}.sidebar-item-icon img{display:block;width:32px;height:32px}.sidebar-item-icon-detail{display:inline-block;width:16px;height:13px;vertical-align:middle;background:url(../images/detailG.png)}.sidebar-item-icon-debug{height:12px;background:url(../images/decodeG.png)}.sidebar-item-icon-debug,.sidebar-item-icon-test{display:inline-block;width:20px;vertical-align:middle}.sidebar-item-icon-test{height:20px;background:url(../images/testG.png)}.sidebar-item-icon-publish{background:url(../images/publishG.png)}.sidebar-item-icon-music,.sidebar-item-icon-publish{display:inline-block;width:20px;height:20px;vertical-align:middle}.sidebar-item-icon-music{background:url(../images/music.png)}.sidebar-item-icon-retreat{display:inline-block;width:17px;height:14px;vertical-align:middle;background:url(../images/retreatG.png)}.sidebar-item-icon-delete{display:inline-block;width:16px;height:17px;vertical-align:middle;background:url(../images/deleteG.png)}.sidebar-item-icon-backward{background:url(../images/backward_grey.png)}.sidebar-item-icon-backward,.sidebar-item-icon-forward{display:inline-block;width:20px;height:20px;vertical-align:middle}.sidebar-item-icon-forward{background:url(../images/forward_grey.png)}.sidebar-item-icon-close{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/closeP_grey.png)}.sidebar-item-icon-editor{display:inline-block;width:30px;height:28px;vertical-align:middle;background:url(../images/editor.png)}.sidebar-item-icon-reset{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/reset_grey.png)}.sidebar-item-icon-custom{display:inline-block;width:17px;height:6px;vertical-align:middle;background:url(../images/customize_grey.png)}.sidebar-item-icon-cache{display:inline-block;width:28px;height:23px;vertical-align:middle;background:url(../images/cache.png)}.sidebar-item-label{display:block;color:#646464;font-size:12px}.common-dialog,.common-dialog-show{width:600px;position:absolute;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:9}.common-dialog-show{display:block}.common-dialog-hd{padding:20px 0;text-align:center}.common-dialog-bd{padding:20px 30px;text-align:center}.common-dialog-icon-info{background:url(../images/info.png) no-repeat;display:inline-block;width:24px;height:24px;vertical-align:middle;background:url(../images/info.png)}.common-dialog-form-title{margin-bottom:15px}.common-dialog-form-bd{font-size:0;margin-bottom:20px}.common-dialog-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.common-dialog-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 10px;padding:3px 20px;min-width:60px;border-radius:2px}.common-dialog-button-default:hover{background-color:#f0f0f0}.common-dialog-button-primary{display:inline-block;background-color:#48c23d;color:#fff;padding:4px 20px;min-width:60px;border-radius:2px}.common-dialog-button-primary:hover{background-color:#2b9e20}.common-dialog-button-primary-loading{position:relative;background-color:#2b9e20;border-color:#2b9e20;cursor:default}.common-dialog-button-primary-loading:before{content:"";position:absolute;width:14px;height:14px;background:url(data:image/gif;base64,R0lGODlhEgASAPfuADGZNTCYNDSaODKaNjOaNzWbOTacOjicPDabOUajSTuePzyeQFOqVlSqV0SjSE+oUjqdPUGhRT6fQVCpVEilTEOiRj2fQTecOzmdPU6nUUekS02nUUynUFGpVUCgRFarWUKhRej06TqePmazaUmlTUekSlesWkqlTVWrWWOyZlWrWFCoU/D48ZrNnHu+faXTp1mtXGKxZZPKlZfLmZbLmEOiRz6gQkumTny+f8Xixme0apPJlaLRpFKpVZXKl9Pp1FisW1mtXY7HkWq1bf////T59MPixdbr13q9fWSyZ+n06V6vYdns2qDQocDgwafTqanUqtHo0nS6d3a7eT+gQ8jkyYnEi+Ty5eLw4m+4cV+wYtXq1sbjx3S6dufz56nVq9Tq1b/fwUWjSYrFjVuuXnm9fM7nz47HkHW7ePj7+IPChYTChmCwY5LJlKDQorbbuI3Gj2u1bY/IkYLBha3WrmGxZHy+fozGjr7fv6HRo8fjyPL58rbbt6zWrcPhxIrFjHG5dOby5qbTqIDAgqTSptXq1VyuX3i8et3u3W+4cufz6KPRpZzOnv3+/dvt3JHIk12vYG23cK/Xsfn8+ZTKlq7XsPv9++v17MvlzN7v33O6dUymT9fr2LfbubXatmm1bNzu3V2vYarVrIHAg6jUqfP58/H48WWzaGi0a/z9/L/fwPT69bjcucLhw5vNnfb79u737n2/gJ/PoXi8e7zevZfMmdns2brdu5nNm4bDiYvGja3Xr+Hw4YXDiMHgwuv163e8eYHBhMzmzeXy5YfEibncutjs2fj8+c/n0Nrt27TatavVreDw4Wy2b57PoLrdvKTSpYjEipvOnXC4c/r9+nK5dZ3Pn7LZs8nkyt7u3vX69VqtXeLx49/v4H/AgbvdvZDIkvf799Do0bHYsvD38LLZtG63cb3evur06u/379Lp0+327cTixS+YMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InV1aWQ6NTk3ODkzNjAyNjc1REYxMTkzNTE5OTE4NTI1NTdEREMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJDNTAyQ0YxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzJDNTAyQ0UxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OWQ4ZDhhZWItNjQxOS00ODdjLWJhMjEtYTYzZDc3NDUzOWVhIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkNCQUM5NjIwQTNCQ0RGMTE5OUI3OTI2N0FCQTk1QTAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoA7gAsAAAAABIAEgAACMMA2wkcSLCgQYET3CBqB2DAAAAH2wngEc5SI4YCDBxAEKCgADyr9vAwJDAAAQgWRBR0xiKTCoMAFkRQKTBDCCUNIg4AkYCAQBqKWkQUaIGCDYFcrpgY2q4ABw0CkzHzOTTAigkCtySjGhFAAwYCnxXKOfRAkB4CrSCzwvTGEhICT1QxciMihhQxDgzs5aQSBYMKRsTBOnAAjU6VpJQQQMADGTSalkAkOMAFnSdNaskhNspFkMkGawCC4wMOEi0WmKoWGBAAIfkEBQoA7gAsAQABABAAEAAACLQA3QkU2ARMulKOSB0YOLCArF8sSr1KQ6RTuwDtBiJQ5sULoyALDGyL0G4AgYEzsET5wFBgAAIGBLjbwMTWhJYDA1yAAEAOJyE4GSKwcOFNlA5BBw6wIUGPMJlJBYKo4CQH1KQBEiQgdY5DVHcFbiTw9qbM1wgPPJQYB0VM0gs9eiBwd+iJDxA4MXwAkkAggV6MdpzCC2BBhjpabjLMIuPOmlhTEsUZ8SCohyTAXExBNWHhwIAAIfkEBQoA7gAsAQABABAAEAAACLgA2wlsl2FGFW6KorTYNHCgABqOsARSAmtPEW1fEAwkIOrIFhkoECwI0qQIET0EBI4x0ypDQ4HbOPli0I4EFy4cXg6kkkDgHCdzdL4EAIBHsZxCBQYoUEBSuZRJBRo4AEUU1KQBRIjYsahE1HYDJChIJG3IVwgeMICYcaZCUgEOHAxoN+QODio6EVAgIUHgAE3BXHxYAGDAAQcTVjgIMBAAGyRdIumIAQlGg8U6F3yIMSKGCQoGGgYEACH5BAUKAO4ALAEAAQAQABAAAAiyANsJbEfByq1CtnJQ2jBw4IA1VcyAsZXtipcQbhA49BHGjxUGFy6YwBWCRRgBAu3woXOjocAGiIrwaFejDx0KLgeqIJemA6AnUnI2FNQI2h1ZOIW+zPZsBg0ASgUCgJREjhCoUdtBxUEMRFYAYJeMMpSVgAECFnBMUaAUAIQDUIN00QEh5wAJFgxI1RLn1A24AAosqOCB7UAAE5KwIYNiwgYSCRQEyHngRAMVHUjYINAwIAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXSXINYLPDk8CRnIkMAsSZ5oGcEUZQuTGQUGEpgj6AuSDRgK9BDCCUsnAgLNuaJEgaHADz8CMXLnQUabCi4Hdhh2yV0SXSlyMnTFosmUNRGEDgSyBwwOHEoHIljFYsqUqAIREEmDatoCrA/SgGow5AHYF48g6IhxQGk7BA5EuMvAxoSBnAAItGunM0gDEAjcBRhg4ICBAS5LNHiwqUQFDxZECODrEkGEBCVqWLgAgGFAACH5BAUKAO4ALAEAAQAQABAAAAi4AN0JdAciy6MXu5rYcTBw4IBPNFrw+HKNlSp2dwQMBABI15khJQgc2KAmhxlBA5eMwkGlocAVrQrtcLcAySwJLgdmAAMqwwcpKHI2bMNrRopIC4QOROGlio4RSgcWUHIlRoyoAgvACgEk1AGsQEz9oACDYVQ3RfIYQDEBgdIGx9IwcFfjAQmNLiVgIwJlYIITYiAQCOAuQAAHPIwYGBhAQoIINhZcQNAOwAm8DQlgUKDgQAEA7RoGBAAh+QQFCgDuACwBAAEAEAAQAAAIuADbCWy3IJQdOJTGJKoxcCAAGC4GRTtDw9qLZTgEOFwiBQ0ZEAQEaOhCx5OPAQI7xNGhoKFACn3wrGl34VQKCC4HnnCih8SJOjdyNrRiJhoDMhiEDmQA5tYHFQGUChRgbEuHFVGlXkB0hMQGBFLbmbhixAYJC2FbhPBBQEMFlEJ7hAjxoJ2CCBIA5FSRiYUsgQEUWFAgICqADYReFQmjcaABDAYGBGBgpFGqFwZyAiCgV8MXQgwaBgQAIfkEBQoA7gAsAQABABAAEAAACLYA3Ql0B6EBKilI0KTwMLDhBh1DEqGxo2ZMm0gDGk6oE+PBAgEAIiR51GINAIElgJjA0FBggh2EgLkrwICBgZYDxTyRVCLCgwg4G5bhEyvBjQJBB3Kg9UJDgqQN/ahyUAGqQAGYuNigkhFqhyh8Dli4CVXIETkARGA4GRSFMSYb3AkwMKAdThQ/eM0Q2I5AgAE1OCxAAKOFlxBvyAoMAEDIFSKTirC45AZpywu5EB0z9aPFpoYBAQAh+QQFCgDuACwBAAEAEAAQAAAItADbCWxngAKQOiNSNIAwcGCAGipMQELYTNOhJQAcOniwQswBAAMWfDg0KEvGdhIoUCjQUCAVF390tCOQwIGAlgOpwPEBAkIEhjgHfmqRRYGEAUEHJnDzSIGCAEkFEiAF5cCBqFKv7SpwEyuHW3kAQMU6x0kwgQkUJOWQIweJdhp2vDGBs4EfM2MEFgiTitoiGAVEmJCx5YgolgIRVKKmbQ+sX4qwOJLRtWGDPD9CXMFU60HDgAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXRHQAKFFSoYnLgwsKGCEho4IAyiJUWHhu0URKiwoIA7ABhupIijZaABCxYGNBQIYUQ1GB8xiACwcqCCLmUWDDAgoGZDMoNCAQjQzudAELlctFtqVCAAOGdWGArQ1J0AGm1e0MpQVYO1P9AsvajaRdA0BqkmoTCqgU4fB+4IrerWoOaJSnxcCBSAh0UIXCoMGJhgxYgTHyr3OlOiZBgzJluQVcnlM8MMPY6iFPtzomFAACH5BAUKAO4ALAEAAQAQABAAAAizANsJbAfggIQKCcR4KDCwoQAIFmwgJJGhRwIADQEYwGBgAIAABTz0ANIhQEaTDdsd+KBlQzsFERCkbHiAzQgIf2Q8mNkwwxAGmbxw4DlwQZYRk4jIJEqwi5RSjZYSBeCiTKEiMJi2i6AGTRMWLbSmGJOkw6VAE4gmaLPDQztGSn7sTKlBhqtIAhGwwsJEDgMMAjgg+fJEDYGBBXAxOfJDWI4wbyQhOZxyAzhWXFQ9KVOhYUAAIfkEBQoA7gAsAQABABAAEAAACLMA3Ql0165dgQsiFBwYMHCgABgB2g04IEJCBAcSAjj08yIDgILuBkBwoKHGQChEWtloKFBAiQwV3DGwNIkBy4EFHjRAkOfVopsNHZjQoM4UDKADDxj6EGJdAaQD2cQIhO4pVHcjRmBThOLqgmYpamHZcRVFtQ8PQB2xCVTCoVkL3FE6YmTFzQo4BkEa2EdcFTUcCFzQMESILkAMW57h4uubsmWLpNH4lLjhiTk8dkGRkYVlQAA7);top:50%;left:4px;margin-top:-7px;background-size:cover}.develop{display:flex;flex:1;overflow-y:auto}.payment-wrapper{left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6)}.payment,.payment-wrapper{position:absolute;z-index:6}.payment{width:80%;max-width:300px;top:50%;left:50%;transform:translate(-50%,-50%);margin-top:-50px;background-color:#fff;text-align:center;border-radius:4px;overflow:hidden}.payment-qrcode-wrapper{display:inline-block;position:relative}.payment-icon-success{background:url(../images/success20.png) no-repeat;display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/success20.png);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.payment-qrcode-scaned{position:absolute;left:0;top:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.8)}.payment-qrcode{width:150px}.payment-hd{overflow:hidden;padding:10px 15px}.payment-close{float:right}.payment-icon-close{background:url(../images/close.png) no-repeat;display:inline-block;width:19px;height:19px;vertical-align:middle;background:url(../images/close.png)}.payment-bd{padding:0 20px 40px}.payment-title{margin-bottom:10px}.payment-tips{margin-top:10px}.custom-preview{overflow:hidden}.custom-preview-form{padding:0 60px}.custom-preview-form-item{margin-bottom:15px;text-align:left}.custom-preview-form-label{margin-bottom:5px}.custom-preview-form-label span{color:#646464}.custom-preview-form-checkbox{position:relative;text-align:left;-webkit-user-select:none;overflow:hidden;margin-bottom:10px}.custom-preview-form-checkbox input{position:absolute;left:-999em}.custom-preview-form-checkbox input:checked+i{background:url(../images/checkbox_1.png) no-repeat}.custom-preview-form-checkbox i{display:inline-block;width:16px;height:16px;background:url(../images/checkbox_0.png) no-repeat;vertical-align:-3px;margin-right:8px}.custom-preview-form-equal{display:flex;align-items:center;padding:0 10px}.custom-preview-form-value input{display:block;outline:0;width:100%;padding:5px 10px;border:1px solid #d8d8d8}.custom-preview-form-tips{margin-top:3px;color:#f55c23}.custom-preview-qrcode-wrapper{overflow:hidden;text-align:center}.setting,.setting-show{display:none;width:600px;position:fixed;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:10}.setting-show{display:block}.setting-hd{padding:20px 0;text-align:center}.setting-bd{padding:10px 30px 40px}.setting-form-title{margin-bottom:15px}.setting-form-bd{font-size:0;margin-bottom:20px}.setting-form-option{display:block;font-size:14px;margin-bottom:10px}.setting-form-option input{position:absolute;left:-9999em}.setting-form-option input:checked+.setting-form-radio{background:url(../images/radio-selected.png)}.setting-form-option input:checked+.setting-form-radio,.setting-form-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;vertical-align:-4px;margin-right:5px}.setting-form-radio{background:url(../images/radio.png)}.setting-form-select-item{position:relative;display:inline-block;vertical-align:top;margin-right:10px;width:80px;padding:3px 0;color:#000;font-size:14px;border:1px solid #d8d8d8;background-color:#fff;cursor:pointer;border-radius:2px;text-align:center;text-overflow:ellipsis}.setting-form-select-item-selected{color:#48c23d;border:1px solid #48c23d}.setting-form-icon-down{background:url(../images/downD.png)}.setting-form-icon-down,.setting-form-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle;margin-left:5px;vertical-align:-3px}.setting-form-icon-up{background:url(../images/upD.png)}.setting-form-select-dropdown{position:absolute;width:100%;max-height:150px;overflow-y:auto;top:100%;left:0;background-color:#fff;border:1px solid #d8d8d8}.setting-form-select-dropdown-item{padding:3px 10px;cursor:pointer;text-align:center}.setting-form-select-dropdown-item:hover{color:#fff;background-color:#48c23d}.setting-form-proxy-area{display:flex;padding-left:22px}.setting-form-proxy-address{flex:1;margin-right:10px}.setting-form-proxy-address,.setting-form-proxy-port{padding:0 10px;line-height:32px;border:1px solid #d8d8d8;outline:0}.setting-form-proxy-port{width:120px}.setting-form-proxy-port::-webkit-inner-spin-button,.setting-form-proxy-port::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.setting-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.setting-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 20px;padding:3px 20px;border-radius:2px}.setting-button-default:hover{background-color:#f0f0f0}.setting-button-primary{display:inline-block;background-color:#48c23d;color:#fff;margin:0 15px;padding:5px 20px;border-radius:2px}.simulator-wrapper{width:430px;background-color:#efefef;display:flex;flex-direction:column;position:relative;overflow-y:auto}.simulator-tab{border-top-style:solid;border-top-width:1px;height:45px;line-height:45px;cursor:pointer}.simulator-tab ul{display:flex}.simulator-tab li{flex:1;text-align:center}.simulator-toolbar{position:relative;display:flex;min-height:27px;margin-bottom:30px}.simulator-toolbar-direction{background-color:#e2e2e2;margin-right:1px;padding:3px 5px 5px;cursor:pointer}.simulator-toolbar-direction img{display:block;width:32px;height:32px}.simulator-toolbar-direction-icon{display:inline-block;width:32px;height:24px;vertical-align:middle;background:url(../images/directionHD.png)}.simulator-toolbar-toggle{background-color:#e2e2e2;margin-right:1px;padding:0 5px;cursor:pointer;align-items:center;display:flex}.simulator-toolbar-toggle:hover .simulator-toolbar-toggle-icon{display:inline-block;width:11px;height:16px;vertical-align:middle;background:url(../images/Mo_green.png)}.simulator-toolbar-toggle-icon{display:inline-block;width:11px;height:16px;vertical-align:middle;background:url(../images/Mo.png)}.simulator-toolbar-model{position:relative;flex:1;display:flex;align-items:center;padding:2px 15px;background-color:rgba(0,0,0,.05);cursor:pointer;border-bottom:1px solid #d8d8d8}.simulator-toolbar-model:hover{background-color:rgba(0,0,0,.1)}.simulator-toolbar-model p{flex:1;color:#646464}.simulator-toolbar-model-icon-up{transform:rotate(180deg)}.simulator-toolbar-model-icon-down,.simulator-toolbar-model-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downD.png)}.simulator-toolbar-model_network{flex:1}.simulator-toolbar-model-content{position:absolute;width:100%;top:100%;left:0;z-index:10;background-color:#fff;border:1px solid #f0f0f0;box-shadow:2px 2px 10px #ccc}.simulator-toolbar-model-content-item{padding:5px 10px}.simulator-toolbar-model-content-item h4{font-weight:400;font-size:14px}.simulator-toolbar-model-content-item p{color:#646464;font-size:14px;line-height:1.6}.simulator-toolbar-model-content-item.simulator-toolbar-model-content-item-current,.simulator-toolbar-model-content-item:hover{background-color:rgba(72,194,61,.1)}.simulator-toolbar-tabs{flex:1;display:flex;align-items:center;padding:5px 14px;cursor:pointer;background-color:#e2e2e2}.simulator-toolbar-tabs p{line-height:1;flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;width:100%;white-space:nowrap}.simulator-toolbar-tabs-content{display:flex;position:absolute;width:100%;left:0;top:100%;z-index:10;padding:15px;background-color:rgba(0,0,0,.2)}.simulator-toolbar-tabs-item{margin-right:15px;border-radius:4px;box-shadow:1px 1px 10px #999}.simulator-toolbar-tabs-item img{display:block;width:45px;height:68px}.simulator-toolbar-tabs-item-current{border:2px solid #48c23d}.simulator-toolbar-mask{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0}.simulator-list-wrapper,.simulator-shadow{position:relative;margin:0 auto}.simulator-shadow{box-shadow:1px 1px 10px #ccc}.simulator{margin:0 auto;transition:all .3s ease}.simulator.simulator-with-shell{padding:67px 14px 60px;border-radius:44px;background-color:#ccc}.simulator-hd{position:relative;z-index:7;display:flex;background-color:#000;height:42px}.simulator-hd-title{flex:1;color:#fff;line-height:42px;text-align:center;text-overflow:ellipsis;overflow:hidden}.simulator-hd-title-loading{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/loading.gif);background-size:cover;vertical-align:-3px;margin-right:6px}.simulator-bd{position:relative;height:618px;background-color:#fff;border-top:0}.simulator-bd iframe{width:100%;height:100%;border:0}.simulator-hd-back{width:70px;padding:0 10px;display:flex;align-items:center;color:#fff;cursor:pointer}.simulator-hd-back-icon{display:inline-block;vertical-align:middle;margin-right:5px;width:10px;height:10px;border-left:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg)}.simulator-hd-option{width:70px;padding:0 10px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer}.simulator-hd-option-icon{margin-right:5px;display:inline-block;width:36px;height:12px;vertical-align:middle;background:url(../images/option.png)}.simulator-bd-loading{position:absolute;top:0;left:0;height:2px;transition:width .1s ease;background:#48c23d}.simulator-bd-share-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);z-index:3}.simulator-bd-share-dialog{position:absolute;width:85%;top:50%;left:50%;z-index:4;transform:translate(-50%,-50%);background-color:#fff;border-radius:3px;overflow:hidden}.simulator-bd-share-dialog-hd{padding:.85em 20px 0}.simulator-bd-share-dialog-title{font-size:17px}.simulator-bd-share-dialog-bd{display:flex;margin-top:.85em;padding:0 20px;font-size:15px;color:#888;word-wrap:break-word;word-break:break-all}.simulator-bd-share-dialog-cover{margin-right:1em}.simulator-bd-share-dialog-cover img{display:block;width:60px;height:60px}.simulator-bd-share-dialog-ft{display:flex;position:relative;line-height:42px;margin-top:20px;font-size:17px;border-top:1px solid #f0f0f0}.simulator-bd-share-dialog-button-default,.simulator-bd-share-dialog-button-primary{flex:1;color:#48c23d;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center}.simulator-bd-share-dialog-button-default:active,.simulator-bd-share-dialog-button-primary:active{background-color:#eee}.simulator-bd-share-dialog-button-default{color:#000;border-right:1px solid #f0f0f0}.simulator-bd-webview{height:100%;width:100%}.simulator-bd-webview_body{height:100%;display:block}.simulator-actionsheet-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:3}.simulator-actionsheet{position:absolute;width:100%;left:0;bottom:0;z-index:4}.simulator-actionsheet-bd{padding:10px 0;text-align:center;background-color:#e8e8e8;font-size:0}.simulator-actionsheet-menu{display:inline-block;font-size:0;text-align:center;margin:0 6px}.simulator-actionsheet-menu-icon{width:60px;height:60px;display:inline-block;vertical-align:middle}.simulator-actionsheet-menu-icon-share2friend{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/share2friend.png)}.simulator-actionsheet-menu-icon-share2moment{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/share2moment.png)}.simulator-actionsheet-menu-icon-safari{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/safari.png)}.simulator-actionsheet-menu-icon-refresh{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/refresh.png)}.simulator-actionsheet-menu-label{display:block;font-size:12px;color:#888}.simulator-actionsheet-ft a{display:block;padding:10px 0;background-color:#f6f6f6;text-align:center;color:#000}.simulator-animate-png{position:absolute;overflow:hidden;transition:.25s;background-color:#fff;z-index:12}.simulator-authorize-dialog{position:absolute;width:85%;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;background-color:#fafafc;text-align:center;border-radius:3px;overflow:hidden}.simulator-authorize-dialog-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:3}.simulator-authorize-dialog-hd{padding:1.2em 20px .5em;border:1px solid #f0f0f0;margin-bottom:.5em}.simulator-authorize-dialog-title{font-weight:400;text-align:center;font-size:17px}.simulator-authorize-dialog-bd{padding:0 20px}.simulator-authorize-dialog-logo{display:block;width:32px;height:32px;margin:0 auto;border-radius:50%}.simulator-authorize-dialog-tips{padding:10px 0;border-bottom:1px solid #f0f0f0;text-align:left;margin-bottom:10px}.simulator-authorize-dialog-list{text-align:left;color:#646464;font-size:14px;margin-bottom:20px}.simulator-authorize-dialog-list li{margin-bottom:5px;cursor:pointer}.simulator-authorize-dialog-ft{border-top:1px solid #f0f0f0;display:flex}.simulator-authorize-dialog-ft a{flex:1;padding:8px 0;text-align:center;color:#000}.simulator-authorize-dialog-ft a:active{background-color:#eee}.simulator-authorize-dialog-ft a:first-child{border-right:1px solid #f0f0f0}.simulator-authorize-dialog-ft a:last-child{color:#48c23d}.simulator-authorize-dialog-checkbox{margin-right:5px}.simulator-authorize-dialog-checkbox input{position:absolute;left:-999em}.simulator-authorize-dialog-checkbox input:checked+i{display:inline-block;width:20px;height:15px;vertical-align:middle;background:url(../images/check.png);vertical-align:-2px}.simulator-authorize-dialog-checkbox i{display:inline-block;vertical-align:-2px;width:20px;height:15px;border:1px solid #d8d8d8}.simulator-authorize-dialog-readonly{display:inline-block;width:8px;height:8px;background:#ccc;border-radius:50%;margin-right:11px;vertical-align:middle;margin-left:6px}.simulator-backward-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:10}.simulator-backward-mask p{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:3px 10px;background-color:#000;color:#fff;border-radius:4px}.simulator-backward-mask p i{display:inline-block;width:14px;height:14px;vertical-align:middle;background:url(../images/info-white.png);vertical-align:-1px;margin-right:5px}.simulator-payment-img{width:200px;height:200px;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);padding:3px 10px;background-color:#000;color:#fff;border-radius:4px}.weapp .simulator-bd-share-dialog-desc{text-overflow:ellipsis;overflow:hidden;white-space:pre-wrap;max-height:50px}.weapp .simulator-bd-share-dialog-bd{flex-direction:column}.weapp .simulator-bd-share-dialog-cover img{object-fit:cover;object-position:0 0;width:240px;height:240px}.weapp .simulator-bd-share-dialog-hd{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.webview-card,.webview-card-add{display:flex;flex-direction:column}.webview-card-add{background-color:#55bc47;height:100%;width:100%}.webview-card-add-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.webview-card-add-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-add-header_title{width:85%;padding-left:26%;color:#fff;font-weight:700}.webview-card-add-container{display:flex;flex-direction:column;margin:15px 10px;overflow-x:hidden;overflow-y:auto}.webview-card-add-item{background-color:#fff;border-radius:3px;display:block;margin-bottom:10px}.webview-card-add-item_top{display:flex;flex-direction:row;margin:20px 20px 10px;align-items:center;border-bottom:1px dashed #ccc;padding-bottom:10px}.webview-card-add-item_left{width:10%;padding-bottom:10px}.webview-card-add-item_img{border-radius:30px;width:30px;height:30px}.webview-card-add-item_details{display:flex;flex-direction:column;margin:5px;width:90%}.webview-card-add-item_name{font-size:14px;margin-bottom:10px}.webview-card-add-item_info{display:flex;flex-direction:row;margin-bottom:10px}.webview-card-add-item_intro{font-weight:700}.webview-card-add-item_num{margin-left:15px}.webview-card-add-item_num,.webview-card-add-item_time{font-size:14px;color:#9a9a9a}.webview-card-add-item_bottom{height:30px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#55bc47;margin:0 8px 10px;border-radius:3px;cursor:pointer}.webview-card-add-item_bottom_disable,.webview-card-add-item_bottom_error{color:hsla(0,0%,100%,.6);cursor:not-allowed}.webview-card-add-item_bottom_error{background-color:#f76260}.webview-card-add-item_button{text-align:center;color:#fff;font-weight:700}.webview-card-add-item_button_error{text-align:center;font-weight:700;color:#6b9fe8}.webview-card-choose{background-color:#f0eff5;height:100%;width:100%}.webview-card-choose-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#000}.webview-card-choose-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-choose-header_title{width:85%;padding-left:26%;color:#fff;font-weight:700}.webview-card-choose-mycard{margin:10px 0 5px 10px;color:#7d7e83;font-size:14px}.webview-card-choose-mycardEmpty{align-self:center}.webview-card-choose-container{display:flex;flex-direction:column;padding:0 10px;overflow-x:hidden;overflow-y:auto}.webview-card-choose-item{border-radius:3px;margin-bottom:10px;display:block;cursor:pointer}.webview-card-choose_m{background:#fff;height:60px}.webview-card-choose_m,.webview-card-choose_mErr{display:flex;width:100%;align-items:center;padding:10px}.webview-card-choose_mErr{background-color:#f76260;cursor:not-allowed;color:#fff;height:100px}.webview-card-choose_left{width:15%;text-align:center}.webview-card-choose-item_img{border-radius:30px;width:30px;height:30px}.webview-card-choose_details{display:flex;flex-direction:column;margin:5px;width:90%}.webview-card-choose-item_name{font-size:12px;margin-bottom:10px}.webview-card-choose-item_error{font-size:14px;margin-bottom:10px}.webview-card-choose-item_info{display:flex;flex-direction:row;font-size:18px}.webview-card-open{background-color:#55bc47;height:100%;width:100%;display:flex;flex-direction:column}.webview-card-open-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.webview-card-open-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-open-container{margin:30px 10px;background-color:#fff;height:290px}.webview-card-open_top{height:30px;text-align:center}.webview-card-open-item_img{height:30px;width:30px;border-radius:30px;margin-top:-15px;border:1px solid #ccc}.webview-card-open_middle{display:flex;flex-direction:column;justify-content:center;align-items:center;border-bottom:1px dashed #ccc;margin-bottom:10px}.webview-card-open-name{color:#9a9a9a;font-size:14px;margin-bottom:10px}.webview-card-open-intro{margin-bottom:10px;font-size:18px}.webview-card-open-item_button{height:30px;width:30%;min-width:110px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#55bc47;border-radius:3px;margin-bottom:10px;padding:10px;cursor:pointer}.webview-card-open_buttom_wording{text-align:center;color:#fff}.webview-card-open-time{font-size:14px;margin-bottom:10px}.webview-card-open_bottom{display:flex;flex-direction:column;justify-content:flex-start}.webview-card-open_detail{margin:10px;border-bottom:1px solid #ccc;padding-bottom:10px;font-size:14px}.webview-card-open_detail:last-child{border-bottom:none}.debugger{display:flex;flex:1;background-color:#fff;overflow-y:hidden}.debugger-tab{display:flex;flex:1;flex-direction:column}.debugger-tab-bd{display:flex;flex:1}.cache-card{display:none;position:absolute;top:-30px;left:100%;z-index:3;background:#fff;text-align:left;border:1px solid #f0f0f0;box-shadow:1px 1px 10px #ccc;margin-left:9px}.cache-card:before{border:9px solid transparent;border-right-color:#e6e6e6;margin-left:-19px}.cache-card:after,.cache-card:before{content:"";position:absolute;left:0;top:50px}.cache-card:after{border:9px solid transparent;border-right-color:#fff;margin-left:-18px}.cache-card-item{white-space:nowrap;padding:10px 20px;cursor:pointer}.cache-card-item:hover{background:#ecf8eb}.dialog-mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:3;animation:a .3s forwards}.dialog{position:absolute;width:600px;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4}.dialog-hd{background-color:#eee}.dialog-hd-title{padding:15px 25px;text-align:left}.dialog-bd{min-height:300px;background-color:#fff}.select{padding:30px}.select-avatar-wrapper{text-align:center}.select-avatar{width:60px;height:60px;border-radius:50%}.select-hd{padding:15px 0;margin-bottom:1em;border-bottom:1px solid #efefef}.select-hd-title{text-align:center}.select-create-item{display:flex;background-color:#eee;padding:10px;margin-bottom:1em}.select-create-icon{margin-right:1em}.select-create-icon img{width:80px;height:80px}.select-create-content{flex:1}.select-create-title{margin-bottom:1em;color:#000}.select-create-desc{color:#646464}.select-project-wrapper{display:flex;flex-wrap:wrap;border-bottom:1px solid #efefef}.select-project-item{width:80px;margin-right:1em;margin-bottom:1em}.select-project-icon{margin-bottom:10px}.select-project-icon img{max-width:100%}.select-project-name{color:#000;text-align:center}.detail{flex:1;text-align:center;background:#fff;border-left:1px solid #d8d8d8;margin-top:-51px;overflow-y:auto}.detail-logo-wrapper{text-align:center;margin-top:100px}.detail-logo{width:100px;height:100px;margin-bottom:20px;border-radius:5px;vertical-align:middle}.detail-name{color:#000;margin-bottom:20px;font-size:18px}.detail-appid{color:#646464}.detail-meta-tab{margin-top:40px}.detail-meta-tab-hd{width:500px;margin:0 auto}.detail-meta-tab-hd a{display:inline-block;vertical-align:middle;padding:5px 10px;border:1px solid #d8d8d8;color:#000}.detail-meta-tab-hd a:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:0}.detail-meta-tab-hd a:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:0}.detail-meta-tab-hd a.detail-meta-tab-item-active{color:#48c23d;border:1px solid #48c23d}.detail-meta-wrapper{display:inline-block;margin-top:20px;width:500px}.detail-meta{display:flex;padding:30px 0;border-top:1px solid #f0f0f0}.detail-meta.detail-meta-disabled{color:#888}.detail-meta-column{flex-direction:column}.detail-meta-es6toes5{position:relative;text-align:left;-webkit-user-select:none;overflow:hidden;margin-bottom:10px}.detail-meta-es6toes5 input{position:absolute;left:-999em}.detail-meta-es6toes5 input:checked+i{background:url(../images/checkbox_1.png) no-repeat}.detail-meta-es6toes5 i{display:inline-block;width:16px;height:16px;background:url(../images/checkbox_0.png) no-repeat;vertical-align:-3px;margin-right:8px}.detail-meta-label{margin-right:2em}.detail-meta-label.detail-meta-label-fixed-width{width:150px;text-align:left}.detail-meta-value{flex:1;width:20em;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-meta-upload-default{display:inline-block;background-color:#fff;color:#000;min-width:60px;padding:3px 19px 3px 18px;border-radius:2px;border:1px solid #888}.detail-meta-upload-default:hover{background-color:#f0f0f0}.detail-meta-upload-default.detail-meta-upload-default-disabled{background-color:#f0f0f0;border:1px solid #d8d8d8;color:#646464;cursor:default}.detail-meta-btn-group{position:relative}.detail-meta-upload{display:inline-block;background-color:#48c23d;color:#fff;min-width:60px;padding:4px 19px 4px 18px;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #a3e09e}.detail-meta-upload:hover{background-color:#2b9e20}.detail-meta-upload.detail-meta-upload-disabled{background-color:rgba(72,194,61,.6);cursor:default}.detail-meta-btn-cert{display:inline-block;background-color:#48c23d;padding:4px 9px 4px 8px;border-bottom-right-radius:2px;border-top-right-radius:2px;color:#fff}.detail-meta-btn-cert:hover{background-color:#2b9e20}.icon-arrow-down{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.detail-meta-btn-dropdown{position:absolute;top:100%;right:0;margin-top:5px}.detail-meta-btn-dropdown-item{display:inline-block;white-space:nowrap;background-color:#fff;border:1px solid #979797;padding:5px 15px;color:#000}.detail-meta-btn-dropdown-item:hover{background-color:#f0f0f0}.detail-opr-wrapper{margin-top:40px;margin-bottom:40px;text-align:center}.button{display:inline-block;color:#000;background-color:#fff;padding:8px 31px;min-width:60px;border:1px solid #888;border-radius:2px}.button:hover{background-color:#f0f0f0}.detail-upload-dialog,.detail-upload-dialog-show{width:600px;position:absolute;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:6}.detail-upload-dialog-show{display:block}.detail-upload-dialog-hd{padding:20px 0;text-align:center}.detail-upload-dialog-bd{padding:20px 30px}.detail-upload-dialog-form-title{margin-bottom:15px}.detail-upload-dialog-form-bd{font-size:0;margin-bottom:20px}.detail-upload-dialog-tips{margin-bottom:30px}.detail-upload-dialog-form-item{display:flex;margin-bottom:20px}.detail-upload-dialog-form-label{width:5em;margin-right:1em}.detail-upload-dialog-form-input-box{text-align:left;flex:1}.detail-upload-dialog-form-input{border:1px solid #d8d8d8;width:80%;outline:0;height:32px;line-height:32px;padding:2px 10px}.detail-upload-dialog-form-tips{color:#646464;margin-top:10px}.detail-upload-dialog-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.detail-upload-dialog-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 10px;padding:3px 20px;min-width:60px;border-radius:2px}.detail-upload-dialog-button-default:hover{background-color:#f0f0f0}.detail-upload-dialog-button-primary{display:inline-block;background-color:#48c23d;color:#fff;padding:4px 20px;min-width:60px;border-radius:2px}.detail-upload-dialog-button-primary:hover{background-color:#2b9e20}.detail-upload-dialog-button-primary-loading{position:relative;background-color:#2b9e20;border-color:#2b9e20;cursor:default}.detail-upload-dialog-button-primary-loading:before{content:"";position:absolute;width:14px;height:14px;background:url(data:image/gif;base64,R0lGODlhEgASAPfuADGZNTCYNDSaODKaNjOaNzWbOTacOjicPDabOUajSTuePzyeQFOqVlSqV0SjSE+oUjqdPUGhRT6fQVCpVEilTEOiRj2fQTecOzmdPU6nUUekS02nUUynUFGpVUCgRFarWUKhRej06TqePmazaUmlTUekSlesWkqlTVWrWWOyZlWrWFCoU/D48ZrNnHu+faXTp1mtXGKxZZPKlZfLmZbLmEOiRz6gQkumTny+f8Xixme0apPJlaLRpFKpVZXKl9Pp1FisW1mtXY7HkWq1bf////T59MPixdbr13q9fWSyZ+n06V6vYdns2qDQocDgwafTqanUqtHo0nS6d3a7eT+gQ8jkyYnEi+Ty5eLw4m+4cV+wYtXq1sbjx3S6dufz56nVq9Tq1b/fwUWjSYrFjVuuXnm9fM7nz47HkHW7ePj7+IPChYTChmCwY5LJlKDQorbbuI3Gj2u1bY/IkYLBha3WrmGxZHy+fozGjr7fv6HRo8fjyPL58rbbt6zWrcPhxIrFjHG5dOby5qbTqIDAgqTSptXq1VyuX3i8et3u3W+4cufz6KPRpZzOnv3+/dvt3JHIk12vYG23cK/Xsfn8+ZTKlq7XsPv9++v17MvlzN7v33O6dUymT9fr2LfbubXatmm1bNzu3V2vYarVrIHAg6jUqfP58/H48WWzaGi0a/z9/L/fwPT69bjcucLhw5vNnfb79u737n2/gJ/PoXi8e7zevZfMmdns2brdu5nNm4bDiYvGja3Xr+Hw4YXDiMHgwuv163e8eYHBhMzmzeXy5YfEibncutjs2fj8+c/n0Nrt27TatavVreDw4Wy2b57PoLrdvKTSpYjEipvOnXC4c/r9+nK5dZ3Pn7LZs8nkyt7u3vX69VqtXeLx49/v4H/AgbvdvZDIkvf799Do0bHYsvD38LLZtG63cb3evur06u/379Lp0+327cTixS+YMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InV1aWQ6NTk3ODkzNjAyNjc1REYxMTkzNTE5OTE4NTI1NTdEREMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJDNTAyQ0YxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzJDNTAyQ0UxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OWQ4ZDhhZWItNjQxOS00ODdjLWJhMjEtYTYzZDc3NDUzOWVhIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkNCQUM5NjIwQTNCQ0RGMTE5OUI3OTI2N0FCQTk1QTAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoA7gAsAAAAABIAEgAACMMA2wkcSLCgQYET3CBqB2DAAAAH2wngEc5SI4YCDBxAEKCgADyr9vAwJDAAAQgWRBR0xiKTCoMAFkRQKTBDCCUNIg4AkYCAQBqKWkQUaIGCDYFcrpgY2q4ABw0CkzHzOTTAigkCtySjGhFAAwYCnxXKOfRAkB4CrSCzwvTGEhICT1QxciMihhQxDgzs5aQSBYMKRsTBOnAAjU6VpJQQQMADGTSalkAkOMAFnSdNaskhNspFkMkGawCC4wMOEi0WmKoWGBAAIfkEBQoA7gAsAQABABAAEAAACLQA3QkU2ARMulKOSB0YOLCArF8sSr1KQ6RTuwDtBiJQ5sULoyALDGyL0G4AgYEzsET5wFBgAAIGBLjbwMTWhJYDA1yAAEAOJyE4GSKwcOFNlA5BBw6wIUGPMJlJBYKo4CQH1KQBEiQgdY5DVHcFbiTw9qbM1wgPPJQYB0VM0gs9eiBwd+iJDxA4MXwAkkAggV6MdpzCC2BBhjpabjLMIuPOmlhTEsUZ8SCohyTAXExBNWHhwIAAIfkEBQoA7gAsAQABABAAEAAACLgA2wlsl2FGFW6KorTYNHCgABqOsARSAmtPEW1fEAwkIOrIFhkoECwI0qQIET0EBI4x0ypDQ4HbOPli0I4EFy4cXg6kkkDgHCdzdL4EAIBHsZxCBQYoUEBSuZRJBRo4AEUU1KQBRIjYsahE1HYDJChIJG3IVwgeMICYcaZCUgEOHAxoN+QODio6EVAgIUHgAE3BXHxYAGDAAQcTVjgIMBAAGyRdIumIAQlGg8U6F3yIMSKGCQoGGgYEACH5BAUKAO4ALAEAAQAQABAAAAiyANsJbEfByq1CtnJQ2jBw4IA1VcyAsZXtipcQbhA49BHGjxUGFy6YwBWCRRgBAu3woXOjocAGiIrwaFejDx0KLgeqIJemA6AnUnI2FNQI2h1ZOIW+zPZsBg0ASgUCgJREjhCoUdtBxUEMRFYAYJeMMpSVgAECFnBMUaAUAIQDUIN00QEh5wAJFgxI1RLn1A24AAosqOCB7UAAE5KwIYNiwgYSCRQEyHngRAMVHUjYINAwIAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXSXINYLPDk8CRnIkMAsSZ5oGcEUZQuTGQUGEpgj6AuSDRgK9BDCCUsnAgLNuaJEgaHADz8CMXLnQUabCi4Hdhh2yV0SXSlyMnTFosmUNRGEDgSyBwwOHEoHIljFYsqUqAIREEmDatoCrA/SgGow5AHYF48g6IhxQGk7BA5EuMvAxoSBnAAItGunM0gDEAjcBRhg4ICBAS5LNHiwqUQFDxZECODrEkGEBCVqWLgAgGFAACH5BAUKAO4ALAEAAQAQABAAAAi4AN0JdAciy6MXu5rYcTBw4IBPNFrw+HKNlSp2dwQMBABI15khJQgc2KAmhxlBA5eMwkGlocAVrQrtcLcAySwJLgdmAAMqwwcpKHI2bMNrRopIC4QOROGlio4RSgcWUHIlRoyoAgvACgEk1AGsQEz9oACDYVQ3RfIYQDEBgdIGx9IwcFfjAQmNLiVgIwJlYIITYiAQCOAuQAAHPIwYGBhAQoIINhZcQNAOwAm8DQlgUKDgQAEA7RoGBAAh+QQFCgDuACwBAAEAEAAQAAAIuADbCWy3IJQdOJTGJKoxcCAAGC4GRTtDw9qLZTgEOFwiBQ0ZEAQEaOhCx5OPAQI7xNGhoKFACn3wrGl34VQKCC4HnnCih8SJOjdyNrRiJhoDMhiEDmQA5tYHFQGUChRgbEuHFVGlXkB0hMQGBFLbmbhixAYJC2FbhPBBQEMFlEJ7hAjxoJ2CCBIA5FSRiYUsgQEUWFAgICqADYReFQmjcaABDAYGBGBgpFGqFwZyAiCgV8MXQgwaBgQAIfkEBQoA7gAsAQABABAAEAAACLYA3Ql0B6EBKilI0KTwMLDhBh1DEqGxo2ZMm0gDGk6oE+PBAgEAIiR51GINAIElgJjA0FBggh2EgLkrwICBgZYDxTyRVCLCgwg4G5bhEyvBjQJBB3Kg9UJDgqQN/ahyUAGqQAGYuNigkhFqhyh8Dli4CVXIETkARGA4GRSFMSYb3AkwMKAdThQ/eM0Q2I5AgAE1OCxAAKOFlxBvyAoMAEDIFSKTirC45AZpywu5EB0z9aPFpoYBAQAh+QQFCgDuACwBAAEAEAAQAAAItADbCWxngAKQOiNSNIAwcGCAGipMQELYTNOhJQAcOniwQswBAAMWfDg0KEvGdhIoUCjQUCAVF390tCOQwIGAlgOpwPEBAkIEhjgHfmqRRYGEAUEHJnDzSIGCAEkFEiAF5cCBqFKv7SpwEyuHW3kAQMU6x0kwgQkUJOWQIweJdhp2vDGBs4EfM2MEFgiTitoiGAVEmJCx5YgolgIRVKKmbQ+sX4qwOJLRtWGDPD9CXMFU60HDgAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXRHQAKFFSoYnLgwsKGCEho4IAyiJUWHhu0URKiwoIA7ABhupIijZaABCxYGNBQIYUQ1GB8xiACwcqCCLmUWDDAgoGZDMoNCAQjQzudAELlctFtqVCAAOGdWGArQ1J0AGm1e0MpQVYO1P9AsvajaRdA0BqkmoTCqgU4fB+4IrerWoOaJSnxcCBSAh0UIXCoMGJhgxYgTHyr3OlOiZBgzJluQVcnlM8MMPY6iFPtzomFAACH5BAUKAO4ALAEAAQAQABAAAAizANsJbAfggIQKCcR4KDCwoQAIFmwgJJGhRwIADQEYwGBgAIAABTz0ANIhQEaTDdsd+KBlQzsFERCkbHiAzQgIf2Q8mNkwwxAGmbxw4DlwQZYRk4jIJEqwi5RSjZYSBeCiTKEiMJi2i6AGTRMWLbSmGJOkw6VAE4gmaLPDQztGSn7sTKlBhqtIAhGwwsJEDgMMAjgg+fJEDYGBBXAxOfJDWI4wbyQhOZxyAzhWXFQ9KVOhYUAAIfkEBQoA7gAsAQABABAAEAAACLMA3Ql0165dgQsiFBwYMHCgABgB2g04IEJCBAcSAjj08yIDgILuBkBwoKHGQChEWtloKFBAiQwV3DGwNIkBy4EFHjRAkOfVopsNHZjQoM4UDKADDxj6EGJdAaQD2cQIhO4pVHcjRmBThOLqgmYpamHZcRVFtQ8PQB2xCVTCoVkL3FE6YmTFzQo4BkEa2EdcFTUcCFzQMESILkAMW57h4uubsmWLpNH4lLjhiTk8dkGRkYVlQAA7);top:50%;left:4px;margin-top:-7px;background-size:cover}.test{flex:1;text-align:center;padding:50px 0}.test-item{display:block;width:300px;padding:30px 0;margin:0 auto 2em;background-color:#eee}.test-button,.test-item{border:1px solid #efefef}.test-button{padding:5px 15px;background-color:#efefef}.test-dialog{padding:30px;text-align:left}.test-form-control{display:flex;margin-bottom:25px}.test-form-label{width:5em;line-height:32px}.test-form-input-box{flex:1}.test-form-input{width:100%;padding:0 15px;border:1px solid #efefef;outline:0;height:32px;line-height:32px}.test-form-tips{margin-top:1em;color:#646464}.test-form-button{min-width:100px;text-align:center;display:inline-block;padding:10px 22px;border:1px solid #efefef;margin-right:1em}.devtools{display:flex;position:relative}.devtools,.devtools-content{height:100%;width:100%}.devtools-inspector,.devtools-inspector-bg{position:absolute;left:0;top:0;width:28px;height:24px;transform:translateX(-2px);cursor:default}.devtools-inspector-bg{background-color:#f3f3f3}.devtools-inspector{z-index:3;-webkit-mask-image:url(../images/toolbarButtonGlyphs.png);-webkit-mask-size:352px 168px;-webkit-mask-position:-320px -120px;background-color:#5a5a5a}.devtools-inspector.devtools-inspector-active{background:#4280eb}.forbidden{flex:1}.forbidden-body{width:800px;padding:60px 0;margin:0 auto}.forbidden-tips{margin-top:20px}.forbidden-tips li{display:flex}.forbidden-tips li p{color:#888}.toast{position:absolute;padding:5px 0;top:0;left:0;width:100%;text-align:center;box-shadow:0 4px 10px #999;z-index:8}.toast-success{background-color:#48c23d;color:#fff}.toast-error{background-color:#f55c23;color:#fff}.toast .icon-info{display:inline-block;width:14px;height:14px;vertical-align:middle;background:url(../images/info-white.png);vertical-align:-1px;margin-right:5px}.tabbar{display:flex;background-color:#f7f7fa;border-top:1px solid;position:relative;z-index:4}.tabbar-top{align-items:center;border:0;border-bottom:1px solid}.tabbar-top .tabbar-item{padding:12px 0;text-align:center}.tabbar-top .tabbar-item.tabbar-item-selected .tabbar-label .tabbar-label-indicator{position:absolute;left:0;bottom:-12px;width:100%;border-bottom:3px solid}.tabbar-top .tabbar-label{position:relative;font-size:14px;display:inline-block}.tabbar-bottom{border:0;border-top:1px solid}.tabbar-item{flex:1;padding:7px 0 0}.tabbar-icon{display:block;margin:0 auto;width:24px;height:24px}.tabbar-icon img{display:block;width:100%;height:100%}.tabbar-icon+.tabbar-label{margin-top:5px}.tabbar-label{text-align:center;color:#888;font-size:12px}.music-card{position:absolute;left:100%;top:0;padding:15px;z-index:3;background:#fff;box-shadow:1px 1px 10px #ccc;margin-left:8px;display:flex;align-items:center}.music-card:before{border:9px solid transparent;border-right-color:#ececec;margin-top:-6px}.music-card:after,.music-card:before{content:"";display:block;position:absolute;right:100%;top:50%}.music-card:after{border:7px solid transparent;border-right-color:#fff;margin-top:-4px}.music-card-main{text-align:left}.music-card-status{color:#888;min-width:60px}.music-card-name{white-space:nowrap}.music-card-opr{margin-left:2em}.music-card-play-icon{background:url(../images/play.png)}.music-card-pause-icon,.music-card-play-icon{display:inline-block;width:30px;height:30px;vertical-align:middle}.music-card-pause-icon{background:url(../images/pause.png)}.wx-modal .wx-modal-mask{z-index:inherit;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:inherit;z-index:5;position:absolute;background-color:rgba(0,0,0,.6);animation:a ease .3s forwards}.wx-modal .wx-modal-dialog{position:absolute;z-index:7;width:85%;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fafafc;text-align:center;border-radius:3px;overflow:hidden}.wx-modal .wx-modal-dialog-hd{padding:1.2em 20px .5em}.wx-modal .wx-modal-dialog-hd strong{font-weight:400;font-size:17px}.wx-modal .wx-modal-dialog-bd{text-align:left;padding:0 20px;font-size:15px;color:#888;word-wrap:break-word;word-break:break-all}.wx-modal .wx-modal-dialog-ft{position:relative;line-height:42px;margin-top:20px;font-size:17px;display:flex}.wx-modal .wx-modal-dialog-ft:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #d5d5d6;color:#d5d5d6;transform-origin:0 0;transform:scaleY(.5)}.wx-modal .wx-modal-dialog-ft a{position:relative;display:block;flex:1;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.wx-modal .wx-modal-dialog-ft a[hidden]{display:none}.wx-modal .wx-modal-dialog-ft a:active{background-color:#eee}.wx-modal .wx-modal-btn-primary{color:#3cc51f}.wx-modal .wx-modal-btn-default{color:#000}.wx-modal .wx-modal-btn-default:before{content:" ";position:absolute;right:0;top:0;width:1px;height:100%;border-right:1px solid #d5d5d6;color:#d5d5d6;transform-origin:100% 0;transform:scaleX(.5)}@keyframes a{0%{opacity:0}to{opacity:1}}.wx-toast{position:absolute;z-index:13;width:7.6em;min-height:7.6em;top:180px;left:50%;margin-left:-3.8em;background:rgba(40,40,40,.75);text-align:center;border-radius:5px;color:#fff;font-size:16px;line-height:normal}.wx-toast-icon{margin-top:14px;margin-bottom:8px;font-family:weui;font-style:normal}.wx-toast-content{margin:0 0 15px}.wx-icon-loading{margin:30px auto 5px;width:38px;height:38px;vertical-align:baseline;display:inline-block;-webkit-animation:b 1s steps(12) infinite;animation:b 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;background-size:100%}@-webkit-keyframes b{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes b{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}.wx-toast-mask{position:absolute;z-index:5;background-color:transparent;width:100%;height:100%;top:0;left:0}.wx-toast-image-icon{height:60px;width:60px;margin-left:32px;margin-top:14px;margin-bottom:8px;background-size:cover}.wx-action-sheet{position:absolute;left:0;bottom:0;transform:translateY(100%);backface-visibility:hidden;z-index:7;width:100%;background-color:#fff;transition:transform .3s}.wx-action-sheet-show{transform:translate(0)}.wx-action-sheet-menu{background-color:#fff}.wx-action-sheet-mask{position:absolute;z-index:5;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:rgba(0,0,0,.6);display:block}.wx-action-sheet-item{background-color:#fff;position:relative;padding:10px 0;text-align:center;font-size:18px;display:block}.wx-action-sheet-item:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #d9d9d9;color:#d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-action-sheet-item:active{background-color:#ececec}.wx-action-sheet-item-cancel{background-color:#fff;font-size:18px}.wx-action-sheet-item-cancel .wx-action-sheet-middle{background-color:#efeff4;height:6px;width:100%}.wx-action-sheet-item-cancel .wx-action-sheet-cancel{background-color:inherit;position:relative;padding:10px 0;text-align:center;font-size:inherit;display:block}.wx-action-sheet-item-cancel .wx-action-sheet-cancel:before{content:" ";position:absolute;left:0;top:0;width:100%;border-top:1px solid #d9d9d9;color:#d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-action-sheet-item-cancel .wx-action-sheet-cancel:active{background-color:#ececec}.wx-picker-mask{z-index:5;height:100%;top:0;transition:background-color .3s;background-color:rgba(0,0,0,.6)}.wx-picker,.wx-picker-mask{position:absolute;width:100%;left:0}.wx-picker{bottom:274px;z-index:4;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateY(100%);transition:transform .3s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.wx-picker-show{transform:translate(0)}.wx-picker-hd{display:flex;padding:10px 15px;background-color:#fbf9fe;position:relative;text-align:center}.wx-picker-action:first-child{text-align:left}.wx-picker-action:last-child{text-align:right}.wx-picker-action{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;color:#586c94;text-decoration:none}.wx-picker-bd{display:flex;position:relative;background-color:#fff;height:238px;overflow:hidden}.wx-picker-group{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;height:100%;border-left:1px solid #e5e5e5;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.wx-picker-mask2{top:0;height:100%;margin:0 auto;background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.wx-picker-indicator,.wx-picker-mask2{position:absolute;left:0;width:100%;z-index:1;transform:translateZ(0)}.wx-picker-indicator{height:34px;top:102px}.wx-picker-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-picker-indicator:after,.wx-picker-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.wx-picker-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-picker-content{position:absolute;top:0;left:0;width:100%}.wx-picker-item{padding:5px 0 4px;text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:25px}.wx-picker-item-disabled{color:#999}.wx-picker-mask{z-index:inherit;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:inherit;z-index:2;position:absolute;background-color:rgba(0,0,0,.6);animation:a ease .3s forwards}.wx-icon{display:inline-block;font-size:0}.wx-icon i{font:normal normal normal 14px/1 weui}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx1AAABfAAAAFZjbWFw64JcfgAAAhQAAAI0Z2x5ZvCBJt8AAARsAAAHLGhlYWQIuM5WAAAA4AAAADZoaGVhCC0D+AAAALwAAAAkaG10eDqYAAAAAAHUAAAAQGxvY2EO3AzsAAAESAAAACJtYXhwAR4APgAAARgAAAAgbmFtZeNcHtgAAAuYAAAB5nBvc3RP98ExAAANgAAAANYAAQAAA+gAAABaA+gAAP//A+kAAQAAAAAAAAAAAAAAAAAAABAAAQAAAAEAAKZXmK1fDzz1AAsD6AAAAADS2MTEAAAAANLYxMQAAAAAA+kD6QAAAAgAAgAAAAAAAAABAAAAEAAyAAQAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOqAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqDwPoAAAAWgPpAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAAAAAUAAAADAAAALAAAAAQAAAFwAAEAAAAAAGoAAwABAAAALAADAAoAAAFwAAQAPgAAAAQABAABAADqD///AADqAf//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAMQAAAAAAAAADwAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAAAAAALgBmAKIA3gEaAV4BtgHkAgoCRgKIAtIDFANOA5YAAAACAAAAAAOvA60ACwAXAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEB9bz5BQX5vLv5BQX5u6zjBQXjrKvjBQXjA60F+by7+gQE+ru8+fy0BOSrq+QEBOSrq+QAAAIAAAAAA7MDswALACEAAAEOAQceARc+ATcuAQMHBiIvASY2OwERNDY7ATIWFREzMhYB7rn7BQX7ucL+BQX+JHYPJg92DgwYXQsHJggKXRgMA7MF/sK5+wUF+7nC/v31mhISmhIaARcICwsI/ukaAAADAAAAAAOtA6sACwAZACIAAAEOAQceARc+ATcuAQMUBisBIiY1ETY3MxYXJy4BNDYyFhQGAfC49gUF9ri++gUF+poKBxwHCgEILAgBHxMZGSYZGQOrBfq+uPYFBfa4vvr9dQcKCgcBGggBAQg5ARklGRklGQAAAAACAAAAAAOSA8IADQAfAAABDgEHERYEFzYkNxEuARMBBi8BJj8BNh8BFjclNh8BFgH0gchUCQEDkZEBAwlUyHr+vwQDlAMCFQMDegMEAScEAxMDA8IePRz+w9TwJCTw1AE9HD3+3f7DAgOZBAMcBANdAgL2AwMTBAADAAAAAAOCA7AADQAZACIAAAEOAQcRHgEXPgE3ES4BBzMWFQcGByMmLwE0EyImNDYyFhQGAfV7wVEJ+YuL+QlRwZIuCQoBBCIEAQogDhISHBISA7AdOxr+z8vnIyPnywExGjv3AQjYBAEBBNgI/rETHBISHBMAAAACAAAAAAO9A70AFwAjAAABLgE/AT4BHwEWMjclNhYXJxYUBwEGJiclJgAnBgAHFgAXNgABIAUCBQMFEAdiBxIGARMHEQYCBgb+0AYQBgIcBf79x77/AAUFAQC+xwEDAccGEQcEBwIFTAQF5QYBBgIGEAb+1QYBBqzHAQMFBf79x77/AAUFAQAABAAAAAADrwOtAAsAFwAtADEAAAEOAQceARc+ATcuAQMuASc+ATceARcOARMFDgEvASYGDwEGFh8BFjI3AT4BJiIXFjEXAfW8+QUF+by7+QUF+bus4wUF46yr4wUF4yv+9gcRBmAGDwUDBQEGfQUQBgElBQELDxQBAQOtBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAiLdBQEFSQUCBgQHEQaABgUBIQUPCwQBAQAAAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUIGQzLDSALAh0MHgsNCgr9uQscCwGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA7gDuAALABEAAAEGAgceARc2JDcmABMhETMRMwHuvP0FBf28xQEABQX/ADr+2i35A7gF/wDFvP0FBf28xQEA/d4BTv7fAAAEAAAAAAOvA60AAwAPABsAIQAAARYxFwMOAQceARc+ATcuAQMuASc+ATceARcOAQMjFTM1IwLlAQHyvPkFBfm8u/kFBfm7rOMFBeOsq+MFBePZJP3ZAoMBAQEsBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAi39JAADAAAAAAPDA8MACwAbACQAAAEGAAcWABc2ADcmAAczMhYVAw4BKwEiJicDNDYTIiY0NjIWFAYB7sD+/AUFAQTAyQEHBQX++d42CAoOAQUEKgQFAQ4KIxMaGiYaGgPDBf75ycD+/AUFAQTAyQEH5woI/tMEBgYEASwIC/4oGicZGScaAAAEAAAAAAPAA8AACAASAB4AKgAAAT4BNCYiBhQWFyMVMxEjFTM1IwMGAAcWBBc+ATcmAgMuASc+ATceARcOAQH0GCEhMCEhUY85Ock6K83++AQEAQjNuf8FBf/Hq+MEBOOrq+MEBOMCoAEgMSAgMSA6Hf7EHBwCsQT++M25/wUF/7nNAQj8pwTjq6vjBATjq6vjAAAAAwAAAAADpwOnAAsAFwAjAAABBycHFwcXNxc3JzcDDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgECjpqaHJqaHJqaHJqatrn1BQX1ubn1BQX1uajfBATfqKjfBATfAqqamhyamhyamhyamgEZBfW5ufUFBfW5ufX8xwTfqKjfBATfqKjfAAAAAwAAAAAD6QPpABEAHQAeAAABDgEjLgEnPgE3HgEXFAYHAQcBPgE3LgEnDgEHHgEXAo41gEmq4gQE4qqq4gQvKwEjOf3giLUDA7WIiLUDBLSIASMrLwTiqqriBATiqkmANP7dOQEZA7WIiLUDA7WIiLUDAAACAAAAAAPoA+gACwAnAAABBgAHFgAXNgA3JgADFg4BIi8BBwYuATQ/AScmPgEyHwE3Nh4BFA8BAfTU/uUFBQEb1NQBGwUF/uUDCgEUGwqiqAobEwqoogoBFBsKoqgKGxMKqAPoBf7l1NT+5QUFARvU1AEb/WgKGxMKqKIKARQbCqKoChsTCqiiCgEUGwqiAAAAABAAxgABAAAAAAABAAQAAAABAAAAAAACAAcABAABAAAAAAADAAQACwABAAAAAAAEAAQADwABAAAAAAAFAAsAEwABAAAAAAAGAAQAHgABAAAAAAAKACsAIgABAAAAAAALABMATQADAAEECQABAAgAYAADAAEECQACAA4AaAADAAEECQADAAgAdgADAAEECQAEAAgAfgADAAEECQAFABYAhgADAAEECQAGAAgAnAADAAEECQAKAFYApAADAAEECQALACYA+ndldWlSZWd1bGFyd2V1aXdldWlWZXJzaW9uIDEuMHdldWlHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQB3AGUAdQBpAFIAZQBnAHUAbABhAHIAdwBlAHUAaQB3AGUAdQBpAFYAZQByAHMAaQBvAG4AIAAxAC4AMAB3AGUAdQBpAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzc19jaXJjbGURc3VjY2Vzc19ub19jaXJjbGUHd2FpdGluZw53YWl0aW5nX2NpcmNsZQR3YXJuC2luZm9fY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xvc2UAAAAA") format("truetype")}[class*=" wx-icon-"]:before,[class^=wx-icon-]:before{margin:0}.wx-icon-success{color:#09bb07}.wx-icon-success:before{content:"\EA06"}.wx-icon-info{color:#10aeff}.wx-icon-info:before{content:"\EA03"}.wx-icon-warn{color:#f76260}.wx-icon-warn:before{content:"\EA0B"}.wx-icon-waiting{color:#10aeff}.wx-icon-waiting:before{content:"\EA09"}.wx-icon-safe_success{color:#09bb07}.wx-icon-safe_success:before{content:"\EA04"}.wx-icon-safe_warn{color:#ffbe00}.wx-icon-safe_warn:before{content:"\EA05"}.wx-icon-success_circle{color:#09bb07}.wx-icon-success_circle:before{content:"\EA07"}.wx-icon-success_no_circle{color:#09bb07}.wx-icon-success_no_circle:before{content:"\EA08"}.wx-icon-waiting_circle{color:#10aeff}.wx-icon-waiting_circle:before{content:"\EA0A"}.wx-icon-circle{color:#c9c9c9}.wx-icon-circle:before{content:"\EA01"}.wx-icon-download{color:#09bb07}.wx-icon-download:before{content:"\EA02"}.wx-icon-info_circle{color:#09bb07}.wx-icon-info_circle:before{content:"\EA0C"}.wx-icon-cancel{color:#f43530}.wx-icon-cancel:before{content:"\EA0D"}.wx-icon-search{color:#b2b2b2}.wx-icon-search:before{content:"\EA0E"}.wx-icon-clear{color:#b2b2b2}.wx-icon-clear:before{content:"\EA0F"}[class*=" wx-icon-"]:before,[class^=wx-icon-]:before{box-sizing:border-box}.weui-gallery-wrapper{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:7;background-color:#000}.weui-gallery-body{flex:1;overflow:hidden}.weui-gallery{display:flex;height:100%}.weui-gallery__img{flex:1;background:50% no-repeat;background-size:contain} \ No newline at end of file +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;text-decoration:none}a:visited{color:inherit}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif;color:#333}label{cursor:pointer}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}a{color:#586c94}body{font-size:14px}::-webkit-scrollbar{width:4px;height:6px}::-webkit-scrollbar-thumb{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#c3c3c3}::-webkit-scrollbar-track{background-color:#e4e4e4}.main,body,body>div,body>div>div,html{height:100%}body{line-height:1.6;color:#000;font-family:Helvetica Neue,Helvetica,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;background-color:#f0f0f0;overflow:hidden}.main{flex-direction:column}.body,.main{display:flex}.body{position:relative;flex:1;border-top:1px solid #dbdbdb}.app-drag{-webkit-app-region:drag}.app-no-drag{-webkit-app-region:no-drag;cursor:pointer}.app-up-data{display:flex;justify-content:center;align-items:center}.ui-button{display:inline-block;vertical-align:middle;padding:0 20px;min-width:60px;height:30px;line-height:30px;border-radius:2px;font-size:14px;text-align:center;cursor:pointer}.ui-button.ui-button-large{padding:0 32px;min-width:65px;height:40px;line-height:40px}.ui-button.ui-button-default{background-color:#fff;color:#000;border:1px solid #888}.ui-button.ui-button-default:hover{background-color:#f0f0f0}.ui-button.ui-button-default.ui-button-disabled{cursor:default;background-color:#f0f0f0;color:#646464;border:1px solid #d8d8d8}.ui-button.ui-button-primary{background-color:#48c23d;color:#fff;border:1px solid #48c23d}.ui-button.ui-button-primary:hover{background-color:#2b9e20}.ui-button.ui-button-primary.ui-button-disabled{background-color:rgba(72,194,61,.6);border:1px solid rgba(72,194,61,.6)}.ui-button+.ui-button{margin-left:5px}.ui-button.ui-button-dropdown{min-width:auto;padding-left:8px;padding-right:8px;border-left-color:hsla(0,0%,100%,.5)}.ui-button-group{font-size:0}.ui-button-group .ui-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui-button-group .ui-button:not(:last-child){border-right:0}.ui-button-group .ui-button:not(:first-child):not(:last-child){border-radius:0}.ui-button-group .ui-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ui-button-group .ui-button+.ui-button{margin-left:0}.ui-input{display:flex;width:100%;padding:10px;line-height:18px;background-color:#fff;border:1px solid #d8d8d8;outline:0}.ui-checkbox{display:flex;align-items:center}.ui-checkbox input[type=checkbox]{position:absolute;left:-9999em}.ui-checkbox input[type=checkbox]:checked~.ui-icon-square-o,.ui-checkbox input[type=checkbox]~.ui-icon-check-square{display:none}.ui-checkbox input[type=checkbox]:checked~.ui-icon-check-square{display:block}.ui-checkbox span{margin-left:10px}.ui-radio{display:flex;align-items:center}.ui-radio input[type=radio]{position:absolute;left:-9999em}.ui-radio input[type=radio]:checked~.ui-icon-circle-o,.ui-radio input[type=radio]~.ui-icon-dot-circle-o{display:none}.ui-radio input[type=radio]:checked~.ui-icon-dot-circle-o{display:block}.ui-radio span{margin-left:10px}.ui-radio-button{display:inline-block}.ui-radio-button input[type=radio]{position:absolute;left:-9999em}.ui-radio-button input[type=radio]:checked+span{border-color:#48c23d;color:#48c23d}.ui-radio-button span{display:inline-block;padding:0 10px;border:1px solid #d8d8d8;background-color:#fff;height:30px;line-height:30px;border-radius:2px;text-align:center;min-width:80px;font-size:14px}.ui-radio-button+.ui-radio-button:not(:first-child){margin-left:6px}.ui-form-group{display:flex}.ui-form-group+.ui-form-group{margin-top:30px}.ui-form-label{width:4em;line-height:40px;text-align:right;margin-right:10px}.ui-form-input-box{flex:1}.ui-form-input-box .ui-input{margin-bottom:10px}.ui-input-tips{color:#646464}.ui-input-warn-tips{color:#f55c23}.ui-qrcode-box{text-align:center}.ui-qrcode{width:180px;height:180px;vertical-align:middle}.ui-qrcode-tips{margin-top:20px}.about_control{display:flex;flex-direction:column}.about_wrap{display:flex;margin:10px 0 10px 50px}.menubar-wrapper{display:flex;padding:10px}.menubar{display:flex}.menubar-item{position:relative;padding:0 10px;color:#646464}.menubar-item-sub{position:absolute;top:100%;left:0;width:160px;z-index:14;display:flex;flex-direction:column;border:1px solid #c5c5c5;background-color:#f0f0f0}.menubar-item-sub-item{padding:3px 15px;color:#000;font-size:14px}.menubar-item-sub-item-sep{border-top:1px solid #c5c5c5}.titlebar{flex:1;text-align:center}.operation-area{display:flex}.operation-item{display:inline-block;margin:0 4px}.operation-close-icon{width:19px;height:19px;background:url(../images/closeD.png)}.operation-close-icon,.operation-max-icon{display:inline-block;vertical-align:middle}.operation-max-icon{width:20px;height:20px;background:url(../images/max.png)}.operation-recover-icon{background:url(../images/recover_grey.png)}.operation-min-icon,.operation-recover-icon{display:inline-block;width:20px;height:20px;vertical-align:middle}.operation-min-icon{background:url(../images/min.png)}.lunch-toolbar{display:flex;padding:5px 10px;cursor:pointer}.lunch-toolbar-win .create-toolbar-setting{margin-left:inherit}.lunch-toolbar-win .lunch-toolbar-close{margin-left:auto}.lunch-toolbar-close:hover .lunch-toolbar-close-icon{background:url(../images/close-hover.png) no-repeat}.lunch-toolbar-close-icon{display:inline-block;width:19px;height:19px;vertical-align:middle;background:url(../images/close.png)}.lunch-body{text-align:center}.lunch-logo-wrapper{margin-bottom:20px}.lunch-logo{display:inline-block;width:80px;height:80px;vertical-align:middle;background:url(../images/logo.png);background-size:cover}.lunch-name{color:#48c23d}.lunch-line{height:1px;margin:30px 0;background-color:#d8d8d8}.lunch-qrcode{margin-bottom:20px;display:flex;justify-content:center}.lunch-qrcode webview{width:100%;height:250px}.create-toolbar{padding:10px 10px 7px;overflow:hidden}.create-toolbar-win .create-toolbar-close{float:right}.create-toolbar-win .create-toolbar-setting{float:left;cursor:pointer}.create-toolbar-win .create-toolbar-back{float:left;cursor:pointer;margin-right:10px}.create-toolbar-close{float:left}.create-toolbar-close:hover .create-toolbar-close-icon{background:url(../images/close-hover.png) no-repeat}.create-toolbar-close:hover .create-toolbar-back-icon{display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backD.png)}.create-toolbar-close:hover span{color:#000}.create-toolbar-close span{display:inline-block;vertical-align:middle;margin-left:10px;color:#646464}.create-toolbar-back{float:right;color:#646464;font-size:12px;cursor:pointer}.create-toolbar-close-icon{display:inline-block;width:19px;height:19px;vertical-align:middle;background:url(../images/close.png)}.create-toolbar-setting-icon{display:inline-block;vertical-align:-6px;margin-left:5px;border:7px solid transparent;border-top-color:#9a9a9a}.create-toolbar-setting{margin-left:auto;color:#646464;font-size:12px;cursor:pointer}.create-toolbar-back:hover .create-toolbar-back-icon{display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backD.png)}.create-toolbar-back-icon{cursor:pointer;display:inline-block;width:10px;height:19px;vertical-align:middle;background:url(../images/backG.png);vertical-align:-6px}.create-body{text-align:center}.create-avatar-wrapper{position:relative;margin-bottom:30px;display:inline-block}.create-avatar-toggle{position:absolute;right:0;bottom:0;z-index:5}.create-avatar-toggle:hover .create-avatar-toggle-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/trans_green.png)}.create-avatar-toggle-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/trans_grey.png)}.create-avatar{width:60px;height:60px;border-radius:50%;vertical-align:middle}.create-name{margin-bottom:40px;font-size:14px}.create-select-box{display:flex;width:400px;margin:0 auto 20px;padding:18px 20px;background-color:#fff;cursor:pointer;border-radius:2px;border:1px solid #fff;align-items:center}.create-select-box.create-select-box-active,.create-select-box:hover{border:1px solid #48c23d;background-color:#ecf8eb}.create-select-box.create-select-box-active .create-select-icon-new,.create-select-box:hover .create-select-icon-new{display:inline-block;width:36px;height:36px;vertical-align:middle;background:url(../images/newBD.png)}.create-select-icon-new{background:url(../images/newBG.png)}.create-select-icon-new,.create-select-icon-url{display:inline-block;width:36px;height:36px;vertical-align:middle}.create-select-icon-url{background:url(../images/url.png)}.create-select-content{flex:1;text-align:left}.create-select-title{font-size:14px}.create-select-desc{color:#646464;font-size:14px}.create-choose-wrapper{position:relative}.create-choose-wrapper:before{content:"";position:absolute;top:0;left:40px;right:40px;border-top:1px solid #d8d8d8}.create-choose-wrapper:after{content:"";position:absolute;bottom:0;left:40px;right:40px;border-bottom:1px solid #d8d8d8}.create-choose{padding:30px 0 15px;text-align:center;height:173px;overflow-y:auto;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.create-choose-item{display:inline-block;margin:0 15px 15px;cursor:pointer}.create-choose-item:hover .create-choose-icon{position:relative}.create-choose-item:hover .create-choose-icon:before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.2)}.create-choose-item:hover .create-choose-icon:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid #48c23d;border-radius:4px}.create-choose-item:hover .create-choose-name{color:#48c23d}.create-choose-item-new .create-choose-icon{border:1px dashed #888;padding:22px}.create-choose-item-new .create-choose-icon:after{display:none}.create-choose-icon{position:relative;margin-bottom:10px;background-color:#fff;border-radius:4px}.create-choose-icon:hover .create-choose-item-del{display:block}.create-choose-icon img{display:block;width:82px;height:82px;border-radius:4px}.create-choose-item-del{position:absolute;text-align:center;z-index:2;display:none;left:0;bottom:0;width:100%;background-color:rgba(0,0,0,.2);font-size:0;padding:4px 0}.create-choose-item-del-icon{display:inline-block;width:14px;height:14px;vertical-align:middle;background:url(../images/delete_white.png)}.create-choose-icon-new{display:inline-block;width:36px;height:36px;vertical-align:middle;background:url(../images/new.png)}.create-choose-name{color:#646464;text-align:center;text-overflow:ellipsis;overflow:hidden;width:82px;white-space:nowrap}.create-choose-url{margin-top:20px}.create-choose-btn-wrapper{position:relative;display:inline-block;margin:0 auto;padding:7px 25px;background-color:#fff;border-radius:4px;cursor:pointer;color:#888}.create-choose-btn-wrapper p{display:inline-block;vertical-align:middle;margin-left:6px}.create-choose-btn-wrapper:hover{background-color:#f0f0f0;color:#646464}.create-choose-btn-wrapper:hover:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid #48c23d;border-radius:4px}.create-choose-btn-wrapper:hover .create-choose-btn-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/url-small.png)}.create-choose-btn-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/url-small-hover.png)}.create-form{display:inline-block}.create-form-item{display:flex;margin-bottom:30px}.create-form-label{width:4em;margin-right:1em;text-align:right;padding-top:5px}.create-form-input-box{text-align:left}.create-form-input{width:372px;padding:2px 10px;border:1px solid #d8d8d8;border-radius:2px;outline:0;line-height:32px;font-size:14px}.create-form-input-with-pointer{cursor:pointer}.create-form-tips{color:#888}.create-form-tips,.create-form-tips-warn{font-size:14px;text-align:left;margin-top:10px}.create-form-tips-warn{color:#f55c23}.create-form-extra{margin-left:10px}.create-form-extra-button{display:inline-block;border:1px solid #d8d8d8;background-color:#fff;color:#000;padding:7px 20px;border-radius:2px}.create-form-extra-button:hover{background-color:#f0f0f0}.create-form-footer{margin-top:57px;padding:20px 0;border-top:1px solid #d8d8d8;text-align:right}.create-form-button-default{display:inline-block;border:1px solid #d8d8d8;background-color:#fff;color:#000;margin-right:10px;padding:5px 20px;border-radius:2px;min-width:100px;text-align:center}.create-form-button-default:hover{background-color:#f0f0f0}.create-form-button-primary{display:inline-block;background-color:#48c23d;color:#fff;margin-right:20px;padding:5px 20px;border-radius:2px;min-width:100px;text-align:center}.create-form-button-primary:hover{background-color:#2b9e20}.create-quick-checkbox{display:flex;margin-top:-27px;margin-left:67px;margin-bottom:0}.create-quick-checkbox input{margin-top:5px}.create-form-tourist{color:#48c23d;float:right}.create-tourist-icon-info{margin-left:5px;position:relative;display:inline-block;vertical-align:middle;width:16px;height:16px;background:url(../images/info_grey.png) no-repeat}.create-tourist-icon-info:hover{background:url(../images/info_dark.png) no-repeat}.create-tourist-icon-info:hover .create-tourist-popover{display:block}.create-tourist-popover{display:none;margin-top:10px;position:absolute;border-radius:2px;top:100%;right:-17px;padding:15px;background-color:#fff;width:200px;box-shadow:1px 2px 10px #ccc;color:#000}.create-tourist-popover:before{content:"";position:absolute;bottom:100%;right:20px;border:7px solid transparent;border-bottom-color:#ccc}.create-tourist-popover:after{content:"";position:absolute;bottom:100%;right:20px;border:7px solid transparent;border-bottom-color:#fff}.popup{display:none;width:600px;position:fixed;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:8}.popup-hd{padding:20px 0;text-align:center}.popup-bd{padding:20px 30px 40px;text-align:center}.popup-icon-info{width:24px;height:24px;background:url(../images/info.png)}.popup-desc,.popup-icon-info{display:inline-block;vertical-align:middle}.popup-desc{margin-left:10px;font-size:14px}.popup-ft{padding:20px 0;border-top:1px solid #d8d8d8;text-align:right}.popup-button-default{border:1px solid #d8d8d8;background-color:#fff;color:#000;border-radius:2px}.popup-button-default,.popup-button-primary{display:inline-block;margin:0 15px;padding:5px 20px}.popup-button-primary{background-color:#48c23d;color:#fff;border-radius:2px}.toolbar{display:flex;padding:10px 12px;background:#efefef}.toolbar-avatar,.toolbar-avatar-noproject{position:relative;cursor:pointer}.toolbar-avatar:before{content:"";position:absolute;left:-10px;top:-10px;right:-14px;bottom:-10px;background:#fff}.toolbar-avatar img{position:relative;display:block;width:30px;height:30px;border:1px solid #efefef;border-radius:50%}.toolbar-avatar-noproject{margin-right:11px}.toolbar-avatar-noproject:before{display:none}.toolbar-avatar-noproject img{position:relative;display:block;width:34px;height:34px;border:1px solid #efefef;border-radius:50%}.toolbar-profile{position:absolute;width:200px;top:0;left:100%;padding:40px 0;margin-left:10px;background-color:#fff;text-align:center;border:1px solid #d8d8d8;z-index:15;box-shadow:1px 3px 15px #909090}.toolbar-profile .toolbar-profile-avatar{display:block;width:60px;height:60px;margin:0 auto 10px;border-radius:50%}.toolbar-profile .toolbar-profile-nickname{font-size:14px;margin-bottom:30px}.toolbar-profile .toolbar-profile-username{font-size:12px;color:#646464;margin-bottom:20px}.toolbar-profile .toolbar-profile-button{display:block;width:80px;margin:0 auto;padding:3px 0;text-decoration:none;color:#000;border:1px solid #646464;border-radius:2px}.toolbar-profile .toolbar-profile-button:hover{background-color:#f0f0f0}.toolbar-profile:before{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#e6e6e6;margin-left:-19px}.toolbar-profile:after{content:"";position:absolute;left:0;top:6px;border:9px solid transparent;border-right-color:#fff;margin-left:-18px}.toolbar-projects{position:relative;display:flex;padding:1px;border-right:0;background:#fff;border-right:1px solid #efefef}.toolbar-projects-logo{display:block;width:28px;height:28px}.toolbar-projects-name{padding:0 6px;line-height:28px;font-size:12px}.toolbar-location{flex:1;display:flex;position:relative;margin-right:10px}.toolbar-location-focus{border:1px solid #48c23d}.toolbar-location-input{flex:1;width:100%;padding:0 15px;outline:0;border:0}.toolbar-location-refresh{width:40px;margin-right:1px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.toolbar-location-refresh-icon{display:inline-block;width:21px;height:18px;vertical-align:middle;background:url(../images/refreshG.png)}.toolbar-location-refresh-icon:hover{display:inline-block;width:21px;height:18px;vertical-align:middle;background:url(../images/refreshD.png)}.toolbar-location-history{width:40px;margin-right:2px;background:#fff;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center}.toolbar-location-history-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downG.png)}.toolbar-location-history-icon:hover{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downD.png)}.toolbar-clear{position:relative;padding:0 10px;line-height:30px;background:#fff;cursor:pointer}.toolbar-clear p{display:flex;align-items:center}.toolbar-clear-icon-up{background:url(../images/upD.png)}.toolbar-clear-icon-down,.toolbar-clear-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle}.toolbar-clear-icon-down{background:url(../images/downD.png)}.toolbar-clear-dropdown{position:absolute;top:100%;right:0;width:250px;background-color:#fff;z-index:8;border:1px solid #f0f0f0;box-shadow:2px 2px 10px #ccc}.toolbar-clear-dropdown-item{padding:10px;display:flex}.toolbar-clear-dropdown-item:hover{background-color:rgba(72,194,61,.1)}.toolbar-clear-dropdown-item p{flex:1}.toolbar-clear-dropdown-item span{font-size:14px;color:#48c23d}.toolbar-location-recommend{position:absolute;top:100%;left:0;width:100%;z-index:14;background-color:#fff;border:1px solid #d8d8d8;margin-top:10px}.toolbar-location-recommend-item{padding:5px 10px}.toolbar-location-recommend-item-selected{background-color:#4a90e2;color:#fff}.toolbar-location-recommend-item:hover{background-color:#e9e8e9}.mobile{flex:1;padding:60px 40px;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.mobile-hd{border-bottom:1px solid #ccc;display:flex;padding:40px 95px;width:700px;margin:0 auto 30px}.mobile-hd-item{flex:1;text-align:center}.mobile-hd-item-option input{position:absolute;left:-9999em}.mobile-hd-item-option input:checked+.mobile-radio{background:url(../images/radio-selected.png)}.mobile-hd-item-option input:checked+.mobile-radio,.mobile-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;vertical-align:-4px;margin-right:5px}.mobile-radio{background:url(../images/radio.png)}.mobile-bd-step{margin-bottom:40px}.mobile-bd-title{margin-bottom:15px}.mobile-bd-step-desc{color:#646464}.mobile-bd-type{display:flex;margin-bottom:6px}.mobile-bd-type:last-child{margin-bottom:15px}.mobile-bd-type-label input{position:absolute;left:-9999em}.mobile-bd-type-label input:checked+.mobile-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;background:url(../images/radio-selected.png);vertical-align:-4px;margin-right:5px}.mobile-bd-type-desc{color:#646464;margin-left:1em}.mobile-hd-item-logo-apple{display:inline-block;width:64px;height:64px;vertical-align:middle;background:url(../images/apple.png)}.mobile-hd-item-logo-android{display:inline-block;width:66px;height:64px;vertical-align:middle;background:url(../images/android.png)}.mobile-bd{width:700px;margin:0 auto}.mobile-bd a{color:#48c23d}.mobile-bd-step-img{margin-bottom:20px;display:inline-block;width:583px;height:247px;vertical-align:middle;background:url(../images/debug-step.png)}.mobile-ft{width:700px;margin:0 auto;border-top:1px solid #ccc;padding-top:30px;text-align:center}.mobile-debug-button{display:inline-block;padding:5px 32px;line-height:30px;background-color:#48c23d;border-radius:4px;color:#fff}.mobile-debug-button:hover{background-color:#2b9e20}.mobile-verify-x5-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.mobile-verify-x5{position:absolute;padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);background-color:#fff}.mobile-verify-x5-qrcode{display:block;width:300px;height:300px;margin:0 auto 15px}.edit,.mobile-verify-x5-tips{text-align:center}.edit{flex:1;background:#fff;border-left:1px solid #d8d8d8;margin-top:-52px}.sidebar{display:flex;flex-direction:column;background-color:#fff}.sidebar-item{display:block;padding:20px 13px;text-align:center;cursor:pointer;width:56px}.sidebar-item:hover{background:#ecf8eb}.sidebar-item.sidebar-item-active{background:#48c23d}.sidebar-item.sidebar-item-active .sidebar-item-label{color:#fff}.sidebar-item.sidebar-item-active .sidebar-item-icon-detail{display:inline-block;width:16px;height:13px;vertical-align:middle;background:url(../images/detailW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-debug{display:inline-block;width:20px;height:12px;vertical-align:middle;background:url(../images/decodeW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-test{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/testW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-publish{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/publishW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-retreat{display:inline-block;width:17px;height:14px;vertical-align:middle;background:url(../images/retreatW.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-editor{display:inline-block;width:30px;height:28px;vertical-align:middle;background:url(../images/editor-highlight.png)}.sidebar-item.sidebar-item-active .sidebar-item-icon-delete{display:inline-block;width:16px;height:17px;vertical-align:middle;background:url(../images/deleteW.png)}.sidebar-item-sep{flex:1;position:relative;margin-bottom:10px}.sidebar-item-sep:before{content:"";position:absolute;left:10px;right:10px;bottom:0;border-top:1px solid #d8d8d8;z-index:5}.sidebar-item-sep:hover{background-color:#fff}.sidebar-item:last-child{margin-bottom:0}.sidebar-item-toolbar .sidebar-item{position:relative;background-color:#fff}.sidebar-item-toolbar .sidebar-item.sidebar-item-active{background:#fff}.sidebar-item-toolbar .sidebar-item.sidebar-item-active .sidebar-item-label{color:#48c23d}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-backward{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/backward_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-forward{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/forward_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-close{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/closeP_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-music{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/music_d.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-reset{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/reset_g.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-custom{display:inline-block;width:17px;height:6px;vertical-align:middle;background:url(../images/customize_green.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-icon-cache{display:inline-block;width:28px;height:23px;vertical-align:middle;background:url(../images/cache_green.png)}.sidebar-item-toolbar .sidebar-item:hover .sidebar-item-label{color:#48c23d}.sidebar-item-icon{margin-bottom:5px;display:block}.sidebar-item-icon img{display:block;width:32px;height:32px}.sidebar-item-icon-detail{display:inline-block;width:16px;height:13px;vertical-align:middle;background:url(../images/detailG.png)}.sidebar-item-icon-debug{height:12px;background:url(../images/decodeG.png)}.sidebar-item-icon-debug,.sidebar-item-icon-test{display:inline-block;width:20px;vertical-align:middle}.sidebar-item-icon-test{height:20px;background:url(../images/testG.png)}.sidebar-item-icon-publish{background:url(../images/publishG.png)}.sidebar-item-icon-music,.sidebar-item-icon-publish{display:inline-block;width:20px;height:20px;vertical-align:middle}.sidebar-item-icon-music{background:url(../images/music.png)}.sidebar-item-icon-retreat{display:inline-block;width:17px;height:14px;vertical-align:middle;background:url(../images/retreatG.png)}.sidebar-item-icon-delete{display:inline-block;width:16px;height:17px;vertical-align:middle;background:url(../images/deleteG.png)}.sidebar-item-icon-backward{background:url(../images/backward_grey.png)}.sidebar-item-icon-backward,.sidebar-item-icon-forward{display:inline-block;width:20px;height:20px;vertical-align:middle}.sidebar-item-icon-forward{background:url(../images/forward_grey.png)}.sidebar-item-icon-close{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/closeP_grey.png)}.sidebar-item-icon-editor{display:inline-block;width:30px;height:28px;vertical-align:middle;background:url(../images/editor.png)}.sidebar-item-icon-reset{display:inline-block;width:20px;height:20px;vertical-align:middle;background:url(../images/reset_grey.png)}.sidebar-item-icon-custom{display:inline-block;width:17px;height:6px;vertical-align:middle;background:url(../images/customize_grey.png)}.sidebar-item-icon-cache{display:inline-block;width:28px;height:23px;vertical-align:middle;background:url(../images/cache.png)}.sidebar-item-label{display:block;color:#646464;font-size:12px}.common-dialog,.common-dialog-show{width:600px;position:absolute;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:13}.common-dialog-show{display:block}.common-dialog-hd{padding:20px 0;text-align:center}.common-dialog-bd{padding:20px 30px;text-align:center}.common-dialog-icon-info{background:url(../images/info.png) no-repeat;display:inline-block;width:24px;height:24px;vertical-align:middle;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAjJJREFUSA21VrFOG0EQnVlb4IaShgCKRJMu/4EVo1CnoUiRwkbpksqiCkrjYEupkGiogRjZH8B/RIqEDQVlGoO4Heat2fOefeezLVjpbmdn3ry9Wc/OmGnK2G321h/E7ljhMjFtMdEa4EJ0o6+/hqWzxObPWW29l0WjPpOj0rpbe7SDAzXuiUhhEjHSMHOkG54UTanerq7ejCxDaWKDcqtfocieCsnKOHjamon/U8F86lTftEOcCRfbzeuaWHuRSs40YKYGHj2uQegH2flE9hwcoS2O4PnLzxWY2DQGM3/v7m8cYr19dP2NRH7EtkDQSKxG8tFH4shw5s/Hkk6uBIY5Pl8luQ04E6L7QD1ix6mWIqz4QTXIqWeuR1ev/Oo74oiieoJ1bIHjGnLSZ0Yq3ov8y8uWMY7cJbJrmfltEXkuQlNTMWZjunSy0IdYlyHggx9Idoy7RBmghJr5Z3d/s4KHVE7YMhbgNrihGfaEWkO+8opQ9rrUWbmN5qm7/qmAQKllwfplKHtd2gzuzLRMc1hEZ1zhWsRzBh9wG1TFGbCLQVBxUXIX8873ArdBPcelyIfPhwAnuA2aBer5fO75aHCC22URmoWr5/l+MyHABU6A3QauE2mzcKU2gyKy9N6bQtnr/Ow4lMt3N70Lo4FmodW8kdoTmO4V/BtoDf+Lvkojz6EEcu0mX7u1jaa3JTaA8lVbJjZAJyoUSu+0oB3Pkl0Oo1j4+C4GHj8mIvAGzC/xt+UJi3Hl1STMkygAAAAASUVORK5CYII=")}.common-dialog-form-title{margin-bottom:15px}.common-dialog-form-bd{font-size:0;margin-bottom:20px}.common-dialog-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.common-dialog-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 10px;padding:3px 20px;min-width:60px;border-radius:2px}.common-dialog-button-default:hover{background-color:#f0f0f0}.common-dialog-button-primary{display:inline-block;background-color:#48c23d;color:#fff;padding:4px 20px;min-width:60px;border-radius:2px}.common-dialog-button-primary:hover{background-color:#2b9e20}.common-dialog-button-primary-loading{position:relative;background-color:#2b9e20;border-color:#2b9e20;cursor:default}.common-dialog-button-primary-loading:before{content:"";position:absolute;width:14px;height:14px;background:url(data:image/gif;base64,R0lGODlhEgASAPfuADGZNTCYNDSaODKaNjOaNzWbOTacOjicPDabOUajSTuePzyeQFOqVlSqV0SjSE+oUjqdPUGhRT6fQVCpVEilTEOiRj2fQTecOzmdPU6nUUekS02nUUynUFGpVUCgRFarWUKhRej06TqePmazaUmlTUekSlesWkqlTVWrWWOyZlWrWFCoU/D48ZrNnHu+faXTp1mtXGKxZZPKlZfLmZbLmEOiRz6gQkumTny+f8Xixme0apPJlaLRpFKpVZXKl9Pp1FisW1mtXY7HkWq1bf////T59MPixdbr13q9fWSyZ+n06V6vYdns2qDQocDgwafTqanUqtHo0nS6d3a7eT+gQ8jkyYnEi+Ty5eLw4m+4cV+wYtXq1sbjx3S6dufz56nVq9Tq1b/fwUWjSYrFjVuuXnm9fM7nz47HkHW7ePj7+IPChYTChmCwY5LJlKDQorbbuI3Gj2u1bY/IkYLBha3WrmGxZHy+fozGjr7fv6HRo8fjyPL58rbbt6zWrcPhxIrFjHG5dOby5qbTqIDAgqTSptXq1VyuX3i8et3u3W+4cufz6KPRpZzOnv3+/dvt3JHIk12vYG23cK/Xsfn8+ZTKlq7XsPv9++v17MvlzN7v33O6dUymT9fr2LfbubXatmm1bNzu3V2vYarVrIHAg6jUqfP58/H48WWzaGi0a/z9/L/fwPT69bjcucLhw5vNnfb79u737n2/gJ/PoXi8e7zevZfMmdns2brdu5nNm4bDiYvGja3Xr+Hw4YXDiMHgwuv163e8eYHBhMzmzeXy5YfEibncutjs2fj8+c/n0Nrt27TatavVreDw4Wy2b57PoLrdvKTSpYjEipvOnXC4c/r9+nK5dZ3Pn7LZs8nkyt7u3vX69VqtXeLx49/v4H/AgbvdvZDIkvf799Do0bHYsvD38LLZtG63cb3evur06u/379Lp0+327cTixS+YMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InV1aWQ6NTk3ODkzNjAyNjc1REYxMTkzNTE5OTE4NTI1NTdEREMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJDNTAyQ0YxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzJDNTAyQ0UxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OWQ4ZDhhZWItNjQxOS00ODdjLWJhMjEtYTYzZDc3NDUzOWVhIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkNCQUM5NjIwQTNCQ0RGMTE5OUI3OTI2N0FCQTk1QTAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoA7gAsAAAAABIAEgAACMMA2wkcSLCgQYET3CBqB2DAAAAH2wngEc5SI4YCDBxAEKCgADyr9vAwJDAAAQgWRBR0xiKTCoMAFkRQKTBDCCUNIg4AkYCAQBqKWkQUaIGCDYFcrpgY2q4ABw0CkzHzOTTAigkCtySjGhFAAwYCnxXKOfRAkB4CrSCzwvTGEhICT1QxciMihhQxDgzs5aQSBYMKRsTBOnAAjU6VpJQQQMADGTSalkAkOMAFnSdNaskhNspFkMkGawCC4wMOEi0WmKoWGBAAIfkEBQoA7gAsAQABABAAEAAACLQA3QkU2ARMulKOSB0YOLCArF8sSr1KQ6RTuwDtBiJQ5sULoyALDGyL0G4AgYEzsET5wFBgAAIGBLjbwMTWhJYDA1yAAEAOJyE4GSKwcOFNlA5BBw6wIUGPMJlJBYKo4CQH1KQBEiQgdY5DVHcFbiTw9qbM1wgPPJQYB0VM0gs9eiBwd+iJDxA4MXwAkkAggV6MdpzCC2BBhjpabjLMIuPOmlhTEsUZ8SCohyTAXExBNWHhwIAAIfkEBQoA7gAsAQABABAAEAAACLgA2wlsl2FGFW6KorTYNHCgABqOsARSAmtPEW1fEAwkIOrIFhkoECwI0qQIET0EBI4x0ypDQ4HbOPli0I4EFy4cXg6kkkDgHCdzdL4EAIBHsZxCBQYoUEBSuZRJBRo4AEUU1KQBRIjYsahE1HYDJChIJG3IVwgeMICYcaZCUgEOHAxoN+QODio6EVAgIUHgAE3BXHxYAGDAAQcTVjgIMBAAGyRdIumIAQlGg8U6F3yIMSKGCQoGGgYEACH5BAUKAO4ALAEAAQAQABAAAAiyANsJbEfByq1CtnJQ2jBw4IA1VcyAsZXtipcQbhA49BHGjxUGFy6YwBWCRRgBAu3woXOjocAGiIrwaFejDx0KLgeqIJemA6AnUnI2FNQI2h1ZOIW+zPZsBg0ASgUCgJREjhCoUdtBxUEMRFYAYJeMMpSVgAECFnBMUaAUAIQDUIN00QEh5wAJFgxI1RLn1A24AAosqOCB7UAAE5KwIYNiwgYSCRQEyHngRAMVHUjYINAwIAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXSXINYLPDk8CRnIkMAsSZ5oGcEUZQuTGQUGEpgj6AuSDRgK9BDCCUsnAgLNuaJEgaHADz8CMXLnQUabCi4Hdhh2yV0SXSlyMnTFosmUNRGEDgSyBwwOHEoHIljFYsqUqAIREEmDatoCrA/SgGow5AHYF48g6IhxQGk7BA5EuMvAxoSBnAAItGunM0gDEAjcBRhg4ICBAS5LNHiwqUQFDxZECODrEkGEBCVqWLgAgGFAACH5BAUKAO4ALAEAAQAQABAAAAi4AN0JdAciy6MXu5rYcTBw4IBPNFrw+HKNlSp2dwQMBABI15khJQgc2KAmhxlBA5eMwkGlocAVrQrtcLcAySwJLgdmAAMqwwcpKHI2bMNrRopIC4QOROGlio4RSgcWUHIlRoyoAgvACgEk1AGsQEz9oACDYVQ3RfIYQDEBgdIGx9IwcFfjAQmNLiVgIwJlYIITYiAQCOAuQAAHPIwYGBhAQoIINhZcQNAOwAm8DQlgUKDgQAEA7RoGBAAh+QQFCgDuACwBAAEAEAAQAAAIuADbCWy3IJQdOJTGJKoxcCAAGC4GRTtDw9qLZTgEOFwiBQ0ZEAQEaOhCx5OPAQI7xNGhoKFACn3wrGl34VQKCC4HnnCih8SJOjdyNrRiJhoDMhiEDmQA5tYHFQGUChRgbEuHFVGlXkB0hMQGBFLbmbhixAYJC2FbhPBBQEMFlEJ7hAjxoJ2CCBIA5FSRiYUsgQEUWFAgICqADYReFQmjcaABDAYGBGBgpFGqFwZyAiCgV8MXQgwaBgQAIfkEBQoA7gAsAQABABAAEAAACLYA3Ql0B6EBKilI0KTwMLDhBh1DEqGxo2ZMm0gDGk6oE+PBAgEAIiR51GINAIElgJjA0FBggh2EgLkrwICBgZYDxTyRVCLCgwg4G5bhEyvBjQJBB3Kg9UJDgqQN/ahyUAGqQAGYuNigkhFqhyh8Dli4CVXIETkARGA4GRSFMSYb3AkwMKAdThQ/eM0Q2I5AgAE1OCxAAKOFlxBvyAoMAEDIFSKTirC45AZpywu5EB0z9aPFpoYBAQAh+QQFCgDuACwBAAEAEAAQAAAItADbCWxngAKQOiNSNIAwcGCAGipMQELYTNOhJQAcOniwQswBAAMWfDg0KEvGdhIoUCjQUCAVF390tCOQwIGAlgOpwPEBAkIEhjgHfmqRRYGEAUEHJnDzSIGCAEkFEiAF5cCBqFKv7SpwEyuHW3kAQMU6x0kwgQkUJOWQIweJdhp2vDGBs4EfM2MEFgiTitoiGAVEmJCx5YgolgIRVKKmbQ+sX4qwOJLRtWGDPD9CXMFU60HDgAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXRHQAKFFSoYnLgwsKGCEho4IAyiJUWHhu0URKiwoIA7ABhupIijZaABCxYGNBQIYUQ1GB8xiACwcqCCLmUWDDAgoGZDMoNCAQjQzudAELlctFtqVCAAOGdWGArQ1J0AGm1e0MpQVYO1P9AsvajaRdA0BqkmoTCqgU4fB+4IrerWoOaJSnxcCBSAh0UIXCoMGJhgxYgTHyr3OlOiZBgzJluQVcnlM8MMPY6iFPtzomFAACH5BAUKAO4ALAEAAQAQABAAAAizANsJbAfggIQKCcR4KDCwoQAIFmwgJJGhRwIADQEYwGBgAIAABTz0ANIhQEaTDdsd+KBlQzsFERCkbHiAzQgIf2Q8mNkwwxAGmbxw4DlwQZYRk4jIJEqwi5RSjZYSBeCiTKEiMJi2i6AGTRMWLbSmGJOkw6VAE4gmaLPDQztGSn7sTKlBhqtIAhGwwsJEDgMMAjgg+fJEDYGBBXAxOfJDWI4wbyQhOZxyAzhWXFQ9KVOhYUAAIfkEBQoA7gAsAQABABAAEAAACLMA3Ql0165dgQsiFBwYMHCgABgB2g04IEJCBAcSAjj08yIDgILuBkBwoKHGQChEWtloKFBAiQwV3DGwNIkBy4EFHjRAkOfVopsNHZjQoM4UDKADDxj6EGJdAaQD2cQIhO4pVHcjRmBThOLqgmYpamHZcRVFtQ8PQB2xCVTCoVkL3FE6YmTFzQo4BkEa2EdcFTUcCFzQMESILkAMW57h4uubsmWLpNH4lLjhiTk8dkGRkYVlQAA7);top:50%;left:4px;margin-top:-7px;background-size:cover}.develop{display:flex;flex:1;overflow-y:auto}.ui-icon-check-square{background:url(components/images/icon/check-square.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAQpJREFUOBFj9Dxkt/U/w38vBjIAIwPjNiZyNYPsA+llIsNiFC0DY4AytxrcFSS5gJmRmSFLuYChSaeDgZOZE2wIC9woAgx+VgGGGs1mBilOaYayS/kM3/9+B+tAcYG5kDWDGLsEhlFqPBoMkw3nwDU//f4YrgbFAE0+bYZpRvMZHERd4ApcxT0ZuvWnMDAzMoFtRtYMUoTihQUPZjFwMHEwlGvUMZgKWTB8/fOVwVcqkOHdrzdYNWMYABKYcW8SiGLwlw4B0/g0gxSguACsA0jADLEVdcBpM0wto8ch2/8wDjrNwcTJ8OMfJLTR5WB8lECECcJoQppB6vAaADMIH80EypL4FOCTA+kFAHRaS+8JaEggAAAAAElFTkSuQmCC")}.ui-icon-check-square,.ui-icon-square-o{display:inline-block;width:16px;height:16px;vertical-align:middle}.ui-icon-square-o{background:url(components/images/icon/square-o.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADdJREFUOBFjnD179u4/f/64MJABWFhY9jBMnz79P7kApJeJDItRtIwawMAwGgajYQDKFIyUZmcAr4RKhTAqEdkAAAAASUVORK5CYII=")}.ui-icon-dot-circle-o{background:url(components/images/icon/dot-circle-o.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAUFJREFUOBFjZEADgUfddH7/+53Kwszi+/vvH0mQNCszy/M/f/9sZmVinb3eetcVZC2MME7DfweW00cYJzIzMieHyUazWArbMEtxSoOln31/ynD87ZG/qx4v/fP3/9+5pjb/8xsYD/yB6WUAafY76nSw+GLW95c/nv/HBUByIDUgtSA9cAO8DztOBUng0oguDlIL0gMygBHk57///52ZbbKYXYxdAm4oPsarny8YUs/E/mRmZDJhAgUYyM/EagYZDFIL0gPSywQKbVCA4bMRmxxID0gvEyiqYKGNTSEuMZAekF4mXAqIEWcEJgImUCIBxTOpAKSHhYnlORMohYESCakGgPSA9DKBkicohYGihlgAUgvSA9IL1kNJQgIHojSnasHtLzdOlVzK/oHPJSA5kBqQWlB+ANlOcWaCGwDzP6nZGQD4ozFVi1IHZAAAAABJRU5ErkJggg==")}.ui-icon-circle-o,.ui-icon-dot-circle-o{display:inline-block;width:16px;height:16px;vertical-align:middle}.ui-icon-circle-o{background:url(components/images/icon/circle-o.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAUFJREFUOBGtkzFrhEAQRnUVkkasLK61EkklIb0E7FJZWoYUVslfSWUhV1pelU4I9iFYBbGyvcLqsLnAeWSfRDAHFzRkm9Gd783Mzs6qyslKkuTqeDw+aJp2J+0KtxBi2/f9i7RpHMcfU0Qdf4qi0Kuqepaie8/zdNu2NdM0B/dut1OapunLsjzIoGvXdR993z/gHAIA13X9alnWTRAEl4ZhjHF/2K7rlDzP923bvjmOc0sQgYLMwGEYnoXRERgNWhj2VM4s7XsURRfnMiOcLirJsuxT7l0LGsaZ58IEQgsDK+g2DZtmmPMNA0sFq7Hbc8BRAwM7NHHc/IuV1y623PPSBQMrmDCGZGkAmO/pFCkTxtXMXWhhZAWpYLZlM9ZM2NwAaGFghybquv7EeG42m/1vleBDg5b3QML/eUzT0pc+5y+Nrs4zHmUoYwAAAABJRU5ErkJggg==")}.ui-icon-times{background:url(components/images/icon/times.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQRJREFUOBHtkz0SgjAQhUkoOIOdXMKx9BJacgcKGK7AUHAPO0s7vYGeQDuvYJiBuE/NuMEQ6DVNNvvz5W12EgT/Vdf1bOoruHIlL0aCUupcVdWK+112WZbLpmlOlBvzuAVM0/QWhuGmbdutDwoYQXZa6yTLsgsHCn4wNmCAAk4FB+PHzmFFUex5DLYTiIALOgbzAjlUSrmm9hT5nm26lCEfa1DhK/xRKoQgpk58MNRYQzEQvnddd3/DBL0pVHqXF8jfbMr0cdNgyxxm2nQNqi/XCXTBTOEY9Avog/WhmH6e50fjx24B8fXwnaZM0yiNomhBP+zKoZZNibHl8BxIwNwT/pXQA5eSuc4I8M9aAAAAAElFTkSuQmCC")}.ui-icon-times,.ui-icon-times-green{display:inline-block;width:20px;height:20px;vertical-align:middle}.ui-icon-times-green{background:url(components/images/icon/times-green.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAARJJREFUOBHtk89KAzEQxiebhT6Dt/oOYlXosldBoRTq0Qf0UCxVpCdXVygFD/YJ6q1v4HYPIe2HBCdxNrt3zWX+fJlfJhlC9L/G78Ojrq8g7U14MTZUFa2vyjznecm/fMvPvir6uF5lx1z3gNOTcqtJ3xgydzEoYNaamdZ0Ox+8bjhQ8cD5gAEK+MOwKFwelsMeL8oF1+CLQAgStA0WBXIo2XRCia3dNaXOsB+rscNv+adTS2TxZjEYaryhOAi3RtEOsMPJShldc03yo0D+Zl2mjwMar8xh7prSoMIuRaAEc4Vt0F/AGCyEYvpP2fOLy8N6QHw9fKcu03Sd9lJ9en9efHKo54d/0xODYLTM+0HqL4Z7kPahrcc/Nz0AAAAASUVORK5CYII=")}.ui-icon-caret{background:url(components/images/icon/caret.png) no-repeat;display:inline-block;width:7px;height:4px;vertical-align:middle;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV9AAAABGdBTUEAALGPC/xhBQAAAC1JREFUCB1j+P///zEgxgbOMwBFZYH4LprsIyBfiQEE0BQgJMCyCAX74TqAYgDhXlFFM7BNeAAAAABJRU5ErkJggg==")}.ui-icon-dots-black{background:url(components/images/icon/dots-black.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAGCAYAAADUtS5UAAAAAXNSR0IArs4c6QAAAFBJREFUKBVjYGBgYAPiDiB+BsUgNkgMF6CaepBF/9EwSAwXoJp6kE/RLQaJ4QJUUc+Ey3Rai4MsXoTFEmxiMGXY5LCJEVRPtcQCswmNxmo+AAw8Nb3TfPFJAAAAAElFTkSuQmCC")}.ui-icon-dots-black,.ui-icon-dots-white{display:inline-block;width:30px;height:6px;vertical-align:middle}.ui-icon-dots-white{background:url(components/images/icon/dots-white.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAGCAYAAADUtS5UAAAAAXNSR0IArs4c6QAAAF5JREFUKBVj+P//PxsQdwDxMygGsdkYcACQHBBTrh5qCJBCAR047GUAqgJZig5IVw80AeRTdPAMj8VUUc+EywJai4MsXoTFEmxiMGXY5LCJ4VcPDGPqJBaYNWg0LvMBe1gM9GvKlA8AAAAASUVORK5CYII=")}.ui-icon-cross{background:url(components/images/icon/cross.png) no-repeat;width:36px;height:36px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAAALZJREFUWAntlk0OhDAIhcXr6ZynPUIPpOfryGRieAkJC4zt4rniJ4XnBwtkSX6tteMqsWkZETlKKZ9MyTXz+P/2J0bt3vuerfeEoKwGeE9BgMNxSMiBAiESAhyOQ0IOFAiREOBwHBJyoEBoOkJi7xmQOsY5ldB9z4zRAF236Uamgk7QONDRE1iy/a8d7LZGrTVVc8qR2R8cbpNQNAISIqGIQJTnDpFQRCDKc4feIGTvKWtHvd38FyGjE5K7Va6eAAAAAElFTkSuQmCC")}.ui-icon-cross,.ui-icon-sign-out{display:inline-block;vertical-align:middle}.ui-icon-sign-out{background:url(components/images/icon/sign-out.png) no-repeat;width:16px;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAQRJREFUOBGlUzsOgkAQHcVYeQo6pOIoFNzA+9BwBRISApzAK9BpQ2fBBbRE1vdWWAgqEZ3k7c73McvOikxEKeUCIXACrh2o0+dO0gcTwS0QAXfgkzDGnO1QCY0O4Ah8K8wdSGCQdalEugtU8cxzbWviLMtU0zTjj7DG3YDlAKw1G5a6rqVt2940e1VVUhSF+L4vlmXRz5rDCiwnKHt6KEmSvCV4RkUcxxHP83rzTIIrrF3vWbjfTOsLC006/8EFMEfI81x43k9i27YEQdCHL5wBTpgR/uk0TVUcx8Y3o4QkeLlGkpRlOVOnQ/oadSswfx8kMoDgv1Eekfz2mPQ5ugXdLHrODyooR69vTvKjAAAAAElFTkSuQmCC")}.ui-icon-arrow-down{background:url(components/images/icon/arrow-down.png) no-repeat;width:7px;height:4px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV9AAAABGdBTUEAALGPC/xhBQAAAFJJREFUCB1j7OzsPPb//39LBjTAyMh4gYmFhSUcKH4PWQ4o8ZiNjS2YESTY29sr+/v37wNAphJUwqGwsPAeE0iyuLj4MSsrqwOQeQCoAywBEgcAQdUXyxSBmdsAAAAASUVORK5CYII=")}.ui-icon-arrow-down,.ui-icon-arrow-left{display:inline-block;vertical-align:middle}.ui-icon-arrow-left{background:url(components/images/icon/arrow-left.png) no-repeat;width:9px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAABGdBTUEAALGPC/xhBQAAAJZJREFUKBVjZMADurq6rIHSd5lwqQEqsP/37996oLwyVkVQBauZmJhCy8rKjjKim4Sm4CBIHkURNgUoinApgCvCpwCkiGnmzJlcQF+sZmRk7AY6EuwGkAQyYEpPT/8G8sX///9LQSYiS8LYcIfjsxKuCKQLl0IURbgUYijCphCrIpDC7u5uh79//64CeioQpyKoieBUAAD4nGkGSdR+hQAAAABJRU5ErkJggg==")}.ui-icon-folder{background:url(components/images/icon/folder.png) no-repeat;width:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAABGdBTUEAALGPC/xhBQAAAFRJREFUKBVj7Orqsv/3798BBhyAiYnJoays7CAOaQam////N+KSBIkTkmfs6Oj4j88AfHKMjIz/mfApICQHdB0jRQaALBg1YHiEASg1EUowuORBegHJNxewIspBTAAAAABJRU5ErkJggg==")}.ui-icon-folder,.ui-icon-folder-open{display:inline-block;height:13px;vertical-align:middle}.ui-icon-folder-open{background:url(components/images/icon/folder-open.png) no-repeat;width:18px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAANCAYAAACkTj4ZAAAABGdBTUEAALGPC/xhBQAAAOVJREFUKBVj7Orqsv/3798BBhyAiYnJoays7CAOabgw0////xvhPCwMQvIwLYwdHR3/YRxSaUZGxv/l5eVMIH1gglQDYOqBrmWEsSkyCOiirzCDWEAMoMArVlZWhaKiou8wCVJpsEFATeeBhgl0dna+BTqXk1RDgOojYV678OvXL0syDQHZexVsENCAC0AXmZPhEpCWL0pKStfABrGwsFwAGkauQWfCwsL+ggz6xsvLexdokDE5LgKm/FMgfSCDLr9//14DSPOABEgFQAecBOkBGXQOGD5mpBoAUg/U952Nje04iA0A0AdHk7AIk6QAAAAASUVORK5CYII=")}.ui-icon-file{background:url(components/images/icon/file.png) no-repeat;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAPCAYAAADQ4S5JAAAABGdBTUEAALGPC/xhBQAAAIlJREFUKBVj7Orq+vbv3z9OBiyAhYXlSElJiS2KVEdHx39s4Nu3b/9Bct3d3QeRNTAhc5DZnJxwS22QNeHUANOclJQEUmMDdPohkBgLTAIXPXv2bJAUSJNtT0/PYbwaysvL4eZ8//6dYdKkSTYEnQTTAfMT0RpgGkc1wEICH82IL7Wia2RiYvoOANNVP1uH6FE6AAAAAElFTkSuQmCC")}.ui-icon-file,.ui-icon-selected-file{display:inline-block;width:12px;vertical-align:middle}.ui-icon-selected-file{background:url(components/images/icon/selected-file.png) no-repeat;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAYAAAAiYZ4HAAAABGdBTUEAALGPC/xhBQAAAK1JREFUKBVjTDuTxvr+13sWBixgtdXq7+jCjF6H7X8yAgG6BAPDf2YGBsZzW20OmKLIeRyy/Y8NfP796T9IzuuI/SlkDUzIHGQ2DwsvmMvCwGKErAmnBpjmyYZzmJkZmI1hmvBqYGdmZ8i7kMrAyMDIBHS2ie8RpxMMuPyA7i+Yn/DaAHMWiIb5iWgNMM0jUgM4lf769wsWCARpRp/Dju//M/7jIqgSqIDxP9M3ADGObkTC6ngSAAAAAElFTkSuQmCC")}.ui-icon-editor{background:url(components/images/icon/editor.png) no-repeat;width:22px;height:20px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABGdBTUEAALGPC/xhBQAAARhJREFUOBFj7Ozs3Pr//38vBuqCrUw0MBTkRG+Gjo6O/9R1LAPYTCZqGwozb9RgWEgwsMBZWBh9fX2cv379mmZubp7q6Oj4B5g0Hc3MzA6fPHlyNhsbW1ZRUdF3LNrAQjjDGGTo79+/1zIyMs4EGQpSDUyaTiA2SAwkB1JDssFAl24AatpRXl5+AqS5u7tbkYmJ6T6IDRXbAVUDEsIAOF0MdNV6oGpHoCsZQbr+/ftnzMzMfBbEhoo5QtWAhDAAToOBrpoBVL2zq6urBqpL28jI6CqIDRXbCVUDlUalcBoMUgbSCHTVnf3797MA6QOg8IWy7+AzFGzFaJaGhTTeMIYpIoemmcGMtIg8kA9BLt5Kjlfx6QEmzW0Aozhvf2uvMBsAAAAASUVORK5CYII=")}.ui-icon-editor,.ui-icon-selected-editor{display:inline-block;vertical-align:middle}.ui-icon-selected-editor{background:url(components/images/icon/selected-editor.png) no-repeat;width:30px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAcCAYAAAB2+A+pAAAABGdBTUEAALGPC/xhBQAAAm9JREFUSA29lj2OE0EQhT32GC2sj0HmkIwIJCRuQURGgm+wQmQ+BDcg3QTJCVoyJF/DmRP/20N95X5DT3tsD16zJfVUVVfVe1U9PZaz1l6yoJ9KFRCmpPKlH9tMEQCkSzyRt22nvdvtHoori2H+BDss5xMpXWC3jXONc23JsqxrmDtbPnkeCNQAumVJL1BR7OCYQuyYolY1nN/MfHFQU4gYJw7ENrFLBIxYhFmZOE7ALrsNAflp3jFfpOja2njiGIRk3geCHRcL1IPRI81RnnSU2mqdIk7JK4VnHJFxk2slDahrkca6GI/HN9vt9ttoNOKGFuv1+h02e8TYC0u3VxpyYWO70B0NMH2XK4gOvr69tgHf2vd4P5vNXlvM943wq9kd9oiRo1jQxzD9RE4RdwRkwD9Wq9Vn8wHrTCaTl+Z/DH5OjBzlkxNidcNk6VFb7oHQWLbZbL7nef6m3+9Tk/V6vVc26W9s9kzekoMflqnTcm5iOvfuF4vFp+VyeWd+1/SXwWDwPNh3xMz20zBd1hCveX1weodMUfc+BODEgMzn8w/D4fB2Op2+x8dmDztgHNTUEetYNHVmSSv7yXxmILqhaOWZeVZUp5oU0286UzYRwJpKo9xzxAKRbkJOLtNK19Ycu9UUIqne755+pjXyK1XpxEpC0xTvA/tfJrb0smH/9NgwqeCkxJ5hF2zhxn98HBy1/Qw+XJvPMH+lmIyvRRPxYl9y6VFTTy2vLF6VfyAkxMtcl7gB7TXRajbG1J7/WgGiDTSdIZcS7qv/PoWJ1iqJlRbf4msSl4QiAjwlkC+t3Es1pIi0OwKX9s0neBR/AC1IVVbpsM7BAAAAAElFTkSuQmCC")}.ui-icon-debug{background:url(components/images/icon/debug.png) no-repeat;width:28px;height:19px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAATCAYAAACDW21BAAAABGdBTUEAALGPC/xhBQAAAwNJREFUSA2dVN9r0lEU95qGUVA+yAhThhCD+VAq7aWXxYiCasHIh7YYe4h6kIFjLwrCRuqGsefRxmAFUasR9JT9C9tgD0lELxrrB+xFVIQNJtrn3L7nu/N1uqIL13PuOZ/7+dxz7/mqbMcP1SHdErFOeUpLjIDbbN02dItbNv/D4ohwJ2IZU4lE4qzb7X7VbDZjyWSy1EFE5XK5oVarNVosFh8tLy832jAWUXtb0iI2NTV1DuMjyOylUuk7sJTXc35+fhVzlNaVSmVbKXU1EAg8j0ajTgMDo4fktElBmVAk1tPTk8cWT7VafYCTN+EzBvzqysHBwSeKQbhar9ej8IcjkcgqRB0CC9fcZwoykU7GYjE3iYE0WKvV7oGwIjapycnJ01hfKBQKX424SqfTXxqNxkOsR8PhMFXaUVRWCKxNkZjP5/sAf2B/f//x3NzcZ0oYgw6mPB5PCNdcWF9ft7xPKpV6j7d+ioPe7yKqK+TqNJnf738J0gFsfD0zM/OOlaR1OBwRCG7LmOGrtbW1J/ALJBoKhdLwNS/nj1S4t7eXBVkNG27hHS8aQItBLiwELVWOjIwMARzELJbL5WewXJDmkIL6JLOzs1togDuUxTu+GR8fP6ORhz/QU2E0jKyQRFvT09MBl8v1Av63nZ2dGwsLC78Ot/3xpKDeROFsNruFZhlGFd7+/v6VYDBonnJiYoIaxruxsUENYw6K423fIlDGJ3RzcXHxp5kUjhTksBZGZ24alV4bGxtLIKlvoLe39zIOUsjn8/SZmNfZ19e3gvUpqmxpaemHkbNgEDM/C/K5QgLpiUo30am37XZ7HB0YIJDT6byEK90in0cmk7mLWGh3d/c6KiMx5mBOPhhbs5Oo4hOY9A2d5Inm8cKnfxA5CaPn4OCgKx6Pn2e8gaMccRGnvh1YSwfxO3GSLeF4mCdEQPrtWMrJSfs1nkUoQIPX0rIvBQjLa85TjAfn2q0pwECykkD6EvM3n4UIJ30LuST5XyHJcUSMAscRH5drJ+60tlTGgN8qTQld2uMk2gAAAABJRU5ErkJggg==")}.ui-icon-debug,.ui-icon-selected-debug{display:inline-block;vertical-align:middle}.ui-icon-selected-debug{background:url(components/images/icon/selected-debug.png) no-repeat;width:20px;height:12px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAABGdBTUEAALGPC/xhBQAAASNJREFUKBV9krFOAlEQRRFKTNDEkpAYQoOxtrGysrIhITb8AA0fQEuoKPwAbdTKxI6CnobSxNgQ/QWCgZYs58IODG93ecnJm7l33s3uvs3lghVFUQmGUAmsXYt3B89Q2IlpBQMKm8AI8n6G/gUepbGfwRTeIT0Uw8L+qM99WBzyg143nfoKFpAMRbSwJfW1HbIdrQj/ED51A01rH0pjYTKaFuJ39FsYe81q9D5obUMpdAFabzYU7ngdeAp19eh5+AKtnoQbmMfUMg694rcyvHu8FfxCeTNDYaH68KfhQbSDCzEfvQoz2Ic500I/GThxetaFSP9ODXOHLbTrtNQLIejjaJgLUKhe41IaexsG5sfaA1ryNf2Qrxm+8H1Y4xcg8fNrbg3b4W5COtNj/gAAAABJRU5ErkJggg==")}.ui-icon-bars{background:url(components/images/icon/bars.png) no-repeat;width:16px;height:13px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAABGdBTUEAALGPC/xhBQAAACpJREFUKBVj7Ozs/Pb//39OBjIAIyPjdzK0jWpBDwHG0VhAD5IB4FMcCwAGixO3HaqRfwAAAABJRU5ErkJggg==")}.ui-icon-bars,.ui-icon-selected-bars{display:inline-block;vertical-align:middle}.ui-icon-selected-bars{background:url(components/images/icon/selected-bars.png) no-repeat;width:24px;height:21px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAVCAYAAABc6S4mAAAABGdBTUEAALGPC/xhBQAAAN5JREFUOBHtkskOwzAIROMuUv//Z1upB+pxPGiEvKRye4ulFALkjaGkbT+p2l8buzWIq2KmTMAUmMzslWN3LfrCf6eUHrneRVSAQozx/SgfUD74pojEEUX4URHAtLbAoXKVhBYgF98RGx3e3uEo1g66txhROzkXucwKOvlW2KGa1A5KPG/RMzurW+QamDNnrVbjXjxx0AEflJaOYgcEq9iEW9KA8RsEChzOuUWYAo+PhQHY+B9s5xbV8fi4/r5FKgDx5i7XW40MbxytAxWs/gjay1EEeUMHOKvQndL4/QBplD08uOTpCwAAAABJRU5ErkJggg==")}.ui-icon-music{background:url(components/images/icon/music.png) no-repeat;width:11px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAPCAYAAAAyPTUwAAAABGdBTUEAALGPC/xhBQAAANtJREFUKBVjZCAA+vv7BX79+hX1////FGZsaoESjNzc3PbOzs4tf//+7WVkZHwLVOfHiKwYaIrkz58/44GSSUDxZ0xMTHOYmZnXFhUVfe/o6PjPAlPc2dm5EWidIZC/lJWV1Quo4A5MDkbDFQOt9jM3N2d1dHT8A5NEp5mQBfApBKlDUYysERubJMVwN2MzCSTW1dWl/O/fv0AQm6BioMIdQHUqIMWkOOMOC7I1IN3oABgxHsBgDQBG1AYWZGvQFYL4ZWVld4FUL4iN7AyMGAMpQAYsyNYgS2BjAwA3p02I8Gm6bwAAAABJRU5ErkJggg==")}.ui-icon-cache,.ui-icon-music{display:inline-block;vertical-align:middle}.ui-icon-cache{background:url(components/images/icon/cache.png) no-repeat;width:20px;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAABGdBTUEAALGPC/xhBQAAAjdJREFUOBGlk0trE1EYhp1cRwJZKAEFkVJFoYi4cONCN1UXglAQXQmSahCTMCQxN211VTSZyUVjFE0rAUHFYsCC4K8QXLlxqSJhSE0lQi5m4nOECe1Yo8EDH+fyXs55v0ykLSNGuVze3mq1LkiSdBbad+YnPp9v2e/3t/8kkzYDNE07bhhGAOwktYLRY2pbv98PMB8ZDAbPbTbbUjKZfGfVDw2LxeLOXq/nx+gipDWESwifptPptfWibDa7C2wWbJZznfWix+N5FgqFWoInqap6FJOrrI9x6zK1GI/H3wpw1MDQhvkJOOLV08w1h8Oh2ux2e50D4f4D0keXy/VhlJGJoTGcTud75jpnBrXqdrsbw8j5fH4fkecgnKLu8eq71rimWSaT2Q3nGvtzlIishcPhhsCHhmIjRqFQ2NvtdudYnqbue73eO8Fg8KvA6PME2HWWZ0jzkDT5WCy2KjBzSPRBATxP9Nv07hU3DwSIeFKIwWbYPqJ2gM2wf8AlBfOSUqnkbrfbl0gUBld+vZAf5hAHNxFNcrjA51BbZzzR6XQU9g3MymYbqtWqrOt6AF0E3RvwTCqV+rQhMt/fQQg3EO6HtADhJUTR8OGgJVvp9WUORLLXxM4S+7NJ2DQyxgeEMaQpDG8lEokXlUpFbjabVzgLUSsYqdFo9MtYkXO53BT/jnkMDvMaJ+Y1Pg0tEonU/ysyPd4jy/I3RVH0v0bm9t/GOJGt4g0/ihUcFdnKHWsvItN837+IfgKoJlWrf/IrPQAAAABJRU5ErkJggg==")}.ui-icon-backstage{background:url(components/images/icon/backstage.png) no-repeat;width:15px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABGdBTUEAALGPC/xhBQAAAJNJREFUKBWdkDsSgCAMRIWh8Zw2egM8gXACr2mlnbhxZikY+QhNSLJvdmEYKsd7f+YkOrfgPIQw8p7WKpwC7CVRNyyJumFJEGHn3MZIrVXDXiP/DsC2QtQZgBOaWQZwD1xItdYq9unundP5cwlFaW6UUjc0C0QHXVpr/DBEXFsh6iLMwZ/aDeO5V9Uo92ECVp1LDg8HLjNkPLZu/gAAAABJRU5ErkJggg==")}.ui-icon-backstage,.ui-icon-compile{display:inline-block;vertical-align:middle}.ui-icon-compile{background:url(components/images/icon/compile.png) no-repeat;width:18px;height:20px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAABGdBTUEAALGPC/xhBQAAAmJJREFUOBGtVDFomlEQvt8aQTAgsYguim6CmoBDpiwhqymICE6FDu5CCK7dNJYs4lpREOdGBxEp6KKCkCgkk0NKilWw0qKBNkRfvzO/1l9raaAH5727+97337t7TykWi30RQphog0iS9M1ms70MBAKTDZBZWA2SnUgkIm0CRaNRgdwL6F+JVJsInhv/b0Rq/rJc/nOLUOBnRP/QI8WmPzkzotUEBrCN2An0+OHhgTQazVfEOvAvoO8wyRGsQtaIsOEQiPetVsvabrdpMBjQ1taWzmg07jkcjj2Xy/UamDcg+7jMJKE/PxHQcNBisZDX66VCoUDT6ZT29/fJZDIRNlG/36d6vU6Pj4/k9/uFVqs9UpDJRISvbENvc7mcqFarWIo7aDCRSIjhcGjhNcc4l81mxWQyuYXPLZjJ8vhP+DhcycHBwWdkd/HF3P39PZXL5R6vOcY5tVpN19fXVvjcx5ksE73invBxIKfYOHyC/P6VY6cej4dubm44cTzPco+6cMzhcJiSySSFQiFKpVLElcjy3W63G/itAWtBNRfo0+48CfKsXq8PzX3u0ej8/FyMx2MshXmRWFl0u11rsVgU8XhcNJvNHytpYqKrTCYjOp0OEwXXAHKAcwwYjUZsLue45R59cLvd1Gg0OHcG0M4cNLdy7Ix9nU7Hhi+oUgBajL9SqcB9Gj+sWdYgJnpXKpVEOp1eG7/ifwgbDtHkcj6fl5YvJI+71+tRrVYjfjI+n0+gIsWFVBBxjUwGo3giKpWKDAYDOZ1OwvE/wV97IsrzyR7I+JhvoVdQ7irrJZRji9u8vPkXDLZkplBSNSwAAAAASUVORK5CYII=")}.ui-icon-logo{background:url(components/images/icon/logo.png) no-repeat;display:inline-block;width:70px;height:40px;vertical-align:middle;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAoCAYAAABD0IyuAAAABGdBTUEAALGPC/xhBQAABe1JREFUaAW1mu1vFEUcx2f2jtYqwivB4FN84Tt5oZSCcHctBpJefUhqUjUhwQYDmPgQTYyJ/4L4EIMmGGIiiSHRaqMCrQhpjutBSIRI0pe+ENL60FBfGGsLR2/H3/eue7e3Nzs7szs7Cb3dmd/8vt/9cPvbubnjzFIbubx7/eJy9UfGxMxErnyIcy4spVamEULwoUrhM8b45rU9XYNjvef+UU7QHOSaccqwOpSl6lnBxFYEOpx/fjp3/kDacADlqUr/MVeIl6HLGf957Z1de2zASQwmCAUGyeJKl9P90A+5s380ztP5+2xlz6aqe+s6vUuznoItOInAyKEQFoe9Ppmb/sQza/I6+tvAHfOz7lHB2d2Yl2XOkVP5UiksR7GSf0247Ih/3AYcx5/Q5DgUCuPH40KB/sIc20635EtMiOfwT3B3ncoXtAjEcX8MbulFurXh0d9vchwLTCgUzq5sfMB5xcRAMLbG3C3+Pu5kr/jPZcfQ5KTtH0sKxxiMAsqNrm4+/MXDpZt+g6bHdEFNMFS850/tmPo9Kgc0oU1wbvhjAeffpepPcd45RmAgACEI+g2g2GZY5vnv+8qz7f3mZ1T0mmCEYJd1M0AbHuClfY7oiwNHG4wHhZ4Afe3CeDyzt1UFMhgfdl68VFxHi59HvHHuiLbbw+sPe4UHeOkcN4ejBUYJxWFfTuTLH3eaidFTvfkYE7QcWW0O40ZgMA1eHPLk5Wi9msGJBKOCQk+DX+5y7j3YEk94xGu9/gw6hdcf7x3DE7x5561XfThKMBFQFngmOzy2Y2y5JZzsKE7hlSnCE7wRnIXOcT04oWAioNRYhr0wsXPqeqdw/J64hVemWPdGHglOrXM8Go4UjAoKROgx+s7kzvJUp2D8nqSFV6YMj/AqG8NDRPW06gCjAeXERP78h3KxBL0WCq9MHV4JzgnZmApOGxgNKFezPesPyEUS9loqvDIX8ExwrsrGwuA0wURBoRvo7+6sM3yy9+SSXCBZr63CK3MBz/COa5CNy+DUwURBQQHLcOfF754oXZMnTt5rs/DK3MA7rkFejDGjveY4UVAwhVag757Ol87hOI2WRuGV+cQ14FpkY42+FhxndTuyY5nfmszPTOSmD7fO7R9lbi8/nnTFq+uqcS38THi86AMTupXETHgQvVsY2zRycaRHFZN0LM5WQ1xNXAt9Cr9PPV/MONi4xh5tWCAVxc2LK/PHwsZt9KdZeIP+cC20V/xosN87B4tVJlxg4zoCzl7aQnzTm2z71V946ZYy/uCo62ew3P8W/SfsDYv3b+LXn0r0jI+G4/LDtCO/Kyxp3P5g4WWO0N6DMdFseBfvhc3xQ0FMcx0TDUdkXeF+9Uxl94NhyWP1p7Ti9XuBZ3inetr8NsE/HoSCsSYYnETBoR21e1bErXHs5CPeRuPcfI/XRBde4RneZfNkUBDXBgYdGnC2zM+59M2fneYyt7kHQ9pae7wmyvBKUJrbpf65YVAQ0wEGndFwxL6h6f43EJu0pVl44ZGeQPtkHlVQEC8Fg4EoOPS16AdDFwoFxMZtaRbeYnlXPzzKvEVBwZxQMBhUw6Fi7Iqx4qWB+xEbq6VUeOFJ8JWvZcVWBwquRQkGAUo4gm1gVXe8+GuxG7GmLY3CW/dCnmg9tCHoRxcK5kWCQZAKDi2Ytoo/l44izrSlUXjhBZ6CXkygYK4WGASq4DDmjg5NF15FnEmzXXgbHtzRoAdTKJivDQbBKjguEx8NVgZyiNNptgsvtOEhqB0HCnIYgcGEUDiCreHC/ebpi09GfHJFFmoWCy80oU11ZU0jeeNvXCiYbQwGk8Lg0JphY612+1udYmyr8EILmtCGN68lgYIcscBgYjgcto3/9d+niFE1W4UXWrSy3ebXSgoFuWKDweQwOHSv74+6pWwUXqxXoAUvXrMBBbkSgUGCDjicCfrFwcGo37XQrxro12R8jjLMCoeNI5dpm9xemuPCOUTbjPVfiNqCYupDGU/3OC9OF94fupAfVQamMAhNaMODrfT/A0x7ZEabBfJtAAAAAElFTkSuQmCC")}.ui-icon-pause{background:url(components/images/icon/pause.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAq1JREFUSA3Fl72LE0EYxm83CZJUARvdFKnEP+AQheNKm1QHB6I2KUK+KpEgBLRUCEoQq3yRIs0pwsHapLE8Anec9weIVYqNNkIgkCD5WJ9nmQ2bvXXNZvMxMNmd2Xmf38zO+86+kfaWKLquS/V6/WA2mx1JkrQPEwV9Ck3R7uHSQ/tKlmU1k8l00KfzmVuR3B622+0b3W73GcYUUDUIqqhnqFo0GiVwr9/vcxIx1EPUI3TFUMvxePxDIpH4wzFO5Z9grPB4Op2+B+QiFAq9SqVS350E7H3NZvPueDx+jUncDwQCz/EGTu1j2HYEVyqVNwA+geHTdDp97mT4v75Go/EAEz/BBD7m8/mX9vHXwNVq9RMG34pEIsfJZPK33cBLu9Vq3RwOh6dYxK9cLvfYaitbG1wpoXCSh36h1KUGtahJbStrvmLuKbz2XTgcvrcOqBXClY9Go0tM4oW558aK6b10JO7puqHmyqlNBlnsC/KHIUPvdXOkUqk0j81isTh/U7R3e8bnLNSG/1yI8Hwr4/1TpMCQMUZs8EcwCmTKPJHA0paNUz/zEgyNTFkcg6ofQS+22FKVTBk3+6hnXoz9jCWLTHq1ghvNj5gXW8FS6FyKeeB7EVh1LFlkGnE8GAwWwmNV0WXsyELRucc9BPbtZYzWMUawfnLFXDq/oVspgtXjHl+hHm6FCohgfcO5LatoMHPYSiEL2/tFZo4EYoyZw6bJghEjk87Fw7/MdGXTYMEok2mEkUjqfgSDwUduXyg/E2MqNJlMPiMJvMMk0Ihj3jAxg6uf8KPtB+BkS01qk2FmngsHh0hPDpiuZLPZsZOI175arRbCR+Er7DrWpG8BTNGdJHsEi2ywwxyJ+8K+VQptqQHbjj3DpN61FZuQnST0Jnwnf2FMOK84bdb+p+0vwJ6av4X/7jEAAAAASUVORK5CYII=")}.ui-icon-pause,.ui-icon-play{display:inline-block;width:30px;height:30px;vertical-align:middle}.ui-icon-play{background:url(components/images/icon/play.png) no-repeat;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAA1hJREFUSA3Flz1IW1EUx997vlh0KEKXNhnEoRTXSmkhdXRxUoTQdnGQaLKkFKkZWmgp/TAGKc2SRHFwsSVgm8mlQwcJtLQWt9B2CBlMuxTEgFITTf//x33yfL6vxEAeXHPvueec3z3vnnvfUZY8PI1GQ15aWgoeHx+PybI8BBM/ZH6aYlzBTwXjLUVR8tPT0wXIGpxzemSnyY2NjQvlcvk+dGbRduAwj7aJttPX10egtLu7y0UE0IbRxiAKoC329/e/GR0d/Ucdq8cWjAgnjo6OXgPyxefzPZ6amvph5cAsW1lZuVar1Z5jETe7uroe4A2sm3U4tgSn0+kXAN6F4b1wOPzZytBNtry8fAsLX8MC3kaj0Udm/TPgTCbzDsqXe3t7JyYnJ/+aDZoZr66uXtrf319HEH8ikcgdo61iHDBSQpEkI+eF0i990Bd90reRdRIx9xRZm+zp6bnRDqgRwsgPDg6+YhEP9T3XImb2MpG4p+2G6pHTNxlkUaaBeWSYvV4SaX5+/n0ikdDOsDEqtz59kyGOp6Tg/fN1z/LIuBmL+XHYFAGPCFuPZpIkGLO0k7PZ7G3sbQopf92LB0R8cishggJswvF4vOjFljpIsu/Y65girsG8V0OjHlYeRNtG9E9yuVy3cc6uj8XmyVTQGULbtFP0IO8G/GmpVNpeWFgIuumTRSaTy4/OjpuB2zzgg2ibiD6dSqUu2ukLlp/J5dcvfDtlr3L4ktEiOLPFZDI5bmVHFpnacapWqycXiZVyO2Vk4Wmo+FPBwb4C59XzAugQPrK4/eKxWGzPyp9g/VYxydD5Df1ppehVBmgRLTw3N8cjZvsIVkVFZwtaw2ifbLWdJw4BfDUwMPAyFAodOqtKEnhkfVNxmHmuUhg8czMyzwPY9AUC8Jh2gbBGgsMAKwezY4fxHqBRvNbhZm4twQiQyQuECbHIcsUBZJz6AJtBADPC1jjn2BeMRdppx0gUdb9UVQ15+UI5ereZZClUr9dzKAKvsgjUzjE7LMyQ6mv8aNvYtiymT/omQ688T10cojwJYvNHZmZmai2TDIb4+vmQvB8hKhiLvlNg6nek2CNYVIMF1kjcF8paeWhLH7AtmCtM+jsTsQ7pSEGvwzvyL4wO5y9um7b/0/YffHTnXb4vrzkAAAAASUVORK5CYII=")}@media (-webkit-min-device-pixel-ratio:2){.ui-icon-check-square{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjFJREFUWAlj9Dxi78nw7/+s/wz/ZRjoCBgZGJ8wMDGmMQ2E5SB/gj0M9DgTvX2OHMggu5mQBQaCPeqA0RAYOSFgL+rEECefzAAsgFAyGwsKjwYcJgZmhhSlTIZA6TCw6Vc+XmI49+E03CaaOoCPhZ+hSrORQV/ACGzh9uebUSwHCdLMAcrcqgy1Wq0M4hwScMsn3ekGs5EJmjjAUdSVIV+1jIGdmR2v5SBJvA4AJRhgeY3sYLxsUHwnK2YyBMlA4hukeMeLzQzYfA4zCGc2BKXadVY7GKLk4hmYgJAQAMV3m24viuWgOJ94GzPYkc3CabIytxoDBzMnQyww63TpTWYQY4fEJbJmGBsU35MMZ8MTG0gcZDk+n8P0MqskyjfAOMj0hQ9ngQlIkkGJR4VBjEOcwU3ck+HVz5cMD77dQ1bGAIrvOq02Bn42Abg4oWCHKwQycDoApOjE2yNwR7AxsTHYiNgzSHJIM1z4cIbh7/9/DCmK2cA8nsXAwoRISiDLCQU7sgMYPQ7Z4k1loIRYpFbJ4CLuAdf34sczhtc/XzHo8hvAxUAMUi0H6UE4HcTDAkC5oO9WO1gG5ggJDikGEEYG5FgO0o8zESIbDnPEnpc7kIXhbHItBxlAlANACnE5ghLLSXIANkdQajnITIKJEKQIHYASpqGACUbFgq6OGD7RUYBsGCg6kKtUZDlS2WQ5gFRL8KkfdcDAhwAwRT/BF0e0lAPZDazqGdMGwhFgO4F2AwC5lbIZsn/rcgAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-check-square,.ui-icon-square-o{display:inline-block;width:16px;height:16px;vertical-align:middle}.ui-icon-square-o{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAHZJREFUWAnt17ERgCAMhWGScwwXchEuI3FZT+cAjScdLdj8VBwFL/m6J+5+1Fq9tbanhUdELlXN+kd47BkLR/bWNzezhfunVEp5h9ClqYMwBkAAAQQQQAABBBBAAAEEEJCno529Hw6a09SnryFrjsvUpMHnvZ7furQqNW65zJMAAAAASUVORK5CYII=");background-size:cover}.ui-icon-dot-circle-o{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA3NJREFUWAm9lzFMU0EYx7+71gJSqbGSVhTDgIZAGhnUoBKDcQITDAOTJDrI4KgOGiIMYIiLOjrIoIlMDEYSYDI2hghRBwxCiDIQUaDBEkEQWss773/vveZRWqjQvm957bu77/fdvbvv+x+jNK1xrNG1/CtUwzS6rJEoZ0RFQrAiDGdMzAiiGU5snDlE716P/01PRU80HdfSz9ZW977GTxGtVZBoEoIKtu6ttzJGS8Som7kc7f2ng3NbjUkZQO3X2hwKLbcIjd0mEvlwUuo+TlXeagp4TpDXVUjeHC/JoGghGqZwdJ5GFz/RcHiQJpe/GEy2wrh4SD5358CxgUiyQJIGUD980ReN/n0pwWcwqPpgDV0tuU5H8o4m87Hp3ffVb/R8qosGfwaNNjbkcu1p6K16HUrsvCmAunfnA1qM+iS82Jd7iO6WtVHZvorEcWn9n/g9Rg8m2im0Niv7s2nupEv9Z9+OWgdvCMCY+QfAA55KulfeQQVOj7X/f/9eii3S/fFW+XlGVBByJU5ZV4KbHvHNjWVX8M7Ao13D4RsTgC9MCBMDQ+0vAxwPABsO3xzLjpk7mdPosvsHfMEnfIOhs3S/6hPgqGlr2qRszH9c+WTH33y7ULEnbo7ckN3YCs/lpTiiagVEdL0NcOz2nW647eBoh28wwEJuwTumMtzC3DySTNfJbjqcV4z3WTMc0eaPTTJ70pL7gL+Q/1mcuwA4kky24ZgVcglYYILNxTqrRwMynF1mssDmKCwAI73aZSYLbC6PgapoyO12mckCm5slFYXFLjNZYMcTEaqaXWaypI4QHGICYJRUu8zCmuVQMgCjnttlJkupKMgogCEm7DKTBTYXnF4BDCVjl5ks6Efu3u8LIi1CRv1Ync56DEjFYIEJ8cqhXhmxFyA/m3qa9QAg1WBggq0fwxzegRIJDYeSmS2Db10nshVSTCIVAOqyUq+SDA0HGZVpg0/4hoFlyvV4IoJ0lk1DEJDQcDERy1gM8AWfhjgd0lm6+3gA0O2QzjKIaQjIltFbGVkJzBy+LKK0wXpH2KCKEZNVlvtzi+hOWeuOVVKiLHc4eF3fueBn69JuCgCNyS4m10qa0xYsu7qYmNGlezVD/3Akw1czMwg8oZiVaBV0BTLK2pbqN5KMyi3yqJm7PWXfVA2J7yFelX6UMiqT1/N/UrO/CoctFO0AAAAASUVORK5CYII=");background-size:cover}.ui-icon-circle-o,.ui-icon-dot-circle-o{display:inline-block;width:16px;height:16px;vertical-align:middle}.ui-icon-circle-o{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAwBJREFUWAnNlz9oGlEcx58nVOFAsohi6BKcCh0LurVLQAuRLFma1UEkU7dCM7TQLZM4ZU2XLMVAFbK0m4GOLZ2CS4hVXEQ4iB1if5/znTwTU23inf3Buz/v3vt+v+/du9/7XkgtGMfHx496vd7z6+vrQigUeiLdUrqA0KaMRqOfcj5JJBJfdnZ2fvNgXoTmNahWq0khfSvtdqXE5rXXzwci8qOUd+VyufO3PncKqNfrkVar9UZG9VoAbEDi8bja2NhQqVRK2bbtFuodx3FLu91W0kfJTFFNOCLiQPp8yOfzw3HV9HGmgMPDw8RwOPwk5Fmap9Nplclk1Nra2nTvO+76/b46OztT5+fnbgsR0YxEItvFYrF7s8stAZVK5al0+Czkj2OxmNrc3FTJZPJmv4XuO52OOj09VYPBQAnmhWC+3Nvb+252nhKgR/4N8vX1dZXL5VQ0GjXb//P11dWVajQa6vLy0hUhM/HMnAnLQ+Sd62l3yQuFwoPJwWYAYDEgBgYHXB7vRIBecFmmnZFb1uSR1/beZ7DABFtEZOHywFwWPjV5wGp33/lDp90DN89gsp4IuODk2hUgFftybbPa77vgAJsXYMMhYevcoiwynAh4RS2fmt9hcOzCbXW73RdCGiPJLPqdP0QkHHDBCTevYIs7MlxQYXBtWZIg2Fjc9BqUAFI5ATcz4N6R24MKgyv1XwgIauCzeEbMAGbC3U5ntfCjju1bx69VC2hbkoSwUQozEVR4XHDLPmHVIMbJBBUG14klWemrEA+wUTgZvwMObdkGmFdLu9cjiLFRfofBcQQ3i5C9/72cHDwcNsqvAFv7REdzjrdjrLOkxQOI8XDYqGUHmGATcHl23Z0BKrHO8qCJgcTDyX5N9VICLDC1OW3C5QFPBODbsc4i4gIDWavVljITjBwsw5Rum/8IU64YVX7a8nA4nC+VSj+80XO+JYDKlf6YIIBY6a/ZWML4qB3zvvaNC/+cSu8jPjVvtZuY5vXMV2A28K4xkNo/bslCXdrv+R/LEKRFioMF7wAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-times{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAcNJREFUWAnt171OhEAQB/CDkCM0dlf7APoA2ul1Vpa+gKWh4iX4qHgKS0sTE6/zCbQ/a8uLwhWA879kDbnAsuxMYrPbENjd4ZdZZoHFwjWXAZcBl4H/zUCe57dlWa6kFRTzJMuyu6m4vm4AcE3TPFVVtZFEAkcxn9u2fSTkvc6gBYZh+OZ53nvXdWcU8FUCqXAU85JgW9/3X3RAT9eJPqCAo4DnwEZRtI7j+Gtq3lD/MS4IgqskST6Hxqprk0AMlEDa4HBvIyAXaYubBbRFcnCzgXORXJwVsIfcoLqpcD6ocK6PC0cCZw2cQkrhWMAxJF3fYxNW+5zJVoJYY824iscCULawT/4tN43bEe6CjlsuDvdkAxGkj8Q5NREcAmlfdRhg2PY0bqfGUuF8L5fLH3XOObKBvYI4LCuqGtWNZUdmOTjMZQF7uMOLH88cthxJpPUzOIRTL35krl84Q/ukaWatgDqcurEUcjbQBCeJnAWcg5NCGgNtcBJIIyAHx0VOAiVwHKQWKImzRWo36rqub6S+ShQQ3430J7fubeaT/8Zq7uAR/61FUZwOdjIu0uqs0jR9oARoV5FxCzfVZcBlwGXAJAO/R1YUuWl5JqoAAAAASUVORK5CYII=");background-size:cover}.ui-icon-times,.ui-icon-times-green{display:inline-block;width:20px;height:20px;vertical-align:middle}.ui-icon-times-green{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAcJJREFUWAnt171OwzAQB/Bz+FJFxcbMA8ADgFAqyOYsjLwAIw/G2IkiIRUJpYgHoDvMjDRIINLDR+WqqRLHHyexOEvb2LF/Otf/JADxiBWIFYgV+N8K5JP0Qj7KfW6FfJZ7shhcdo2bmDoQbl7BEMXsgRNJOPwu73CON3mRXpkMRiBW/SchxAsgHIIoxxxIjQPAEwDxCmLr3gQUpkZq+0MpHCIeLbC72Wgweu+6rql9HZdsbJ7dno7fmvrqc51A6siB9MHR3FbAUKQvzgnoiwzBOQNdkaE4L6BGUvQsdjdMBfbP1zcOB84b2IXkwgUB25CwDV8UwjrnbKKExmo7rHdx2wAUQbXlBvGhMvOYQjgUR3MGA2mQGpJOMOFoJOOtjjpYHWpZharcsq/AEqudz+XvgC/BQL0h9LKqNZnS7uZ6wAgCatzqhqDI4UR6/webcPrGX/tPqoo25aTtqnsBTTg9MRfSGWiD40Q6AV1wXEhroA+OA2kFDMGFIjuBHLgQpBHIifNFmoP6p5SrIaxzTk/m80nPjb2kl+kwh2TW+W5snIfeW/NJdmDs5NFIOSmL9FrdIo2r6DF0vCRWIFYgVsClAr+LA71wx5zI6wAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-caret{width:7px;height:4px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAABGdBTUEAALGPC/xhBQAAAEVJREFUGBlj/P///2UGBgYdICYFPGYCqp5Lig6o2oVgGmhrGRATCzpRLALqIkYzqiaYCQQ0Y9dEQDN+TTg0E6cJTTNOTQAkhqd/+Ff4bgAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-caret,.ui-icon-dots-black{display:inline-block;vertical-align:middle}.ui-icon-dots-black{width:30px;height:6px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAKtJREFUSA3dltENgDAIRNUtHNCxHMV/F3ASB1BeItEfbQ9/UBJCY48Lh1raNKe1thzMZ/P1cNY8Y++tpeLvTc1kvt04e2Ciloqfzj+J9SaAibzpdPx8si6qFMGqlo6f/7Qk1PfBqpaOnwPKBZUiWNVS8Xdq9V/HI3gRRChYp1VyFGyIH8GjZ1ZEBet0So6CDfOnGxuupDKG6k91MagUeoWF6qdTzEzGyG+vljsaEO9BZsQFBAAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-dots-white{width:30px;height:6px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAALpJREFUSA3llkEOgzAMBDHn8gAeyLP6lN75AC+h97BbxcdWXnPAopasINiMvHEiMgw9WmuGXJArcu/JZ74z12VHMjrrej4KmZEv5Lfgt/mE2Tp8GOHK/zLri0CN3OlyfBTELRuNRe0ywLX4KIhnKhprwnApPrfzDhOPoJG3mU1B7UdWjT8qxd9BS8ObYETROlaZo2hTfBp++szAqGgdp8xRtDk+zth//Za4TDBd52LgfRPGVP2907e/Wh7zpMvX0pIT8gAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-cross,.ui-icon-dots-white{display:inline-block;vertical-align:middle}.ui-icon-cross{width:36px;height:36px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAAZNJREFUeAHt2sFxgzAURVGLOmK340khIS1QAi04riTtkPRBvma8YgR3E0ua8c0OPRzE4Zlk8dOp8c88z+8ppdu6rufNVpY4Hqdp+t6sVz0cql6tcLHA+Srg5DMvkd0LH6m61BwocN727ngHbu/0p6w3B3rKXf3jLxUIMAUSCAQgtkECgQDENkggEIDYBgkEAhDbIIFAAGIbJBAIQGyDBAIBiG2QQCAAsQ0SCAQgtkECgQDENkggEIDYBgkEAhDbIIFAAGIbBEAp5nOuecykh0kK2GvVOEx+w2TMDdqbz6m6od4ulsdyAumWgS69ba6X/eRvle8geBoCCQQCEA/xIvqBc145XoZ4EX3mP2mvrFC690dxxlQKa67F/2Hr0fViTrrpHn1JHz2dyAQSCAQgtkECgQDENkggEIDYBgkEAhDbIIFAAGIbJBAIQGyDBAIBiG2QQCAAsQ0SCAQgtkECgQDENkggEIDYBgkEAhDbIIFAAGIbJBAIQNy8QUfzST2M5TQHivmkj3iIy/ZBZrjIxu167eM/p7A+b7uGQyEAAAAASUVORK5CYII=");background-size:cover}.ui-icon-sign-out{width:16px;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAiZJREFUWAnFVz1vwjAQdVAFQwExoapz1QGpnWEBdSoTzJCfUqkDP6J/gK+9UxeExNKFGalVtwrakY+UoQzpexEOEY0JkIScdLFj++49X+yLrYk9xTTNOIbeQSvQHPRyrSjEZK0jlM/QvqZpvyj9C4AvoE/QGXRf4VjaXBzNAMYJaANqQI8V2tJH4iAiMOCsX6FBCX3tFw0MvIV+BoXs8EOfNzsjgQGceRjgkgd9u0cCHfzmQYZdgm6XxLDXRMwRkgfU8473sKrEINZGwIih97Pa7Vk2m01zNvPcscSyPoWMwCPonG8oHV8bj8ei2+2K+Xy+ywmxiCliYMIMp/MlKJlOp/uQ0Imt4XEP4BcV+HA4FKvVStX9r30wGNhtmUxG1Go1kU6n7batSvkMDcztSun1eso+rw4ZCV3XRTKZdBteIQH+WJRSKpUOioCbo+VyqSKQ4yd4g9G1m+EJ2t5JYAEg1/icgIAht+EJsFwhTBLgYSIq+eIiJAHlGmi1WoLJxY9wIefzrll+wgjwGKWUarUquJ9DkpFnIiLwYrEQnU5HcF9TCoWCKBaLVt3no8wI9KE7E3cqlRL1ej3oSBCzH1ufXtteMwmBRJvYGoGRC/hr/IB6/hENwxDMbNlslqbHyg8Mr0Dg23YAEjy9nkoaNrCsADmSI5nEt0qQiO5QKpmARHTHcgeJ6C4mDhJcE9FczSQJlut1Edrl1MoDTkBVHUTi6Av8ev4HuAOEGBJbjbIAAAAASUVORK5CYII=");background-size:cover}.ui-icon-arrow-down,.ui-icon-sign-out{display:inline-block;vertical-align:middle}.ui-icon-arrow-down{width:7px;height:4px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAABGdBTUEAALGPC/xhBQAAAG1JREFUGBlj7OzsvPz//38dBhIAIyPjYyag+rkk6AErBVq0kHnPnj0nXFxcvgNFXIkxgImJqau8vLyKGaQYqPkoMZpBmsrKyspBesAaidGMrAlFIz7N6JowNGLTjE0TSB1O0NHRUdbV1dWJSwEAS200G/uVoWUAAAAASUVORK5CYII=");background-size:cover}.ui-icon-arrow-left{width:9px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAeCAYAAAAhDE4sAAAABGdBTUEAALGPC/xhBQAAATpJREFUSA2l1jEOgjAUBmBL4sDGopfQ0QtIPIgbGxuXgMGEjcvoBZyMXEIXNkJMQH7CI6WU0pYmptjSL4++0rLZrChZlm1puEMXpnWapruiKJ5xHF8xlpkCuB9IWZaPpmkOjLGX53kn44h65N4jb9d1L0EQ/Iwi4pBjGwkQPwzDL6LUhlSINrSEaEE6yCKkiyihHqEUjyYWA8UinWwBydvsnCk7IkD/J5ANAmwE2SKAhpXdI7RitR4HAJUuoiRJ9nVdE7I4sTSYr4eIuEZWVdXokbm+2cthgBBV7jiOH0XRZ3ak0DFAaF+DjaA12ASyxaSQDTYLmWKy9MPoCrKG7LW7YY6tFWsNC5f6+VoZEd0oZlP2EmtBAJcwbQiY6qU2glSYMSTB7A5IQNgtMeE4ZdvfDQck2q0L/xHxB7u3O/u4jXikAAAAAElFTkSuQmCC");background-size:cover}.ui-icon-arrow-left,.ui-icon-folder{display:inline-block;vertical-align:middle}.ui-icon-folder{width:16px;height:13px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAYAAADWm14/AAAABGdBTUEAALGPC/xhBQAAAIxJREFUSA3tljsOgCAMhqHxXnAqVnUjcCm9Fw+pCQsTjSEuf5fS5u8jHwxo1SyEYEopF5+lRkTWOXdL67qe+FBrPXtC6r/U8iyKMdrWxEgHdz3Xco8eSz3lnHdp0ahv13eMudlYe+/rrHiBLr1vYEHj2Zbb3wsoLAACIAACIAACIAACIMAE0uwHboEuPciHJeiugELQAAAAAElFTkSuQmCC");background-size:cover}.ui-icon-folder-open{width:18px;height:13px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAaCAYAAADfcP5FAAAABGdBTUEAALGPC/xhBQAAActJREFUSA3tljFLw0AUx02iktLSSb9AJ9FRsZO0n6JfIUMhYzuqW2m2QL9EP4W6GRREsYNOAXFRnEo6aBL/7/DCJbY1QfuyeFBy9+7dvV/+7+V62hracDhsRVF0Rv2iTdf1dq/XOy+6bpG/ThNxHJ8ucvjJ/pu18/bWHcdpY9PWvMk8NlpLe+TxzeOjh2F4nMdxmQ/SfbJsvsicNhgM4iIL/tJX07T3fr+/qe4pakg1cPaR7o1svFKBsjA0/geap4pqK1UhFPWzCkP9ddUAh7dKpbJj2/aLaufsZxXyyoShF08phM/whoyu627PZrMJxls05mjIjoczqZlSCH+UAggwR5wwXy/8RM8UkFQItE0OVdQYiH2ZBQpwjXgkIybZgZCdNBBUucUvGo/HBoD2VfpV9xE3rFar1xRHTZmoH9/392CvrRois/99t9udki0BkvWD52HGmWPoySAJkGEYQqEy6gcpE/VDUBIoqtfrd2QoAwgXvG9AD5ZlBaPRqAbaXQJjbNNGozGR8YRCgBDpCoLgAAoZcpLpedXpdEIZS6ZMAOF+zV7QOH+SgiYoAQRVBBCUYj8QETupHwn0YZqmAIKB+0B8xdd9QSCyfQJu6pv3Z3GhzAAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-file,.ui-icon-folder-open{display:inline-block;vertical-align:middle}.ui-icon-file{width:12px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAeCAYAAAA2Lt7lAAAABGdBTUEAALGPC/xhBQAAAPZJREFUSA3tltENgyAQhoHUJTqB7761L20YyURXUBKGYYL2pZ3BBdolTESuCeRiKFisb/jiHdzdl/v1ArTv+5fW+kh+fIqieNZ1fY6lsZTiUHQcx5MQ4hYD0K7rNAS1bRuLdfvDMBCl1MdnjN2bprm6zYXBFv4qtyxLFzdN0yXUSRLAVTcGpVSHIJsBVVUZxnfIZgDnnIQgmwEgVwhywHqm2GaOcBoFx34T+Lv+0gEmWBsgUspHcgehubFzAsO4Swd4TnYBWJngnQFYDa+dJfLKghezRFgNr50l8sqCF7NEWA2v7U60xdnqDU5ZZOZO805JXJMDtWfrIFs/XIFg/gAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-selected-file{width:12px;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAABGdBTUEAALGPC/xhBQAAAUJJREFUSA1jYKAxYAw9FsrJwPAJiEkDq612viNGB6PnYdt3//8zCBKjGFkNKzPL1c3W+3WQxbCxGT0O2f4HSfCy8mGTxyr29c+X///+/2NkYPx/cYftEQOsiqCCcAu22x7Cpw5F7uz7Uww1V0ogYgQsYULRSSTHWNAMofI/o77HYZsLCAFUFlkWIBvByMjwnwGPJRRbECuXwojPEootiJSLY4iTS8VpCcUWfPnzmcFHKoAhWCYSmKowg4sFOTzJYYce90bWxgjmQOMElITJtgBXvvnz7w/D93/fwBEfcNTtAtkWrLLYguxyFDYwnzCC8smPv9/1KY4DFJOhHOR8QhMLkC0dtQA5NLCyR4MIa7AgC44GEXJoYGWPBhHWYEEWHPpBBK9wQHUrLQC8ZUcLw0FmsgCbApf/M/6XpoUFjP8ZnwIAbfhlfe2777MAAAAASUVORK5CYII=");background-size:cover}.ui-icon-editor,.ui-icon-selected-file{display:inline-block;vertical-align:middle}.ui-icon-editor{width:22px;height:20px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAABGdBTUEAALGPC/xhBQAAAnxJREFUWAntmL1rU1EYxr0ll+CYDlJRIZPtpqWSwb9AcKwEOnSprXdLScAku0sS8kGdDP4LimO6tZPYQXAV6VRLO5QSXEJMcuPzlPOWY0y53nPSksA9cHLee96vH0/OSS91SqXSc8dx3g2Hw/u3pniA8QjzVQyMTcDem2LWCzQwPoDxfg4fUw8rYvIUEHimBo/ExSgWi47Y07jirg3JNXMKR8DXfZwihSOFRxSIjsSIIBN/nDmFL//SmUpRrVaX+v1+Kx6PP81msydSp16v347FYm4mk/nVaDTudrvdz3jbelYoFL5LjMlqpXC5XF4cDAZ7aNzSYQnS6/XedDodj7bytWDuM4d7psMYWDXeR+PDRCKxPQYghb1vsq9iDvFsBW0ErMH6+JpfeJ7XEzCueA1k3ceu636VfcYwFs8+pjF0aGCBBdQ8Gq/m8/lTgZK1Vqs9hH2Wy+XOZY+ril1VuUbQoYHRbBdzAWo1cIG+6EBi41yvwL5UV/a5Moe5rMFauu9/7NDAaPYahfuY65VKZWFcE4CsYI4FVjnrrKFqjStx5V5oYCj0AY3WAHQH82Oz2XRHq8P/BPMfYMYyh7mswVqjuUHPoYFZUINOtdvtt3oTwLDmXxdO/IyFP2UKyzpGwEzUoDdxEV9yj+OqC8cYwG7awLK+MTCTBRrmjpxn3/cf4fmAfhnKt2MLy3pWwCygoJfl5y2ZTH7C7+8GfTLoA+wyY2XPdLV+l2BjAP0QgHQ6/VtsfdVj9P2wtrXCYRvaxkfAtgoG5UcKBylk648UtlUwKD9SOEghW78j/3e1LXRT+bN3JPBS8vOm1JlAn+M5AG9hHk2g2LWWUMJ6fwCzBfkKDA5nsAAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-selected-editor{width:30px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA4CAYAAAChbZtkAAAABGdBTUEAALGPC/xhBQAABhVJREFUaAXVWD1PbFUUhfcYP6OdUWNMrDR+VJb+ACMm1i+xeCWFsdaWzoJYG3saE2t+gBpDZUIoMZInDx4FUDwmgHyNex3uOll333POzFyGucNJDvt777XOuVyGmZ9Lr/m0+955Bx6xJ+Ztn39f7UhcCaruiZViPrdLOxJLgAgxEqH0eepXXfNyfs2ZpJ4jpX7VdXb0A7TuB2aHfXZ29tVgMNixPevrX8P6JXFXUjmFi6HD4nGFgFlBGssnpr8To7OtPJ2fn3+vgsjbpAxukArEqiQI2iFmhC8kNvOqEe4ZSJAkUcqAHY+trhpZC9DWnFnXw0UJ9hqHhQT6WgLjdnIvV02SceZ1IMNt2pN4mpgNrLUbVsJKBDo3+6ituYx3IUHGY1GbZOELun+kPWgtpk7pc7uwiYUSGFRvYNIb9snFQteJJ+ncEzdHxYQ8YlJ9zhMGQiSkGqNBrRjJ1WJz2tOWqfnkUIulCJfA1oo7IIv5JFLCmY2NQ3gY2VQ8O7hFgERvRbpEONeYxCiBXfUWXEYqUTyq8yDYBLEsnhxhNtRC6jnJgXcpiWuUGcRZy00RLjVFjI1S0p92bdgtjBImtM3NJcY4etjf4ZhoCorZgLpK5Kod9OPj4w/sU9DfBwcHb2l8Y2Pjpe3t7dfgQww5lvu+5ohuarM3nLY488Ya4SdOBxvkH1YbN48P4S8YkLCgVz7EsJGLGm72oP3ACHxoxc+urq5+krwQN9+Ptr+jHznIRQ19In1vzCaOEk7ywUzyjAqcTCDh3g3dAU4RjbFJVgmzWQRGslb/x9ra2otWFw8Cuvl/u7i4+Jx+5CDXtifd6G01bXCyz0QI18gI2d2dnR38L02AQS4tLeEgn29tbb2hMeSafzdButZfasa5mLshfHh4+BEA2/7v5OTkMwEXSVvOxxb/JxFbQA1q0QO9LMeThc1enRN+aEC3bQ/scf3BgAFQY5+enj6+vr7+NRWDD7XoYWvbbJDzpFsTRqM2C48HFmXUz8/PvzfjcmFh4bE9sngzN5bFPrWX1F8uEB65zc3Nt1FrscuqF9Iac5wPOSOvMMiyx3lUcGs8ZS/xWD6y27mwW/xzeXn5FcvlCy+89Mz/e7/f/8L5e8hFDWrRw+LFOVU89MbjgCU9tRbcyDMqkyDMx7dH0peXlz8LiN7i4iLexs/X19ffVD905FqMZPkXQYHr4cZZqAVZLOmpdXdPGINJ2r4+XSKQ/f39T+wW8bupt95DjuFVsvePsJDu2+/mu7DthfW13eQvShgxI9uvHmM9CN6i3ix1xkI+bhdL+k7lhgGmBgQA9vb28OkpAFtZWXl1dXX1ddqUmlP52IcEvWR8LMLxF9mGJHU7tHOLzdm3lvhoiYVTxKKkjnosL2+8Nz+1Rv2soU/zqENqHvUgMzi1Nug4pTaLjVBLHRLDVSI+ymIPn0u/ShLlHF9TtPH2us0iEPagDUmdMS+Zk8pjDDU+7m3ft2i3veFSUwDSWyjlMpYikfIxv7WcJOEcUZL3IMchpL19n7HsSREmeEolSd9YwKpkrYWufdv0Cx8nS4U6IKejXmOlfreJ+Rlq5/TGvDY3jOY8ea83BtzSoUTYSn2qM16U4xBm89yjpYdQHDpm0PclDpXUh7ZOES4Vt40NBVJI8DNpe5lqgRweWIinCCPAZiEJP+yTzFk0ZlshScoa2tIHDxQ0iNeqZ9fI4i4RDnTsZndnl1cdmWHdq3ua1lDC9kXaN9boabN0tjy4mKOjo2+HodLH1us4DPoo0Q+6X7UXgw9O0C7NBgbd15WN8fSH/13h4EKATVVnPCdZk4tP2w/sXKo3CDOJspZsThAb5yDY564k8UHqzs7Dtwh6O9DVRqH3+ThyulwkSgy0Ibminvo7jKCSislVtY+zaReS2LwkFvpph++WlRwC3obPF3obOdNeigE6bepqR2ypG45BaUIfmvBA2JCxriRxeJnEQ/CUTFKbOmUqh75pShLkTNqU8KsebJKgZDGl+lVnHDLn15xJ6p4Ee6tfdcYhBwpWdU2CXor53C7tHFFgCjFPxNtdgp/k7HgQOYI5/yRBTKNXJMph/wNhYJJ4dYTdcAAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-debug,.ui-icon-selected-editor{display:inline-block;vertical-align:middle}.ui-icon-debug{width:28px;height:19px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAmCAYAAACRWlj1AAAABGdBTUEAALGPC/xhBQAABsJJREFUaAXdWF9ollUY/95t7Y8uULf0ZjC6qUg0+3ORTGN0EShYhiwhvKhGsUXJBuZyOuY2ESdduUgSBPuzJEd4kQuCLupiBWKrliHiRRIqCDFGbjV029fvOTu/s+c93/ne7/0+pYsOvHue8zy/58/vnPOe99NM5n8+ohL5FRuXDdS5FzkCaeOmYosUi49Xu3ez0IIFsxfTcDHYYLF7bExFMm3ThXDRoUOHNlVUVOyOoujVrq6u6RLIuByzs7OvHTx4UHIUIlHInylL0Ug+cmI3jyU3ivmObDbbTnuB3C7e4jNYoOOSo7q6ehQEa1WepB4SyxQiGErMxkxiRU4a+hWr/4GqSKzLMzAw8NCRI0duDw4O/qBwokZYnLch5/Bsqqqq+gon4X5x2OFy0FDAbtxJBEMJtY1HSnauFkdz8s6dOzuw8v9grnG2j8XdrqysfBqGioWFhcsWJ1iD37dv33cguVcCkK9pxYoVo5Yk8zmsYNSgX5kW1XwEQwG0mSL9/f3yzhlySLUwNze3q6en53dVgXhlwkuVzT4pBshx5TA5MY9Acgi+YfEpkvq4Gpf88UawXohgCEibkUIOO3EOBaRwBrvRs3///m9sQWJlKnrsQdNPiQMxF5RPTDIM9uLFi29C/8kY7E52dHTwuDI/pcA4cmw+wRwAImkTGfnksNpfdHd3v2craCyLOtnS0lIO/GMgOX/z5s0J51haBGMaHh6enZqaegm4P8UgO7lmzZpzpZDUBNmcqptDrknvHIC/jY+Pv2ED/Pic+dq1ax8BdhlIXh4aGvobumA0zs1xEf2BC2uXLIbkL5KkhJihCdJGycKmKC6P2LFEwanJycmWkZGRGQQQK7Faj+XC4uj3L4TT+Ki3t/dbXFzdzph+J11uEnQGm4xzkZGQw7fpS+jmnYNcmJmZeeXo0aP6UrGhsY+ziacDi/KE6Hj/9AVDd0hGBw4cOAb853Qm7CQhMUmCMaOdGJJ455o8ctJgH+xfa1wogWeLysrKzA5iV370fJwGf5mMjY2141i7dzZAUuK5KcxlZIigBkY4VruB5M5J0O3r169/BCk4jRWfHrFmm5ub3QVz48aNXzQwoOvYaHR0dHZ+ft58OogVknV1dc2Y5+vD9BYiKDkYFF25cuV1rN73YrSjsqGh4dOmpqYKGqzUTXmuTGbz5s0Pw2gumBMnTsgFo4fEMp7S+fEJWodvbq8zQAHhvfjuyndYj5wFz0fQBZ08eXJ6YmLiBU0Sq7dp69atgw60pLA5Snqimpoa8/4hj//++VjGGNnW1raqtrb2DCbL6BByIH0Mc24EXTmyIEFJcvr06Wl8DrZrkuXl5e19fX27bMbEJgWDRUlzwcTyrF+/vryxsfFjxDbaOhm8v++C3PuSkjar67lzpSFowPgcTJ8/f/5FTRI/iI/hmDzusiUoJIgGzS8UC40R8sN37tw5gLhnaRdyqDfEeRqZmqAkO3v2rE+yevny5Wc6Ozsf8IrFjo5cMPBvQLPzV69e/dnDBqe4pVtwSjrpDJBLXBzGpSEoiZgsGyDZsHr16s+2bdt2H3ChYxLpC+bUqVP+BcNenMQurcPt/SENHjndj0A4Z48MMzIfwVAQEwjJW/qdxM48s3HjRl46mqTRvQuGeWKNcLJnz56VOBUjmJtLBf9K6QJhuVD8njhnaFDmI6jBTERpfPJO6tsVH/G3Dh8+/LINjB1Rvn+FfsFs2bKlvL6+/hPkeFDyyG2JXzL6nZMeZFAuzpb+5thDBAkSmfjI7apJ4p05jndnw1K9RY0E0bD+RLCOg+Mo92PynBjsp0DI6R7EpedaF58eJn+IoICM06J1Eq0bN0jeunTp0vO4Xcfw1OCD/KiNcwIE5V8Rf127di3xguFPOez0O/Y7l6YPYihdXV/hsaIU8vLIDSiP/HKRi6TSPlWQ7mltbV2F/2/Zbn2CS3okV87T3t6+UuVwuW0d1pW8Eis9sUf2rCXcubeeAPTgXEutayz1pJVM8kl8Um7GiuQjMbSLzuFssgp6sEDIpn1a19iQ7op5Tm3X+bSuQ4gXqXWNEZ0+Y/cJijFUgDZKE2z/hGyxIgqczy4QnUfrjMknVfo4OXGECIpdF5C5jLS2RfTSXza2ZEnWQnWYw5c6E33aFmyagFAhbdM6YwrJYBM2KCmfjtM664VsxpeUVAD5/CG7b8tblF2VIEM5QzaX2m/KOZSShEnyqRQx1W8oTQ4/hgnz2enPu0MOYJU0TQhU4woW94sUOU+VXzdUKH8x2EK57tafipwUKaXpUmLulpCOT02uVIK62H9FtihSusF/AVMAYvFfNRJ1AAAAAElFTkSuQmCC");background-size:cover}.ui-icon-selected-debug{width:20px;height:12px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAYCAYAAACIhL/AAAAABGdBTUEAALGPC/xhBQAAAmFJREFUSA21ljFLHFEQxw8vjdEmBLEMKKkEDaRTCwmHkD5gE/QTaIgWAb+AYKV+AxEbW5uAhYSYwiKEkLRBSCsiIRiLJKy/8XZ0nHu77+3eOfB39s38Z+a/yxu5RiPRsiybBjtgMLGkg9aLHh1NJZA3/o0XWwySEoLUfr7ukGUf8bVf9M4oGsmXU3FfeX54h+AO5J+Cv+DYpeRFZ/IcrgciaWLFnXEe8UP9Gc48ENv2OTkTf3Odbf+p/yWpt+L+c54NDfQxeJvt2dmSz+mZvNxlteoiqbTipNE7bR7zcD9JATZZxCXXD/Q+CjddJGQvbq9okI9T2wQX4B+I3dUncE6BWlwkTC/uG7EBL6ToDHcsn/a9iGPjcF8AeRm1YpEwvLhzYqO2YewZfumChOqpWQbWOkWS9eJkKV6GGpbFqIkuSKieul1g7VYkUS9OiKuhRrEYddEFCfWgTpbmC7DWFklkx0Z5ljsxHGpUFqOmCZIWJNSH2hXgrSX/OAeBqLX2gcODUKOiGPxKC2L7UDsB5OWsvb3hEA2J3LohJDzQo/KCSFvqHoMTYO1WnM4mGxK5oPmYp77yglAj1+IAWOsUp8NheZGXxJ5rvszDO8qnTJXxbA7+el6jrlicFsL0In8SG9J8yJOvvCDUzAFrcXE6nCov8pBY4dKQq7Qg8MeBXYp0cSUiNzTnPcOSFwTuI/ADqFUXpwLo4L/ka81ZDy9pQeD1gfdArb44FUAnK/IP52eaU08saUHgrQG17sUZAVbkK42rZ6L82v4FYj+x9nN1vRNnRIjIlp7reOq77lFn7r3WXAHbjUanj7ZkQwAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-bars,.ui-icon-selected-debug{display:inline-block;vertical-align:middle}.ui-icon-bars{width:16px;height:13px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAYAAADWm14/AAAABGdBTUEAALGPC/xhBQAAAD5JREFUSA3t1aERADAMQtFS28nZt9VEZ4KIfhyKu2eQ7ZvkrIFIentgl0kEEEAAgSYgvqB5UBBAAIEfBfiCAmA9E7fIO2/TAAAAAElFTkSuQmCC");background-size:cover}.ui-icon-selected-bars{width:24px;height:21px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAqCAYAAAD1T9h6AAAABGdBTUEAALGPC/xhBQAAAiJJREFUWAntVkFSxDAM2wI3Zvj/O5nhHHBYMUoq12nr3eYAF6lOLMtxs3S5rf+WdWiqSGE3bJY575mV10ZgGrhldmTPVv7eteakneTy5ixw2DPuxTl3D+8NQ7+PN5pbDVSBUsrnT8Z7k/W8h69lWT7u5WQjL8/z8phKdsoYFVfgGDjQ9jHnvLOcTxkcaNrMa61oAjDKCH7WrMo3bej3qPbftu6ATKAgClDoFF2d7ohaNIERjUv3nJnAoRPL7jaaAEwygmd7MT3Thn6Pst7rPdq/z/zscSmYFIT5SK54ExgViApkrktPXgNcmBOZ855MzjWYyxojDcjEWYLhr9BE30LyzLwJ8MWViRcEpScLqgWOgQPNO/PMXvidBwdaHea1rjcBmIJRRnDsyUTThn6Psk54B2TWbxAFNrbsWlqd7kh2NIERjUv3nJnAoRPL7jaaAEwygmd7MT3Thn6Pst7/t5A8lscEMZFGPXqFbDMnMm+EEh+4BnNZYqQBmThLMPwV+v8WyhuV/MdpQbXAMXCgWWKeZ1HfN74HzGvd6A7AKCN4pnFomTb0e8SeBsM70OxuH1CgjR5/Wp3uiFQ0gRGNS/ecmcChE8vuNpoATDKCZ3sxPdOGfo+ynvctZJvxjgMh0D8jnoUw3uupeBlpAEKPNo46QGUYa3+41QA2eca9OPL2omfYi1f9kQZgJNswdD3cNI4kNsUc6zNjbVCZVrGZGmkm8w1XM1lp25ZBfwAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-music,.ui-icon-selected-bars{display:inline-block;vertical-align:middle}.ui-icon-music{width:11px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAeCAYAAAAo5+5WAAAABGdBTUEAALGPC/xhBQAAAbBJREFUSA3tlbFOwlAUhltamrCxOOBGwgu4dCUdddVFBzWWF4BAZHJwIiTAC1ijxKlxM3El7MQnIGFkddKUttT/VNqB9nIvlsSFm1zu7bnn//h7TtrK0g7HYDAoOo5zLstyTd4Ft9vtVoMgMME6w1ogpvpXMNyV4O4KenO5XFaIA6efWELwVo5Ho5E6mUyOAarB2QkgoTEAx9hb+Xz+dbFYfGEvCYH7/X7Fdd0bwK6hKZEQY475rGma1Wg0pmEEP51OJ6A9sxSAFXzfP8U0Aa0CSiY8zDc4fNB1/d0wDLpOHQlwr9c78jyvBtgFYEVSYZ0C9gh3T/V6nZxyRwIM4AepAPrG8qIoitVsNse4Dm+RS1wlJMCREO4O4Y66LLVarSgsvOZYmRGUdc6LM8E8Ie98D44rtC9FXArmAxJncDa2bWuz2ewej/0lUmNevOHomccr6O16QubmrZyuc6XM4ATxNzDPDMZbb7gOp1jmGpfL5TvUmd7Z1Dx63Q4pJqd09YAS2u220GeLctOGyupqWvI2sVx0C9uIRHJZzRP6rm36gxyrq5tEImcqq6si4n/J+QEPDKqNwkXNgAAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-cache{width:20px;height:16px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAgCAYAAABgrToAAAAABGdBTUEAALGPC/xhBQAABSZJREFUWAndl3tM21UUx2kLWCZK5wabzmhbnzFG/xITE2NI9pcmmhiDM+pi4xibzGop0Dr4h21ieRMCTCzKwC0CuvhKjK9Mt6mLuhiXGWMWY5kxxuGTh1TKy89hv9v9GL9fKS9NdpPbc8+55/H93XvOvbeWlGVoDQ0NGyYmJjxTU1N3WSyWP+h9WVlZbxUWFo4v1b1lsQ76+vpskUjknunp6S0Auhtq0/tCNgDflZqa2uH3+0/p5xYyXjDA2tpaFyv1OEE8gLpCCxYD0Bvw3Var1S2g6bcoIMwdZhzOyck56PF4/lHyZGhSAFmt9P7+/vsIWoDTjVBl9x3BO2w2W1dJSclv+oB8yO18iADdhDxTm/sTup8eDgaDJzVZQqICGSrV1dXdODk5KUE2o5AtSgCKwr/KSnWUlZUdNTTUCVtbWzOHh4cfQiQfd5tu6nN8hTMzM3uLiopGdPJZwzkASfiM8fHxB9AqAMidShtnX8tqpaWlHfD5fH8p+UJofX39rRTTFmwewbdDbPE5DOlhF8Lswpci07c4QDEGWAEGD59n/AoG4UAgcFxvuJSx2SLg8wQ7E9YvgoVcuZltfInJOcuPck9paenfSwEzn211dfUN6MhuzUojFqqbFNpmJZFPw3xMjwNh/DvgvllpcAI+IyOjH/IDMfXVLfx7Mh/fYgpiLStZwpcUIZ+pOlECaCVAj4nycrbOzk77wMCAFGAQvxs03yeJt5t4rxF7WmRxgJpCSktLy5qRkZFiFJ7E+BJN/iG0kqPhE6W3WCr5R6FsZecC+Lhc83OCeLvY0tcVMOV/DkA10dbWtprjwQdIL7IsTX6Im6GSajui9JKl7e3tqwYHBwvxV0ZfL3aA+QqyG2Bvng9M+TUFqBQaGxsdsVjsafincKyOhsPwlVT2R0rPjFKEF5M62wFQin2O6DE+zlbuYivfNrNT8nkBKsVQKJSFYy9BfMhWixz+qBZIUmBWkwOaVClC389Etkyi/wW9khV7Z5ZyAkaOmY3kg6zOOoz35ubmvpyXlzdhZtPc3HxpNBqV/BSga0QPu8+0wO9zbEje7tCAqfljzEuOvSv6Zg3bK7ELonsvvTc9Pb3OUlNTcx0AKxDIAW2DRuhVPJe6Ej2XtCtsB7p+7NZKUMaSU074yzT+U6ikwgfCmzV25yrmpJrlEZKOn5+h1TwuXohvMUCvwXE5/VEmU1E6Ta9yOp378vPzY8gMm+QYH/gEk3JEzeQY4yNcXXI8HTI00oTkt5P8fgZWXkZpxPuJHrLb7R1er3dM1OIANZsUAspzqhx+sxhBf6SH3G73i4mASpUODQ3dQUGcme+lAjA3wHYmE2MOQIxmGgf31QTbCcjHEMiyz/m6s5rJ/3IGXst9Lz5ndgnLforsOdKp0yydTAGqsInyI9nHJw+R6wFWzkfO5Dm+5Sqrcjgc3WbAVPykq1hXYXI9XUSAX+g1HNzPFxcXR5VDPdXekxXINmEjfwm+F2BmJ4UuxuKrGCfyzA8QcCvUTj9D0FpWYy+rMQqfArCbSI8KdB6EtdJPsZXPUnAHyONJ0dG3RLsU3+KFVjH66ymmMsBtA0gGAX9lvA/qgr8fKsDkL8Eel8vVYwTsP6nipqamdWNjY3KNbQfQKrq0b1mxPRwzvQCcOis69/u/VDE3TPbo6KgHYBGAHTQCdmFW8bmFTzzSVdiKVbERgniRGE0ayVaiio3iKNmCASrD5ahi5SsRXTRA5XQxVaxsk6FLBqiCJFPFSveCov8C8eM4yHkZhycAAAAASUVORK5CYII=");background-size:cover}.ui-icon-backstage,.ui-icon-cache{display:inline-block;vertical-align:middle}.ui-icon-backstage{width:15px;height:15px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAATRJREFUSA1jYKAQdHZ2fgFhUo1hIVUDuvr///9zo4sRw2ciRhEt1AyYxRQHNamhAUsPdLcYliYGLKhHLSY1rZCtHmtQd3R0tJNtIpEaUSwGpjgmYHKfDtRbQaR+spXBs9P+/ftZgJYuBJoURbZpJGgEWzx//nyOkydPrgLq8yVBL0VKWaZOncrz6tWrTUBTHJFNAsbzf2Q+OruiooIRXQzEJ6QPpgcljmGC9KDBrgYF9cuXL1GCGpeP0B0F8yGp6sE+TkxM/GFubh4ENHQZusG04sOD2tHR8U95eXksIyPjDFpZhmwuPDuBBIGW/gNSmcDg+4CsiBZsuI+RDQfGVyUynxZsrBbTwiJ0M0ctRg8RmvFRUjXNbEEyGJhzvoK4dLcYWFbwgCweeYmL4qCGxRko+EgBAPolSpPUUZYoAAAAAElFTkSuQmCC");background-size:cover}.ui-icon-compile{width:18px;height:20px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAABGdBTUEAALGPC/xhBQAABaBJREFUWAntWEtInVcQnqvV+IzRu6mVRMToFY0FF9Hri2pRayhITSNKXbjRQLUrEbEQumkpihC7ULrQdSi2lSyEaEWtVKhEpIsQ348QqG58BB/gg2i/7/if26v3/+/1JqF04cDcc/4zc2bmnzMzZ/5ra2tr++nk5KRS3g5+b2lpKXw7Eae7A2DMp+9AUEFXV1fEO5Aj72kheEObnvsztra2nvjD74s3wBfDf02/NMiXxy895MtDrix719niS7EV/X93ZC4PXdYhizNzeciCbrqM6yYDhM+A+ZubmxIRESHBwcFr9fX1q1j7G/gH8LHNZvsLo1/gl0Ew5B6kfwd0aC0xMTF6yrss2UBetN+Afw7jAxj2C8YLwYUMguAESHsEdFLqzs6OLC4uytLSkmxtbcnu7i6XJSwsTOx2uyQkJEhSUpJcvXqVhv+M/RMYv4BhK+TzBj4NgrCPIOBXoJ2Kx8fH5dmzZ3J8fOwh9/DwUF69eqUMHR0dldTUVMnPz5fIyEi+yCRkfQ6jxjw2ui3YUH928GzaOly/fl0qKyslMDBQeaS/v18ODg7UMz1AjI2NVTFEmXt7e7K6uqoMmp2dVUaHhIRIaWmpOBzqlI/AVuzNKEuDoqKipKamRkJDQ2VqakqGh4cFbyjJyclSWFgo165dow2WsL29rfbMz88rnpKSEsnIYC7IBvC21fG5jux8HYLyP7HRyVihMQQakpmZqeb4eQ7sAXRQeW5u7vtZWVl2rJUAaxE/aeXl5TIxMSFjY2MyNDSkXi4lJYU8jMdsoAeYVmoYw2xyMmZ4TPRMQUGBNuYQtK+AH+Itf9jY2JCjoyN6cQ/P01wjzeA5dDqdyjOUMTg4qBPAaegA21kwNQgsTG0VwIwZHpPhGRpzB0q7gJ5RzU0A0siD6R3gYXFxsSQmJsr+/r7yFnkASsfp9N9fD4NgOQ/awdRmNjGgeVQGNELRiH7wNRq83COMIcqamZlRZQN7HYauM2I8DAKVFVhlFVObmWQEMGPmR9L8BO55jphSmfb69WuZm2O9VKB06QeOZgblk8CiR6BBBvTgTS2PSTOdH409PVy/efOmIr948UKN+FG69ANHj7Svq6sTXgfd3d3Ce+r+/fsSHR3NdBIGsBWg+EU2NDSclmww4Ths7e3tX8PL3+LR7MVdomD0HI7zblNT03QAHvpdFEx4URL0daCfmdpWABlj7saQD2snzc3N30PRJ5ivW+3FOm+B2zSGPDb+uAPeTFXujo4O4VXQ2NgoQUFBZImEYJcH3Pf4mvf29jqQYbOs4hoCAgJ4rexnZ2eH6jWOZq5Uu7RntKfAe8N9oz/zioqKwOrqal2pJTw8XKqqqgQ16uV5Oa5K7UZgP5PMuGEMra2tqRjCGiuwcqsb70WnJfQIUz8+Pl7i4uJ0aFDXGTDzEJsrVcg4LiwscCDU4jjN+E+pFr/GnlpN5iWrvY81pUvTOJopeEwCU5RvRYPYUgDSgF9y4idwD/eagdLlTvAwCIHLtnMOWSzp6enCQsbexoCHeOOP9YOv0eB9aME3Z+g6Q/YwyKA+4JiXlydXrlwRthBPnz7lUjDwCRQ1GEfBNQ8gjTwgPAEG88bH/1DS2dnpKidYVzrOb/ZIe80Aga72o6+vTy273fh8Vu0Hxt+AL7kAYCYy+Bkz6pgmJydlZGREHT+bvRs3VLJOwDum7Yc3gxIgdBJof9MGbWBgQFZWVpQxRUVFOu29NmiWBsEQln/200PAIDZq3lpYXsSs5uvr6zI9PS3Ly8uqhWXNKSsr057x3cJSsTcwjGJ599nku8vBd5qkpaVJTk6OTnN6xneT7y7Eag6jeHyPgJafQSwRbFNYUFn4bt26pRLCkHnhzyArG0zXYdg94CzwokBetsMXBq8xZCUFSlyf0uCJA35g8K5i5HXwxp/S/wAO93QiWLiA7QAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-compile,.ui-icon-logo{display:inline-block;vertical-align:middle}.ui-icon-logo{width:70px;height:40px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAABQCAYAAADLPJ1qAAAABGdBTUEAALGPC/xhBQAAC9lJREFUeAHdnVtsHFcZx8+ZtZ2EBJpStQgJgbiUh4YQUAO9xLcmhXYdOUqqGFFS0hakPlZIoCIqVEVtFVSgL0gIIRAXISAhrdPErddAL87aCReFhwhCqhZUISKlUWkaUrs0jncO3382m6y958zMuczMGZ+Xtc/lO+f7n9/O/nd2dpYzT8vQ4f5+EYonmOB19t6VO2rX1s57ulQny6q+XF3GTs3+knHRzwO+fXxDve4ksOMg3HE8J+EAS9hg44yJlQjIGR8naO5YqtBchGVUMDHUFJDPBhU25CM03gGzGJYWgUsVmk5YLmXsJTRBa3k+PKpgwdqiZ9+p2dH7jt7X7cNaXawhyoVyunxkaY8qVuIoC03aa4v+2xtg4mBpiQRhT54/cfGw3aot7yNykcPSysk/aLwAJg0sTQn568uXsT+35Cz7YzMX/np8Hn5BU7iHSQsLeZiGYJXbJvpfeC5e4GxaNx8e/JgQ4ccXR6+wyrGx3heOL65P+//t9Vs2cdb4LR1pKvFj/DDChQKTFhYIyTn/Wq2v/ni8qNm0Vg9v/LAIL5wgI9Xhnzhnf6/1Ta2xmbk61f9VIcR3k2MUD01hL0l6sLA9RcESbWLY2CSDpbnB/F/JGx3fA7kReHvie6G1+JenQoDRgYVOwhzrWrH6y8liZtlDXK+KLhj7i6pNpz7KkXJNHlMsNLkDownLme4evm1s/dhbyUJm2UMNDBeBE2CQI3KlJ8iZ5EyKgyZXYHRggckNePD5sRvqryQLmF2PkeMjPRR9rXKGHnZU2abZgFyRM3JPHloMNLkBowNLUyz+4Hjvod8nC5dtj7fO/GetEAzQdBTyHa/Vbpw82dFgUdHMmT+YLkT+0OQCjDYsnP+m1n/o2+lEy7ZXyEKlf6H3bs6OLu1ZRLmTBu116r/zhSZzYHRhocPxX69+1/IvqQXKu0XtX1wZXllG0ABayNo66/KDJlNgtGHh7A1W6dr2i3W/m+0UpagaNTCuDK8ss0gD0oJe9t6QtXfW5QNNZsAYwBJyVvlCbcPz/+wUo5iaPA2vLENoAU0ImlDW3lmXPTSZAKMLCxInUb453jc50SlCcTV5G15ZptAE2sja5HXZQuMcGCNYGH9yvHfqW3IBiqstwvDKsoU25GeelLXJ67KDxikwJrDQiarjq64K7pEnXnSt2r9kaXhlWUcakVayNnldNtA4A8YEFnrWnO2pVLbuWzM5I0+66Fo1MFkaXlnW0AhaQTNZu7zOPTROgDGChYycCNiOgzdP/kOebLG1RRteWfbQCpqlN8GI4hYaa2BMYGmKwR+a6K3Thd5+Fh8Mr0yZpmb8IVmbus4dNFbAmMJC17bsp1Pgu9UJFt/ii+GVKQHtoKGsTV3nBhpjYIxhYfxEN199NyVMvtHnovYveRvexSpBu0hD0nJxW/z/9tAYAWMKC51t+S/n3VsP9h58Mz4xH1rVwORteGVqQENoCU1l7eo6O2i0gTGGhTNBH93fNd733EvqZPxoSTK8PctDJ9fA2GYLLaEpnZrQPFqbQ6MFjDEspAw9K3fRWcunbUXKY3yS4T3w6fq/81hHmjmgKbRN03dhHzNoUgNjAwvhcoASe2Thgv39z2fDK1OtqS0/IGuLr9OHJhUwVrBw/iLvWbnTf5PbLq3avxRteNtX2fob2kJj+kDuxVZd+kc9aBKBsYGFTjCd664E22o31s6lT8CHnmpgfDC8MoWgMbSG5rL2+Lr00MQCYwMLjBgP2M6xmycNqI9PL8vWshhemQbQGprrm2BESweNEhgrWGh6Iv2R8Q1TBq+rMinyq3v73Kv0DUf1Nbw+GV6ZKtAc2svakuuSoZEC4wCWp+neJruSF+hfj/n5YL16Vdlcw6uez6wF2hM0hu9I46HpAMYBLC+tWrHsrnKZ3PaNUfsXHw1v+8pbf0P75h4ww3NeamgWAOMAljeDLr513/pnNc8+tlL14VENjK+GV6Ya9gB7QUcaw7PqcmguAWMLC4yWYMHdz9xU1/x8Q5ZuMXVlNrwyxbAX2BMzE4yIndBEwFjDQqHpwp7dE32HND9BlaVZXF3ZDa9MOewJ9kbWlq5uITSBI1jGb+jdqHmNRrrl5tlrKRhemV7YG4LG4tqjy9AEYSj24dAjmyhtXVdQeWAX35XyqxBpoxbRT+1fymJ4Zaphb4JK8HVZW/o6goZYCeik8lT6QfKe86zxCXlL2WrVwJTJ8MpUD0W4TlavUwdWAtw02e5wRcenkH1/aGrTR3Um963vUjO87fpib7BH7XW6f0eMECtBdLNkummyHTTiCsHm9m+Z3vJO3YX40n8pGl5oiz3B3tDT+gpTrS/CEt1YO3qX5AIaek993Zw4+zO6V1uh980zFWUpGl7sRXNP2HWmurTDghiXzsO4gIbOxNwxND2Q8t4mpilkNU7tX8pqeKO9oD0xVWwxLIhzCRj84wQaJh6uTg9UEa9cRQ1MGQ1vcw/Ew6Z7IIMFsRYAgwpbaHC6l76i9qstRwY/gnhlKEvN8Eba0x5Ee2GwASpYEKoDGFRaQ8PE6rlG46mR44OrEM/3spQMLzSH9nSj6NUmusfBgnhSYNBgCw1dx75m5kzjp4jle5m/EOR+W7KsNIk0J+1N4ifBgphKYNBoCw0dErcPTfd9A7G8Llwor4Epk+GF1tDcROs0sCBuLDDo4ACaRzcf6bsNsfwt5Te80JhgedRE47SwIHYiMOhkAw2MF/3uz683T936IcTyrSwFwwttoTG01tVXBxbETj2BJTRXhmLuqS8e+6zVh5y6YqTpX3bDC02hLcFyZZp82/vowoKxqYFBZytomFj72rm3f4I4PpWyG15oSu+I1HcqV4htAgtCaQGDATbQ0Jngz1XrAw8gjjelxIY30pI01dXSFBbMow0MBllBw8RuOmX9GcTxo5TT8DY1FNpX0tnAgv0yAgYDTaHBL4/RtRl7hv/U/0HEKbKU1fBCO2iY/CtuC9W1hQXRjIHBYFNo6KTeuy/Mif3DR4ffgThFlTIaXmgG7aChjm4uYMF8VsAggAU06y787+yPEaOoEmd4fT1hF2kmmNbVc65gwT5ZA4MgFtDcid87RIxCSozhpe9BZPJLJTZ5RloJdqdODJewYF4nwCCQBTSP4ZdVESP/Uh7DG2kk2GM6GrmGBXM7AwbBTKBpGrfG3qHDGz+AGHmVMhnepjaNvTomNwtYsDdOgUFAE2joetOrRGN+/8iRkRWIkUcpi+GFJtAGGqXVJStYML9zYBDUBBp69nxyZv70jzA+j1IWwwtNoE1aTbKEBWvIBBgENoRmR3W67ysYn3URXO1ffDG80IJg2ZFWi6xhwToyAwbBjaAJ+Xc2Tw/cgvFZFrp3gPIaGB+u4YUGgrRIq0EesGAtmQKDCfShEV10FnPv8PSt78f4LIrvhhe5QwPyLV1p8s8LFqwlc2AwiS409FH91fPi/Og9rwwux3jXxWfDi5yROzRIk3eesGA9uQCDiQyguf70yfCHGOu6+Gx4kTPBEnON8WU18oYFM+cGDCbTh0bsHJoauB9jXRZfDS9ypW8r7kyTaxGwYF25AoMJdaEJhXgc97DBWFfFR8Mb3aeHck2TY1GwYG25A4NJ9aAhE0z3Jan+cfB9GGtbfDS8yO3ifXoSTW6RsED7QoDBxFrQCHYNmwtHqy9Xl2GsTfHN8EY5UW50ucI1SXkVDQvWVxgwmFwHGjqB9Sn26swPMM6meGd4Kacot4SkfIAFSywUGCxACxrB7rX9ZDvO8NKm5Po7SMiF3hHdCx3iii+wYI2FA4NFpIWG7jk7V6mI0xhjWuIML/0EWK7XwCAX5BSXi0+wYJ1eAIOFJEHTFDbY/syGyb+hv0kZESMVGif/SgaRRL8wkCswzVyC7SpofIMFmnt3t6jIBJ6aHaXX9aEWFC1Yan2Hxlp1po901drP6WXg2kXjBc0xWuurp3pbu2is9b/VqYFhxsInaF09rWA+woK1eQcMFtUOjUtYENvX0g6Nr7BAOy+BwcIADT89c3/IKn+Y6J2cRt1SL7dPD/YGrHGTeM+q70Uv0R4m/H9Qbpi9gFs5AwAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-pause{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAABGdBTUEAALGPC/xhBQAABmlJREFUaAXlm0toVUcch829MSXB4KK2VUpJd7GFdqGL0BLbuiiYUCp1lyKmWDC6k8ZKEIvYliLVFHcaBTEqurNYShKo9KGhkoUuWqhmV5HS0sdCUhIa8+j3Hc+Em3huHjeJufdkYO7MnZnzn983j/OYM6dsxSK5jo6OKkzXj4+Pb8TXEq8tKytbS7yasNpqiQ8QHyD8g7/9xPU3ife2tLQMWmahXdlCGjx37tzTQ0ND746NjW1DeB0gFYXY59hhju3LZDKXKysrL+7YsePPQuwkHbMgwCdPnnwNgR9SwRZ8uRUhepS0W4TXCe+Ul5ffGRkZuVdVVTUAxIBlaJzqwcHBavKeI289ZddTdhPhBsKsZXAj+B7Sju7evftalDKPn3kBM2w3I+xjfL0aEPWAoIueOU/aVYbl/UK0YXc1x7/JsdvxjcRXagf7vcQ/2rNnz/f+L8QVBIygdVTcjm+KKx1CzHF6rr25ufmfQoTkO4a61lDPB/i9lKm0HHVdwrfSoL/nOy5f+pyBT5061cAcvYSA1VQ6iuGzxA/R6r/lq2Qh0k+cOPEs9R3G1nvUlyV+n5HUtGvXru652J8TMK3dCuznVJDBd1PpPubVL3OpcL5lOV+8CPAx7DTgx4DeT0+3z9burIC7urqeuHv3bgdGm4Ecxx+kks9mW8lilKPxDwD+KV6GzpqampbGxsb/ZqprRuAzZ848NTw8fAXDr2DsX2C306tXZjL8OPLp7a3oukBdq9B1o6KiYuvOnTv/mq5uh2ZeZ88GWAz+yvB5tVhgFa0WNanNDlGrmvMCkTEtsMNYQxrk+lnHMP55OmNLkacmtQXoeOrllZIX2BMURzXjHcZvL+TdTl41BWaoTY1qxTfH2hOtJc5hLz2jo6NfY8T8d4ppGCdSxInOaaJfMirHs9nsW0mXrEd6mNZZ53WWAzPwHiwVWJnVqma1yyCL6bnuEWAaxzuo1RTqXupLT67Q2cZjzd0yyDL1uEnA3M28QaEmWmkUv29q4VL5r3YZZJEpV3f0ZBMSKPQJhfx7luFR0B3UkSNHIgPBZgjb2toSzxchv9DjwvG5odqZz2dJe18mwk0hf6KHOVG9DqxPPUOEh0KBUg1jBlnqZQscE8CclaMhTIscX+wHgVD5YoYyyGIdgc14BOxKBfEtFHjgI54ZaXDwfCETLFtixofALsuQ6HzuWujn2aVsOM7Yf8skW8z4EJhr1jaFcV963jBlzoeLFYGxnItzFRO7jjRP41dTBuvqyDey4etkdQ67lOrq4k2GQEFrUBxbtE4m+G7FjPUZIhtjtb1Fq3qewujl65qQVWAXye3624ZpdIFNVod0BMwJqz+NsDLlsNX6RLTWRBfJDdPoApusDulqIX0jkEbYXDZZ7eEIOLz+SCN0YJN14l46jaBJTA7paCj7YiupQBrSApusDukI2Ld4aYBLYghsstrDvoxe4SvLpMJpSAtssjqHo+svN9fR9TgNgFMZfPccp/U7pCNg6F+YWjAt/2GMgGUV+KZgAE+s+6QFNHAENlkd0r1EhvEbeHxyeTZVTibZZASsN8Pj0yAt0IfP4t1mkConU8zWJ2t048HN9eWY0j0VaXMRU2CMgLn1ugjlCL6xs7PzybQQM5zXyCRbzPhwTSt+M9hD16/krqQ1LcDwuBnGHUA94e1n1MMCMqmPGlJgrxtIjJeyk0EWGQKb8QlgXk9cI8NlnkrCw2aWsosZZOmVLbBMet/DmN/MHde3FHKV7+VC3y8F40sVutOHun+ih7OEm3M3sk30sOI4bX8HrHuwvES5NagkndplkCUXVphJwCZQqBXvcm0DPX7AtFJyseYGGWSZqn3SkA6Zy2rLg9DujeBCvZ9hUYa/QKu9FBqjWEM1qlXNak/a36H2R4Z0AGI+txPvxK/CyFfh7VvIL6ZQbWpUK74z1p4oMS+wpd3Oxzy4gbHnWTXoK8aeVpPa1KhWNSeSxonTArt30e18AZpL1o/x1qDpbD62PLWoKcCqdab9loknramKl9Xm0lx4hs/y2D6cC+0li2G0PDaIB3B6evl8AhCgDd30xQnNvV31/ieezo88hMt17oOKtwZN+oyHMi4QumZ2m5uBft/i5fuMh2lSS8O5cmrj+XGXN/46FyZ62Cx6jJuJH6KUefzM6iw9W/unT59+BuFN+HR/qJXUIMzzKtKL7lO8/wGZn8cjxXgg4QAAAABJRU5ErkJggg==");background-size:cover}.ui-icon-pause,.ui-icon-play{display:inline-block;width:30px;height:30px;vertical-align:middle}.ui-icon-play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAABGdBTUEAALGPC/xhBQAAB7JJREFUaAXlm19oVEcUxs3umpJgzIO2VUtRn2KEFtEH2xrb+iCYUCr6IKSIKQFNAn2QxvxBLGotVhNTxIcmURCjoiAlYilJoNJWEyt5UKQFY540lLbS1gdNSWjMn/6+651lN7mb3L17b9yYC5OZzJw55/tm5s6ZOzObMSegp7m5ORvVBWNjY2sIeaTzMjIyFpHOIc6RWdL9pPuJH/JvL2mFW6S7ysrKBiTj95Php8KzZ8++Mjg4+NHo6OhWgK+FSKYX/dQdom53KBRqzcrKurBjx46/vOhxquML4aampncBWIWBTYSIDAF6hLzbxJ3E9yKRyL3h4eHfsrOz+yHRLxkaJ2dgYCCHstcpW4HsCmTXE68mDkuGZ5jQQV59eXn5dSsnhT8pEWbYbgDY54QCYQDUU6I2euYceVcZlo+9YENvLvU3Unc7oYj0XOlBfxfpzyoqKn7S/14eT4QBtBjDDYRi2+ggYI7Tcw0lJSWPvABJVAdbC7HzKWE3MlmSw9ZFQiUN+meieonykyZ88uTJQt7RiwDIxegIis+Q3k+r/57IiB/5jY2Nr2HvILo+xl6Y9GNGUvGuXbvak9GfFGFauxKydRgIEdoxuof36m4yBlOVZb5YCeFj6CkkjEK6mp5ucKvXFeG2traX+vr6mlFaAskxwj6MHHZrJAg5Gn8vxL8giEPL0qVLy4qKiv6bytaUhE+fPv3y0NDQFRS/jbJ/IbudXr0yleLpKKe3N4PrPLbmgetmZmbm5tLS0r8ns62hmfBRzxqyKHzA8HknXcgKtLAIk7CpQ4RVmBMSomBSwhrGUiSF+M+1DONfJ1P2PMqESdgMafvVSwglIWFNUNQqIWgYf+jnaichGo8FwiaMwkoosbE7anN8h+V6RkZGvkOJyrek0zB2ZGFn6p0meZlRORYOhz9wclkTepjWWSw/S8UQfPfNFLLiLKzCLOziIC7Kj30mEKZxtILKRaj9ebueWKBu0zbmdnEQl/H14gizmnkfoWJaaYSwZ7zwTPlf2MVBXMQpFnccYYQO2YVnGB6+rKCOHDnSevTo0SWxRoNO29jPyE4MJ8tslDAT1Xu0iL56Bon3W6X+/NmCvruQLid2nCT9MROvxeYgLgXiZkqjhJmVrSFMixwP4ENA71NjXV1dJ8TzjfEgY3EQF9kw3JS2CGungvQmBJ7qE08FQTyQXke4A+n9ly5d8rQbkgwu+HwlTtTZZHN8RljbMmRqp6LN7+9ZB4CZkD5w//79O/T4Oody37KYsf8RJ0LE5viMMD5rq6ywLj2neDoeSOcTOpnUvj5x4sT8AG3q42JOlCPOOZtu11pU0/jVAA1PUI09TWIVtH5PfX39lgkCPmTA63txE0dx1TusrVS9T7cYAp72oFLFhf0lTCytQbgwcUL/bZtjQYjEGhtwV6rAfagvF9bjtwujdzuFTVxFWJvkctA9itPgmQ8mX12Y4SauGtIWYSas3jQgG4UAON9cWAy3PH0RLZIVbZJHraVPwhcXZriJq4Z0jvjpRCB9eMYjAaPlwni3G724MMNNXNXDFmFz/BFvKn3+A2wGodyLCzPcxDW6lk4fasEi0ZC2hjItZ/V0sOa8a6d3tB/eBN6VVVVVl5PRZLiJawQlOp9doFM8lDxKRtF0yYKxh7Czurr6hhebNje53v4IZHUYvUxHlsQPvCgMsM4QIL9cvnz54W3btg15tWMfx2rh8VBfSPK/b7G4lj+2ViReFftZD6LqzZ01NTUpL4h09mxj69WQ7oW52E/Lh7mLRnmCTC3DtwlsYy7kpxRBjw7aNaR75ZZuqQYZ66esGbzAZfDk19bWNhL7QjaWm7hqSHeR0Puxms+n3OfxxYT9P1j+fZLs7Oum/cWJzlyNrDh2hSA4QEY3IUzY6EaJXzLqRUITC4P8IMgKpzjZ3LrFVT2snY5WJi0Nad2p+EZ5QT8QTcnVJIFPnCyOVqw/tPAFomFCUUtLywLlBfjI1RzE1azy6lfdYmM4L0S2iDBsc3y2p2WfDHbQ9XNZlVS6VZisHERvEFbhag6k4lfd2oWPLsPMRb7DnH5G19IAqZciBHbrAolbpS7lnqC/gh5d74dfdWNTHMRFsoab0lHCHE9cp0DbPFnEB1Xo02O5Goj65lfd4LI5iEuXuJk6cUcfjPkNTF4/IKTrSG/6db5kjE1XrJs+2PqFHg4Tb4i9yBbtYYFh2v4RsrqDJRelq0Ez8hF2cRCXWLIiE0dYGQhVErRdW0iP71XeTHpszIXiIC7jsccNaVM4q648iLTuRrAYqWZYaFvlPK32hmmMdI2FUViFWdid7ncI+4QhbQjxPjeQbiHMQ8m35vTNlKdTLGzCKKyEFhu7I8SEhCWt63y8BzdRtoxdg+507GlhEjZhFFZhdmRqZ05KWHcXdZ3PkMZl/WxfDZpM57SVCYswGbLCOtV9S8dJazziWXW5NJY8w2d2XB+OJS2XxTCaHRfEDXF6evb8BMCQVqxLX0xoh5g0CvQ/6RfzRx4iF/voHpR9NSjuZzzIaINQe2Y9LAZ6dYqngy1z1qMTAW2Sa9+Y1ySPhtPOqRpPP+7Swl+PNiY6uCx6jMXENSsnhT+uZmm3+k+dOvUqwIsJL/YPtZwahPc8m/y0+yne/6HniTzrx/iZAAAAAElFTkSuQmCC");background-size:cover}}.payment-wrapper{left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6)}.payment,.payment-wrapper{position:absolute;z-index:8}.payment{width:80%;max-width:300px;top:50%;left:50%;transform:translate(-50%,-50%);margin-top:-50px;background-color:#fff;text-align:center;border-radius:4px;overflow:hidden}.payment-qrcode-wrapper{display:inline-block;position:relative}.payment-icon-success{background:url(../images/success20.png) no-repeat;display:inline-block;width:20px;height:20px;vertical-align:middle;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAgZJREFUOBFjZMAC0s6ksT76fjOAkeF/AAPDf5P//xmlQMoYGf8/A5Jn/jMwbpDjVN8wy2TWb3TtjOgCHoftAxkZ/nX//8+gjC6HzGdkZLj7n4GpdIftwfUo4jBOw/8GphOH93cwMPwrhYkRRzN1W9g6VjQwNvwDqWeGaeJw/t9JumEg3f+tnzx6yHVn/sPdIB7YyyBvMvz/tw4kQDZgZAoCeZ8RFAGPv1+/TijMsFkkyCrE4CHhy7D88UJghDHcleXU1GQCxSY5hilyKzNMNJzJwM/KD7YLZAbILCZI0sBmP24xMyFLhl79qQzH3hxhmHFvElwhyCwWUDqDiwAZrIysDL//YyQvuJJA6VCGFMVshs3P1gMNmwgXhzD+mzDBEi1IABQmC81WMyhxq6ApZGBgAiaIXJUShjSlXByGAZ0GzABMyDrf/37HsP/VboYO3QkohnIz8zC06HQzeEn6MWx8uhaLyxCmMEGyE0Jg3oMZDE++P4YbKskhxdBvMJ3BUNCEoGEgsxg9D9st/f//fxTCSAYGUXYxhqmG84FC/xn+ASE/qwBBw0D6GRkZlzGBMjqyYSD265+vGHpvtTLwsvIRbRhIH8gsvAk7RTGLgYWRBSVpgDRiA7CETfWsB45lSBHE1I3NZuLEmLphxRg82YCKIGBqI8NQSPEFs5h2BSzMBhBNSRUAAJqd3yRPkhtXAAAAAElFTkSuQmCC");position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.payment-qrcode-scaned{position:absolute;left:0;top:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.8)}.payment-qrcode{width:150px}.payment-hd{overflow:hidden;padding:10px 15px}.payment-close{float:right}.payment-icon-close{background:url(../images/close.png) no-repeat;display:inline-block;width:19px;height:19px;vertical-align:middle;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAASVJREFUOBHNkzsOwjAMhunjAl0QR+AUwEAnBiYGpm5cgLYqB2BpO7PACYALoC4wInZmDtIHvyulMqVJxEalNHbsfIrjP73e339pmg4xRr8cNEmSeRzHA7HHFAbmfp7nZwTHbE1qIm9ZluWuqipHJBnCoJlASDiZprkIw/DGY9wmECCpZVmu7/tPEfuA0aIOKAPR3i+YCqgCSWFdQB1ICaMgujUpiuJoGMYBrte+I8rhn8Wdtp1l2ct1XQeXvUFsjaZc2jnc59Lg67VNpcHwMFYYW/hK2Uhh/I6iKNqTXEg2KqCsm506IpBKh18wfiIuyLpu/FTAD5gOpAM2MHq09NZ07RdAIRvbtmeo4EHrTQPQ/jv8aVdpAsDnIAiuBMK+5m3y+H/Zb371x9c5zobQAAAAAElFTkSuQmCC")}.payment-bd{padding:0 20px 40px}.payment-title{margin-bottom:10px}.payment-tips{margin-top:10px}.custom-preview-form{padding:0 60px}.custom-preview-form-item{position:relative;margin-bottom:15px;text-align:left}.custom-preview-form-label{margin-bottom:5px}.custom-preview-form-label span{color:#646464}.custom-preview-form-checkbox{position:relative;text-align:left;-webkit-user-select:none;overflow:hidden;margin-bottom:10px}.custom-preview-form-checkbox input{position:absolute;left:-999em}.custom-preview-form-checkbox input:checked+i{background:url(../images/checkbox_1.png) no-repeat}.custom-preview-form-checkbox i{display:inline-block;width:16px;height:16px;background:url(../images/checkbox_0.png) no-repeat;vertical-align:-3px;margin-right:8px}.custom-preview-form-equal{display:flex;align-items:center;padding:0 10px}.custom-preview-form-value input{display:block;outline:0;width:100%;padding:5px 10px;border:1px solid #d8d8d8}.custom-preview-form-value textarea{display:block;width:100%;height:100px;outline:0;padding:10px;border:1px solid #d8d8d8;resize:none}.custom-preview-dropdown{position:absolute;width:100%;background-color:#fff;border:1px solid #d8d8d8;max-height:200px;overflow-y:auto;z-index:1}.custom-preview-dropdown-item{padding:5px 10px}.custom-preview-dropdown-item:hover{background-color:#ecf8eb}.custom-preview-form-input-wrapper{position:relative}.custom-preview-dropdown-icon-down,.custom-preview-dropdown-icon-up{position:absolute;top:50%;margin-top:-8px;right:10px;display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downD.png)}.custom-preview-dropdown-icon-up{transform:rotate(180deg)}.custom-preview-form-tips{margin-top:3px;color:#f55c23}.custom-preview-qrcode-wrapper{overflow:hidden;text-align:center}.setting,.setting-show{display:none;width:600px;position:fixed;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:14}.setting-show{display:block}.setting-hd{padding:20px 0;text-align:center}.setting-bd{padding:10px 30px 40px}.setting-form-title{margin-bottom:15px}.setting-form-bd{font-size:0;margin-bottom:20px}.setting-form-option{display:block;font-size:14px;margin-bottom:10px}.setting-form-option input{position:absolute;left:-9999em}.setting-form-option input:checked+.setting-form-radio{background:url(../images/radio-selected.png)}.setting-form-option input:checked+.setting-form-radio,.setting-form-radio{display:inline-block;width:18px;height:18px;vertical-align:middle;vertical-align:-4px;margin-right:5px}.setting-form-radio{background:url(../images/radio.png)}.setting-form-select-item{position:relative;display:inline-block;vertical-align:top;margin-right:10px;width:80px;padding:3px 0;color:#000;font-size:14px;border:1px solid #d8d8d8;background-color:#fff;cursor:pointer;border-radius:2px;text-align:center;text-overflow:ellipsis}.setting-form-select-item-selected{color:#48c23d;border:1px solid #48c23d}.setting-form-icon-down{background:url(../images/downD.png)}.setting-form-icon-down,.setting-form-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle;margin-left:5px;vertical-align:-3px}.setting-form-icon-up{background:url(../images/upD.png)}.setting-form-select-dropdown{position:absolute;width:100%;max-height:150px;overflow-y:auto;top:100%;left:0;background-color:#fff;border:1px solid #d8d8d8}.setting-form-select-dropdown-item{padding:3px 10px;cursor:pointer;text-align:center}.setting-form-select-dropdown-item:hover{color:#fff;background-color:#48c23d}.setting-form-proxy-area{display:flex;padding-left:22px}.setting-form-proxy-address{flex:1;margin-right:10px}.setting-form-proxy-address,.setting-form-proxy-port{padding:0 10px;line-height:32px;border:1px solid #d8d8d8;outline:0}.setting-form-proxy-port{width:120px}.setting-form-proxy-port::-webkit-inner-spin-button,.setting-form-proxy-port::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.setting-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.setting-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 20px;padding:3px 20px;border-radius:2px}.setting-button-default:hover{background-color:#f0f0f0}.setting-button-primary{display:inline-block;background-color:#48c23d;color:#fff;margin:0 15px;padding:5px 20px;border-radius:2px}.simulator-wrapper{width:430px;background-color:#efefef;display:flex;flex-direction:column;position:relative;overflow-y:auto}.simulator-tab{border-top-style:solid;border-top-width:1px;height:45px;line-height:45px;cursor:pointer}.simulator-tab ul{display:flex}.simulator-tab li{flex:1;text-align:center}.simulator-toolbar{position:relative;display:flex;min-height:27px;margin-bottom:30px}.simulator-toolbar-direction{background-color:#e2e2e2;margin-right:1px;padding:3px 5px 5px;cursor:pointer}.simulator-toolbar-direction img{display:block;width:32px;height:32px}.simulator-toolbar-direction-icon{display:inline-block;width:32px;height:24px;vertical-align:middle;background:url(../images/directionHD.png)}.simulator-toolbar-toggle{background-color:#e2e2e2;margin-right:1px;padding:0 5px;cursor:pointer;align-items:center;display:flex}.simulator-toolbar-toggle:hover .simulator-toolbar-toggle-icon{display:inline-block;width:11px;height:16px;vertical-align:middle;background:url(../images/Mo_green.png)}.simulator-toolbar-toggle-icon{display:inline-block;width:11px;height:16px;vertical-align:middle;background:url(../images/Mo.png)}.simulator-toolbar-model{position:relative;flex:1;display:flex;align-items:center;padding:2px 15px;background-color:rgba(0,0,0,.05);cursor:pointer;border-bottom:1px solid #d8d8d8}.simulator-toolbar-model:hover{background-color:rgba(0,0,0,.1)}.simulator-toolbar-model p{flex:1;color:#646464}.simulator-toolbar-model-icon-up{transform:rotate(180deg)}.simulator-toolbar-model-icon-down,.simulator-toolbar-model-icon-up{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/downD.png)}.simulator-toolbar-model_network{flex:1}.simulator-toolbar-model-content{position:absolute;width:100%;top:100%;left:0;z-index:14;background-color:#fff;border:1px solid #f0f0f0;box-shadow:2px 2px 10px #ccc}.simulator-toolbar-model-content-item{padding:5px 10px}.simulator-toolbar-model-content-item h4{font-weight:400;font-size:14px}.simulator-toolbar-model-content-item p{color:#646464;font-size:14px;line-height:1.6}.simulator-toolbar-model-content-item.simulator-toolbar-model-content-item-current,.simulator-toolbar-model-content-item:hover{background-color:rgba(72,194,61,.1)}.simulator-toolbar-tabs{flex:1;display:flex;align-items:center;padding:5px 14px;cursor:pointer;background-color:#e2e2e2}.simulator-toolbar-tabs p{line-height:1;flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;width:100%;white-space:nowrap}.simulator-toolbar-tabs-content{display:flex;position:absolute;width:100%;left:0;top:100%;z-index:14;padding:15px;background-color:rgba(0,0,0,.2)}.simulator-toolbar-tabs-item{margin-right:15px;border-radius:4px;box-shadow:1px 1px 10px #999}.simulator-toolbar-tabs-item img{display:block;width:45px;height:68px}.simulator-toolbar-tabs-item-current{border:2px solid #48c23d}.simulator-toolbar-mask{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0}.simulator-list-wrapper,.simulator-shadow{position:relative;margin:0 auto}.simulator-shadow{box-shadow:1px 1px 10px #ccc}.simulator{margin:0 auto;transition:all .3s ease}.simulator.simulator-with-shell{padding:67px 14px 60px;border-radius:44px;background-color:#ccc}.simulator-hd{position:relative;z-index:9;display:flex;background-color:#000;height:42px}.simulator-hd-title{flex:1;color:#fff;line-height:42px;text-align:center;text-overflow:ellipsis;overflow:hidden}.simulator-hd-title-loading{display:inline-block;width:16px;height:16px;vertical-align:middle;background:url(../images/loading.gif);background-size:cover;vertical-align:-3px;margin-right:6px}.simulator-bd{position:relative;height:618px;background-color:#fff;border-top:0}.simulator-bd iframe{width:100%;height:100%;border:0}.simulator-hd-back{width:70px;padding:0 10px;display:flex;align-items:center;color:#fff;cursor:pointer}.simulator-hd-back-icon{display:inline-block;vertical-align:middle;margin-right:5px;width:10px;height:10px;border-left:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg)}.simulator-hd-option{width:70px;padding:0 10px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer}.simulator-hd-option-icon{margin-right:5px;display:inline-block;width:36px;height:12px;vertical-align:middle;background:url(../images/option.png)}.simulator-bd-loading{position:absolute;top:0;left:0;height:2px;transition:width .1s ease;background:#48c23d}.simulator-bd-share-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);z-index:11}.simulator-bd-share-dialog{position:absolute;width:85%;top:50%;left:50%;z-index:12;transform:translate(-50%,-50%);background-color:#fff;border-radius:3px;overflow:hidden}.simulator-bd-share-dialog-hd{padding:.85em 20px 0}.simulator-bd-share-dialog-title{font-size:17px}.simulator-bd-share-dialog-bd{display:flex;margin-top:.85em;padding:0 20px;font-size:15px;color:#888;word-wrap:break-word;word-break:break-all}.simulator-bd-share-dialog-cover{margin-right:1em}.simulator-bd-share-dialog-cover img{display:block;width:60px;height:60px}.simulator-bd-share-dialog-ft{display:flex;position:relative;line-height:42px;margin-top:20px;font-size:17px;border-top:1px solid #f0f0f0}.simulator-bd-share-dialog-button-default,.simulator-bd-share-dialog-button-primary{flex:1;color:#48c23d;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center}.simulator-bd-share-dialog-button-default:active,.simulator-bd-share-dialog-button-primary:active{background-color:#eee}.simulator-bd-share-dialog-button-default{color:#000;border-right:1px solid #f0f0f0}.simulator-bd-webview{height:100%;width:100%}.simulator-bd-webview_body{height:100%;display:block}.simulator-actionsheet-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:5}.simulator-actionsheet{position:absolute;width:100%;left:0;bottom:0;z-index:6}.simulator-actionsheet-bd{padding:10px 0;text-align:center;background-color:#e8e8e8;font-size:0}.simulator-actionsheet-menu{display:inline-block;font-size:0;text-align:center;margin:0 6px}.simulator-actionsheet-menu-icon{width:60px;height:60px;display:inline-block;vertical-align:middle}.simulator-actionsheet-menu-icon-share2friend{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/share2friend.png)}.simulator-actionsheet-menu-icon-share2moment{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/share2moment.png)}.simulator-actionsheet-menu-icon-safari{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/safari.png)}.simulator-actionsheet-menu-icon-refresh{display:inline-block;width:40px;height:40px;vertical-align:middle;background:url(../images/refresh.png)}.simulator-actionsheet-menu-label{display:block;font-size:12px;color:#888}.simulator-actionsheet-ft a{display:block;padding:10px 0;background-color:#f6f6f6;text-align:center;color:#000}.simulator-animate-png{position:absolute;overflow:hidden;transition:.25s;background-color:#fff;z-index:17}.simulator-authorize-dialog{position:absolute;width:85%;left:50%;top:50%;transform:translate(-50%,-50%);z-index:12;background-color:#fafafc;text-align:center;border-radius:3px;overflow:hidden}.simulator-authorize-dialog-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:11}.simulator-authorize-dialog-hd{padding:1.2em 20px .5em;border:1px solid #f0f0f0;margin-bottom:.5em}.simulator-authorize-dialog-title{font-weight:400;text-align:center;font-size:17px}.simulator-authorize-dialog-bd{padding:0 20px}.simulator-authorize-dialog-logo{display:block;width:32px;height:32px;margin:0 auto;border-radius:50%}.simulator-authorize-dialog-tips{padding:10px 0;border-bottom:1px solid #f0f0f0;text-align:left;margin-bottom:10px}.simulator-authorize-dialog-list{text-align:left;color:#646464;font-size:14px;margin-bottom:20px}.simulator-authorize-dialog-list li{margin-bottom:5px;cursor:pointer}.simulator-authorize-dialog-ft{border-top:1px solid #f0f0f0;display:flex}.simulator-authorize-dialog-ft a{flex:1;padding:8px 0;text-align:center;color:#000}.simulator-authorize-dialog-ft a:active{background-color:#eee}.simulator-authorize-dialog-ft a:first-child{border-right:1px solid #f0f0f0;color:#48c23d}.simulator-authorize-dialog-checkbox{margin-right:5px}.simulator-authorize-dialog-checkbox input{position:absolute;left:-999em}.simulator-authorize-dialog-checkbox input:checked+i{display:inline-block;width:20px;height:15px;vertical-align:middle;background:url(../images/check.png);vertical-align:-2px}.simulator-authorize-dialog-checkbox i{display:inline-block;vertical-align:-2px;width:20px;height:15px;border:1px solid #d8d8d8}.simulator-authorize-dialog-readonly{display:inline-block;width:8px;height:8px;background:#ccc;border-radius:50%;margin-right:11px;vertical-align:middle;margin-left:6px}.simulator-backward-mask{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:14}.simulator-backward-dialog{position:absolute;background:#fff;border-radius:4px;left:50%;top:50%;width:80%;transform:translate(-50%,-50%);margin-top:-100px}.simulator-backward-dialog-hd{padding:20px}.simulator-backward-item{position:relative;padding:10px 20px;cursor:pointer}.simulator-backward-item:active{background-color:#ececec}.simulator-backward-item:before{position:absolute;content:"";left:20px;top:0;right:0;border-top:1px solid #d9d9d9}.simulator-backward-item:first-child:before{left:0}.simulator-backward-item:after{content:" ";display:inline-block;height:10px;width:10px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:12px}.simulator-payment-img{width:200px;height:200px;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);padding:3px 10px;background-color:#000;color:#fff;border-radius:4px}.weapp .simulator-bd-share-dialog-desc{text-overflow:ellipsis;overflow:hidden;white-space:pre-wrap;max-height:50px}.weapp .simulator-bd-share-dialog-bd{flex-direction:column}.weapp .simulator-bd-share-dialog-cover img{object-fit:cover;object-position:0 0;width:240px;height:192px}.weapp .simulator-bd-share-dialog-hd{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.simulator-status-bar{margin-top:auto;padding:15px 20px;background-color:rgba(0,0,0,.05)}.simulator-status-bar-item{font-size:14px;color:#646464;overflow:hidden}.simulator-status-bar-item label{float:left;width:5em}.simulator-status-bar-item span{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.webview-card,.webview-card-add{display:flex;flex-direction:column}.webview-card-add{background-color:#55bc47;height:100%;width:100%}.webview-card-add-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.webview-card-add-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-add-header_title{width:85%;padding-left:26%;color:#fff;font-weight:700}.webview-card-add-container{display:flex;flex-direction:column;margin:15px 10px;overflow-x:hidden;overflow-y:auto}.webview-card-add-item{background-color:#fff;border-radius:3px;display:block;margin-bottom:10px}.webview-card-add-item_top{display:flex;flex-direction:row;margin:20px 20px 10px;align-items:center;border-bottom:1px dashed #ccc;padding-bottom:10px}.webview-card-add-item_left{width:10%;padding-bottom:10px}.webview-card-add-item_img{border-radius:30px;width:30px;height:30px}.webview-card-add-item_details{display:flex;flex-direction:column;margin:5px;width:90%}.webview-card-add-item_name{font-size:14px;margin-bottom:10px}.webview-card-add-item_info{display:flex;flex-direction:row;margin-bottom:10px}.webview-card-add-item_intro{font-weight:700}.webview-card-add-item_num{margin-left:15px}.webview-card-add-item_num,.webview-card-add-item_time{font-size:14px;color:#9a9a9a}.webview-card-add-item_bottom{height:30px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#55bc47;margin:0 8px 10px;border-radius:3px;cursor:pointer}.webview-card-add-item_bottom_disable,.webview-card-add-item_bottom_error{color:hsla(0,0%,100%,.6);cursor:not-allowed}.webview-card-add-item_bottom_error{background-color:#f76260}.webview-card-add-item_button{text-align:center;color:#fff;font-weight:700}.webview-card-add-item_button_error{text-align:center;font-weight:700;color:#6b9fe8}.webview-card-choose{background-color:#f0eff5;height:100%;width:100%}.webview-card-choose-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#000}.webview-card-choose-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-choose-header_title{width:85%;padding-left:26%;color:#fff;font-weight:700}.webview-card-choose-mycard{margin:10px 0 5px 10px;color:#7d7e83;font-size:14px}.webview-card-choose-mycardEmpty{align-self:center}.webview-card-choose-container{display:flex;flex-direction:column;padding:0 10px;overflow-x:hidden;overflow-y:auto}.webview-card-choose-item{border-radius:3px;margin-bottom:10px;display:block;cursor:pointer}.webview-card-choose_m{background:#fff;height:60px}.webview-card-choose_m,.webview-card-choose_mErr{display:flex;width:100%;align-items:center;padding:10px}.webview-card-choose_mErr{background-color:#f76260;cursor:not-allowed;color:#fff;height:100px}.webview-card-choose_left{width:15%;text-align:center}.webview-card-choose-item_img{border-radius:30px;width:30px;height:30px}.webview-card-choose_details{display:flex;flex-direction:column;margin:5px;width:90%}.webview-card-choose-item_name{font-size:12px;margin-bottom:10px}.webview-card-choose-item_error{font-size:14px;margin-bottom:10px}.webview-card-choose-item_info{display:flex;flex-direction:row;font-size:18px}.webview-card-open{background-color:#55bc47;height:100%;width:100%;display:flex;flex-direction:column}.webview-card-open-header{height:38px;width:100%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.webview-card-open-header_button{width:15%;text-align:center;color:#fff;cursor:pointer}.webview-card-open-container{margin:30px 10px;background-color:#fff;height:290px}.webview-card-open_top{height:30px;text-align:center}.webview-card-open-item_img{height:30px;width:30px;border-radius:30px;margin-top:-15px;border:1px solid #ccc}.webview-card-open_middle{display:flex;flex-direction:column;justify-content:center;align-items:center;border-bottom:1px dashed #ccc;margin-bottom:10px}.webview-card-open-name{color:#9a9a9a;font-size:14px;margin-bottom:10px}.webview-card-open-intro{margin-bottom:10px;font-size:18px}.webview-card-open-item_button{height:30px;width:30%;min-width:110px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#55bc47;border-radius:3px;margin-bottom:10px;padding:10px;cursor:pointer}.webview-card-open_buttom_wording{text-align:center;color:#fff}.webview-card-open-time{font-size:14px;margin-bottom:10px}.webview-card-open_bottom{display:flex;flex-direction:column;justify-content:flex-start}.webview-card-open_detail{margin:10px;border-bottom:1px solid #ccc;padding-bottom:10px;font-size:14px}.webview-card-open_detail:last-child{border-bottom:none}.debugger{display:flex;flex:1;background-color:#fff;overflow-y:hidden}.debugger-tab{display:flex;flex:1;flex-direction:column}.debugger-tab-bd{display:flex;flex:1}.cache-card{display:none;position:absolute;top:-30px;left:100%;z-index:8;background:#fff;text-align:left;border:1px solid #f0f0f0;box-shadow:1px 1px 10px #ccc;margin-left:9px}.cache-card:before{border:9px solid transparent;border-right-color:#e6e6e6;margin-left:-19px}.cache-card:after,.cache-card:before{content:"";position:absolute;left:0;top:50px}.cache-card:after{border:9px solid transparent;border-right-color:#fff;margin-left:-18px}.cache-card-item{white-space:nowrap;padding:10px 20px;cursor:pointer}.cache-card-item:hover{background:#ecf8eb}.dialog-mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:14;animation:a .3s forwards}.dialog{position:absolute;width:600px;top:50%;left:50%;transform:translate(-50%,-50%);z-index:16}.dialog-hd{background-color:#eee}.dialog-hd-title{padding:15px 25px;text-align:left}.dialog-bd{min-height:300px;background-color:#fff}.ui-dialog{width:600px;border:1px solid #ccc;box-shadow:0 2px 8px rgba(0,0,0,.2);background-color:#efefef}.ui-dialog-hd{padding:20px 0}.ui-dialog-title{text-align:center}.ui-dialog-bd{padding:20px 30px 40px}.ui-dialog-ft{padding:20px;text-align:right;border-top:1px solid #d8d8d8}.select{padding:30px}.select-avatar-wrapper{text-align:center}.select-avatar{width:60px;height:60px;border-radius:50%}.select-hd{padding:15px 0;margin-bottom:1em;border-bottom:1px solid #efefef}.select-hd-title{text-align:center}.select-create-item{display:flex;background-color:#eee;padding:10px;margin-bottom:1em}.select-create-icon{margin-right:1em}.select-create-icon img{width:80px;height:80px}.select-create-content{flex:1}.select-create-title{margin-bottom:1em;color:#000}.select-create-desc{color:#646464}.select-project-wrapper{display:flex;flex-wrap:wrap;border-bottom:1px solid #efefef}.select-project-item{width:80px;margin-right:1em;margin-bottom:1em}.select-project-icon{margin-bottom:10px}.select-project-icon img{max-width:100%}.select-project-name{color:#000;text-align:center}.detail{flex:1;text-align:center;background:#fff;border-left:1px solid #d8d8d8;margin-top:-51px;overflow-y:auto}.detail-logo-wrapper{text-align:center;margin-top:100px}.detail-logo{width:100px;height:100px;margin-bottom:20px;border-radius:5px;vertical-align:middle}.detail-name{color:#000;margin-bottom:20px;font-size:18px}.detail-appid{color:#646464}.detail-meta-tab{margin-top:40px}.detail-meta-tab-hd{width:500px;margin:0 auto}.detail-meta-tab-hd a{display:inline-block;vertical-align:middle;padding:5px 10px;border:1px solid #d8d8d8;color:#000}.detail-meta-tab-hd a:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:0}.detail-meta-tab-hd a:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:0}.detail-meta-tab-hd a.detail-meta-tab-item-active{color:#48c23d;border:1px solid #48c23d}.detail-meta-wrapper{display:inline-block;margin-top:20px;width:500px}.detail-meta{display:flex;padding:30px 0;border-top:1px solid #f0f0f0}.detail-meta.detail-meta-disabled{color:#888}.detail-meta-column{flex-direction:column}.detail-meta-es6toes5{position:relative;text-align:left;-webkit-user-select:none;overflow:hidden;margin-bottom:10px}.detail-meta-es6toes5 input{position:absolute;left:-999em}.detail-meta-es6toes5 input:checked+i{background:url(../images/checkbox_1.png) no-repeat}.detail-meta-es6toes5 i{display:inline-block;width:16px;height:16px;background:url(../images/checkbox_0.png) no-repeat;vertical-align:-3px;margin-right:8px}.detail-meta-label{margin-right:2em}.detail-meta-label.detail-meta-label-fixed-width{width:150px;text-align:left}.detail-meta-value{flex:1;width:20em;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-meta-upload-default{display:inline-block;background-color:#fff;color:#000;min-width:60px;padding:3px 19px 3px 18px;border-radius:2px;border:1px solid #888}.detail-meta-upload-default:hover{background-color:#f0f0f0}.detail-meta-upload-default.detail-meta-upload-default-disabled{background-color:#f0f0f0;border:1px solid #d8d8d8;color:#646464;cursor:default}.detail-meta-btn-group{position:relative}.detail-meta-upload{display:inline-block;background-color:#48c23d;color:#fff;min-width:60px;padding:4px 19px 4px 18px;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #a3e09e}.detail-meta-upload:hover{background-color:#2b9e20}.detail-meta-upload.detail-meta-upload-disabled{background-color:rgba(72,194,61,.6);cursor:default}.detail-meta-btn-cert{display:inline-block;background-color:#48c23d;padding:4px 9px 4px 8px;border-bottom-right-radius:2px;border-top-right-radius:2px;color:#fff}.detail-meta-btn-cert:hover{background-color:#2b9e20}.icon-arrow-down{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.detail-meta-btn-dropdown{position:absolute;top:100%;right:0;margin-top:5px}.detail-meta-btn-dropdown-item{display:inline-block;white-space:nowrap;background-color:#fff;border:1px solid #979797;padding:5px 15px;color:#000}.detail-meta-btn-dropdown-item:hover{background-color:#f0f0f0}.detail-opr-wrapper{margin-top:40px;margin-bottom:40px;text-align:center}.button{display:inline-block;color:#000;background-color:#fff;padding:8px 31px;min-width:60px;border:1px solid #888;border-radius:2px}.button:hover{background-color:#f0f0f0}.detail-upload-dialog,.detail-upload-dialog-show{width:600px;position:absolute;top:0;left:50%;border:1px solid #ccc;background-color:#efefef;transform:translate3d(-50%,0,0);box-shadow:1px 1px 10px #ccc;z-index:8}.detail-upload-dialog-show{display:block}.detail-upload-dialog-hd{padding:20px 0;text-align:center}.detail-upload-dialog-bd{padding:20px 30px}.detail-upload-dialog-form-title{margin-bottom:15px}.detail-upload-dialog-form-bd{font-size:0;margin-bottom:20px}.detail-upload-dialog-tips{margin-bottom:30px}.detail-upload-dialog-form-item{display:flex;margin-bottom:20px}.detail-upload-dialog-form-label{width:5em;margin-right:1em}.detail-upload-dialog-form-input-box{text-align:left;flex:1}.detail-upload-dialog-form-input{border:1px solid #d8d8d8;width:80%;outline:0;height:32px;line-height:32px;padding:2px 10px}.detail-upload-dialog-form-tips{color:#646464;margin-top:10px}.detail-upload-dialog-ft{padding:20px;border-top:1px solid #d8d8d8;text-align:right}.detail-upload-dialog-button-default{display:inline-block;border:1px solid #888;background-color:#fff;color:#000;margin:0 10px;padding:3px 20px;min-width:60px;border-radius:2px}.detail-upload-dialog-button-default:hover{background-color:#f0f0f0}.detail-upload-dialog-button-primary{display:inline-block;background-color:#48c23d;color:#fff;padding:4px 20px;min-width:60px;border-radius:2px}.detail-upload-dialog-button-primary:hover{background-color:#2b9e20}.detail-upload-dialog-button-primary-loading{position:relative;background-color:#2b9e20;border-color:#2b9e20;cursor:default}.detail-upload-dialog-button-primary-loading:before{content:"";position:absolute;width:14px;height:14px;background:url(data:image/gif;base64,R0lGODlhEgASAPfuADGZNTCYNDSaODKaNjOaNzWbOTacOjicPDabOUajSTuePzyeQFOqVlSqV0SjSE+oUjqdPUGhRT6fQVCpVEilTEOiRj2fQTecOzmdPU6nUUekS02nUUynUFGpVUCgRFarWUKhRej06TqePmazaUmlTUekSlesWkqlTVWrWWOyZlWrWFCoU/D48ZrNnHu+faXTp1mtXGKxZZPKlZfLmZbLmEOiRz6gQkumTny+f8Xixme0apPJlaLRpFKpVZXKl9Pp1FisW1mtXY7HkWq1bf////T59MPixdbr13q9fWSyZ+n06V6vYdns2qDQocDgwafTqanUqtHo0nS6d3a7eT+gQ8jkyYnEi+Ty5eLw4m+4cV+wYtXq1sbjx3S6dufz56nVq9Tq1b/fwUWjSYrFjVuuXnm9fM7nz47HkHW7ePj7+IPChYTChmCwY5LJlKDQorbbuI3Gj2u1bY/IkYLBha3WrmGxZHy+fozGjr7fv6HRo8fjyPL58rbbt6zWrcPhxIrFjHG5dOby5qbTqIDAgqTSptXq1VyuX3i8et3u3W+4cufz6KPRpZzOnv3+/dvt3JHIk12vYG23cK/Xsfn8+ZTKlq7XsPv9++v17MvlzN7v33O6dUymT9fr2LfbubXatmm1bNzu3V2vYarVrIHAg6jUqfP58/H48WWzaGi0a/z9/L/fwPT69bjcucLhw5vNnfb79u737n2/gJ/PoXi8e7zevZfMmdns2brdu5nNm4bDiYvGja3Xr+Hw4YXDiMHgwuv163e8eYHBhMzmzeXy5YfEibncutjs2fj8+c/n0Nrt27TatavVreDw4Wy2b57PoLrdvKTSpYjEipvOnXC4c/r9+nK5dZ3Pn7LZs8nkyt7u3vX69VqtXeLx49/v4H/AgbvdvZDIkvf799Do0bHYsvD38LLZtG63cb3evur06u/379Lp0+327cTixS+YMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InV1aWQ6NTk3ODkzNjAyNjc1REYxMTkzNTE5OTE4NTI1NTdEREMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJDNTAyQ0YxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzJDNTAyQ0UxQzRGMTFFNDk3OURCQ0I4QkE5Mzc4NEQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OWQ4ZDhhZWItNjQxOS00ODdjLWJhMjEtYTYzZDc3NDUzOWVhIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkNCQUM5NjIwQTNCQ0RGMTE5OUI3OTI2N0FCQTk1QTAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoA7gAsAAAAABIAEgAACMMA2wkcSLCgQYET3CBqB2DAAAAH2wngEc5SI4YCDBxAEKCgADyr9vAwJDAAAQgWRBR0xiKTCoMAFkRQKTBDCCUNIg4AkYCAQBqKWkQUaIGCDYFcrpgY2q4ABw0CkzHzOTTAigkCtySjGhFAAwYCnxXKOfRAkB4CrSCzwvTGEhICT1QxciMihhQxDgzs5aQSBYMKRsTBOnAAjU6VpJQQQMADGTSalkAkOMAFnSdNaskhNspFkMkGawCC4wMOEi0WmKoWGBAAIfkEBQoA7gAsAQABABAAEAAACLQA3QkU2ARMulKOSB0YOLCArF8sSr1KQ6RTuwDtBiJQ5sULoyALDGyL0G4AgYEzsET5wFBgAAIGBLjbwMTWhJYDA1yAAEAOJyE4GSKwcOFNlA5BBw6wIUGPMJlJBYKo4CQH1KQBEiQgdY5DVHcFbiTw9qbM1wgPPJQYB0VM0gs9eiBwd+iJDxA4MXwAkkAggV6MdpzCC2BBhjpabjLMIuPOmlhTEsUZ8SCohyTAXExBNWHhwIAAIfkEBQoA7gAsAQABABAAEAAACLgA2wlsl2FGFW6KorTYNHCgABqOsARSAmtPEW1fEAwkIOrIFhkoECwI0qQIET0EBI4x0ypDQ4HbOPli0I4EFy4cXg6kkkDgHCdzdL4EAIBHsZxCBQYoUEBSuZRJBRo4AEUU1KQBRIjYsahE1HYDJChIJG3IVwgeMICYcaZCUgEOHAxoN+QODio6EVAgIUHgAE3BXHxYAGDAAQcTVjgIMBAAGyRdIumIAQlGg8U6F3yIMSKGCQoGGgYEACH5BAUKAO4ALAEAAQAQABAAAAiyANsJbEfByq1CtnJQ2jBw4IA1VcyAsZXtipcQbhA49BHGjxUGFy6YwBWCRRgBAu3woXOjocAGiIrwaFejDx0KLgeqIJemA6AnUnI2FNQI2h1ZOIW+zPZsBg0ASgUCgJREjhCoUdtBxUEMRFYAYJeMMpSVgAECFnBMUaAUAIQDUIN00QEh5wAJFgxI1RLn1A24AAosqOCB7UAAE5KwIYNiwgYSCRQEyHngRAMVHUjYINAwIAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXSXINYLPDk8CRnIkMAsSZ5oGcEUZQuTGQUGEpgj6AuSDRgK9BDCCUsnAgLNuaJEgaHADz8CMXLnQUabCi4Hdhh2yV0SXSlyMnTFosmUNRGEDgSyBwwOHEoHIljFYsqUqAIREEmDatoCrA/SgGow5AHYF48g6IhxQGk7BA5EuMvAxoSBnAAItGunM0gDEAjcBRhg4ICBAS5LNHiwqUQFDxZECODrEkGEBCVqWLgAgGFAACH5BAUKAO4ALAEAAQAQABAAAAi4AN0JdAciy6MXu5rYcTBw4IBPNFrw+HKNlSp2dwQMBABI15khJQgc2KAmhxlBA5eMwkGlocAVrQrtcLcAySwJLgdmAAMqwwcpKHI2bMNrRopIC4QOROGlio4RSgcWUHIlRoyoAgvACgEk1AGsQEz9oACDYVQ3RfIYQDEBgdIGx9IwcFfjAQmNLiVgIwJlYIITYiAQCOAuQAAHPIwYGBhAQoIINhZcQNAOwAm8DQlgUKDgQAEA7RoGBAAh+QQFCgDuACwBAAEAEAAQAAAIuADbCWy3IJQdOJTGJKoxcCAAGC4GRTtDw9qLZTgEOFwiBQ0ZEAQEaOhCx5OPAQI7xNGhoKFACn3wrGl34VQKCC4HnnCih8SJOjdyNrRiJhoDMhiEDmQA5tYHFQGUChRgbEuHFVGlXkB0hMQGBFLbmbhixAYJC2FbhPBBQEMFlEJ7hAjxoJ2CCBIA5FSRiYUsgQEUWFAgICqADYReFQmjcaABDAYGBGBgpFGqFwZyAiCgV8MXQgwaBgQAIfkEBQoA7gAsAQABABAAEAAACLYA3Ql0B6EBKilI0KTwMLDhBh1DEqGxo2ZMm0gDGk6oE+PBAgEAIiR51GINAIElgJjA0FBggh2EgLkrwICBgZYDxTyRVCLCgwg4G5bhEyvBjQJBB3Kg9UJDgqQN/ahyUAGqQAGYuNigkhFqhyh8Dli4CVXIETkARGA4GRSFMSYb3AkwMKAdThQ/eM0Q2I5AgAE1OCxAAKOFlxBvyAoMAEDIFSKTirC45AZpywu5EB0z9aPFpoYBAQAh+QQFCgDuACwBAAEAEAAQAAAItADbCWxngAKQOiNSNIAwcGCAGipMQELYTNOhJQAcOniwQswBAAMWfDg0KEvGdhIoUCjQUCAVF390tCOQwIGAlgOpwPEBAkIEhjgHfmqRRYGEAUEHJnDzSIGCAEkFEiAF5cCBqFKv7SpwEyuHW3kAQMU6x0kwgQkUJOWQIweJdhp2vDGBs4EfM2MEFgiTitoiGAVEmJCx5YgolgIRVKKmbQ+sX4qwOJLRtWGDPD9CXMFU60HDgAAh+QQFCgDuACwBAAEAEAAQAAAIswDdCXRHQAKFFSoYnLgwsKGCEho4IAyiJUWHhu0URKiwoIA7ABhupIijZaABCxYGNBQIYUQ1GB8xiACwcqCCLmUWDDAgoGZDMoNCAQjQzudAELlctFtqVCAAOGdWGArQ1J0AGm1e0MpQVYO1P9AsvajaRdA0BqkmoTCqgU4fB+4IrerWoOaJSnxcCBSAh0UIXCoMGJhgxYgTHyr3OlOiZBgzJluQVcnlM8MMPY6iFPtzomFAACH5BAUKAO4ALAEAAQAQABAAAAizANsJbAfggIQKCcR4KDCwoQAIFmwgJJGhRwIADQEYwGBgAIAABTz0ANIhQEaTDdsd+KBlQzsFERCkbHiAzQgIf2Q8mNkwwxAGmbxw4DlwQZYRk4jIJEqwi5RSjZYSBeCiTKEiMJi2i6AGTRMWLbSmGJOkw6VAE4gmaLPDQztGSn7sTKlBhqtIAhGwwsJEDgMMAjgg+fJEDYGBBXAxOfJDWI4wbyQhOZxyAzhWXFQ9KVOhYUAAIfkEBQoA7gAsAQABABAAEAAACLMA3Ql0165dgQsiFBwYMHCgABgB2g04IEJCBAcSAjj08yIDgILuBkBwoKHGQChEWtloKFBAiQwV3DGwNIkBy4EFHjRAkOfVopsNHZjQoM4UDKADDxj6EGJdAaQD2cQIhO4pVHcjRmBThOLqgmYpamHZcRVFtQ8PQB2xCVTCoVkL3FE6YmTFzQo4BkEa2EdcFTUcCFzQMESILkAMW57h4uubsmWLpNH4lLjhiTk8dkGRkYVlQAA7);top:50%;left:4px;margin-top:-7px;background-size:cover}.test{flex:1;text-align:center;padding:50px 0}.test-item{display:block;width:300px;padding:30px 0;margin:0 auto 2em;background-color:#eee}.test-button,.test-item{border:1px solid #efefef}.test-button{padding:5px 15px;background-color:#efefef}.test-dialog{padding:30px;text-align:left}.test-form-control{display:flex;margin-bottom:25px}.test-form-label{width:5em;line-height:32px}.test-form-input-box{flex:1}.test-form-input{width:100%;padding:0 15px;border:1px solid #efefef;outline:0;height:32px;line-height:32px}.test-form-tips{margin-top:1em;color:#646464}.test-form-button{min-width:100px;text-align:center;display:inline-block;padding:10px 22px;border:1px solid #efefef;margin-right:1em}.devtools{display:flex;position:relative}.devtools,.devtools-content{height:100%;width:100%}.devtools-inspector,.devtools-inspector-bg{position:absolute;left:0;top:0;width:28px;height:24px;transform:translateX(-2px);cursor:default}.devtools-inspector-bg{background-color:#f3f3f3}.devtools-inspector{z-index:5;-webkit-mask-image:url(../images/toolbarButtonGlyphs.png);-webkit-mask-size:352px 168px;-webkit-mask-position:-320px -120px;background-color:#5a5a5a}.devtools-inspector.devtools-inspector-active{background:#4280eb}.forbidden{flex:1}.forbidden-body{width:800px;padding:60px 0;margin:0 auto}.forbidden-tips{margin-top:20px}.forbidden-tips li{display:flex}.forbidden-tips li p{color:#888}.toast{position:absolute;padding:5px 0;top:0;left:0;width:100%;text-align:center;box-shadow:0 4px 10px #999;z-index:10}.toast-success{background-color:#48c23d;color:#fff}.toast-error{background-color:#f55c23;color:#fff}.toast .icon-info{display:inline-block;width:14px;height:14px;vertical-align:middle;background:url(../images/info-white.png);vertical-align:-1px;margin-right:5px}.tabbar{display:flex;background-color:#f7f7fa;border-top:1px solid;position:relative;z-index:6}.tabbar-top{align-items:center;border:0;border-bottom:1px solid}.tabbar-top .tabbar-item{padding:12px 0;text-align:center}.tabbar-top .tabbar-item.tabbar-item-selected .tabbar-label .tabbar-label-indicator{position:absolute;left:0;bottom:-12px;width:100%;border-bottom:3px solid}.tabbar-top .tabbar-label{position:relative;font-size:14px;display:inline-block}.tabbar-bottom{border:0;border-top:1px solid}.tabbar-item{flex:1;padding:7px 0 0}.tabbar-icon{display:block;margin:0 auto;width:24px;height:24px}.tabbar-icon img{display:block;width:100%;height:100%}.tabbar-icon+.tabbar-label{margin-top:5px}.tabbar-label{text-align:center;color:#888;font-size:12px}.music-card{position:absolute;left:100%;top:0;padding:15px;z-index:5;background:#fff;box-shadow:1px 1px 10px #ccc;margin-left:8px;display:flex;align-items:center}.music-card:before{border:9px solid transparent;border-right-color:#ececec;margin-top:-6px}.music-card:after,.music-card:before{content:"";display:block;position:absolute;right:100%;top:50%}.music-card:after{border:7px solid transparent;border-right-color:#fff;margin-top:-4px}.music-card-main{text-align:left}.music-card-status{color:#888;min-width:60px}.music-card-name{white-space:nowrap}.music-card-opr{margin-left:2em}.music-card-play-icon{background:url(../images/play.png)}.music-card-pause-icon,.music-card-play-icon{display:inline-block;width:30px;height:30px;vertical-align:middle}.music-card-pause-icon{background:url(../images/pause.png)}.wx-modal .wx-modal-mask{z-index:inherit;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:inherit;z-index:7;position:absolute;background-color:rgba(0,0,0,.6);animation:a ease .3s forwards}.wx-modal .wx-modal-dialog{position:absolute;z-index:9;width:85%;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fafafc;text-align:center;border-radius:3px;overflow:hidden}.wx-modal .wx-modal-dialog-hd{padding:1.2em 20px .5em}.wx-modal .wx-modal-dialog-hd strong{font-weight:400;font-size:17px}.wx-modal .wx-modal-dialog-bd{text-align:left;padding:0 20px;font-size:15px;color:#888;word-wrap:break-word;word-break:break-all}.wx-modal .wx-modal-dialog-ft{position:relative;line-height:42px;margin-top:20px;font-size:17px;display:flex}.wx-modal .wx-modal-dialog-ft:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #d5d5d6;color:#d5d5d6;transform-origin:0 0;transform:scaleY(.5)}.wx-modal .wx-modal-dialog-ft a{position:relative;display:block;flex:1;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.wx-modal .wx-modal-dialog-ft a[hidden]{display:none}.wx-modal .wx-modal-dialog-ft a:active{background-color:#eee}.wx-modal .wx-modal-btn-primary{color:#3cc51f}.wx-modal .wx-modal-btn-default{color:#000}.wx-modal .wx-modal-btn-default:before{content:" ";position:absolute;right:0;top:0;width:1px;height:100%;border-right:1px solid #d5d5d6;color:#d5d5d6;transform-origin:100% 0;transform:scaleX(.5)}@keyframes a{0%{opacity:0}to{opacity:1}}.wx-toast{position:absolute;z-index:10;width:7.6em;min-height:7.6em;top:180px;left:50%;margin-left:-3.8em;background:rgba(40,40,40,.75);text-align:center;border-radius:5px;color:#fff;font-size:16px;line-height:normal}.wx-toast-icon{margin-top:14px;margin-bottom:8px;font-family:weui;font-style:normal}.wx-toast-content{margin:0 0 15px}.wx-icon-loading{margin:30px auto 5px;width:38px;height:38px;vertical-align:baseline;display:inline-block;-webkit-animation:b 1s steps(12) infinite;animation:b 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;background-size:100%}@-webkit-keyframes b{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes b{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}.wx-toast-mask{position:absolute;z-index:7;background-color:transparent;width:100%;height:100%;top:0;left:0}.wx-toast-image-icon{height:60px;width:60px;margin-left:32px;margin-top:14px;margin-bottom:8px;background-size:cover}.wx-action-sheet{position:absolute;left:0;bottom:0;transform:translateY(100%);backface-visibility:hidden;z-index:9;width:100%;background-color:#fff;transition:transform .3s}.wx-action-sheet-show{transform:translate(0)}.wx-action-sheet-menu{background-color:#fff}.wx-action-sheet-mask{position:absolute;z-index:7;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:rgba(0,0,0,.6);display:block}.wx-action-sheet-item{background-color:#fff;position:relative;padding:10px 0;text-align:center;font-size:18px;display:block}.wx-action-sheet-item:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #d9d9d9;color:#d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-action-sheet-item:active{background-color:#ececec}.wx-action-sheet-item-cancel{background-color:#fff;font-size:18px}.wx-action-sheet-item-cancel .wx-action-sheet-middle{background-color:#efeff4;height:6px;width:100%}.wx-action-sheet-item-cancel .wx-action-sheet-cancel{background-color:inherit;position:relative;padding:10px 0;text-align:center;font-size:inherit;display:block}.wx-action-sheet-item-cancel .wx-action-sheet-cancel:before{content:" ";position:absolute;left:0;top:0;width:100%;border-top:1px solid #d9d9d9;color:#d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-action-sheet-item-cancel .wx-action-sheet-cancel:active{background-color:#ececec}.wx-picker-mask{z-index:7}.wx-picker{position:absolute;width:100%;left:0;bottom:274px;z-index:6;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateY(100%);transition:transform .3s;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.wx-picker-show{transform:translate(0)}.wx-picker-hd{display:flex;padding:10px 15px;background-color:#fbf9fe;position:relative;text-align:center}.wx-picker-action:first-child{text-align:left}.wx-picker-action:last-child{text-align:right}.wx-picker-action{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;color:#586c94;text-decoration:none}.wx-picker-bd{display:flex;position:relative;background-color:#fff;height:238px;overflow:hidden}.wx-picker-group{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;height:100%;border-left:1px solid #e5e5e5;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.wx-picker-mask2{top:0;height:100%;margin:0 auto;background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.wx-picker-indicator,.wx-picker-mask2{position:absolute;left:0;width:100%;z-index:3;transform:translateZ(0)}.wx-picker-indicator{height:34px;top:102px}.wx-picker-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-picker-indicator:after,.wx-picker-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.wx-picker-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.wx-picker-content{position:absolute;top:0;left:0;width:100%}.wx-picker-item{padding:5px 0 4px;text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:25px}.wx-picker-item-disabled{color:#999}.wx-picker-mask{z-index:inherit;width:100%;height:100%;top:0;left:0;transition:background-color .3s;background-color:inherit;z-index:4;position:absolute;background-color:rgba(0,0,0,.6);animation:a ease .3s forwards}.wx-icon{display:inline-block;font-size:0}.wx-icon i{font:normal normal normal 14px/1 weui}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx1AAABfAAAAFZjbWFw64JcfgAAAhQAAAI0Z2x5ZvCBJt8AAARsAAAHLGhlYWQIuM5WAAAA4AAAADZoaGVhCC0D+AAAALwAAAAkaG10eDqYAAAAAAHUAAAAQGxvY2EO3AzsAAAESAAAACJtYXhwAR4APgAAARgAAAAgbmFtZeNcHtgAAAuYAAAB5nBvc3RP98ExAAANgAAAANYAAQAAA+gAAABaA+gAAP//A+kAAQAAAAAAAAAAAAAAAAAAABAAAQAAAAEAAKZXmK1fDzz1AAsD6AAAAADS2MTEAAAAANLYxMQAAAAAA+kD6QAAAAgAAgAAAAAAAAABAAAAEAAyAAQAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOqAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqDwPoAAAAWgPpAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAAAAAUAAAADAAAALAAAAAQAAAFwAAEAAAAAAGoAAwABAAAALAADAAoAAAFwAAQAPgAAAAQABAABAADqD///AADqAf//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAMQAAAAAAAAADwAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAAAAAALgBmAKIA3gEaAV4BtgHkAgoCRgKIAtIDFANOA5YAAAACAAAAAAOvA60ACwAXAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEB9bz5BQX5vLv5BQX5u6zjBQXjrKvjBQXjA60F+by7+gQE+ru8+fy0BOSrq+QEBOSrq+QAAAIAAAAAA7MDswALACEAAAEOAQceARc+ATcuAQMHBiIvASY2OwERNDY7ATIWFREzMhYB7rn7BQX7ucL+BQX+JHYPJg92DgwYXQsHJggKXRgMA7MF/sK5+wUF+7nC/v31mhISmhIaARcICwsI/ukaAAADAAAAAAOtA6sACwAZACIAAAEOAQceARc+ATcuAQMUBisBIiY1ETY3MxYXJy4BNDYyFhQGAfC49gUF9ri++gUF+poKBxwHCgEILAgBHxMZGSYZGQOrBfq+uPYFBfa4vvr9dQcKCgcBGggBAQg5ARklGRklGQAAAAACAAAAAAOSA8IADQAfAAABDgEHERYEFzYkNxEuARMBBi8BJj8BNh8BFjclNh8BFgH0gchUCQEDkZEBAwlUyHr+vwQDlAMCFQMDegMEAScEAxMDA8IePRz+w9TwJCTw1AE9HD3+3f7DAgOZBAMcBANdAgL2AwMTBAADAAAAAAOCA7AADQAZACIAAAEOAQcRHgEXPgE3ES4BBzMWFQcGByMmLwE0EyImNDYyFhQGAfV7wVEJ+YuL+QlRwZIuCQoBBCIEAQogDhISHBISA7AdOxr+z8vnIyPnywExGjv3AQjYBAEBBNgI/rETHBISHBMAAAACAAAAAAO9A70AFwAjAAABLgE/AT4BHwEWMjclNhYXJxYUBwEGJiclJgAnBgAHFgAXNgABIAUCBQMFEAdiBxIGARMHEQYCBgb+0AYQBgIcBf79x77/AAUFAQC+xwEDAccGEQcEBwIFTAQF5QYBBgIGEAb+1QYBBqzHAQMFBf79x77/AAUFAQAABAAAAAADrwOtAAsAFwAtADEAAAEOAQceARc+ATcuAQMuASc+ATceARcOARMFDgEvASYGDwEGFh8BFjI3AT4BJiIXFjEXAfW8+QUF+by7+QUF+bus4wUF46yr4wUF4yv+9gcRBmAGDwUDBQEGfQUQBgElBQELDxQBAQOtBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAiLdBQEFSQUCBgQHEQaABgUBIQUPCwQBAQAAAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUIGQzLDSALAh0MHgsNCgr9uQscCwGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA7gDuAALABEAAAEGAgceARc2JDcmABMhETMRMwHuvP0FBf28xQEABQX/ADr+2i35A7gF/wDFvP0FBf28xQEA/d4BTv7fAAAEAAAAAAOvA60AAwAPABsAIQAAARYxFwMOAQceARc+ATcuAQMuASc+ATceARcOAQMjFTM1IwLlAQHyvPkFBfm8u/kFBfm7rOMFBeOsq+MFBePZJP3ZAoMBAQEsBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAi39JAADAAAAAAPDA8MACwAbACQAAAEGAAcWABc2ADcmAAczMhYVAw4BKwEiJicDNDYTIiY0NjIWFAYB7sD+/AUFAQTAyQEHBQX++d42CAoOAQUEKgQFAQ4KIxMaGiYaGgPDBf75ycD+/AUFAQTAyQEH5woI/tMEBgYEASwIC/4oGicZGScaAAAEAAAAAAPAA8AACAASAB4AKgAAAT4BNCYiBhQWFyMVMxEjFTM1IwMGAAcWBBc+ATcmAgMuASc+ATceARcOAQH0GCEhMCEhUY85Ock6K83++AQEAQjNuf8FBf/Hq+MEBOOrq+MEBOMCoAEgMSAgMSA6Hf7EHBwCsQT++M25/wUF/7nNAQj8pwTjq6vjBATjq6vjAAAAAwAAAAADpwOnAAsAFwAjAAABBycHFwcXNxc3JzcDDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgECjpqaHJqaHJqaHJqatrn1BQX1ubn1BQX1uajfBATfqKjfBATfAqqamhyamhyamhyamgEZBfW5ufUFBfW5ufX8xwTfqKjfBATfqKjfAAAAAwAAAAAD6QPpABEAHQAeAAABDgEjLgEnPgE3HgEXFAYHAQcBPgE3LgEnDgEHHgEXAo41gEmq4gQE4qqq4gQvKwEjOf3giLUDA7WIiLUDBLSIASMrLwTiqqriBATiqkmANP7dOQEZA7WIiLUDA7WIiLUDAAACAAAAAAPoA+gACwAnAAABBgAHFgAXNgA3JgADFg4BIi8BBwYuATQ/AScmPgEyHwE3Nh4BFA8BAfTU/uUFBQEb1NQBGwUF/uUDCgEUGwqiqAobEwqoogoBFBsKoqgKGxMKqAPoBf7l1NT+5QUFARvU1AEb/WgKGxMKqKIKARQbCqKoChsTCqiiCgEUGwqiAAAAABAAxgABAAAAAAABAAQAAAABAAAAAAACAAcABAABAAAAAAADAAQACwABAAAAAAAEAAQADwABAAAAAAAFAAsAEwABAAAAAAAGAAQAHgABAAAAAAAKACsAIgABAAAAAAALABMATQADAAEECQABAAgAYAADAAEECQACAA4AaAADAAEECQADAAgAdgADAAEECQAEAAgAfgADAAEECQAFABYAhgADAAEECQAGAAgAnAADAAEECQAKAFYApAADAAEECQALACYA+ndldWlSZWd1bGFyd2V1aXdldWlWZXJzaW9uIDEuMHdldWlHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQB3AGUAdQBpAFIAZQBnAHUAbABhAHIAdwBlAHUAaQB3AGUAdQBpAFYAZQByAHMAaQBvAG4AIAAxAC4AMAB3AGUAdQBpAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzc19jaXJjbGURc3VjY2Vzc19ub19jaXJjbGUHd2FpdGluZw53YWl0aW5nX2NpcmNsZQR3YXJuC2luZm9fY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xvc2UAAAAA") format("truetype")}[class*=" wx-icon-"]:before,[class^=wx-icon-]:before{margin:0}.wx-icon-success{color:#09bb07}.wx-icon-success:before{content:"\EA06"}.wx-icon-info{color:#10aeff}.wx-icon-info:before{content:"\EA03"}.wx-icon-warn{color:#f76260}.wx-icon-warn:before{content:"\EA0B"}.wx-icon-waiting{color:#10aeff}.wx-icon-waiting:before{content:"\EA09"}.wx-icon-safe_success{color:#09bb07}.wx-icon-safe_success:before{content:"\EA04"}.wx-icon-safe_warn{color:#ffbe00}.wx-icon-safe_warn:before{content:"\EA05"}.wx-icon-success_circle{color:#09bb07}.wx-icon-success_circle:before{content:"\EA07"}.wx-icon-success_no_circle{color:#09bb07}.wx-icon-success_no_circle:before{content:"\EA08"}.wx-icon-waiting_circle{color:#10aeff}.wx-icon-waiting_circle:before{content:"\EA0A"}.wx-icon-circle{color:#c9c9c9}.wx-icon-circle:before{content:"\EA01"}.wx-icon-download{color:#09bb07}.wx-icon-download:before{content:"\EA02"}.wx-icon-info_circle{color:#09bb07}.wx-icon-info_circle:before{content:"\EA0C"}.wx-icon-cancel{color:#f43530}.wx-icon-cancel:before{content:"\EA0D"}.wx-icon-search{color:#b2b2b2}.wx-icon-search:before{content:"\EA0E"}.wx-icon-clear{color:#b2b2b2}.wx-icon-clear:before{content:"\EA0F"}[class*=" wx-icon-"]:before,[class^=wx-icon-]:before{box-sizing:border-box}.weui-gallery-wrapper{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:9;background-color:#000}.weui-gallery-body{flex:1;overflow:hidden}.weui-gallery{display:flex;height:100%}.weui-gallery__img{flex:1;background:50% no-repeat;background-size:contain} \ No newline at end of file diff --git a/chromedriver b/chromedriver index bc5df127..a2de1d75 100755 Binary files a/chromedriver and b/chromedriver differ diff --git a/credits.html b/credits.html index f2f10a21..9900f3cc 100644 --- a/credits.html +++ b/credits.html @@ -6865,7 +6865,7 @@
Blackmagic DeckLink SDK - Mac -homepage +homepage
Extracted from mac/include/DeckLinkAPI.h:
 
@@ -7803,11 +7803,10 @@
 
 
 
-Compact Language Detector -homepage +Crashpad +homepage
-
Copyright 2016 Google Inc.  All rights reserved.
-
+
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
@@ -7996,7 +7995,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright 2016, Google Inc.
+   Copyright [yyyy] [name of copyright owner]
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
@@ -8015,220 +8014,371 @@
 
 
 
-Compact Language Detector v3 -homepage +Darwin +homepage
-
Copyright 2016 Google Inc.  All rights reserved.
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
+
APPLE PUBLIC SOURCE LICENSE Version 2.0 -  August 6, 2003
 
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+Please read this License carefully before downloading this software.  By
+downloading or using this software, you are agreeing to be bound by the terms of
+this License.  If you do not or cannot agree to the terms of this License,
+please do not download or use the software.
 
-   1. Definitions.
+Apple Note:  In January 2007, Apple changed its corporate name from "Apple
+Computer, Inc." to "Apple Inc."  This change has been reflected below and
+copyright years updated, but no other changes have been made to the APSL 2.0.
 
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
+1.	General; Definitions.  This License applies to any program or other work
+which Apple Inc. ("Apple") makes publicly available and which contains a notice
+placed by Apple identifying such program or work as "Original Code" and stating
+that it is subject to the terms of this Apple Public Source License version 2.0
+("License").  As used in this License:
 
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
+1.1	 "Applicable Patent Rights" mean:  (a) in the case where Apple is the
+grantor of rights, (i) claims of patents that are now or hereafter acquired,
+owned by or assigned to Apple and (ii) that cover subject matter contained in
+the Original Code, but only to the extent necessary to use, reproduce and/or
+distribute the Original Code without infringement; and (b) in the case where You
+are the grantor of rights, (i) claims of patents that are now or hereafter
+acquired, owned by or assigned to You and (ii) that cover subject matter in Your
+Modifications, taken alone or in combination with Original Code.
 
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
+1.2	"Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
 
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
+1.3	 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
 
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
+1.4	"Externally Deploy" means: (a) to sublicense, distribute or otherwise make
+Covered Code available, directly or indirectly, to anyone other than You; and/or
+(b) to use Covered Code, alone or as part of a Larger Work, in any way to
+provide a service, including but not limited to delivery of content, through
+electronic communication with a client other than You.
 
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
+1.5	"Larger Work" means a work which combines Covered Code or portions thereof
+with code not governed by the terms of this License.
 
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
+1.6	"Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof.  When code is released as a series of files, a
+Modification is:  (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
 
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
+1.7	"Original Code" means (a) the Source Code of a program or other work as
+originally made available by Apple under this License, including the Source Code
+of any updates or upgrades to such programs or works made available by Apple
+under this License, and that has been expressly identified by Apple as such in
+the header file(s) of such work; and (b) the object code compiled from such
+Source Code and originally made available by Apple under this License
 
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
+1.8	"Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
 
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
+1.9	"You" or "Your" means an individual or a legal entity exercising rights
+under this License.  For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
 
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
+2.	Permitted Uses; Conditions & Restrictions.   Subject to the terms and
+conditions of this License, Apple hereby grants You, effective on the date You
+accept this License and download the Original Code, a world-wide, royalty-free,
+non-exclusive license, to the extent of Apple's Applicable Patent Rights and
+copyrights covering the Original Code, to do the following:
 
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
+2.1	Unmodified Code.  You may use, reproduce, display, perform, internally
+distribute within Your organization, and Externally Deploy verbatim, unmodified
+copies of the Original Code, for commercial or non-commercial purposes, provided
+that in each instance:
 
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
+(a)	You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Apple as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License; and
 
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
+(b) 	You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute or Externally Deploy, and You may
+not offer or impose any terms on such Source Code that alter or restrict this
+License or the recipients' rights hereunder, except as permitted under Section
+6.
 
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
+2.2	Modified Code.  You may modify Covered Code and use, reproduce, display,
+perform, internally distribute within Your organization, and Externally Deploy
+Your Modifications and Covered Code, for commercial or non-commercial purposes,
+provided that in each instance You also meet all of these conditions:
 
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
+(a)	You must satisfy all the conditions of Section 2.1 with respect to the
+Source Code of the Covered Code;
 
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
+(b)	You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change; and
 
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
+(c)	If You Externally Deploy Your Modifications, You must make Source Code of
+all Your Externally Deployed Modifications either available to those to whom You
+have Externally Deployed Your Modifications, or publicly available.  Source Code
+of Your Externally Deployed Modifications must be released under the terms set
+forth in this License, including the license grants set forth in Section 3
+below, for as long as you Externally Deploy the Covered Code or twelve (12)
+months from the date of initial External Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Externally Deployed
+Modifications electronically (e.g. download from a web site).
 
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
+2.3	Distribution of Executable Versions.  In addition, if You Externally Deploy
+Covered Code (Original Code and/or Modifications) in object code, executable
+form only, You must include a prominent notice, in the code itself as well as in
+related documentation, stating that Source Code of the Covered Code is available
+under the terms of this License with information on how and where to obtain such
+Source Code.
 
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
+2.4	Third Party Rights.  You expressly acknowledge and agree that although
+Apple and each Contributor grants the licenses to their respective portions of
+the Covered Code set forth herein, no assurances are provided by Apple or any
+Contributor that the Covered Code does not infringe the patent or other
+intellectual property rights of any other entity. Apple and each Contributor
+disclaim any liability to You for claims brought by any other entity based on
+infringement of intellectual property rights or otherwise. As a condition to
+exercising the rights and licenses granted hereunder, You hereby assume sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow You to
+distribute the Covered Code, it is Your responsibility to acquire that license
+before distributing the Covered Code.
 
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
+3.	Your Grants.  In consideration of, and as a condition to, the licenses
+granted to You under this License, You hereby grant to any person or entity
+receiving or distributing Covered Code under this License a non-exclusive,
+royalty-free, perpetual, irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights (other than patent) owned or
+controlled by You, to use, reproduce, display, perform, modify, sublicense,
+distribute and Externally Deploy Your Modifications of the same scope and extent
+as Apple's licenses under Sections 2.1 and 2.2 above.
 
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
+4.	Larger Works.  You may create a Larger Work by combining Covered Code with
+other code not governed by the terms of this License and distribute the Larger
+Work as a single product.  In each such instance, You must make sure the
+requirements of this License are fulfilled for the Covered Code or any portion
+thereof.
 
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
+5.	Limitations on Patent License.   Except as expressly stated in Section 2, no
+other patent rights, express or implied, are granted by Apple herein. 
+Modifications and/or Larger Works may require additional patent licenses from
+Apple which Apple may grant in its sole discretion.
 
-   END OF TERMS AND CONDITIONS
+6.	Additional Terms.  You may choose to offer, and to charge a fee for,
+warranty, support, indemnity or liability obligations and/or other rights
+consistent with the scope of the license granted herein ("Additional Terms") to
+one or more recipients of Covered Code. However, You may do so only on Your own
+behalf and as Your sole responsibility, and not on behalf of Apple or any
+Contributor. You must obtain the recipient's agreement that any such Additional
+Terms are offered by You alone, and You hereby agree to indemnify, defend and
+hold Apple and every Contributor harmless for any liability incurred by or
+claims asserted against Apple or such Contributor by reason of any such
+Additional Terms.
 
-   APPENDIX: How to apply the Apache License to your work.
+7.	Versions of the License.  Apple may publish revised and/or new versions of
+this License from time to time.  Each version will be given a distinguishing
+version number.  Once Original Code has been published under a particular
+version of this License, You may continue to use it under the terms of that
+version. You may also choose to use such Original Code under the terms of any
+subsequent version of this License published by Apple.  No one other than Apple
+has the right to modify the terms applicable to Covered Code created under this
+License.
 
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
+8.	NO WARRANTY OR SUPPORT.  The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works.  The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies.  You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk.  THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND APPLE AND APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE"
+FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
+ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY
+QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT,
+AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  APPLE AND EACH CONTRIBUTOR DOES NOT
+WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
+FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS, THAT THE
+OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT
+DEFECTS IN THE COVERED CODE WILL BE CORRECTED.  NO ORAL OR WRITTEN INFORMATION
+OR ADVICE GIVEN BY APPLE, AN APPLE AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR
+SHALL CREATE A WARRANTY.  You acknowledge that the Covered Code is not intended
+for use in the operation of nuclear facilities, aircraft navigation,
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage.
 
-   Copyright 2016, Google Inc.
+9.	LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR YOUR USE
+OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER UNDER A
+THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR
+OTHERWISE, EVEN IF APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
+REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
+INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In
+no event shall Apple's total liability to You for all damages (other than as may
+be required by applicable law) under this License exceed the amount of fifty
+dollars ($50.00).
 
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
+10.	Trademarks.  This License does not grant any rights to use the trademarks
+or trade names  "Apple", "Mac", "Mac OS", "QuickTime", "QuickTime Streaming
+Server" or any other trademarks, service marks, logos or trade names belonging
+to Apple (collectively "Apple Marks") or to any trademark, service mark, logo or
+trade name belonging to any Contributor.  You agree not to use any Apple Marks
+in or as part of the name of products derived from the Original Code or to
+endorse or promote products derived from the Original Code other than as
+expressly permitted by and in strict compliance at all times with Apple's third
+party trademark usage guidelines which are posted at
+http://www.apple.com/legal/guidelinesfor3rdparties.html.
 
-       http://www.apache.org/licenses/LICENSE-2.0
+11.	Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor.  Apple retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Apple ("Apple
+Modifications"), and such Apple Modifications will not be automatically subject
+to this License.  Apple may, at its sole discretion, choose to license such
+Apple Modifications under this License, or on different terms from those
+contained in this License or may choose not to license them at all.
 
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+12.	Termination.
+
+12.1	Termination.  This License and the rights granted hereunder will
+terminate:
+
+(a)	automatically without notice from Apple if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach; (b)	immediately in the event of the circumstances
+described in Section 13.5(b); or (c)	automatically without notice from Apple if
+You, at any time during the term of this License, commence an action for patent
+infringement against Apple; provided that Apple did not first commence an action
+for patent infringement against You in that instance.
+
+12.2	Effect of Termination.  Upon termination, You agree to immediately stop
+any further use, reproduction, modification, sublicensing and distribution of
+the Covered Code.  All sublicenses to the Covered Code which have been properly
+granted prior to termination shall survive any termination of this License. 
+Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13.  No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+13. 	Miscellaneous.
+
+13.1	Government End Users.   The Covered Code is a "commercial item" as defined
+in FAR 2.101.  Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation).  Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+13.2	Relationship of Parties.  This License will not be construed as creating
+an agency, partnership, joint venture or any other form of legal association
+between or among You, Apple or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+13.3	Independent Development.   Nothing in this License will impair Apple's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Larger Works, technology or products
+that You may develop, produce, market or distribute.
+
+13.4	Waiver; Construction.  Failure by Apple or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision.  Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+13.5	Severability.  (a) If for any reason a court of competent jurisdiction
+finds any provision of this License, or portion thereof, to be unenforceable,
+that provision of the License will be enforced to the maximum extent permissible
+so as to effect the economic benefits and intent of the parties, and the
+remainder of this License will continue in full force and effect.  (b)
+Notwithstanding the foregoing, if applicable law prohibits or restricts You from
+fully and/or specifically complying with Sections 2 and/or 3 or prevents the
+enforceability of either of those Sections, this License will immediately
+terminate and You must immediately discontinue any use of the Covered Code and
+destroy all copies of it that are in your possession or control.
+
+13.6	Dispute Resolution.  Any litigation or other dispute resolution between
+You and Apple relating to this License shall take place in the Northern District
+of California, and You and Apple hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+13.7	Entire Agreement; Governing Law.  This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof.  This
+License shall be governed by the laws of the United States and the State of
+California, except that body of California law concerning conflicts of law.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies:  The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English.  Les parties ont exigé que le
+présent contrat et tous les documents connexes soient rédigés en anglais.
+
+EXHIBIT A.
+
+"Portions Copyright (c) 1999-2007 Apple Inc.  All Rights Reserved.
+
+This file contains Original Code and/or Modifications of Original Code as
+defined in and that are subject to the Apple Public Source License Version 2.0
+(the 'License').  You may not use this file except in compliance with the
+License.  Please obtain a copy of the License at
+http://www.opensource.apple.com/apsl/ and read it before using this file.
+
+The Original Code and all software distributed under the License are distributed
+on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION,
+ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
+ENJOYMENT OR NON-INFRINGEMENT.  Please see the License for the specific language
+governing rights and limitations under the License." 
 
-Crashpad -homepage +David M. Gay's floating point routines +homepage +
+
/****************************************************************
+ *
+ * The author of this software is David M. Gay.
+ *
+ * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose without fee is hereby granted, provided that this entire notice
+ * is included in all copies of any software which is or includes a copy
+ * or modification of this software and in all copies of the supporting
+ * documentation for such software.
+ *
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+ *
+ ***************************************************************/
+
+
+
+ + +
+Error Prone +homepage
                                  Apache License
@@ -8438,9323 +8588,1081 @@
 
 
 
-Darwin -homepage +Expat XML Parser +homepage
-
APPLE PUBLIC SOURCE LICENSE Version 2.0 -  August 6, 2003
-
-Please read this License carefully before downloading this software.  By
-downloading or using this software, you are agreeing to be bound by the terms of
-this License.  If you do not or cannot agree to the terms of this License,
-please do not download or use the software.
-
-Apple Note:  In January 2007, Apple changed its corporate name from "Apple
-Computer, Inc." to "Apple Inc."  This change has been reflected below and
-copyright years updated, but no other changes have been made to the APSL 2.0.
-
-1.	General; Definitions.  This License applies to any program or other work
-which Apple Inc. ("Apple") makes publicly available and which contains a notice
-placed by Apple identifying such program or work as "Original Code" and stating
-that it is subject to the terms of this Apple Public Source License version 2.0
-("License").  As used in this License:
-
-1.1	 "Applicable Patent Rights" mean:  (a) in the case where Apple is the
-grantor of rights, (i) claims of patents that are now or hereafter acquired,
-owned by or assigned to Apple and (ii) that cover subject matter contained in
-the Original Code, but only to the extent necessary to use, reproduce and/or
-distribute the Original Code without infringement; and (b) in the case where You
-are the grantor of rights, (i) claims of patents that are now or hereafter
-acquired, owned by or assigned to You and (ii) that cover subject matter in Your
-Modifications, taken alone or in combination with Original Code.
-
-1.2	"Contributor" means any person or entity that creates or contributes to the
-creation of Modifications.
-
-1.3	 "Covered Code" means the Original Code, Modifications, the combination of
-Original Code and any Modifications, and/or any respective portions thereof.
-
-1.4	"Externally Deploy" means: (a) to sublicense, distribute or otherwise make
-Covered Code available, directly or indirectly, to anyone other than You; and/or
-(b) to use Covered Code, alone or as part of a Larger Work, in any way to
-provide a service, including but not limited to delivery of content, through
-electronic communication with a client other than You.
-
-1.5	"Larger Work" means a work which combines Covered Code or portions thereof
-with code not governed by the terms of this License.
-
-1.6	"Modifications" mean any addition to, deletion from, and/or change to, the
-substance and/or structure of the Original Code, any previous Modifications, the
-combination of Original Code and any previous Modifications, and/or any
-respective portions thereof.  When code is released as a series of files, a
-Modification is:  (a) any addition to or deletion from the contents of a file
-containing Covered Code; and/or (b) any new file or other representation of
-computer program statements that contains any part of Covered Code.
-
-1.7	"Original Code" means (a) the Source Code of a program or other work as
-originally made available by Apple under this License, including the Source Code
-of any updates or upgrades to such programs or works made available by Apple
-under this License, and that has been expressly identified by Apple as such in
-the header file(s) of such work; and (b) the object code compiled from such
-Source Code and originally made available by Apple under this License
-
-1.8	"Source Code" means the human readable form of a program or other work that
-is suitable for making modifications to it, including all modules it contains,
-plus any associated interface definition files, scripts used to control
-compilation and installation of an executable (object code).
-
-1.9	"You" or "Your" means an individual or a legal entity exercising rights
-under this License.  For legal entities, "You" or "Your" includes any entity
-which controls, is controlled by, or is under common control with, You, where
-"control" means (a) the power, direct or indirect, to cause the direction or
-management of such entity, whether by contract or otherwise, or (b) ownership of
-fifty percent (50%) or more of the outstanding shares or beneficial ownership of
-such entity.
-
-2.	Permitted Uses; Conditions & Restrictions.   Subject to the terms and
-conditions of this License, Apple hereby grants You, effective on the date You
-accept this License and download the Original Code, a world-wide, royalty-free,
-non-exclusive license, to the extent of Apple's Applicable Patent Rights and
-copyrights covering the Original Code, to do the following:
-
-2.1	Unmodified Code.  You may use, reproduce, display, perform, internally
-distribute within Your organization, and Externally Deploy verbatim, unmodified
-copies of the Original Code, for commercial or non-commercial purposes, provided
-that in each instance:
-
-(a)	You must retain and reproduce in all copies of Original Code the copyright
-and other proprietary notices and disclaimers of Apple as they appear in the
-Original Code, and keep intact all notices in the Original Code that refer to
-this License; and
-
-(b) 	You must include a copy of this License with every copy of Source Code of
-Covered Code and documentation You distribute or Externally Deploy, and You may
-not offer or impose any terms on such Source Code that alter or restrict this
-License or the recipients' rights hereunder, except as permitted under Section
-6.
-
-2.2	Modified Code.  You may modify Covered Code and use, reproduce, display,
-perform, internally distribute within Your organization, and Externally Deploy
-Your Modifications and Covered Code, for commercial or non-commercial purposes,
-provided that in each instance You also meet all of these conditions:
-
-(a)	You must satisfy all the conditions of Section 2.1 with respect to the
-Source Code of the Covered Code;
-
-(b)	You must duplicate, to the extent it does not already exist, the notice in
-Exhibit A in each file of the Source Code of all Your Modifications, and cause
-the modified files to carry prominent notices stating that You changed the files
-and the date of any change; and
-
-(c)	If You Externally Deploy Your Modifications, You must make Source Code of
-all Your Externally Deployed Modifications either available to those to whom You
-have Externally Deployed Your Modifications, or publicly available.  Source Code
-of Your Externally Deployed Modifications must be released under the terms set
-forth in this License, including the license grants set forth in Section 3
-below, for as long as you Externally Deploy the Covered Code or twelve (12)
-months from the date of initial External Deployment, whichever is longer. You
-should preferably distribute the Source Code of Your Externally Deployed
-Modifications electronically (e.g. download from a web site).
-
-2.3	Distribution of Executable Versions.  In addition, if You Externally Deploy
-Covered Code (Original Code and/or Modifications) in object code, executable
-form only, You must include a prominent notice, in the code itself as well as in
-related documentation, stating that Source Code of the Covered Code is available
-under the terms of this License with information on how and where to obtain such
-Source Code.
-
-2.4	Third Party Rights.  You expressly acknowledge and agree that although
-Apple and each Contributor grants the licenses to their respective portions of
-the Covered Code set forth herein, no assurances are provided by Apple or any
-Contributor that the Covered Code does not infringe the patent or other
-intellectual property rights of any other entity. Apple and each Contributor
-disclaim any liability to You for claims brought by any other entity based on
-infringement of intellectual property rights or otherwise. As a condition to
-exercising the rights and licenses granted hereunder, You hereby assume sole
-responsibility to secure any other intellectual property rights needed, if any.
-For example, if a third party patent license is required to allow You to
-distribute the Covered Code, it is Your responsibility to acquire that license
-before distributing the Covered Code.
-
-3.	Your Grants.  In consideration of, and as a condition to, the licenses
-granted to You under this License, You hereby grant to any person or entity
-receiving or distributing Covered Code under this License a non-exclusive,
-royalty-free, perpetual, irrevocable license, under Your Applicable Patent
-Rights and other intellectual property rights (other than patent) owned or
-controlled by You, to use, reproduce, display, perform, modify, sublicense,
-distribute and Externally Deploy Your Modifications of the same scope and extent
-as Apple's licenses under Sections 2.1 and 2.2 above.
-
-4.	Larger Works.  You may create a Larger Work by combining Covered Code with
-other code not governed by the terms of this License and distribute the Larger
-Work as a single product.  In each such instance, You must make sure the
-requirements of this License are fulfilled for the Covered Code or any portion
-thereof.
-
-5.	Limitations on Patent License.   Except as expressly stated in Section 2, no
-other patent rights, express or implied, are granted by Apple herein. 
-Modifications and/or Larger Works may require additional patent licenses from
-Apple which Apple may grant in its sole discretion.
-
-6.	Additional Terms.  You may choose to offer, and to charge a fee for,
-warranty, support, indemnity or liability obligations and/or other rights
-consistent with the scope of the license granted herein ("Additional Terms") to
-one or more recipients of Covered Code. However, You may do so only on Your own
-behalf and as Your sole responsibility, and not on behalf of Apple or any
-Contributor. You must obtain the recipient's agreement that any such Additional
-Terms are offered by You alone, and You hereby agree to indemnify, defend and
-hold Apple and every Contributor harmless for any liability incurred by or
-claims asserted against Apple or such Contributor by reason of any such
-Additional Terms.
-
-7.	Versions of the License.  Apple may publish revised and/or new versions of
-this License from time to time.  Each version will be given a distinguishing
-version number.  Once Original Code has been published under a particular
-version of this License, You may continue to use it under the terms of that
-version. You may also choose to use such Original Code under the terms of any
-subsequent version of this License published by Apple.  No one other than Apple
-has the right to modify the terms applicable to Covered Code created under this
-License.
-
-8.	NO WARRANTY OR SUPPORT.  The Covered Code may contain in whole or in part
-pre-release, untested, or not fully tested works.  The Covered Code may contain
-errors that could cause failures or loss of data, and may be incomplete or
-contain inaccuracies.  You expressly acknowledge and agree that use of the
-Covered Code, or any portion thereof, is at Your sole and entire risk.  THE
-COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
-ANY KIND AND APPLE AND APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE"
-FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
-ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY
-QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT,
-AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  APPLE AND EACH CONTRIBUTOR DOES NOT
-WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
-FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS, THAT THE
-OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT
-DEFECTS IN THE COVERED CODE WILL BE CORRECTED.  NO ORAL OR WRITTEN INFORMATION
-OR ADVICE GIVEN BY APPLE, AN APPLE AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR
-SHALL CREATE A WARRANTY.  You acknowledge that the Covered Code is not intended
-for use in the operation of nuclear facilities, aircraft navigation,
-communication systems, or air traffic control machines in which case the failure
-of the Covered Code could lead to death, personal injury, or severe physical or
-environmental damage.
-
-9.	LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
-SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR YOUR USE
-OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER UNDER A
-THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR
-OTHERWISE, EVEN IF APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
-REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
-INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In
-no event shall Apple's total liability to You for all damages (other than as may
-be required by applicable law) under this License exceed the amount of fifty
-dollars ($50.00).
-
-10.	Trademarks.  This License does not grant any rights to use the trademarks
-or trade names  "Apple", "Mac", "Mac OS", "QuickTime", "QuickTime Streaming
-Server" or any other trademarks, service marks, logos or trade names belonging
-to Apple (collectively "Apple Marks") or to any trademark, service mark, logo or
-trade name belonging to any Contributor.  You agree not to use any Apple Marks
-in or as part of the name of products derived from the Original Code or to
-endorse or promote products derived from the Original Code other than as
-expressly permitted by and in strict compliance at all times with Apple's third
-party trademark usage guidelines which are posted at
-http://www.apple.com/legal/guidelinesfor3rdparties.html.
-
-11.	Ownership. Subject to the licenses granted under this License, each
-Contributor retains all rights, title and interest in and to any Modifications
-made by such Contributor.  Apple retains all rights, title and interest in and
-to the Original Code and any Modifications made by or on behalf of Apple ("Apple
-Modifications"), and such Apple Modifications will not be automatically subject
-to this License.  Apple may, at its sole discretion, choose to license such
-Apple Modifications under this License, or on different terms from those
-contained in this License or may choose not to license them at all.
-
-12.	Termination.
-
-12.1	Termination.  This License and the rights granted hereunder will
-terminate:
-
-(a)	automatically without notice from Apple if You fail to comply with any
-term(s) of this License and fail to cure such breach within 30 days of becoming
-aware of such breach; (b)	immediately in the event of the circumstances
-described in Section 13.5(b); or (c)	automatically without notice from Apple if
-You, at any time during the term of this License, commence an action for patent
-infringement against Apple; provided that Apple did not first commence an action
-for patent infringement against You in that instance.
-
-12.2	Effect of Termination.  Upon termination, You agree to immediately stop
-any further use, reproduction, modification, sublicensing and distribution of
-the Covered Code.  All sublicenses to the Covered Code which have been properly
-granted prior to termination shall survive any termination of this License. 
-Provisions which, by their nature, should remain in effect beyond the
-termination of this License shall survive, including but not limited to Sections
-3, 5, 8, 9, 10, 11, 12.2 and 13.  No party will be liable to any other for
-compensation, indemnity or damages of any sort solely as a result of terminating
-this License in accordance with its terms, and termination of this License will
-be without prejudice to any other right or remedy of any party.
-
-13. 	Miscellaneous.
-
-13.1	Government End Users.   The Covered Code is a "commercial item" as defined
-in FAR 2.101.  Government software and technical data rights in the Covered Code
-include only those rights customarily provided to the public as defined in this
-License. This customary commercial license in technical data and software is
-provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
-Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
-Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
-or Computer Software Documentation).  Accordingly, all U.S. Government End Users
-acquire Covered Code with only those rights set forth herein.
-
-13.2	Relationship of Parties.  This License will not be construed as creating
-an agency, partnership, joint venture or any other form of legal association
-between or among You, Apple or any Contributor, and You will not represent to
-the contrary, whether expressly, by implication, appearance or otherwise.
-
-13.3	Independent Development.   Nothing in this License will impair Apple's
-right to acquire, license, develop, have others develop for it, market and/or
-distribute technology or products that perform the same or similar functions as,
-or otherwise compete with, Modifications, Larger Works, technology or products
-that You may develop, produce, market or distribute.
-
-13.4	Waiver; Construction.  Failure by Apple or any Contributor to enforce any
-provision of this License will not be deemed a waiver of future enforcement of
-that or any other provision.  Any law or regulation which provides that the
-language of a contract shall be construed against the drafter will not apply to
-this License.
-
-13.5	Severability.  (a) If for any reason a court of competent jurisdiction
-finds any provision of this License, or portion thereof, to be unenforceable,
-that provision of the License will be enforced to the maximum extent permissible
-so as to effect the economic benefits and intent of the parties, and the
-remainder of this License will continue in full force and effect.  (b)
-Notwithstanding the foregoing, if applicable law prohibits or restricts You from
-fully and/or specifically complying with Sections 2 and/or 3 or prevents the
-enforceability of either of those Sections, this License will immediately
-terminate and You must immediately discontinue any use of the Covered Code and
-destroy all copies of it that are in your possession or control.
-
-13.6	Dispute Resolution.  Any litigation or other dispute resolution between
-You and Apple relating to this License shall take place in the Northern District
-of California, and You and Apple hereby consent to the personal jurisdiction of,
-and venue in, the state and federal courts within that District with respect to
-this License. The application of the United Nations Convention on Contracts for
-the International Sale of Goods is expressly excluded.
-
-13.7	Entire Agreement; Governing Law.  This License constitutes the entire
-agreement between the parties with respect to the subject matter hereof.  This
-License shall be governed by the laws of the United States and the State of
-California, except that body of California law concerning conflicts of law.
-
-Where You are located in the province of Quebec, Canada, the following clause
-applies:  The parties hereby confirm that they have requested that this License
-and all related documents be drafted in English.  Les parties ont exigé que le
-présent contrat et tous les documents connexes soient rédigés en anglais.
-
-EXHIBIT A.
-
-"Portions Copyright (c) 1999-2007 Apple Inc.  All Rights Reserved.
-
-This file contains Original Code and/or Modifications of Original Code as
-defined in and that are subject to the Apple Public Source License Version 2.0
-(the 'License').  You may not use this file except in compliance with the
-License.  Please obtain a copy of the License at
-http://www.opensource.apple.com/apsl/ and read it before using this file.
-
-The Original Code and all software distributed under the License are distributed
-on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
-AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION,
-ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
-ENJOYMENT OR NON-INFRINGEMENT.  Please see the License for the specific language
-governing rights and limitations under the License." 
-
-
-
- - -
-David M. Gay's floating point routines -homepage -
-
/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-
-
- - -
-Error Prone -homepage -
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-
- - -
-Expat XML Parser -homepage -
-
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
-                               and Clark Cooper
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
- - -
-FlatBuffers -homepage -
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2014 Google Inc.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-
- - -
-Flot Javascript/JQuery library for creating graphs -homepage -
-
Copyright (c) 2007-2013 IOLA and Ole Laursen
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-
- - -
-FreeType -homepage -
-
                    The FreeType Project LICENSE
-                    ----------------------------
-
-                            2006-Jan-27
-
-                    Copyright 1996-2002, 2006 by
-          David Turner, Robert Wilhelm, and Werner Lemberg
-
-
-
-Introduction
-============
-
-  The FreeType  Project is distributed in  several archive packages;
-  some of them may contain, in addition to the FreeType font engine,
-  various tools and  contributions which rely on, or  relate to, the
-  FreeType Project.
-
-  This  license applies  to all  files found  in such  packages, and
-  which do not  fall under their own explicit  license.  The license
-  affects  thus  the  FreeType   font  engine,  the  test  programs,
-  documentation and makefiles, at the very least.
-
-  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
-  (Independent JPEG  Group) licenses, which  all encourage inclusion
-  and  use of  free  software in  commercial  and freeware  products
-  alike.  As a consequence, its main points are that:
-
-    o We don't promise that this software works. However, we will be
-      interested in any kind of bug reports. (`as is' distribution)
-
-    o You can  use this software for whatever you  want, in parts or
-      full form, without having to pay us. (`royalty-free' usage)
-
-    o You may not pretend that  you wrote this software.  If you use
-      it, or  only parts of it,  in a program,  you must acknowledge
-      somewhere  in  your  documentation  that  you  have  used  the
-      FreeType code. (`credits')
-
-  We  specifically  permit  and  encourage  the  inclusion  of  this
-  software, with  or without modifications,  in commercial products.
-  We  disclaim  all warranties  covering  The  FreeType Project  and
-  assume no liability related to The FreeType Project.
-
-
-  Finally,  many  people  asked  us  for  a  preferred  form  for  a
-  credit/disclaimer to use in compliance with this license.  We thus
-  encourage you to use the following text:
-
-   """
-    Portions of this software are copyright © <year> The FreeType
-    Project (www.freetype.org).  All rights reserved.
-   """
-
-  Please replace <year> with the value from the FreeType version you
-  actually use.
-
-
-Legal Terms
-===========
-
-0. Definitions
---------------
-
-  Throughout this license,  the terms `package', `FreeType Project',
-  and  `FreeType  archive' refer  to  the  set  of files  originally
-  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
-  Werner Lemberg) as the `FreeType Project', be they named as alpha,
-  beta or final release.
-
-  `You' refers to  the licensee, or person using  the project, where
-  `using' is a generic term including compiling the project's source
-  code as  well as linking it  to form a  `program' or `executable'.
-  This  program is  referred to  as  `a program  using the  FreeType
-  engine'.
-
-  This  license applies  to all  files distributed  in  the original
-  FreeType  Project,   including  all  source   code,  binaries  and
-  documentation,  unless  otherwise  stated   in  the  file  in  its
-  original, unmodified form as  distributed in the original archive.
-  If you are  unsure whether or not a particular  file is covered by
-  this license, you must contact us to verify this.
-
-  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
-  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
-  specified below.
-
-1. No Warranty
---------------
-
-  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
-  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
-  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
-  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
-  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
-  USE, OF THE FREETYPE PROJECT.
-
-2. Redistribution
------------------
-
-  This  license  grants  a  worldwide, royalty-free,  perpetual  and
-  irrevocable right  and license to use,  execute, perform, compile,
-  display,  copy,   create  derivative  works   of,  distribute  and
-  sublicense the  FreeType Project (in  both source and  object code
-  forms)  and  derivative works  thereof  for  any  purpose; and  to
-  authorize others  to exercise  some or all  of the  rights granted
-  herein, subject to the following conditions:
-
-    o Redistribution of  source code  must retain this  license file
-      (`FTL.TXT') unaltered; any  additions, deletions or changes to
-      the original  files must be clearly  indicated in accompanying
-      documentation.   The  copyright   notices  of  the  unaltered,
-      original  files must  be  preserved in  all  copies of  source
-      files.
-
-    o Redistribution in binary form must provide a  disclaimer  that
-      states  that  the software is based in part of the work of the
-      FreeType Team,  in  the  distribution  documentation.  We also
-      encourage you to put an URL to the FreeType web page  in  your
-      documentation, though this isn't mandatory.
-
-  These conditions  apply to any  software derived from or  based on
-  the FreeType Project,  not just the unmodified files.   If you use
-  our work, you  must acknowledge us.  However, no  fee need be paid
-  to us.
-
-3. Advertising
---------------
-
-  Neither the  FreeType authors and  contributors nor you  shall use
-  the name of the  other for commercial, advertising, or promotional
-  purposes without specific prior written permission.
-
-  We suggest,  but do not require, that  you use one or  more of the
-  following phrases to refer  to this software in your documentation
-  or advertising  materials: `FreeType Project',  `FreeType Engine',
-  `FreeType library', or `FreeType Distribution'.
-
-  As  you have  not signed  this license,  you are  not  required to
-  accept  it.   However,  as  the FreeType  Project  is  copyrighted
-  material, only  this license, or  another one contracted  with the
-  authors, grants you  the right to use, distribute,  and modify it.
-  Therefore,  by  using,  distributing,  or modifying  the  FreeType
-  Project, you indicate that you understand and accept all the terms
-  of this license.
-
-4. Contacts
------------
-
-  There are two mailing lists related to FreeType:
-
-    o freetype@nongnu.org
-
-      Discusses general use and applications of FreeType, as well as
-      future and  wanted additions to the  library and distribution.
-      If  you are looking  for support,  start in  this list  if you
-      haven't found anything to help you in the documentation.
-
-    o freetype-devel@nongnu.org
-
-      Discusses bugs,  as well  as engine internals,  design issues,
-      specific licenses, porting, etc.
-
-  Our home page can be found at
-
-    http://www.freetype.org
-
-
---- end of FTL.TXT ---
-
-
-
- - -
-GifPlayer Animated GIF Library -homepage -
-
                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-
- - -
-Google Cache Invalidation API -homepage -
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-
- - -
-Google Input Tools -homepage -
-
                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2013 Google Inc.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
- - -
-Google Toolbox for Mac -homepage -
-
See src/COPYING
-
-
-
- - -
-Google VR SDK -homepage -
-
   Copyright (c) 2015, Google Inc.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-====================
-Open Source Licenses
-====================
-
-This software may use portions of the following libraries subject to the accompanying licenses:
-
-****************************
-chromium_audio
-****************************
-// Copyright 2014 The Chromium Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-curl
-****************************
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1996 - 2014, Daniel Stenberg, <daniel@haxx.se>.
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright
-notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
-OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
-
-
-****************************
-dynamic_annotations
-****************************
-Copyright (c) 2008-2009, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-eigen3
-****************************
-Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:
-  http://www.mozilla.org/MPL/2.0/
-  http://www.mozilla.org/MPL/2.0/FAQ.html
-
-Some files contain third-party code under BSD or LGPL licenses, whence
-the other COPYING.* files here.
-
-All the LGPL code is either LGPL 2.1-only, or LGPL 2.1-or-later.
-For this reason, the COPYING.LGPL file contains the LGPL 2.1 text.
-
-If you want to guarantee that the Eigen code that you are #including
-is licensed under the MPL2 and possibly more permissive licenses (like
-BSD), #define this preprocessor symbol: EIGEN_MPL2_ONLY
-For example, with most compilers, you could add this to your project
-      CXXFLAGS: -DEIGEN_MPL2_ONLY
-This will cause a compilation error to be generated if you #include
-any code that is LGPL licensed.
-
-----------------------------------------------------------------------
-Following applies to:
-./test/mapstaticmethods.cpp
-./test/schur_real.cpp
-./test/prec_inverse_4x4.cpp
-./test/smallvectors.cpp
-./test/redux.cpp
-./test/special_numbers.cpp
-./test/adjoint.cpp
-./test/resize.cpp
-./test/mixingtypes.cpp
-./test/product_trmv.cpp
-./test/sparse_solvers.cpp
-./test/cholesky.cpp
-./test/geo_quaternion.cpp
-./test/miscmatrices.cpp
-./test/stddeque.cpp
-./test/integer_types.cpp
-./test/product_large.cpp
-./test/eigensolver_generic.cpp
-./test/householder.cpp
-./test/geo_orthomethods.cpp
-./test/array_for_matrix.cpp
-./test/sparseLM.cpp
-./test/upperbidiagonalization.cpp
-./test/nomalloc.cpp
-./test/packetmath.cpp
-./test/jacobisvd.cpp
-./test/geo_transformations.cpp
-./test/swap.cpp
-./test/eigensolver_selfadjoint.cpp
-./test/inverse.cpp
-./test/product_selfadjoint.cpp
-./test/product_trsolve.cpp
-./test/product_extra.cpp
-./test/sparse_solver.h
-./test/mapstride.cpp
-./test/mapped_matrix.cpp
-./test/geo_eulerangles.cpp
-./test/eigen2support.cpp
-./test/denseLM.cpp
-./test/stdvector.cpp
-./test/nesting_ops.cpp
-./test/sparse_permutations.cpp
-./test/zerosized.cpp
-./test/exceptions.cpp
-./test/vectorwiseop.cpp
-./test/cwiseop.cpp
-./test/basicstuff.cpp
-./test/product_trmm.cpp
-./test/linearstructure.cpp
-./test/sparse_product.cpp
-./test/stdvector_overload.cpp
-./test/stable_norm.cpp
-./test/umeyama.cpp
-./test/unalignedcount.cpp
-./test/triangular.cpp
-./test/product_mmtr.cpp
-./test/sparse_basic.cpp
-./test/sparse_vector.cpp
-./test/meta.cpp
-./test/real_qz.cpp
-./test/ref.cpp
-./test/eigensolver_complex.cpp
-./test/cholmod_support.cpp
-./test/conjugate_gradient.cpp
-./test/sparse.h
-./test/simplicial_cholesky.cpp
-./test/bicgstab.cpp
-./test/dynalloc.cpp
-./test/product_notemporary.cpp
-./test/geo_hyperplane.cpp
-./test/lu.cpp
-./test/qr.cpp
-./test/hessenberg.cpp
-./test/sizeof.cpp
-./test/main.h
-./test/selfadjoint.cpp
-./test/permutationmatrices.cpp
-./test/superlu_support.cpp
-./test/qtvector.cpp
-./test/geo_homogeneous.cpp
-./test/determinant.cpp
-./test/array_reverse.cpp
-./test/unalignedassert.cpp
-./test/stdlist.cpp
-./test/product_symm.cpp
-./test/corners.cpp
-./test/dontalign.cpp
-./test/visitor.cpp
-./test/geo_alignedbox.cpp
-./test/diagonalmatrices.cpp
-./test/product_small.cpp
-./test/eigensolver_generalized_real.cpp
-./test/umfpack_support.cpp
-./test/first_aligned.cpp
-./test/qr_fullpivoting.cpp
-./test/array_replicate.cpp
-./test/geo_parametrizedline.cpp
-./test/eigen2/eigen2_unalignedassert.cpp
-./test/eigen2/eigen2_prec_inverse_4x4.cpp
-./test/eigen2/eigen2_alignedbox.cpp
-./test/eigen2/eigen2_sparse_product.cpp
-./test/eigen2/eigen2_meta.cpp
-./test/eigen2/eigen2_nomalloc.cpp
-./test/eigen2/eigen2_visitor.cpp
-./test/eigen2/eigen2_packetmath.cpp
-./test/eigen2/eigen2_svd.cpp
-./test/eigen2/eigen2_mixingtypes.cpp
-./test/eigen2/eigen2_qr.cpp
-./test/eigen2/eigen2_cwiseop.cpp
-./test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp
-./test/eigen2/eigen2_smallvectors.cpp
-./test/eigen2/eigen2_commainitializer.cpp
-./test/eigen2/eigen2_sparse_solvers.cpp
-./test/eigen2/eigen2_hyperplane.cpp
-./test/eigen2/eigen2_eigensolver.cpp
-./test/eigen2/eigen2_linearstructure.cpp
-./test/eigen2/eigen2_sizeof.cpp
-./test/eigen2/eigen2_parametrizedline.cpp
-./test/eigen2/eigen2_lu.cpp
-./test/eigen2/eigen2_adjoint.cpp
-./test/eigen2/eigen2_geometry.cpp
-./test/eigen2/eigen2_stdvector.cpp
-./test/eigen2/eigen2_newstdvector.cpp
-./test/eigen2/eigen2_submatrices.cpp
-./test/eigen2/sparse.h
-./test/eigen2/eigen2_swap.cpp
-./test/eigen2/eigen2_triangular.cpp
-./test/eigen2/eigen2_basicstuff.cpp
-./test/eigen2/gsl_helper.h
-./test/eigen2/eigen2_dynalloc.cpp
-./test/eigen2/eigen2_array.cpp
-./test/eigen2/eigen2_map.cpp
-./test/eigen2/main.h
-./test/eigen2/eigen2_miscmatrices.cpp
-./test/eigen2/eigen2_product_large.cpp
-./test/eigen2/eigen2_first_aligned.cpp
-./test/eigen2/eigen2_cholesky.cpp
-./test/eigen2/eigen2_determinant.cpp
-./test/eigen2/eigen2_sum.cpp
-./test/eigen2/eigen2_inverse.cpp
-./test/eigen2/eigen2_regression.cpp
-./test/eigen2/eigen2_product_small.cpp
-./test/eigen2/eigen2_qtvector.cpp
-./test/eigen2/eigen2_sparse_vector.cpp
-./test/eigen2/product.h
-./test/eigen2/eigen2_sparse_basic.cpp
-./test/eigen2/eigen2_bug_132.cpp
-./test/array.cpp
-./test/product_syrk.cpp
-./test/commainitializer.cpp
-./test/conservative_resize.cpp
-./test/qr_colpivoting.cpp
-./test/nullary.cpp
-./test/bandmatrix.cpp
-./test/pastix_support.cpp
-./test/product.h
-./test/block.cpp
-./test/vectorization_logic.cpp
-./test/jacobi.cpp
-./test/diagonal.cpp
-./test/schur_complex.cpp
-./test/sizeoverflow.cpp
-./bench/BenchTimer.h
-./bench/benchFFT.cpp
-./bench/eig33.cpp
-./bench/spbench/spbenchsolver.h
-./bench/spbench/spbenchstyle.h
-./lapack/complex_double.cpp
-./lapack/cholesky.cpp
-./lapack/lapack_common.h
-./lapack/eigenvalues.cpp
-./lapack/single.cpp
-./lapack/lu.cpp
-./lapack/complex_single.cpp
-./lapack/double.cpp
-./demos/mix_eigen_and_c/binary_library.cpp
-./demos/mix_eigen_and_c/binary_library.h
-./demos/mix_eigen_and_c/example.c
-./demos/mandelbrot/mandelbrot.cpp
-./demos/mandelbrot/mandelbrot.h
-./demos/opengl/icosphere.cpp
-./demos/opengl/icosphere.h
-./demos/opengl/camera.cpp
-./demos/opengl/quaternion_demo.h
-./demos/opengl/camera.h
-./demos/opengl/trackball.h
-./demos/opengl/gpuhelper.h
-./demos/opengl/trackball.cpp
-./demos/opengl/gpuhelper.cpp
-./demos/opengl/quaternion_demo.cpp
-./debug/gdb/printers.py
-./unsupported/test/minres.cpp
-./unsupported/test/openglsupport.cpp
-./unsupported/test/jacobisvd.cpp
-./unsupported/test/dgmres.cpp
-./unsupported/test/matrix_square_root.cpp
-./unsupported/test/bdcsvd.cpp
-./unsupported/test/matrix_exponential.cpp
-./unsupported/test/forward_adolc.cpp
-./unsupported/test/polynomialsolver.cpp
-./unsupported/test/matrix_function.cpp
-./unsupported/test/sparse_extra.cpp
-./unsupported/test/matrix_functions.h
-./unsupported/test/svd_common.h
-./unsupported/test/FFTW.cpp
-./unsupported/test/alignedvector3.cpp
-./unsupported/test/autodiff.cpp
-./unsupported/test/gmres.cpp
-./unsupported/test/BVH.cpp
-./unsupported/test/levenberg_marquardt.cpp
-./unsupported/test/matrix_power.cpp
-./unsupported/test/kronecker_product.cpp
-./unsupported/test/splines.cpp
-./unsupported/test/polynomialutils.cpp
-./unsupported/bench/bench_svd.cpp
-./unsupported/Eigen/IterativeSolvers
-./unsupported/Eigen/src/IterativeSolvers/DGMRES.h
-./unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h
-./unsupported/Eigen/src/IterativeSolvers/GMRES.h
-./unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h
-./unsupported/Eigen/src/IterativeSolvers/Scaling.h
-./unsupported/Eigen/src/IterativeSolvers/MINRES.h
-./unsupported/Eigen/src/SparseExtra/RandomSetter.h
-./unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
-./unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
-./unsupported/Eigen/src/SparseExtra/MarketIO.h
-./unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
-./unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
-./unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h
-./unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h
-./unsupported/Eigen/src/BVH/BVAlgorithms.h
-./unsupported/Eigen/src/BVH/KdBVH.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffVector.h
-./unsupported/Eigen/src/Splines/Spline.h
-./unsupported/Eigen/src/Splines/SplineFitting.h
-./unsupported/Eigen/src/Splines/SplineFwd.h
-./unsupported/Eigen/src/SVD/JacobiSVD.h
-./unsupported/Eigen/src/SVD/BDCSVD.h
-./unsupported/Eigen/src/SVD/SVDBase.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
-./unsupported/Eigen/src/MatrixFunctions/StemFunction.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixPower.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h
-./unsupported/Eigen/src/MoreVectorization/MathFunctions.h
-./unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
-./unsupported/Eigen/src/FFT/ei_fftw_impl.h
-./unsupported/Eigen/src/FFT/ei_kissfft_impl.h
-./unsupported/Eigen/src/Polynomials/PolynomialSolver.h
-./unsupported/Eigen/src/Polynomials/Companion.h
-./unsupported/Eigen/src/Polynomials/PolynomialUtils.h
-./unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
-./unsupported/Eigen/src/Skyline/SkylineProduct.h
-./unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
-./unsupported/Eigen/src/Skyline/SkylineStorage.h
-./unsupported/Eigen/src/Skyline/SkylineUtil.h
-./unsupported/Eigen/src/Skyline/SkylineInplaceLU.h
-./unsupported/Eigen/src/Skyline/SkylineMatrix.h
-./unsupported/Eigen/SparseExtra
-./unsupported/Eigen/AdolcForward
-./unsupported/Eigen/KroneckerProduct
-./unsupported/Eigen/NonLinearOptimization
-./unsupported/Eigen/BVH
-./unsupported/Eigen/OpenGLSupport
-./unsupported/Eigen/ArpackSupport
-./unsupported/Eigen/AutoDiff
-./unsupported/Eigen/Splines
-./unsupported/Eigen/MPRealSupport
-./unsupported/Eigen/MatrixFunctions
-./unsupported/Eigen/MoreVectorization
-./unsupported/Eigen/LevenbergMarquardt
-./unsupported/Eigen/AlignedVector3
-./unsupported/Eigen/FFT
-./unsupported/Eigen/Polynomials
-./unsupported/Eigen/NumericalDiff
-./unsupported/Eigen/Skyline
-./COPYING.README
-./COPYING.README
-./LICENSE
-./LICENSE
-./LICENSE
-./Eigen/Eigen2Support
-./Eigen/src/Eigen2Support/VectorBlock.h
-./Eigen/src/Eigen2Support/Cwise.h
-./Eigen/src/Eigen2Support/Minor.h
-./Eigen/src/Eigen2Support/Lazy.h
-./Eigen/src/Eigen2Support/Memory.h
-./Eigen/src/Eigen2Support/MathFunctions.h
-./Eigen/src/Eigen2Support/Geometry/AlignedBox.h
-./Eigen/src/Eigen2Support/Geometry/Hyperplane.h
-./Eigen/src/Eigen2Support/Geometry/Quaternion.h
-./Eigen/src/Eigen2Support/Geometry/Rotation2D.h
-./Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
-./Eigen/src/Eigen2Support/Geometry/RotationBase.h
-./Eigen/src/Eigen2Support/Geometry/Translation.h
-./Eigen/src/Eigen2Support/Geometry/Scaling.h
-./Eigen/src/Eigen2Support/Geometry/AngleAxis.h
-./Eigen/src/Eigen2Support/Geometry/Transform.h
-./Eigen/src/Eigen2Support/TriangularSolver.h
-./Eigen/src/Eigen2Support/LU.h
-./Eigen/src/Eigen2Support/QR.h
-./Eigen/src/Eigen2Support/SVD.h
-./Eigen/src/Eigen2Support/Meta.h
-./Eigen/src/Eigen2Support/Block.h
-./Eigen/src/Eigen2Support/Macros.h
-./Eigen/src/Eigen2Support/LeastSquares.h
-./Eigen/src/Eigen2Support/CwiseOperators.h
-./Eigen/src/Jacobi/Jacobi.h
-./Eigen/src/misc/Kernel.h
-./Eigen/src/misc/SparseSolve.h
-./Eigen/src/misc/Solve.h
-./Eigen/src/misc/Image.h
-./Eigen/src/SparseCore/SparseColEtree.h
-./Eigen/src/SparseCore/SparseTranspose.h
-./Eigen/src/SparseCore/SparseUtil.h
-./Eigen/src/SparseCore/SparseCwiseBinaryOp.h
-./Eigen/src/SparseCore/SparseDiagonalProduct.h
-./Eigen/src/SparseCore/SparseProduct.h
-./Eigen/src/SparseCore/SparseDot.h
-./Eigen/src/SparseCore/SparseCwiseUnaryOp.h
-./Eigen/src/SparseCore/SparseSparseProductWithPruning.h
-./Eigen/src/SparseCore/SparseBlock.h
-./Eigen/src/SparseCore/SparseDenseProduct.h
-./Eigen/src/SparseCore/CompressedStorage.h
-./Eigen/src/SparseCore/SparseMatrixBase.h
-./Eigen/src/SparseCore/MappedSparseMatrix.h
-./Eigen/src/SparseCore/SparseTriangularView.h
-./Eigen/src/SparseCore/SparseView.h
-./Eigen/src/SparseCore/SparseFuzzy.h
-./Eigen/src/SparseCore/TriangularSolver.h
-./Eigen/src/SparseCore/SparseSelfAdjointView.h
-./Eigen/src/SparseCore/SparseMatrix.h
-./Eigen/src/SparseCore/SparseVector.h
-./Eigen/src/SparseCore/AmbiVector.h
-./Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
-./Eigen/src/SparseCore/SparseRedux.h
-./Eigen/src/SparseCore/SparsePermutation.h
-./Eigen/src/Eigenvalues/RealSchur.h
-./Eigen/src/Eigenvalues/ComplexEigenSolver.h
-./Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
-./Eigen/src/Eigenvalues/ComplexSchur.h
-./Eigen/src/Eigenvalues/RealQZ.h
-./Eigen/src/Eigenvalues/EigenSolver.h
-./Eigen/src/Eigenvalues/HessenbergDecomposition.h
-./Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
-./Eigen/src/Eigenvalues/Tridiagonalization.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
-./Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
-./Eigen/src/SuperLUSupport/SuperLUSupport.h
-./Eigen/src/StlSupport/StdDeque.h
-./Eigen/src/StlSupport/StdVector.h
-./Eigen/src/StlSupport/StdList.h
-./Eigen/src/StlSupport/details.h
-./Eigen/src/SparseQR/SparseQR.h
-./Eigen/src/LU/Inverse.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/Determinant.h
-./Eigen/src/LU/PartialPivLU.h
-./Eigen/src/LU/FullPivLU.h
-./Eigen/src/UmfPackSupport/UmfPackSupport.h
-./Eigen/src/OrderingMethods/Ordering.h
-./Eigen/src/OrderingMethods/Eigen_Colamd.h
-./Eigen/src/QR/HouseholderQR.h
-./Eigen/src/QR/ColPivHouseholderQR.h
-./Eigen/src/QR/FullPivHouseholderQR.h
-./Eigen/src/SVD/JacobiSVD.h
-./Eigen/src/SVD/UpperBidiagonalization.h
-./Eigen/src/Geometry/OrthoMethods.h
-./Eigen/src/Geometry/AlignedBox.h
-./Eigen/src/Geometry/Hyperplane.h
-./Eigen/src/Geometry/Quaternion.h
-./Eigen/src/Geometry/EulerAngles.h
-./Eigen/src/Geometry/Rotation2D.h
-./Eigen/src/Geometry/ParametrizedLine.h
-./Eigen/src/Geometry/RotationBase.h
-./Eigen/src/Geometry/arch/Geometry_SSE.h
-./Eigen/src/Geometry/Umeyama.h
-./Eigen/src/Geometry/Homogeneous.h
-./Eigen/src/Geometry/Translation.h
-./Eigen/src/Geometry/Scaling.h
-./Eigen/src/Geometry/AngleAxis.h
-./Eigen/src/Geometry/Transform.h
-./Eigen/src/plugins/BlockMethods.h
-./Eigen/src/plugins/CommonCwiseUnaryOps.h
-./Eigen/src/plugins/CommonCwiseBinaryOps.h
-./Eigen/src/plugins/MatrixCwiseUnaryOps.h
-./Eigen/src/plugins/MatrixCwiseBinaryOps.h
-./Eigen/src/Householder/Householder.h
-./Eigen/src/Householder/HouseholderSequence.h
-./Eigen/src/Householder/BlockHouseholder.h
-./Eigen/src/Core/VectorBlock.h
-./Eigen/src/Core/Matrix.h
-./Eigen/src/Core/Ref.h
-./Eigen/src/Core/SelfAdjointView.h
-./Eigen/src/Core/MathFunctions.h
-./Eigen/src/Core/GlobalFunctions.h
-./Eigen/src/Core/MapBase.h
-./Eigen/src/Core/EigenBase.h
-./Eigen/src/Core/GenericPacketMath.h
-./Eigen/src/Core/NestByValue.h
-./Eigen/src/Core/CwiseUnaryOp.h
-./Eigen/src/Core/SolveTriangular.h
-./Eigen/src/Core/Fuzzy.h
-./Eigen/src/Core/Visitor.h
-./Eigen/src/Core/Map.h
-./Eigen/src/Core/NoAlias.h
-./Eigen/src/Core/Diagonal.h
-./Eigen/src/Core/StableNorm.h
-./Eigen/src/Core/CoreIterators.h
-./Eigen/src/Core/products/Parallelizer.h
-./Eigen/src/Core/products/SelfadjointMatrixVector.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
-./Eigen/src/Core/products/TriangularSolverMatrix.h
-./Eigen/src/Core/products/GeneralMatrixMatrix.h
-./Eigen/src/Core/products/SelfadjointProduct.h
-./Eigen/src/Core/products/CoeffBasedProduct.h
-./Eigen/src/Core/products/TriangularMatrixVector.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix.h
-./Eigen/src/Core/products/TriangularSolverVector.h
-./Eigen/src/Core/products/SelfadjointRank2Update.h
-./Eigen/src/Core/products/GeneralBlockPanelKernel.h
-./Eigen/src/Core/products/GeneralMatrixVector.h
-./Eigen/src/Core/products/TriangularMatrixMatrix.h
-./Eigen/src/Core/Reverse.h
-./Eigen/src/Core/BooleanRedux.h
-./Eigen/src/Core/Replicate.h
-./Eigen/src/Core/arch/AltiVec/PacketMath.h
-./Eigen/src/Core/arch/AltiVec/Complex.h
-./Eigen/src/Core/arch/SSE/PacketMath.h
-./Eigen/src/Core/arch/SSE/Complex.h
-./Eigen/src/Core/arch/SSE/MathFunctions.h
-./Eigen/src/Core/arch/NEON/PacketMath.h
-./Eigen/src/Core/arch/NEON/Complex.h
-./Eigen/src/Core/arch/Default/Settings.h
-./Eigen/src/Core/CwiseUnaryView.h
-./Eigen/src/Core/Array.h
-./Eigen/src/Core/ArrayWrapper.h
-./Eigen/src/Core/Swap.h
-./Eigen/src/Core/Transpositions.h
-./Eigen/src/Core/Random.h
-./Eigen/src/Core/IO.h
-./Eigen/src/Core/SelfCwiseBinaryOp.h
-./Eigen/src/Core/VectorwiseOp.h
-./Eigen/src/Core/Select.h
-./Eigen/src/Core/ArrayBase.h
-./Eigen/src/Core/DenseCoeffsBase.h
-./Eigen/src/Core/DiagonalProduct.h
-./Eigen/src/Core/Assign.h
-./Eigen/src/Core/Redux.h
-./Eigen/src/Core/ForceAlignedAccess.h
-./Eigen/src/Core/BandMatrix.h
-./Eigen/src/Core/PlainObjectBase.h
-./Eigen/src/Core/DenseBase.h
-./Eigen/src/Core/Flagged.h
-./Eigen/src/Core/CwiseBinaryOp.h
-./Eigen/src/Core/ProductBase.h
-./Eigen/src/Core/TriangularMatrix.h
-./Eigen/src/Core/Transpose.h
-./Eigen/src/Core/DiagonalMatrix.h
-./Eigen/src/Core/Dot.h
-./Eigen/src/Core/Functors.h
-./Eigen/src/Core/PermutationMatrix.h
-./Eigen/src/Core/NumTraits.h
-./Eigen/src/Core/MatrixBase.h
-./Eigen/src/Core/DenseStorage.h
-./Eigen/src/Core/util/Memory.h
-./Eigen/src/Core/util/StaticAssert.h
-./Eigen/src/Core/util/BlasUtil.h
-./Eigen/src/Core/util/MatrixMapper.h
-./Eigen/src/Core/util/XprHelper.h
-./Eigen/src/Core/util/ForwardDeclarations.h
-./Eigen/src/Core/util/Meta.h
-./Eigen/src/Core/util/Macros.h
-./Eigen/src/Core/util/Constants.h
-./Eigen/src/Core/CwiseNullaryOp.h
-./Eigen/src/Core/Block.h
-./Eigen/src/Core/GeneralProduct.h
-./Eigen/src/Core/CommaInitializer.h
-./Eigen/src/Core/ReturnByValue.h
-./Eigen/src/Core/Stride.h
-./Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
-./Eigen/src/SparseLU/SparseLU_column_dfs.h
-./Eigen/src/SparseLU/SparseLU_panel_dfs.h
-./Eigen/src/SparseLU/SparseLU_relax_snode.h
-./Eigen/src/SparseLU/SparseLU_panel_bmod.h
-./Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
-./Eigen/src/SparseLU/SparseLU_Utils.h
-./Eigen/src/SparseLU/SparseLU_gemm_kernel.h
-./Eigen/src/SparseLU/SparseLU_kernel_bmod.h
-./Eigen/src/SparseLU/SparseLU_pivotL.h
-./Eigen/src/SparseLU/SparseLU_Memory.h
-./Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
-./Eigen/src/SparseLU/SparseLUImpl.h
-./Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
-./Eigen/src/SparseLU/SparseLU_Structs.h
-./Eigen/src/SparseLU/SparseLU.h
-./Eigen/src/SparseLU/SparseLU_column_bmod.h
-./Eigen/src/SparseLU/SparseLU_pruneL.h
-./Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
-./Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
-./Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
-./Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
-./Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
-./Eigen/src/SparseCholesky/SimplicialCholesky.h
-./Eigen/src/Cholesky/LDLT.h
-./Eigen/src/Cholesky/LLT.h
-./Eigen/src/CholmodSupport/CholmodSupport.h
-./Eigen/src/PaStiXSupport/PaStiXSupport.h
-./Eigen/src/MetisSupport/MetisSupport.h
-./Eigen/StdVector
-./Eigen/Core
-./Eigen/SparseLU
-./Eigen/StdList
-./Eigen/StdDeque
-./Eigen/SparseCholesky
-./scripts/relicense.py
-./scripts/relicense.py
-./blas/BandTriangularSolver.h
-./blas/PackedTriangularMatrixVector.h
-./blas/complex_double.cpp
-./blas/level2_real_impl.h
-./blas/level1_cplx_impl.h
-./blas/level1_impl.h
-./blas/level1_real_impl.h
-./blas/level3_impl.h
-./blas/single.cpp
-./blas/level2_cplx_impl.h
-./blas/PackedSelfadjointProduct.h
-./blas/Rank2Update.h
-./blas/complex_single.cpp
-./blas/PackedTriangularSolverVector.h
-./blas/double.cpp
-./blas/common.h
-./blas/level2_impl.h
-./blas/GeneralRank1Update.h
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
-    means each individual or legal entity that creates, contributes to
-    the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
-    means the combination of the Contributions of others (if any) used
-    by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
-    means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
-    means Source Code Form to which the initial Contributor has attached
-    the notice in Exhibit A, the Executable Form of such Source Code
-    Form, and Modifications of such Source Code Form, in each case
-    including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
-    means
-
-    (a) that the initial Contributor has attached the notice described
-        in Exhibit B to the Covered Software; or
-
-    (b) that the Covered Software was made available under the terms of
-        version 1.1 or earlier of the License, but not also under the
-        terms of a Secondary License.
-
-1.6. "Executable Form"
-    means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
-    means a work that combines Covered Software with other material, in
-    a separate file or files, that is not Covered Software.
-
-1.8. "License"
-    means this document.
-
-1.9. "Licensable"
-    means having the right to grant, to the maximum extent possible,
-    whether at the time of the initial grant or subsequently, any and
-    all of the rights conveyed by this License.
-
-1.10. "Modifications"
-    means any of the following:
-
-    (a) any file in Source Code Form that results from an addition to,
-        deletion from, or modification of the contents of Covered
-        Software; or
-
-    (b) any new file in Source Code Form that contains any Covered
-        Software.
-
-1.11. "Patent Claims" of a Contributor
-    means any patent claim(s), including without limitation, method,
-    process, and apparatus claims, in any patent Licensable by such
-    Contributor that would be infringed, but for the grant of the
-    License, by the making, using, selling, offering for sale, having
-    made, import, or transfer of either its Contributions or its
-    Contributor Version.
-
-1.12. "Secondary License"
-    means either the GNU General Public License, Version 2.0, the GNU
-    Lesser General Public License, Version 2.1, the GNU Affero General
-    Public License, Version 3.0, or any later versions of those
-    licenses.
-
-1.13. "Source Code Form"
-    means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
-    means an individual or a legal entity exercising rights under this
-    License. For legal entities, "You" includes any entity that
-    controls, is controlled by, or is under common control with You. For
-    purposes of this definition, "control" means (a) the power, direct
-    or indirect, to cause the direction or management of such entity,
-    whether by contract or otherwise, or (b) ownership of more than
-    fifty percent (50%) of the outstanding shares or beneficial
-    ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
-    Licensable by such Contributor to use, reproduce, make available,
-    modify, display, perform, distribute, and otherwise exploit its
-    Contributions, either on an unmodified basis, with Modifications, or
-    as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
-    for sale, have made, import, and otherwise transfer either its
-    Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
-    or
-
-(b) for infringements caused by: (i) Your and any other third party's
-    modifications of Covered Software, or (ii) the combination of its
-    Contributions with other software (except as part of its Contributor
-    Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
-    its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
-    Form, as described in Section 3.1, and You must inform recipients of
-    the Executable Form how they can obtain a copy of such Source Code
-    Form by reasonable means in a timely manner, at a charge no more
-    than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
-    License, or sublicense it under different terms, provided that the
-    license for the Executable Form does not attempt to limit or alter
-    the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-*                                                                      *
-*  6. Disclaimer of Warranty                                           *
-*  -------------------------                                           *
-*                                                                      *
-*  Covered Software is provided under this License on an "as is"       *
-*  basis, without warranty of any kind, either expressed, implied, or  *
-*  statutory, including, without limitation, warranties that the       *
-*  Covered Software is free of defects, merchantable, fit for a        *
-*  particular purpose or non-infringing. The entire risk as to the     *
-*  quality and performance of the Covered Software is with You.        *
-*  Should any Covered Software prove defective in any respect, You     *
-*  (not any Contributor) assume the cost of any necessary servicing,   *
-*  repair, or correction. This disclaimer of warranty constitutes an   *
-*  essential part of this License. No use of any Covered Software is   *
-*  authorized under this License except under this disclaimer.         *
-*                                                                      *
-************************************************************************
-
-************************************************************************
-*                                                                      *
-*  7. Limitation of Liability                                          *
-*  --------------------------                                          *
-*                                                                      *
-*  Under no circumstances and under no legal theory, whether tort      *
-*  (including negligence), contract, or otherwise, shall any           *
-*  Contributor, or anyone who distributes Covered Software as          *
-*  permitted above, be liable to You for any direct, indirect,         *
-*  special, incidental, or consequential damages of any character      *
-*  including, without limitation, damages for lost profits, loss of    *
-*  goodwill, work stoppage, computer failure or malfunction, or any    *
-*  and all other commercial damages or losses, even if such party      *
-*  shall have been informed of the possibility of such damages. This   *
-*  limitation of liability shall not apply to liability for death or   *
-*  personal injury resulting from such party's negligence to the       *
-*  extent applicable law prohibits such limitation. Some               *
-*  jurisdictions do not allow the exclusion or limitation of           *
-*  incidental or consequential damages, so this exclusion and          *
-*  limitation may not apply to You.                                    *
-*                                                                      *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
-  This Source Code Form is subject to the terms of the Mozilla Public
-  License, v. 2.0. If a copy of the MPL was not distributed with this
-  file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
-
-----------------------------------------------------------------------
-Following applies to:
-./doc/UsingIntelMKL.dox
-./doc/UsingIntelMKL.dox
-./Eigen/src/Eigenvalues/ComplexSchur_MKL.h
-./Eigen/src/Eigenvalues/ComplexSchur_MKL.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
-./Eigen/src/Eigenvalues/RealSchur_MKL.h
-./Eigen/src/Eigenvalues/RealSchur_MKL.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/PartialPivLU_MKL.h
-./Eigen/src/LU/PartialPivLU_MKL.h
-./Eigen/src/QR/HouseholderQR_MKL.h
-./Eigen/src/QR/HouseholderQR_MKL.h
-./Eigen/src/QR/ColPivHouseholderQR_MKL.h
-./Eigen/src/QR/ColPivHouseholderQR_MKL.h
-./Eigen/src/SVD/JacobiSVD_MKL.h
-./Eigen/src/SVD/JacobiSVD_MKL.h
-./Eigen/src/PardisoSupport/PardisoSupport.h
-./Eigen/src/PardisoSupport/PardisoSupport.h
-./Eigen/src/Core/Assign_MKL.h
-./Eigen/src/Core/Assign_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixVector_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixVector_MKL.h
-./Eigen/src/Core/products/TriangularMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
-./Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
-./Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
-./Eigen/src/Core/util/MKL_support.h
-./Eigen/src/Core/util/MKL_support.h
-./Eigen/src/Cholesky/LLT_MKL.h
-./Eigen/src/Cholesky/LLT_MKL.h
-
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.  *
-   Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the
-   distribution.  * Neither the name of Intel Corporation nor the
-   names of its contributors may be used to endorse or promote
-   products derived from this software without specific prior written
-   permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-----------------------------------------------------------------------
-Following applies to:
-  everything under ./bench/btl
-
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds
-of works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal,
-family, or household purposes, or (2) anything designed or sold for
-incorporation into a dwelling.  In determining whether a product is a
-consumer product, doubtful cases shall be resolved in favor of
-coverage.  For a particular product received by a particular user,
-"normally used" refers to a typical or common use of that class of
-product, regardless of the status of the particular user or of the way
-in which the particular user actually uses, or expects or is expected
-to use, the product.  A product is a consumer product regardless of
-whether the product has substantial commercial, industrial or
-non-consumer uses, unless such uses represent the only significant
-mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to
-install and execute modified versions of a covered work in that User
-Product from a modified version of its Corresponding Source.  The
-information must suffice to ensure that the continued functioning of
-the modified object code is in no case prevented or interfered with
-solely because modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include
-a requirement to continue to provide support service, warranty, or
-updates for a work that has been modified or installed by the
-recipient, or for the User Product in which it has been modified or
-installed.  Access to a network may be denied when the modification
-itself materially and adversely affects the operation of the network
-or violates the rules and protocols for communication across the
-network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material
-you add to a covered work, you may (if authorized by the copyright
-holders of that material) supplement the terms of this License with
-terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions
-    of it) with contractual assumptions of liability to the recipient,
-    for any liability that these contractual assumptions directly
-    impose on those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement
-or otherwise) that contradict the conditions of this License, they do
-not excuse you from the conditions of this License.  If you cannot
-convey a covered work so as to satisfy simultaneously your obligations
-under this License and any other pertinent obligations, then as a
-consequence you may not convey it at all.  For example, if you agree
-to terms that obligate you to collect a royalty for further conveying
-from those to whom you convey the Program, the only way you could
-satisfy both those terms and this License would be to refrain entirely
-from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU General Public License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
-DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
-AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
-DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
-DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
-(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
-INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
-OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it
-    does.>
-    Copyright (C) <year> <name of author>
-
-    This program is free software: you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation, either version 3 of the
-    License, or (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see
-    <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program> Copyright (C) <year> <name of author> This program comes
-    with ABSOLUTELY NO WARRANTY; for details type `show w'.  This is
-    free software, and you are welcome to redistribute it under
-    certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License.  Of course, your
-program's commands might be different; for a GUI interface, you would
-use an "about box".
-
-  You should also get your employer (if you work as a programmer) or
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  For more information on this, and how to apply and follow
-the GNU GPL, see <http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your
-program into proprietary programs.  If your program is a subroutine
-library, you may consider it more useful to permit linking proprietary
-applications with the library.  If this is what you want to do, use
-the GNU Lesser General Public License instead of this License.  But
-first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.
-
-
-----------------------------------------------------------------------
-Following applies to:
-./test/metis_support.cpp
-./test/sparselu.cpp
-./unsupported/test/mpreal/mpreal.h
-./unsupported/Eigen/src/IterativeSolvers/IterationController.h
-./unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
-./unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h
-./Eigen/src/OrderingMethods/Amd.h
-./Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
-  0. Additional Definitions.
-
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the
-GNU General Public License.
-
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
-  1. Exception to Section 3 of the GNU GPL.
-
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
-  2. Conveying Modified Versions.
-
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
-
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
-
-  3. Object Code Incorporating Material from Library Header Files.
-
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
-   a) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the object code with a copy of the GNU GPL and this
-   license document.
-
-  4. Combined Works.
-
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the Combined Work with a copy of the GNU GPL and this
-   license document.
-
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
-
-   d) Do one of the following:
-
-       0) Convey the Minimal Corresponding Source under the terms of
-       this License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
-
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version.
-
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
-
-  5. Combined Libraries.
-
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
-
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
-
-  6. Revised Versions of the GNU Lesser General Public License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-  Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
-
-----------------------------------------------------------------------
-Following applies to:
-./unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMpar.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h
-
-Minpack Copyright Notice (1999) University of Chicago.  All rights
-reserved
-
-Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:
-
-1. Redistributions of source code must retain the above
-copyright notice, this list of conditions and the following
-disclaimer.
-
-2. Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following
-disclaimer in the documentation and/or other materials
-provided with the distribution.
-
-3. The end-user documentation included with the
-redistribution, if any, must include the following
-acknowledgment:
-
-   "This product includes software developed by the
-   University of Chicago, as Operator of Argonne National
-   Laboratory.
-
-Alternately, this acknowledgment may appear in the software
-itself, if and wherever such third-party acknowledgments
-normally appear.
-
-4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
-WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
-UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
-THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
-OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
-OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
-USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
-THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
-DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
-UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
-BE CORRECTED.
-
-5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
-HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
-ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
-INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
-ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
-PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
-SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
-(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
-EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
-POSSIBILITY OF SUCH LOSS OR DAMAGES.
-
-
-****************************
-freetype2
-****************************
-FreeType
-
-Quoth http://freetype.sourceforge.net/license.html:
-
-FreeType comes with two licenses from which you can choose the one
-which fits your needs best.
-
-   * The FreeType License is the most commonly used one.
-    It is a BSD-style license with a credit clause (and thus not
-    compatible with the GPL).
-
-  * The GNU General Public License (GPL).
-    For all projects which use the GPL also or which need a license
-    compatible to the GPL.
-
-FTL.TXT:
----
-
-                    The FreeType Project LICENSE
-                    ----------------------------
-
-                            2006-Jan-27
-
-                    Copyright 1996-2002, 2006 by
-          David Turner, Robert Wilhelm, and Werner Lemberg
-
-
-
-Introduction
-============
-
-  The FreeType  Project is distributed in  several archive packages;
-  some of them may contain, in addition to the FreeType font engine,
-  various tools and  contributions which rely on, or  relate to, the
-  FreeType Project.
-
-  This  license applies  to all  files found  in such  packages, and
-  which do not  fall under their own explicit  license.  The license
-  affects  thus  the  FreeType   font  engine,  the  test  programs,
-  documentation and makefiles, at the very least.
-
-  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
-  (Independent JPEG  Group) licenses, which  all encourage inclusion
-  and  use of  free  software in  commercial  and freeware  products
-  alike.  As a consequence, its main points are that:
-
-    o We don't promise that this software works. However, we will be
-      interested in any kind of bug reports. (`as is' distribution)
-
-    o You can  use this software for whatever you  want, in parts or
-      full form, without having to pay us. (`royalty-free' usage)
-
-    o You may not pretend that  you wrote this software.  If you use
-      it, or  only parts of it,  in a program,  you must acknowledge
-      somewhere  in  your  documentation  that  you  have  used  the
-      FreeType code. (`credits')
-
-  We  specifically  permit  and  encourage  the  inclusion  of  this
-  software, with  or without modifications,  in commercial products.
-  We  disclaim  all warranties  covering  The  FreeType Project  and
-  assume no liability related to The FreeType Project.
-
-
-  Finally,  many  people  asked  us  for  a  preferred  form  for  a
-  credit/disclaimer to use in compliance with this license.  We thus
-  encourage you to use the following text:
-
-   """
-    Portions of this software are copyright (C) <year> The FreeType
-    Project (www.freetype.org).  All rights reserved.
-   """
-
-  Please replace <year> with the value from the FreeType version you
-  actually use.
-
-
-Legal Terms
-===========
-
-0. Definitions
---------------
-
-  Throughout this license,  the terms `package', `FreeType Project',
-  and  `FreeType  archive' refer  to  the  set  of files  originally
-  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
-  Werner Lemberg) as the `FreeType Project', be they named as alpha,
-  beta or final release.
-
-  `You' refers to  the licensee, or person using  the project, where
-  `using' is a generic term including compiling the project's source
-  code as  well as linking it  to form a  `program' or `executable'.
-  This  program is  referred to  as  `a program  using the  FreeType
-  engine'.
-
-  This  license applies  to all  files distributed  in  the original
-  FreeType  Project,   including  all  source   code,  binaries  and
-  documentation,  unless  otherwise  stated   in  the  file  in  its
-  original, unmodified form as  distributed in the original archive.
-  If you are  unsure whether or not a particular  file is covered by
-  this license, you must contact us to verify this.
-
-  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
-  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
-  specified below.
-
-1. No Warranty
---------------
-
-  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
-  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
-  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
-  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
-  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
-  USE, OF THE FREETYPE PROJECT.
-
-2. Redistribution
------------------
-
-  This  license  grants  a  worldwide, royalty-free,  perpetual  and
-  irrevocable right  and license to use,  execute, perform, compile,
-  display,  copy,   create  derivative  works   of,  distribute  and
-  sublicense the  FreeType Project (in  both source and  object code
-  forms)  and  derivative works  thereof  for  any  purpose; and  to
-  authorize others  to exercise  some or all  of the  rights granted
-  herein, subject to the following conditions:
-
-    o Redistribution of  source code  must retain this  license file
-      (`FTL.TXT') unaltered; any  additions, deletions or changes to
-      the original  files must be clearly  indicated in accompanying
-      documentation.   The  copyright   notices  of  the  unaltered,
-      original  files must  be  preserved in  all  copies of  source
-      files.
-
-    o Redistribution in binary form must provide a  disclaimer  that
-      states  that  the software is based in part of the work of the
-      FreeType Team,  in  the  distribution  documentation.  We also
-      encourage you to put an URL to the FreeType web page  in  your
-      documentation, though this isn't mandatory.
-
-  These conditions  apply to any  software derived from or  based on
-  the FreeType Project,  not just the unmodified files.   If you use
-  our work, you  must acknowledge us.  However, no  fee need be paid
-  to us.
-
-3. Advertising
---------------
-
-  Neither the  FreeType authors and  contributors nor you  shall use
-  the name of the  other for commercial, advertising, or promotional
-  purposes without specific prior written permission.
-
-  We suggest,  but do not require, that  you use one or  more of the
-  following phrases to refer  to this software in your documentation
-  or advertising  materials: `FreeType Project',  `FreeType Engine',
-  `FreeType library', or `FreeType Distribution'.
-
-  As  you have  not signed  this license,  you are  not  required to
-  accept  it.   However,  as  the FreeType  Project  is  copyrighted
-  material, only  this license, or  another one contracted  with the
-  authors, grants you  the right to use, distribute,  and modify it.
-  Therefore,  by  using,  distributing,  or modifying  the  FreeType
-  Project, you indicate that you understand and accept all the terms
-  of this license.
-
-4. Contacts
------------
-
-  There are two mailing lists related to FreeType:
-
-    o freetype@nongnu.org
-
-      Discusses general use and applications of FreeType, as well as
-      future and  wanted additions to the  library and distribution.
-      If  you are looking  for support,  start in  this list  if you
-      haven't found anything to help you in the documentation.
-
-    o freetype-devel@nongnu.org
-
-      Discusses bugs,  as well  as engine internals,  design issues,
-      specific licenses, porting, etc.
-
-  Our home page can be found at
-
-    http://www.freetype.org
-
-
---- end of FTL.TXT ---
-
-
-****************************
-GL
-****************************
-Mesa Component Licenses
-
-Component         Location               Primary Author      License
-----------------------------------------------------------------------------
-Main Mesa code    src/mesa/              Brian Paul          Mesa (MIT)
-
-Device drivers    src/mesa/drivers/*     See drivers         See drivers
-
-Ext headers       include/GL/glext.h     SGI                 SGI Free B
-                  include/GL/glxext.h
-
-GLUT              src/glut/              Mark Kilgard        Mark's copyright
-
-GLEW              src/glew-1.13.0        Nigel Stewart       Modified BSD
-
-Mesa GLU library  src/glu/mesa/          Brian Paul          GNU-LGPL
-
-SGI GLU library   src/glu/sgi/           SGI                 SGI Free B
-
-demo programs     progs/demos/           various             see source files
-
-X demos           progs/xdemos/          Brian Paul          see source files
-
-SGI demos         progs/samples/         SGI                 SGI copyright
-
-RedBook demos     progs/redbook/         SGI                 SGI copyright
-
----------------------
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----------------------------
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Alan Hourihane not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission.  Alan Hourihane makes no representations
-about the suitability of this software for any purpose.  It is provided
-"as is" without express or implied warranty.
-
-ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-----------------------------------------------------------------------
-
-
-      GNU LIBRARY GENERAL PUBLIC LICENSE
-           Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
-                    675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
-          Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
-      GNU LIBRARY GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    c) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    d) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-          NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-         END OF TERMS AND CONDITIONS
-
-     Appendix: How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the Free
-    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
----------------------
-
-The OpenGL Extension Wrangler Library
-Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-Copyright (C) 2002, Lev Povalahev
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-* The name of the author may be used to endorse or promote products
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-gradle
-****************************
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-------------------------------------------------------------------------------
-License for the slf4j package
-------------------------------------------------------------------------------
-SLF4J License
-
-Copyright (c) 2004-2007 QOS.ch
-All rights reserved.
-
-Permission is hereby granted, free  of charge, to any person obtaining
-a  copy  of this  software  and  associated  documentation files  (the
-"Software"), to  deal in  the Software without  restriction, including
-without limitation  the rights to  use, copy, modify,  merge, publish,
-distribute,  sublicense, and/or sell  copies of  the Software,  and to
-permit persons to whom the Software  is furnished to do so, subject to
-the following conditions:
-
-The  above  copyright  notice  and  this permission  notice  shall  be
-included in all copies or substantial portions of the Software.
-
-THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
-EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
-MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-These terms are identical to those of the MIT License, also called the X License or the X11 License,
-which is a simple, permissive non-copyleft free software license. It is deemed compatible with virtually
-all types of licenses, commercial or otherwise. In particular, the Free Software Foundation has declared it
-compatible with GNU GPL. It is also known to be approved by the Apache Software Foundation as compatible
-with Apache Software License.
-
-
-------------------------------------------------------------------------------
-License for the JUnit package
-------------------------------------------------------------------------------
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
-LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
-CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and
-documentation distributed under this Agreement, and
-
-b) in the case of each subsequent Contributor:
-
-i) changes to the Program, and
-
-ii) additions to the Program;
-
-where such changes and/or additions to the Program originate from and are
-distributed by that particular Contributor. A Contribution 'originates' from a
-Contributor if it was added to the Program by such Contributor itself or anyone
-acting on such Contributor's behalf. Contributions do not include additions to
-the Program which: (i) are separate modules of software distributed in
-conjunction with the Program under their own license agreement, and (ii) are not
-derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents " mean patent claims licensable by a Contributor which are
-necessarily infringed by the use or sale of its Contribution alone or when
-combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement,
-including all Contributors.
-
-2. GRANT OF RIGHTS
-
-a) Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, royalty-free copyright license to
-reproduce, prepare derivative works of, publicly display, publicly perform,
-distribute and sublicense the Contribution of such Contributor, if any, and such
-derivative works, in source code and object code form.
-
-b) Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
-Patents to make, use, sell, offer to sell, import and otherwise transfer the
-Contribution of such Contributor, if any, in source code and object code form.
-This patent license shall apply to the combination of the Contribution and the
-Program if, at the time the Contribution is added by the Contributor, such
-addition of the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other combinations
-which include the Contribution. No hardware per se is licensed hereunder.
-
-c) Recipient understands that although each Contributor grants the licenses
-to its Contributions set forth herein, no assurances are provided by any
-Contributor that the Program does not infringe the patent or other intellectual
-property rights of any other entity. Each Contributor disclaims any liability to
-Recipient for claims brought by any other entity based on infringement of
-intellectual property rights or otherwise. As a condition to exercising the
-rights and licenses granted hereunder, each Recipient hereby assumes sole
-responsibility to secure any other intellectual property rights needed, if any.
-For example, if a third party patent license is required to allow Recipient to
-distribute the Program, it is Recipient's responsibility to acquire that license
-before distributing the Program.
-
-d) Each Contributor represents that to its knowledge it has sufficient
-copyright rights in its Contribution, if any, to grant the copyright license set
-forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under its
-own license agreement, provided that:
-
-a) it complies with the terms and conditions of this Agreement; and
-
-b) its license agreement:
-
-i) effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title and
-non-infringement, and implied warranties or conditions of merchantability and
-fitness for a particular purpose;
-
-ii) effectively excludes on behalf of all Contributors all liability for
-damages, including direct, indirect, special, incidental and consequential
-damages, such as lost profits;
-
-iii) states that any provisions which differ from this Agreement are offered
-by that Contributor alone and not by any other party; and
-
-iv) states that source code for the Program is available from such
-Contributor, and informs licensees how to obtain it in a reasonable manner on or
-through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
-a) it must be made available under this Agreement; and
-
-b) a copy of this Agreement must be included with each copy of the Program.
-
-Contributors may not remove or alter any copyright notices contained within the
-Program.
-
-Each Contributor must identify itself as the originator of its Contribution, if
-any, in a manner that reasonably allows subsequent Recipients to identify the
-originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with
-respect to end users, business partners and the like. While this license is
-intended to facilitate the commercial use of the Program, the Contributor who
-includes the Program in a commercial product offering should do so in a manner
-which does not create potential liability for other Contributors. Therefore, if
-a Contributor includes the Program in a commercial product offering, such
-Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
-every other Contributor ("Indemnified Contributor") against any losses, damages
-and costs (collectively "Losses") arising from claims, lawsuits and other legal
-actions brought by a third party against the Indemnified Contributor to the
-extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor to
-control, and cooperate with the Commercial Contributor in, the defense and any
-related settlement negotiations. The Indemnified Contributor may participate in
-any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial product
-offering, Product X. That Contributor is then a Commercial Contributor. If that
-Commercial Contributor then makes performance claims, or offers warranties
-related to Product X, those performance claims and warranties are such
-Commercial Contributor's responsibility alone. Under this section, the
-Commercial Contributor would have to defend claims against the other
-Contributors related to those performance claims and warranties, and if a court
-requires any other Contributor to pay any damages as a result, the Commercial
-Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
-Recipient is solely responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its exercise of
-rights under this Agreement, including but not limited to the risks and costs of
-program errors, compliance with applicable laws, damage to or loss of data,
-programs or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
-CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
-PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under applicable
-law, it shall not affect the validity or enforceability of the remainder of the
-terms of this Agreement, and without further action by the parties hereto, such
-provision shall be reformed to the minimum extent necessary to make such
-provision valid and enforceable.
-
-If Recipient institutes patent litigation against a Contributor with respect to
-a patent applicable to software (including a cross-claim or counterclaim in a
-lawsuit), then any patent licenses granted by that Contributor to such Recipient
-under this Agreement shall terminate as of the date such litigation is filed. In
-addition, if Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
-itself (excluding combinations of the Program with other software or hardware)
-infringes such Recipient's patent(s), then such Recipient's rights granted under
-Section 2(b) shall terminate as of the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to
-comply with any of the material terms or conditions of this Agreement and does
-not cure such failure in a reasonable period of time after becoming aware of
-such noncompliance. If all Recipient's rights under this Agreement terminate,
-Recipient agrees to cease use and distribution of the Program as soon as
-reasonably practicable. However, Recipient's obligations under this Agreement
-and any licenses granted by Recipient relating to the Program shall continue and
-survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in
-order to avoid inconsistency the Agreement is copyrighted and may only be
-modified in the following manner. The Agreement Steward reserves the right to
-publish new versions (including revisions) of this Agreement from time to time.
-No one other than the Agreement Steward has the right to modify this Agreement.
-IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
-as the Agreement Steward to a suitable separate entity. Each new version of the
-Agreement will be given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the Agreement
-under which it was received. In addition, after a new version of the Agreement
-is published, Contributor may elect to distribute the Program (including its
-Contributions) under the new version. Except as expressly stated in Sections
-2(a) and 2(b) above, Recipient receives no rights or licenses to the
-intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the
-intellectual property laws of the United States of America. No party to this
-Agreement will bring a legal action under this Agreement more than one year
-after the cause of action arose. Each party waives its rights to a jury trial in
-any resulting litigation.
-
-------------------------------------------------------------------------------
-License for the JCIFS package
-------------------------------------------------------------------------------
-JCIFS License
-
-          GNU LESSER GENERAL PUBLIC LICENSE
-               Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-          GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-             END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-
-****************************
-icu
-****************************
-ICU
-
-There are two licenses here:
-- ICU license
-- Unicode Terms of Use
-------------------------------------------------------------------------------
-ICU License - ICU 1.8.1 and later
-From http://source.icu-project.org/repos/icu/icu/trunk/license.html
-X License (old version). For license pedigree see the
-ICU FAQ at http://icu-project.org/userguide/icufaq.html
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1995-2006 International Business Machines Corporation and others
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, and/or sell copies of the
-Software, and to permit persons to whom the Software is furnished to do so,
-provided that the above copyright notice(s) and this permission notice appear
-in all copies of the Software and that both the above copyright notice(s) and
-this permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
-LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
-
-All trademarks and registered trademarks mentioned herein are the property of their respective owners.
-
-------------------------------------------------------------------------------
-Unicode Terms of Use, from http://www.unicode.org/copyright.html
-
-    For the general privacy policy governing access to this site, see the
-Unicode Privacy Policy. For trademark usage, see the Unicode Consortium
-Trademarks and Logo Policy.
-    Notice to End User: Terms of Use
-    Carefully read the following legal agreement ("Agreement"). Use or copying
-of the software and/or codes provided with this agreement (The "Software")
-constitutes your acceptance of these terms
-
-       1. Unicode Copyright.
-             1. Copyright  1991-2007 Unicode, Inc. All rights reserved.
-             2. Certain documents and files on this website contain a legend
-indicating that "Modification is permitted." Any person is hereby authorized,
-without fee, to modify such documents and files to create derivative works
-conforming to the Unicode Standard, subject to Terms and Conditions herein.
-             3. Any person is hereby authorized, without fee, to view, use,
-reproduce, and distribute all documents and files solely for informational
-purposes in the creation of products supporting the Unicode Standard, subject
-to the Terms and Conditions herein.
-             4. Further specifications of rights and restrictions pertaining
-to the use of the particular set of data files known as the "Unicode Character
-Database" can be found in Exhibit 1.
-             5. Each version of the Unicode Standard has further specifications
-of rights and restrictions of use. For the book editions, these are found on
-the back of the title page. For the online edition, certain files (such as the
-PDF files for book chapters and code charts) carry specific restrictions. All
-other files are covered under these general Terms of Use.  To request a
-permission to reproduce any part of the Unicode Standard, please contact the
-Unicode Consortium.
-             6. No license is granted to "mirror" the Unicode website where a
-fee is charged for access to the "mirror" site.
-             7. Modification is not permitted with respect to this document.
-All copies of this document must be verbatim.
-       2. Restricted Rights Legend. Any technical data or software which is
-licensed to the United States of America, its agencies and/or instrumentalities
-under this Agreement is commercial technical data or commercial computer
-software developed exclusively at private expense as defined in FAR 2.101, or
-DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
-duplication, or disclosure by the Government is subject to restrictions as set
-forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995)
-and this Agreement. For Software, in accordance with FAR 12-212 or
-DFARS 227-7202, as applicable, use, duplication or disclosure by the Government
-is subject to the restrictions set forth in this Agreement.
-       3. Warranties and Disclaimers.
-             1. This publication and/or website may include technical or
-typographical errors or other inaccuracies . Changes are periodically added to
-the information herein; these changes will be incorporated in new editions of
-the publication and/or website. Unicode may make improvements and/or changes
-in the product(s) and/or program(s) described in this publication and/or
-website at any time.
-             2. If this file has been purchased on magnetic or optical media
-from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange
-of the defective media within ninety (90) days of original purchase.
-             3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR
-SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS,
-IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
-UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN
-THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR
-LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
-       4. Waiver of Damages. In no event shall Unicode or its licensors be
-liable for any special, incidental, indirect or consequential damages of any
-kind, or any damages whatsoever, whether or not Unicode was advised of the
-possibility of the damage, including, without limitation, those resulting from
-the following: loss of use, data or profits, in connection with the use,
-modification or distribution of this information or its derivatives.
-       5. Trademarks.
-             1. Unicode and the Unicode logo are registered trademarks of
-Unicode, Inc.
-             2. This site contains product names and corporate names of other
-companies. All product names and company names and logos mentioned herein are
-the trademarks or registered trademarks of their respective owners. Other
-products and corporate names mentioned herein which are trademarks of a third
-party are used only for explanation and for the owners' benefit and with no
-intent to infringe.
-             3. Use of third party products or information referred to herein
-is at the user\x{2019}s risk.
-       6. Miscellaneous.
-             1. Jurisdiction and Venue. This server is operated from a location
-in the State of California, United States of America. Unicode makes no
-representation that the materials are appropriate for use in other locations.
-If you access this server from other locations, you are responsible for
-compliance with local laws. This Agreement, all use of this site and any
-claims and damages resulting from use of this site are governed solely by the
-laws of the State of California without regard to any principles which would
-apply the laws of a different jurisdiction. The user agrees that any disputes
-regarding this site shall be resolved solely in the courts located in Santa
-Clara County, California. The user agrees said courts have personal
-jurisdiction and agree to waive any right to transfer the dispute to any other
-forum.
-             2. Modification by Unicode Unicode shall have the right to modify
-this Agreement at any time by posting it to this site. The user may not assign
-any part of this Agreement without Unicode\x{2019}s prior written consent.
-             3. Taxes. The user agrees to pay any taxes arising from access to
-this website or use of the information herein, except for those based on
-Unicode\x{2019}s net income.
-             4. Severability.  If any provision of this Agreement is declared
-invalid or unenforceable, the remaining provisions of this Agreement shall
-remain in effect.
-             5. Entire Agreement. This Agreement constitutes the entire
-agreement between the parties.
-
-EXHIBIT 1
-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
-
-    Unicode Data Files include all data files under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
-published in the Unicode Standard or under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/.
-
-    NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
-("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
-AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF
-YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA
-FILES OR SOFTWARE.
-
-    COPYRIGHT AND PERMISSION NOTICE
-
-    Copyright  1991-2007 Unicode, Inc. All rights reserved. Distributed under
-the Terms of Use in http://www.unicode.org/copyright.html.
-
-    Permission is hereby granted, free of charge, to any person obtaining a
-copy of the Unicode data files and any associated documentation (the "Data
-Files") or Unicode software and any associated documentation (the "Software")
-to deal in the Data Files or Software without restriction, including without
-limitation the rights to use, copy, modify, merge, publish, distribute, and/or
-sell copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that (a) the above
-copyright notice(s) and this permission notice appear with all copies of the
-Data Files or Software, (b) both the above copyright notice(s) and this
-permission notice appear in associated documentation, and (c) there is clear
-notice in each modified Data File or in the Software as well as in the
-documentation associated with the Data File(s) or Software that the data or
-software has been modified.
-
-    THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
-PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
-THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
-SOFTWARE.
-
-    Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written authorization
-of the copyright holder.
-
-    Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
-registered in some jurisdictions. All other trademarks and registered
-trademarks mentioned herein are the property of their respective owners.
-
-
-****************************
-icu
-****************************
-ICU
-
-There are two licenses here:
-- ICU license
-- Unicode Terms of Use
-------------------------------------------------------------------------------
-ICU License - ICU 1.8.1 and later
-From http://source.icu-project.org/repos/icu/icu/trunk/license.html
-X License (old version). For license pedigree see the
-ICU FAQ at http://icu-project.org/userguide/icufaq.html
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1995-2006 International Business Machines Corporation and others
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, and/or sell copies of the
-Software, and to permit persons to whom the Software is furnished to do so,
-provided that the above copyright notice(s) and this permission notice appear
-in all copies of the Software and that both the above copyright notice(s) and
-this permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
-LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
-
-All trademarks and registered trademarks mentioned herein are the property of their respective owners.
-
-------------------------------------------------------------------------------
-Unicode Terms of Use, from http://www.unicode.org/copyright.html
-
-    For the general privacy policy governing access to this site, see the
-Unicode Privacy Policy. For trademark usage, see the Unicode Consortium
-Trademarks and Logo Policy.
-    Notice to End User: Terms of Use
-    Carefully read the following legal agreement ("Agreement"). Use or copying
-of the software and/or codes provided with this agreement (The "Software")
-constitutes your acceptance of these terms
-
-       1. Unicode Copyright.
-             1. Copyright  1991-2007 Unicode, Inc. All rights reserved.
-             2. Certain documents and files on this website contain a legend
-indicating that "Modification is permitted." Any person is hereby authorized,
-without fee, to modify such documents and files to create derivative works
-conforming to the Unicode Standard, subject to Terms and Conditions herein.
-             3. Any person is hereby authorized, without fee, to view, use,
-reproduce, and distribute all documents and files solely for informational
-purposes in the creation of products supporting the Unicode Standard, subject
-to the Terms and Conditions herein.
-             4. Further specifications of rights and restrictions pertaining
-to the use of the particular set of data files known as the "Unicode Character
-Database" can be found in Exhibit 1.
-             5. Each version of the Unicode Standard has further specifications
-of rights and restrictions of use. For the book editions, these are found on
-the back of the title page. For the online edition, certain files (such as the
-PDF files for book chapters and code charts) carry specific restrictions. All
-other files are covered under these general Terms of Use.  To request a
-permission to reproduce any part of the Unicode Standard, please contact the
-Unicode Consortium.
-             6. No license is granted to "mirror" the Unicode website where a
-fee is charged for access to the "mirror" site.
-             7. Modification is not permitted with respect to this document.
-All copies of this document must be verbatim.
-       2. Restricted Rights Legend. Any technical data or software which is
-licensed to the United States of America, its agencies and/or instrumentalities
-under this Agreement is commercial technical data or commercial computer
-software developed exclusively at private expense as defined in FAR 2.101, or
-DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
-duplication, or disclosure by the Government is subject to restrictions as set
-forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995)
-and this Agreement. For Software, in accordance with FAR 12-212 or
-DFARS 227-7202, as applicable, use, duplication or disclosure by the Government
-is subject to the restrictions set forth in this Agreement.
-       3. Warranties and Disclaimers.
-             1. This publication and/or website may include technical or
-typographical errors or other inaccuracies . Changes are periodically added to
-the information herein; these changes will be incorporated in new editions of
-the publication and/or website. Unicode may make improvements and/or changes
-in the product(s) and/or program(s) described in this publication and/or
-website at any time.
-             2. If this file has been purchased on magnetic or optical media
-from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange
-of the defective media within ninety (90) days of original purchase.
-             3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR
-SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS,
-IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
-UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN
-THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR
-LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
-       4. Waiver of Damages. In no event shall Unicode or its licensors be
-liable for any special, incidental, indirect or consequential damages of any
-kind, or any damages whatsoever, whether or not Unicode was advised of the
-possibility of the damage, including, without limitation, those resulting from
-the following: loss of use, data or profits, in connection with the use,
-modification or distribution of this information or its derivatives.
-       5. Trademarks.
-             1. Unicode and the Unicode logo are registered trademarks of
-Unicode, Inc.
-             2. This site contains product names and corporate names of other
-companies. All product names and company names and logos mentioned herein are
-the trademarks or registered trademarks of their respective owners. Other
-products and corporate names mentioned herein which are trademarks of a third
-party are used only for explanation and for the owners' benefit and with no
-intent to infringe.
-             3. Use of third party products or information referred to herein
-is at the user\x{2019}s risk.
-       6. Miscellaneous.
-             1. Jurisdiction and Venue. This server is operated from a location
-in the State of California, United States of America. Unicode makes no
-representation that the materials are appropriate for use in other locations.
-If you access this server from other locations, you are responsible for
-compliance with local laws. This Agreement, all use of this site and any
-claims and damages resulting from use of this site are governed solely by the
-laws of the State of California without regard to any principles which would
-apply the laws of a different jurisdiction. The user agrees that any disputes
-regarding this site shall be resolved solely in the courts located in Santa
-Clara County, California. The user agrees said courts have personal
-jurisdiction and agree to waive any right to transfer the dispute to any other
-forum.
-             2. Modification by Unicode Unicode shall have the right to modify
-this Agreement at any time by posting it to this site. The user may not assign
-any part of this Agreement without Unicode\x{2019}s prior written consent.
-             3. Taxes. The user agrees to pay any taxes arising from access to
-this website or use of the information herein, except for those based on
-Unicode\x{2019}s net income.
-             4. Severability.  If any provision of this Agreement is declared
-invalid or unenforceable, the remaining provisions of this Agreement shall
-remain in effect.
-             5. Entire Agreement. This Agreement constitutes the entire
-agreement between the parties.
-
-EXHIBIT 1
-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
-
-    Unicode Data Files include all data files under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
-published in the Unicode Standard or under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/.
-
-    NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
-("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
-AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF
-YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA
-FILES OR SOFTWARE.
-
-    COPYRIGHT AND PERMISSION NOTICE
-
-    Copyright  1991-2007 Unicode, Inc. All rights reserved. Distributed under
-the Terms of Use in http://www.unicode.org/copyright.html.
-
-    Permission is hereby granted, free of charge, to any person obtaining a
-copy of the Unicode data files and any associated documentation (the "Data
-Files") or Unicode software and any associated documentation (the "Software")
-to deal in the Data Files or Software without restriction, including without
-limitation the rights to use, copy, modify, merge, publish, distribute, and/or
-sell copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that (a) the above
-copyright notice(s) and this permission notice appear with all copies of the
-Data Files or Software, (b) both the above copyright notice(s) and this
-permission notice appear in associated documentation, and (c) there is clear
-notice in each modified Data File or in the Software as well as in the
-documentation associated with the Data File(s) or Software that the data or
-software has been modified.
-
-    THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
-PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
-THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
-SOFTWARE.
-
-    Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written authorization
-of the copyright holder.
-
-    Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
-registered in some jurisdictions. All other trademarks and registered
-trademarks mentioned herein are the property of their respective owners.
-
-
-****************************
-java/android_libs/exoplayer
-****************************
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-****************************
-java/android_libs/protobuf_nano
-****************************
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Code generated by the Protocol Buffer compiler is owned by the owner
-of the input file used when generating it.  This code is not
-standalone and requires a support library to be linked with it.  This
-support library is itself covered by the above license.
-
-
-****************************
-javascript/jquery_ui
-****************************
-The MIT License (MIT)
-
-Copyright (c) 2015 jQuery Foundation and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-****************************
-javascript/jquery/v2_0_1
-****************************
-Copyright 2013 jQuery Foundation and other contributors
-http://jquery.com/
-
-https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt
-https://github.com/jquery/sizzle/blob/master/LICENSE
-
-jQuery and Sizzle are released under MIT Licence.
-
-The text is provided below.
-
-MIT License
-----
-
-Copyright 2013 jQuery Foundation and other contributors
-http://jquery.com/
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-****************************
-javascript/tracing_framework
-****************************
-Copyright 2012, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-java_src/android_libs/exoplayer
-****************************
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-****************************
-java_src/android_libs/protobuf_nano/v2
-****************************
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Code generated by the Protocol Buffer compiler is owned by the owner
-of the input file used when generating it.  This code is not
-standalone and requires a support library to be linked with it.  This
-support library is itself covered by the above license.
-
-
-****************************
-jpeg
-****************************
-(extracted from src/README)
-
-LEGAL ISSUES
-============
-
-In plain English:
-
-1. We don't promise that this software works.  (But if you find any bugs,
-   please let us know!)
-2. You can use this software for whatever you want.  You don't have to pay us.
-3. You may not pretend that you wrote this software.  If you use it in a
-   program, you must acknowledge somewhere in your documentation that
-   you've used the IJG code.
-
-In legalese:
-
-The authors make NO WARRANTY or representation, either express or implied,
-with respect to this software, its quality, accuracy, merchantability, or
-fitness for a particular purpose.  This software is provided "AS IS", and you,
-its user, assume the entire risk as to its quality and accuracy.
-
-This software is copyright (C) 1991-1998, Thomas G. Lane.
-All Rights Reserved except as specified below.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-software (or portions thereof) for any purpose, without fee, subject to these
-conditions:
-(1) If any part of the source code for this software is distributed, then this
-README file must be included, with this copyright and no-warranty notice
-unaltered; and any additions, deletions, or changes to the original files
-must be clearly indicated in accompanying documentation.
-(2) If only executable code is distributed, then the accompanying
-documentation must state that "this software is based in part on the work of
-the Independent JPEG Group".
-(3) Permission for use of this software is granted only if the user accepts
-full responsibility for any undesirable consequences; the authors accept
-NO LIABILITY for damages of any kind.
-
-These conditions apply to any software derived from or based on the IJG code,
-not just to the unmodified library.  If you use our work, you ought to
-acknowledge us.
-
-Permission is NOT granted for the use of any IJG author's name or company name
-in advertising or publicity relating to this software or products derived from
-it.  This software may be referred to only as "the Independent JPEG Group's
-software".
-
-We specifically permit and encourage the use of this software as the basis of
-commercial products, provided that all warranty or liability claims are
-assumed by the product vendor.
-
-
-ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
-sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
-ansi2knr.c is NOT covered by the above copyright and conditions, but instead
-by the usual distribution terms of the Free Software Foundation; principally,
-that you must include source code if you redistribute it.  (See the file
-ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part
-of any program generated from the IJG code, this does not limit you more than
-the foregoing paragraphs do.
-
-The Unix configuration script "configure" was produced with GNU Autoconf.
-It is copyright by the Free Software Foundation but is freely distributable.
-The same holds for its supporting scripts (config.guess, config.sub,
-ltconfig, ltmain.sh).  Another support script, install-sh, is copyright
-by M.I.T. but is also freely distributable.
-
-It appears that the arithmetic coding option of the JPEG spec is covered by
-patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding cannot
-legally be used without obtaining one or more licenses.  For this reason,
-support for arithmetic coding has been removed from the free JPEG software.
-(Since arithmetic coding provides only a marginal gain over the unpatented
-Huffman mode, it is unlikely that very many implementations will support it.)
-So far as we are aware, there are no patent restrictions on the remaining
-code.
-
-The IJG distribution formerly included code to read and write GIF files.
-To avoid entanglement with the Unisys LZW patent, GIF reading support has
-been removed altogether, and the GIF writer has been simplified to produce
-"uncompressed GIFs".  This technique does not use the LZW algorithm; the
-resulting GIF files are larger than usual, but are readable by all standard
-GIF decoders.
-
-We are required to state that
-    "The Graphics Interchange Format(c) is the Copyright property of
-    CompuServe Incorporated.  GIF(sm) is a Service Mark property of
-    CompuServe Incorporated."
-
-
-****************************
-libogg
-****************************
-Copyright (c) 2002, Xiph.org Foundation
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-- Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-- Neither the name of the Xiph.org Foundation nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-****************************
-libunwind
-****************************
-Copyright (c) 2002 Hewlett-Packard Co.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-****************************
-libvorbis
-****************************
-Copyright (c) 2002-2008 Xiph.org Foundation
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-- Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-- Neither the name of the Xiph.org Foundation nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-libxcb
-****************************
-Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated
-documentation files (the "Software"), to deal in the
-Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors
-or their institutions shall not be used in advertising or
-otherwise to promote the sale, use or other dealings in this
-Software without prior written authorization from the
-authors.
-
-
-****************************
-libxml
-****************************
-Libxml2, an XML C Parser
-
-Except where otherwise noted in the source code (e.g. the files hash.c,
-list.c and the trio files, which are covered by a similar licence but
-with different Copyright notices) all the files are:
-
- Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
---------------------------------------------------------------------
-
-Copyright (C) 2000,2012 Bjorn Reese and Daniel Veillard.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-Author: breese@users.sourceforge.net
-
-(taken from hash.c)
-
---------------------------------------------------------------------
-
- Copyright (C) 2000 Gary Pennington and Daniel Veillard.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-Author: Gary.Pennington@uk.sun.com
-
-(taken from list.c)
-
---------------------------------------------------------------------
-
-Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-(taken from trio.h and trio.c)
-
---------------------------------------------------------------------
-
-Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-(taken from triodef.h, trionan.h, and trionan.c)
-
---------------------------------------------------------------------
-
-Copyright (C) 2000 Bjorn Reese and Daniel Stenberg.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-(taken from triop.h)
-
---------------------------------------------------------------------
-
-Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
-(taken from triostr.h and triostr.c)
-
-*************************************************************************
-
-http://ctrio.sourceforge.net/
-
-*************************************************************************
-
-
-****************************
-lodepng
-****************************
-LodePNG
-
-Copyright (c) 2005-2013 Lode Vandevenne
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-    1. The origin of this software must not be misrepresented; you must not
-    claim that you wrote the original software. If you use this software
-    in a product, an acknowledgment in the product documentation would be
-    appreciated but is not required.
-
-    2. Altered source versions must be plainly marked as such, and must not be
-    misrepresented as being the original software.
-
-    3. This notice may not be removed or altered from any source
-    distribution.
-
-
-****************************
-minizip
-****************************
-zlib
-
-(extracted from README, except for match.S)
-
-Copyright notice:
-
- (C) 1995-2004 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-
-(extracted from match.S, for match.S only)
-
- Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
-
- This software is provided 'as-is', without any express or implied
- warranty.  In no event will the author be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
-    claim that you wrote the original software. If you use this software
-    in a product, an acknowledgment in the product documentation would be
-    appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
-    misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
-
-****************************
-mongoose
-****************************
-Copyright (c) 2004-2013 Sergey Lyubka
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-****************************
-objective_c/gtm_session_fetcher
-****************************
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-****************************
-openctm
-****************************
-Copyright (c) 2009-2010 Marcus Geelnard
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-    1. The origin of this software must not be misrepresented; you must not
-    claim that you wrote the original software. If you use this software
-    in a product, an acknowledgment in the product documentation would be
-    appreciated but is not required.
-
-    2. Altered source versions must be plainly marked as such, and must not
-    be misrepresented as being the original software.
-
-    3. This notice may not be removed or altered from any source
-    distribution.
-
-
-****************************
-OpenCV
-****************************
-IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
-
-By downloading, copying, installing or using the software you agree to this license.
-If you do not agree to this license, do not download, install,
-copy or use the software.
-
-
-                       Intel License Agreement
-               For Open Source Computer Vision Library
-
-Copyright (C) 2000, 2001, Intel Corporation, all rights reserved.
-Copyright (C) 2013, OpenCV Foundation, all rights reserved.
-Third party copyrights are property of their respective owners.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-  * Redistribution's of source code must retain the above copyright notice,
-    this list of conditions and the following disclaimer.
-
-  * Redistribution's in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-
-  * The name of Intel Corporation may not be used to endorse or promote products
-    derived from this software without specific prior written permission.
-
-This software is provided by the copyright holders and contributors "as is" and
-any express or implied warranties, including, but not limited to, the implied
-warranties of merchantability and fitness for a particular purpose are disclaimed.
-In no event shall the Intel Corporation or contributors be liable for any direct,
-indirect, incidental, special, exemplary, or consequential damages
-(including, but not limited to, procurement of substitute goods or services;
-loss of use, data, or profits; or business interruption) however caused
-and on any theory of liability, whether in contract, strict liability,
-or tort (including negligence or otherwise) arising in any way out of
-the use of this software, even if advised of the possibility of such damage.
-
-****************************
-openssl
-****************************
-BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL
-licensing. Files that are completely new have a Google copyright and an ISC
-license. This license is reproduced at the bottom of this file.
-
-Contributors to BoringSSL are required to follow the CLA rules for Chromium:
-https://cla.developers.google.com/clas
-
-Some files from Intel are under yet another license, which is also included
-underneath.
-
-The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the
-OpenSSL License and the original SSLeay license apply to the toolkit. See below
-for the actual license texts. Actually both licenses are BSD-style Open Source
-licenses. In case of any license issues related to OpenSSL please contact
-openssl-core@openssl.org.
-
-  OpenSSL License
-  ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-ISC license used for completely new code in BoringSSL:
-
-/* Copyright (c) 2015, Google Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-
-
-Some files from Intel carry the following license:
-
-# Copyright (c) 2012, Intel Corporation
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# *  Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# *  Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the
-#    distribution.
-#
-# *  Neither the name of the Intel Corporation nor the names of its
-#    contributors may be used to endorse or promote products derived from
-#    this software without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-openssl/boringssl
-****************************
-BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL
-licensing. Files that are completely new have a Google copyright and an ISC
-license. This license is reproduced at the bottom of this file.
-
-Contributors to BoringSSL are required to follow the CLA rules for Chromium:
-https://cla.developers.google.com/clas
-
-Some files from Intel are under yet another license, which is also included
-underneath.
-
-The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the
-OpenSSL License and the original SSLeay license apply to the toolkit. See below
-for the actual license texts. Actually both licenses are BSD-style Open Source
-licenses. In case of any license issues related to OpenSSL please contact
-openssl-core@openssl.org.
-
-  OpenSSL License
-  ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-ISC license used for completely new code in BoringSSL:
-
-/* Copyright (c) 2015, Google Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-
-
-Some files from Intel carry the following license:
-
-# Copyright (c) 2012, Intel Corporation
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# *  Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# *  Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the
-#    distribution.
-#
-# *  Neither the name of the Intel Corporation nor the names of its
-#    contributors may be used to endorse or promote products derived from
-#    this software without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-pcre
-****************************
-PCRE LICENCE
-------------
-
-PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
-Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
-specified below. The documentation for PCRE, supplied in the "doc"
-directory, is distributed under the same terms as the software itself. The data
-in the testdata directory is not copyrighted and is in the public domain.
-
-The basic library functions are written in C and are freestanding. Also
-included in the distribution is a set of C++ wrapper functions, and a
-just-in-time compiler that can be used to optimize pattern matching. These
-are both optional features that can be omitted when the library is built.
-
-
-THE BASIC LIBRARY FUNCTIONS
----------------------------
-
-Written by:       Philip Hazel
-Email local part: ph10
-Email domain:     cam.ac.uk
-
-University of Cambridge Computing Service,
-Cambridge, England.
-
-Copyright (c) 1997-2015 University of Cambridge
-All rights reserved.
-
-
-PCRE JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2010-2015 Zoltan Herczeg
-All rights reserved.
-
-
-STACK-LESS JUST-IN-TIME COMPILER
---------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2009-2015 Zoltan Herczeg
-All rights reserved.
-
-
-THE C++ WRAPPER FUNCTIONS
--------------------------
-
-Contributed by:   Google Inc.
-
-Copyright (c) 2007-2012, Google Inc.
-All rights reserved.
-
-
-THE "BSD" LICENCE
------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the name of the University of Cambridge nor the name of Google
-      Inc. nor the names of their contributors may be used to endorse or
-      promote products derived from this software without specific prior
-      written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-End
-
-
-****************************
-pffft
-****************************
-Copyright (c) 2013  Julien Pommier ( pommier@modartt.com )
-
-Based on original fortran 77 code from FFTPACKv4 from NETLIB,
-authored by Dr Paul Swarztrauber of NCAR, in 1985.
-
-As confirmed by the NCAR fftpack software curators, the following
-FFTPACKv5 license applies to FFTPACKv4 sources. My changes are
-released under the same terms.
-
-FFTPACK license:
-
-http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html
-
-Copyright (c) 2004 the University Corporation for Atmospheric
-Research ("UCAR"). All rights reserved. Developed by NCAR's
-Computational and Information Systems Laboratory, UCAR,
-www.cisl.ucar.edu.
-
-Redistribution and use of the Software in source and binary forms,
-with or without modification, is permitted provided that the
-following conditions are met:
-
-- Neither the names of NCAR's Computational and Information Systems
-Laboratory, the University Corporation for Atmospheric Research,
-nor the names of its sponsors or contributors may be used to
-endorse or promote products derived from this Software without
-specific prior written permission.
-
-- Redistributions of source code must retain the above copyright
-notices, this list of conditions, and the disclaimer below.
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions, and the disclaimer below in the
-documentation and/or other materials provided with the
-distribution.
-
-THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-
-****************************
-png
-****************************
-libpng
-
-This copy of the libpng notices is provided for your convenience.  In case of
-any discrepancy between this copy and the notices in the file png.h that is
-included in the libpng distribution, the latter shall prevail.
-
-COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
-
-If you modify libpng you may insert additional notices immediately following
-this sentence.
-
-libpng versions 1.2.6, August 15, 2004, through 1.2.27, April 29, 2008, are
-Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-1.2.5
-with the following individual added to the list of Contributing Authors
-
-   Cosmin Truta
-
-libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
-Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-1.0.6
-with the following individuals added to the list of Contributing Authors
-
-   Simon-Pierre Cadieux
-   Eric S. Raymond
-   Gilles Vollant
-
-and with the following additions to the disclaimer:
-
-   There is no warranty against interference with your enjoyment of the
-   library or against infringement.  There is no warranty that our
-   efforts or the library will fulfill any of your particular purposes
-   or needs.  This library is provided with all faults, and the entire
-   risk of satisfactory quality, performance, accuracy, and effort is with
-   the user.
-
-libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
-Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-0.96,
-with the following individuals added to the list of Contributing Authors:
-
-   Tom Lane
-   Glenn Randers-Pehrson
-   Willem van Schaik
-
-libpng versions 0.89, June 1996, through 0.96, May 1997, are
-Copyright (c) 1996, 1997 Andreas Dilger
-Distributed according to the same disclaimer and license as libpng-0.88,
-with the following individuals added to the list of Contributing Authors:
-
-   John Bowler
-   Kevin Bracey
-   Sam Bushell
-   Magnus Holmgren
-   Greg Roelofs
-   Tom Tanner
-
-libpng versions 0.5, May 1995, through 0.88, January 1996, are
-Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
-
-For the purposes of this copyright and license, "Contributing Authors"
-is defined as the following set of individuals:
-
-   Andreas Dilger
-   Dave Martindale
-   Guy Eric Schalnat
-   Paul Schmidt
-   Tim Wegner
-
-The PNG Reference Library is supplied "AS IS".  The Contributing Authors
-and Group 42, Inc. disclaim all warranties, expressed or implied,
-including, without limitation, the warranties of merchantability and of
-fitness for any purpose.  The Contributing Authors and Group 42, Inc.
-assume no liability for direct, indirect, incidental, special, exemplary,
-or consequential damages, which may result from the use of the PNG
-Reference Library, even if advised of the possibility of such damage.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-source code, or portions hereof, for any purpose, without fee, subject
-to the following restrictions:
-
-1. The origin of this source code must not be misrepresented.
-
-2. Altered versions must be plainly marked as such and must not
-   be misrepresented as being the original source.
-
-3. This Copyright notice may not be removed or altered from any
-   source or altered source distribution.
-
-The Contributing Authors and Group 42, Inc. specifically permit, without
-fee, and encourage the use of this source code as a component to
-supporting the PNG file format in commercial products.  If you use this
-source code in a product, acknowledgment is not required but would be
-appreciated.
-
-
-A "png_get_copyright" function is available, for convenient use in "about"
-boxes and the like:
-
-   printf("%s",png_get_copyright(NULL));
-
-Also, the PNG logo (in PNG format, of course) is supplied in the
-files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
-
-Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
-certification mark of the Open Source Initiative.
-
-Glenn Randers-Pehrson
-glennrp at users.sourceforge.net
-April 29, 2008
-
-
-****************************
-protobuf
-****************************
-Copyright 2008, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Code generated by the Protocol Buffer compiler is owned by the owner
-of the input file used when generating it.  This code is not
-standalone and requires a support library to be linked with it.  This
-support library is itself covered by the above license.
-
-
-****************************
-re2
-****************************
-// Copyright (c) 2009 The RE2 Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-****************************
-stblib
-****************************
-        License for STBLIB - A collection of public-domain single-file C/C++
-        libraries, primarily aimed at game developers.
-
-The compilation and test files are licensed under the MIT license, but the
-single-file libraries themselves are in the public domain (free for use and
-modification for any purpose without legal friction).
-
-The MIT License (MIT)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
+
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+                               and Clark Cooper
+Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
 
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
 
-****************************
-stl
-****************************
-SGI STL
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
 
-The STL portion of GNU libstdc++ that is used with gcc3 and gcc4 is licensed
-under the GPL, with the following exception:
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
-# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. +
+FlatBuffers +homepage +
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
 
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 
-****************************
-tinyxml
-****************************
-TinyXml is released under the zlib license:
+   1. Definitions.
 
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any
-damages arising from the use of this software.
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
 
-Permission is granted to anyone to use this software for any
-purpose, including commercial applications, and to alter it and
-redistribute it freely, subject to the following restrictions:
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
 
-1. The origin of this software must not be misrepresented; you must
-not claim that you wrote the original software. If you use this
-software in a product, an acknowledgment in the product documentation
-would be appreciated but is not required.
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
 
-2. Altered source versions must be plainly marked as such, and
-must not be misrepresented as being the original software.
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
 
-3. This notice may not be removed or altered from any source
-distribution.
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
 
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
 
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
 
-****************************
-tz
-****************************
-With a few exceptions, all files in the tz code and data (including
-this one) are in the public domain.  The exceptions are tzcode's
-date.c, newstrftime.3, and strftime.c, which contain material derived
-from BSD and which use the BSD 3-clause license.
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
 
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
 
-****************************
-utf
-****************************
-UTF-8 Library
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
 
-The authors of this software are Rob Pike and Ken Thompson.
-             Copyright (c) 1998-2002 by Lucent Technologies.
-Permission to use, copy, modify, and distribute this software for any
-purpose without fee is hereby granted, provided that this entire notice
-is included in all copies of any software which is or includes a copy
-or modification of this software and in all copies of the supporting
-documentation for such software.
-THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY
-REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
-OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
-
-
-****************************
-xmpmeta
-****************************
-xmpmeta. A fast XMP metadata parsing and writing library.
-Copyright 2016 Google Inc. All rights reserved.
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
 
-* Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-* Neither the name of Google Inc. nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
 
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
 
-****************************
-Xorg
-****************************
-The following is the 'standard copyright' agreed upon by most contributors,
-and is currently the canonical license preferred by the X.Org Foundation.
-This is a slight variant of the common MIT license form published by the
-Open Source Initiative at http://www.opensource.org/licenses/mit-license.php
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
 
-Copyright holders of new code should use this license statement where
-possible, and insert their name to this list.  Please sort by surname
-for people, and by the full name for other entities (e.g.  Juliusz
-Chroboczek sorts before Intel Corporation sorts before Daniel Stone).
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
 
-See each individual source file or directory for the license that applies
-to that file.
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
 
-Copyright (C) 2003-2006,2008 Jamey Sharp, Josh Triplett
-Copyright © 2009 Red Hat, Inc.
-Copyright 1990-1992,1999,2000,2004,2009,2010 Oracle and/or its affiliates.
-All rights reserved.
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
 
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
 
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
 
- ----------------------------------------------------------------------
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
 
-The following licenses are 'legacy' - usually MIT/X11 licenses with the name
-of the copyright holder(s) in the license statement:
+   END OF TERMS AND CONDITIONS
 
-Copyright 1984-1994, 1998 The Open Group
+   APPENDIX: How to apply the Apache License to your work.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+   Copyright 2014 Google Inc.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
 
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
+       http://www.apache.org/licenses/LICENSE-2.0
 
-X Window System is a trademark of The Open Group.
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
- ---------------------------------------- -Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium -Copyright 2000 The XFree86 Project, Inc. +
+Flot Javascript/JQuery library for creating graphs +homepage +
+
Copyright (c) 2007-2013 IOLA and Ole Laursen
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+ -Except as contained in this notice, the name of the X Consortium shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from the X Consortium. +
+FreeType +homepage +
+
                    The FreeType Project LICENSE
+                    ----------------------------
 
-Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
-Digital Equipment Corporation
+                            2006-Jan-27
 
-Portions Copyright 1990, 1991 by Tektronix, Inc.
+                    Copyright 1996-2002, 2006 by
+          David Turner, Robert Wilhelm, and Werner Lemberg
 
-Permission to use, copy, modify and distribute this documentation for
-any purpose and without fee is hereby granted, provided that the above
-copyright notice appears in all copies and that both that copyright notice
-and this permission notice appear in all copies, and that the names of
-Digital and Tektronix not be used in in advertising or publicity pertaining
-to this documentation without specific, written prior permission.
-Digital and Tektronix makes no representations about the suitability
-of this documentation for any purpose.
-It is provided ``as is'' without express or implied warranty.
 
-    ----------------------------------------
 
-Copyright (c) 1999-2000  Free Software Foundation, Inc.
+Introduction
+============
 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+  The FreeType  Project is distributed in  several archive packages;
+  some of them may contain, in addition to the FreeType font engine,
+  various tools and  contributions which rely on, or  relate to, the
+  FreeType Project.
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+  This  license applies  to all  files found  in such  packages, and
+  which do not  fall under their own explicit  license.  The license
+  affects  thus  the  FreeType   font  engine,  the  test  programs,
+  documentation and makefiles, at the very least.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-FREE SOFTWARE FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the Free Software Foundation
-shall not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization from the
-Free Software Foundation.
-
-    ----------------------------------------
-
-Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
-  All Rights Reserved
-
-This file is a component of an X Window System-specific implementation
-of Xcms based on the TekColor Color Management System.  TekColor is a
-trademark of Tektronix, Inc.  The term "TekHVC" designates a particular
-color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
-foreign patents pending).  Permission is hereby granted to use, copy,
-modify, sell, and otherwise distribute this software and its
-documentation for any purpose and without fee, provided that:
-
-1. This copyright, permission, and disclaimer notice is reproduced in
-   all copies of this software and any modification thereof and in
-   supporting documentation;
-2. Any color-handling application which displays TekHVC color
-   cooordinates identifies these as TekHVC color coordinates in any
-   interface that displays these coordinates and in any associated
-   documentation;
-3. The term "TekHVC" is always used, and is only used, in association
-   with the mathematical derivations of the TekHVC Color Space,
-   including those provided in this file and any equivalent pathways and
-   mathematical derivations, regardless of digital (e.g., floating point
-   or integer) representation.
-
-Tektronix makes no representation about the suitability of this software
-for any purpose.  It is provided "as is" and with all faults.
-
-TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
-INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE.  IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
-
-    ----------------------------------------
-
-(c) Copyright 1995 FUJITSU LIMITED
-This is source code modified by FUJITSU LIMITED under the Joint
-Development Agreement for the CDE/Motif PST.
-
-    ----------------------------------------
-
-Copyright 1992 by Oki Technosystems Laboratory, Inc.
-Copyright 1992 by Fuji Xerox Co., Ltd.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Oki Technosystems
-Laboratory and Fuji Xerox not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-Oki Technosystems Laboratory and Fuji Xerox make no representations
-about the suitability of this software for any purpose.  It is provided
-"as is" without express or implied warranty.
-
-OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS
-LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
-    ----------------------------------------
-
-Copyright 1990, 1991, 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
+  (Independent JPEG  Group) licenses, which  all encourage inclusion
+  and  use of  free  software in  commercial  and freeware  products
+  alike.  As a consequence, its main points are that:
 
-    ----------------------------------------
+    o We don't promise that this software works. However, we will be
+      interested in any kind of bug reports. (`as is' distribution)
 
+    o You can  use this software for whatever you  want, in parts or
+      full form, without having to pay us. (`royalty-free' usage)
 
-Copyright (c) 1995 David E. Wexelblat.  All rights reserved
+    o You may not pretend that  you wrote this software.  If you use
+      it, or  only parts of it,  in a program,  you must acknowledge
+      somewhere  in  your  documentation  that  you  have  used  the
+      FreeType code. (`credits')
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+  We  specifically  permit  and  encourage  the  inclusion  of  this
+  software, with  or without modifications,  in commercial products.
+  We  disclaim  all warranties  covering  The  FreeType Project  and
+  assume no liability related to The FreeType Project.
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL DAVID E. WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+  Finally,  many  people  asked  us  for  a  preferred  form  for  a
+  credit/disclaimer to use in compliance with this license.  We thus
+  encourage you to use the following text:
 
-Except as contained in this notice, the name of David E. Wexelblat shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from David E. Wexelblat.
+   """
+    Portions of this software are copyright � <year> The FreeType
+    Project (www.freetype.org).  All rights reserved.
+   """
 
-    ----------------------------------------
+  Please replace <year> with the value from the FreeType version you
+  actually use.
 
-Copyright 1990, 1991 by OMRON Corporation
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name OMRON not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission.  OMRON makes no representations
-about the suitability of this software for any purpose.  It is provided
-"as is" without express or implied warranty.
+Legal Terms
+===========
 
-OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL OMRON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+0. Definitions
+--------------
 
-    ----------------------------------------
+  Throughout this license,  the terms `package', `FreeType Project',
+  and  `FreeType  archive' refer  to  the  set  of files  originally
+  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
+  Werner Lemberg) as the `FreeType Project', be they named as alpha,
+  beta or final release.
 
-Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
-Digital Equipment Corporation
+  `You' refers to  the licensee, or person using  the project, where
+  `using' is a generic term including compiling the project's source
+  code as  well as linking it  to form a  `program' or `executable'.
+  This  program is  referred to  as  `a program  using the  FreeType
+  engine'.
 
-Portions Copyright 1990, 1991 by Tektronix, Inc
+  This  license applies  to all  files distributed  in  the original
+  FreeType  Project,   including  all  source   code,  binaries  and
+  documentation,  unless  otherwise  stated   in  the  file  in  its
+  original, unmodified form as  distributed in the original archive.
+  If you are  unsure whether or not a particular  file is covered by
+  this license, you must contact us to verify this.
 
-Rewritten for X.org by Chris Lee <clee@freedesktop.org>
+  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
+  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
+  specified below.
 
-Permission to use, copy, modify, distribute, and sell this documentation
-for any purpose and without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-Chris Lee makes no representations about the suitability for any purpose
-of the information in this document.  It is provided \`\`as-is'' without
-express or implied warranty.
-
-    ----------------------------------------
-
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1994 by FUJITSU LIMITED
-Copyright 1994 by Sony Corporation
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital, FUJITSU
-LIMITED and Sony Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-DIGITAL, FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL, FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+1. No Warranty
+--------------
 
-    ----------------------------------------
+  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
+  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
+  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
+  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
+  USE, OF THE FREETYPE PROJECT.
 
+2. Redistribution
+-----------------
 
-Copyright 1991 by the Open Software Foundation
+  This  license  grants  a  worldwide, royalty-free,  perpetual  and
+  irrevocable right  and license to use,  execute, perform, compile,
+  display,  copy,   create  derivative  works   of,  distribute  and
+  sublicense the  FreeType Project (in  both source and  object code
+  forms)  and  derivative works  thereof  for  any  purpose; and  to
+  authorize others  to exercise  some or all  of the  rights granted
+  herein, subject to the following conditions:
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Open Software Foundation
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  Open Software
-Foundation makes no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+    o Redistribution of  source code  must retain this  license file
+      (`FTL.TXT') unaltered; any  additions, deletions or changes to
+      the original  files must be clearly  indicated in accompanying
+      documentation.   The  copyright   notices  of  the  unaltered,
+      original  files must  be  preserved in  all  copies of  source
+      files.
 
-    ----------------------------------------
+    o Redistribution in binary form must provide a  disclaimer  that
+      states  that  the software is based in part of the work of the
+      FreeType Team,  in  the  distribution  documentation.  We also
+      encourage you to put an URL to the FreeType web page  in  your
+      documentation, though this isn't mandatory.
 
-Copyright 1990, 1991, 1992,1993, 1994 by FUJITSU LIMITED
-Copyright 1993, 1994                  by Sony Corporation
+  These conditions  apply to any  software derived from or  based on
+  the FreeType Project,  not just the unmodified files.   If you use
+  our work, you  must acknowledge us.  However, no  fee need be paid
+  to us.
 
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of FUJITSU LIMITED and Sony Corporation
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  FUJITSU LIMITED and
-Sony Corporation makes no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
+3. Advertising
+--------------
 
-FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL FUJITSU LIMITED OR SONY CORPORATION BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
-USE OR PERFORMANCE OF THIS SOFTWARE.
+  Neither the  FreeType authors and  contributors nor you  shall use
+  the name of the  other for commercial, advertising, or promotional
+  purposes without specific prior written permission.
 
-    ----------------------------------------
+  We suggest,  but do not require, that  you use one or  more of the
+  following phrases to refer  to this software in your documentation
+  or advertising  materials: `FreeType Project',  `FreeType Engine',
+  `FreeType library', or `FreeType Distribution'.
 
-Copyright (c) 1993, 1995 by Silicon Graphics Computer Systems, Inc.
+  As  you have  not signed  this license,  you are  not  required to
+  accept  it.   However,  as  the FreeType  Project  is  copyrighted
+  material, only  this license, or  another one contracted  with the
+  authors, grants you  the right to use, distribute,  and modify it.
+  Therefore,  by  using,  distributing,  or modifying  the  FreeType
+  Project, you indicate that you understand and accept all the terms
+  of this license.
 
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-    ----------------------------------------
-
-Copyright 1991, 1992, 1993, 1994 by FUJITSU LIMITED
-Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.  FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose.  It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
+4. Contacts
+-----------
 
-    ----------------------------------------
-
-Copyright 1992, 1993 by FUJITSU LIMITED
-Copyright 1993 by Fujitsu Open Systems Solutions, Inc.
-Copyright 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED,
-Fujitsu Open Systems Solutions, Inc. and Sony Corporation  not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-FUJITSU LIMITED, Fujitsu Open Systems Solutions, Inc. and
-Sony Corporation make no representations about the suitability of
-this software for any purpose.  It is provided "as is" without
-express or implied warranty.
-
-FUJITSU LIMITED, FUJITSU OPEN SYSTEMS SOLUTIONS, INC. AND SONY
-CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL FUJITSU OPEN SYSTEMS SOLUTIONS, INC., FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
-    ----------------------------------------
-
-Copyright 1987, 1988, 1990, 1993 by Digital Equipment Corporation,
-Maynard, Massachusetts,
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
+  There are two mailing lists related to FreeType:
 
-    ----------------------------------------
+    o freetype@nongnu.org
 
-Copyright 1993 by SunSoft, Inc.
-Copyright 1999-2000 by Bruno Haible
+      Discusses general use and applications of FreeType, as well as
+      future and  wanted additions to the  library and distribution.
+      If  you are looking  for support,  start in  this list  if you
+      haven't found anything to help you in the documentation.
 
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the names of SunSoft, Inc. and
-Bruno Haible not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.  SunSoft, Inc. and Bruno Haible make no representations
-about the suitability of this software for any purpose.  It is
-provided "as is" without express or implied warranty.
-
-SunSoft Inc. AND Bruno Haible DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL SunSoft, Inc. OR Bruno Haible BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+    o freetype-devel@nongnu.org
 
-    ----------------------------------------
+      Discusses bugs,  as well  as engine internals,  design issues,
+      specific licenses, porting, etc.
 
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the TOSHIBA Corp.
+  Our home page can be found at
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Open Software Foundation and TOSHIBA
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  Open Software
-Foundation and TOSHIBA make no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-OPEN SOFTWARE FOUNDATION AND TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR TOSHIBA BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+    http://www.freetype.org
 
-    ----------------------------------------
 
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
+--- end of FTL.TXT ---
+
+
+
- All Rights Reserved -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name Wyse not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. +
+GifPlayer Animated GIF Library +homepage +
+
                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
 
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 
-    ----------------------------------------
+   1. Definitions.
 
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
 
-Copyright 1991 by the Open Software Foundation
-Copyright 1993, 1994 by the Sony Corporation
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of Open Software Foundation and
-Sony Corporation not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-Open Software Foundation and Sony Corporation make no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-OPEN SOFTWARE FOUNDATION AND SONY CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OPEN
-SOFTWARE FOUNDATIONN OR SONY CORPORATION BE LIABLE FOR ANY SPECIAL,
-INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
 
-    ----------------------------------------
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
 
-Copyright 1992, 1993 by FUJITSU LIMITED
-Copyright 1993 by Fujitsu Open Systems Solutions, Inc.
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
 
-Permission to use, copy, modify, distribute and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED and
-Fujitsu Open Systems Solutions, Inc. not be used in advertising or
-publicity pertaining to distribution of the software without specific,
-written prior permission.
-FUJITSU LIMITED and Fujitsu Open Systems Solutions, Inc. makes no
-representations about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
 
-FUJITSU LIMITED AND FUJITSU OPEN SYSTEMS SOLUTIONS, INC. DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU OPEN SYSTEMS
-SOLUTIONS, INC. AND FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-OF THIS SOFTWARE.
-
-    ----------------------------------------
-
-Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Sony Corporation
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Sony Corporation makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without
-express or implied warranty.
-
-SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
 
-    ----------------------------------------
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
 
-Copyright 1986, 1998  The Open Group
-Copyright (c) 2000  The XFree86 Project, Inc.
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM OR THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
 
-Except as contained in this notice, the name of the X Consortium or of the
-XFree86 Project shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the X Consortium and the XFree86 Project.
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
 
-    ----------------------------------------
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
 
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
-                     and Nippon Telegraph and Telephone Corporation
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the FUJITSU LIMITED
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, NTT, and
-Open Software Foundation not be used in advertising or publicity
-pertaining to distribution of the software without specific,
-written prior permission. OMRON, NTT Software, NTT, and Open Software
-Foundation make no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-OMRON, NTT SOFTWARE, NTT, AND OPEN SOFTWARE FOUNDATION
-DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
-SHALL OMRON, NTT SOFTWARE, NTT, OR OPEN SOFTWARE FOUNDATION BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
 
-    ----------------------------------------
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
 
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca,
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
 
-                        All Rights Reserved
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
 
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
 
-DIGITAL AND WYSE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DIGITAL OR WYSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
 
-    ----------------------------------------
-
-
-Copyright 1991, 1992 by Fuji Xerox Co., Ltd.
-Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Fuji Xerox,
-FUJITSU LIMITED not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. Fuji Xerox, FUJITSU LIMITED make no representations
-about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJI XEROX, FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJI XEROX,
-FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
-OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
 
-    ----------------------------------------
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
 
-Copyright 2006 Josh Triplett
+   END OF TERMS AND CONDITIONS
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+   APPENDIX: How to apply the Apache License to your work.
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+   Copyright [yyyy] [name of copyright owner]
 
-    ----------------------------------------
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
 
-(c) Copyright 1996 by Sebastien Marineau and Holger Veit
-      <marineau@genie.uottawa.ca>
-                     <Holger.Veit@gmd.de>
+       http://www.apache.org/licenses/LICENSE-2.0
 
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
-The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +
+Google Cache Invalidation API +homepage +
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
 
-Except as contained in this notice, the name of Sebastien Marineau or Holger Veit
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Holger Veit or
-Sebastien Marineau.
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 
-    ----------------------------------------
+   1. Definitions.
 
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
-                     and Nippon Telegraph and Telephone Corporation
-Copyright 1991 by the Open Software Foundation
-Copyright 1993 by the TOSHIBA Corp.
-Copyright 1993, 1994 by Sony Corporation
-Copyright 1993, 1994 by the FUJITSU LIMITED
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, NTT, Open
-Software Foundation, and Sony Corporation not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. OMRON, NTT Software, NTT, Open Software
-Foundation, and Sony Corporation  make no representations about the
-suitability of this software for any purpose.  It is provided "as is"
-without express or implied warranty.
-
-OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, AND SONY
-CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
-SHALL OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, OR SONY
-CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
 
-    ----------------------------------------
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
 
-Copyright 2000 by Bruno Haible
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
 
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Bruno Haible not
-be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  Bruno Haible
-makes no representations about the suitability of this software for
-any purpose.  It is provided "as is" without express or implied
-warranty.
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
 
-Bruno Haible DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-NO EVENT SHALL Bruno Haible BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
 
-    ----------------------------------------
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
 
-Copyright © 2003 Keith Packard
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission.  Keith Packard makes no
-representations about the suitability of this software for any purpose.  It
-is provided "as is" without express or implied warranty.
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
 
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
 
-    ----------------------------------------
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
 
-Copyright (c) 2007-2009, Troy D. Hanson
-All rights reserved.
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
 
-Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
 
-    ----------------------------------------
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
 
-Copyright 1992, 1993 by TOSHIBA Corp.
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
 
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of TOSHIBA not be used in advertising
-or publicity pertaining to distribution of the software without specific,
-written prior permission. TOSHIBA make no representations about the
-suitability of this software for any purpose.  It is provided "as is"
-without express or implied warranty.
-
-TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
 
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
 
-    ----------------------------------------
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
 
-Copyright IBM Corporation 1993
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
 
-All Rights Reserved
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
 
-License to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of IBM not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
-NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL
-IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
 
-    ----------------------------------------
+   END OF TERMS AND CONDITIONS
 
-Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
-                     and Nippon Telegraph and Telephone Corporation
+   APPENDIX: How to apply the Apache License to your work.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the names of OMRON, NTT Software, and NTT
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. OMRON, NTT Software,
-and NTT make no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-OMRON, NTT SOFTWARE, AND NTT, DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL OMRON, NTT SOFTWARE, OR NTT, BE
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
 
+   Copyright [yyyy] [name of copyright owner]
 
-****************************
-zlib
-****************************
-(extracted from README, except for match.S)
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
 
-Copyright notice:
+       http://www.apache.org/licenses/LICENSE-2.0
 
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
- This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: +
+Google Cardboard +homepage +
+
   Copyright (c) 2014, Google Inc.
 
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
 
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
 
-If you use the zlib library in a product, we would appreciate *not* receiving
-lengthy legal documents to sign.  The sources are provided for free but without
-warranty of any kind.  The library has been entirely written by Jean-loup
-Gailly and Mark Adler; it does not include third-party code.
 
-If you redistribute modified sources, we would appreciate that you include in
-the file ChangeLog history information documenting your changes.  Please read
-the FAQ for more information on the distribution of modified source versions.
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
 
-(extracted from match.S, for match.S only)
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 
-Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
+   1. Definitions.
 
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
 
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
 
-1. The origin of this software must not be misrepresented; you must not
-  claim that you wrote the original software. If you use this software
-  in a product, an acknowledgment in the product documentation would be
-  appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
 
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
 
-****************************
-googleurl
-****************************
-Copyright 2007, Google Inc.
-All rights reserved.
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
 
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
 
--------------------------------------------------------------------------------
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
 
-The file url_parse.cc is based on nsURLParsers.cc from Mozilla. This file is
-licensed separately as follows:
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
 
-The contents of this file are subject to the Mozilla Public License Version
-1.1 (the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-http://www.mozilla.org/MPL/
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
 
-The Original Code is mozilla.org code.
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
 
-The Initial Developer of the Original Code is
-Netscape Communications Corporation.
-Portions created by the Initial Developer are Copyright (C) 1998
-the Initial Developer. All Rights Reserved.
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
 
-Contributor(s):
-  Darin Fisher (original author)
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
 
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
 
--------------------------------------------------------------------------------
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
 
-The file icu_utf.cc is from IBM. This file is licensed separately as follows:
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
 
-ICU License - ICU 1.8.1 and later
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
 
-COPYRIGHT AND PERMISSION NOTICE
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
 
-Copyright (c) 1995-2009 International Business Machines Corporation and others
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
 
-All rights reserved.
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
-SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   END OF TERMS AND CONDITIONS
 
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
 
+
+
+
-**************************** - Apache License +
+Google Input Tools +homepage +
+
                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
 
@@ -17942,7 +9850,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright [yyyy] [name of copyright owner]
+   Copyright 2013 Google Inc.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
@@ -17954,101 +9862,16 @@
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-****************************
-jsoncpp
-****************************
-The JsonCpp library's source code, including accompanying documentation,
-tests and demonstration applications, are licensed under the following
-conditions...
-
-The author (Baptiste Lepilleur) explicitly disclaims copyright in all
-jurisdictions which recognize such a disclaimer. In such jurisdictions,
-this software is released into the Public Domain.
-
-In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
-2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
-released under the terms of the MIT License (see below).
-
-In jurisdictions which recognize Public Domain property, the user of this
-software may choose to accept it either as 1) Public Domain, 2) under the
-conditions of the MIT License (see below), or 3) under the terms of dual
-Public Domain/MIT License conditions described here, as they choose.
-
-The MIT License is about as close to Public Domain as a license can get, and is
-described in clear, concise terms at:
-
-   http://en.wikipedia.org/wiki/MIT_License
-
-The full text of the MIT License follows:
-
-========================================================================
-Copyright (c) 2007-2010 Baptiste Lepilleur
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use, copy,
-modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-========================================================================
-(END LICENSE TEXT)
-
-The MIT license is compatible with both the GPL and commercial
-software, affording one all of the rights of Public Domain with the
-minor nuisance of being required to keep the above copyright notice
-and license text in the source code. Note also that by accepting the
-Public Domain "license" you can re-license your copy using whatever
-license you like.
-
-
-****************************
-libwebp
-****************************
-Copyright (c) 2010, Google Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
+   limitations under the License.
+
+
- * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +
+Google Toolbox for Mac +homepage +
+
See src/COPYING
 
@@ -18523,7 +10346,7 @@ IN THE SOFTWARE. """ -- ICU, located at deps/icu-small, is licensed as follows: +- ICU, located at deps/icu, is licensed as follows: """ ICU License - ICU 1.8.1 and later @@ -19483,98 +11306,15 @@ met: * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - """ - -- node-weak, located at test/gc/node_modules/weak, is licensed as follows: - """ - Copyright (c) 2011, Ben Noordhuis <info@bnoordhuis.nl> - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - """ - -- v8_inspector, located at deps/v8_inspector/third_party/v8_inspector, is licensed as follows: - """ - // Copyright 2015 The Chromium Authors. All rights reserved. - // - // Redistribution and use in source and binary forms, with or without - // modification, are permitted provided that the following conditions are - // met: - // - // * Redistributions of source code must retain the above copyright - // notice, this list of conditions and the following disclaimer. - // * Redistributions in binary form must reproduce the above - // copyright notice, this list of conditions and the following disclaimer - // in the documentation and/or other materials provided with the - // distribution. - // * Neither the name of Google Inc. nor the names of its - // contributors may be used to endorse or promote products derived from - // this software without specific prior written permission. - // - // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - """ - -- jinja2, located at deps/v8_inspector/third_party/jinja2, is licensed as follows: - """ - Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details. - - Some rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - + notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -19588,41 +11328,21 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -- markupsafe, located at deps/v8_inspector/third_party/markupsafe, is licensed as follows: +- node-weak, located at test/gc/node_modules/weak, is licensed as follows: """ - Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS - for more details. - - Some rights reserved. - - Redistribution and use in source and binary forms of the software as well - as documentation, with or without modification, are permitted provided - that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. + Copyright (c) 2011, Ben Noordhuis <info@bnoordhuis.nl> - * The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT - NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE. + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """
@@ -20853,228 +12573,17 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
-
-
- - -
-Material Text Accessibility iOS -homepage -
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
@@ -22287,11 +13796,253 @@
-
-Shaderc -homepage -
-
                                 Apache License
+
+Shaderc +homepage +
+
                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+ + +
+Skia +homepage +
+
// Copyright (c) 2011 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+third_party/etc1 is under the following license:
+
+
+                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
 
@@ -22492,44 +14243,18 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
-
-
+-------------------------------------------------------------------------------- +Some files under resources are under the following license: -
-Skia -homepage -
-
// Copyright (c) 2011 Google Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Unlimited Commercial Use
+We try to make it clear that you may use all clipart from Openclipart even for unlimited commercial use. We believe that giving away our images is a great way to share with the world our talents and that will come back around in a better form.
 
---------------------------------------------------------------------------------
+May I Use Openclipart for?
+We put together a small chart of as many possibilities and questions we have heard from people asking how they may use Openclipart. If you have an additional question, please email love@openclipart.org.
+
+All Clipart are Released into the Public Domain.
+Each artist at Openclipart releases all rights to the images they share at Openclipart. The reason is so that there is no friction in using and sharing images authors make available at this website so that each artist might also receive the same benefit in using other artists clipart totally for any possible reason.
 
@@ -23443,248 +15168,48 @@ copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -- Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimers. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimers in the -documentation and/or other materials provided with the distribution. - -- Neither the names of Suitable Systems nor the names of its -contributors may be used to endorse or promote products derived from -this Software without specific prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. - -For more information about SMSLib, see - <http://www.suitable.com/tools/smslib.html> -or contact - Daniel Griscom - Suitable Systems - 1 Centre Street, Suite 204 - Wakefield, MA 01880 - (781) 665-0053 -
-
-
- - -
-SwiftShader -homepage -
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
 
-   END OF TERMS AND CONDITIONS
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimers.
 
-   APPENDIX: How to apply the Apache License to your work.
+- Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimers in the
+documentation and/or other materials provided with the distribution.
 
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
+- Neither the names of Suitable Systems nor the names of its
+contributors may be used to endorse or promote products derived from
+this Software without specific prior written permission.
 
-   Copyright [yyyy] [name of copyright owner]
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
+For more information about SMSLib, see
+   <http://www.suitable.com/tools/smslib.html>
+or contact
+   Daniel Griscom
+   Suitable Systems
+   1 Centre Street, Suite 204
+   Wakefield, MA 01880
+   (781) 665-0053
+
+
+
- http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +
+SwiftShader software renderer. +homepage +
+
This product includes SwiftShader Software GPU Tookit,
+Copyright(c)2003-2011 TransGaming Inc
 
@@ -26009,9 +17534,9 @@ blimp_fonts homepage
-
Fonts under Apache License Version 2.0 license:
+
All the font files are available in the font_bundle subdirectory.
 
-The font files below are in the font_bundle/marshmallow subdirectory.
+Fonts under Apache License Version 2.0 license:
 
 AndroidClock.ttf
 AndroidClock_Highlight.ttf
@@ -26204,95 +17729,10 @@
 Roboto-ThinItalic.ttf
 Roboto-Thin.ttf
 
-The font files below are in the font_bundle/kitkat subdirectory.
-
-AndroidClock_Highlight.ttf
-AndroidClock_Solid.ttf
-AndroidClock.ttf
-AndroidEmoji.ttf
-Clockopia.ttf
-DroidKufi-Bold.ttf
-DroidKufi-Regular.ttf
-DroidNaskh-Bold.ttf
-DroidNaskh-Regular.ttf
-DroidNaskhUI-Regular.ttf
-DroidSansArabic.ttf
-DroidSansArmenian.ttf
-DroidSans-Bold.ttf
-DroidSansEthiopic-Bold.ttf
-DroidSansEthiopic-Regular.ttf
-DroidSansFallbackFull.ttf
-DroidSansFallbackLegacy.ttf
-DroidSansFallback.ttf
-DroidSansGeorgian.ttf
-DroidSansHebrew-Bold.ttf
-DroidSansHebrew-Regular.ttf
-DroidSansJapanese.ttf
-DroidSansMono.ttf
-DroidSans.ttf
-DroidSerif-BoldItalic.ttf
-DroidSerif-Bold.ttf
-DroidSerif-Italic.ttf
-DroidSerif-Regular.ttf
-fallback_fonts.xml
-MTLc3m.ttf
-MTLmr3m.ttf
-NotoColorEmoji.ttf
-NotoSansBengali-Bold.ttf
-NotoSansBengali-Regular.ttf
-NotoSansBengaliUI-Bold.ttf
-NotoSansBengaliUI-Regular.ttf
-NotoSansDevanagari-Bold.ttf
-NotoSansDevanagari-Regular.ttf
-NotoSansDevanagariUI-Bold.ttf
-NotoSansDevanagariUI-Regular.ttf
-NotoSansKannada-Bold.ttf
-NotoSansKannada-Regular.ttf
-NotoSansKannadaUI-Bold.ttf
-NotoSansKannadaUI-Regular.ttf
-NotoSansKhmer-Bold.ttf
-NotoSansKhmer-Regular.ttf
-NotoSansKhmerUI-Bold.ttf
-NotoSansKhmerUI-Regular.ttf
-NotoSansLao-Bold.ttf
-NotoSansLao-Regular.ttf
-NotoSansLaoUI-Bold.ttf
-NotoSansLaoUI-Regular.ttf
-NotoSansMalayalam-Bold.ttf
-NotoSansMalayalam-Regular.ttf
-NotoSansMalayalamUI-Bold.ttf
-NotoSansMalayalamUI-Regular.ttf
-NotoSansSymbols-Regular.ttf
-NotoSansTamil-Bold.ttf
-NotoSansTamil-Regular.ttf
-NotoSansTamilUI-Bold.ttf
-NotoSansTamilUI-Regular.ttf
-NotoSansTelugu-Bold.ttf
-NotoSansTelugu-Regular.ttf
-NotoSansTeluguUI-Bold.ttf
-NotoSansTeluguUI-Regular.ttf
-NotoSansThai-Bold.ttf
-NotoSansThai-Regular.ttf
-NotoSansThaiUI-Bold.ttf
-NotoSansThaiUI-Regular.ttf
-Roboto-BoldItalic.ttf
-Roboto-Bold.ttf
-RobotoCondensed-BoldItalic.ttf
-RobotoCondensed-Bold.ttf
-RobotoCondensed-Italic.ttf
-RobotoCondensed-Regular.ttf
-Roboto-Italic.ttf
-Roboto-LightItalic.ttf
-Roboto-Light.ttf
-Roboto-Regular.ttf
-Roboto-ThinItalic.ttf
-Roboto-Thin.ttf
-
 
 Fonts under SIL Open Font License, Version 1.1:
 (Full license in LICENSE.OFL)
 
-The font files below are in the font_bundle/marshmallow subdirectory.
 NotoSansJP-Regular.otf
 NotoSansJP-Regular-Subsetted.otf
 NotoSansKR-Regular.otf
@@ -26303,7 +17743,6 @@
 Copyright (c) 2011 by Ralph du Carrois, with Reserved Font Name 'Carrois'
 This Font Software is licensed under the SIL Open Font License, Version 1.1
 (Full license in LICENSE.OFL)
-The font files below are in the font_bundle/marshmallow subdirectory.
 CarroisGothicSC-Regular.ttf
 
 
@@ -26313,7 +17752,6 @@
 This Font Software is licensed under the SIL Open Font License, Version 1.1.
 (Full license in LICENSE.OFL)
 
-The font files below are in the font_bundle/marshmallow subdirectory.
 DancingScript-Bold.ttf
 DancingScript-Regular.ttf
 CutiveMono.ttf
@@ -26326,34 +17764,8 @@
 This Font Software is licensed under the SIL Open Font License, Version 1.1.
 (Full license in LICENSE.OFL)
 
-The files below are in the font_bundle/marshmallow subdirectory.
 NanumGothicBold.ttf
 NanumGothic.ttf
-
-
-Copyright (c) 2010, NHN Corporation (http://www.nhncorp.com),
-  (http://hangeul.naver.com/font)
-with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco, NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-The files below are in the font_bundle/kitkat subdirectory.
-NanumGothicBold.ttf
-NanumGothic.ttf
-
-
-Copyright SIL International, all rights reserved
-Reserved names: "Padauk"
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-The files below are in the font_bundle/kitkat subdirectory.
-Padauk-bookbold.ttf
-Padauk-book.ttf
 
@@ -26539,63 +17951,193 @@ ISC license used for completely new code in BoringSSL: -/* Copyright (c) 2015, Google Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* Copyright (c) 2015, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + + +Some files from Intel carry the following license: + +# Copyright (c) 2012, Intel Corporation +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# +# * Neither the name of the Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# +# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + + +
+bsdiff +homepage +
+
BSD Protection License
+February 2002
+
+Preamble
+--------
+
+The Berkeley Software Distribution ("BSD") license has proven very effective
+over the years at allowing for a wide spread of work throughout both
+commercial and non-commercial products.  For programmers whose primary
+intention is to improve the general quality of available software, it is
+arguable that there is no better license than the BSD license, as it
+permits improvements to be used wherever they will help, without idealogical
+or metallic constraint.
+
+This is of particular value to those who produce reference implementations
+of proposed standards: The case of TCP/IP clearly illustrates that freely
+and universally available implementations leads the rapid acceptance of
+standards -- often even being used instead of a de jure standard (eg, OSI
+network models).
+
+With the rapid proliferation of software licensed under the GNU General
+Public License, however, the continued success of this role is called into
+question.  Given that the inclusion of a few lines of "GPL-tainted" work
+into a larger body of work will result in restricted distribution -- and
+given that further work will likely build upon the "tainted" portions,
+making them difficult to remove at a future date -- there are inevitable
+circumstances where authors would, in order to protect their goal of
+providing for the widespread usage of their work, wish to guard against
+such "GPL-taint".
+
+In addition, one can imagine that companies which operate by producing and
+selling (possibly closed-source) code would wish to protect themselves
+against the rise of a GPL-licensed competitor.  While under existing
+licenses this would mean not releasing their code under any form of open
+license, if a license existed under which they could incorporate any
+improvements back into their own (commercial) products then they might be
+far more willing to provide for non-closed distribution.
+
+For the above reasons, we put forth this "BSD Protection License": A
+license designed to retain the freedom granted by the BSD license to use
+licensed works in a wide variety of settings, both non-commercial and
+commercial, while protecting the work from having future contributors
+restrict that freedom.
+
+The precise terms and conditions for copying, distribution, and
+modification follow.
+
+BSD PROTECTION LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION, AND MODIFICATION
+----------------------------------------------------------------
+
+0. Definitions.
+   a) "Program", below, refers to any program or work distributed under
+      the terms of this license.
+   b) A "work based on the Program", below, refers to either the Program
+      or any derivative work under copyright law.
+   c) "Modification", below, refers to the act of creating derivative works.
+   d) "You", below, refers to each licensee.
+
+1. Scope.
+   This license governs the copying, distribution, and modification of the
+   Program.  Other activities are outside the scope of this license; The
+   act of running the Program is not restricted, and the output from the
+   Program is covered only if its contents constitute a work based on the
+   Program.
+
+2. Verbatim copies.
+   You may copy and distribute verbatim copies of the Program as you
+   receive it, in any medium, provided that you conspicuously and
+   appropriately publish on each copy an appropriate copyright notice; keep
+   intact all the notices that refer to this License and to the absence of
+   any warranty; and give any other recipients of the Program a copy of this
+   License along with the Program.
+
+3. Modification and redistribution under closed license.
+   You may modify your copy or copies of the Program, and distribute
+   the resulting derivative works, provided that you meet the
+   following conditions:
+   a) The copyright notice and disclaimer on the Program must be reproduced
+      and included in the source code, documentation, and/or other materials
+      provided in a manner in which such notices are normally distributed.
+   b) The derivative work must be clearly identified as such, in order that
+      it may not be confused with the original work.
+   c) The license under which the derivative work is distributed must
+      expressly prohibit the distribution of further derivative works.
 
+4. Modification and redistribution under open license.
+   You may modify your copy or copies of the Program, and distribute
+   the resulting derivative works, provided that you meet the
+   following conditions:
+   a) The copyright notice and disclaimer on the Program must be reproduced
+      and included in the source code, documentation, and/or other materials
+      provided in a manner in which such notices are normally distributed.
+   b) You must clearly indicate the nature and date of any changes made
+      to the Program.  The full details need not necessarily be included in
+      the individual modified files, provided that each modified file is
+      clearly marked as such and instructions are included on where the
+      full details of the modifications may be found.
+   c) You must cause any work that you distribute or publish, that in whole
+      or in part contains or is derived from the Program or any part
+      thereof, to be licensed as a whole at no charge to all third
+      parties under the terms of this License.
 
-Some files from Intel carry the following license:
+5. Implied acceptance.
+   You may not copy or distribute the Program or any derivative works except
+   as expressly provided under this license.  Consequently, any such action
+   will be taken as implied acceptance of the terms of this license.
 
-# Copyright (c) 2012, Intel Corporation
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# *  Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# *  Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the
-#    distribution.
-#
-# *  Neither the name of the Intel Corporation nor the names of its
-#    contributors may be used to endorse or promote products derived from
-#    this software without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+6. NO WARRANTY.
+   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+   THE COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+   REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE FOR ANY DIRECT,
+   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING, BUT
+   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+   TORT, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+   POSSIBILITY OF SUCH DAMAGES.
 
-bsdiff -homepage +bspatch +homepage
BSD Protection License
 February 2002
@@ -26724,33 +18266,36 @@
 
 
 
-bspatch -homepage +class-dump +homepage
-
Copyright 2003,2004 Colin Percival
-All rights reserved
+
(Copied from the README.)
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted providing that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
+--------------------------------------------------------------------------------
 
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
+This file is part of class-dump, a utility for examining the +Objective-C segment of Mach-O files. +Copyright (C) 1997-1998, 2000-2001, 2004-2013 Steve Nygard. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Contact +------- + +You may contact the author by: + e-mail: nygard at gmail.com
@@ -26790,36 +18335,6 @@
-
-divsufsort -homepage -
-
The MIT License (MIT)
-
-Copyright (c) 2003 Yuta Mori All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
- -
dom-distiller-js homepage @@ -28729,11 +20244,7 @@ iccjpeg homepage
-
(Copied from the README.)
-
---------------------------------------------------------------------------------
-
-LICENSE extracted from IJG's jpeg distribution:
+
LICENSE extracted from IJG's jpeg distribution:
 -----------------------------------------------
 
 In plain English:
@@ -29622,6 +21133,91 @@
 
+
+libcxx +homepage +
+
==============================================================================
+libc++ License
+==============================================================================
+
+The libc++ library is dual licensed under both the University of Illinois
+"BSD-Like" license and the MIT license.  As a user of this code you may choose
+to use it under either license.  As a contributor, you agree to allow your code
+to be used under both.
+
+Full text of the relevant licenses is included below.
+
+==============================================================================
+
+University of Illinois/NCSA
+Open Source License
+
+Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
+
+All rights reserved.
+
+Developed by:
+
+    LLVM Team
+
+    University of Illinois at Urbana-Champaign
+
+    http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimers.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimers in the
+      documentation and/or other materials provided with the distribution.
+
+    * Neither the names of the LLVM Team, University of Illinois at
+      Urbana-Champaign, nor the names of its contributors may be used to
+      endorse or promote products derived from this Software without specific
+      prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+==============================================================================
+
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+
+ +
libcxxabi homepage @@ -33820,7 +25416,7 @@
opus -homepage +homepage
Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
                     Jean-Marc Valin, Timothy B. Terriberry,
@@ -34565,6 +26161,37 @@
 
+
+talloc +homepage +
+
   Unix SMB/CIFS implementation.
+   Samba temporary memory allocation functions
+
+   Copyright (C) Andrew Tridgell 2004-2005
+   Copyright (C) Stefan Metzmacher 2006
+   
+     ** NOTE! The following LGPL license applies to the talloc
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+   
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
+
+
+
+ +
tcmalloc homepage diff --git a/icudtl.dat b/icudtl.dat index a313d4e6..b3e6a70b 100644 Binary files a/icudtl.dat and b/icudtl.dat differ diff --git a/install.sh b/install.sh new file mode 100755 index 00000000..bfd8a7fd --- /dev/null +++ b/install.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +install_path='/opt/tencent'; +current_dir=`pwd` +desktop_dir='/usr/share/applications' +soft_link_path='/usr/local/bin/wechat_web_devtools' + +# install app +argv1=$1 +if [ "$argv1" != "" ]; then + install_path=${argv1%%/} +fi + +if [ ! -d "$install_path" ]; then + sudo mkdir -p $install_path +fi + +app_path="${install_path}/wechat_web_devtools" +if [ -d $app_path ]; then + sudo rm -rf $app_path +fi + +sudo cp -r $current_dir $app_path + +sed_argv="s/=\/opt\/tencent/=${install_path//'/'/'\/'}/ig" +sudo sed -i $sed_argv "${app_path}/wechat_web_devtools.desktop" + +sudo chown -R $USER:$USER $app_path + +cat >"${app_path}/wechat_web_devtools"<"; }; -function ValueMirror(D,r,E){ -%_Call(Mirror,this,D); -this.value_=r; -if(!E){ +function ValueMirror(H,v,I){ +%_Call(Mirror,this,H); +this.value_=v; +if(!I){ this.allocateHandle_(); }else{ this.allocateTransientHandle_(); @@ -251,75 +258,75 @@ Mirror.prototype.handle=function(){ return this.handle_; }; ValueMirror.prototype.isPrimitive=function(){ -var D=this.type(); -return D==='undefined'|| -D==='null'|| -D==='boolean'|| -D==='number'|| -D==='string'|| -D==='symbol'; +var H=this.type(); +return H==='undefined'|| +H==='null'|| +H==='boolean'|| +H==='number'|| +H==='string'|| +H==='symbol'; }; ValueMirror.prototype.value=function(){ return this.value_; }; function UndefinedMirror(){ -%_Call(ValueMirror,this,m.UNDEFINED_TYPE,(void 0)); +%_Call(ValueMirror,this,q.UNDEFINED_TYPE,(void 0)); } inherits(UndefinedMirror,ValueMirror); UndefinedMirror.prototype.toText=function(){ return'undefined'; }; function NullMirror(){ -%_Call(ValueMirror,this,m.NULL_TYPE,null); +%_Call(ValueMirror,this,q.NULL_TYPE,null); } inherits(NullMirror,ValueMirror); NullMirror.prototype.toText=function(){ return'null'; }; -function BooleanMirror(r){ -%_Call(ValueMirror,this,m.BOOLEAN_TYPE,r); +function BooleanMirror(v){ +%_Call(ValueMirror,this,q.BOOLEAN_TYPE,v); } inherits(BooleanMirror,ValueMirror); BooleanMirror.prototype.toText=function(){ return this.value_?'true':'false'; }; -function NumberMirror(r){ -%_Call(ValueMirror,this,m.NUMBER_TYPE,r); +function NumberMirror(v){ +%_Call(ValueMirror,this,q.NUMBER_TYPE,v); } inherits(NumberMirror,ValueMirror); NumberMirror.prototype.toText=function(){ return %_NumberToString(this.value_); }; -function StringMirror(r){ -%_Call(ValueMirror,this,m.STRING_TYPE,r); +function StringMirror(v){ +%_Call(ValueMirror,this,q.STRING_TYPE,v); } inherits(StringMirror,ValueMirror); StringMirror.prototype.length=function(){ return this.value_.length; }; -StringMirror.prototype.getTruncatedValue=function(F){ -if(F!=-1&&this.length()>F){ -return this.value_.substring(0,F)+ +StringMirror.prototype.getTruncatedValue=function(J){ +if(J!=-1&&this.length()>J){ +return this.value_.substring(0,J)+ '... (length: '+this.length()+')'; } return this.value_; }; StringMirror.prototype.toText=function(){ -return this.getTruncatedValue(z); +return this.getTruncatedValue(D); }; -function SymbolMirror(r){ -%_Call(ValueMirror,this,m.SYMBOL_TYPE,r); +function SymbolMirror(v){ +%_Call(ValueMirror,this,q.SYMBOL_TYPE,v); } inherits(SymbolMirror,ValueMirror); SymbolMirror.prototype.description=function(){ -return %SymbolDescription(%ValueOf(this.value_)); +return %SymbolDescription(%_ValueOf(this.value_)); } SymbolMirror.prototype.toText=function(){ -return %SymbolDescriptiveString(%ValueOf(this.value_)); +return %_Call(o,this.value_); } -function ObjectMirror(r,D,E){ -D=D||m.OBJECT_TYPE; -%_Call(ValueMirror,this,D,r,E); +function ObjectMirror(v,H,I){ +H=H||q.OBJECT_TYPE; +%_Call(ValueMirror,this,H,v,I); } inherits(ObjectMirror,ValueMirror); ObjectMirror.prototype.className=function(){ @@ -335,77 +342,77 @@ ObjectMirror.prototype.protoObject=function(){ return MakeMirror(%DebugGetPrototype(this.value_)); }; ObjectMirror.prototype.hasNamedInterceptor=function(){ -var G=%GetInterceptorInfo(this.value_); -return(G&2)!=0; +var K=%GetInterceptorInfo(this.value_); +return(K&2)!=0; }; ObjectMirror.prototype.hasIndexedInterceptor=function(){ -var G=%GetInterceptorInfo(this.value_); -return(G&1)!=0; +var K=%GetInterceptorInfo(this.value_); +return(K&1)!=0; }; ObjectMirror.prototype.propertyNames=function(){ return %GetOwnPropertyKeys(this.value_,0); }; ObjectMirror.prototype.properties=function(){ -var H=this.propertyNames(); -var I=new c(H.length); -for(var J=0;J'; +return'#<'+O+'>'; }; -ObjectMirror.GetInternalProperties=function(r){ -var I=%DebugGetInternalProperties(r); -var O=[]; -for(var J=0;JV)return new c(); -var W=new c(V-U+1); -for(var J=U;J<=V;J++){ -var L=%DebugGetPropertyDetails(this.value_,(%_ToString(J))); -var r; -if(L){ -r=new PropertyMirror(this,J,L); +var Y=opt_from_index||0; +var Z=opt_to_index||this.length()-1; +if(Y>Z)return new d(); +var aa=new d(Z-Y+1); +for(var N=Y;N<=Z;N++){ +var P=%DebugGetPropertyDetails(this.value_,(%_ToString(N))); +var v; +if(P){ +v=new PropertyMirror(this,N,P); }else{ -r=GetUndefinedMirror(); +v=GetUndefinedMirror(); } -W[J-U]=r; +aa[N-Y]=v; } -return W; +return aa; }; -function DateMirror(r){ -%_Call(ObjectMirror,this,r); +function DateMirror(v){ +%_Call(ObjectMirror,this,v); } inherits(DateMirror,ObjectMirror); DateMirror.prototype.toText=function(){ -var X=e(this.value_); -return X.substring(1,X.length-1); +var ab=f(this.value_); +return ab.substring(1,ab.length-1); }; -function RegExpMirror(r){ -%_Call(ObjectMirror,this,r,m.REGEXP_TYPE); +function RegExpMirror(v){ +%_Call(ObjectMirror,this,v,q.REGEXP_TYPE); } inherits(RegExpMirror,ObjectMirror); RegExpMirror.prototype.source=function(){ @@ -575,34 +579,34 @@ return this.value_.unicode; RegExpMirror.prototype.toText=function(){ return"/"+this.source()+"/"; }; -function ErrorMirror(r){ -%_Call(ObjectMirror,this,r,m.ERROR_TYPE); +function ErrorMirror(v){ +%_Call(ObjectMirror,this,v,q.ERROR_TYPE); } inherits(ErrorMirror,ObjectMirror); ErrorMirror.prototype.message=function(){ return this.value_.message; }; ErrorMirror.prototype.toText=function(){ -var Y; +var ac; try{ -Y=%ErrorToString(this.value_); +ac=%_Call(c,this.value_); }catch(e){ -Y='#'; +ac='#'; } -return Y; +return ac; }; -function PromiseMirror(r){ -%_Call(ObjectMirror,this,r,m.PROMISE_TYPE); +function PromiseMirror(v){ +%_Call(ObjectMirror,this,v,q.PROMISE_TYPE); } inherits(PromiseMirror,ObjectMirror); -function PromiseGetStatus_(r){ -var Z=%DebugGetProperty(r,h); -if(Z==0)return"pending"; -if(Z==1)return"resolved"; +function PromiseGetStatus_(v){ +var ad=%DebugGetProperty(v,k); +if(ad==0)return"pending"; +if(ad==1)return"resolved"; return"rejected"; } -function PromiseGetValue_(r){ -return %DebugGetProperty(r,i); +function PromiseGetValue_(v){ +return %DebugGetProperty(v,l); } PromiseMirror.prototype.status=function(){ return PromiseGetStatus_(this.value_); @@ -610,76 +614,76 @@ return PromiseGetStatus_(this.value_); PromiseMirror.prototype.promiseValue=function(){ return MakeMirror(PromiseGetValue_(this.value_)); }; -function MapMirror(r){ -%_Call(ObjectMirror,this,r,m.MAP_TYPE); +function MapMirror(v){ +%_Call(ObjectMirror,this,v,q.MAP_TYPE); } inherits(MapMirror,ObjectMirror); -MapMirror.prototype.entries=function(aa){ -var O=[]; +MapMirror.prototype.entries=function(ae){ +var S=[]; if((%_ClassOf(this.value_)==='WeakMap')){ -var ab=%GetWeakMapEntries(this.value_,aa||0); -for(var J=0;J3){ -this.exception_=L[3]; -this.getter_=L[4]; -this.setter_=L[5]; +function PropertyMirror(x,O,P){ +%_Call(Mirror,this,q.PROPERTY_TYPE); +this.mirror_=x; +this.name_=O; +this.value_=P[0]; +this.details_=P[1]; +this.is_interceptor_=P[2]; +if(P.length>3){ +this.exception_=P[3]; +this.getter_=P[4]; +this.setter_=P[5]; } } inherits(PropertyMirror,Mirror); PropertyMirror.prototype.isReadOnly=function(){ -return(this.attributes()&B.ReadOnly)!=0; +return(this.attributes()&F.ReadOnly)!=0; }; PropertyMirror.prototype.isEnum=function(){ -return(this.attributes()&B.DontEnum)==0; +return(this.attributes()&F.DontEnum)==0; }; PropertyMirror.prototype.canDelete=function(){ -return(this.attributes()&B.DontDelete)==0; +return(this.attributes()&F.DontDelete)==0; }; PropertyMirror.prototype.name=function(){ return this.name_; @@ -753,8 +744,8 @@ if((typeof(this.name_)==='symbol'))return %SymbolDescriptiveString(this.name_); return this.name_; }; PropertyMirror.prototype.isIndexed=function(){ -for(var J=0;J0; }; FrameDetails.prototype.inlinedFrameIndex=function(){ %CheckExecutionState(this.break_id_); -var aA=ay; -return(this.details_[ar]&aA)>>2; +var aC=aA; +return(this.details_[at]&aC)>>2; }; FrameDetails.prototype.argumentCount=function(){ %CheckExecutionState(this.break_id_); -return this.details_[am]; +return this.details_[ao]; }; -FrameDetails.prototype.argumentName=function(R){ +FrameDetails.prototype.argumentName=function(V){ %CheckExecutionState(this.break_id_); -if(R>=0&&R=0&&V=0&&R=0&&V=0&&R=0&&V=0&&R=0&&V0){ -for(var J=0;J0){ +for(var N=0;N0){ -O+=this.lineOffset(); -O+='-'; -O+=this.lineOffset()+this.lineCount()-1; +S+=this.lineOffset(); +S+='-'; +S+=this.lineOffset()+this.lineCount()-1; }else{ -O+=this.lineCount(); +S+=this.lineCount(); } -O+=')'; -return O; +S+=')'; +return S; }; -function ContextMirror(bb){ -%_Call(Mirror,this,m.CONTEXT_TYPE); -this.data_=bb; +function ContextMirror(bc){ +%_Call(Mirror,this,q.CONTEXT_TYPE); +this.data_=bc; this.allocateHandle_(); } inherits(ContextMirror,Mirror); ContextMirror.prototype.data=function(){ return this.data_; }; -function MakeMirrorSerializer(L,bc){ -return new JSONProtocolSerializer(L,bc); +function MakeMirrorSerializer(P,bd){ +return new JSONProtocolSerializer(P,bd); } -function JSONProtocolSerializer(L,bc){ -this.details_=L; -this.options_=bc; +function JSONProtocolSerializer(P,bd){ +this.details_=P; +this.options_=bd; this.mirrors_=[]; } -JSONProtocolSerializer.prototype.serializeReference=function(t){ -return this.serialize_(t,true,true); +JSONProtocolSerializer.prototype.serializeReference=function(x){ +return this.serialize_(x,true,true); }; -JSONProtocolSerializer.prototype.serializeValue=function(t){ -var bd=this.serialize_(t,false,true); -return bd; +JSONProtocolSerializer.prototype.serializeValue=function(x){ +var be=this.serialize_(x,false,true); +return be; }; JSONProtocolSerializer.prototype.serializeReferencedObjects=function(){ -var be=[]; -var bf=this.mirrors_.length; -for(var J=0;Jthis.maxStringLength_()){ -var bh=t.getTruncatedValue(this.maxStringLength_()); -be.value=bh; -be.fromIndex=0; -be.toIndex=this.maxStringLength_(); +x.length()>this.maxStringLength_()){ +var bi=x.getTruncatedValue(this.maxStringLength_()); +bf.value=bi; +bf.fromIndex=0; +bf.toIndex=this.maxStringLength_(); }else{ -be.value=t.value(); +bf.value=x.value(); } -be.length=t.length(); +bf.length=x.length(); break; -case m.SYMBOL_TYPE: -be.description=t.description(); +case q.SYMBOL_TYPE: +bf.description=x.description(); break; -case m.OBJECT_TYPE: -case m.FUNCTION_TYPE: -case m.ERROR_TYPE: -case m.REGEXP_TYPE: -case m.PROMISE_TYPE: -case m.GENERATOR_TYPE: -this.serializeObject_(t,be,L); +case q.OBJECT_TYPE: +case q.FUNCTION_TYPE: +case q.ERROR_TYPE: +case q.REGEXP_TYPE: +case q.PROMISE_TYPE: +case q.GENERATOR_TYPE: +this.serializeObject_(x,bf,P); break; -case m.PROPERTY_TYPE: -case m.INTERNAL_PROPERTY_TYPE: -throw %make_error(2, +case q.PROPERTY_TYPE: +case q.INTERNAL_PROPERTY_TYPE: +throw g(2, 'PropertyMirror cannot be serialized independently'); break; -case m.FRAME_TYPE: -this.serializeFrame_(t,be); +case q.FRAME_TYPE: +this.serializeFrame_(x,bf); break; -case m.SCOPE_TYPE: -this.serializeScope_(t,be); +case q.SCOPE_TYPE: +this.serializeScope_(x,bf); break; -case m.SCRIPT_TYPE: -if(t.name()){ -be.name=t.name(); +case q.SCRIPT_TYPE: +if(x.name()){ +bf.name=x.name(); } -be.id=t.id(); -be.lineOffset=t.lineOffset(); -be.columnOffset=t.columnOffset(); -be.lineCount=t.lineCount(); -if(t.data()){ -be.data=t.data(); +bf.id=x.id(); +bf.lineOffset=x.lineOffset(); +bf.columnOffset=x.columnOffset(); +bf.lineCount=x.lineCount(); +if(x.data()){ +bf.data=x.data(); } if(this.includeSource_()){ -be.source=t.source(); +bf.source=x.source(); }else{ -var bi=t.source().substring(0,80); -be.sourceStart=bi; +var bj=x.source().substring(0,80); +bf.sourceStart=bj; } -be.sourceLength=t.source().length; -be.scriptType=t.scriptType(); -be.compilationType=t.compilationType(); -if(t.compilationType()==1&& -t.evalFromScript()){ -be.evalFromScript= -this.serializeReference(t.evalFromScript()); -var bj=t.evalFromLocation(); -if(bj){ -be.evalFromLocation={line:bj.line, -column:bj.column}; +bf.sourceLength=x.source().length; +bf.scriptType=x.scriptType(); +bf.compilationType=x.compilationType(); +if(x.compilationType()==1&& +x.evalFromScript()){ +bf.evalFromScript= +this.serializeReference(x.evalFromScript()); +var bk=x.evalFromLocation(); +if(bk){ +bf.evalFromLocation={line:bk.line, +column:bk.column}; } -if(t.evalFromFunctionName()){ -be.evalFromFunctionName=t.evalFromFunctionName(); +if(x.evalFromFunctionName()){ +bf.evalFromFunctionName=x.evalFromFunctionName(); } } -if(t.context()){ -be.context=this.serializeReference(t.context()); +if(x.context()){ +bf.context=this.serializeReference(x.context()); } break; -case m.CONTEXT_TYPE: -be.data=t.data(); +case q.CONTEXT_TYPE: +bf.data=x.data(); break; } -be.text=t.toText(); -return be; +bf.text=x.toText(); +return bf; }; -JSONProtocolSerializer.prototype.serializeObject_=function(t,be, -L){ -be.className=t.className(); -be.constructorFunction= -this.serializeReference(t.constructorFunction()); -be.protoObject=this.serializeReference(t.protoObject()); -be.prototypeObject=this.serializeReference(t.prototypeObject()); -if(t.hasNamedInterceptor()){ -be.namedInterceptor=true; -} -if(t.hasIndexedInterceptor()){ -be.indexedInterceptor=true; -} -if(t.isFunction()){ -be.name=t.name(); -if(!(t.inferredName()===(void 0))){ -be.inferredName=t.inferredName(); -} -be.resolved=t.resolved(); -if(t.resolved()){ -be.source=t.source(); -} -if(t.script()){ -be.script=this.serializeReference(t.script()); -be.scriptId=t.script().id(); -serializeLocationFields(t.sourceLocation(),be); -} -be.scopes=[]; -for(var J=0;J0){ -var bn=[]; -for(var J=0;J0){ +var bo=[]; +for(var N=0;N0){ +if(!(%_IsSmi(%IS_VAR(v))||((v==v)&&(v!=1/0)&&(v!=-1/0)))){ +if(v>0){ return'Infinity'; }else{ return'-Infinity'; } } -return r; +return v; } b.InstallFunctions(a,2,[ "MakeMirror",MakeMirror, @@ -1746,9 +1722,9 @@ b.InstallFunctions(a,2,[ "MirrorCacheIsEmpty",MirrorCacheIsEmpty, ]); b.InstallConstants(a,[ -"ScopeType",C, -"PropertyType",A, -"PropertyAttribute",B, +"ScopeType",G, +"PropertyType",E, +"PropertyAttribute",F, "Mirror",Mirror, "ValueMirror",ValueMirror, "UndefinedMirror",UndefinedMirror, @@ -1779,12 +1755,12 @@ b.InstallConstants(a,[ b.InstallFunctions(b,2,[ "ClearMirrorCache",ClearMirrorCache ]); -b.Export(function(bv){ -bv.MirrorType=m; +b.Export(function(bw){ +bw.MirrorType=q; }); }) -debugf +debug.b (function(a,b){ "use strict"; var c=a.FrameMirror; @@ -1794,94 +1770,97 @@ var f=a.isNaN; var g=a.JSON.parse; var h=a.JSON.stringify; var i=a.LookupMirror; -var j=a.MakeMirror; -var k=a.MakeMirrorSerializer; -var l=a.Math.min; -var m=a.Mirror; -var n; -var o=a.parseInt; -var p=a.ValueMirror; -b.Import(function(q){ -n=q.MirrorType; +var j; +var k; +var l=a.MakeMirror; +var m=a.MakeMirrorSerializer; +var n=a.Math.min; +var o=a.Mirror; +var p; +var q=a.parseInt; +var r=a.ValueMirror; +b.Import(function(s){ +j=s.MakeError; +k=s.MakeTypeError; +p=s.MirrorType; }); -var r=10; -var s={}; -var t=/^(?:\s*(?:\/\*.*?\*\/)*)*/; -s.DebugEvent={Break:1, +var t=10; +var u={}; +var v=/^(?:\s*(?:\/\*.*?\*\/)*)*/; +u.DebugEvent={Break:1, Exception:2, NewFunction:3, BeforeCompile:4, AfterCompile:5, CompileError:6, AsyncTaskEvent:7}; -s.ExceptionBreak={Caught:0, +u.ExceptionBreak={Caught:0, Uncaught:1}; -s.StepAction={StepOut:0, +u.StepAction={StepOut:0, StepNext:1, StepIn:2, StepFrame:3}; -s.ScriptType={Native:0, +u.ScriptType={Native:0, Extension:1, -Normal:2, -Wasm:3}; -s.ScriptCompilationType={Host:0, +Normal:2}; +u.ScriptCompilationType={Host:0, Eval:1, JSON:2}; -s.ScriptBreakPointType={ScriptId:0, +u.ScriptBreakPointType={ScriptId:0, ScriptName:1, ScriptRegExp:2}; -s.BreakPositionAlignment={ +u.BreakPositionAlignment={ Statement:0, BreakPosition:1 }; -function ScriptTypeFlag(u){ -return(1<=this.frameCount()){ -throw %make_type_error(33); +ExecutionState.prototype.frame=function(aA){ +if(aA==null)aA=this.selected_frame; +if(aA<0||aA>=this.frameCount()){ +throw k(32); } -return new c(this.break_id,aw); +return new c(this.break_id,aA); }; -ExecutionState.prototype.setSelectedFrame=function(ax){ -var L=(%_ToNumber(ax)); -if(L<0||L>=this.frameCount()){ -throw %make_type_error(33); +ExecutionState.prototype.setSelectedFrame=function(aB){ +var N=(%_ToNumber(aB)); +if(N<0||N>=this.frameCount()){ +throw k(32); } -this.selected_frame=L; +this.selected_frame=N; }; ExecutionState.prototype.selectedFrame=function(){ return this.selected_frame; }; -ExecutionState.prototype.debugCommandProcessor=function(ay){ -return new DebugCommandProcessor(this,ay); +ExecutionState.prototype.debugCommandProcessor=function(aC){ +return new DebugCommandProcessor(this,aC); }; -function MakeBreakEvent(H,az){ -return new BreakEvent(H,az); +function MakeBreakEvent(J,aD){ +return new BreakEvent(J,aD); } -function BreakEvent(H,az){ -this.frame_=new c(H,0); -this.break_points_hit_=az; +function BreakEvent(J,aD){ +this.frame_=new c(J,0); +this.break_points_hit_=aD; } BreakEvent.prototype.eventType=function(){ -return s.DebugEvent.Break; +return u.DebugEvent.Break; }; BreakEvent.prototype.func=function(){ return this.frame_.func(); @@ -2466,45 +2440,45 @@ BreakEvent.prototype.breakPointsHit=function(){ return this.break_points_hit_; }; BreakEvent.prototype.toJSONProtocol=function(){ -var aA={seq:v++, +var aE={seq:x++, type:"event", event:"break", body:{invocationText:this.frame_.invocationText()} }; -var O=this.func().script(); -if(O){ -aA.body.sourceLine=this.sourceLine(), -aA.body.sourceColumn=this.sourceColumn(), -aA.body.sourceLineText=this.sourceLineText(), -aA.body.script=MakeScriptObject_(O,false); +var Q=this.func().script(); +if(Q){ +aE.body.sourceLine=this.sourceLine(), +aE.body.sourceColumn=this.sourceColumn(), +aE.body.sourceLineText=this.sourceLineText(), +aE.body.script=MakeScriptObject_(Q,false); } if(this.breakPointsHit()){ -aA.body.breakpoints=[]; -for(var L=0;L0){ -aA.body.sourceLine=this.sourceLine(); -aA.body.sourceColumn=this.sourceColumn(); -aA.body.sourceLineText=this.sourceLineText(); -var O=this.func().script(); -if(O){ -aA.body.script=MakeScriptObject_(O,false); +aE.body.sourceLine=this.sourceLine(); +aE.body.sourceColumn=this.sourceColumn(); +aE.body.sourceLineText=this.sourceLineText(); +var Q=this.func().script(); +if(Q){ +aE.body.script=MakeScriptObject_(Q,false); } }else{ -aA.body.sourceLine=-1; +aE.body.sourceLine=-1; } -return aA.toJSONProtocol(); +return aE.toJSONProtocol(); }; -function MakeCompileEvent(O,u){ -return new CompileEvent(O,u); +function MakeCompileEvent(Q,w){ +return new CompileEvent(Q,w); } -function CompileEvent(O,u){ -this.script_=j(O); -this.type_=u; +function CompileEvent(Q,w){ +this.script_=l(Q); +this.type_=w; } CompileEvent.prototype.eventType=function(){ return this.type_; @@ -2560,45 +2534,45 @@ CompileEvent.prototype.script=function(){ return this.script_; }; CompileEvent.prototype.toJSONProtocol=function(){ -var aA=new ProtocolMessage(); -aA.running=true; +var aE=new ProtocolMessage(); +aE.running=true; switch(this.type_){ -case s.DebugEvent.BeforeCompile: -aA.event="beforeCompile"; +case u.DebugEvent.BeforeCompile: +aE.event="beforeCompile"; break; -case s.DebugEvent.AfterCompile: -aA.event="afterCompile"; +case u.DebugEvent.AfterCompile: +aE.event="afterCompile"; break; -case s.DebugEvent.CompileError: -aA.event="compileError"; +case u.DebugEvent.CompileError: +aE.event="compileError"; break; } -aA.body={}; -aA.body.script=this.script_; -return aA.toJSONProtocol(); +aE.body={}; +aE.body.script=this.script_; +return aE.toJSONProtocol(); }; -function MakeScriptObject_(O,aG){ -var aA={id:O.id(), -name:O.name(), -lineOffset:O.lineOffset(), -columnOffset:O.columnOffset(), -lineCount:O.lineCount(), +function MakeScriptObject_(Q,aK){ +var aE={id:Q.id(), +name:Q.name(), +lineOffset:Q.lineOffset(), +columnOffset:Q.columnOffset(), +lineCount:Q.lineCount(), }; -if(!(O.data()===(void 0))){ -aA.data=O.data(); +if(!(Q.data()===(void 0))){ +aE.data=Q.data(); } -if(aG){ -aA.source=O.source(); +if(aK){ +aE.source=Q.source(); } -return aA; +return aE; } -function MakeAsyncTaskEvent(aH){ -return new AsyncTaskEvent(aH); +function MakeAsyncTaskEvent(aL){ +return new AsyncTaskEvent(aL); } -function AsyncTaskEvent(aH){ -this.type_=aH.type; -this.name_=aH.name; -this.id_=aH.id; +function AsyncTaskEvent(aL){ +this.type_=aL.type; +this.name_=aL.name; +this.id_=aL.id; } AsyncTaskEvent.prototype.type=function(){ return this.type_; @@ -2609,139 +2583,139 @@ return this.name_; AsyncTaskEvent.prototype.id=function(){ return this.id_; } -function DebugCommandProcessor(F,ay){ -this.exec_state_=F; -this.running_=ay||false; +function DebugCommandProcessor(H,aC){ +this.exec_state_=H; +this.running_=aC||false; } -DebugCommandProcessor.prototype.processDebugRequest=function(aI){ -return this.processDebugJSONRequest(aI); +DebugCommandProcessor.prototype.processDebugRequest=function(aM){ +return this.processDebugJSONRequest(aM); }; -function ProtocolMessage(aI){ -this.seq=v++; -if(aI){ +function ProtocolMessage(aM){ +this.seq=x++; +if(aM){ this.type='response'; -this.request_seq=aI.seq; -this.command=aI.command; +this.request_seq=aM.seq; +this.command=aM.command; }else{ this.type='event'; } this.success=true; this.running=(void 0); } -ProtocolMessage.prototype.setOption=function(aJ,A){ +ProtocolMessage.prototype.setOption=function(aN,C){ if(!this.options_){ this.options_={}; } -this.options_[aJ]=A; +this.options_[aN]=C; }; -ProtocolMessage.prototype.failed=function(aK,aL){ +ProtocolMessage.prototype.failed=function(aO,aP){ this.success=false; -this.message=aK; -if((typeof(aL)==='object')){ -this.error_details=aL; +this.message=aO; +if((typeof(aP)==='object')){ +this.error_details=aP; } }; ProtocolMessage.prototype.toJSONProtocol=function(){ -var aM={}; -aM.seq=this.seq; +var aQ={}; +aQ.seq=this.seq; if(this.request_seq){ -aM.request_seq=this.request_seq; +aQ.request_seq=this.request_seq; } -aM.type=this.type; +aQ.type=this.type; if(this.event){ -aM.event=this.event; +aQ.event=this.event; } if(this.command){ -aM.command=this.command; +aQ.command=this.command; } if(this.success){ -aM.success=this.success; +aQ.success=this.success; }else{ -aM.success=false; +aQ.success=false; } if(this.body){ -var aN; -var aO=k(true,this.options_); -if(this.body instanceof m){ -aN=aO.serializeValue(this.body); +var aR; +var aS=m(true,this.options_); +if(this.body instanceof o){ +aR=aS.serializeValue(this.body); }else if(this.body instanceof d){ -aN=[]; -for(var L=0;L=this.exec_state_.frameCount()){ -return aP.failed('Invalid frame "'+bn+'"'); +if(!(br===(void 0))){ +var bI=(%_ToNumber(br)); +if(bI<0||bI>=this.exec_state_.frameCount()){ +return aT.failed('Invalid frame "'+br+'"'); } -aP.body=this.exec_state_.frame(bE).evaluate( -by,(!!(bz)),bB); +aT.body=this.exec_state_.frame(bI).evaluate( +bC,(!!(bD)),bF); return; }else{ -aP.body=this.exec_state_.frame().evaluate( -by,(!!(bz)),bB); +aT.body=this.exec_state_.frame().evaluate( +bC,(!!(bD)),bF); return; } }; -DebugCommandProcessor.prototype.lookupRequest_=function(aI,aP){ -if(!aI.arguments){ -return aP.failed('Missing arguments'); +DebugCommandProcessor.prototype.lookupRequest_=function(aM,aT){ +if(!aM.arguments){ +return aT.failed('Missing arguments'); } -var bF=aI.arguments.handles; -if((bF===(void 0))){ -return aP.failed('Argument "handles" missing'); +var bJ=aM.arguments.handles; +if((bJ===(void 0))){ +return aT.failed('Argument "handles" missing'); } -if(!(aI.arguments.includeSource===(void 0))){ -var bG=(!!(aI.arguments.includeSource)); -aP.setOption('includeSource',bG); +if(!(aM.arguments.includeSource===(void 0))){ +var bK=(!!(aM.arguments.includeSource)); +aT.setOption('includeSource',bK); } -var bH={}; -for(var L=0;L=this.exec_state_.frameCount()){ -return aP.failed('Invalid frame "'+bn+'"'); -} -bn=this.exec_state_.frame(bE); -} -} -var O=bn.func().script(); -if(!O){ -return aP.failed('No source'); -} -var bK=O.value(); -var bL=bK.line_offset; -var bM=%ScriptLineCount(bK); -bI=(bI===(void 0))?0:bI-bL; -bJ=(bJ===(void 0))?bM:bJ-bL; -if(bI<0)bI=0; -if(bJ>bM)bJ=bM; -if(bI>=bM||bJ<0||bI>bJ){ -return aP.failed('Invalid line interval'); -} -aP.body={}; -aP.body.fromLine=bI+bL; -aP.body.toLine=bJ+bL; -aP.body.fromPosition=%ScriptLineStartPosition(bK,bI); -aP.body.toPosition= -(bJ==0)?0:%ScriptLineEndPosition(bK,bJ-1); -aP.body.totalLines=%ScriptLineCount(bK); -aP.body.source=%_SubString(bK.source, -aP.body.fromPosition, -aP.body.toPosition); -}; -DebugCommandProcessor.prototype.scriptsRequest_=function(aI,aP){ -var bN=ScriptTypeFlag(s.ScriptType.Normal); -var bG=false; -var bO=null; -if(aI.arguments){ -if(!(aI.arguments.types===(void 0))){ -bN=(%_ToNumber(aI.arguments.types)); -if(f(bN)||bN<0){ -return aP.failed('Invalid types "'+ -aI.arguments.types+'"'); -} -} -if(!(aI.arguments.includeSource===(void 0))){ -bG=(!!(aI.arguments.includeSource)); -aP.setOption('includeSource',bG); -} -if((%_IsArray(aI.arguments.ids))){ -bO={}; -var bP=aI.arguments.ids; -for(var L=0;L=this.exec_state_.frameCount()){ +return aT.failed('Invalid frame "'+br+'"'); +} +br=this.exec_state_.frame(bI); +} +} +var Q=br.func().script(); +if(!Q){ +return aT.failed('No source'); +} +var bO=Q.value(); +var bP=bO.line_offset; +var bQ=%ScriptLineCount(bO); +bM=(bM===(void 0))?0:bM-bP; +bN=(bN===(void 0))?bQ:bN-bP; +if(bM<0)bM=0; +if(bN>bQ)bN=bQ; +if(bM>=bQ||bN<0||bM>bN){ +return aT.failed('Invalid line interval'); +} +aT.body={}; +aT.body.fromLine=bM+bP; +aT.body.toLine=bN+bP; +aT.body.fromPosition=%ScriptLineStartPosition(bO,bM); +aT.body.toPosition= +(bN==0)?0:%ScriptLineEndPosition(bO,bN-1); +aT.body.totalLines=%ScriptLineCount(bO); +aT.body.source=%_SubString(bO.source, +aT.body.fromPosition, +aT.body.toPosition); +}; +DebugCommandProcessor.prototype.scriptsRequest_=function(aM,aT){ +var bR=ScriptTypeFlag(u.ScriptType.Normal); +var bK=false; +var bS=null; +if(aM.arguments){ +if(!(aM.arguments.types===(void 0))){ +bR=(%_ToNumber(aM.arguments.types)); +if(f(bR)||bR<0){ +return aT.failed('Invalid types "'+ +aM.arguments.types+'"'); +} +} +if(!(aM.arguments.includeSource===(void 0))){ +bK=(!!(aM.arguments.includeSource)); +aT.setOption('includeSource',bK); +} +if((%_IsArray(aM.arguments.ids))){ +bS={}; +var bT=aM.arguments.ids; +for(var N=0;N=0){ -bT=true; +if(bU&&!bX){ +if(Q.name&&Q.name.indexOf(bU)>=0){ +bX=true; } } -if(!bT)continue; +if(!bX)continue; } -if(bN&ScriptTypeFlag(Y[L].type)){ -aP.body.push(j(Y[L])); +if(bR&ScriptTypeFlag(ad[N].type)){ +aT.body.push(l(ad[N])); } } }; -DebugCommandProcessor.prototype.suspendRequest_=function(aI,aP){ -aP.running=false; +DebugCommandProcessor.prototype.suspendRequest_=function(aM,aT){ +aT.running=false; }; -DebugCommandProcessor.prototype.versionRequest_=function(aI,aP){ -aP.body={ +DebugCommandProcessor.prototype.versionRequest_=function(aM,aT){ +aT.body={ V8Version:%GetV8Version() }; }; DebugCommandProcessor.prototype.changeLiveRequest_=function( -aI,aP){ -if(!aI.arguments){ -return aP.failed('Missing arguments'); -} -var bU=aI.arguments.script_id; -var bV=!!aI.arguments.preview_only; -var bW=scriptById(bU); -if(!bW){ -aP.failed('Script not found'); +aM,aT){ +if(!aM.arguments){ +return aT.failed('Missing arguments'); +} +var bY=aM.arguments.script_id; +var bZ=!!aM.arguments.preview_only; +var ad=%DebugGetLoadedScripts(); +var ca=null; +for(var N=0;N=this.exec_state_.frameCount()){ -return aP.failed('Invalid frame "'+bn+'"'); +var ce; +if(!(br===(void 0))){ +var bI=(%_ToNumber(br)); +if(bI<0||bI>=this.exec_state_.frameCount()){ +return aT.failed('Invalid frame "'+br+'"'); } -ca=this.exec_state_.frame(bE); +ce=this.exec_state_.frame(bI); }else{ -ca=this.exec_state_.frame(); +ce=this.exec_state_.frame(); } -var bZ=ca.restart(); -aP.body={result:bZ}; +var cd=ce.restart(); +aT.body={result:cd}; }; -DebugCommandProcessor.prototype.debuggerFlagsRequest_=function(aI, -aP){ -if(!aI.arguments){ -aP.failed('Missing arguments'); +DebugCommandProcessor.prototype.debuggerFlagsRequest_=function(aM, +aT){ +if(!aM.arguments){ +aT.failed('Missing arguments'); return; } -var cb=aI.arguments.flags; -aP.body={flags:[]}; -if(!(cb===(void 0))){ -for(var L=0;L9007199254740991)throw %make_range_error(i); -return j; +function ToPositiveInteger(j,k){ +var l=(%_ToInteger(j))+0; +if(l<0)throw f(k); +return l; } -function MaxSimple(k,l){ -return k>l?k:l; +function MaxSimple(m,n){ +return m>n?m:n; } -function MinSimple(k,l){ -return k>l?l:k; +function MinSimple(m,n){ +return m>n?n:m; } %SetForceInlineFlag(MaxSimple); %SetForceInlineFlag(MinSimple); -function SpeciesConstructor(m,n){ -var o=m.constructor; -if((o===(void 0))){ -return n; -} -if(!(%_IsJSReceiver(o))){ -throw %make_type_error(28); +function SpeciesConstructor(o,p){ +var q=o.constructor; +if((q===(void 0))){ +return p; } -var p=o[f]; -if((p==null)){ -return n; +if(!(%_IsJSReceiver(q))){ +throw g(28); } -if(%IsConstructor(p)){ +var r=q[h]; +if((r==null)){ return p; } -throw %make_type_error(236); +if(%IsConstructor(r)){ +return r; +} +throw g(234); } %FunctionSetPrototype(c,new c(0)); -b.Export(function(q){ -q.MaxSimple=MaxSimple; -q.MinSimple=MinSimple; -q.ToPositiveInteger=ToPositiveInteger; -q.ToIndex=ToIndex; -q.SpeciesConstructor=SpeciesConstructor; +b.Export(function(s){ +s.MaxSimple=MaxSimple; +s.MinSimple=MinSimple; +s.ToPositiveInteger=ToPositiveInteger; +s.SpeciesConstructor=SpeciesConstructor; }); }) -$v8natives12 +$v8natives]f (function(a,b){ %CheckIsBootstrapping(); -var c=a.Number; -var d=a.Object; -var e=b.ImportNow("iterator_symbol"); -var f=%GetRootNaN(); -var g=b.ImportNow("object_to_string"); -function GlobalParseInt(h,i){ -if((i===(void 0))||i===10||i===0){ -if(%_IsSmi(h))return h; -if((typeof(h)==='number')&& -((0.0136)throw g(179); +return %NumberToRadixString(o,q); +} +function NumberToLocaleString(){ +return %_Call(NumberToStringJS,this); +} +function NumberValueOf(){ +if(!(typeof(this)==='number')&&!(%_ClassOf(this)==='Number')){ +throw i(68,'Number.prototype.valueOf'); +} +return %_ValueOf(this); +} +function NumberToFixedJS(A){ +var z=this; +if(!(typeof(this)==='number')){ +if(!(%_ClassOf(this)==='Number')){ +throw i(43, +"Number.prototype.toFixed",this); +} +z=%_ValueOf(this); +} +var B=(%_ToInteger(A)); +if(B<0||B>20){ +throw g(175,"toFixed() digits"); +} +if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN"; +if(z==(1/0))return"Infinity"; +if(z==-(1/0))return"-Infinity"; +return %NumberToFixed(z,B); +} +function NumberToExponentialJS(A){ +var z=this; +if(!(typeof(this)==='number')){ +if(!(%_ClassOf(this)==='Number')){ +throw i(43, +"Number.prototype.toExponential",this); +} +z=%_ValueOf(this); +} +var B=(A===(void 0))?(void 0):(%_ToInteger(A)); +if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN"; +if(z==(1/0))return"Infinity"; +if(z==-(1/0))return"-Infinity"; +if((B===(void 0))){ +B=-1; +}else if(B<0||B>20){ +throw g(175,"toExponential()"); +} +return %NumberToExponential(z,B); +} +function NumberToPrecisionJS(C){ +var z=this; +if(!(typeof(this)==='number')){ +if(!(%_ClassOf(this)==='Number')){ +throw i(43, +"Number.prototype.toPrecision",this); +} +z=%_ValueOf(this); +} +if((C===(void 0)))return(%_ToString(z)); +var w=(%_ToInteger(C)); +if((!%_IsSmi(%IS_VAR(z))&&!(z==z)))return"NaN"; +if(z==(1/0))return"Infinity"; +if(z==-(1/0))return"-Infinity"; +if(w<1||w>21){ +throw g(178); +} +return %NumberToPrecision(z,w); +} +function NumberIsFinite(o){ +return(typeof(o)==='number')&&(%_IsSmi(%IS_VAR(o))||((o==o)&&(o!=1/0)&&(o!=-1/0))); +} +function NumberIsInteger(o){ +return NumberIsFinite(o)&&(%_ToInteger(o))==o; +} +function NumberIsNaN(o){ +return(typeof(o)==='number')&&(!%_IsSmi(%IS_VAR(o))&&!(o==o)); +} +function NumberIsSafeInteger(o){ +if(NumberIsFinite(o)){ +var D=(%_ToInteger(o)); +if(D==o){ +return j(D)<=9007199254740991; +} +} +return false; +} +%FunctionSetPrototype(d,new d(0)); +%OptimizeObjectForAddingMultipleProperties(d.prototype,8); +%AddNamedProperty(d.prototype,"constructor",d, +2); +b.InstallConstants(d,[ "MAX_VALUE",1.7976931348623157e+308, "MIN_VALUE",5e-324, -"NaN",f, +"NaN",k, "NEGATIVE_INFINITY",-(1/0), "POSITIVE_INFINITY",(1/0), -"MAX_SAFE_INTEGER",9007199254740991, -"MIN_SAFE_INTEGER",-9007199254740991, -"EPSILON",2.220446049250313e-16, +"MAX_SAFE_INTEGER",%_MathPow(2,53)-1, +"MIN_SAFE_INTEGER",-%_MathPow(2,53)+1, +"EPSILON",%_MathPow(2,-52) ]); -b.InstallFunctions(c,2,[ +b.InstallFunctions(d.prototype,2,[ +"toString",NumberToStringJS, +"toLocaleString",NumberToLocaleString, +"valueOf",NumberValueOf, +"toFixed",NumberToFixedJS, +"toExponential",NumberToExponentialJS, +"toPrecision",NumberToPrecisionJS +]); +b.InstallFunctions(d,2,[ +"isFinite",NumberIsFinite, +"isInteger",NumberIsInteger, +"isNaN",NumberIsNaN, +"isSafeInteger",NumberIsSafeInteger, "parseInt",GlobalParseInt, "parseFloat",GlobalParseFloat ]); -function GetIterator(m,r){ -if((r===(void 0))){ -r=m[e]; +%SetForceInlineFlag(NumberIsNaN); +function GetIterator(v,E){ +if((E===(void 0))){ +E=v[f]; } -if(!(typeof(r)==='function')){ -throw %make_type_error(71,m); +if(!(typeof(E)==='function')){ +throw i(69,v); } -var s=%_Call(r,m); -if(!(%_IsJSReceiver(s))){ -throw %make_type_error(65,s); +var F=%_Call(E,v); +if(!(%_IsJSReceiver(F))){ +throw i(63,F); } -return s; +return F; } -b.Export(function(t){ -t.GetIterator=GetIterator; -t.GetMethod=GetMethod; -t.ObjectHasOwnProperty=d.prototype.hasOwnProperty; +b.Export(function(G){ +G.GetIterator=GetIterator; +G.GetMethod=GetMethod; +G.IsNaN=GlobalIsNaN; +G.NumberIsNaN=NumberIsNaN; +G.NumberIsInteger=NumberIsInteger; +G.ObjectHasOwnProperty=e.prototype.hasOwnProperty; }); %InstallToContext([ "object_value_of",ObjectValueOf, ]); }) -symbol� +symbol� (function(a,b){ "use strict"; %CheckIsBootstrapping(); @@ -4835,48 +4988,85 @@ var d=b.ImportNow("has_instance_symbol"); var e= b.ImportNow("is_concat_spreadable_symbol"); var f=b.ImportNow("iterator_symbol"); -var g=b.ImportNow("match_symbol"); -var h=b.ImportNow("replace_symbol"); -var i=b.ImportNow("search_symbol"); -var j=b.ImportNow("species_symbol"); -var k=b.ImportNow("split_symbol"); -var l=b.ImportNow("to_primitive_symbol"); -var m=b.ImportNow("to_string_tag_symbol"); -var n=b.ImportNow("unscopables_symbol"); -function SymbolFor(o){ -o=(%_ToString(o)); -var p=%SymbolRegistry(); -if((p.for[o]===(void 0))){ -var q=%CreateSymbol(o); -p.for[o]=q; -p.keyFor[q]=o; +var g; +var h=b.ImportNow("match_symbol"); +var i=b.ImportNow("replace_symbol"); +var j=b.ImportNow("search_symbol"); +var k=b.ImportNow("species_symbol"); +var l=b.ImportNow("split_symbol"); +var m=b.ImportNow("to_primitive_symbol"); +var n=b.ImportNow("to_string_tag_symbol"); +var o=b.ImportNow("unscopables_symbol"); +b.Import(function(p){ +g=p.MakeTypeError; +}); +function SymbolToPrimitive(q){ +if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){ +throw g(43, +"Symbol.prototype [ @@toPrimitive ]",this); } -return p.for[o]; +return %_ValueOf(this); } -function SymbolKeyFor(q){ -if(!(typeof(q)==='symbol'))throw %make_type_error(138,q); -return %SymbolRegistry().keyFor[q]; +function SymbolToString(){ +if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){ +throw g(43, +"Symbol.prototype.toString",this); +} +return %SymbolDescriptiveString(%_ValueOf(this)); +} +function SymbolValueOf(){ +if(!((typeof(this)==='symbol')||(%_ClassOf(this)==='Symbol'))){ +throw g(43, +"Symbol.prototype.valueOf",this); +} +return %_ValueOf(this); +} +function SymbolFor(r){ +r=(%_ToString(r)); +var s=%SymbolRegistry(); +if((s.for[r]===(void 0))){ +var t=%CreateSymbol(r); +s.for[r]=t; +s.keyFor[t]=r; +} +return s.for[r]; +} +function SymbolKeyFor(t){ +if(!(typeof(t)==='symbol'))throw g(136,t); +return %SymbolRegistry().keyFor[t]; } b.InstallConstants(c,[ "hasInstance",d, "isConcatSpreadable",e, "iterator",f, -"match",g, -"replace",h, -"search",i, -"species",j, -"split",k, -"toPrimitive",l, -"toStringTag",m, -"unscopables",n, +"match",h, +"replace",i, +"search",j, +"species",k, +"split",l, +"toPrimitive",m, +"toStringTag",n, +"unscopables",o, ]); b.InstallFunctions(c,2,[ "for",SymbolFor, "keyFor",SymbolKeyFor ]); +%AddNamedProperty( +c.prototype,n,"Symbol",2|1); +b.InstallFunctions(c.prototype,2|1,[ +m,SymbolToPrimitive +]); +b.InstallFunctions(c.prototype,2,[ +"toString",SymbolToString, +"valueOf",SymbolValueOf +]); +b.Export(function(u){ +u.SymbolToString=SymbolToString; +}) }) -array�` +array2w (function(a,b,c){ "use strict"; %CheckIsBootstrapping(); @@ -4888,68 +5078,72 @@ var h=b.InternalPackedArray; var i; var j; var k; -var l=b.ImportNow("object_to_string"); -var m=b.ImportNow("iterator_symbol"); -var n=b.ImportNow("species_symbol"); -var o=b.ImportNow("unscopables_symbol"); -b.Import(function(p){ -d=p.GetIterator; -e=p.GetMethod; -i=p.MaxSimple; -j=p.MinSimple; -k=p.ObjectHasOwnProperty; +var l; +var m=b.ImportNow("object_to_string"); +var n=b.ImportNow("iterator_symbol"); +var o=b.ImportNow("species_symbol"); +var p=b.ImportNow("unscopables_symbol"); +b.Import(function(q){ +d=q.GetIterator; +e=q.GetMethod; +i=q.MakeTypeError; +j=q.MaxSimple; +k=q.MinSimple; +l=q.ObjectHasOwnProperty; }); -function ArraySpeciesCreate(q,r){ -r=((r)+0); -var s=%ArraySpeciesConstructor(q); -return new s(r); +function ArraySpeciesCreate(r,s){ +s=((s)+0); +var t=%ArraySpeciesConstructor(r); +return new t(s); } -function KeySortCompare(t,u){ -return t-u; +function KeySortCompare(u,v){ +return u-v; } -function GetSortedArrayKeys(q,v){ -if((typeof(v)==='number')){ -var w=v; +function GetSortedArrayKeys(r,w){ +if((typeof(w)==='number')){ var x=new g(); -for(var y=0;y>2; -var I=%EstimateNumberOfElements(q); -return(II*4); +var I=s>>2; +var J=%EstimateNumberOfElements(r); +return(JJ*4); } function Stack(){ this.length=0; @@ -4957,1049 +5151,1152 @@ this.values=new g(); } Stack.prototype.length=null; Stack.prototype.values=null; -function StackPush(J,K){ -J.values[J.length++]=K; +function StackPush(K,L){ +K.values[K.length++]=L; } -function StackPop(J){ -J.values[--J.length]=null +function StackPop(K){ +K.values[--K.length]=null } -function StackHas(J,L){ -var r=J.length; -var M=J.values; -for(var y=0;y=P){ -var T=q[E]; -if(!(T===(void 0))||E in q){ -%CreateDataProperty(S,E-P,T); +var s=w.length; +for(var V=0;V=Q){ +var U=r[F]; +if(!(U===(void 0))||F in r){ +%CreateDataProperty(T,F-Q,U); } } } } } -function SparseMove(q,P,Q,R,V){ -if(V===Q)return; -var W=new g( -j(R-Q+V,0xffffffff)); -var X; -var v=%GetArrayKeys(q,R); -if((typeof(v)==='number')){ -var w=v; -for(var y=0;y=P+Q){ -var T=q[E]; -if(!(T===(void 0))||E in q){ -var Y=E-Q+V; -W[Y]=T; -if(Y>0xfffffffe){ -X=X||new g(); -X.push(Y); +}else if(F>=Q+R){ +var U=r[F]; +if(!(U===(void 0))||F in r){ +var Z=F-R+W; +X[Z]=U; +if(Z>0xfffffffe){ +Y=Y||new g(); +Y.push(Z); } } } } } -%MoveArrayContents(W,q); -if(!(X===(void 0))){ -var r=X.length; -for(var y=0;yQ){ -for(var y=R-Q;y>P;y--){ -var aa=y+Q-1; -var ab=y+V-1; -if(aa in q){ -q[ab]=q[aa]; +function SimpleMove(r,Q,R,S,W){ +if(W!==R){ +if(W>R){ +for(var z=S-R;z>Q;z--){ +var ab=z+R-1; +var ac=z+W-1; +if(ab in r){ +r[ac]=r[ab]; }else{ -delete q[ab]; +delete r[ac]; } } }else{ -for(var y=P;yR-Q+V;y--){ -delete q[y-1]; +for(var z=S;z>S-R+W;z--){ +delete r[z-1]; } } } } function ArrayToString(){ -var q; -var ac; +var r; +var ad; if((%_IsArray(this))){ -ac=this.join; -if(ac===ArrayJoin){ -return Join(this,this.length,',',false); +ad=this.join; +if(ad===ArrayJoin){ +return Join(this,this.length,',',ConvertToString); } -q=this; +r=this; }else{ -q=(%_ToObject(this)); -ac=q.join; +r=(%_ToObject(this)); +ad=r.join; } -if(!(typeof(ac)==='function')){ -return %_Call(l,q); +if(!(typeof(ad)==='function')){ +return %_Call(m,r); } -return %_Call(ac,q); +return %_Call(ad,r); } -function InnerArrayToLocaleString(q,r){ -return Join(q,(%_ToLength(r)),',',true); +function InnerArrayToLocaleString(r,s){ +var S=(%_ToLength(s)); +if(S===0)return""; +return Join(r,S,',',ConvertToLocaleString); } function ArrayToLocaleString(){ -var q=(%_ToObject(this)); -var ad=q.length; -return InnerArrayToLocaleString(q,ad); +var r=(%_ToObject(this)); +var ae=r.length; +return InnerArrayToLocaleString(r,ae); } -function InnerArrayJoin(B,q,r){ -if((B===(void 0))){ -B=','; +function InnerArrayJoin(C,r,s){ +if((C===(void 0))){ +C=','; }else{ -B=(%_ToString(B)); +C=(%_ToString(C)); } -if(r===1){ -var z=q[0]; -if((z==null))return''; -return(%_ToString(z)); +if(s===1){ +var A=r[0]; +if((A==null))return''; +return(%_ToString(A)); } -return Join(q,r,B,false); +return Join(r,s,C,ConvertToString); } -function ArrayJoin(B){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.join"); -var q=(%_ToObject(this)); -var r=(%_ToLength(q.length)); -return InnerArrayJoin(B,q,r); +function ArrayJoin(C){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.join"); +var r=(%_ToObject(this)); +var s=(%_ToLength(r.length)); +return InnerArrayJoin(C,r,s); } function ArrayPop(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.pop"); -var q=(%_ToObject(this)); -var ae=(%_ToLength(q.length)); -if(ae==0){ -q.length=ae; +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.pop"); +var r=(%_ToObject(this)); +var af=(%_ToLength(r.length)); +if(af==0){ +r.length=af; return; } -ae--; -var K=q[ae]; -%DeleteProperty_Strict(q,ae); -q.length=ae; -return K; +af--; +var L=r[af]; +%DeleteProperty_Strict(r,af); +r.length=af; +return L; } function ArrayPush(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.push"); -var q=(%_ToObject(this)); -var ae=(%_ToLength(q.length)); -var af=arguments.length; -if(af>9007199254740991-ae)throw %make_type_error(228,af,ae); -for(var y=0;y9007199254740991-af)throw i(226,ag,af); +for(var z=0;z=y){ -al=y; -while(x[++ai]==y){} -am=R-y-1; +if(al>=z){ +am=z; +while(x[++aj]==z){} +an=S-z-1; } -var an=q[al]; -if(!(an===(void 0))||al in q){ -var ao=q[am]; -if(!(ao===(void 0))||am in q){ -q[al]=ao; -q[am]=an; +var ao=r[am]; +if(!(ao===(void 0))||am in r){ +var ap=r[an]; +if(!(ap===(void 0))||an in r){ +r[am]=ap; +r[an]=ao; }else{ -q[am]=an; -delete q[al]; +r[an]=ao; +delete r[am]; } }else{ -var ao=q[am]; -if(!(ao===(void 0))||am in q){ -q[al]=ao; -delete q[am]; +var ap=r[an]; +if(!(ap===(void 0))||an in r){ +r[am]=ap; +delete r[an]; } } } } -function PackedArrayReverse(q,R){ -var aj=R-1; -for(var y=0;y0&&UseSparseVariant(q,R,(%_IsArray(q)),R)&& -!%object_is_sealed(q)){ -SparseMove(q,0,0,R,as); +function ArrayUnshift(as){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.unshift"); +var r=(%_ToObject(this)); +var S=(%_ToLength(r.length)); +var at=arguments.length; +if(S>0&&UseSparseVariant(r,S,(%_IsArray(r)),S)&& +!%object_is_sealed(r)){ +SparseMove(r,0,0,S,at); }else{ -SimpleMove(q,0,0,R,as); +SimpleMove(r,0,0,S,at); } -for(var y=0;yR)P=R; +if(Q>S)Q=S; } -if(av<0){ -av+=R; -if(av<0)av=0; +if(aw<0){ +aw+=S; +if(aw<0)aw=0; }else{ -if(av>R)av=R; +if(aw>S)aw=S; } -var aw=ArraySpeciesCreate(q,i(av-P,0)); -if(avR?R:P; +return Q>S?S:Q; } -function ComputeSpliceDeleteCount(ax,as,R,P){ -var Q=0; -if(as==1) -return R-P; -Q=(%_ToInteger(ax)); -if(Q<0) +function ComputeSpliceDeleteCount(ay,at,S,Q){ +var R=0; +if(at==1) +return S-Q; +R=(%_ToInteger(ay)); +if(R<0) return 0; -if(Q>R-P) -return R-P; -return Q; +if(R>S-Q) +return S-Q; +return R; } -function ArraySplice(at,ax){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.splice"); -var as=arguments.length; -var q=(%_ToObject(this)); -var R=(%_ToLength(q.length)); -var P=ComputeSpliceStartIndex((%_ToInteger(at)),R); -var Q=ComputeSpliceDeleteCount(ax,as,R, -P); -var S=ArraySpeciesCreate(q,Q); -S.length=Q; -var ay=as>2?as-2:0; -if(Q!=ay&&%object_is_sealed(q)){ -throw %make_type_error(13); -}else if(Q>0&&%object_is_frozen(q)){ -throw %make_type_error(12); -} -var az=Q; -if(ay!=Q){ -az+=R-P-Q; -} -if(UseSparseVariant(q,R,(%_IsArray(q)),az)){ -%NormalizeElements(q); -if((%_IsArray(S)))%NormalizeElements(S); -SparseSlice(q,P,Q,R,S); -SparseMove(q,P,Q,R,ay); -}else{ -SimpleSlice(q,P,Q,R,S); -SimpleMove(q,P,Q,R,ay); -} -var y=P; -var aA=2; -var aB=arguments.length; -while(aA2?at-2:0; +if(R!=az&&%object_is_sealed(r)){ +throw i(13); +}else if(R>0&&%object_is_frozen(r)){ +throw i(12); +} +var aA=R; +if(az!=R){ +aA+=S-Q-R; +} +if(UseSparseVariant(r,S,(%_IsArray(r)),aA)){ +%NormalizeElements(r); +if((%_IsArray(T)))%NormalizeElements(T); +SparseSlice(r,Q,R,S,T); +SparseMove(r,Q,R,S,az); +}else{ +SimpleSlice(r,Q,R,S,T); +SimpleMove(r,Q,R,S,az); +} +var z=Q; +var aB=2; +var aC=arguments.length; +while(aB=p;aj--){ -var aH=t[aj]; -var aI=aC(aH,aG); -if(aI>0){ -t[aj+1]=aH; +var aF=function InsertionSort(u,q,aG){ +for(var z=q+1;z=q;ak--){ +var aI=u[ak]; +var aJ=aD(aI,aH); +if(aJ>0){ +u[ak+1]=aI; }else{ break; } } -t[aj+1]=aG; +u[ak+1]=aH; } }; -var aJ=function(t,p,aF){ -var aK=new g(); -var aL=200+((aF-p)&15); -var aj=0; -p+=1; -aF-=1; -for(var y=p;y>1][0]; -return aM; +var aN=aL[aL.length>>1][0]; +return aN; } -var aN=function QuickSort(t,p,aF){ -var aM=0; +var aO=function QuickSort(u,q,aG){ +var aN=0; while(true){ -if(aF-p<=10){ -aE(t,p,aF); +if(aG-q<=10){ +aF(u,q,aG); return; } -if(aF-p>1000){ -aM=aJ(t,p,aF); -}else{ -aM=p+((aF-p)>>1); -} -var aO=t[p]; -var aP=t[aF-1]; -var aQ=t[aM]; -var aR=aC(aO,aP); -if(aR>0){ -var aH=aO; -aO=aP; -aP=aH; -} -var aS=aC(aO,aQ); -if(aS>=0){ -var aH=aO; -aO=aQ; -aQ=aP; -aP=aH; -}else{ -var aT=aC(aP,aQ); -if(aT>0){ -var aH=aP; +if(aG-q>1000){ +aN=aK(u,q,aG); +}else{ +aN=q+((aG-q)>>1); +} +var aP=u[q]; +var aQ=u[aG-1]; +var aR=u[aN]; +var aS=aD(aP,aQ); +if(aS>0){ +var aI=aP; aP=aQ; -aQ=aH; -} -} -t[p]=aO; -t[aF-1]=aQ; -var aU=aP; -var aV=p+1; -var aW=aF-1; -t[aM]=t[aV]; -t[aV]=aU; -partition:for(var y=aV+1;y0){ +aQ=aI; +} +var aT=aD(aP,aR); +if(aT>=0){ +var aI=aP; +aP=aR; +aR=aQ; +aQ=aI; +}else{ +var aU=aD(aQ,aR); +if(aU>0){ +var aI=aQ; +aQ=aR; +aR=aI; +} +} +u[q]=aP; +u[aG-1]=aR; +var aV=aQ; +var aW=q+1; +var aX=aG-1; +u[aN]=u[aW]; +u[aW]=aV; +partition:for(var z=aW+1;z0){ do{ -aW--; -if(aW==y)break partition; -var aX=t[aW]; -aI=aC(aX,aU); -}while(aI>0); -t[y]=t[aW]; -t[aW]=aG; -if(aI<0){ -aG=t[y]; -t[y]=t[aV]; -t[aV]=aG; -aV++; +aX--; +if(aX==z)break partition; +var aY=u[aX]; +aJ=aD(aY,aV); +}while(aJ>0); +u[z]=u[aX]; +u[aX]=aH; +if(aJ<0){ +aH=u[z]; +u[z]=u[aW]; +u[aW]=aH; +aW++; } } } -if(aF-aW=ba){ba=y+1;} +var aZ=function CopyFromPrototype(ba,s){ +var bb=0; +for(var bc=%object_get_prototype_of(ba);bc; +bc=%object_get_prototype_of(bc)){ +var w=(%_IsJSProxy(bc))?s:%GetArrayKeys(bc,s); +if((typeof(w)==='number')){ +var bd=w; +for(var z=0;z=bb){bb=z+1;} } } }else{ -for(var y=0;y=ba){ba=Z+1;} +for(var z=0;z=bb){bb=aa+1;} } } } } -return ba; +return bb; }; -var bd=function(aZ,p,aF){ -for(var bb=%object_get_prototype_of(aZ);bb; -bb=%object_get_prototype_of(bb)){ -var v=(%_IsJSProxy(bb))?aF:%GetArrayKeys(bb,aF); -if((typeof(v)==='number')){ -var bc=v; -for(var y=p;y=r)Z=r-1; +aa=(((%_ToInteger(aa)))+0); +if(aa<0)aa+=s; +if(aa<0)return-1; +else if(aa>=s)aa=s-1; } var bo=0; -var ba=Z; -if(UseSparseVariant(q,r,(%_IsArray(q)),Z)){ -%NormalizeElements(q); -var v=%GetArrayKeys(q,Z+1); -if((typeof(v)==='number')){ -ba=v; -}else{ -if(v.length==0)return-1; -var bp=GetSortedArrayKeys(q,v); -var y=bp.length-1; -while(y>=0){ -var E=bp[y]; -if(q[E]===aG)return E; -y--; +var bb=aa; +if(UseSparseVariant(r,s,(%_IsArray(r)),aa)){ +%NormalizeElements(r); +var w=%GetArrayKeys(r,aa+1); +if((typeof(w)==='number')){ +bb=w; +}else{ +if(w.length==0)return-1; +var bp=GetSortedArrayKeys(r,w); +var z=bp.length-1; +while(z>=0){ +var F=bp[z]; +if(r[F]===aH)return F; +z--; } return-1; } } -if(!(aG===(void 0))){ -for(var y=ba;y>=bo;y--){ -if(q[y]===aG)return y; +if(!(aH===(void 0))){ +for(var z=bb;z>=bo;z--){ +if(r[z]===aH)return z; } return-1; } -for(var y=ba;y>=bo;y--){ -if((q[y]===(void 0))&&y in q){ -return y; +for(var z=bb;z>=bo;z--){ +if((r[z]===(void 0))&&z in r){ +return z; } } return-1; } -function ArrayLastIndexOf(aG,Z){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.lastIndexOf"); -var r=(%_ToLength(this.length)); -return InnerArrayLastIndexOf(this,aG,Z,r, +function ArrayLastIndexOf(aH,aa){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.lastIndexOf"); +var s=(%_ToLength(this.length)); +return InnerArrayLastIndexOf(this,aH,aa,s, arguments.length); } -function InnerArrayReduce(bq,T,q,r,bn){ -if(!(typeof(bq)==='function')){ -throw %make_type_error(15,bq); +function InnerArrayReduce(br,U,r,s,bq){ +if(!(typeof(br)==='function')){ +throw i(15,br); } -var y=0; -find_initial:if(bn<2){ -for(;y=0;y--){ -if(y in q){ -T=q[y--]; +var z=s-1; +find_initial:if(bq<2){ +for(;z>=0;z--){ +if(z in r){ +U=r[z--]; break find_initial; } } -throw %make_type_error(122); +throw i(120); } -for(;y>=0;y--){ -if(y in q){ -var aG=q[y]; -T=bq(T,aG,y,q); +for(;z>=0;z--){ +if(z in r){ +var aH=r[z]; +U=br(U,aH,z,r); } } -return T; +return U; } -function ArrayReduceRight(bq,T){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.reduceRight"); -var q=(%_ToObject(this)); -var r=(%_ToLength(q.length)); -return InnerArrayReduceRight(bq,T,q,r, +function ArrayReduceRight(br,U){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.reduceRight"); +var r=(%_ToObject(this)); +var s=(%_ToLength(r.length)); +return InnerArrayReduceRight(br,U,r,s, arguments.length); } -function InnerArrayCopyWithin(br,at,au,q,r){ -br=(%_ToInteger(br)); -var aF; -if(br<0){ -aF=i(r+br,0); +function InnerArrayCopyWithin(bs,au,av,r,s){ +bs=(%_ToInteger(bs)); +var aG; +if(bs<0){ +aG=j(s+bs,0); }else{ -aF=j(br,r); +aG=k(bs,s); } -at=(%_ToInteger(at)); -var p; -if(at<0){ -p=i(r+at,0); +au=(%_ToInteger(au)); +var q; +if(au<0){ +q=j(s+au,0); }else{ -p=j(at,r); +q=k(au,s); } -au=(au===(void 0))?r:(%_ToInteger(au)); -var bs; -if(au<0){ -bs=i(r+au,0); +av=(av===(void 0))?s:(%_ToInteger(av)); +var bt; +if(av<0){ +bt=j(s+av,0); }else{ -bs=j(au,r); +bt=k(av,s); } -var bt=j(bs-p,r-aF); -var bu=1; -if(p0){ -if(p in q){ -q[aF]=q[p]; +while(bu>0){ +if(q in r){ +r[aG]=r[q]; }else{ -delete q[aF]; +delete r[aG]; } -p=p+bu; -aF=aF+bu; -bt--; +q=q+bv; +aG=aG+bv; +bu--; } -return q; +return r; } -function ArrayCopyWithin(br,at,au){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Array.prototype.copyWithin"); -var q=(%_ToObject(this)); -var r=(%_ToLength(q.length)); -return InnerArrayCopyWithin(br,at,au,q,r); +function ArrayCopyWithin(bs,au,av){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"Array.prototype.copyWithin"); +var r=(%_ToObject(this)); +var s=(%_ToLength(r.length)); +return InnerArrayCopyWithin(bs,au,av,r,s); } -function InnerArrayFind(bv,bw,q,r){ -if(!(typeof(bv)==='function')){ -throw %make_type_error(15,bv); +function InnerArrayFind(bw,bx,r,s){ +if(!(typeof(bw)==='function')){ +throw i(15,bw); } -for(var y=0;yr)y=r; +if(z>s)z=s; } -if(au<0){ -au+=r; -if(au<0)au=0; +if(av<0){ +av+=s; +if(av<0)av=0; }else{ -if(au>r)au=r; +if(av>s)av=s; } -if((au-y)>0&&%object_is_frozen(q)){ -throw %make_type_error(12); +if((av-z)>0&&%object_is_frozen(r)){ +throw i(12); } -for(;y=0){ +V=af; }else{ -bC=bD; +V=s+af; +if(V<0){ +V=0; } -%CreateDataProperty(aw,U,bC); -U++; } -aw.length=U; -return aw; +while(Vv.length)w=v.length; -return %StringIndexOf(v,t,w); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.concat"); +var s=(%_ToString(this)); +var t=arguments.length; +for(var u=0;ux.length)y=x.length; +return %StringIndexOf(x,v,y); } %FunctionSetLength(StringIndexOf,1); -function StringMatchJS(t){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.match"); -if(!(t==null)){ -var x=t[k]; -if(!(x===(void 0))){ -return %_Call(x,t,this); -} -} -var v=(%_ToString(this)); -var y=%_NewObject(e,e); -j(y,t); -return y[k](v); -} -function StringReplace(z,A){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.replace"); -if(!(z==null)){ -var B=z[l]; -if(!(B===(void 0))){ -return %_Call(B,z,this,A); -} -} -var v=(%_ToString(this)); -z=(%_ToString(z)); -if(z.length==1&& -v.length>0xFF&& -(typeof(A)==='string')&& -%StringIndexOf(A,'$',0)<0){ -return %StringReplaceOneCharWithString(v,z,A); -} -var C=%StringIndexOf(v,z,0); -if(C<0)return v; -var D=C+z.length; -var E=%_SubString(v,0,C); -if((typeof(A)==='function')){ -E+=A(z,C,v); -}else{ -const captures={length:1}; -const matched=%_SubString(v,C,D); -E+=d(matched,v,C,captures, -(%_ToString(A))); -} -return E+%_SubString(v,D,v.length); -} -function StringSearch(t){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.search"); -if(!(t==null)){ -var F=t[m]; -if(!(F===(void 0))){ -return %_Call(F,t,this); -} -} -var v=(%_ToString(this)); -var y=%_NewObject(e,e); -j(y,t); -return %_Call(y[m],y,v); -} -function StringSlice(C,D){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.slice"); -var q=(%_ToString(this)); -var G=q.length; -var H=(%_ToInteger(C)); -var I=G; -if(!(D===(void 0))){ -I=(%_ToInteger(D)); +function StringLastIndexOf(z,A){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.lastIndexOf"); +var B=(%_ToString(this)); +var C=B.length; +var z=(%_ToString(z)); +var D=z.length; +var y=C-D; +var w=(%_ToNumber(A)); +if(!(!%_IsSmi(%IS_VAR(w))&&!(w==w))){ +w=(%_ToInteger(w)); +if(w<0){ +w=0; +} +if(w+D0xFF&& +(typeof(M)==='string')&& +%StringIndexOf(M,'$',0)<0){ +return %StringReplaceOneCharWithString(x,L,M); +} +var O=%StringIndexOf(x,L,0); +if(O<0)return x; +var P=O+L.length; +var Q=%_SubString(x,0,O); +if((typeof(M)==='function')){ +Q+=M(L,O,x); +}else{ +K[3]=O; +K[4]=P; +Q=ExpandReplacement((%_ToString(M)), +x, +K, +Q); +} +return Q+%_SubString(x,P,x.length); +} +function ExpandReplacement(R,x,S,Q){ +var T=R.length; +var U=%StringIndexOf(R,'$',0); +if(U<0){ +if(T>0)Q+=R; +return Q; +} +if(U>0)Q+=%_SubString(R,0,U); +while(true){ +var V='$'; +var w=U+1; +if(w=48&&W<=57){ +var X=(W-48)<<1; +var Y=1; +var Z=((S)[0]); +if(w+1=48&&U<=57){ +var aa=X*10+((U-48)<<1); +if(aa=0){ +Q+= +%_SubString(x,O,S[(3+(X+1))]); +} +w+=Y; +}else{ +Q+='$'; +} +}else{ +Q+='$'; +} +}else{ +Q+='$'; +} +U=%StringIndexOf(R,'$',w); +if(U<0){ +if(ww){ +Q+=%_SubString(R,w,U); +} +} +return Q; +} +function StringSearch(v){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.search"); +if(!(v==null)){ +var ab=v[o]; +if(!(ab===(void 0))){ +return %_Call(ab,v,this); +} +} +var x=(%_ToString(this)); +var F=%_NewObject(e,e); +l(F,v); +return %_Call(F[o],F,x); +} +function StringSlice(O,P){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.slice"); +var s=(%_ToString(this)); +var ac=s.length; +var ad=(%_ToInteger(O)); +var ae=ac; +if(!(P===(void 0))){ +ae=(%_ToInteger(P)); +} +if(ad<0){ +ad+=ac; +if(ad<0){ +ad=0; } }else{ -if(H>G){ +if(ad>ac){ return''; } } -if(I<0){ -I+=G; -if(I<0){ +if(ae<0){ +ae+=ac; +if(ae<0){ return''; } }else{ -if(I>G){ -I=G; +if(ae>ac){ +ae=ac; } } -if(I<=H){ +if(ae<=ad){ return''; } -return %_SubString(q,H,I); +return %_SubString(s,ad,ae); +} +function StringSplitJS(af,ag){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.split"); +if(!(af==null)){ +var ah=af[p]; +if(!(ah===(void 0))){ +return %_Call(ah,af,this,ag); +} +} +var x=(%_ToString(this)); +ag=((ag===(void 0)))?4294967295:((ag)>>>0); +var T=x.length; +var ai=(%_ToString(af)); +if(ag===0)return[]; +if((af===(void 0)))return[x]; +var aj=ai.length; +if(aj===0)return %StringToArray(x,ag); +return %StringSplit(x,ai,ag); +} +function StringSubstring(O,P){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.subString"); +var s=(%_ToString(this)); +var ac=s.length; +var ad=(%_ToInteger(O)); +if(ad<0){ +ad=0; +}else if(ad>ac){ +ad=ac; +} +var ae=ac; +if(!(P===(void 0))){ +ae=(%_ToInteger(P)); +if(ae>ac){ +ae=ac; +}else{ +if(ae<0)ae=0; +if(ad>ae){ +var ak=ae; +ae=ad; +ad=ak; +} +} +} +return %_SubString(s,ad,ae); +} +function StringSubstr(O,al){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.substr"); +var s=(%_ToString(this)); +var t; +if((al===(void 0))){ +t=s.length; +}else{ +t=(%_ToInteger(al)); +if(t<=0)return''; } -function StringSplitJS(J,K){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.split"); -if(!(J==null)){ -var L=J[n]; -if(!(L===(void 0))){ -return %_Call(L,J,this,K); +if((O===(void 0))){ +O=0; +}else{ +O=(%_ToInteger(O)); +if(O>=s.length)return''; +if(O<0){ +O+=s.length; +if(O<0)O=0; } } -var v=(%_ToString(this)); -K=((K===(void 0)))?4294967295:((K)>>>0); -var M=v.length; -var N=(%_ToString(J)); -if(K===0)return[]; -if((J===(void 0)))return[v]; -var O=N.length; -if(O===0)return %StringToArray(v,K); -return %StringSplit(v,N,K); +var P=O+t; +if(P>s.length)P=s.length; +return %_SubString(s,O,P); } function StringToLowerCaseJS(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLowerCase"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLowerCase"); return %StringToLowerCase((%_ToString(this))); } function StringToLocaleLowerCase(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleLowerCase"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLocaleLowerCase"); return %StringToLowerCase((%_ToString(this))); } function StringToUpperCaseJS(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toUpperCase"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toUpperCase"); return %StringToUpperCase((%_ToString(this))); } function StringToLocaleUpperCase(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleUpperCase"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.toLocaleUpperCase"); return %StringToUpperCase((%_ToString(this))); } -function HtmlEscape(P){ -return %_Call(StringReplace,(%_ToString(P)),/"/g,"""); +function HtmlEscape(am){ +return %_Call(StringReplace,(%_ToString(am)),/"/g,"""); } -function StringAnchor(Q){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.anchor"); -return""+(%_ToString(this))+ +function StringAnchor(an){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.anchor"); +return""+(%_ToString(this))+ ""; } function StringBig(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.big"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.big"); return""+(%_ToString(this))+""; } function StringBlink(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.blink"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.blink"); return""+(%_ToString(this))+""; } function StringBold(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.bold"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.bold"); return""+(%_ToString(this))+""; } function StringFixed(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fixed"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fixed"); return""+(%_ToString(this))+""; } -function StringFontcolor(R){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fontcolor"); -return""+(%_ToString(this))+ +function StringFontcolor(ao){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fontcolor"); +return""+(%_ToString(this))+ ""; } -function StringFontsize(S){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.fontsize"); -return""+(%_ToString(this))+ +function StringFontsize(ap){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.fontsize"); +return""+(%_ToString(this))+ ""; } function StringItalics(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.italics"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.italics"); return""+(%_ToString(this))+""; } -function StringLink(q){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.link"); -return""+(%_ToString(this))+""; +function StringLink(s){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.link"); +return""+(%_ToString(this))+""; } function StringSmall(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.small"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.small"); return""+(%_ToString(this))+""; } function StringStrike(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.strike"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.strike"); return""+(%_ToString(this))+""; } function StringSub(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.sub"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.sub"); return""+(%_ToString(this))+""; } function StringSup(){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.sup"); +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.sup"); return""+(%_ToString(this))+""; } -function StringRepeat(T){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.repeat"); -var q=(%_ToString(this)); -var U=(%_ToInteger(T)); -if(U<0||U===(1/0))throw %make_range_error(158); -if(q.length===0)return""; -if(U>%_MaxSmi())throw %make_range_error(158); -var V=""; +function StringRepeat(aq){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.repeat"); +var s=(%_ToString(this)); +var al=(%_ToInteger(aq)); +if(al<0||al===(1/0))throw h(156); +if(s.length===0)return""; +if(al>%_MaxSmi())throw h(156); +var ar=""; while(true){ -if(U&1)V+=q; -U>>=1; -if(U===0)return V; -q+=q; -} -} -function StringStartsWith(W,u){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.startsWith"); -var q=(%_ToString(this)); -if(g(W)){ -throw %make_type_error(40,"String.prototype.startsWith"); -} -var X=(%_ToString(W)); -var Y=(%_ToInteger(u)); -var G=q.length; -var C=i(h(Y,0),G); -var Z=X.length; -if(Z+C>G){ +if(al&1)ar+=s; +al>>=1; +if(al===0)return ar; +s+=s; +} +} +function StringStartsWith(as,w){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.startsWith"); +var s=(%_ToString(this)); +if(g(as)){ +throw i(39,"String.prototype.startsWith"); +} +var at=(%_ToString(as)); +var A=(%_ToInteger(w)); +var ac=s.length; +var O=k(j(A,0),ac); +var au=at.length; +if(au+O>ac){ return false; } -return %_SubString(q,C,C+Z)===X; +return %_SubString(s,O,O+au)===at; } %FunctionSetLength(StringStartsWith,1); -function StringEndsWith(W,u){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.endsWith"); -var q=(%_ToString(this)); -if(g(W)){ -throw %make_type_error(40,"String.prototype.endsWith"); -} -var X=(%_ToString(W)); -var G=q.length; -var Y=!(u===(void 0))?(%_ToInteger(u)):G -var D=i(h(Y,0),G); -var Z=X.length; -var C=D-Z; -if(C<0){ +function StringEndsWith(as,w){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.endsWith"); +var s=(%_ToString(this)); +if(g(as)){ +throw i(39,"String.prototype.endsWith"); +} +var at=(%_ToString(as)); +var ac=s.length; +var A=!(w===(void 0))?(%_ToInteger(w)):ac +var P=k(j(A,0),ac); +var au=at.length; +var O=P-au; +if(O<0){ return false; } -return %_SubString(q,C,C+Z)===X; +return %_SubString(s,O,O+au)===at; } %FunctionSetLength(StringEndsWith,1); -function StringIncludes(W,u){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.includes"); -var aa=(%_ToString(this)); -if(g(W)){ -throw %make_type_error(40,"String.prototype.includes"); -} -W=(%_ToString(W)); -var Y=(%_ToInteger(u)); -var ab=aa.length; -if(Y<0)Y=0; -if(Y>ab)Y=ab; -var ac=W.length; -if(ac+Y>ab){ +function StringIncludes(as,w){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.includes"); +var R=(%_ToString(this)); +if(g(as)){ +throw i(39,"String.prototype.includes"); +} +as=(%_ToString(as)); +var A=(%_ToInteger(w)); +var av=R.length; +if(A<0)A=0; +if(A>av)A=av; +var aw=as.length; +if(aw+A>av){ return false; } -return %StringIndexOf(aa,W,Y)!==-1; +return %StringIndexOf(R,as,A)!==-1; } %FunctionSetLength(StringIncludes,1); -function StringCodePointAt(Y){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.codePointAt"); -var aa=(%_ToString(this)); -var S=aa.length; -Y=(%_ToInteger(Y)); -if(Y<0||Y>=S){ +function StringCodePointAt(A){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw i(17,"String.prototype.codePointAt"); +var R=(%_ToString(this)); +var ap=R.length; +A=(%_ToInteger(A)); +if(A<0||A>=ap){ return(void 0); } -var ad=%_StringCharCodeAt(aa,Y); -if(ad<0xD800||ad>0xDBFF||Y+1==S){ -return ad; +var ax=%_StringCharCodeAt(R,A); +if(ax<0xD800||ax>0xDBFF||A+1==ap){ +return ax; } -var ae=%_StringCharCodeAt(aa,Y+1); -if(ae<0xDC00||ae>0xDFFF){ -return ad; +var ay=%_StringCharCodeAt(R,A+1); +if(ay<0xDC00||ay>0xDFFF){ +return ax; } -return(ad-0xD800)*0x400+ae+0x2400; +return(ax-0xD800)*0x400+ay+0x2400; } -function StringRaw(af){ +function StringRaw(az){ "use strict"; -var ag=arguments.length; -var ah=(%_ToObject(af)); -var ai=(%_ToObject(ah.raw)); -var aj=(%_ToLength(ai.length)); -if(aj<=0)return""; -var E=(%_ToString(ai[0])); -for(var s=1;s0)?j:0-j; +} +function MathPowJS(j,k){ +return %_MathPow((%_ToNumber(j)),(%_ToNumber(k))); +} function MathRandom(){ -if(e<=2){ -f=%GenerateRandomNumbers(f); -if(%_IsTypedArray(f)){ -e=%_TypedArrayGetLength(f); +if(g<=2){ +h=%GenerateRandomNumbers(h); +if(%_IsTypedArray(h)){ +g=%_TypedArrayGetLength(h); }else{ -e=f.length; +g=h.length; } } -return f[--e]; +return h[--g]; } -%AddNamedProperty(c,g,"Math",1|2); -b.InstallFunctions(c,2,[ +function MathRandomRaw(){ +if(g<=2){ +h=%GenerateRandomNumbers(h); +g=%_TypedArrayGetLength(h); +} +return %_DoubleLo(h[--g])&0x3FFFFFFF; +} +function MathSign(j){ +j=+j; +if(j>0)return 1; +if(j<0)return-1; +return j; +} +function MathAsinh(j){ +j=(%_ToNumber(j)); +if(j===0||!(%_IsSmi(%IS_VAR(j))||((j==j)&&(j!=1/0)&&(j!=-1/0))))return j; +if(j>0)return %math_log(j+%math_sqrt(j*j+1)); +return-%math_log(-j+%math_sqrt(j*j+1)); +} +function MathAcosh(j){ +j=(%_ToNumber(j)); +if(j<1)return f; +if(!(%_IsSmi(%IS_VAR(j))||((j==j)&&(j!=1/0)&&(j!=-1/0))))return j; +return %math_log(j+%math_sqrt(j+1)*%math_sqrt(j-1)); +} +function MathHypot(j,k){ +var l=arguments.length; +var m=0; +for(var n=0;nm)m=o; +arguments[n]=o; +} +if(m===(1/0))return(1/0); +if(m===0)m=1; +var p=0; +var q=0; +for(var n=0;n0)return 1; +if(g<0)return-1; +return g; +} +var i=d(g); +var m; +if(i<22){ +if(i<2.77555756156289135105e-17){ +return g; +} +if(i>=1){ +var j=e(2*i); +m=1-2/(j+2); +}else{ +var j=e(-2*i); +m=-j/(j+2); +} +}else{ +m=1; +} +return(g>=0)?m:-m; +} +b.InstallFunctions(c,2,[ +"sinh",MathSinh, +"cosh",MathCosh, +"tanh",MathTanh +]); +}) + +regexpB  +(function(a,b){ +%CheckIsBootstrapping(); +var c; +var d=a.Array; +var e=a.Object; +var f=a.RegExp; +var g; +var h=b.InternalArray; +var i=b.InternalPackedArray; var j; -var k=e.prototype.exec; -var l=b.ImportNow("match_symbol"); -var m=b.ImportNow("replace_symbol"); -var n=b.ImportNow("search_symbol"); -var o=b.ImportNow("species_symbol"); -var p=b.ImportNow("split_symbol"); -var q; -b.Import(function(r){ -i=r.MaxSimple; -j=r.MinSimple; -q=r.SpeciesConstructor; +var k; +var l; +var m=b.ImportNow("match_symbol"); +var n=b.ImportNow("replace_symbol"); +var o=b.ImportNow("search_symbol"); +var p=b.ImportNow("species_symbol"); +var q=b.ImportNow("split_symbol"); +var r; +b.Import(function(s){ +c=s.ExpandReplacement; +j=s.MakeTypeError; +k=s.MaxSimple; +l=s.MinSimple; +r=s.SpeciesConstructor; }); -var s={ -0:2, -1:"", -2:(void 0), -3:0, -4:0 -}; -function IsRegExp(t){ -if(!(%_IsJSReceiver(t)))return false; -var u=t[l]; -if(!(u===(void 0)))return(!!(u)); -return(%_IsRegExp(t)); -} -function RegExpInitialize(v,w,x){ -w=(w===(void 0))?'':(%_ToString(w)); +var t=new i( +2, +"", +(void 0), +0, +0 +); +function IsRegExp(u){ +if(!(%_IsJSReceiver(u)))return false; +var v=u[m]; +if(!(v===(void 0)))return(!!(v)); +return(%_IsRegExp(u)); +} +function RegExpInitialize(w,x,y){ x=(x===(void 0))?'':(%_ToString(x)); -%RegExpInitializeAndCompile(v,w,x); -return v; +y=(y===(void 0))?'':(%_ToString(y)); +%RegExpInitializeAndCompile(w,x,y); +return w; +} +function PatternFlags(x){ +return((%_RegExpFlags(x)&1)?'g':'')+ +((%_RegExpFlags(x)&2)?'i':'')+ +((%_RegExpFlags(x)&4)?'m':'')+ +((%_RegExpFlags(x)&16)?'u':'')+ +((%_RegExpFlags(x)&8)?'y':''); +} +function RegExpConstructor(x,y){ +var z=new.target; +var A=IsRegExp(x); +if((z===(void 0))){ +z=f; +if(A&&(y===(void 0))&& +x.constructor===z){ +return x; +} } -function PatternFlags(w){ -return((%_RegExpFlags(w)&1)?'g':'')+ -((%_RegExpFlags(w)&2)?'i':'')+ -((%_RegExpFlags(w)&4)?'m':'')+ -((%_RegExpFlags(w)&16)?'u':'')+ -((%_RegExpFlags(w)&8)?'y':''); +if((%_IsRegExp(x))){ +if((y===(void 0)))y=PatternFlags(x); +x=(%_RegExpSource(x)); +}else if(A){ +var B=x; +x=x.source; +if((y===(void 0)))y=B.flags; } -function RegExpCompileJS(w,x){ +var w=%_NewObject(f,z); +return RegExpInitialize(w,x,y); +} +function RegExpCompileJS(x,y){ if(!(%_IsRegExp(this))){ -throw %make_type_error(45, +throw j(43, "RegExp.prototype.compile",this); } -if((%_IsRegExp(w))){ -if(!(x===(void 0)))throw %make_type_error(123); -x=PatternFlags(w); -w=(%_RegExpSource(w)); +if((%_IsRegExp(x))){ +if(!(y===(void 0)))throw j(121); +y=PatternFlags(x); +x=(%_RegExpSource(x)); +} +RegExpInitialize(this,x,y); +} +function DoRegExpExec(C,D,E){ +return %_RegExpExec(C,D,E,t); +} +function RegExpExecNoTests(C,D,F){ +var G=%_RegExpExec(C,D,F,t); +if(G!==null){ +if((%_RegExpFlags(C)&8))C.lastIndex=G[4]; +var H=((G)[0])>>1; +var F=G[3]; +var I=G[4]; +var J=%_SubString(D,F,I); +var K=%_RegExpConstructResult(H,F,D); +K[0]=J; +if(H==1)return K; +var L=3+2; +for(var M=1;MD.length){ +this.lastIndex=0; +return null; } -function RegExpSubclassExec(y,z,B){ -if((B===(void 0))){ -B=y.exec; +}else{ +M=0; +} +var Q=%_RegExpExec(this,D,M,t); +if((Q===null)){ +this.lastIndex=0; +return null; +} +if(P){ +this.lastIndex=t[4]; +} +var H=((Q)[0])>>1; +var F=Q[3]; +var I=Q[4]; +var J=%_SubString(D,F,I); +var K=%_RegExpConstructResult(H,F,D); +K[0]=J; +if(H==1)return K; +var L=3+2; +for(var M=1;MD.length){ +this.lastIndex=0; +return null; +} +}else{ +M=0; +} +var Q=%_RegExpExec(this,D,M,t); +if((Q===null)){ +this.lastIndex=0; +return null; +} +if(P){ +this.lastIndex=t[4]; +} +var H=((Q)[0])>>1; +var F=Q[3]; +var I=Q[4]; +var J=%_SubString(D,F,I); +var K=%_RegExpConstructResult(H,F,D); +K[0]=J; +if(H==1)return K; +var L=3+2; +for(var M=1;MD.length){ +this.lastIndex=0; +return false; +} +var Q=%_RegExpExec(this,D,M,t); +if((Q===null)){ +this.lastIndex=0; +return false; +} +this.lastIndex=t[4]; +return true; +}else{ +var C=this; +var U=(%_RegExpSource(C)); +if(U.length>=3&& +%_StringCharCodeAt(U,0)==46&& +%_StringCharCodeAt(U,1)==42&& +%_StringCharCodeAt(U,2)!=63){ +C=TrimRegExp(C); +} +var Q=%_RegExpExec(C,D,0,t); +if((Q===null)){ +this.lastIndex=0; +return false; +} +return true; +} +} +function RegExpSubclassTest(D){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(45, +throw j(43, 'RegExp.prototype.test',this); } -z=(%_ToString(z)); -var D=RegExpSubclassExec(this,z); -return!(D===null); +D=(%_ToString(D)); +var V=RegExpSubclassExec(this,D); +return!(V===null); } %FunctionRemovePrototype(RegExpSubclassTest); +function TrimRegExp(C){ +if(S!==C){ +S=C; +T= +new f( +%_SubString((%_RegExpSource(C)),2,(%_RegExpSource(C)).length), +((%_RegExpFlags(C)&2)?(%_RegExpFlags(C)&4)?"im":"i" +:(%_RegExpFlags(C)&4)?"m":"")); +} +return T; +} function RegExpToString(){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error( -45,'RegExp.prototype.toString',this); +throw j( +43,'RegExp.prototype.toString',this); } -if(this===f){ +if(this===g){ %IncrementUseCounter(12); } return'/'+(%_ToString(this.source))+'/'+(%_ToString(this.flags)); } -function AtSurrogatePair(E,A){ -if(A+1>=E.length)return false; -var F=%_StringCharCodeAt(E,A); -if(F<0xD800||F>0xDBFF)return false; -var G=%_StringCharCodeAt(E,A+1); -return G>=0xDC00&&G<=0xDFFF; +function AtSurrogatePair(W,E){ +if(E+1>=W.length)return false; +var J=%_StringCharCodeAt(W,E); +if(J<0xD800||J>0xDBFF)return false; +var X=%_StringCharCodeAt(W,E+1); +return X>=0xDC00||X<=0xDFFF; } -function RegExpSplit(z,H){ +function RegExpSplit(D,Y){ if(!(%_IsRegExp(this))){ -throw %make_type_error(45, +throw j(43, "RegExp.prototype.@@split",this); } -var I=this; -var E=(%_ToString(z)); -H=((H===(void 0)))?4294967295:((H)>>>0); -var J=E.length; -if(H===0)return[]; -if(J===0){ -if(DoRegExpExec(I,E,0,0)!==null)return[]; -return[E]; -} -var K=0; -var L=0; -var M=0; -var C=new g(); +var Z=this; +var W=(%_ToString(D)); +Y=((Y===(void 0)))?4294967295:((Y)>>>0); +var aa=W.length; +if(Y===0)return[]; +if(aa===0){ +if(DoRegExpExec(Z,W,0,0)!==null)return[]; +return[W]; +} +var ab=0; +var ac=0; +var ad=0; +var K=new h(); outer_loop: while(true){ -if(L===J){ -C[C.length]=%_SubString(E,K,J); +if(ac===aa){ +K[K.length]=%_SubString(W,ab,aa); break; } -var N=DoRegExpExec(I,E,L); -if(N===null||J===(M=N[3])){ -C[C.length]=%_SubString(E,K,J); +var G=DoRegExpExec(Z,W,ac); +if(G===null||aa===(ad=G[3])){ +K[K.length]=%_SubString(W,ab,aa); break; } -var O=N[4]; -if(L===O&&O===K){ -if((%_RegExpFlags(this)&16)&&AtSurrogatePair(E,L)){ -L+=2; +var ae=G[4]; +if(ac===ae&&ae===ab){ +if((%_RegExpFlags(this)&16)&&AtSurrogatePair(W,ac)){ +ac+=2; }else{ -L++; +ac++; } continue; } -C[C.length]=%_SubString(E,K,M); -if(C.length===H)break; -var P=((N)[0])+3; -for(var Q=3+2;Q=0; -var W=%StringIndexOf(x,'y',0)>=0; -var X=W?x:x+"y"; -var Y=new U(this,X); -var Z=new c(); -var aa=0; -var ab=((H===(void 0)))?4294967295:((H)>>>0); -var ac=z.length; -var ad=0; -if(ab===0)return Z; -var C; -if(ac===0){ -C=RegExpSubclassExec(Y,z); -if((C===null))%AddElement(Z,0,z); -return Z; +D=(%_ToString(D)); +var ah=r(this,f); +var y=(%_ToString(this.flags)); +var R; +if((%_IsRegExp(this))&&ah===f){ +R=this.exec; +if(R===RegExpSubclassExecJS){ +return %_Call(RegExpSplit,this,D,Y); +} +} +var ai=%StringIndexOf(y,'u',0)>=0; +var O=%StringIndexOf(y,'y',0)>=0; +var aj=O?y:y+"y"; +var ak=new ah(this,aj); +var al=new d(); +var am=0; +var an=((Y===(void 0)))?4294967295:((Y)>>>0); +var ao=D.length; +var ap=0; +if(an===0)return al; +var K; +if(ao===0){ +K=RegExpSubclassExec(ak,D); +if((K===null))%AddElement(al,0,D); +return al; } -var ae=ad; -while(ae0){ -an=(ao>>11)+(ao&0x7ff); -}else{ -an=al[++Q]-ao; -} -}else{ -var ap=ak(ao,an,E); -al[Q]=(%_ToString(ap)); -an+=ao.length; -} -} -}else{ -for(var Q=0;Q>1; -var au; -if(at==1){ -var av=%_SubString(E,A,as); -au=ak(av,A,E); -}else{ -var aw=new g(at+2); -for(var ax=0;ax>1; -this.match=ay; -this.subject=E; -} -MatchInfoCaptureWrapper.prototype.at=function(az){ -const D=this.match; -const R=D[(3+(az<<1))]; -if(R<0)return(void 0); -return %_SubString(this.subject,R,D[(3+((az<<1)+1))]); -}; -%SetForceInlineFlag(MatchInfoCaptureWrapper.prototype.at); -function ArrayCaptureWrapper(Z){ -this.length=Z.length; -this.array=Z; -} -ArrayCaptureWrapper.prototype.at=function(az){ -return this.array[az]; -}; -%SetForceInlineFlag(ArrayCaptureWrapper.prototype.at); -function RegExpReplace(z,ak){ -if(!(%_IsRegExp(this))){ -throw %make_type_error(45, -"RegExp.prototype.@@replace",this); +var av=new h(4); +function StringReplaceGlobalRegExpWithFunction(W,C,aw){ +var au=av; +if(au){ +av=null; +}else{ +au=new h(16); +} +var ax=%RegExpExecMultiple(C, +W, +t, +au); +C.lastIndex=0; +if((ax===null)){ +av=au; +return W; } -var E=(%_ToString(z)); -var aA=this; -if(!(typeof(ak)==='function')){ -ak=(%_ToString(ak)); -if(!(%_RegExpFlags(aA)&1)){ -var D=DoRegExpExec(aA,E,0); -if(D==null){ -aA.lastIndex=0 -return E; -} -if(ak.length==0){ -return %_SubString(E,0,D[3])+ -%_SubString(E,D[4],E.length) -} -const captures=new MatchInfoCaptureWrapper(D,E); -const R=D[3]; -const S=D[4]; -const prefix=%_SubString(E,0,R); -const matched=%_SubString(E,R,S); -const suffix=%_SubString(E,S,E.length); -return prefix+ -GetSubstitution(matched,E,R,captures,ak)+ -suffix; -} -aA.lastIndex=0; -return %StringReplaceGlobalRegExpWithString( -E,aA,ak,s); -} -if((%_RegExpFlags(aA)&1)){ -return StringReplaceGlobalRegExpWithFunction(E,aA,ak); -} -return StringReplaceNonGlobalRegExpWithFunction(E,aA,ak); -} -function GetSubstitution(aB,z,aC,aD,au){ -var aE=aB.length; -var aF=z.length; -var aG=aD.length; -var aH=aC+aE; -var C=""; -var aI,aJ,aK,aL,aM,aN,aO; -var aL=%StringIndexOf(au,'$',0); -if(aL<0){ -C+=au; -return C; -} -if(aL>0)C+=%_SubString(au,0,aL); -while(true){ -aJ='$'; -aI=aL+1; -if(aI=48&&aK<=57){ -aM=(aK-48); -aN=1; -if(aI+1=48&&aL<=57){ -aO=aM*10+((aL-48)); -if(aO0){ +az=(aA>>11)+(aA&0x7ff); +}else{ +az=ax[++M]-aA; } +}else{ +var aB=aw(aA,az,W); +ax[M]=(%_ToString(aB)); +az+=aA.length; } } -if(aM!=0&&aM>1; +var aG; +if(aF==1){ +var aH=%_SubString(W,E,aE); +aG=aw(aH,E,W); }else{ -C+='$'; +var aI=new h(aF+2); +for(var L=0;LaI){ -C+=%_SubString(au,aI,aL); +return c(aw,W,t, +%_SubString(W,0,V[3]))+ +%_SubString(W,V[4],W.length); } +aJ.lastIndex=0; +return %StringReplaceGlobalRegExpWithString( +W,aJ,aw,t); +} +if((%_RegExpFlags(aJ)&1)){ +return StringReplaceGlobalRegExpWithFunction(W,aJ,aw); +} +return StringReplaceNonGlobalRegExpWithFunction(W,aJ,aw); +} +function GetSubstitution(aK,D,aL,aM,aG){ +var aN=aK.length; +var aO=D.length; +var aP=aM.length; +var aQ=aL+aN; +var K=""; +var aR,aS,aT,aU,aV,aW,aX; +var aU=%StringIndexOf(aG,'$',0); +if(aU<0){ +K+=aG; +return K; } -return C; +if(aU>0)K+=%_SubString(aG,0,aU); +while(true){ +aS='$'; +aR=aU+1; +if(aR=48&&aT<=57){ +aV=(aT-48); +aW=1; +if(aR+1=48&&aU<=57){ +aX=aV*10+((aU-48)); +if(aX=0xD800&&F<=0xDBFF&&z.length>A+1){ -var G=%_StringCharCodeAt(z,A+1); -if(G>=0xDC00&&G<=0xDFFF){ -aQ=2; +return K; } +if(aU>aR){ +K+=%_SubString(aG,aR,aU); } } -return aQ; +return K; } -function SetAdvancedStringIndex(y,z,V){ -var aR=y.lastIndex; -y.lastIndex=aR+ -AdvanceStringIndex(z,aR,V); +function AdvanceStringIndex(D,E,ai){ +var aZ=1; +if(ai){ +var J=%_StringCharCodeAt(D,E); +if(J>=0xD800&&J<=0xDBFF&&D.length>E+1){ +var X=%_StringCharCodeAt(D,E+1); +if(X>=0xDC00&&X<=0xDFFF){ +aZ=2; +} +} +} +return aZ; } -function RegExpSubclassReplace(z,ak){ +function SetAdvancedStringIndex(C,D,ai){ +var N=C.lastIndex; +C.lastIndex=N+ +AdvanceStringIndex(D,N,ai); +} +function RegExpSubclassReplace(D,aw){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(45, +throw j(43, "RegExp.prototype.@@replace",this); } -z=(%_ToString(z)); -var J=z.length; -var aS=(typeof(ak)==='function'); -if(!aS)ak=(%_ToString(ak)); +D=(%_ToString(D)); +var aa=D.length; +var ba=(typeof(aw)==='function'); +if(!ba)aw=(%_ToString(aw)); var a=(!!(this.global)); if(a){ -var V=(!!(this.unicode)); +var ai=(!!(this.unicode)); this.lastIndex=0; } -var B; +var R; if((%_IsRegExp(this))){ -B=this.exec; -if(B===k){ -return %_Call(RegExpReplace,this,z,ak); +R=this.exec; +if(R===RegExpSubclassExecJS){ +return %_Call(RegExpReplace,this,D,aw); } } -var aT=new g(); -var C,au; +var bb=new h(); +var K,aG; while(true){ -C=RegExpSubclassExec(this,z,B); -B=(void 0); -if((C===null)){ +K=RegExpSubclassExec(this,D,R); +R=(void 0); +if((K===null)){ break; }else{ -aT.push(C); +bb.push(K); if(!a)break; -var ah=(%_ToString(C[0])); -if(ah==="")SetAdvancedStringIndex(this,z,V); -} -} -var aU=""; -var aV=0; -for(var Q=0;Q=aV){ -aU+= -%_SubString(z,aV,aC)+au; -aV=aC+aW; -} -} -if(aV>=J)return aU; -return aU+%_SubString(z,aV,J); +var at=(%_ToString(K[0])); +if(at==="")SetAdvancedStringIndex(this,D,ai); +} +} +var bc=""; +var bd=0; +for(var M=0;M=bd){ +bc+= +%_SubString(D,bd,aL)+aG; +bd=aL+be; +} +} +if(bd>=aa)return bc; +return bc+%_SubString(D,bd,aa); } %FunctionRemovePrototype(RegExpSubclassReplace); -function RegExpSubclassSearch(z){ +function RegExpSubclassSearch(D){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(45, +throw j(43, "RegExp.prototype.@@search",this); } -z=(%_ToString(z)); -var aX=this.lastIndex; -if(aX!=0)this.lastIndex=0; -var C=RegExpSubclassExec(this,z); -var aY=this.lastIndex; -if(aY!=aX)this.lastIndex=aX; -if((C===null))return-1; -return C.index; +D=(%_ToString(D)); +var bf=this.lastIndex; +this.lastIndex=0; +var K=RegExpSubclassExec(this,D); +this.lastIndex=bf; +if((K===null))return-1; +return K.index; } %FunctionRemovePrototype(RegExpSubclassSearch); function RegExpGetLastMatch(){ -var aZ=((s)[1]); -return %_SubString(aZ, -s[3], -s[4]); +var bg=((t)[1]); +return %_SubString(bg, +t[3], +t[4]); } function RegExpGetLastParen(){ -var J=((s)[0]); -if(J<=2)return''; -var aZ=((s)[1]); -var R=s[(3+(J-2))]; -var S=s[(3+(J-1))]; -if(R!=-1&&S!=-1){ -return %_SubString(aZ,R,S); +var aa=((t)[0]); +if(aa<=2)return''; +var bg=((t)[1]); +var F=t[(3+(aa-2))]; +var I=t[(3+(aa-1))]; +if(F!=-1&&I!=-1){ +return %_SubString(bg,F,I); } return""; } function RegExpGetLeftContext(){ -var ba; -var E; -ba=s[3]; -E=((s)[1]); -return %_SubString(E,0,ba); +var bh; +var W; +bh=t[3]; +W=((t)[1]); +return %_SubString(W,0,bh); } function RegExpGetRightContext(){ -var ba; -var E; -ba=s[4]; -E=((s)[1]); -return %_SubString(E,ba,E.length); +var bh; +var W; +bh=t[4]; +W=((t)[1]); +return %_SubString(W,bh,W.length); } -function RegExpMakeCaptureGetter(ag){ +function RegExpMakeCaptureGetter(as){ return function foo(){ -var A=ag*2; -if(A>=((s)[0]))return''; -var bb=s[(3+(A))]; -var bc=s[(3+(A+1))]; -if(bb==-1||bc==-1)return''; -return %_SubString(((s)[1]),bb,bc); +var E=as*2; +if(E>=((t)[0]))return''; +var bi=t[(3+(E))]; +var bj=t[(3+(E+1))]; +if(bi==-1||bj==-1)return''; +return %_SubString(((t)[1]),bi,bj); }; } function RegExpGetFlags(){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error( -124,"RegExp.prototype.flags",(%_ToString(this))); -} -var C=''; -if(this.global)C+='g'; -if(this.ignoreCase)C+='i'; -if(this.multiline)C+='m'; -if(this.unicode)C+='u'; -if(this.sticky)C+='y'; -return C; +throw j( +122,"RegExp.prototype.flags",(%_ToString(this))); +} +var K=''; +if(this.global)K+='g'; +if(this.ignoreCase)K+='i'; +if(this.multiline)K+='m'; +if(this.unicode)K+='u'; +if(this.sticky)K+='y'; +return K; } function RegExpGetGlobal(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(31); return(void 0); } -throw %make_type_error(125,"RegExp.prototype.global"); +throw j(123,"RegExp.prototype.global"); } return(!!((%_RegExpFlags(this)&1))); } %SetForceInlineFlag(RegExpGetGlobal); function RegExpGetIgnoreCase(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(31); return(void 0); } -throw %make_type_error(125,"RegExp.prototype.ignoreCase"); +throw j(123,"RegExp.prototype.ignoreCase"); } return(!!((%_RegExpFlags(this)&2))); } function RegExpGetMultiline(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(31); return(void 0); } -throw %make_type_error(125,"RegExp.prototype.multiline"); +throw j(123,"RegExp.prototype.multiline"); } return(!!((%_RegExpFlags(this)&4))); } function RegExpGetSource(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(30); return"(?:)"; } -throw %make_type_error(125,"RegExp.prototype.source"); +throw j(123,"RegExp.prototype.source"); } return(%_RegExpSource(this)); } function RegExpGetSticky(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(11); return(void 0); } -throw %make_type_error(125,"RegExp.prototype.sticky"); +throw j(123,"RegExp.prototype.sticky"); } return(!!((%_RegExpFlags(this)&8))); } %SetForceInlineFlag(RegExpGetSticky); function RegExpGetUnicode(){ if(!(%_IsRegExp(this))){ -if(this===f){ +if(this===g){ %IncrementUseCounter(13); return(void 0); } -throw %make_type_error(125,"RegExp.prototype.unicode"); +throw j(123,"RegExp.prototype.unicode"); } return(!!((%_RegExpFlags(this)&16))); } @@ -7198,105 +8005,105 @@ return(!!((%_RegExpFlags(this)&16))); function RegExpSpecies(){ return this; } -b.InstallGetter(e,o,RegExpSpecies); -b.InstallFunctions(e.prototype,2,[ +%FunctionSetInstanceClassName(f,'RegExp'); +g=new e(); +%FunctionSetPrototype(f,g); +%AddNamedProperty( +f.prototype,'constructor',f,2); +%SetCode(f,RegExpConstructor); +b.InstallGetter(f,p,RegExpSpecies); +b.InstallFunctions(f.prototype,2,[ +"exec",RegExpSubclassExecJS, "test",RegExpSubclassTest, "toString",RegExpToString, "compile",RegExpCompileJS, -l,RegExpSubclassMatch, -m,RegExpSubclassReplace, -n,RegExpSubclassSearch, -p,RegExpSubclassSplit, +m,RegExpSubclassMatch, +n,RegExpSubclassReplace, +o,RegExpSubclassSearch, +q,RegExpSubclassSplit, ]); -b.InstallGetter(e.prototype,'flags',RegExpGetFlags); -b.InstallGetter(e.prototype,'global',RegExpGetGlobal); -b.InstallGetter(e.prototype,'ignoreCase',RegExpGetIgnoreCase); -b.InstallGetter(e.prototype,'multiline',RegExpGetMultiline); -b.InstallGetter(e.prototype,'source',RegExpGetSource); -b.InstallGetter(e.prototype,'sticky',RegExpGetSticky); -b.InstallGetter(e.prototype,'unicode',RegExpGetUnicode); -var bd=function(){ -var be=((s)[2]); -return(be===(void 0))?"":be; -}; -var bf=function(z){ -((s)[2])=(%_ToString(z)); -}; -%OptimizeObjectForAddingMultipleProperties(e,22); -b.InstallGetterSetter(e,'input',bd,bf, -2); -b.InstallGetterSetter(e,'$_',bd,bf, -2); -var bg=function(bh){}; -b.InstallGetterSetter(e,'lastMatch',RegExpGetLastMatch, -bg,2); -b.InstallGetterSetter(e,'$&',RegExpGetLastMatch,bg, -2); -b.InstallGetterSetter(e,'lastParen',RegExpGetLastParen, -bg,2); -b.InstallGetterSetter(e,'$+',RegExpGetLastParen,bg, -2); -b.InstallGetterSetter(e,'leftContext',RegExpGetLeftContext, -bg,2); -b.InstallGetterSetter(e,'$`',RegExpGetLeftContext,bg, -2); -b.InstallGetterSetter(e,'rightContext',RegExpGetRightContext, -bg,2); -b.InstallGetterSetter(e,"$'",RegExpGetRightContext,bg, -2); -for(var Q=1;Q<10;++Q){ -b.InstallGetterSetter(e,'$'+Q,RegExpMakeCaptureGetter(Q), -bg,2); -} -%ToFastProperties(e); -%InstallToContext(["regexp_last_match_info",s]); -var bi={ -0:2, -1:"", -2:(void 0), -3:0, -4:0 -}; -function InternalRegExpMatch(y,E){ -var N=%_RegExpExec(y,E,0,bi); -if(!(N===null)){ -var bj=((N)[0])>>1; -var R=N[3]; -var S=N[4]; -var F=%_SubString(E,R,S); -var C=%_RegExpConstructResult(bj,R,E); -C[0]=F; -if(bj==1)return C; -var ax=3+2; -for(var Q=1;Q>1; +var F=G[3]; +var I=G[4]; +var J=%_SubString(W,F,I); +var K=%_RegExpConstructResult(H,F,W); +K[0]=J; +if(H==1)return K; +var L=3+2; +for(var M=1;M%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 1!==0){ -throw %make_range_error(169, +am=aj; +if(am % 1!==0){ +throw D(167, "start offset","Uint8Array",1); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 1!==0){ -throw %make_range_error(169, -"byte length","Uint8Array",1); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 1!==0){ +throw D(167, "byte length","Uint8Array",1); } +an=al-am; +ao=an/1; }else{ -ah=ae*1; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*1; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,1,ac,ag,ah,true); +%_TypedArrayInitialize(ah,1,ai,am,an,true); } -function Uint8ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Uint8ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*1; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,1,ac,0,aj,true); +var aq=ap*1; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,1,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,1,null,0,aj,true); +%_TypedArrayInitialize(ah,1,null,0,aq,true); } } -function Uint8ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Uint8ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*1; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,1,null,0,aj,false); +var as=false; +var aq=ap*1; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,1,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,1,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,1,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 1!==0){ -throw %make_range_error(169, +am=aj; +if(am % 1!==0){ +throw D(167, "start offset","Int8Array",1); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 1!==0){ -throw %make_range_error(169, -"byte length","Int8Array",1); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 1!==0){ +throw D(167, "byte length","Int8Array",1); } +an=al-am; +ao=an/1; }else{ -ah=ae*1; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*1; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,2,ac,ag,ah,true); +%_TypedArrayInitialize(ah,2,ai,am,an,true); } -function Int8ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Int8ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*1; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,2,ac,0,aj,true); +var aq=ap*1; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,2,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,2,null,0,aj,true); +%_TypedArrayInitialize(ah,2,null,0,aq,true); } } -function Int8ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Int8ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*1; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,2,null,0,aj,false); +var as=false; +var aq=ap*1; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,2,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,2,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,2,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 2!==0){ -throw %make_range_error(169, +am=aj; +if(am % 2!==0){ +throw D(167, "start offset","Uint16Array",2); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 2!==0){ -throw %make_range_error(169, -"byte length","Uint16Array",2); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 2!==0){ +throw D(167, "byte length","Uint16Array",2); } +an=al-am; +ao=an/2; }else{ -ah=ae*2; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*2; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,3,ac,ag,ah,true); +%_TypedArrayInitialize(ah,3,ai,am,an,true); } -function Uint16ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Uint16ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*2; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,3,ac,0,aj,true); +var aq=ap*2; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,3,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,3,null,0,aj,true); +%_TypedArrayInitialize(ah,3,null,0,aq,true); } } -function Uint16ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Uint16ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*2; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,3,null,0,aj,false); +var as=false; +var aq=ap*2; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,3,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,3,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,3,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); -} -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 2!==0){ -throw %make_range_error(169, +am=aj; +if(am % 2!==0){ +throw D(167, "start offset","Int16Array",2); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 2!==0){ -throw %make_range_error(169, -"byte length","Int16Array",2); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 2!==0){ +throw D(167, "byte length","Int16Array",2); } +an=al-am; +ao=an/2; }else{ -ah=ae*2; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*2; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,4,ac,ag,ah,true); +%_TypedArrayInitialize(ah,4,ai,am,an,true); } -function Int16ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Int16ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*2; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,4,ac,0,aj,true); +var aq=ap*2; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,4,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,4,null,0,aj,true); +%_TypedArrayInitialize(ah,4,null,0,aq,true); } } -function Int16ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Int16ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*2; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,4,null,0,aj,false); +var as=false; +var aq=ap*2; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,4,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,4,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,4,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); -} -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 4!==0){ -throw %make_range_error(169, +am=aj; +if(am % 4!==0){ +throw D(167, "start offset","Uint32Array",4); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 4!==0){ -throw %make_range_error(169, -"byte length","Uint32Array",4); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 4!==0){ +throw D(167, "byte length","Uint32Array",4); } +an=al-am; +ao=an/4; }else{ -ah=ae*4; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*4; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,5,ac,ag,ah,true); +%_TypedArrayInitialize(ah,5,ai,am,an,true); } -function Uint32ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Uint32ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*4; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,5,ac,0,aj,true); +var aq=ap*4; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,5,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,5,null,0,aj,true); +%_TypedArrayInitialize(ah,5,null,0,aq,true); } } -function Uint32ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Uint32ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*4; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,5,null,0,aj,false); +var as=false; +var aq=ap*4; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,5,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,5,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,5,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 4!==0){ -throw %make_range_error(169, +am=aj; +if(am % 4!==0){ +throw D(167, "start offset","Int32Array",4); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 4!==0){ -throw %make_range_error(169, -"byte length","Int32Array",4); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 4!==0){ +throw D(167, "byte length","Int32Array",4); } +an=al-am; +ao=an/4; }else{ -ah=ae*4; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*4; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,6,ac,ag,ah,true); +%_TypedArrayInitialize(ah,6,ai,am,an,true); } -function Int32ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Int32ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*4; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,6,ac,0,aj,true); +var aq=ap*4; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,6,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,6,null,0,aj,true); +%_TypedArrayInitialize(ah,6,null,0,aq,true); } } -function Int32ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Int32ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*4; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,6,null,0,aj,false); +var as=false; +var aq=ap*4; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,6,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,6,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,6,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 4!==0){ -throw %make_range_error(169, +am=aj; +if(am % 4!==0){ +throw D(167, "start offset","Float32Array",4); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 4!==0){ -throw %make_range_error(169, -"byte length","Float32Array",4); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 4!==0){ +throw D(167, "byte length","Float32Array",4); } +an=al-am; +ao=an/4; }else{ -ah=ae*4; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*4; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,7,ac,ag,ah,true); +%_TypedArrayInitialize(ah,7,ai,am,an,true); } -function Float32ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Float32ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*4; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,7,ac,0,aj,true); +var aq=ap*4; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,7,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,7,null,0,aj,true); +%_TypedArrayInitialize(ah,7,null,0,aq,true); } } -function Float32ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Float32ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*4; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,7,null,0,aj,false); +var as=false; +var aq=ap*4; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,7,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,7,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,7,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 8!==0){ -throw %make_range_error(169, +am=aj; +if(am % 8!==0){ +throw D(167, "start offset","Float64Array",8); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 8!==0){ -throw %make_range_error(169, -"byte length","Float64Array",8); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 8!==0){ +throw D(167, "byte length","Float64Array",8); } +an=al-am; +ao=an/8; }else{ -ah=ae*8; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*8; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,8,ac,ag,ah,true); +%_TypedArrayInitialize(ah,8,ai,am,an,true); } -function Float64ArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Float64ArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*8; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,8,ac,0,aj,true); +var aq=ap*8; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,8,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,8,null,0,aj,true); +%_TypedArrayInitialize(ah,8,null,0,aq,true); } } -function Float64ArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Float64ArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*8; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,8,null,0,aj,false); +var as=false; +var aq=ap*8; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,8,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,8,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,8,ar,ap); } -if(!al){ -for(var am=0;am%_MaxSmi()){ -throw %make_range_error(170); +if(!(ak===(void 0))){ +ak=J(ak,168); } -var af=%_ArrayBufferGetByteLength(ac); -var ag; -if((ad===(void 0))){ -ag=0; +var al=%_ArrayBufferGetByteLength(ai); +var am; +if((aj===(void 0))){ +am=0; }else{ -ag=ad; -if(ag % 1!==0){ -throw %make_range_error(169, +am=aj; +if(am % 1!==0){ +throw D(167, "start offset","Uint8ClampedArray",1); } +if(am>al){ +throw D(169); } -var ah; -if((ae===(void 0))){ -if(af % 1!==0){ -throw %make_range_error(169, -"byte length","Uint8ClampedArray",1); } -ah=af-ag; -if(ah<0){ -throw %make_range_error(169, +var an; +var ao; +if((ak===(void 0))){ +if(al % 1!==0){ +throw D(167, "byte length","Uint8ClampedArray",1); } +an=al-am; +ao=an/1; }else{ -ah=ae*1; -if(ag+ah>af){ -throw %make_range_error(170); +var ao=ak; +an=ao*1; } +if((am+an>al) +||(ao>%_MaxSmi())){ +throw D(168); } -%_TypedArrayInitialize(ab,9,ac,ag,ah,true); +%_TypedArrayInitialize(ah,9,ai,am,an,true); } -function Uint8ClampedArrayConstructByLength(ab,ae){ -var ai=(ae===(void 0))? -0:D(ae,170); -if(ae>%_MaxSmi()){ -throw %make_range_error(170); +function Uint8ClampedArrayConstructByLength(ah,ak){ +var ap=(ak===(void 0))? +0:J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var aj=ai*1; -if(aj>%_TypedArrayMaxSizeInHeap()){ -var ac=new h(aj); -%_TypedArrayInitialize(ab,9,ac,0,aj,true); +var aq=ap*1; +if(aq>%_TypedArrayMaxSizeInHeap()){ +var ai=new h(aq); +%_TypedArrayInitialize(ah,9,ai,0,aq,true); }else{ -%_TypedArrayInitialize(ab,9,null,0,aj,true); +%_TypedArrayInitialize(ah,9,null,0,aq,true); } } -function Uint8ClampedArrayConstructByArrayLike(ab,ak,ae){ -var ai=C(ae,170); -if(ai>%_MaxSmi()){ -throw %make_range_error(170); +function Uint8ClampedArrayConstructByArrayLike(ah,ar,ak){ +var ap=J(ak,168); +if(ap>%_MaxSmi()){ +throw D(168); } -var al=false; -var aj=ai*1; -if(aj<=%_TypedArrayMaxSizeInHeap()){ -%_TypedArrayInitialize(ab,9,null,0,aj,false); +var as=false; +var aq=ap*1; +if(aq<=%_TypedArrayMaxSizeInHeap()){ +%_TypedArrayInitialize(ah,9,null,0,aq,false); }else{ -al= -%TypedArrayInitializeFromArrayLike(ab,9,ak,ai); +as= +%TypedArrayInitializeFromArrayLike(ah,9,ar,ap); } -if(!al){ -for(var am=0;am0){ -for(var am=0;am0){ +for(var at=0;at=aL&&aJ>=aK; -aM--){ -aE[ag+aM]=aF[aM]; -aJ-=aI; -aK-=aH; -} -return aM; -} -var aM=CopyRightPart(); -var aN=new g(aM+1-aL); -for(var am=aL;am<=aM;am++){ -aN[am-aL]=aF[am]; -} -for(am=aL;am<=aM;am++){ -aE[ag+am]=aN[am-aL]; -} -} -function TypedArraySet(ab,ag){ -var aO=(ag===(void 0))?0:(%_ToInteger(ag)); -if(aO<0)throw %make_type_error(182); -if(aO>%_MaxSmi()){ -throw %make_range_error(183); -} -switch(%TypedArraySetFastCases(this,ab,aO)){ +var aP= +aK.byteOffset+(am+aM-1)*aO; +var aQ= +aL.byteOffset+aM*aN; +for(var aS=aM-1; +aS>=aR&&aP>=aQ; +aS--){ +aK[am+aS]=aL[aS]; +aP-=aO; +aQ-=aN; +} +return aS; +} +var aS=CopyRightPart(); +var aT=new g(aS+1-aR); +for(var at=aR;at<=aS;at++){ +aT[at-aR]=aL[at]; +} +for(at=aR;at<=aS;at++){ +aK[am+at]=aT[at-aR]; +} +} +function TypedArraySet(ah,am){ +var aU=(am===(void 0))?0:(%_ToInteger(am)); +if(aU<0)throw E(180); +if(aU>%_MaxSmi()){ +throw D(181); +} +switch(%TypedArraySetFastCases(this,ah,aU)){ case 0: return; case 1: -TypedArraySetFromOverlappingTypedArray(this,ab,aO); +TypedArraySetFromOverlappingTypedArray(this,ah,aU); return; case 2: TypedArraySetFromArrayLike(this, -ab,%_TypedArrayGetLength(ab),aO); +ah,%_TypedArrayGetLength(ah),aU); return; case 3: -var ai=ab.length; -if((ai===(void 0))){ -if((typeof(ab)==='number')){ -throw %make_type_error(47); +var ap=ah.length; +if((ap===(void 0))){ +if((typeof(ah)==='number')){ +throw E(45); } return; } -ai=(%_ToLength(ai)); -if(aO+ai>%_TypedArrayGetLength(this)){ -throw %make_range_error(183); +ap=(%_ToLength(ap)); +if(aU+ap>%_TypedArrayGetLength(this)){ +throw D(181); } -TypedArraySetFromArrayLike(this,ab,ai,aO); +TypedArraySetFromArrayLike(this,ah,ap,aU); return; } } %FunctionSetLength(TypedArraySet,1); function TypedArrayGetToStringTag(){ if(!(%_IsTypedArray(this)))return; -var aP=%_ClassOf(this); -if((aP===(void 0)))return; -return aP; +var aV=%_ClassOf(this); +if((aV===(void 0)))return; +return aV; } -function TypedArrayCopyWithin(aE,aQ,ay){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -return k(aE,aQ,ay,this,ae); +function TypedArrayCopyWithin(aK,aW,aF){ +if(!(%_IsTypedArray(this)))throw E(71); +var ak=%_TypedArrayGetLength(this); +return l(aK,aW,aF,this,ak); } %FunctionSetLength(TypedArrayCopyWithin,2); -function TypedArrayEvery(aR,aS){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -return l(aR,aS,this,ae); +function TypedArrayEvery(aX,aY){ +if(!(%_IsTypedArray(this)))throw E(71); +var ak=%_TypedArrayGetLength(this); +return m(aX,aY,this,ak); } %FunctionSetLength(TypedArrayEvery,1); -function TypedArrayForEach(aR,aS){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -q(aR,aS,this,ae); +function TypedArrayForEach(aX,aY){ +if(!(%_IsTypedArray(this)))throw E(71); +var ak=%_TypedArrayGetLength(this); +r(aX,aY,this,ak); } %FunctionSetLength(TypedArrayForEach,1); -function TypedArrayFill(as,aQ,ay){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -return m(as,aQ,ay,this,ae); +function TypedArrayFill(az,aW,aF){ +if(!(%_IsTypedArray(this)))throw E(71); +var ak=%_TypedArrayGetLength(this); +return n(az,aW,aF,this,ak); } %FunctionSetLength(TypedArrayFill,1); -function TypedArrayFilter(aR,aT){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -if(!(typeof(aR)==='function'))throw %make_type_error(15,aR); -var aU=new x(); -n(aR,aT,this,ae,aU); -var aV=aU.length; -var aW=TypedArraySpeciesCreate(this,aV); -for(var am=0;amaZ){ +}else if(be>bf){ return 1; -}else if((!%_IsSmi(%IS_VAR(aY))&&!(aY==aY))&&(!%_IsSmi(%IS_VAR(aZ))&&!(aZ==aZ))){ -return(!%_IsSmi(%IS_VAR(aZ))&&!(aZ==aZ))?0:1; -}else if((!%_IsSmi(%IS_VAR(aY))&&!(aY==aY))){ +}else if(C(be)&&C(bf)){ +return C(bf)?0:1; +}else if(C(be)){ return 1; } return 0; } -function TypedArraySort(ba){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -if((ba===(void 0))){ -ba=TypedArrayComparefn; -} -return v(this,ae,ba); -} -function TypedArrayIndexOf(bb,bc){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -if(ae===0)return-1; -if(!(typeof(bb)==='number'))return-1; -var bd=(%_ToInteger(bc)); -var be; -if(bd===0){ -be=0; -}else if(bd>0){ -be=bd; -}else{ -be=ae+bd; -if(be<0){ -be=0; -} -} -while(be=0){ -if(ae<=bd){ -be=ae-1; -}else if(bd===0){ -be=0; -}else{ -be=bd; -} -}else{ -be=ae+bd; -} -while(be>=0){ -var bf=this[be]; -if(bb===bf){ -return be; -} ---be; -} -return-1; +function TypedArrayLastIndexOf(bh,bi){ +if(!(%_IsTypedArray(this)))throw E(71); +var ak=%_TypedArrayGetLength(this); +return v(this,bh,bi,ak, +arguments.length); } %FunctionSetLength(TypedArrayLastIndexOf,1); -function TypedArrayMap(aR,aT){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); -var ae=%_TypedArrayGetLength(this); -var aU=TypedArraySpeciesCreate(this,ae); -if(!(typeof(aR)==='function'))throw %make_type_error(15,aR); -for(var am=0;am=0){ -be=bd; -}else{ -be=ae+bd; -if(be<0){ -be=0; -} -} -while(be>>12); -n=n+(n<<2); -n=n^(n>>>4); -n=(n*2057)|0; -n=n^(n>>>16); -return n&0x3fffffff; +function ComputeIntegerHash(s,w){ +var p=s; +p=p^w; +p=~p+(p<<15); +p=p^(p>>>12); +p=p+(p<<2); +p=p^(p>>>4); +p=(p*2057)|0; +p=p^(p>>>16); +return p&0x3fffffff; } %SetForceInlineFlag(ComputeIntegerHash); -function GetExistingHash(q){ -if(%_IsSmi(q)){ -return ComputeIntegerHash(q,0); +function GetExistingHash(s){ +if(%_IsSmi(s)){ +return ComputeIntegerHash(s,0); } -if((typeof(q)==='string')){ -var v=%_StringGetRawHashField(q); -if((v&1)===0){ -return v>>>2; +if((typeof(s)==='string')){ +var x=%_StringGetRawHashField(s); +if((x&1)===0){ +return x>>>2; } -}else if((%_IsJSReceiver(q))&&!(%_IsJSProxy(q))&&!(%_ClassOf(q)==='global')){ -var n=(q[f]); -return n; +}else if((%_IsJSReceiver(s))&&!(%_IsJSProxy(s))&&!(%_ClassOf(s)==='global')){ +var p=(s[f]); +return p; } -return %GenericHash(q); +return %GenericHash(s); } %SetForceInlineFlag(GetExistingHash); -function GetHash(q){ -var n=GetExistingHash(q); -if((n===(void 0))){ -n=(g()*0x40000000)|0; -if(n===0)n=1; -(q[f]=n); +function GetHash(s){ +var p=GetExistingHash(s); +if((p===(void 0))){ +p=g()|0; +if(p===0)p=1; +(s[f]=p); } -return n; +return p; } %SetForceInlineFlag(GetHash); -function SetConstructor(w){ +function SetConstructor(y){ if((new.target===(void 0))){ -throw %make_type_error(27,"Set"); +throw h(27,"Set"); } %_SetInitialize(this); -if(!(w==null)){ -var x=this.add; -if(!(typeof(x)==='function')){ -throw %make_type_error(87,x,'add',this); +if(!(y==null)){ +var z=this.add; +if(!(typeof(z)==='function')){ +throw h(85,z,'add',this); } -for(var y of w){ -%_Call(x,this,y); +for(var A of y){ +%_Call(z,this,A); } } } -function SetAdd(q){ +function SetAdd(s){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45,'Set.prototype.add',this); -} -if(q===0){ -q=0; -} -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetHash(q); -if(SetFindEntry(m,o,q,n)!==-1)return this; -var z=((%_FixedArrayGet(m,(1)|0))); -var A=((%_FixedArrayGet(m,(2)|0))); -var B=o<<1; -if((z+A)>=B){ +throw h(43,'Set.prototype.add',this); +} +if(s===0){ +s=0; +} +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetHash(s); +if(SetFindEntry(o,q,s,p)!==-1)return this; +var B=((%_FixedArrayGet(o,(1)|0))); +var C=((%_FixedArrayGet(o,(2)|0))); +var D=q<<1; +if((B+C)>=D){ %SetGrow(this); -m=%_JSCollectionGetTable(this); -o=((%_FixedArrayGet(m,(0)|0))); -z=((%_FixedArrayGet(m,(1)|0))); -A=((%_FixedArrayGet(m,(2)|0))); -} -var r=z+A; -var C=(3+(o)+((r)<<1)); -var p=(n&((o)-1)); -var D=((%_FixedArrayGet(m,(3+(p))|0))); -((%_FixedArraySet(m,(3+(p))|0,r))); -(((%_FixedArraySet(m,(1)|0,(z+1)|0)))); -(%_FixedArraySet(m,(C)|0,q)); -((%_FixedArraySet(m,(C+1)|0,(D)|0))); +o=%_JSCollectionGetTable(this); +q=((%_FixedArrayGet(o,(0)|0))); +B=((%_FixedArrayGet(o,(1)|0))); +C=((%_FixedArrayGet(o,(2)|0))); +} +var t=B+C; +var E=(3+(q)+((t)<<1)); +var r=(p&((q)-1)); +var F=((%_FixedArrayGet(o,(3+(r))|0))); +((%_FixedArraySet(o,(3+(r))|0,t))); +(((%_FixedArraySet(o,(1)|0,(B+1)|0)))); +(%_FixedArraySet(o,(E)|0,s)); +((%_FixedArraySet(o,(E+1)|0,(F)|0))); return this; } -function SetHas(q){ +function SetHas(s){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45,'Set.prototype.has',this); +throw h(43,'Set.prototype.has',this); } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetExistingHash(q); -if((n===(void 0)))return false; -return SetFindEntry(m,o,q,n)!==-1; +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetExistingHash(s); +if((p===(void 0)))return false; +return SetFindEntry(o,q,s,p)!==-1; } -function SetDelete(q){ +function SetDelete(s){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45, +throw h(43, 'Set.prototype.delete',this); } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetExistingHash(q); -if((n===(void 0)))return false; -var r=SetFindEntry(m,o,q,n); -if(r===-1)return false; -var z=((%_FixedArrayGet(m,(1)|0)))-1; -var A=((%_FixedArrayGet(m,(2)|0)))+1; -var C=(3+(o)+((r)<<1)); -(%_FixedArraySet(m,(C)|0,%_TheHole())); -(((%_FixedArraySet(m,(1)|0,(z)|0)))); -(((%_FixedArraySet(m,(2)|0,(A)|0)))); -if(z<(o>>>1))%SetShrink(this); +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetExistingHash(s); +if((p===(void 0)))return false; +var t=SetFindEntry(o,q,s,p); +if(t===-1)return false; +var B=((%_FixedArrayGet(o,(1)|0)))-1; +var C=((%_FixedArrayGet(o,(2)|0)))+1; +var E=(3+(q)+((t)<<1)); +(%_FixedArraySet(o,(E)|0,%_TheHole())); +(((%_FixedArraySet(o,(1)|0,(B)|0)))); +(((%_FixedArraySet(o,(2)|0,(C)|0)))); +if(B<(q>>>1))%SetShrink(this); return true; } function SetGetSize(){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45, +throw h(43, 'Set.prototype.size',this); } -var m=%_JSCollectionGetTable(this); -return((%_FixedArrayGet(m,(1)|0))); +var o=%_JSCollectionGetTable(this); +return((%_FixedArrayGet(o,(1)|0))); } function SetClearJS(){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45, +throw h(43, 'Set.prototype.clear',this); } %_SetClear(this); } -function SetForEach(E,F){ +function SetForEach(G,H){ if(!(%_ClassOf(this)==='Set')){ -throw %make_type_error(45, +throw h(43, 'Set.prototype.forEach',this); } -if(!(typeof(E)==='function'))throw %make_type_error(15,E); -var G=new i(this,2); -var q; -var H=[(void 0)]; -while(%SetIteratorNext(G,H)){ -q=H[0]; -%_Call(E,F,q,q,this); +if(!(typeof(G)==='function'))throw h(15,G); +var I=new k(this,2); +var s; +var J=[(void 0)]; +while(%SetIteratorNext(I,J)){ +s=J[0]; +%_Call(G,H,s,s,this); } } function SetSpecies(){ @@ -9575,10 +10554,10 @@ return this; %FunctionSetLength(e,0); %FunctionSetPrototype(e,new d()); %AddNamedProperty(e.prototype,"constructor",e,2); -%AddNamedProperty(e.prototype,k,"Set", +%AddNamedProperty(e.prototype,m,"Set", 2|1); %FunctionSetLength(SetForEach,1); -b.InstallGetter(e,j,SetSpecies); +b.InstallGetter(e,l,SetSpecies); b.InstallGetter(e.prototype,"size",SetGetSize); b.InstallFunctions(e.prototype,2,[ "add",SetAdd, @@ -9587,130 +10566,130 @@ b.InstallFunctions(e.prototype,2,[ "clear",SetClearJS, "forEach",SetForEach ]); -function MapConstructor(w){ +function MapConstructor(y){ if((new.target===(void 0))){ -throw %make_type_error(27,"Map"); +throw h(27,"Map"); } %_MapInitialize(this); -if(!(w==null)){ -var x=this.set; -if(!(typeof(x)==='function')){ -throw %make_type_error(87,x,'set',this); +if(!(y==null)){ +var z=this.set; +if(!(typeof(z)==='function')){ +throw h(85,z,'set',this); } -for(var I of w){ -if(!(%_IsJSReceiver(I))){ -throw %make_type_error(52,I); +for(var K of y){ +if(!(%_IsJSReceiver(K))){ +throw h(50,K); } -%_Call(x,this,I[0],I[1]); +%_Call(z,this,K[0],K[1]); } } } -function MapGet(q){ +function MapGet(s){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.get',this); } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetExistingHash(q); -if((n===(void 0)))return(void 0); -var r=MapFindEntry(m,o,q,n); -if(r===-1)return(void 0); -return((%_FixedArrayGet(m,((3+(o)+((r)*3))+1)|0))); +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetExistingHash(s); +if((p===(void 0)))return(void 0); +var t=MapFindEntry(o,q,s,p); +if(t===-1)return(void 0); +return((%_FixedArrayGet(o,((3+(q)+((t)*3))+1)|0))); } -function MapSet(q,y){ +function MapSet(s,A){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.set',this); } -if(q===0){ -q=0; +if(s===0){ +s=0; } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetHash(q); -var r=MapFindEntry(m,o,q,n); -if(r!==-1){ -var J=(3+(o)+((r)*3)); -(%_FixedArraySet(m,(J+1)|0,y)); +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetHash(s); +var t=MapFindEntry(o,q,s,p); +if(t!==-1){ +var L=(3+(q)+((t)*3)); +(%_FixedArraySet(o,(L+1)|0,A)); return this; } -var z=((%_FixedArrayGet(m,(1)|0))); -var A=((%_FixedArrayGet(m,(2)|0))); -var B=o<<1; -if((z+A)>=B){ +var B=((%_FixedArrayGet(o,(1)|0))); +var C=((%_FixedArrayGet(o,(2)|0))); +var D=q<<1; +if((B+C)>=D){ %MapGrow(this); -m=%_JSCollectionGetTable(this); -o=((%_FixedArrayGet(m,(0)|0))); -z=((%_FixedArrayGet(m,(1)|0))); -A=((%_FixedArrayGet(m,(2)|0))); -} -r=z+A; -var C=(3+(o)+((r)*3)); -var p=(n&((o)-1)); -var D=((%_FixedArrayGet(m,(3+(p))|0))); -((%_FixedArraySet(m,(3+(p))|0,r))); -(((%_FixedArraySet(m,(1)|0,(z+1)|0)))); -(%_FixedArraySet(m,(C)|0,q)); -(%_FixedArraySet(m,(C+1)|0,y)); -(%_FixedArraySet(m,(C+2)|0,D)); +o=%_JSCollectionGetTable(this); +q=((%_FixedArrayGet(o,(0)|0))); +B=((%_FixedArrayGet(o,(1)|0))); +C=((%_FixedArrayGet(o,(2)|0))); +} +t=B+C; +var E=(3+(q)+((t)*3)); +var r=(p&((q)-1)); +var F=((%_FixedArrayGet(o,(3+(r))|0))); +((%_FixedArraySet(o,(3+(r))|0,t))); +(((%_FixedArraySet(o,(1)|0,(B+1)|0)))); +(%_FixedArraySet(o,(E)|0,s)); +(%_FixedArraySet(o,(E+1)|0,A)); +(%_FixedArraySet(o,(E+2)|0,F)); return this; } -function MapHas(q){ +function MapHas(s){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.has',this); } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetHash(q); -return MapFindEntry(m,o,q,n)!==-1; +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetHash(s); +return MapFindEntry(o,q,s,p)!==-1; } -function MapDelete(q){ +function MapDelete(s){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.delete',this); } -var m=%_JSCollectionGetTable(this); -var o=((%_FixedArrayGet(m,(0)|0))); -var n=GetHash(q); -var r=MapFindEntry(m,o,q,n); -if(r===-1)return false; -var z=((%_FixedArrayGet(m,(1)|0)))-1; -var A=((%_FixedArrayGet(m,(2)|0)))+1; -var C=(3+(o)+((r)*3)); -(%_FixedArraySet(m,(C)|0,%_TheHole())); -(%_FixedArraySet(m,(C+1)|0,%_TheHole())); -(((%_FixedArraySet(m,(1)|0,(z)|0)))); -(((%_FixedArraySet(m,(2)|0,(A)|0)))); -if(z<(o>>>1))%MapShrink(this); +var o=%_JSCollectionGetTable(this); +var q=((%_FixedArrayGet(o,(0)|0))); +var p=GetHash(s); +var t=MapFindEntry(o,q,s,p); +if(t===-1)return false; +var B=((%_FixedArrayGet(o,(1)|0)))-1; +var C=((%_FixedArrayGet(o,(2)|0)))+1; +var E=(3+(q)+((t)*3)); +(%_FixedArraySet(o,(E)|0,%_TheHole())); +(%_FixedArraySet(o,(E+1)|0,%_TheHole())); +(((%_FixedArraySet(o,(1)|0,(B)|0)))); +(((%_FixedArraySet(o,(2)|0,(C)|0)))); +if(B<(q>>>1))%MapShrink(this); return true; } function MapGetSize(){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.size',this); } -var m=%_JSCollectionGetTable(this); -return((%_FixedArrayGet(m,(1)|0))); +var o=%_JSCollectionGetTable(this); +return((%_FixedArrayGet(o,(1)|0))); } function MapClearJS(){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.clear',this); } %_MapClear(this); } -function MapForEach(E,F){ +function MapForEach(G,H){ if(!(%_ClassOf(this)==='Map')){ -throw %make_type_error(45, +throw h(43, 'Map.prototype.forEach',this); } -if(!(typeof(E)==='function'))throw %make_type_error(15,E); -var G=new h(this,3); -var H=[(void 0),(void 0)]; -while(%MapIteratorNext(G,H)){ -%_Call(E,F,H[1],H[0],this); +if(!(typeof(G)==='function'))throw h(15,G); +var I=new i(this,3); +var J=[(void 0),(void 0)]; +while(%MapIteratorNext(I,J)){ +%_Call(G,H,J[1],J[0],this); } } function MapSpecies(){ @@ -9721,9 +10700,9 @@ return this; %FunctionSetPrototype(c,new d()); %AddNamedProperty(c.prototype,"constructor",c,2); %AddNamedProperty( -c.prototype,k,"Map",2|1); +c.prototype,m,"Map",2|1); %FunctionSetLength(MapForEach,1); -b.InstallGetter(c,j,MapSpecies); +b.InstallGetter(c,l,MapSpecies); b.InstallGetter(c.prototype,"size",MapGetSize); b.InstallFunctions(c.prototype,2,[ "get",MapGet, @@ -9742,13 +10721,13 @@ b.InstallFunctions(c.prototype,2,[ "set_has",SetHas, "set_delete",SetDelete, ]); -b.Export(function(K){ -K.GetExistingHash=GetExistingHash; -K.GetHash=GetHash; +b.Export(function(M){ +M.GetExistingHash=GetExistingHash; +M.GetHash=GetHash; }); }) -{ -if(x===true)return; -x=true; -ResolvePromise(v,value); -}; -var z=reason=>{ -if(x===true)return; -x=true; -RejectPromise(v,reason,w); +var r=0; +function CreateResolvingFunctions(s){ +var t=false; +var u=value=>{ +if(t===true)return; +t=true; +ResolvePromise(s,value); +}; +var v=reason=>{ +if(t===true)return; +t=true; +RejectPromise(s,reason); }; return{ __proto__:null, -resolve:y, -reject:z +resolve:u, +reject:v }; } -var A=function Promise(B){ -if(B===m){ -return %_NewObject(A,new.target); +var w=function Promise(x){ +if(x===k){ +return %_NewObject(w,new.target); } -if((new.target===(void 0)))throw %make_type_error(66,this); -if(!(typeof(B)==='function')){ -throw %make_type_error(128,B); +if((new.target===(void 0)))throw e(64,this); +if(!(typeof(x)==='function')){ +throw e(126,x); } -var v=PromiseInit(%_NewObject(A,new.target)); -var C=CreateResolvingFunctions(v,true); -var D=(%_DebugIsActive()!=0); +var s=PromiseInit(%_NewObject(w,new.target)); +var y=CreateResolvingFunctions(s); +var z=(%_DebugIsActive()!=0); try{ -if(D)%DebugPushPromise(v); -B(C.resolve,C.reject); -}%catch(e){ -%_Call(C.reject,(void 0),e); +if(z)%DebugPushPromise(s,Promise); +x(y.resolve,y.reject); +}catch(e){ +%_Call(y.reject,(void 0),e); }finally{ -if(D)%DebugPopPromise(); +if(z)%DebugPopPromise(); } -return v; +return s; } -function PromiseSet(v,E,F){ -(v[n]=E); -(v[o]=F); -(v[j]=(void 0)); -(v[i]=(void 0)); -(v[k]=(void 0)); -return v; +function PromiseSet(s,A,B){ +(s[l]=A); +(s[m]=B); +(s[i]=(void 0)); +(s[h]=(void 0)); +(s[j]=(void 0)); +return s; } -function PromiseCreateAndSet(E,F){ -var v=new A(m); -if((%_DebugIsActive()!=0))PromiseSet(v,kPending,(void 0)); -return PromiseSet(v,E,F); +function PromiseCreateAndSet(A,B){ +var s=new w(k); +if((%_DebugIsActive()!=0))PromiseSet(s,kPending,(void 0)); +return PromiseSet(s,A,B); } -function PromiseInit(v){ -return PromiseSet(v,kPending,(void 0)); +function PromiseInit(s){ +return PromiseSet(s,kPending,(void 0)); } -function FulfillPromise(v,E,F,G){ -if((v[n])===kPending){ -var H=(v[G]); -if(!(H===(void 0))){ -var I=(v[k]); -PromiseEnqueue(F,H,I,E); +function FulfillPromise(s,A,B,C){ +if((s[l])===kPending){ +var D=(s[C]); +if(!(D===(void 0))){ +var D=(s[C]); +var E=(s[j]); +PromiseEnqueue(B,D,E,A); } -PromiseSet(v,E,F); +PromiseSet(s,A,B); } } -function PromiseHandle(F,J,K){ -var D=(%_DebugIsActive()!=0); +function PromiseHandle(B,F,G){ +var z=(%_DebugIsActive()!=0); try{ -if(D)%DebugPushPromise(K.promise); -var L=J(F); -K.resolve(L); -}%catch(exception){ -try{K.reject(exception);}catch(e){} +if(z)%DebugPushPromise(G.promise,PromiseHandle); +var H=F(B); +G.resolve(H); +}catch(exception){ +try{G.reject(exception);}catch(e){} }finally{ -if(D)%DebugPopPromise(); +if(z)%DebugPopPromise(); } } -function PromiseEnqueue(F,H,I,E){ -var M,N,O=(%_DebugIsActive()!=0); +function PromiseEnqueue(B,D,E,A){ +var I,J,K=(%_DebugIsActive()!=0); %EnqueueMicrotask(function(){ -if(O){ -%DebugAsyncTaskEvent({type:"willHandle",id:M,name:N}); +if(K){ +%DebugAsyncTaskEvent({type:"willHandle",id:I,name:J}); } -if((%_IsArray(H))){ -for(var P=0;P{ -if(!(L.resolve===(void 0))||!(L.reject===(void 0))) -throw %make_type_error(84); -L.resolve=y; -L.reject=z; +var H={promise:(void 0),resolve:(void 0),reject:(void 0)}; +H.promise=new Z((u,v)=>{ +if(!(H.resolve===(void 0))||!(H.reject===(void 0))) +throw e(82); +H.resolve=u; +H.reject=v; }); -if(!(typeof(L.resolve)==='function')||!(typeof(L.reject)==='function')) -throw %make_type_error(85); -return L; +if(!(typeof(H.resolve)==='function')||!(typeof(H.reject)==='function')) +throw e(83); +return H; +} +function PromiseDefer(){ +%IncrementUseCounter(19); +return NewPromiseCapability(this); +} +function PromiseAccept(S){ +%IncrementUseCounter(18); +return %_Call(PromiseResolve,this,S); } -function PromiseReject(X){ +function PromiseReject(T){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(16,PromiseResolve); +throw e(16,PromiseResolve); } -if(this===A){ -var v=PromiseCreateAndSet(kRejected,X); -%PromiseRejectEventFromStack(v,X); -return v; +if(this===w){ +var s=PromiseCreateAndSet(kRejected,T); +%PromiseRejectEvent(s,T,false); +return s; }else{ -var ag=NewPromiseCapability(this,true); -%_Call(ag.reject,(void 0),X); -return ag.promise; +var aa=NewPromiseCapability(this); +%_Call(aa.reject,(void 0),T); +return aa.promise; +} +} +function PromiseCreateRejected(T){ +return %_Call(PromiseReject,w,T); } +function PromiseCreateResolved(S){ +return %_Call(PromiseResolve,w,S); } -function PerformPromiseThen(v,Q,R,ah){ -if(!(typeof(Q)==='function'))Q=PromiseIdResolveHandler; -if(!(typeof(R)==='function'))R=PromiseIdRejectHandler; -var E=(v[n]); -switch(E){ +function PromiseThen(M,N){ +var A=(this[l]); +if((A===(void 0))){ +throw e(64,this); +} +var ab=n(this,w); +M=(typeof(M)==='function')?M:PromiseIdResolveHandler; +N=(typeof(N)==='function')?N:PromiseIdRejectHandler; +var G=NewPromiseCapability(ab); +switch(A){ case kPending: -PromiseAttachCallbacks(v,ah,Q,R); +PromiseAttachCallbacks(this,G,M,N); break; case kFulfilled: -PromiseEnqueue((v[o]), -Q,ah,kFulfilled); +PromiseEnqueue((this[m]), +M,G,kFulfilled); break; case kRejected: -if(!(!(v[h]===(void 0)))){ -%PromiseRevokeReject(v); +if(!(!(this[g]===(void 0)))){ +%PromiseRevokeReject(this); } -PromiseEnqueue((v[o]), -R,ah,kRejected); +PromiseEnqueue((this[m]), +N,G,kRejected); break; } -(v[h]=true); -return ah.promise; -} -function PromiseThen(Q,R){ -var E=(this[n]); -if((E===(void 0))){ -throw %make_type_error(66,this); +(this[g]=true); +return G.promise; } -var ai=p(this,A); -var ah=NewPromiseCapability(ai,false); -return PerformPromiseThen(this,Q,R,ah); +function PromiseChain(M,N){ +%IncrementUseCounter(17); +return %_Call(PromiseThen,this,M,N); } -function PromiseCatch(R){ -return this.then((void 0),R); +function PromiseCatch(N){ +return this.then((void 0),N); } -function PromiseResolve(W){ +function PromiseResolve(S){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(16,PromiseResolve); +throw e(16,PromiseResolve); } -if(IsPromise(W)&&W.constructor===this)return W; -if(this===A){ -var v=PromiseCreate(); -var aj=ResolvePromise(v,W); -return v; -} -var ag=NewPromiseCapability(this,true); -var aj=%_Call(ag.resolve,(void 0),W); -return ag.promise; +if(IsPromise(S)&&S.constructor===this)return S; +var aa=NewPromiseCapability(this); +var ac=%_Call(aa.resolve,(void 0),S); +return aa.promise; } -function PromiseAll(ak){ +function PromiseAll(ad){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(16,"Promise.all"); +throw e(16,"Promise.all"); } -var K=NewPromiseCapability(this,false); -var al=new d(); -var am; -var O=(%_DebugIsActive()!=0); -if(O){ -(K.reject[g]=true); -} -function CreateResolveElementFunction(an,ao,ag){ -var ap=false; -return(W)=>{ -if(ap===true)return; -ap=true; -ao[an]=W; -if(--am===0){ -var aq=[]; -%MoveArrayContents(ao,aq); -%_Call(ag.resolve,(void 0),aq); +var G=NewPromiseCapability(this); +var ae=new d(); +var af; +function CreateResolveElementFunction(ag,ah,aa){ +var ai=false; +return(S)=>{ +if(ai===true)return; +ai=true; +ah[ag]=S; +if(--af===0){ +var aj=[]; +%MoveArrayContents(ah,aj); +%_Call(aa.resolve,(void 0),aj); } }; } try{ -var P=0; -am=1; -for(var F of ak){ -var ar=this.resolve(F); -++am; -var as=ar.then( -CreateResolveElementFunction(P,al,K), -K.reject); -if(O&&IsPromise(as)){ -(as[f]=K.promise); -} -++P; -} -if(--am===0){ -var aq=[]; -%MoveArrayContents(al,aq); -%_Call(K.resolve,(void 0),aq); +var L=0; +af=1; +for(var B of ad){ +var ak=this.resolve(B); +++af; +ak.then( +CreateResolveElementFunction(L,ae,G), +G.reject); +(G.reject[f]=G); +++L; +} +if(--af===0){ +var aj=[]; +%MoveArrayContents(ae,aj); +%_Call(G.resolve,(void 0),aj); } }catch(e){ -%_Call(K.reject,(void 0),e); +%_Call(G.reject,(void 0),e); } -return K.promise; +return G.promise; } -function PromiseRace(ak){ +function PromiseRace(ad){ if(!(%_IsJSReceiver(this))){ -throw %make_type_error(16,PromiseRace); -} -var K=NewPromiseCapability(this,false); -var O=(%_DebugIsActive()!=0); -if(O){ -(K.reject[g]=true); +throw e(16,PromiseRace); } +var G=NewPromiseCapability(this); try{ -for(var F of ak){ -var as=this.resolve(F).then(K.resolve, -K.reject); -if(O&&IsPromise(as)){ -(as[f]=K.promise); -} +for(var B of ad){ +this.resolve(B).then(G.resolve,G.reject); +(G.reject[f]=G); } }catch(e){ -K.reject(e) -} -return K.promise; +G.reject(e) } -function PromiseHasUserDefinedRejectHandlerCheck(J,K){ -if((J[g])){ -return PromiseHasUserDefinedRejectHandlerRecursive(K.promise); +return G.promise; } +function PromiseHasUserDefinedRejectHandlerCheck(F,G){ +if(F!==PromiseIdRejectHandler){ +var al=(F[f]); +if((al===(void 0)))return true; +if(PromiseHasUserDefinedRejectHandlerRecursive(al.promise)){ return true; } -function PromiseHasUserDefinedRejectHandlerRecursive(v){ -if((v[l]))return true; -var at=(v[f]); -if(at&& -PromiseHasUserDefinedRejectHandlerRecursive(at)){ +}else if(PromiseHasUserDefinedRejectHandlerRecursive(G.promise)){ return true; } -var au=(v[i]); -var I=(v[k]); -if((au===(void 0)))return false; -if(!(%_IsArray(au))){ -return PromiseHasUserDefinedRejectHandlerCheck(au,I); +return false; } -for(var P=0;P%FunctionRemovePrototype(fn)); +b.Export(function(an){ +an.PromiseChain=PromiseChain; +an.PromiseDefer=PromiseDefer; +an.PromiseAccept=PromiseAccept; +an.PromiseCreateRejected=PromiseCreateRejected; +an.PromiseCreateResolved=PromiseCreateResolved; +an.PromiseThen=PromiseThen; }); }) - messages� + messages� (function(a,b){ %CheckIsBootstrapping(); -var c=b.ImportNow("Script"); -%FunctionSetInstanceClassName(c,'Script'); -%AddNamedProperty(c.prototype,'constructor',c, +var c; +var d; +var e; +var f; +var g= +b.ImportNow("call_site_receiver_symbol"); +var h= +b.ImportNow("call_site_function_symbol"); +var i= +b.ImportNow("call_site_position_symbol"); +var j= +b.ImportNow("call_site_strict_symbol"); +var k= +b.ImportNow("call_site_wasm_obj_symbol"); +var l= +b.ImportNow("call_site_wasm_func_index_symbol"); +var m; +var n= +b.ImportNow("formatted_stack_trace_symbol"); +var o=a.Object; +var p; +var q; +var r; +var s=b.InternalArray; +var t=b.ImportNow("internal_error_symbol"); +var u; +var v=b.ImportNow("object_to_string"); +var w=b.ImportNow("Script"); +var x=b.ImportNow("stack_trace_symbol"); +var y; +var z; +var A=b.ImportNow("to_string_tag_symbol"); +var B; +var C; +var D; +b.Import(function(E){ +c=E.ArrayJoin; +d=E.Bool16x8ToString; +e=E.Bool32x4ToString; +f=E.Bool8x16ToString; +m=E.Float32x4ToString; +p=E.Int16x8ToString; +q=E.Int32x4ToString; +r=E.Int8x16ToString; +u=E.ObjectHasOwnProperty; +y=E.StringIndexOf; +z=E.SymbolToString; +B=E.Uint16x8ToString; +C=E.Uint32x4ToString; +D=E.Uint8x16ToString; +}); +var F; +var G; +var H; +var I; +var J; +var K; +var L; +function NoSideEffectsObjectToString(){ +if((this===(void 0)))return"[object Undefined]"; +if((this===null))return"[object Null]"; +var M=(%_ToObject(this)); +var N=%_ClassOf(M); +var O=%GetDataProperty(M,A); +if(!(typeof(O)==='string')){ +O=N; +} +return`[object ${O}]`; +} +function IsErrorObject(P){ +return(%_Call(u,P,x)); +} +function NoSideEffectsErrorToString(){ +var Q=%GetDataProperty(this,"name"); +var R=%GetDataProperty(this,"message"); +Q=(Q===(void 0))?"Error":NoSideEffectsToString(Q); +R=(R===(void 0))?"":NoSideEffectsToString(R); +if(Q=="")return R; +if(R=="")return Q; +return`${Q}: ${R}`; +} +function NoSideEffectsToString(P){ +if((typeof(P)==='string'))return P; +if((typeof(P)==='number'))return %_NumberToString(P); +if((typeof(P)==='boolean'))return P?'true':'false'; +if((P===(void 0)))return'undefined'; +if((P===null))return'null'; +if((%IsFunction(P))){ +var S=%FunctionToString(P); +if(S.length>128){ +S=%_SubString(S,0,111)+"......"+ +%_SubString(S,S.length-2,S.length); +} +return S; +} +if((typeof(P)==='symbol'))return %_Call(z,P); +if((%IsSimdValue(P))){ +switch(typeof(P)){ +case'float32x4':return %_Call(m,P); +case'int32x4':return %_Call(q,P); +case'int16x8':return %_Call(p,P); +case'int8x16':return %_Call(r,P); +case'uint32x4':return %_Call(C,P); +case'uint16x8':return %_Call(B,P); +case'uint8x16':return %_Call(D,P); +case'bool32x4':return %_Call(e,P); +case'bool16x8':return %_Call(d,P); +case'bool8x16':return %_Call(f,P); +} +} +if((%_IsJSReceiver(P))){ +if(IsErrorObject(P)|| +%GetDataProperty(P,"toString")===ErrorToString){ +return %_Call(NoSideEffectsErrorToString,P); +} +if(%GetDataProperty(P,"toString")===v){ +var T=%GetDataProperty(P,"constructor"); +if((%IsFunction(T))){ +var U=%FunctionGetName(T); +if(U!="")return`#<${U}>`; +} +} +} +return %_Call(NoSideEffectsObjectToString,P); +} +function MakeGenericError(T,V,W,X,Y){ +var Z=new T(FormatMessage(V,W,X,Y)); +Z[t]=true; +return Z; +} +%FunctionSetInstanceClassName(w,'Script'); +%AddNamedProperty(w.prototype,'constructor',w, 2|4|1); +%SetCode(w,function(aa){ +throw MakeError(6); +}); +function FormatMessage(V,W,X,Y){ +var W=NoSideEffectsToString(W); +var X=NoSideEffectsToString(X); +var Y=NoSideEffectsToString(Y); +try{ +return %FormatMessageString(V,W,X,Y); +}catch(e){ +return""; +} +} +function GetLineNumber(R){ +var ab=%MessageGetStartPosition(R); +if(ab==-1)return 0; +var ac=%MessageGetScript(R); +var ad=ac.locationFromPosition(ab,true); +if(ad==null)return 0; +return ad.line+1; +} +function GetColumnNumber(R){ +var ac=%MessageGetScript(R); +var ab=%MessageGetStartPosition(R); +var ad=ac.locationFromPosition(ab,true); +if(ad==null)return-1; +return ad.column; +} +function GetSourceLine(R){ +var ac=%MessageGetScript(R); +var ab=%MessageGetStartPosition(R); +var ad=ac.locationFromPosition(ab,true); +if(ad==null)return""; +return ad.sourceText; +} function ScriptLocationFromPosition(position, include_resource_offset){ return %ScriptPositionInfo(this,position,!!include_resource_offset); @@ -10512,7 +11633,7 @@ function ScriptNameOrSourceURL(){ if(this.source_url)return this.source_url; return this.name; } -b.SetUpLockedPrototype(c,[ +b.SetUpLockedPrototype(w,[ "source", "name", "source_url", @@ -10524,9 +11645,404 @@ b.SetUpLockedPrototype(c,[ "nameOrSourceURL",ScriptNameOrSourceURL, ] ); +function GetStackTraceLine(ae,af,ag,ah){ +return new CallSite(ae,af,ag,false).toString(); +} +function CallSite(ai,af,ag,aj){ +if(!(%IsFunction(af))&&!%IsWasmObject(ai)){ +throw MakeTypeError(18,typeof ai,typeof af); +} +if((new.target===(void 0))){ +return new CallSite(ai,af,ag,aj); +} +if((%IsFunction(af))){ +(this[g]=ai); +(this[h]=af); +}else{ +(this[k]=ai); +(this[l]=((af)>>>0)); +} +(this[i]=((ag)|0)); +(this[j]=(!!(aj))); +} +function CheckCallSite(P,Q){ +if(!(%_IsJSReceiver(P))||!(%_Call(u,P,i))){ +throw MakeTypeError(19,Q); +} +} +function CallSiteGetThis(){ +CheckCallSite(this,"getThis"); +return(this[j]) +?(void 0):(this[g]); +} +function CallSiteGetFunction(){ +CheckCallSite(this,"getFunction"); +return(this[j]) +?(void 0):(this[h]); +} +function CallSiteGetPosition(){ +CheckCallSite(this,"getPosition"); +return(this[i]); +} +function CallSiteGetTypeName(){ +CheckCallSite(this,"getTypeName"); +return GetTypeName((this[g]),false); +} +function CallSiteIsToplevel(){ +CheckCallSite(this,"isTopLevel"); +return %CallSiteIsToplevelRT(this); +} +function CallSiteIsEval(){ +CheckCallSite(this,"isEval"); +return %CallSiteIsEvalRT(this); +} +function CallSiteGetEvalOrigin(){ +CheckCallSite(this,"getEvalOrigin"); +var ac=%FunctionGetScript((this[h])); +return FormatEvalOrigin(ac); +} +function CallSiteGetScriptNameOrSourceURL(){ +CheckCallSite(this,"getScriptNameOrSourceURL"); +return %CallSiteGetScriptNameOrSourceUrlRT(this); +} +function CallSiteGetFunctionName(){ +CheckCallSite(this,"getFunctionName"); +return %CallSiteGetFunctionNameRT(this); +} +function CallSiteGetMethodName(){ +CheckCallSite(this,"getMethodName"); +return %CallSiteGetMethodNameRT(this); +} +function CallSiteGetFileName(){ +CheckCallSite(this,"getFileName"); +return %CallSiteGetFileNameRT(this); +} +function CallSiteGetLineNumber(){ +if((%_Call(u,this,k))){ +return(this[l]); +} +CheckCallSite(this,"getLineNumber"); +return %CallSiteGetLineNumberRT(this); +} +function CallSiteGetColumnNumber(){ +CheckCallSite(this,"getColumnNumber"); +return %CallSiteGetColumnNumberRT(this); +} +function CallSiteIsNative(){ +CheckCallSite(this,"isNative"); +return %CallSiteIsNativeRT(this); +} +function CallSiteIsConstructor(){ +CheckCallSite(this,"isConstructor"); +return %CallSiteIsConstructorRT(this); +} +function CallSiteToString(){ +if((%_Call(u,this,k))){ +var ak=this.getFunctionName(); +var al=(this[l]); +var ag=this.getPosition(); +if((ak===null))ak=""; +return ak+" (["+al+"]+"+ag+")"; +} +var am; +var an=""; +if(this.isNative()){ +an="native"; +}else{ +am=this.getScriptNameOrSourceURL(); +if(!am&&this.isEval()){ +an=this.getEvalOrigin(); +an+=", "; +} +if(am){ +an+=am; +}else{ +an+=""; +} +var ao=this.getLineNumber(); +if(ao!=null){ +an+=":"+ao; +var ap=this.getColumnNumber(); +if(ap){ +an+=":"+ap; +} +} +} +var aq=""; +var ar=this.getFunctionName(); +var as=true; +var at=this.isConstructor(); +var au=!(this.isToplevel()||at); +if(au){ +var av=GetTypeName((this[g]),true); +var aw=this.getMethodName(); +if(ar){ +if(av&&%_Call(y,ar,av)!=0){ +aq+=av+"."; +} +aq+=ar; +if(aw&& +(%_Call(y,ar,"."+aw)!= +ar.length-aw.length-1)){ +aq+=" [as "+aw+"]"; +} +}else{ +aq+=av+"."+(aw||""); +} +}else if(at){ +aq+="new "+(ar||""); +}else if(ar){ +aq+=ar; +}else{ +aq+=an; +as=false; +} +if(as){ +aq+=" ("+an+")"; +} +return aq; +} +b.SetUpLockedPrototype(CallSite,["receiver","fun","pos"],[ +"getThis",CallSiteGetThis, +"getTypeName",CallSiteGetTypeName, +"isToplevel",CallSiteIsToplevel, +"isEval",CallSiteIsEval, +"getEvalOrigin",CallSiteGetEvalOrigin, +"getScriptNameOrSourceURL",CallSiteGetScriptNameOrSourceURL, +"getFunction",CallSiteGetFunction, +"getFunctionName",CallSiteGetFunctionName, +"getMethodName",CallSiteGetMethodName, +"getFileName",CallSiteGetFileName, +"getLineNumber",CallSiteGetLineNumber, +"getColumnNumber",CallSiteGetColumnNumber, +"isNative",CallSiteIsNative, +"getPosition",CallSiteGetPosition, +"isConstructor",CallSiteIsConstructor, +"toString",CallSiteToString +]); +function FormatEvalOrigin(ac){ +var ax=ac.nameOrSourceURL(); +if(ax){ +return ax; +} +var ay="eval at "; +if(ac.eval_from_function_name){ +ay+=ac.eval_from_function_name; +}else{ +ay+=""; +} +var az=ac.eval_from_script; +if(az){ +if(az.compilation_type==1){ +ay+=" ("+FormatEvalOrigin(az)+")"; +}else{ +if(az.name){ +ay+=" ("+az.name; +var ad=az.locationFromPosition( +ac.eval_from_script_position,true); +if(ad){ +ay+=":"+(ad.line+1); +ay+=":"+(ad.column+1); +} +ay+=")"; +}else{ +ay+=" (unknown source)"; +} +} +} +return ay; +} +function FormatErrorString(Z){ +try{ +return %_Call(ErrorToString,Z); +}catch(e){ +try{ +return""; +}catch(ee){ +return""; +} +} +} +function GetStackFrames(aA){ +var aB=new s(); +%MoveArrayContents(aA,aB); +var aC=new s(); +var aD=aB[0]; +for(var aE=1;aE"; +}catch(ee){ +aq=""; +} +} +aK.push(" at "+aq); +} +return %_Call(c,aK,"\n"); +} +function GetTypeName(ai,aM){ +if((ai==null))return null; +if((%_IsJSProxy(ai)))return"Proxy"; +var T=%GetDataProperty((%_ToObject(ai)),"constructor"); +if(!(%IsFunction(T))){ +return aM?null:%_Call(NoSideEffectsToString,ai); +} +return %FunctionGetName(T); +} +var aN=function(){ +var aO=(void 0); +var aP=this; +while(aP){ +var aO= +(aP[n]); +if((aO===(void 0))){ +var aJ=(aP[x]); +if((aJ===(void 0))){ +aP=%object_get_prototype_of(aP); +continue; +} +aO=FormatStackTrace(aP,aJ); +(aP[x]=(void 0)); +(aP[n]=aO); +} +return aO; +} +return(void 0); +}; +var aQ=function(aR){ +if(IsErrorObject(this)){ +(this[x]=(void 0)); +(this[n]=aR); +} +}; +var aS=function(){}; +function SetUpError(aT){ +%FunctionSetInstanceClassName(aT,'Error'); +var Q=aT.name; +var aU=new o(); +if(Q!=='Error'){ +%InternalSetPrototype(aT,F); +%InternalSetPrototype(aU,F.prototype); +} +%FunctionSetPrototype(aT,aU); +%AddNamedProperty(aT.prototype,'name',Q,2); +%AddNamedProperty(aT.prototype,'message','',2); +%AddNamedProperty( +aT.prototype,'constructor',aT,2); +%SetCode(aT,function(aV){ +if((new.target===(void 0)))return new aT(aV); +try{aS(this,aT);}catch(e){} +if(!(aV===(void 0))){ +%AddNamedProperty(this,'message',(%_ToString(aV)),2); +} +}); +%SetNativeFlag(aT); +return aT; +}; +F=SetUpError(a.Error); +L=SetUpError(a.EvalError); +H=SetUpError(a.RangeError); +K=SetUpError(a.ReferenceError); +J=SetUpError(a.SyntaxError); +G=SetUpError(a.TypeError); +I=SetUpError(a.URIError); +b.InstallFunctions(F.prototype,2, +['toString',ErrorToString]); +function ErrorToString(){ +if(!(%_IsJSReceiver(this))){ +throw MakeTypeError(16,"Error.prototype.toString"); +} +var Q=this.name; +Q=(Q===(void 0))?"Error":(%_ToString(Q)); +var R=this.message; +R=(R===(void 0))?"":(%_ToString(R)); +if(Q=="")return R; +if(R=="")return Q; +return`${Q}: ${R}` +} +function MakeError(V,W,X,Y){ +return MakeGenericError(F,V,W,X,Y); +} +function MakeRangeError(V,W,X,Y){ +return MakeGenericError(H,V,W,X,Y); +} +function MakeSyntaxError(V,W,X,Y){ +return MakeGenericError(J,V,W,X,Y); +} +function MakeTypeError(V,W,X,Y){ +return MakeGenericError(G,V,W,X,Y); +} +function MakeURIError(){ +return MakeGenericError(I,279); +} +var aW=MakeRangeError(177); +b.InstallGetterSetter(aW,'stack', +aN,aQ) +aS=function captureStackTrace(P,aX){ +%object_define_property(P,'stack',{get:aN, +set:aQ, +configurable:true}); +%CollectStackTrace(P,aX?aX:aS); +}; +F.captureStackTrace=aS; +%InstallToContext([ +"get_stack_trace_line_fun",GetStackTraceLine, +"make_error_function",MakeGenericError, +"make_range_error",MakeRangeError, +"make_type_error",MakeTypeError, +"message_get_column_number",GetColumnNumber, +"message_get_line_number",GetLineNumber, +"message_get_source_line",GetSourceLine, +"no_side_effects_to_string_fun",NoSideEffectsToString, +"stack_overflow_boilerplate",aW, +]); +b.Export(function(aY){ +aY.ErrorToString=ErrorToString; +aY.MakeError=MakeError; +aY.MakeRangeError=MakeRangeError; +aY.MakeSyntaxError=MakeSyntaxError; +aY.MakeTypeError=MakeTypeError; +aY.MakeURIError=MakeURIError; +}); }); -8array-iterator5& +8array-iterator% (function(a,b){ "use strict"; %CheckIsBootstrapping(); @@ -10539,49 +12055,53 @@ b.ImportNow("array_iterator_object_symbol"); var f=a.Array; var g=b.ImportNow("IteratorPrototype"); var h=b.ImportNow("iterator_symbol"); -var i=b.ImportNow("to_string_tag_symbol"); -var j=%object_get_prototype_of(a.Uint8Array); +var i; +var j=b.ImportNow("to_string_tag_symbol"); +var k=%object_get_prototype_of(a.Uint8Array); +b.Import(function(l){ +i=l.MakeTypeError; +}) function ArrayIterator(){} -function CreateArrayIterator(k,l){ -var m=(%_ToObject(k)); -var n=new ArrayIterator; -(n[e]=m); -(n[d]=0); -(n[c]=l); -return n; +function CreateArrayIterator(m,n){ +var o=(%_ToObject(m)); +var p=new ArrayIterator; +(p[e]=o); +(p[d]=0); +(p[c]=n); +return p; } function ArrayIteratorIterator(){ return this; } function ArrayIteratorNext(){ -var n=this; -var o=(void 0); -var p=true; -if(!(%_IsJSReceiver(n))|| -!(!(n[d]===(void 0)))){ -throw %make_type_error(45, +var p=this; +var q=(void 0); +var r=true; +if(!(%_IsJSReceiver(p))|| +!(!(p[d]===(void 0)))){ +throw i(43, 'Array Iterator.prototype.next',this); } -var k=(n[e]); -if(!(k===(void 0))){ -var q=(n[d]); -var r=(n[c]); -var s=((k.length)>>>0); -if(q>=s){ -(n[e]=(void 0)); +var m=(p[e]); +if(!(m===(void 0))){ +var s=(p[d]); +var t=(p[c]); +var u=((m.length)>>>0); +if(s>=u){ +(p[e]=(void 0)); }else{ -(n[d]=q+1); -if(r==2){ -o=k[q]; -}else if(r==3){ -o=[q,k[q]]; +(p[d]=s+1); +if(t==2){ +q=m[s]; +}else if(t==3){ +q=[s,m[s]]; }else{ -o=q; +q=s; } -p=false; +r=false; } } -return %_CreateIterResultObject(o,p); +return %_CreateIterResultObject(q,r); } function ArrayEntries(){ return CreateArrayIterator(this,3); @@ -10593,15 +12113,15 @@ function ArrayKeys(){ return CreateArrayIterator(this,1); } function TypedArrayEntries(){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); +if(!(%_IsTypedArray(this)))throw i(71); return %_Call(ArrayEntries,this); } function TypedArrayValues(){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); +if(!(%_IsTypedArray(this)))throw i(71); return %_Call(ArrayValues,this); } function TypedArrayKeys(){ -if(!(%_IsTypedArray(this)))throw %make_type_error(73); +if(!(%_IsTypedArray(this)))throw i(71); return %_Call(ArrayKeys,this); } %FunctionSetPrototype(ArrayIterator,{__proto__:g}); @@ -10610,31 +12130,101 @@ b.InstallFunctions(ArrayIterator.prototype,2,[ 'next',ArrayIteratorNext ]); b.SetFunctionName(ArrayIteratorIterator,h); -%AddNamedProperty(ArrayIterator.prototype,i, +%AddNamedProperty(ArrayIterator.prototype,j, "Array Iterator",1|2); b.InstallFunctions(f.prototype,2,[ 'entries',ArrayEntries, 'keys',ArrayKeys ]); b.SetFunctionName(ArrayValues,'values'); -%FunctionRemovePrototype(ArrayValues); -%SetNativeFlag(ArrayValues); %AddNamedProperty(f.prototype,h,ArrayValues, 2); -b.InstallFunctions(j.prototype,2,[ +b.InstallFunctions(k.prototype,2,[ 'entries',TypedArrayEntries, 'keys',TypedArrayKeys, 'values',TypedArrayValues ]); -%AddNamedProperty(j.prototype, +%AddNamedProperty(k.prototype, h,TypedArrayValues,2); -%AddNamedProperty(j.prototype,'__nw_is_gta',1,1|2); -b.Export(function(t){ -t.ArrayValues=ArrayValues; +%AddNamedProperty(k.prototype,'__nw_is_gta',1,1|2); +b.Export(function(v){ +v.ArrayValues=ArrayValues; }); %InstallToContext(["array_values_iterator",ArrayValues]); }) +>>0); +if(p>=q){ +(m[g]=(void 0)); +}else{ +var r=%_StringCharCodeAt(l,p); +n=%_StringCharFromCode(r); +o=false; +p++; +if(r>=0xD800&&r<=0xDBFF&&p=0xDC00&&s<=0xDFFF){ +n+=%_StringCharFromCode(s); +p++; +} +} +(m[h]=p); +} +} +return %_CreateIterResultObject(n,o); +} +function StringPrototypeIterator(){ +return CreateStringIterator(this); +} +%FunctionSetPrototype(StringIterator,{__proto__:d}); +%FunctionSetInstanceClassName(StringIterator,'String Iterator'); +b.InstallFunctions(StringIterator.prototype,2,[ +'next',StringIteratorNext +]); +%AddNamedProperty(StringIterator.prototype,i, +"String Iterator",1|2); +b.SetFunctionName(StringPrototypeIterator,e); +%AddNamedProperty(c.prototype,e, +StringPrototypeIterator,2); +}) + $templates (function(a,b){ "use strict"; @@ -10683,31 +12273,35 @@ return SetCachedCallSite(%object_freeze(l),m); %InstallToContext(["get_template_call_site",GetTemplateCallSite]); }) -spread5 +spread� (function(a,b){ 'use strict'; var c=b.InternalArray; +var d; +b.Import(function(e){ +d=e.MakeTypeError; +}); function SpreadArguments(){ -var d=arguments.length; -var e=new c(); -for(var f=0;f{ -%_Call(d,v,sentValue); -return; -}; -var z=sentError=>{ -%_Call(e,v,sentError); -return; -} -var A=h(f,false); -(A.promise[s]=true); -if((%_DebugIsActive()!=0)){ -if(g(w)){ -(z[q]=true); -} -(A.promise[p]=x); -} -i(u,y,z,A); -} -function AsyncFunctionAwaitUncaught(v,w,x){ -AsyncFunctionAwait(v,w,x); -} -function AsyncFunctionAwaitCaught(v,w,x){ -if((%_DebugIsActive()!=0)&&g(w)){ -(w[r]=true); -} -AsyncFunctionAwait(v,w,x); -} -function RejectPromiseNoDebugEvent(u,B){ -return l(u,B,false); -} -function AsyncFunctionPromiseCreate(){ -var u=j(); -if((%_DebugIsActive()!=0)){ -%DebugPushPromise(u); -var C=k(); -(u[o]=C); -%DebugAsyncTaskEvent({ -type:"enqueueRecurring", -id:C, -name:"async function", -}); -} -return u; -} -function AsyncFunctionPromiseRelease(u){ -if((%_DebugIsActive()!=0)){ -var C=(u[o]); -%DebugAsyncTaskEvent({ -type:"cancel", -id:C, -name:"async function", -}); -%DebugPopPromise(); -} -} -%InstallToContext([ -"async_function_await_caught",AsyncFunctionAwaitCaught, -"async_function_await_uncaught",AsyncFunctionAwaitUncaught, -"reject_promise_no_debug_event",RejectPromiseNoDebugEvent, -"async_function_promise_create",AsyncFunctionPromiseCreate, -"async_function_promise_release",AsyncFunctionPromiseRelease, -]); -}) - -i18n� +i18n�� (function(a,b){ "use strict"; %CheckIsBootstrapping(); var c; var d; -var e=a.Date; -var f=a.Number; -var g=a.RegExp; -var h=a.String; -var i=b.InstallFunctions; -var j=b.InstallGetter; -var k=b.InternalArray; -var l; -var m -var n=b.ImportNow("ObjectHasOwnProperty"); -var o=b.OverrideFunction; -var p=b.ImportNow("intl_pattern_symbol"); -var q=b.ImportNow("intl_resolved_symbol"); -var r=b.SetFunctionName; +var e; +var f; +var g=a.Date; +var h=a.Number; +var i=a.RegExp; +var j=a.String; +var k=b.InstallFunctions; +var l=b.InstallGetter; +var m=b.InternalArray; +var n; +var o +var p; +var q; +var r; var s; -var t=h.prototype.substr; -var u=h.prototype.substring; -b.Import(function(v){ -c=v.ArrayJoin; -d=v.ArrayPush; -l=v.InternalRegExpMatch; -m=v.InternalRegExpReplace; -s=v.StringIndexOf; +var t=b.ImportNow("ObjectHasOwnProperty"); +var u=b.OverrideFunction; +var v=b.ImportNow("intl_pattern_symbol"); +var w=b.ImportNow("intl_resolved_symbol"); +var x=b.SetFunctionName; +var y; +var z; +var A; +var B; +var C; +b.Import(function(D){ +c=D.ArrayIndexOf; +d=D.ArrayJoin; +e=D.ArrayPush; +p=D.IsNaN; +q=D.MakeError; +r=D.MakeRangeError; +s=D.MakeTypeError; +n=D.InternalRegExpMatch; +o=D.InternalRegExpReplace; +y=D.StringIndexOf; +z=D.StringLastIndexOf; +A=D.StringSplit; +B=D.StringSubstr; +C=D.StringSubstring; +}); +b.ImportFromExperimental(function(D){ +f=D.FLAG_intl_extra; }); -function InstallFunction(w,x,y){ -i(w,2,[x,y]); +function InstallFunction(E,F,G){ +k(E,2,[F,G]); } -function InstallConstructor(w,x,y){ +function InstallConstructor(E,F,G){ %CheckIsBootstrapping(); -r(y,x); -%AddNamedProperty(w,x,y,2); -%SetNativeFlag(y); -%ToFastProperties(w); +x(G,F); +%AddNamedProperty(E,F,G,2); +%SetNativeFlag(G); +%ToFastProperties(E); } -function AddBoundMethod(z,A,B,C,D){ +function AddBoundMethod(H,I,J,K,L){ %CheckIsBootstrapping(); -var E=%CreatePrivateSymbol(A); -var F=(0,(function(){ -if(!%IsInitializedIntlObjectOfType(this,D)){ -throw %make_type_error(54,A); -} -if((this[E]===(void 0))){ -var G; -if((C===(void 0))||C===2){ -G=(0,((x,y)=>B(this,x,y))); -}else if(C===1){ -G=(0,(x=>B(this,x))); -}else{ -G=(0,((...args)=>{ +var M=%CreatePrivateSymbol(I); +var N=function(){ +if(!%IsInitializedIntlObjectOfType(this,L)){ +throw s(52,I); +} +if((this[M]===(void 0))){ +var O; +if((K===(void 0))||K===2){ +O=(x,y)=>J(this,x,y); +}else if(K===1){ +O=x=>J(this,x); +}else{ +O=(...args)=>{ if(args.length>0){ -return B(this,args[0]); +return J(this,args[0]); }else{ -return B(this); +return J(this); } -})); } -%SetNativeFlag(G); -this[E]=G; } -return this[E]; -})); -%FunctionRemovePrototype(F); -%DefineGetterPropertyUnchecked(z.prototype,A,F,2); -%SetNativeFlag(F); +%FunctionSetName(O,'__bound'+I+'__'); +%FunctionRemovePrototype(O); +%SetNativeFlag(O); +this[M]=O; } -var H={}; -%AddNamedProperty(a,"Intl",H,2); -var I={ +return this[M]; +}; +l(H.prototype,I,N,2); +} +var P={}; +%AddNamedProperty(a,"Intl",P,2); +var Q={ 'collator':(void 0), 'numberformat':(void 0), 'dateformat':(void 0), 'breakiterator':(void 0) }; -var J=(void 0); +var R=(void 0); function GetDefaultICULocaleJS(){ -if((J===(void 0))){ -J=%GetDefaultICULocale(); +if((R===(void 0))){ +R=%GetDefaultICULocale(); } -return J; +return R; } -var K=(void 0); +var S=(void 0); function GetUnicodeExtensionRE(){ if(((void 0)===(void 0))){ -K=new g('-u(-[a-z0-9]{2,8})+','g'); +S=new i('-u(-[a-z0-9]{2,8})+','g'); } -return K; +return S; } -var L=(void 0); +var T=(void 0); function GetAnyExtensionRE(){ -if((L===(void 0))){ -L=new g('-[a-z0-9]{1}-.*','g'); +if((T===(void 0))){ +T=new i('-[a-z0-9]{1}-.*','g'); } -return L; +return T; } -var M=(void 0); +var U=(void 0); function GetQuotedStringRE(){ -if((M===(void 0))){ -M=new g("'[^']+'",'g'); +if((U===(void 0))){ +U=new i("'[^']+'",'g'); } -return M; +return U; } -var N=(void 0); +var V=(void 0); function GetServiceRE(){ -if((N===(void 0))){ -N= -new g('^(collator|numberformat|dateformat|breakiterator)$'); +if((V===(void 0))){ +V= +new i('^(collator|numberformat|dateformat|breakiterator)$'); } -return N; +return V; } -var O=(void 0); +var W=(void 0); function GetLanguageTagRE(){ -if((O===(void 0))){ +if((W===(void 0))){ BuildLanguageTagREs(); } -return O; +return W; } -var P=(void 0); +var X=(void 0); function GetLanguageVariantRE(){ -if((P===(void 0))){ +if((X===(void 0))){ BuildLanguageTagREs(); } -return P; +return X; } -var Q=(void 0); +var Y=(void 0); function GetLanguageSingletonRE(){ -if((Q===(void 0))){ +if((Y===(void 0))){ BuildLanguageTagREs(); } -return Q; +return Y; } -var R=(void 0); +var Z=(void 0); function GetTimezoneNameCheckRE(){ -if((R===(void 0))){ -R=new g( +if((Z===(void 0))){ +Z=new i( '^([A-Za-z]+)/([A-Za-z_-]+)((?:\/[A-Za-z_-]+)+)*$'); } -return R; +return Z; } -var S=(void 0); +var aa=(void 0); function GetTimezoneNameLocationPartRE(){ -if((S===(void 0))){ -S= -new g('^([A-Za-z]+)((?:[_-][A-Za-z]+)+)*$'); +if((aa===(void 0))){ +aa= +new i('^([A-Za-z]+)((?:[_-][A-Za-z]+)+)*$'); } -return S; +return aa; } -function supportedLocalesOf(T,U,V){ -if((l(GetServiceRE(),T)===null)){ -throw %make_error(7,T); +function supportedLocalesOf(ab,ac,ad){ +if((n(GetServiceRE(),ab)===null)){ +throw q(7,ab); } -if((V===(void 0))){ -V={}; +if((ad===(void 0))){ +ad={}; }else{ -V=(%_ToObject(V)); +ad=(%_ToObject(ad)); } -var W=V.localeMatcher; -if(!(W===(void 0))){ -W=(%_ToString(W)); -if(W!=='lookup'&&W!=='best fit'){ -throw %make_range_error(175,W); +var ae=ad.localeMatcher; +if(!(ae===(void 0))){ +ae=(%_ToString(ae)); +if(ae!=='lookup'&&ae!=='best fit'){ +throw r(173,ae); } }else{ -W='best fit'; +ae='best fit'; } -var X=initializeLocaleList(U); -if((I[T]===(void 0))){ -I[T]=getAvailableLocalesOf(T); +var af=initializeLocaleList(ac); +if((Q[ab]===(void 0))){ +Q[ab]=getAvailableLocalesOf(ab); } -if(W==='best fit'){ +if(ae==='best fit'){ return initializeLocaleList(bestFitSupportedLocalesOf( -X,I[T])); +af,Q[ab])); } return initializeLocaleList(lookupSupportedLocalesOf( -X,I[T])); +af,Q[ab])); } -function lookupSupportedLocalesOf(X,Y){ -var Z=new k(); -for(var aa=0;aa=3&&C<=8&&!(ao===(void 0))){ -if((ai===(void 0))){ -ai=ap; -}else{ -ai=ai+"-"+ap; -} +var av={}; +var aw=(void 0); +for(var ai=2;ai=3&&K<=8&&!(aw===(void 0))){ +av[aw]=ax; +aw=(void 0); }else{ return{}; } } -if(!(ao===(void 0))&&!(ao in an)){ -an[ao]=ai; -} -return an; +return av; } -function setOptions(aq,an,ar,ae,as){ -var al=''; -var at=function updateExtension(ao,ai){ -return'-'+ao+'-'+(%_ToString(ai)); +function setOptions(ay,av,az,am,aA){ +var at=''; +var aB=function updateExtension(aC,aq){ +return'-'+aC+'-'+(%_ToString(aq)); } -var au=function updateProperty(af,D,ai){ -if(D==='boolean'&&(typeof ai==='string')){ -ai=(ai==='true')?true:false; +var aD=function updateProperty(an,L,aq){ +if(L==='boolean'&&(typeof aq==='string')){ +aq=(aq==='true')?true:false; } -if(!(af===(void 0))){ -defineWEProperty(as,af,ai); +if(!(an===(void 0))){ +defineWEProperty(aA,an,aq); } } -for(var ao in ar){ -if((%_Call(n,ar,ao))){ -var ai=(void 0); -var av=ar[ao]; -if(!(av.property===(void 0))){ -ai=ae(av.property,av.type,av.values); +for(var aC in az){ +if((%_Call(t,az,aC))){ +var aq=(void 0); +var aE=az[aC]; +if(!(aE.property===(void 0))){ +aq=am(aE.property,aE.type,aE.values); } -if(!(ai===(void 0))){ -au(av.property,av.type,ai); -al+=at(ao,ai); +if(!(aq===(void 0))){ +aD(aE.property,aE.type,aq); +at+=aB(aC,aq); continue; } -if((%_Call(n,an,ao))){ -ai=an[ao]; -if(!(ai===(void 0))){ -au(av.property,av.type,ai); -al+=at(ao,ai); -}else if(av.type==='boolean'){ -au(av.property,av.type,true); -al+=at(ao,true); +if((%_Call(t,av,aC))){ +aq=av[aC]; +if(!(aq===(void 0))){ +aD(aE.property,aE.type,aq); +at+=aB(aC,aq); +}else if(aE.type==='boolean'){ +aD(aE.property,aE.type,true); +at+=aB(aC,true); } } } } -return al===''?'':'-u'+al; +return at===''?'':'-u'+at; } -function freezeArray(aw){ -var ax=[]; -var ay=aw.length; -for(var aa=0;aa>>0); +for(var aZ=0;aZbw){ -throw %make_range_error(178,af); +function getNumberOption(ad,an,bE,bF,bG){ +var aq=ad[an]; +if(!(aq===(void 0))){ +aq=(%_ToNumber(aq)); +if((!%_IsSmi(%IS_VAR(aq))&&!(aq==aq))||aqbF){ +throw r(176,an); } -return %math_floor(ai); +return %math_floor(aq); } -return bx; +return bG; } -var by={ +var bH={ get(){ %IncrementUseCounter(15); -return this[p]; +return this[v]; }, -set(ai){ -this[p]=ai; +set(aq){ +this[v]=aq; } }; -function initializeNumberFormat(bz,U,V){ -if(%IsInitializedIntlObject(bz)){ -throw %make_type_error(126,"NumberFormat"); +function initializeNumberFormat(bI,ac,ad){ +if(%IsInitializedIntlObject(bI)){ +throw s(124,"NumberFormat"); } -if((V===(void 0))){ -V={}; +if((ad===(void 0))){ +ad={}; } -var ae=getGetOption(V,'numberformat'); -var ab=resolveLocale('numberformat',U,V); -var bk={}; -defineWEProperty(bk,'style',ae( +var am=getGetOption(ad,'numberformat'); +var aj=resolveLocale('numberformat',ac,ad); +var bt={}; +defineWEProperty(bt,'style',am( 'style','string',['decimal','percent','currency'],'decimal')); -var bu=ae('currency','string'); -if(!(bu===(void 0))&&!isWellFormedCurrencyCode(bu)){ -throw %make_range_error(159,bu); +var bD=am('currency','string'); +if(!(bD===(void 0))&&!isWellFormedCurrencyCode(bD)){ +throw r(157,bD); } -if(bk.style==='currency'&&(bu===(void 0))){ -throw %make_type_error(29); +if(bt.style==='currency'&&(bD===(void 0))){ +throw s(29); } -var bA=ae( +var bJ=am( 'currencyDisplay','string',['code','symbol','name'],'symbol'); -if(bk.style==='currency'){ -defineWEProperty(bk,'currency',%StringToUpperCase(bu)); -defineWEProperty(bk,'currencyDisplay',bA); -} -var bB=getNumberOption(V,'minimumIntegerDigits',1,21,1); -defineWEProperty(bk,'minimumIntegerDigits',bB); -var bC=V['minimumFractionDigits']; -var bD=V['maximumFractionDigits']; -if(!(bC===(void 0))||bk.style!=='currency'){ -bC=getNumberOption(V,'minimumFractionDigits',0,20,0); -defineWEProperty(bk,'minimumFractionDigits',bC); -} -if(!(bD===(void 0))||bk.style!=='currency'){ -var bE=bk.style==='percent'?0:3; -bC=(bC===(void 0))?0:bC; -var bF=(bC>bE)?bC:bE; -bD=getNumberOption(V,'maximumFractionDigits',bC,20,bF); -defineWEProperty(bk,'maximumFractionDigits',bD); -} -var bG=V['minimumSignificantDigits']; -var bH=V['maximumSignificantDigits']; -if(!(bG===(void 0))||!(bH===(void 0))){ -bG=getNumberOption(V,'minimumSignificantDigits',1,21,0); -defineWEProperty(bk,'minimumSignificantDigits',bG); -bH=getNumberOption(V,'maximumSignificantDigits',bG,21,21); -defineWEProperty(bk,'maximumSignificantDigits',bH); -} -defineWEProperty(bk,'useGrouping',ae( +if(bt.style==='currency'){ +defineWEProperty(bt,'currency',%StringToUpperCase(bD)); +defineWEProperty(bt,'currencyDisplay',bJ); +} +var bK=getNumberOption(ad,'minimumIntegerDigits',1,21,1); +defineWEProperty(bt,'minimumIntegerDigits',bK); +var bL=ad['minimumFractionDigits']; +var bM=ad['maximumFractionDigits']; +if(!(bL===(void 0))||bt.style!=='currency'){ +bL=getNumberOption(ad,'minimumFractionDigits',0,20,0); +defineWEProperty(bt,'minimumFractionDigits',bL); +} +if(!(bM===(void 0))||bt.style!=='currency'){ +var bN=bt.style==='percent'?0:3; +bL=(bL===(void 0))?0:bL; +var bO=(bL>bN)?bL:bN; +bM=getNumberOption(ad,'maximumFractionDigits',bL,20,bO); +defineWEProperty(bt,'maximumFractionDigits',bM); +} +var bP=ad['minimumSignificantDigits']; +var bQ=ad['maximumSignificantDigits']; +if(!(bP===(void 0))||!(bQ===(void 0))){ +bP=getNumberOption(ad,'minimumSignificantDigits',1,21,0); +defineWEProperty(bt,'minimumSignificantDigits',bP); +bQ=getNumberOption(ad,'maximumSignificantDigits',bP,21,21); +defineWEProperty(bt,'maximumSignificantDigits',bQ); +} +defineWEProperty(bt,'useGrouping',am( 'useGrouping','boolean',(void 0),true)); -var an=parseExtension(ab.extension); -var bI={ +var av=parseExtension(aj.extension); +var bR={ 'nu':{'property':(void 0),'type':'string'} }; -var al=setOptions(V,an,bI, -ae,bk); -var bp=ab.locale+al; -var aj=%object_define_properties({},{ +var at=setOptions(ad,av,bR, +am,bt); +var by=aj.locale+at; +var ar=%object_define_properties({},{ currency:{writable:true}, currencyDisplay:{writable:true}, locale:{writable:true}, @@ -11581,252 +13060,260 @@ maximumFractionDigits:{writable:true}, minimumFractionDigits:{writable:true}, minimumIntegerDigits:{writable:true}, numberingSystem:{writable:true}, -requestedLocale:{value:bp,writable:true}, -style:{value:bk.style,writable:true}, +requestedLocale:{value:by,writable:true}, +style:{value:bt.style,writable:true}, useGrouping:{writable:true} }); -if((%_Call(n,bk,'minimumSignificantDigits'))){ -defineWEProperty(aj,'minimumSignificantDigits',(void 0)); +if((%_Call(t,bt,'minimumSignificantDigits'))){ +defineWEProperty(ar,'minimumSignificantDigits',(void 0)); } -if((%_Call(n,bk,'maximumSignificantDigits'))){ -defineWEProperty(aj,'maximumSignificantDigits',(void 0)); +if((%_Call(t,bt,'maximumSignificantDigits'))){ +defineWEProperty(ar,'maximumSignificantDigits',(void 0)); } -var bJ=%CreateNumberFormat(bp, -bk, -aj); -if(bk.style==='currency'){ -%object_define_property(aj,'currencyDisplay', -{value:bA,writable:true}); +var bS=%CreateNumberFormat(by, +bt, +ar); +if(bt.style==='currency'){ +%object_define_property(ar,'currencyDisplay', +{value:bJ,writable:true}); } -%MarkAsInitializedIntlObjectOfType(bz,'numberformat',bJ); -bz[q]=aj; -return bz; +%MarkAsInitializedIntlObjectOfType(bI,'numberformat',bS); +bI[w]=ar; +if(f){ +%object_define_property(ar,'pattern',bH); +%object_define_property(bI,'resolved',br); } -InstallConstructor(H,'NumberFormat',function(){ -var U=arguments[0]; -var V=arguments[1]; -if(!this||this===H){ -return new H.NumberFormat(U,V); +return bI; } -return initializeNumberFormat((%_ToObject(this)),U,V); +InstallConstructor(P,'NumberFormat',function(){ +var ac=arguments[0]; +var ad=arguments[1]; +if(!this||this===P){ +return new P.NumberFormat(ac,ad); +} +return initializeNumberFormat((%_ToObject(this)),ac,ad); } ); -InstallFunction(H.NumberFormat.prototype,'resolvedOptions',function(){ +InstallFunction(P.NumberFormat.prototype,'resolvedOptions',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } if(!%IsInitializedIntlObjectOfType(this,'numberformat')){ -throw %make_type_error(127,"NumberFormat"); -} -var bK=this; -var ab=getOptimalLanguageTag(bK[q].requestedLocale, -bK[q].locale); -var aG={ -locale:ab, -numberingSystem:bK[q].numberingSystem, -style:bK[q].style, -useGrouping:bK[q].useGrouping, -minimumIntegerDigits:bK[q].minimumIntegerDigits, -minimumFractionDigits:bK[q].minimumFractionDigits, -maximumFractionDigits:bK[q].maximumFractionDigits, -}; -if(aG.style==='currency'){ -defineWECProperty(aG,'currency',bK[q].currency); -defineWECProperty(aG,'currencyDisplay', -bK[q].currencyDisplay); -} -if((%_Call(n,bK[q],'minimumSignificantDigits'))){ -defineWECProperty(aG,'minimumSignificantDigits', -bK[q].minimumSignificantDigits); -} -if((%_Call(n,bK[q],'maximumSignificantDigits'))){ -defineWECProperty(aG,'maximumSignificantDigits', -bK[q].maximumSignificantDigits); +throw s(125,"NumberFormat"); +} +var bT=this; +var aj=getOptimalLanguageTag(bT[w].requestedLocale, +bT[w].locale); +var aP={ +locale:aj, +numberingSystem:bT[w].numberingSystem, +style:bT[w].style, +useGrouping:bT[w].useGrouping, +minimumIntegerDigits:bT[w].minimumIntegerDigits, +minimumFractionDigits:bT[w].minimumFractionDigits, +maximumFractionDigits:bT[w].maximumFractionDigits, +}; +if(aP.style==='currency'){ +defineWECProperty(aP,'currency',bT[w].currency); +defineWECProperty(aP,'currencyDisplay', +bT[w].currencyDisplay); +} +if((%_Call(t,bT[w],'minimumSignificantDigits'))){ +defineWECProperty(aP,'minimumSignificantDigits', +bT[w].minimumSignificantDigits); +} +if((%_Call(t,bT[w],'maximumSignificantDigits'))){ +defineWECProperty(aP,'maximumSignificantDigits', +bT[w].maximumSignificantDigits); } -return aG; +return aP; } ); -InstallFunction(H.NumberFormat,'supportedLocalesOf',function(U){ +InstallFunction(P.NumberFormat,'supportedLocalesOf',function(ac){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -return supportedLocalesOf('numberformat',U,arguments[1]); +return supportedLocalesOf('numberformat',ac,arguments[1]); } ); -function formatNumber(bJ,ai){ -var bL=(%_ToNumber(ai))+0; -return %InternalNumberFormat(%GetImplFromInitializedIntlObject(bJ), -bL); -} -AddBoundMethod(H.NumberFormat,'format',formatNumber,1,'numberformat'); -function toLDMLString(V){ -var ae=getGetOption(V,'dateformat'); -var bM=''; -var bN=ae('weekday','string',['narrow','short','long']); -bM+=appendToLDMLString( -bN,{narrow:'EEEEE',short:'EEE',long:'EEEE'}); -bN=ae('era','string',['narrow','short','long']); -bM+=appendToLDMLString( -bN,{narrow:'GGGGG',short:'GGG',long:'GGGG'}); -bN=ae('year','string',['2-digit','numeric']); -bM+=appendToLDMLString(bN,{'2-digit':'yy','numeric':'y'}); -bN=ae('month','string', +function formatNumber(bS,aq){ +var bU=(%_ToNumber(aq))+0; +return %InternalNumberFormat(%GetImplFromInitializedIntlObject(bS), +bU); +} +function IntlParseNumber(bS,aq){ +return %InternalNumberParse(%GetImplFromInitializedIntlObject(bS), +(%_ToString(aq))); +} +AddBoundMethod(P.NumberFormat,'format',formatNumber,1,'numberformat'); +function toLDMLString(ad){ +var am=getGetOption(ad,'dateformat'); +var bV=''; +var bW=am('weekday','string',['narrow','short','long']); +bV+=appendToLDMLString( +bW,{narrow:'EEEEE',short:'EEE',long:'EEEE'}); +bW=am('era','string',['narrow','short','long']); +bV+=appendToLDMLString( +bW,{narrow:'GGGGG',short:'GGG',long:'GGGG'}); +bW=am('year','string',['2-digit','numeric']); +bV+=appendToLDMLString(bW,{'2-digit':'yy','numeric':'y'}); +bW=am('month','string', ['2-digit','numeric','narrow','short','long']); -bM+=appendToLDMLString(bN,{'2-digit':'MM','numeric':'M', +bV+=appendToLDMLString(bW,{'2-digit':'MM','numeric':'M', 'narrow':'MMMMM','short':'MMM','long':'MMMM'}); -bN=ae('day','string',['2-digit','numeric']); -bM+=appendToLDMLString( -bN,{'2-digit':'dd','numeric':'d'}); -var bO=ae('hour12','boolean'); -bN=ae('hour','string',['2-digit','numeric']); -if((bO===(void 0))){ -bM+=appendToLDMLString(bN,{'2-digit':'jj','numeric':'j'}); -}else if(bO===true){ -bM+=appendToLDMLString(bN,{'2-digit':'hh','numeric':'h'}); -}else{ -bM+=appendToLDMLString(bN,{'2-digit':'HH','numeric':'H'}); -} -bN=ae('minute','string',['2-digit','numeric']); -bM+=appendToLDMLString(bN,{'2-digit':'mm','numeric':'m'}); -bN=ae('second','string',['2-digit','numeric']); -bM+=appendToLDMLString(bN,{'2-digit':'ss','numeric':'s'}); -bN=ae('timeZoneName','string',['short','long']); -bM+=appendToLDMLString(bN,{short:'z',long:'zzzz'}); -return bM; -} -function appendToLDMLString(bN,bP){ -if(!(bN===(void 0))){ -return bP[bN]; +bW=am('day','string',['2-digit','numeric']); +bV+=appendToLDMLString( +bW,{'2-digit':'dd','numeric':'d'}); +var bX=am('hour12','boolean'); +bW=am('hour','string',['2-digit','numeric']); +if((bX===(void 0))){ +bV+=appendToLDMLString(bW,{'2-digit':'jj','numeric':'j'}); +}else if(bX===true){ +bV+=appendToLDMLString(bW,{'2-digit':'hh','numeric':'h'}); +}else{ +bV+=appendToLDMLString(bW,{'2-digit':'HH','numeric':'H'}); +} +bW=am('minute','string',['2-digit','numeric']); +bV+=appendToLDMLString(bW,{'2-digit':'mm','numeric':'m'}); +bW=am('second','string',['2-digit','numeric']); +bV+=appendToLDMLString(bW,{'2-digit':'ss','numeric':'s'}); +bW=am('timeZoneName','string',['short','long']); +bV+=appendToLDMLString(bW,{short:'z',long:'zzzz'}); +return bV; +} +function appendToLDMLString(bW,bY){ +if(!(bW===(void 0))){ +return bY[bW]; }else{ return''; } } -function fromLDMLString(bM){ -bM=m(GetQuotedStringRE(),bM,''); -var V={}; -var aF=l(/E{3,5}/,bM); -V=appendToDateTimeObject( -V,'weekday',aF,{EEEEE:'narrow',EEE:'short',EEEE:'long'}); -aF=l(/G{3,5}/,bM); -V=appendToDateTimeObject( -V,'era',aF,{GGGGG:'narrow',GGG:'short',GGGG:'long'}); -aF=l(/y{1,2}/,bM); -V=appendToDateTimeObject( -V,'year',aF,{y:'numeric',yy:'2-digit'}); -aF=l(/M{1,5}/,bM); -V=appendToDateTimeObject(V,'month',aF,{MM:'2-digit', +function fromLDMLString(bV){ +bV=o(GetQuotedStringRE(),bV,''); +var ad={}; +var aO=n(/E{3,5}/,bV); +ad=appendToDateTimeObject( +ad,'weekday',aO,{EEEEE:'narrow',EEE:'short',EEEE:'long'}); +aO=n(/G{3,5}/,bV); +ad=appendToDateTimeObject( +ad,'era',aO,{GGGGG:'narrow',GGG:'short',GGGG:'long'}); +aO=n(/y{1,2}/,bV); +ad=appendToDateTimeObject( +ad,'year',aO,{y:'numeric',yy:'2-digit'}); +aO=n(/M{1,5}/,bV); +ad=appendToDateTimeObject(ad,'month',aO,{MM:'2-digit', M:'numeric',MMMMM:'narrow',MMM:'short',MMMM:'long'}); -aF=l(/L{1,5}/,bM); -V=appendToDateTimeObject(V,'month',aF,{LL:'2-digit', +aO=n(/L{1,5}/,bV); +ad=appendToDateTimeObject(ad,'month',aO,{LL:'2-digit', L:'numeric',LLLLL:'narrow',LLL:'short',LLLL:'long'}); -aF=l(/d{1,2}/,bM); -V=appendToDateTimeObject( -V,'day',aF,{d:'numeric',dd:'2-digit'}); -aF=l(/h{1,2}/,bM); -if(aF!==null){ -V['hour12']=true; -} -V=appendToDateTimeObject( -V,'hour',aF,{h:'numeric',hh:'2-digit'}); -aF=l(/H{1,2}/,bM); -if(aF!==null){ -V['hour12']=false; -} -V=appendToDateTimeObject( -V,'hour',aF,{H:'numeric',HH:'2-digit'}); -aF=l(/m{1,2}/,bM); -V=appendToDateTimeObject( -V,'minute',aF,{m:'numeric',mm:'2-digit'}); -aF=l(/s{1,2}/,bM); -V=appendToDateTimeObject( -V,'second',aF,{s:'numeric',ss:'2-digit'}); -aF=l(/z|zzzz/,bM); -V=appendToDateTimeObject( -V,'timeZoneName',aF,{z:'short',zzzz:'long'}); -return V; +aO=n(/d{1,2}/,bV); +ad=appendToDateTimeObject( +ad,'day',aO,{d:'numeric',dd:'2-digit'}); +aO=n(/h{1,2}/,bV); +if(aO!==null){ +ad['hour12']=true; +} +ad=appendToDateTimeObject( +ad,'hour',aO,{h:'numeric',hh:'2-digit'}); +aO=n(/H{1,2}/,bV); +if(aO!==null){ +ad['hour12']=false; +} +ad=appendToDateTimeObject( +ad,'hour',aO,{H:'numeric',HH:'2-digit'}); +aO=n(/m{1,2}/,bV); +ad=appendToDateTimeObject( +ad,'minute',aO,{m:'numeric',mm:'2-digit'}); +aO=n(/s{1,2}/,bV); +ad=appendToDateTimeObject( +ad,'second',aO,{s:'numeric',ss:'2-digit'}); +aO=n(/z|zzzz/,bV); +ad=appendToDateTimeObject( +ad,'timeZoneName',aO,{z:'short',zzzz:'long'}); +return ad; } -function appendToDateTimeObject(V,bN,aF,bP){ -if((aF===null)){ -if(!(%_Call(n,V,bN))){ -defineWEProperty(V,bN,(void 0)); +function appendToDateTimeObject(ad,bW,aO,bY){ +if((aO===null)){ +if(!(%_Call(t,ad,bW))){ +defineWEProperty(ad,bW,(void 0)); } -return V; +return ad; } -var af=aF[0]; -defineWEProperty(V,bN,bP[af]); -return V; +var an=aO[0]; +defineWEProperty(ad,bW,bY[an]); +return ad; } -function toDateTimeOptions(V,bQ,bR){ -if((V===(void 0))){ -V={}; +function toDateTimeOptions(ad,bZ,ca){ +if((ad===(void 0))){ +ad={}; }else{ -V=(%_ToObject(V)); +ad=(%_ToObject(ad)); } -var bS=true; -if((bQ==='date'||bQ==='any')&& -(!(V.weekday===(void 0))||!(V.year===(void 0))|| -!(V.month===(void 0))||!(V.day===(void 0)))){ -bS=false; +var cb=true; +if((bZ==='date'||bZ==='any')&& +(!(ad.weekday===(void 0))||!(ad.year===(void 0))|| +!(ad.month===(void 0))||!(ad.day===(void 0)))){ +cb=false; } -if((bQ==='time'||bQ==='any')&& -(!(V.hour===(void 0))||!(V.minute===(void 0))|| -!(V.second===(void 0)))){ -bS=false; +if((bZ==='time'||bZ==='any')&& +(!(ad.hour===(void 0))||!(ad.minute===(void 0))|| +!(ad.second===(void 0)))){ +cb=false; } -if(bS&&(bR==='date'||bR==='all')){ -%object_define_property(V,'year',{value:'numeric', +if(cb&&(ca==='date'||ca==='all')){ +%object_define_property(ad,'year',{value:'numeric', writable:true, enumerable:true, configurable:true}); -%object_define_property(V,'month',{value:'numeric', +%object_define_property(ad,'month',{value:'numeric', writable:true, enumerable:true, configurable:true}); -%object_define_property(V,'day',{value:'numeric', +%object_define_property(ad,'day',{value:'numeric', writable:true, enumerable:true, configurable:true}); } -if(bS&&(bR==='time'||bR==='all')){ -%object_define_property(V,'hour',{value:'numeric', +if(cb&&(ca==='time'||ca==='all')){ +%object_define_property(ad,'hour',{value:'numeric', writable:true, enumerable:true, configurable:true}); -%object_define_property(V,'minute',{value:'numeric', +%object_define_property(ad,'minute',{value:'numeric', writable:true, enumerable:true, configurable:true}); -%object_define_property(V,'second',{value:'numeric', +%object_define_property(ad,'second',{value:'numeric', writable:true, enumerable:true, configurable:true}); } -return V; +return ad; } -function initializeDateTimeFormat(bT,U,V){ -if(%IsInitializedIntlObject(bT)){ -throw %make_type_error(126,"DateTimeFormat"); +function initializeDateTimeFormat(cc,ac,ad){ +if(%IsInitializedIntlObject(cc)){ +throw s(124,"DateTimeFormat"); } -if((V===(void 0))){ -V={}; +if((ad===(void 0))){ +ad={}; } -var ab=resolveLocale('dateformat',U,V); -V=toDateTimeOptions(V,'any','date'); -var ae=getGetOption(V,'dateformat'); -var W=ae('formatMatcher','string', +var aj=resolveLocale('dateformat',ac,ad); +ad=toDateTimeOptions(ad,'any','date'); +var am=getGetOption(ad,'dateformat'); +var ae=am('formatMatcher','string', ['basic','best fit'],'best fit'); -var bM=toLDMLString(V); -var bU=canonicalizeTimeZoneID(V.timeZone); -var bk={}; -var an=parseExtension(ab.extension); -var bV={ +var bV=toLDMLString(ad); +var cd=canonicalizeTimeZoneID(ad.timeZone); +var bt={}; +var av=parseExtension(aj.extension); +var ce={ 'ca':{'property':(void 0),'type':'string'}, 'nu':{'property':(void 0),'type':'string'} }; -var al=setOptions(V,an,bV, -ae,bk); -var bp=ab.locale+al; -var aj=%object_define_properties({},{ +var at=setOptions(ad,av,ce, +am,bt); +var by=aj.locale+at; +var ar=%object_define_properties({},{ calendar:{writable:true}, day:{writable:true}, era:{writable:true}, @@ -11836,222 +13323,224 @@ locale:{writable:true}, minute:{writable:true}, month:{writable:true}, numberingSystem:{writable:true}, -[p]:{writable:true}, -requestedLocale:{value:bp,writable:true}, +[v]:{writable:true}, +requestedLocale:{value:by,writable:true}, second:{writable:true}, timeZone:{writable:true}, timeZoneName:{writable:true}, -tz:{value:bU,writable:true}, +tz:{value:cd,writable:true}, weekday:{writable:true}, year:{writable:true} }); -var bJ=%CreateDateTimeFormat( -bp,{skeleton:bM,timeZone:bU},aj); -if(aj.timeZone==="Etc/Unknown"){ -throw %make_range_error(184,bU); +var bS=%CreateDateTimeFormat( +by,{skeleton:bV,timeZone:cd},ar); +if(ar.timeZone==="Etc/Unknown"){ +throw r(182,cd); +} +%MarkAsInitializedIntlObjectOfType(cc,'dateformat',bS); +cc[w]=ar; +if(f){ +%object_define_property(ar,'pattern',bH); +%object_define_property(cc,'resolved',br); } -%MarkAsInitializedIntlObjectOfType(bT,'dateformat',bJ); -bT[q]=aj; -return bT; +return cc; } -InstallConstructor(H,'DateTimeFormat',function(){ -var U=arguments[0]; -var V=arguments[1]; -if(!this||this===H){ -return new H.DateTimeFormat(U,V); +InstallConstructor(P,'DateTimeFormat',function(){ +var ac=arguments[0]; +var ad=arguments[1]; +if(!this||this===P){ +return new P.DateTimeFormat(ac,ad); } -return initializeDateTimeFormat((%_ToObject(this)),U,V); +return initializeDateTimeFormat((%_ToObject(this)),ac,ad); } ); -InstallFunction(H.DateTimeFormat.prototype,'resolvedOptions',function(){ +InstallFunction(P.DateTimeFormat.prototype,'resolvedOptions',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } if(!%IsInitializedIntlObjectOfType(this,'dateformat')){ -throw %make_type_error(127,"DateTimeFormat"); +throw s(125,"DateTimeFormat"); } -var bW={ +var cf={ 'gregorian':'gregory', +'japanese':'japanese', +'buddhist':'buddhist', +'roc':'roc', +'persian':'persian', +'islamic-civil':'islamicc', +'islamic':'islamic', +'hebrew':'hebrew', +'chinese':'chinese', +'indian':'indian', +'coptic':'coptic', +'ethiopic':'ethiopic', 'ethiopic-amete-alem':'ethioaa' }; -var bK=this; -var bX=fromLDMLString(bK[q][p]); -var bY=bW[bK[q].calendar]; -if((bY===(void 0))){ -bY=bK[q].calendar; -} -var ab=getOptimalLanguageTag(bK[q].requestedLocale, -bK[q].locale); -var aG={ -locale:ab, -numberingSystem:bK[q].numberingSystem, -calendar:bY, -timeZone:bK[q].timeZone -}; -addWECPropertyIfDefined(aG,'timeZoneName',bX.timeZoneName); -addWECPropertyIfDefined(aG,'era',bX.era); -addWECPropertyIfDefined(aG,'year',bX.year); -addWECPropertyIfDefined(aG,'month',bX.month); -addWECPropertyIfDefined(aG,'day',bX.day); -addWECPropertyIfDefined(aG,'weekday',bX.weekday); -addWECPropertyIfDefined(aG,'hour12',bX.hour12); -addWECPropertyIfDefined(aG,'hour',bX.hour); -addWECPropertyIfDefined(aG,'minute',bX.minute); -addWECPropertyIfDefined(aG,'second',bX.second); -return aG; +var bT=this; +var cg=fromLDMLString(bT[w][v]); +var ch=cf[bT[w].calendar]; +if((ch===(void 0))){ +ch=bT[w].calendar; +} +var aj=getOptimalLanguageTag(bT[w].requestedLocale, +bT[w].locale); +var aP={ +locale:aj, +numberingSystem:bT[w].numberingSystem, +calendar:ch, +timeZone:bT[w].timeZone +}; +addWECPropertyIfDefined(aP,'timeZoneName',cg.timeZoneName); +addWECPropertyIfDefined(aP,'era',cg.era); +addWECPropertyIfDefined(aP,'year',cg.year); +addWECPropertyIfDefined(aP,'month',cg.month); +addWECPropertyIfDefined(aP,'day',cg.day); +addWECPropertyIfDefined(aP,'weekday',cg.weekday); +addWECPropertyIfDefined(aP,'hour12',cg.hour12); +addWECPropertyIfDefined(aP,'hour',cg.hour); +addWECPropertyIfDefined(aP,'minute',cg.minute); +addWECPropertyIfDefined(aP,'second',cg.second); +return aP; } ); -InstallFunction(H.DateTimeFormat,'supportedLocalesOf',function(U){ +InstallFunction(P.DateTimeFormat,'supportedLocalesOf',function(ac){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -return supportedLocalesOf('dateformat',U,arguments[1]); +return supportedLocalesOf('dateformat',ac,arguments[1]); } ); -function formatDate(bJ,bZ){ -var ca; -if((bZ===(void 0))){ -ca=%DateCurrentTime(); +function formatDate(bS,ci){ +var cj; +if((ci===(void 0))){ +cj=%DateCurrentTime(); }else{ -ca=(%_ToNumber(bZ)); -} -if(!(%_IsSmi(%IS_VAR(ca))||((ca==ca)&&(ca!=1/0)&&(ca!=-1/0))))throw %make_range_error(150); -return %InternalDateFormat(%GetImplFromInitializedIntlObject(bJ), -new e(ca)); -} -function FormatDateToParts(bZ){ -if(!(new.target===(void 0))){ -throw %make_type_error(82); -} -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"Intl.DateTimeFormat.prototype.formatToParts"); -if(!(typeof(this)==='object')){ -throw %make_type_error(16,this); +cj=(%_ToNumber(ci)); } -var ca; -if((bZ===(void 0))){ -ca=%DateCurrentTime(); -}else{ -ca=(%_ToNumber(bZ)); +if(!(%_IsSmi(%IS_VAR(cj))||((cj==cj)&&(cj!=1/0)&&(cj!=-1/0))))throw r(148); +return %InternalDateFormat(%GetImplFromInitializedIntlObject(bS), +new g(cj)); } -if(!(%_IsSmi(%IS_VAR(ca))||((ca==ca)&&(ca!=1/0)&&(ca!=-1/0))))throw %make_range_error(150); -return %InternalDateFormatToParts( -%GetImplFromInitializedIntlObject(this),new e(ca)); +function IntlParseDate(bS,aq){ +return %InternalDateParse(%GetImplFromInitializedIntlObject(bS), +(%_ToString(aq))); } -%FunctionSetLength(FormatDateToParts,0); -AddBoundMethod(H.DateTimeFormat,'format',formatDate,0,'dateformat'); -function canonicalizeTimeZoneID(cb){ -if((cb===(void 0))){ -return cb; +AddBoundMethod(P.DateTimeFormat,'format',formatDate,0,'dateformat'); +function canonicalizeTimeZoneID(ck){ +if((ck===(void 0))){ +return ck; } -cb=(%_ToString(cb)); -var cc=%StringToUpperCase(cb); -if(cc==='UTC'||cc==='GMT'|| -cc==='ETC/UTC'||cc==='ETC/GMT'){ +var cl=%StringToUpperCase(ck); +if(cl==='UTC'||cl==='GMT'|| +cl==='ETC/UTC'||cl==='ETC/GMT'){ return'UTC'; } -var aF=l(GetTimezoneNameCheckRE(),cb); -if((aF===null))throw %make_range_error(151,cb); -var aG=toTitleCaseTimezoneLocation(aF[1])+'/'+ -toTitleCaseTimezoneLocation(aF[2]); -if(!(aF[3]===(void 0))&&30?U[0]:GetDefaultICULocaleJS(); +var ac=initializeLocaleList(ac); +bo=ac.length>0?ac[0]:GetDefaultICULocaleJS(); } -var ac=%_Call(s,bf,'-'); -if(ac!=-1){ -bf=%_Call(u,bf,0,ac); +var ak=%_Call(y,bo,'-'); +if(ak!=-1){ +bo=%_Call(C,bo,0,ak); } -var cp=['az','el','lt','tr']; -var cq=%ArrayIndexOf(cp,bf,0); -if(cq==-1){ -return co?%StringToUpperCaseI18N(cn):%StringToLowerCaseI18N(cn); +var cy=['az','el','lt','tr']; +var cz=%_Call(c,cy,bo); +if(cz==-1){ +return cx?%StringToUpperCaseI18N(cw):%StringToLowerCaseI18N(cw); } -return %StringLocaleConvertCase(cn,co, -cp[cq]); +return %StringLocaleConvertCase(cw,cx, +cy[cz]); } -o(h.prototype,'localeCompare',function(cr){ +u(j.prototype,'localeCompare',function(cA){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } if((this==null)){ -throw %make_type_error(55); +throw s(53); } -var U=arguments[1]; -var V=arguments[2]; -var bj=cachedOrNewService('collator',U,V); -return compare(bj,this,cr); +var ac=arguments[1]; +var ad=arguments[2]; +var bs=cachedOrNewService('collator',ac,ad); +return compare(bs,this,cA); } ); -o(h.prototype,'normalize',function(){ +u(j.prototype,'normalize',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.normalize"); -var cn=(%_ToString(this)); -var cs=arguments[0]; -var ct=(cs===(void 0))?'NFC':(%_ToString(cs)); -var cu=['NFC','NFD','NFKC','NFKD']; -var cv=%ArrayIndexOf(cu,ct,0); -if(cv===-1){ -throw %make_range_error(176, -%_Call(c,cu,', ')); +if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.normalize"); +var cw=(%_ToString(this)); +var cB=arguments[0]; +var cC=(cB===(void 0))?'NFC':(%_ToString(cB)); +var cD=['NFC','NFD','NFKC','NFKD']; +var cE=%_Call(c,cD,cC); +if(cE===-1){ +throw r(174, +%_Call(d,cD,', ')); } -return %StringNormalize(cn,cv); +return %StringNormalize(cw,cE); } ); function ToLowerCaseI18N(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLowerCase"); -var cn=(%_ToString(this)); -return %StringToLowerCaseI18N(cn); +if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLowerCase"); +var cw=(%_ToString(this)); +return %StringToLowerCaseI18N(cw); } function ToUpperCaseI18N(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toUpperCase"); -var cn=(%_ToString(this)); -return %StringToUpperCaseI18N(cn); +if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toUpperCase"); +var cw=(%_ToString(this)); +return %StringToUpperCaseI18N(cw); } -function ToLocaleLowerCaseI18N(U){ +function ToLocaleLowerCaseI18N(ac){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleLowerCase"); -return LocaleConvertCase((%_ToString(this)),U,false); +if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLocaleLowerCase"); +return LocaleConvertCase((%_ToString(this)),ac,false); } %FunctionSetLength(ToLocaleLowerCaseI18N,0); -function ToLocaleUpperCaseI18N(U){ +function ToLocaleUpperCaseI18N(ac){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.toLocaleUpperCase"); -return LocaleConvertCase((%_ToString(this)),U,true); +if((%IS_VAR(this)===null)||(this===(void 0)))throw s(17,"String.prototype.toLocaleUpperCase"); +return LocaleConvertCase((%_ToString(this)),ac,true); } %FunctionSetLength(ToLocaleUpperCaseI18N,0); %FunctionRemovePrototype(ToLowerCaseI18N); %FunctionRemovePrototype(ToUpperCaseI18N); %FunctionRemovePrototype(ToLocaleLowerCaseI18N); %FunctionRemovePrototype(ToLocaleUpperCaseI18N); -b.Export(function(cw){ -cw.ToLowerCaseI18N=ToLowerCaseI18N; -cw.ToUpperCaseI18N=ToUpperCaseI18N; -cw.ToLocaleLowerCaseI18N=ToLocaleLowerCaseI18N; -cw.ToLocaleUpperCaseI18N=ToLocaleUpperCaseI18N; +b.Export(function(cF){ +cF.ToLowerCaseI18N=ToLowerCaseI18N; +cF.ToUpperCaseI18N=ToUpperCaseI18N; +cF.ToLocaleLowerCaseI18N=ToLocaleLowerCaseI18N; +cF.ToLocaleUpperCaseI18N=ToLocaleUpperCaseI18N; }); -o(f.prototype,'toLocaleString',function(){ +u(h.prototype,'toLocaleString',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -if(!(this instanceof f)&&typeof(this)!=='number'){ -throw %make_type_error(56,"Number"); +if(!(this instanceof h)&&typeof(this)!=='number'){ +throw s(54,"Number"); } -var U=arguments[0]; -var V=arguments[1]; -var bz=cachedOrNewService('numberformat',U,V); -return formatNumber(bz,this); +var ac=arguments[0]; +var ad=arguments[1]; +var bI=cachedOrNewService('numberformat',ac,ad); +return formatNumber(bI,this); } ); -function toLocaleDateTime(cx,U,V,bQ,bR,T){ -if(!(cx instanceof e)){ -throw %make_type_error(56,"Date"); -} -var bZ=(%_ToNumber(cx)); -if((!%_IsSmi(%IS_VAR(bZ))&&!(bZ==bZ)))return'Invalid Date'; -var bk=toDateTimeOptions(V,bQ,bR); -var bT= -cachedOrNewService(T,U,V,bk); -return formatDate(bT,cx); -} -o(e.prototype,'toLocaleString',function(){ +function toLocaleDateTime(cG,ac,ad,bZ,ca,ab){ +if(!(cG instanceof g)){ +throw s(54,"Date"); +} +if(p(cG))return'Invalid Date'; +var bt=toDateTimeOptions(ad,bZ,ca); +var cc= +cachedOrNewService(ab,ac,ad,bt); +return formatDate(cc,cG); +} +u(g.prototype,'toLocaleString',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -var U=arguments[0]; -var V=arguments[1]; +var ac=arguments[0]; +var ad=arguments[1]; return toLocaleDateTime( -this,U,V,'any','all','dateformatall'); +this,ac,ad,'any','all','dateformatall'); } ); -o(e.prototype,'toLocaleDateString',function(){ +u(g.prototype,'toLocaleDateString',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -var U=arguments[0]; -var V=arguments[1]; +var ac=arguments[0]; +var ad=arguments[1]; return toLocaleDateTime( -this,U,V,'date','date','dateformatdate'); +this,ac,ad,'date','date','dateformatdate'); } ); -o(e.prototype,'toLocaleTimeString',function(){ +u(g.prototype,'toLocaleTimeString',function(){ if(!(new.target===(void 0))){ -throw %make_type_error(82); +throw s(80); } -var U=arguments[0]; -var V=arguments[1]; +var ac=arguments[0]; +var ad=arguments[1]; return toLocaleDateTime( -this,U,V,'time','time','dateformattime'); +this,ac,ad,'time','time','dateformattime'); } ); -%FunctionRemovePrototype(FormatDateToParts); -b.Export(function(cw){ -cw.FormatDateToParts=FormatDateToParts; +b.Export(function(cF){ +cF.AddBoundMethod=AddBoundMethod; +cF.IntlParseDate=IntlParseDate; +cF.IntlParseNumber=IntlParseNumber; +}); +}) + + Lharmony-async-await� +(function(a,b,c){ +"use strict"; +%CheckIsBootstrapping(); +var d; +var e; +var f; +var g; +var h; +b.Import(function(i){ +d=i.AsyncFunctionNext; +e=i.AsyncFunctionThrow; +f=i.PromiseCreateRejected; +g=i.PromiseCreateResolved; +h=i.PromiseThen; +}); +function AsyncFunctionAwait(j,k){ +return %_Call( +h,g(k), +function(l){ +return %_Call(d,j,l); +}, +function(m){ +return %_Call(e,j,m); }); +} +%InstallToContext(["async_function_await",AsyncFunctionAwait]); }) -=i){ -throw %make_range_error(156); -} -return k; +if(m<0||m>=k){ +throw d(154); } -function AtomicsCompareExchangeJS(l,h,m,n){ -CheckSharedIntegerTypedArray(l); -h=ValidateIndex(h,%_TypedArrayGetLength(l)); -m=(%_ToNumber(m)); -n=(%_ToNumber(n)); -return %_AtomicsCompareExchange(l,h,m,n); +return m; } -function AtomicsAddJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); +function AtomicsCompareExchangeJS(n,j,o,p){ +CheckSharedIntegerTypedArray(n); +j=ValidateIndex(j,%_TypedArrayGetLength(n)); o=(%_ToNumber(o)); -return %_AtomicsAdd(g,h,o); +p=(%_ToNumber(p)); +return %_AtomicsCompareExchange(n,j,o,p); } -function AtomicsSubJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -o=(%_ToNumber(o)); -return %_AtomicsSub(g,h,o); +function AtomicsAddJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsAdd(i,j,q); } -function AtomicsAndJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -o=(%_ToNumber(o)); -return %_AtomicsAnd(g,h,o); +function AtomicsSubJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsSub(i,j,q); } -function AtomicsOrJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -o=(%_ToNumber(o)); -return %_AtomicsOr(g,h,o); +function AtomicsAndJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsAnd(i,j,q); } -function AtomicsXorJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -o=(%_ToNumber(o)); -return %_AtomicsXor(g,h,o); +function AtomicsOrJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsOr(i,j,q); } -function AtomicsExchangeJS(g,h,o){ -CheckSharedIntegerTypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -o=(%_ToNumber(o)); -return %_AtomicsExchange(g,h,o); +function AtomicsXorJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsXor(i,j,q); +} +function AtomicsExchangeJS(i,j,q){ +CheckSharedIntegerTypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +q=(%_ToNumber(q)); +return %_AtomicsExchange(i,j,q); } -function AtomicsIsLockFreeJS(p){ -return %_AtomicsIsLockFree(p); +function AtomicsIsLockFreeJS(r){ +return %_AtomicsIsLockFree(r); } -function AtomicsWaitJS(g,h,o,q){ -CheckSharedInteger32TypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -if((q===(void 0))){ -q=(1/0); +function AtomicsFutexWaitJS(i,j,q,s){ +CheckSharedInteger32TypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +if((s===(void 0))){ +s=(1/0); }else{ -q=(%_ToNumber(q)); -if((!%_IsSmi(%IS_VAR(q))&&!(q==q))){ -q=(1/0); +s=(%_ToNumber(s)); +if((!%_IsSmi(%IS_VAR(s))&&!(s==s))){ +s=(1/0); }else{ -q=d(0,q); +s=f(0,s); +} } +return %AtomicsFutexWait(i,j,q,s); } -return %AtomicsWait(g,h,o,q); +function AtomicsFutexWakeJS(i,j,t){ +CheckSharedInteger32TypedArray(i); +j=ValidateIndex(j,%_TypedArrayGetLength(i)); +t=f(0,(%_ToInteger(t))); +return %AtomicsFutexWake(i,j,t); } -function AtomicsWakeJS(g,h,r){ -CheckSharedInteger32TypedArray(g); -h=ValidateIndex(h,%_TypedArrayGetLength(g)); -r=d(0,(%_ToInteger(r))); -return %AtomicsWake(g,h,r); +function AtomicsFutexWakeOrRequeueJS(i,u,t,q,v){ +CheckSharedInteger32TypedArray(i); +u=ValidateIndex(u,%_TypedArrayGetLength(i)); +t=f(0,(%_ToInteger(t))); +q=((q)|0); +v=ValidateIndex(v,%_TypedArrayGetLength(i)); +if(u<0||u>=%_TypedArrayGetLength(i)|| +v<0||v>=%_TypedArrayGetLength(i)){ +return(void 0); +} +return %AtomicsFutexWakeOrRequeue(i,u,t,q,v); } -var s=a.Atomics; -%AddNamedProperty(s,e,"Atomics",1|2); -b.InstallFunctions(s,2,[ +var w=a.Atomics; +%AddNamedProperty(w,g,"Atomics",1|2); +b.InstallConstants(w,[ +"OK",0, +"NOTEQUAL",-1, +"TIMEDOUT",-2, +]); +b.InstallFunctions(w,2,[ "compareExchange",AtomicsCompareExchangeJS, "add",AtomicsAddJS, "sub",AtomicsSubJS, @@ -12347,1642 +13886,1667 @@ b.InstallFunctions(s,2,[ "xor",AtomicsXorJS, "exchange",AtomicsExchangeJS, "isLockFree",AtomicsIsLockFreeJS, -"wait",AtomicsWaitJS, -"wake",AtomicsWakeJS, +"futexWait",AtomicsFutexWaitJS, +"futexWake",AtomicsFutexWakeJS, +"futexWakeOrRequeue",AtomicsFutexWakeOrRequeueJS, ]); }) -0harmony-simd�� +dharmony-sharedarraybufferE +(function(a,b){ +"use strict"; +%CheckIsBootstrapping(); +var c=a.SharedArrayBuffer; +var d; +b.Import(function(e){ +d=e.MakeTypeError; +}) +function SharedArrayBufferGetByteLen(){ +if(!(%_ClassOf(this)==='SharedArrayBuffer')){ +throw d(43, +'SharedArrayBuffer.prototype.byteLength',this); +} +return %_ArrayBufferGetByteLength(this); +} +b.InstallGetter(c.prototype,"byteLength", +SharedArrayBufferGetByteLen); +}) + +0harmony-simd�� (function(a,b){ "use strict"; %CheckIsBootstrapping(); var c=a.SIMD; -var d=b.ImportNow("to_string_tag_symbol"); -var e=c.Float32x4; +var d; +var e=b.ImportNow("to_string_tag_symbol"); +b.Import(function(f){ +d=f.MakeTypeError; +}); +var g=c.Float32x4; -var f=c.Int32x4; +var h=c.Int32x4; -var g=c.Int16x8; +var i=c.Int16x8; -var h=c.Int8x16; +var j=c.Int8x16; -var i=c.Uint32x4; +var k=c.Uint32x4; -var j=c.Uint16x8; +var l=c.Uint16x8; -var k=c.Uint8x16; +var m=c.Uint8x16; -var l=c.Bool32x4; +var n=c.Bool32x4; -var m=c.Bool16x8; +var o=c.Bool16x8; -var n=c.Bool8x16; +var p=c.Bool8x16; -function Float32x4CheckJS(o){ -return %Float32x4Check(o); +function Float32x4CheckJS(q){ +return %Float32x4Check(q); } function Float32x4ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='float32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='float32x4'){ +throw d(43, "Float32x4.prototype.toString",this); } -var q="SIMD.Float32x4("; -q+=%Float32x4ExtractLane(p,0); -for(var r=1;r<4;r++){ -q+=", "+%Float32x4ExtractLane(p,r); +var s="SIMD.Float32x4("; +s+=%Float32x4ExtractLane(r,0); +for(var t=1;t<4;t++){ +s+=", "+%Float32x4ExtractLane(r,t); } -return q+")"; +return s+")"; } function Float32x4ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='float32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='float32x4'){ +throw d(43, "Float32x4.prototype.toLocaleString",this); } -var q="SIMD.Float32x4("; -q+=%Float32x4ExtractLane(p,0).toLocaleString(); -for(var r=1;r<4;r++){ -q+=", "+%Float32x4ExtractLane(p,r).toLocaleString(); +var s="SIMD.Float32x4("; +s+=%Float32x4ExtractLane(r,0).toLocaleString(); +for(var t=1;t<4;t++){ +s+=", "+%Float32x4ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Float32x4ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='float32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='float32x4'){ +throw d(43, "Float32x4.prototype.valueOf",this); } -return p; +return r; } -function Float32x4ExtractLaneJS(s,t){ -return %Float32x4ExtractLane(s,t); +function Float32x4ExtractLaneJS(u,v){ +return %Float32x4ExtractLane(u,v); } -function Int32x4CheckJS(o){ -return %Int32x4Check(o); +function Int32x4CheckJS(q){ +return %Int32x4Check(q); } function Int32x4ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int32x4'){ +throw d(43, "Int32x4.prototype.toString",this); } -var q="SIMD.Int32x4("; -q+=%Int32x4ExtractLane(p,0); -for(var r=1;r<4;r++){ -q+=", "+%Int32x4ExtractLane(p,r); +var s="SIMD.Int32x4("; +s+=%Int32x4ExtractLane(r,0); +for(var t=1;t<4;t++){ +s+=", "+%Int32x4ExtractLane(r,t); } -return q+")"; +return s+")"; } function Int32x4ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int32x4'){ +throw d(43, "Int32x4.prototype.toLocaleString",this); } -var q="SIMD.Int32x4("; -q+=%Int32x4ExtractLane(p,0).toLocaleString(); -for(var r=1;r<4;r++){ -q+=", "+%Int32x4ExtractLane(p,r).toLocaleString(); +var s="SIMD.Int32x4("; +s+=%Int32x4ExtractLane(r,0).toLocaleString(); +for(var t=1;t<4;t++){ +s+=", "+%Int32x4ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Int32x4ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='int32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int32x4'){ +throw d(43, "Int32x4.prototype.valueOf",this); } -return p; +return r; } -function Int32x4ExtractLaneJS(s,t){ -return %Int32x4ExtractLane(s,t); +function Int32x4ExtractLaneJS(u,v){ +return %Int32x4ExtractLane(u,v); } -function Int16x8CheckJS(o){ -return %Int16x8Check(o); +function Int16x8CheckJS(q){ +return %Int16x8Check(q); } function Int16x8ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int16x8'){ +throw d(43, "Int16x8.prototype.toString",this); } -var q="SIMD.Int16x8("; -q+=%Int16x8ExtractLane(p,0); -for(var r=1;r<8;r++){ -q+=", "+%Int16x8ExtractLane(p,r); +var s="SIMD.Int16x8("; +s+=%Int16x8ExtractLane(r,0); +for(var t=1;t<8;t++){ +s+=", "+%Int16x8ExtractLane(r,t); } -return q+")"; +return s+")"; } function Int16x8ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int16x8'){ +throw d(43, "Int16x8.prototype.toLocaleString",this); } -var q="SIMD.Int16x8("; -q+=%Int16x8ExtractLane(p,0).toLocaleString(); -for(var r=1;r<8;r++){ -q+=", "+%Int16x8ExtractLane(p,r).toLocaleString(); +var s="SIMD.Int16x8("; +s+=%Int16x8ExtractLane(r,0).toLocaleString(); +for(var t=1;t<8;t++){ +s+=", "+%Int16x8ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Int16x8ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='int16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int16x8'){ +throw d(43, "Int16x8.prototype.valueOf",this); } -return p; +return r; } -function Int16x8ExtractLaneJS(s,t){ -return %Int16x8ExtractLane(s,t); +function Int16x8ExtractLaneJS(u,v){ +return %Int16x8ExtractLane(u,v); } -function Int8x16CheckJS(o){ -return %Int8x16Check(o); +function Int8x16CheckJS(q){ +return %Int8x16Check(q); } function Int8x16ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int8x16'){ +throw d(43, "Int8x16.prototype.toString",this); } -var q="SIMD.Int8x16("; -q+=%Int8x16ExtractLane(p,0); -for(var r=1;r<16;r++){ -q+=", "+%Int8x16ExtractLane(p,r); +var s="SIMD.Int8x16("; +s+=%Int8x16ExtractLane(r,0); +for(var t=1;t<16;t++){ +s+=", "+%Int8x16ExtractLane(r,t); } -return q+")"; +return s+")"; } function Int8x16ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='int8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int8x16'){ +throw d(43, "Int8x16.prototype.toLocaleString",this); } -var q="SIMD.Int8x16("; -q+=%Int8x16ExtractLane(p,0).toLocaleString(); -for(var r=1;r<16;r++){ -q+=", "+%Int8x16ExtractLane(p,r).toLocaleString(); +var s="SIMD.Int8x16("; +s+=%Int8x16ExtractLane(r,0).toLocaleString(); +for(var t=1;t<16;t++){ +s+=", "+%Int8x16ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Int8x16ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='int8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='int8x16'){ +throw d(43, "Int8x16.prototype.valueOf",this); } -return p; +return r; } -function Int8x16ExtractLaneJS(s,t){ -return %Int8x16ExtractLane(s,t); +function Int8x16ExtractLaneJS(u,v){ +return %Int8x16ExtractLane(u,v); } -function Uint32x4CheckJS(o){ -return %Uint32x4Check(o); +function Uint32x4CheckJS(q){ +return %Uint32x4Check(q); } function Uint32x4ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint32x4'){ +throw d(43, "Uint32x4.prototype.toString",this); } -var q="SIMD.Uint32x4("; -q+=%Uint32x4ExtractLane(p,0); -for(var r=1;r<4;r++){ -q+=", "+%Uint32x4ExtractLane(p,r); +var s="SIMD.Uint32x4("; +s+=%Uint32x4ExtractLane(r,0); +for(var t=1;t<4;t++){ +s+=", "+%Uint32x4ExtractLane(r,t); } -return q+")"; +return s+")"; } function Uint32x4ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint32x4'){ +throw d(43, "Uint32x4.prototype.toLocaleString",this); } -var q="SIMD.Uint32x4("; -q+=%Uint32x4ExtractLane(p,0).toLocaleString(); -for(var r=1;r<4;r++){ -q+=", "+%Uint32x4ExtractLane(p,r).toLocaleString(); +var s="SIMD.Uint32x4("; +s+=%Uint32x4ExtractLane(r,0).toLocaleString(); +for(var t=1;t<4;t++){ +s+=", "+%Uint32x4ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Uint32x4ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint32x4'){ +throw d(43, "Uint32x4.prototype.valueOf",this); } -return p; +return r; } -function Uint32x4ExtractLaneJS(s,t){ -return %Uint32x4ExtractLane(s,t); +function Uint32x4ExtractLaneJS(u,v){ +return %Uint32x4ExtractLane(u,v); } -function Uint16x8CheckJS(o){ -return %Uint16x8Check(o); +function Uint16x8CheckJS(q){ +return %Uint16x8Check(q); } function Uint16x8ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint16x8'){ +throw d(43, "Uint16x8.prototype.toString",this); } -var q="SIMD.Uint16x8("; -q+=%Uint16x8ExtractLane(p,0); -for(var r=1;r<8;r++){ -q+=", "+%Uint16x8ExtractLane(p,r); +var s="SIMD.Uint16x8("; +s+=%Uint16x8ExtractLane(r,0); +for(var t=1;t<8;t++){ +s+=", "+%Uint16x8ExtractLane(r,t); } -return q+")"; +return s+")"; } function Uint16x8ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint16x8'){ +throw d(43, "Uint16x8.prototype.toLocaleString",this); } -var q="SIMD.Uint16x8("; -q+=%Uint16x8ExtractLane(p,0).toLocaleString(); -for(var r=1;r<8;r++){ -q+=", "+%Uint16x8ExtractLane(p,r).toLocaleString(); +var s="SIMD.Uint16x8("; +s+=%Uint16x8ExtractLane(r,0).toLocaleString(); +for(var t=1;t<8;t++){ +s+=", "+%Uint16x8ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Uint16x8ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint16x8'){ +throw d(43, "Uint16x8.prototype.valueOf",this); } -return p; +return r; } -function Uint16x8ExtractLaneJS(s,t){ -return %Uint16x8ExtractLane(s,t); +function Uint16x8ExtractLaneJS(u,v){ +return %Uint16x8ExtractLane(u,v); } -function Uint8x16CheckJS(o){ -return %Uint8x16Check(o); +function Uint8x16CheckJS(q){ +return %Uint8x16Check(q); } function Uint8x16ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint8x16'){ +throw d(43, "Uint8x16.prototype.toString",this); } -var q="SIMD.Uint8x16("; -q+=%Uint8x16ExtractLane(p,0); -for(var r=1;r<16;r++){ -q+=", "+%Uint8x16ExtractLane(p,r); +var s="SIMD.Uint8x16("; +s+=%Uint8x16ExtractLane(r,0); +for(var t=1;t<16;t++){ +s+=", "+%Uint8x16ExtractLane(r,t); } -return q+")"; +return s+")"; } function Uint8x16ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint8x16'){ +throw d(43, "Uint8x16.prototype.toLocaleString",this); } -var q="SIMD.Uint8x16("; -q+=%Uint8x16ExtractLane(p,0).toLocaleString(); -for(var r=1;r<16;r++){ -q+=", "+%Uint8x16ExtractLane(p,r).toLocaleString(); +var s="SIMD.Uint8x16("; +s+=%Uint8x16ExtractLane(r,0).toLocaleString(); +for(var t=1;t<16;t++){ +s+=", "+%Uint8x16ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Uint8x16ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='uint8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='uint8x16'){ +throw d(43, "Uint8x16.prototype.valueOf",this); } -return p; +return r; } -function Uint8x16ExtractLaneJS(s,t){ -return %Uint8x16ExtractLane(s,t); +function Uint8x16ExtractLaneJS(u,v){ +return %Uint8x16ExtractLane(u,v); } -function Bool32x4CheckJS(o){ -return %Bool32x4Check(o); +function Bool32x4CheckJS(q){ +return %Bool32x4Check(q); } function Bool32x4ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool32x4'){ +throw d(43, "Bool32x4.prototype.toString",this); } -var q="SIMD.Bool32x4("; -q+=%Bool32x4ExtractLane(p,0); -for(var r=1;r<4;r++){ -q+=", "+%Bool32x4ExtractLane(p,r); +var s="SIMD.Bool32x4("; +s+=%Bool32x4ExtractLane(r,0); +for(var t=1;t<4;t++){ +s+=", "+%Bool32x4ExtractLane(r,t); } -return q+")"; +return s+")"; } function Bool32x4ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool32x4'){ +throw d(43, "Bool32x4.prototype.toLocaleString",this); } -var q="SIMD.Bool32x4("; -q+=%Bool32x4ExtractLane(p,0).toLocaleString(); -for(var r=1;r<4;r++){ -q+=", "+%Bool32x4ExtractLane(p,r).toLocaleString(); +var s="SIMD.Bool32x4("; +s+=%Bool32x4ExtractLane(r,0).toLocaleString(); +for(var t=1;t<4;t++){ +s+=", "+%Bool32x4ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Bool32x4ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool32x4'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool32x4'){ +throw d(43, "Bool32x4.prototype.valueOf",this); } -return p; +return r; } -function Bool32x4ExtractLaneJS(s,t){ -return %Bool32x4ExtractLane(s,t); +function Bool32x4ExtractLaneJS(u,v){ +return %Bool32x4ExtractLane(u,v); } -function Bool16x8CheckJS(o){ -return %Bool16x8Check(o); +function Bool16x8CheckJS(q){ +return %Bool16x8Check(q); } function Bool16x8ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool16x8'){ +throw d(43, "Bool16x8.prototype.toString",this); } -var q="SIMD.Bool16x8("; -q+=%Bool16x8ExtractLane(p,0); -for(var r=1;r<8;r++){ -q+=", "+%Bool16x8ExtractLane(p,r); +var s="SIMD.Bool16x8("; +s+=%Bool16x8ExtractLane(r,0); +for(var t=1;t<8;t++){ +s+=", "+%Bool16x8ExtractLane(r,t); } -return q+")"; +return s+")"; } function Bool16x8ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool16x8'){ +throw d(43, "Bool16x8.prototype.toLocaleString",this); } -var q="SIMD.Bool16x8("; -q+=%Bool16x8ExtractLane(p,0).toLocaleString(); -for(var r=1;r<8;r++){ -q+=", "+%Bool16x8ExtractLane(p,r).toLocaleString(); +var s="SIMD.Bool16x8("; +s+=%Bool16x8ExtractLane(r,0).toLocaleString(); +for(var t=1;t<8;t++){ +s+=", "+%Bool16x8ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Bool16x8ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool16x8'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool16x8'){ +throw d(43, "Bool16x8.prototype.valueOf",this); } -return p; +return r; } -function Bool16x8ExtractLaneJS(s,t){ -return %Bool16x8ExtractLane(s,t); +function Bool16x8ExtractLaneJS(u,v){ +return %Bool16x8ExtractLane(u,v); } -function Bool8x16CheckJS(o){ -return %Bool8x16Check(o); +function Bool8x16CheckJS(q){ +return %Bool8x16Check(q); } function Bool8x16ToString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool8x16'){ +throw d(43, "Bool8x16.prototype.toString",this); } -var q="SIMD.Bool8x16("; -q+=%Bool8x16ExtractLane(p,0); -for(var r=1;r<16;r++){ -q+=", "+%Bool8x16ExtractLane(p,r); +var s="SIMD.Bool8x16("; +s+=%Bool8x16ExtractLane(r,0); +for(var t=1;t<16;t++){ +s+=", "+%Bool8x16ExtractLane(r,t); } -return q+")"; +return s+")"; } function Bool8x16ToLocaleString(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool8x16'){ +throw d(43, "Bool8x16.prototype.toLocaleString",this); } -var q="SIMD.Bool8x16("; -q+=%Bool8x16ExtractLane(p,0).toLocaleString(); -for(var r=1;r<16;r++){ -q+=", "+%Bool8x16ExtractLane(p,r).toLocaleString(); +var s="SIMD.Bool8x16("; +s+=%Bool8x16ExtractLane(r,0).toLocaleString(); +for(var t=1;t<16;t++){ +s+=", "+%Bool8x16ExtractLane(r,t).toLocaleString(); } -return q+")"; +return s+")"; } function Bool8x16ValueOf(){ -var p=%ValueOf(this); -if(typeof(p)!=='bool8x16'){ -throw %make_type_error(45, +var r=%_ValueOf(this); +if(typeof(r)!=='bool8x16'){ +throw d(43, "Bool8x16.prototype.valueOf",this); } -return p; +return r; } -function Bool8x16ExtractLaneJS(s,t){ -return %Bool8x16ExtractLane(s,t); +function Bool8x16ExtractLaneJS(u,v){ +return %Bool8x16ExtractLane(u,v); } -function Int32x4ShiftLeftByScalarJS(s,u){ -return %Int32x4ShiftLeftByScalar(s,u); +function Int32x4ShiftLeftByScalarJS(u,w){ +return %Int32x4ShiftLeftByScalar(u,w); } -function Int32x4ShiftRightByScalarJS(s,u){ -return %Int32x4ShiftRightByScalar(s,u); +function Int32x4ShiftRightByScalarJS(u,w){ +return %Int32x4ShiftRightByScalar(u,w); } -function Int16x8ShiftLeftByScalarJS(s,u){ -return %Int16x8ShiftLeftByScalar(s,u); +function Int16x8ShiftLeftByScalarJS(u,w){ +return %Int16x8ShiftLeftByScalar(u,w); } -function Int16x8ShiftRightByScalarJS(s,u){ -return %Int16x8ShiftRightByScalar(s,u); +function Int16x8ShiftRightByScalarJS(u,w){ +return %Int16x8ShiftRightByScalar(u,w); } -function Int8x16ShiftLeftByScalarJS(s,u){ -return %Int8x16ShiftLeftByScalar(s,u); +function Int8x16ShiftLeftByScalarJS(u,w){ +return %Int8x16ShiftLeftByScalar(u,w); } -function Int8x16ShiftRightByScalarJS(s,u){ -return %Int8x16ShiftRightByScalar(s,u); +function Int8x16ShiftRightByScalarJS(u,w){ +return %Int8x16ShiftRightByScalar(u,w); } -function Uint32x4ShiftLeftByScalarJS(s,u){ -return %Uint32x4ShiftLeftByScalar(s,u); +function Uint32x4ShiftLeftByScalarJS(u,w){ +return %Uint32x4ShiftLeftByScalar(u,w); } -function Uint32x4ShiftRightByScalarJS(s,u){ -return %Uint32x4ShiftRightByScalar(s,u); +function Uint32x4ShiftRightByScalarJS(u,w){ +return %Uint32x4ShiftRightByScalar(u,w); } -function Uint16x8ShiftLeftByScalarJS(s,u){ -return %Uint16x8ShiftLeftByScalar(s,u); +function Uint16x8ShiftLeftByScalarJS(u,w){ +return %Uint16x8ShiftLeftByScalar(u,w); } -function Uint16x8ShiftRightByScalarJS(s,u){ -return %Uint16x8ShiftRightByScalar(s,u); +function Uint16x8ShiftRightByScalarJS(u,w){ +return %Uint16x8ShiftRightByScalar(u,w); } -function Uint8x16ShiftLeftByScalarJS(s,u){ -return %Uint8x16ShiftLeftByScalar(s,u); +function Uint8x16ShiftLeftByScalarJS(u,w){ +return %Uint8x16ShiftLeftByScalar(u,w); } -function Uint8x16ShiftRightByScalarJS(s,u){ -return %Uint8x16ShiftRightByScalar(s,u); +function Uint8x16ShiftRightByScalarJS(u,w){ +return %Uint8x16ShiftRightByScalar(u,w); } -function Int16x8AddSaturateJS(o,v){ -return %Int16x8AddSaturate(o,v); +function Int16x8AddSaturateJS(q,x){ +return %Int16x8AddSaturate(q,x); } -function Int16x8SubSaturateJS(o,v){ -return %Int16x8SubSaturate(o,v); +function Int16x8SubSaturateJS(q,x){ +return %Int16x8SubSaturate(q,x); } -function Int8x16AddSaturateJS(o,v){ -return %Int8x16AddSaturate(o,v); +function Int8x16AddSaturateJS(q,x){ +return %Int8x16AddSaturate(q,x); } -function Int8x16SubSaturateJS(o,v){ -return %Int8x16SubSaturate(o,v); +function Int8x16SubSaturateJS(q,x){ +return %Int8x16SubSaturate(q,x); } -function Uint8x16AddSaturateJS(o,v){ -return %Uint8x16AddSaturate(o,v); +function Uint8x16AddSaturateJS(q,x){ +return %Uint8x16AddSaturate(q,x); } -function Uint8x16SubSaturateJS(o,v){ -return %Uint8x16SubSaturate(o,v); +function Uint8x16SubSaturateJS(q,x){ +return %Uint8x16SubSaturate(q,x); } -function Uint16x8AddSaturateJS(o,v){ -return %Uint16x8AddSaturate(o,v); +function Uint16x8AddSaturateJS(q,x){ +return %Uint16x8AddSaturate(q,x); } -function Uint16x8SubSaturateJS(o,v){ -return %Uint16x8SubSaturate(o,v); +function Uint16x8SubSaturateJS(q,x){ +return %Uint16x8SubSaturate(q,x); } -function Float32x4NegJS(o){ -return %Float32x4Neg(o); +function Float32x4NegJS(q){ +return %Float32x4Neg(q); } -function Int32x4NegJS(o){ -return %Int32x4Neg(o); +function Int32x4NegJS(q){ +return %Int32x4Neg(q); } -function Int16x8NegJS(o){ -return %Int16x8Neg(o); +function Int16x8NegJS(q){ +return %Int16x8Neg(q); } -function Int8x16NegJS(o){ -return %Int8x16Neg(o); +function Int8x16NegJS(q){ +return %Int8x16Neg(q); } -function Bool32x4ReplaceLaneJS(s,t,p){ -return %Bool32x4ReplaceLane(s,t,p); +function Bool32x4ReplaceLaneJS(u,v,r){ +return %Bool32x4ReplaceLane(u,v,r); } -function Bool32x4AnyTrueJS(w){ -return %Bool32x4AnyTrue(w); +function Bool32x4AnyTrueJS(y){ +return %Bool32x4AnyTrue(y); } -function Bool32x4AllTrueJS(w){ -return %Bool32x4AllTrue(w); +function Bool32x4AllTrueJS(y){ +return %Bool32x4AllTrue(y); } -function Bool16x8ReplaceLaneJS(s,t,p){ -return %Bool16x8ReplaceLane(s,t,p); +function Bool16x8ReplaceLaneJS(u,v,r){ +return %Bool16x8ReplaceLane(u,v,r); } -function Bool16x8AnyTrueJS(w){ -return %Bool16x8AnyTrue(w); +function Bool16x8AnyTrueJS(y){ +return %Bool16x8AnyTrue(y); } -function Bool16x8AllTrueJS(w){ -return %Bool16x8AllTrue(w); +function Bool16x8AllTrueJS(y){ +return %Bool16x8AllTrue(y); } -function Bool8x16ReplaceLaneJS(s,t,p){ -return %Bool8x16ReplaceLane(s,t,p); +function Bool8x16ReplaceLaneJS(u,v,r){ +return %Bool8x16ReplaceLane(u,v,r); } -function Bool8x16AnyTrueJS(w){ -return %Bool8x16AnyTrue(w); +function Bool8x16AnyTrueJS(y){ +return %Bool8x16AnyTrue(y); } -function Bool8x16AllTrueJS(w){ -return %Bool8x16AllTrue(w); +function Bool8x16AllTrueJS(y){ +return %Bool8x16AllTrue(y); } -function Float32x4ReplaceLaneJS(s,t,p){ -return %Float32x4ReplaceLane(s,t,(%_ToNumber(p))); +function Float32x4ReplaceLaneJS(u,v,r){ +return %Float32x4ReplaceLane(u,v,(%_ToNumber(r))); } -function Float32x4SelectJS(x,o,v){ -return %Float32x4Select(x,o,v); +function Float32x4SelectJS(z,q,x){ +return %Float32x4Select(z,q,x); } -function Float32x4AddJS(o,v){ -return %Float32x4Add(o,v); +function Float32x4AddJS(q,x){ +return %Float32x4Add(q,x); } -function Float32x4SubJS(o,v){ -return %Float32x4Sub(o,v); +function Float32x4SubJS(q,x){ +return %Float32x4Sub(q,x); } -function Float32x4MulJS(o,v){ -return %Float32x4Mul(o,v); +function Float32x4MulJS(q,x){ +return %Float32x4Mul(q,x); } -function Float32x4MinJS(o,v){ -return %Float32x4Min(o,v); +function Float32x4MinJS(q,x){ +return %Float32x4Min(q,x); } -function Float32x4MaxJS(o,v){ -return %Float32x4Max(o,v); +function Float32x4MaxJS(q,x){ +return %Float32x4Max(q,x); } -function Float32x4EqualJS(o,v){ -return %Float32x4Equal(o,v); +function Float32x4EqualJS(q,x){ +return %Float32x4Equal(q,x); } -function Float32x4NotEqualJS(o,v){ -return %Float32x4NotEqual(o,v); +function Float32x4NotEqualJS(q,x){ +return %Float32x4NotEqual(q,x); } -function Float32x4LessThanJS(o,v){ -return %Float32x4LessThan(o,v); +function Float32x4LessThanJS(q,x){ +return %Float32x4LessThan(q,x); } -function Float32x4LessThanOrEqualJS(o,v){ -return %Float32x4LessThanOrEqual(o,v); +function Float32x4LessThanOrEqualJS(q,x){ +return %Float32x4LessThanOrEqual(q,x); } -function Float32x4GreaterThanJS(o,v){ -return %Float32x4GreaterThan(o,v); +function Float32x4GreaterThanJS(q,x){ +return %Float32x4GreaterThan(q,x); } -function Float32x4GreaterThanOrEqualJS(o,v){ -return %Float32x4GreaterThanOrEqual(o,v); +function Float32x4GreaterThanOrEqualJS(q,x){ +return %Float32x4GreaterThanOrEqual(q,x); } -function Float32x4LoadJS(y,z){ -return %Float32x4Load(y,z); +function Float32x4LoadJS(A,B){ +return %Float32x4Load(A,B); } -function Float32x4StoreJS(y,z,o){ -return %Float32x4Store(y,z,o); +function Float32x4StoreJS(A,B,q){ +return %Float32x4Store(A,B,q); } -function Int32x4ReplaceLaneJS(s,t,p){ -return %Int32x4ReplaceLane(s,t,(%_ToNumber(p))); +function Int32x4ReplaceLaneJS(u,v,r){ +return %Int32x4ReplaceLane(u,v,(%_ToNumber(r))); } -function Int32x4SelectJS(x,o,v){ -return %Int32x4Select(x,o,v); +function Int32x4SelectJS(z,q,x){ +return %Int32x4Select(z,q,x); } -function Int32x4AddJS(o,v){ -return %Int32x4Add(o,v); +function Int32x4AddJS(q,x){ +return %Int32x4Add(q,x); } -function Int32x4SubJS(o,v){ -return %Int32x4Sub(o,v); +function Int32x4SubJS(q,x){ +return %Int32x4Sub(q,x); } -function Int32x4MulJS(o,v){ -return %Int32x4Mul(o,v); +function Int32x4MulJS(q,x){ +return %Int32x4Mul(q,x); } -function Int32x4MinJS(o,v){ -return %Int32x4Min(o,v); +function Int32x4MinJS(q,x){ +return %Int32x4Min(q,x); } -function Int32x4MaxJS(o,v){ -return %Int32x4Max(o,v); +function Int32x4MaxJS(q,x){ +return %Int32x4Max(q,x); } -function Int32x4EqualJS(o,v){ -return %Int32x4Equal(o,v); +function Int32x4EqualJS(q,x){ +return %Int32x4Equal(q,x); } -function Int32x4NotEqualJS(o,v){ -return %Int32x4NotEqual(o,v); +function Int32x4NotEqualJS(q,x){ +return %Int32x4NotEqual(q,x); } -function Int32x4LessThanJS(o,v){ -return %Int32x4LessThan(o,v); +function Int32x4LessThanJS(q,x){ +return %Int32x4LessThan(q,x); } -function Int32x4LessThanOrEqualJS(o,v){ -return %Int32x4LessThanOrEqual(o,v); +function Int32x4LessThanOrEqualJS(q,x){ +return %Int32x4LessThanOrEqual(q,x); } -function Int32x4GreaterThanJS(o,v){ -return %Int32x4GreaterThan(o,v); +function Int32x4GreaterThanJS(q,x){ +return %Int32x4GreaterThan(q,x); } -function Int32x4GreaterThanOrEqualJS(o,v){ -return %Int32x4GreaterThanOrEqual(o,v); +function Int32x4GreaterThanOrEqualJS(q,x){ +return %Int32x4GreaterThanOrEqual(q,x); } -function Int32x4LoadJS(y,z){ -return %Int32x4Load(y,z); +function Int32x4LoadJS(A,B){ +return %Int32x4Load(A,B); } -function Int32x4StoreJS(y,z,o){ -return %Int32x4Store(y,z,o); +function Int32x4StoreJS(A,B,q){ +return %Int32x4Store(A,B,q); } -function Int16x8ReplaceLaneJS(s,t,p){ -return %Int16x8ReplaceLane(s,t,(%_ToNumber(p))); +function Int16x8ReplaceLaneJS(u,v,r){ +return %Int16x8ReplaceLane(u,v,(%_ToNumber(r))); } -function Int16x8SelectJS(x,o,v){ -return %Int16x8Select(x,o,v); +function Int16x8SelectJS(z,q,x){ +return %Int16x8Select(z,q,x); } -function Int16x8AddJS(o,v){ -return %Int16x8Add(o,v); +function Int16x8AddJS(q,x){ +return %Int16x8Add(q,x); } -function Int16x8SubJS(o,v){ -return %Int16x8Sub(o,v); +function Int16x8SubJS(q,x){ +return %Int16x8Sub(q,x); } -function Int16x8MulJS(o,v){ -return %Int16x8Mul(o,v); +function Int16x8MulJS(q,x){ +return %Int16x8Mul(q,x); } -function Int16x8MinJS(o,v){ -return %Int16x8Min(o,v); +function Int16x8MinJS(q,x){ +return %Int16x8Min(q,x); } -function Int16x8MaxJS(o,v){ -return %Int16x8Max(o,v); +function Int16x8MaxJS(q,x){ +return %Int16x8Max(q,x); } -function Int16x8EqualJS(o,v){ -return %Int16x8Equal(o,v); +function Int16x8EqualJS(q,x){ +return %Int16x8Equal(q,x); } -function Int16x8NotEqualJS(o,v){ -return %Int16x8NotEqual(o,v); +function Int16x8NotEqualJS(q,x){ +return %Int16x8NotEqual(q,x); } -function Int16x8LessThanJS(o,v){ -return %Int16x8LessThan(o,v); +function Int16x8LessThanJS(q,x){ +return %Int16x8LessThan(q,x); } -function Int16x8LessThanOrEqualJS(o,v){ -return %Int16x8LessThanOrEqual(o,v); +function Int16x8LessThanOrEqualJS(q,x){ +return %Int16x8LessThanOrEqual(q,x); } -function Int16x8GreaterThanJS(o,v){ -return %Int16x8GreaterThan(o,v); +function Int16x8GreaterThanJS(q,x){ +return %Int16x8GreaterThan(q,x); } -function Int16x8GreaterThanOrEqualJS(o,v){ -return %Int16x8GreaterThanOrEqual(o,v); +function Int16x8GreaterThanOrEqualJS(q,x){ +return %Int16x8GreaterThanOrEqual(q,x); } -function Int16x8LoadJS(y,z){ -return %Int16x8Load(y,z); +function Int16x8LoadJS(A,B){ +return %Int16x8Load(A,B); } -function Int16x8StoreJS(y,z,o){ -return %Int16x8Store(y,z,o); +function Int16x8StoreJS(A,B,q){ +return %Int16x8Store(A,B,q); } -function Int8x16ReplaceLaneJS(s,t,p){ -return %Int8x16ReplaceLane(s,t,(%_ToNumber(p))); +function Int8x16ReplaceLaneJS(u,v,r){ +return %Int8x16ReplaceLane(u,v,(%_ToNumber(r))); } -function Int8x16SelectJS(x,o,v){ -return %Int8x16Select(x,o,v); +function Int8x16SelectJS(z,q,x){ +return %Int8x16Select(z,q,x); } -function Int8x16AddJS(o,v){ -return %Int8x16Add(o,v); +function Int8x16AddJS(q,x){ +return %Int8x16Add(q,x); } -function Int8x16SubJS(o,v){ -return %Int8x16Sub(o,v); +function Int8x16SubJS(q,x){ +return %Int8x16Sub(q,x); } -function Int8x16MulJS(o,v){ -return %Int8x16Mul(o,v); +function Int8x16MulJS(q,x){ +return %Int8x16Mul(q,x); } -function Int8x16MinJS(o,v){ -return %Int8x16Min(o,v); +function Int8x16MinJS(q,x){ +return %Int8x16Min(q,x); } -function Int8x16MaxJS(o,v){ -return %Int8x16Max(o,v); +function Int8x16MaxJS(q,x){ +return %Int8x16Max(q,x); } -function Int8x16EqualJS(o,v){ -return %Int8x16Equal(o,v); +function Int8x16EqualJS(q,x){ +return %Int8x16Equal(q,x); } -function Int8x16NotEqualJS(o,v){ -return %Int8x16NotEqual(o,v); +function Int8x16NotEqualJS(q,x){ +return %Int8x16NotEqual(q,x); } -function Int8x16LessThanJS(o,v){ -return %Int8x16LessThan(o,v); +function Int8x16LessThanJS(q,x){ +return %Int8x16LessThan(q,x); } -function Int8x16LessThanOrEqualJS(o,v){ -return %Int8x16LessThanOrEqual(o,v); +function Int8x16LessThanOrEqualJS(q,x){ +return %Int8x16LessThanOrEqual(q,x); } -function Int8x16GreaterThanJS(o,v){ -return %Int8x16GreaterThan(o,v); +function Int8x16GreaterThanJS(q,x){ +return %Int8x16GreaterThan(q,x); } -function Int8x16GreaterThanOrEqualJS(o,v){ -return %Int8x16GreaterThanOrEqual(o,v); +function Int8x16GreaterThanOrEqualJS(q,x){ +return %Int8x16GreaterThanOrEqual(q,x); } -function Int8x16LoadJS(y,z){ -return %Int8x16Load(y,z); +function Int8x16LoadJS(A,B){ +return %Int8x16Load(A,B); } -function Int8x16StoreJS(y,z,o){ -return %Int8x16Store(y,z,o); +function Int8x16StoreJS(A,B,q){ +return %Int8x16Store(A,B,q); } -function Uint32x4ReplaceLaneJS(s,t,p){ -return %Uint32x4ReplaceLane(s,t,(%_ToNumber(p))); +function Uint32x4ReplaceLaneJS(u,v,r){ +return %Uint32x4ReplaceLane(u,v,(%_ToNumber(r))); } -function Uint32x4SelectJS(x,o,v){ -return %Uint32x4Select(x,o,v); +function Uint32x4SelectJS(z,q,x){ +return %Uint32x4Select(z,q,x); } -function Uint32x4AddJS(o,v){ -return %Uint32x4Add(o,v); +function Uint32x4AddJS(q,x){ +return %Uint32x4Add(q,x); } -function Uint32x4SubJS(o,v){ -return %Uint32x4Sub(o,v); +function Uint32x4SubJS(q,x){ +return %Uint32x4Sub(q,x); } -function Uint32x4MulJS(o,v){ -return %Uint32x4Mul(o,v); +function Uint32x4MulJS(q,x){ +return %Uint32x4Mul(q,x); } -function Uint32x4MinJS(o,v){ -return %Uint32x4Min(o,v); +function Uint32x4MinJS(q,x){ +return %Uint32x4Min(q,x); } -function Uint32x4MaxJS(o,v){ -return %Uint32x4Max(o,v); +function Uint32x4MaxJS(q,x){ +return %Uint32x4Max(q,x); } -function Uint32x4EqualJS(o,v){ -return %Uint32x4Equal(o,v); +function Uint32x4EqualJS(q,x){ +return %Uint32x4Equal(q,x); } -function Uint32x4NotEqualJS(o,v){ -return %Uint32x4NotEqual(o,v); +function Uint32x4NotEqualJS(q,x){ +return %Uint32x4NotEqual(q,x); } -function Uint32x4LessThanJS(o,v){ -return %Uint32x4LessThan(o,v); +function Uint32x4LessThanJS(q,x){ +return %Uint32x4LessThan(q,x); } -function Uint32x4LessThanOrEqualJS(o,v){ -return %Uint32x4LessThanOrEqual(o,v); +function Uint32x4LessThanOrEqualJS(q,x){ +return %Uint32x4LessThanOrEqual(q,x); } -function Uint32x4GreaterThanJS(o,v){ -return %Uint32x4GreaterThan(o,v); +function Uint32x4GreaterThanJS(q,x){ +return %Uint32x4GreaterThan(q,x); } -function Uint32x4GreaterThanOrEqualJS(o,v){ -return %Uint32x4GreaterThanOrEqual(o,v); +function Uint32x4GreaterThanOrEqualJS(q,x){ +return %Uint32x4GreaterThanOrEqual(q,x); } -function Uint32x4LoadJS(y,z){ -return %Uint32x4Load(y,z); +function Uint32x4LoadJS(A,B){ +return %Uint32x4Load(A,B); } -function Uint32x4StoreJS(y,z,o){ -return %Uint32x4Store(y,z,o); +function Uint32x4StoreJS(A,B,q){ +return %Uint32x4Store(A,B,q); } -function Uint16x8ReplaceLaneJS(s,t,p){ -return %Uint16x8ReplaceLane(s,t,(%_ToNumber(p))); +function Uint16x8ReplaceLaneJS(u,v,r){ +return %Uint16x8ReplaceLane(u,v,(%_ToNumber(r))); } -function Uint16x8SelectJS(x,o,v){ -return %Uint16x8Select(x,o,v); +function Uint16x8SelectJS(z,q,x){ +return %Uint16x8Select(z,q,x); } -function Uint16x8AddJS(o,v){ -return %Uint16x8Add(o,v); +function Uint16x8AddJS(q,x){ +return %Uint16x8Add(q,x); } -function Uint16x8SubJS(o,v){ -return %Uint16x8Sub(o,v); +function Uint16x8SubJS(q,x){ +return %Uint16x8Sub(q,x); } -function Uint16x8MulJS(o,v){ -return %Uint16x8Mul(o,v); +function Uint16x8MulJS(q,x){ +return %Uint16x8Mul(q,x); } -function Uint16x8MinJS(o,v){ -return %Uint16x8Min(o,v); +function Uint16x8MinJS(q,x){ +return %Uint16x8Min(q,x); } -function Uint16x8MaxJS(o,v){ -return %Uint16x8Max(o,v); +function Uint16x8MaxJS(q,x){ +return %Uint16x8Max(q,x); } -function Uint16x8EqualJS(o,v){ -return %Uint16x8Equal(o,v); +function Uint16x8EqualJS(q,x){ +return %Uint16x8Equal(q,x); } -function Uint16x8NotEqualJS(o,v){ -return %Uint16x8NotEqual(o,v); +function Uint16x8NotEqualJS(q,x){ +return %Uint16x8NotEqual(q,x); } -function Uint16x8LessThanJS(o,v){ -return %Uint16x8LessThan(o,v); +function Uint16x8LessThanJS(q,x){ +return %Uint16x8LessThan(q,x); } -function Uint16x8LessThanOrEqualJS(o,v){ -return %Uint16x8LessThanOrEqual(o,v); +function Uint16x8LessThanOrEqualJS(q,x){ +return %Uint16x8LessThanOrEqual(q,x); } -function Uint16x8GreaterThanJS(o,v){ -return %Uint16x8GreaterThan(o,v); +function Uint16x8GreaterThanJS(q,x){ +return %Uint16x8GreaterThan(q,x); } -function Uint16x8GreaterThanOrEqualJS(o,v){ -return %Uint16x8GreaterThanOrEqual(o,v); +function Uint16x8GreaterThanOrEqualJS(q,x){ +return %Uint16x8GreaterThanOrEqual(q,x); } -function Uint16x8LoadJS(y,z){ -return %Uint16x8Load(y,z); +function Uint16x8LoadJS(A,B){ +return %Uint16x8Load(A,B); } -function Uint16x8StoreJS(y,z,o){ -return %Uint16x8Store(y,z,o); +function Uint16x8StoreJS(A,B,q){ +return %Uint16x8Store(A,B,q); } -function Uint8x16ReplaceLaneJS(s,t,p){ -return %Uint8x16ReplaceLane(s,t,(%_ToNumber(p))); +function Uint8x16ReplaceLaneJS(u,v,r){ +return %Uint8x16ReplaceLane(u,v,(%_ToNumber(r))); } -function Uint8x16SelectJS(x,o,v){ -return %Uint8x16Select(x,o,v); +function Uint8x16SelectJS(z,q,x){ +return %Uint8x16Select(z,q,x); } -function Uint8x16AddJS(o,v){ -return %Uint8x16Add(o,v); +function Uint8x16AddJS(q,x){ +return %Uint8x16Add(q,x); } -function Uint8x16SubJS(o,v){ -return %Uint8x16Sub(o,v); +function Uint8x16SubJS(q,x){ +return %Uint8x16Sub(q,x); } -function Uint8x16MulJS(o,v){ -return %Uint8x16Mul(o,v); +function Uint8x16MulJS(q,x){ +return %Uint8x16Mul(q,x); } -function Uint8x16MinJS(o,v){ -return %Uint8x16Min(o,v); +function Uint8x16MinJS(q,x){ +return %Uint8x16Min(q,x); } -function Uint8x16MaxJS(o,v){ -return %Uint8x16Max(o,v); +function Uint8x16MaxJS(q,x){ +return %Uint8x16Max(q,x); } -function Uint8x16EqualJS(o,v){ -return %Uint8x16Equal(o,v); +function Uint8x16EqualJS(q,x){ +return %Uint8x16Equal(q,x); } -function Uint8x16NotEqualJS(o,v){ -return %Uint8x16NotEqual(o,v); +function Uint8x16NotEqualJS(q,x){ +return %Uint8x16NotEqual(q,x); } -function Uint8x16LessThanJS(o,v){ -return %Uint8x16LessThan(o,v); +function Uint8x16LessThanJS(q,x){ +return %Uint8x16LessThan(q,x); } -function Uint8x16LessThanOrEqualJS(o,v){ -return %Uint8x16LessThanOrEqual(o,v); +function Uint8x16LessThanOrEqualJS(q,x){ +return %Uint8x16LessThanOrEqual(q,x); } -function Uint8x16GreaterThanJS(o,v){ -return %Uint8x16GreaterThan(o,v); +function Uint8x16GreaterThanJS(q,x){ +return %Uint8x16GreaterThan(q,x); } -function Uint8x16GreaterThanOrEqualJS(o,v){ -return %Uint8x16GreaterThanOrEqual(o,v); +function Uint8x16GreaterThanOrEqualJS(q,x){ +return %Uint8x16GreaterThanOrEqual(q,x); } -function Uint8x16LoadJS(y,z){ -return %Uint8x16Load(y,z); +function Uint8x16LoadJS(A,B){ +return %Uint8x16Load(A,B); } -function Uint8x16StoreJS(y,z,o){ -return %Uint8x16Store(y,z,o); +function Uint8x16StoreJS(A,B,q){ +return %Uint8x16Store(A,B,q); } -function Int32x4AndJS(o,v){ -return %Int32x4And(o,v); +function Int32x4AndJS(q,x){ +return %Int32x4And(q,x); } -function Int32x4OrJS(o,v){ -return %Int32x4Or(o,v); +function Int32x4OrJS(q,x){ +return %Int32x4Or(q,x); } -function Int32x4XorJS(o,v){ -return %Int32x4Xor(o,v); +function Int32x4XorJS(q,x){ +return %Int32x4Xor(q,x); } -function Int32x4NotJS(o){ -return %Int32x4Not(o); +function Int32x4NotJS(q){ +return %Int32x4Not(q); } -function Int16x8AndJS(o,v){ -return %Int16x8And(o,v); +function Int16x8AndJS(q,x){ +return %Int16x8And(q,x); } -function Int16x8OrJS(o,v){ -return %Int16x8Or(o,v); +function Int16x8OrJS(q,x){ +return %Int16x8Or(q,x); } -function Int16x8XorJS(o,v){ -return %Int16x8Xor(o,v); +function Int16x8XorJS(q,x){ +return %Int16x8Xor(q,x); } -function Int16x8NotJS(o){ -return %Int16x8Not(o); +function Int16x8NotJS(q){ +return %Int16x8Not(q); } -function Int8x16AndJS(o,v){ -return %Int8x16And(o,v); +function Int8x16AndJS(q,x){ +return %Int8x16And(q,x); } -function Int8x16OrJS(o,v){ -return %Int8x16Or(o,v); +function Int8x16OrJS(q,x){ +return %Int8x16Or(q,x); } -function Int8x16XorJS(o,v){ -return %Int8x16Xor(o,v); +function Int8x16XorJS(q,x){ +return %Int8x16Xor(q,x); } -function Int8x16NotJS(o){ -return %Int8x16Not(o); +function Int8x16NotJS(q){ +return %Int8x16Not(q); } -function Uint32x4AndJS(o,v){ -return %Uint32x4And(o,v); +function Uint32x4AndJS(q,x){ +return %Uint32x4And(q,x); } -function Uint32x4OrJS(o,v){ -return %Uint32x4Or(o,v); +function Uint32x4OrJS(q,x){ +return %Uint32x4Or(q,x); } -function Uint32x4XorJS(o,v){ -return %Uint32x4Xor(o,v); +function Uint32x4XorJS(q,x){ +return %Uint32x4Xor(q,x); } -function Uint32x4NotJS(o){ -return %Uint32x4Not(o); +function Uint32x4NotJS(q){ +return %Uint32x4Not(q); } -function Uint16x8AndJS(o,v){ -return %Uint16x8And(o,v); +function Uint16x8AndJS(q,x){ +return %Uint16x8And(q,x); } -function Uint16x8OrJS(o,v){ -return %Uint16x8Or(o,v); +function Uint16x8OrJS(q,x){ +return %Uint16x8Or(q,x); } -function Uint16x8XorJS(o,v){ -return %Uint16x8Xor(o,v); +function Uint16x8XorJS(q,x){ +return %Uint16x8Xor(q,x); } -function Uint16x8NotJS(o){ -return %Uint16x8Not(o); +function Uint16x8NotJS(q){ +return %Uint16x8Not(q); } -function Uint8x16AndJS(o,v){ -return %Uint8x16And(o,v); +function Uint8x16AndJS(q,x){ +return %Uint8x16And(q,x); } -function Uint8x16OrJS(o,v){ -return %Uint8x16Or(o,v); +function Uint8x16OrJS(q,x){ +return %Uint8x16Or(q,x); } -function Uint8x16XorJS(o,v){ -return %Uint8x16Xor(o,v); +function Uint8x16XorJS(q,x){ +return %Uint8x16Xor(q,x); } -function Uint8x16NotJS(o){ -return %Uint8x16Not(o); +function Uint8x16NotJS(q){ +return %Uint8x16Not(q); } -function Bool32x4AndJS(o,v){ -return %Bool32x4And(o,v); +function Bool32x4AndJS(q,x){ +return %Bool32x4And(q,x); } -function Bool32x4OrJS(o,v){ -return %Bool32x4Or(o,v); +function Bool32x4OrJS(q,x){ +return %Bool32x4Or(q,x); } -function Bool32x4XorJS(o,v){ -return %Bool32x4Xor(o,v); +function Bool32x4XorJS(q,x){ +return %Bool32x4Xor(q,x); } -function Bool32x4NotJS(o){ -return %Bool32x4Not(o); +function Bool32x4NotJS(q){ +return %Bool32x4Not(q); } -function Bool16x8AndJS(o,v){ -return %Bool16x8And(o,v); +function Bool16x8AndJS(q,x){ +return %Bool16x8And(q,x); } -function Bool16x8OrJS(o,v){ -return %Bool16x8Or(o,v); +function Bool16x8OrJS(q,x){ +return %Bool16x8Or(q,x); } -function Bool16x8XorJS(o,v){ -return %Bool16x8Xor(o,v); +function Bool16x8XorJS(q,x){ +return %Bool16x8Xor(q,x); } -function Bool16x8NotJS(o){ -return %Bool16x8Not(o); +function Bool16x8NotJS(q){ +return %Bool16x8Not(q); } -function Bool8x16AndJS(o,v){ -return %Bool8x16And(o,v); +function Bool8x16AndJS(q,x){ +return %Bool8x16And(q,x); } -function Bool8x16OrJS(o,v){ -return %Bool8x16Or(o,v); +function Bool8x16OrJS(q,x){ +return %Bool8x16Or(q,x); } -function Bool8x16XorJS(o,v){ -return %Bool8x16Xor(o,v); +function Bool8x16XorJS(q,x){ +return %Bool8x16Xor(q,x); } -function Bool8x16NotJS(o){ -return %Bool8x16Not(o); +function Bool8x16NotJS(q){ +return %Bool8x16Not(q); } -function Float32x4FromInt32x4JS(o){ -return %Float32x4FromInt32x4(o); +function Float32x4FromInt32x4JS(q){ +return %Float32x4FromInt32x4(q); } -function Float32x4FromUint32x4JS(o){ -return %Float32x4FromUint32x4(o); +function Float32x4FromUint32x4JS(q){ +return %Float32x4FromUint32x4(q); } -function Int32x4FromFloat32x4JS(o){ -return %Int32x4FromFloat32x4(o); +function Int32x4FromFloat32x4JS(q){ +return %Int32x4FromFloat32x4(q); } -function Int32x4FromUint32x4JS(o){ -return %Int32x4FromUint32x4(o); +function Int32x4FromUint32x4JS(q){ +return %Int32x4FromUint32x4(q); } -function Uint32x4FromFloat32x4JS(o){ -return %Uint32x4FromFloat32x4(o); +function Uint32x4FromFloat32x4JS(q){ +return %Uint32x4FromFloat32x4(q); } -function Uint32x4FromInt32x4JS(o){ -return %Uint32x4FromInt32x4(o); +function Uint32x4FromInt32x4JS(q){ +return %Uint32x4FromInt32x4(q); } -function Int16x8FromUint16x8JS(o){ -return %Int16x8FromUint16x8(o); +function Int16x8FromUint16x8JS(q){ +return %Int16x8FromUint16x8(q); } -function Uint16x8FromInt16x8JS(o){ -return %Uint16x8FromInt16x8(o); +function Uint16x8FromInt16x8JS(q){ +return %Uint16x8FromInt16x8(q); } -function Int8x16FromUint8x16JS(o){ -return %Int8x16FromUint8x16(o); +function Int8x16FromUint8x16JS(q){ +return %Int8x16FromUint8x16(q); } -function Uint8x16FromInt8x16JS(o){ -return %Uint8x16FromInt8x16(o); +function Uint8x16FromInt8x16JS(q){ +return %Uint8x16FromInt8x16(q); } -function Float32x4FromInt32x4BitsJS(o){ -return %Float32x4FromInt32x4Bits(o); +function Float32x4FromInt32x4BitsJS(q){ +return %Float32x4FromInt32x4Bits(q); } -function Float32x4FromUint32x4BitsJS(o){ -return %Float32x4FromUint32x4Bits(o); +function Float32x4FromUint32x4BitsJS(q){ +return %Float32x4FromUint32x4Bits(q); } -function Float32x4FromInt16x8BitsJS(o){ -return %Float32x4FromInt16x8Bits(o); +function Float32x4FromInt16x8BitsJS(q){ +return %Float32x4FromInt16x8Bits(q); } -function Float32x4FromUint16x8BitsJS(o){ -return %Float32x4FromUint16x8Bits(o); +function Float32x4FromUint16x8BitsJS(q){ +return %Float32x4FromUint16x8Bits(q); } -function Float32x4FromInt8x16BitsJS(o){ -return %Float32x4FromInt8x16Bits(o); +function Float32x4FromInt8x16BitsJS(q){ +return %Float32x4FromInt8x16Bits(q); } -function Float32x4FromUint8x16BitsJS(o){ -return %Float32x4FromUint8x16Bits(o); +function Float32x4FromUint8x16BitsJS(q){ +return %Float32x4FromUint8x16Bits(q); } -function Int32x4FromFloat32x4BitsJS(o){ -return %Int32x4FromFloat32x4Bits(o); +function Int32x4FromFloat32x4BitsJS(q){ +return %Int32x4FromFloat32x4Bits(q); } -function Int32x4FromUint32x4BitsJS(o){ -return %Int32x4FromUint32x4Bits(o); +function Int32x4FromUint32x4BitsJS(q){ +return %Int32x4FromUint32x4Bits(q); } -function Int32x4FromInt16x8BitsJS(o){ -return %Int32x4FromInt16x8Bits(o); +function Int32x4FromInt16x8BitsJS(q){ +return %Int32x4FromInt16x8Bits(q); } -function Int32x4FromUint16x8BitsJS(o){ -return %Int32x4FromUint16x8Bits(o); +function Int32x4FromUint16x8BitsJS(q){ +return %Int32x4FromUint16x8Bits(q); } -function Int32x4FromInt8x16BitsJS(o){ -return %Int32x4FromInt8x16Bits(o); +function Int32x4FromInt8x16BitsJS(q){ +return %Int32x4FromInt8x16Bits(q); } -function Int32x4FromUint8x16BitsJS(o){ -return %Int32x4FromUint8x16Bits(o); +function Int32x4FromUint8x16BitsJS(q){ +return %Int32x4FromUint8x16Bits(q); } -function Uint32x4FromFloat32x4BitsJS(o){ -return %Uint32x4FromFloat32x4Bits(o); +function Uint32x4FromFloat32x4BitsJS(q){ +return %Uint32x4FromFloat32x4Bits(q); } -function Uint32x4FromInt32x4BitsJS(o){ -return %Uint32x4FromInt32x4Bits(o); +function Uint32x4FromInt32x4BitsJS(q){ +return %Uint32x4FromInt32x4Bits(q); } -function Uint32x4FromInt16x8BitsJS(o){ -return %Uint32x4FromInt16x8Bits(o); +function Uint32x4FromInt16x8BitsJS(q){ +return %Uint32x4FromInt16x8Bits(q); } -function Uint32x4FromUint16x8BitsJS(o){ -return %Uint32x4FromUint16x8Bits(o); +function Uint32x4FromUint16x8BitsJS(q){ +return %Uint32x4FromUint16x8Bits(q); } -function Uint32x4FromInt8x16BitsJS(o){ -return %Uint32x4FromInt8x16Bits(o); +function Uint32x4FromInt8x16BitsJS(q){ +return %Uint32x4FromInt8x16Bits(q); } -function Uint32x4FromUint8x16BitsJS(o){ -return %Uint32x4FromUint8x16Bits(o); +function Uint32x4FromUint8x16BitsJS(q){ +return %Uint32x4FromUint8x16Bits(q); } -function Int16x8FromFloat32x4BitsJS(o){ -return %Int16x8FromFloat32x4Bits(o); +function Int16x8FromFloat32x4BitsJS(q){ +return %Int16x8FromFloat32x4Bits(q); } -function Int16x8FromInt32x4BitsJS(o){ -return %Int16x8FromInt32x4Bits(o); +function Int16x8FromInt32x4BitsJS(q){ +return %Int16x8FromInt32x4Bits(q); } -function Int16x8FromUint32x4BitsJS(o){ -return %Int16x8FromUint32x4Bits(o); +function Int16x8FromUint32x4BitsJS(q){ +return %Int16x8FromUint32x4Bits(q); } -function Int16x8FromUint16x8BitsJS(o){ -return %Int16x8FromUint16x8Bits(o); +function Int16x8FromUint16x8BitsJS(q){ +return %Int16x8FromUint16x8Bits(q); } -function Int16x8FromInt8x16BitsJS(o){ -return %Int16x8FromInt8x16Bits(o); +function Int16x8FromInt8x16BitsJS(q){ +return %Int16x8FromInt8x16Bits(q); } -function Int16x8FromUint8x16BitsJS(o){ -return %Int16x8FromUint8x16Bits(o); +function Int16x8FromUint8x16BitsJS(q){ +return %Int16x8FromUint8x16Bits(q); } -function Uint16x8FromFloat32x4BitsJS(o){ -return %Uint16x8FromFloat32x4Bits(o); +function Uint16x8FromFloat32x4BitsJS(q){ +return %Uint16x8FromFloat32x4Bits(q); } -function Uint16x8FromInt32x4BitsJS(o){ -return %Uint16x8FromInt32x4Bits(o); +function Uint16x8FromInt32x4BitsJS(q){ +return %Uint16x8FromInt32x4Bits(q); } -function Uint16x8FromUint32x4BitsJS(o){ -return %Uint16x8FromUint32x4Bits(o); +function Uint16x8FromUint32x4BitsJS(q){ +return %Uint16x8FromUint32x4Bits(q); } -function Uint16x8FromInt16x8BitsJS(o){ -return %Uint16x8FromInt16x8Bits(o); +function Uint16x8FromInt16x8BitsJS(q){ +return %Uint16x8FromInt16x8Bits(q); } -function Uint16x8FromInt8x16BitsJS(o){ -return %Uint16x8FromInt8x16Bits(o); +function Uint16x8FromInt8x16BitsJS(q){ +return %Uint16x8FromInt8x16Bits(q); } -function Uint16x8FromUint8x16BitsJS(o){ -return %Uint16x8FromUint8x16Bits(o); +function Uint16x8FromUint8x16BitsJS(q){ +return %Uint16x8FromUint8x16Bits(q); } -function Int8x16FromFloat32x4BitsJS(o){ -return %Int8x16FromFloat32x4Bits(o); +function Int8x16FromFloat32x4BitsJS(q){ +return %Int8x16FromFloat32x4Bits(q); } -function Int8x16FromInt32x4BitsJS(o){ -return %Int8x16FromInt32x4Bits(o); +function Int8x16FromInt32x4BitsJS(q){ +return %Int8x16FromInt32x4Bits(q); } -function Int8x16FromUint32x4BitsJS(o){ -return %Int8x16FromUint32x4Bits(o); +function Int8x16FromUint32x4BitsJS(q){ +return %Int8x16FromUint32x4Bits(q); } -function Int8x16FromInt16x8BitsJS(o){ -return %Int8x16FromInt16x8Bits(o); +function Int8x16FromInt16x8BitsJS(q){ +return %Int8x16FromInt16x8Bits(q); } -function Int8x16FromUint16x8BitsJS(o){ -return %Int8x16FromUint16x8Bits(o); +function Int8x16FromUint16x8BitsJS(q){ +return %Int8x16FromUint16x8Bits(q); } -function Int8x16FromUint8x16BitsJS(o){ -return %Int8x16FromUint8x16Bits(o); +function Int8x16FromUint8x16BitsJS(q){ +return %Int8x16FromUint8x16Bits(q); } -function Uint8x16FromFloat32x4BitsJS(o){ -return %Uint8x16FromFloat32x4Bits(o); +function Uint8x16FromFloat32x4BitsJS(q){ +return %Uint8x16FromFloat32x4Bits(q); } -function Uint8x16FromInt32x4BitsJS(o){ -return %Uint8x16FromInt32x4Bits(o); +function Uint8x16FromInt32x4BitsJS(q){ +return %Uint8x16FromInt32x4Bits(q); } -function Uint8x16FromUint32x4BitsJS(o){ -return %Uint8x16FromUint32x4Bits(o); +function Uint8x16FromUint32x4BitsJS(q){ +return %Uint8x16FromUint32x4Bits(q); } -function Uint8x16FromInt16x8BitsJS(o){ -return %Uint8x16FromInt16x8Bits(o); +function Uint8x16FromInt16x8BitsJS(q){ +return %Uint8x16FromInt16x8Bits(q); } -function Uint8x16FromUint16x8BitsJS(o){ -return %Uint8x16FromUint16x8Bits(o); +function Uint8x16FromUint16x8BitsJS(q){ +return %Uint8x16FromUint16x8Bits(q); } -function Uint8x16FromInt8x16BitsJS(o){ -return %Uint8x16FromInt8x16Bits(o); +function Uint8x16FromInt8x16BitsJS(q){ +return %Uint8x16FromInt8x16Bits(q); } -function Float32x4Load1JS(y,z){ -return %Float32x4Load1(y,z); +function Float32x4Load1JS(A,B){ +return %Float32x4Load1(A,B); } -function Float32x4Store1JS(y,z,o){ -return %Float32x4Store1(y,z,o); +function Float32x4Store1JS(A,B,q){ +return %Float32x4Store1(A,B,q); } -function Float32x4Load2JS(y,z){ -return %Float32x4Load2(y,z); +function Float32x4Load2JS(A,B){ +return %Float32x4Load2(A,B); } -function Float32x4Store2JS(y,z,o){ -return %Float32x4Store2(y,z,o); +function Float32x4Store2JS(A,B,q){ +return %Float32x4Store2(A,B,q); } -function Float32x4Load3JS(y,z){ -return %Float32x4Load3(y,z); +function Float32x4Load3JS(A,B){ +return %Float32x4Load3(A,B); } -function Float32x4Store3JS(y,z,o){ -return %Float32x4Store3(y,z,o); +function Float32x4Store3JS(A,B,q){ +return %Float32x4Store3(A,B,q); } -function Int32x4Load1JS(y,z){ -return %Int32x4Load1(y,z); +function Int32x4Load1JS(A,B){ +return %Int32x4Load1(A,B); } -function Int32x4Store1JS(y,z,o){ -return %Int32x4Store1(y,z,o); +function Int32x4Store1JS(A,B,q){ +return %Int32x4Store1(A,B,q); } -function Int32x4Load2JS(y,z){ -return %Int32x4Load2(y,z); +function Int32x4Load2JS(A,B){ +return %Int32x4Load2(A,B); } -function Int32x4Store2JS(y,z,o){ -return %Int32x4Store2(y,z,o); +function Int32x4Store2JS(A,B,q){ +return %Int32x4Store2(A,B,q); } -function Int32x4Load3JS(y,z){ -return %Int32x4Load3(y,z); +function Int32x4Load3JS(A,B){ +return %Int32x4Load3(A,B); } -function Int32x4Store3JS(y,z,o){ -return %Int32x4Store3(y,z,o); +function Int32x4Store3JS(A,B,q){ +return %Int32x4Store3(A,B,q); } -function Uint32x4Load1JS(y,z){ -return %Uint32x4Load1(y,z); +function Uint32x4Load1JS(A,B){ +return %Uint32x4Load1(A,B); } -function Uint32x4Store1JS(y,z,o){ -return %Uint32x4Store1(y,z,o); +function Uint32x4Store1JS(A,B,q){ +return %Uint32x4Store1(A,B,q); } -function Uint32x4Load2JS(y,z){ -return %Uint32x4Load2(y,z); +function Uint32x4Load2JS(A,B){ +return %Uint32x4Load2(A,B); } -function Uint32x4Store2JS(y,z,o){ -return %Uint32x4Store2(y,z,o); +function Uint32x4Store2JS(A,B,q){ +return %Uint32x4Store2(A,B,q); } -function Uint32x4Load3JS(y,z){ -return %Uint32x4Load3(y,z); +function Uint32x4Load3JS(A,B){ +return %Uint32x4Load3(A,B); } -function Uint32x4Store3JS(y,z,o){ -return %Uint32x4Store3(y,z,o); +function Uint32x4Store3JS(A,B,q){ +return %Uint32x4Store3(A,B,q); } -function Float32x4Splat(w){ -return %CreateFloat32x4(w,w,w,w); +function Float32x4Splat(y){ +return %CreateFloat32x4(y,y,y,y); } -function Float32x4SwizzleJS(o,A,B,C,D){ -return %Float32x4Swizzle(o,A,B,C,D); +function Float32x4SwizzleJS(q,C,D,E,F){ +return %Float32x4Swizzle(q,C,D,E,F); } -function Float32x4ShuffleJS(o,v,A,B,C,D){ -return %Float32x4Shuffle(o,v,A,B,C,D); +function Float32x4ShuffleJS(q,x,C,D,E,F){ +return %Float32x4Shuffle(q,x,C,D,E,F); } -function Int32x4Splat(w){ -return %CreateInt32x4(w,w,w,w); +function Int32x4Splat(y){ +return %CreateInt32x4(y,y,y,y); } -function Int32x4SwizzleJS(o,A,B,C,D){ -return %Int32x4Swizzle(o,A,B,C,D); +function Int32x4SwizzleJS(q,C,D,E,F){ +return %Int32x4Swizzle(q,C,D,E,F); } -function Int32x4ShuffleJS(o,v,A,B,C,D){ -return %Int32x4Shuffle(o,v,A,B,C,D); +function Int32x4ShuffleJS(q,x,C,D,E,F){ +return %Int32x4Shuffle(q,x,C,D,E,F); } -function Uint32x4Splat(w){ -return %CreateUint32x4(w,w,w,w); +function Uint32x4Splat(y){ +return %CreateUint32x4(y,y,y,y); } -function Uint32x4SwizzleJS(o,A,B,C,D){ -return %Uint32x4Swizzle(o,A,B,C,D); +function Uint32x4SwizzleJS(q,C,D,E,F){ +return %Uint32x4Swizzle(q,C,D,E,F); } -function Uint32x4ShuffleJS(o,v,A,B,C,D){ -return %Uint32x4Shuffle(o,v,A,B,C,D); +function Uint32x4ShuffleJS(q,x,C,D,E,F){ +return %Uint32x4Shuffle(q,x,C,D,E,F); } -function Bool32x4Splat(w){ -return %CreateBool32x4(w,w,w,w); +function Bool32x4Splat(y){ +return %CreateBool32x4(y,y,y,y); } -function Bool32x4SwizzleJS(o,A,B,C,D){ -return %Bool32x4Swizzle(o,A,B,C,D); +function Bool32x4SwizzleJS(q,C,D,E,F){ +return %Bool32x4Swizzle(q,C,D,E,F); } -function Bool32x4ShuffleJS(o,v,A,B,C,D){ -return %Bool32x4Shuffle(o,v,A,B,C,D); +function Bool32x4ShuffleJS(q,x,C,D,E,F){ +return %Bool32x4Shuffle(q,x,C,D,E,F); } -function Int16x8Splat(w){ -return %CreateInt16x8(w,w,w,w,w,w,w,w); +function Int16x8Splat(y){ +return %CreateInt16x8(y,y,y,y,y,y,y,y); } -function Int16x8SwizzleJS(o,A,B,C,D,E,F,G,H){ -return %Int16x8Swizzle(o,A,B,C,D,E,F,G,H); +function Int16x8SwizzleJS(q,C,D,E,F,G,H,I,J){ +return %Int16x8Swizzle(q,C,D,E,F,G,H,I,J); } -function Int16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){ -return %Int16x8Shuffle(o,v,A,B,C,D,E,F,G,H); +function Int16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){ +return %Int16x8Shuffle(q,x,C,D,E,F,G,H,I,J); } -function Uint16x8Splat(w){ -return %CreateUint16x8(w,w,w,w,w,w,w,w); +function Uint16x8Splat(y){ +return %CreateUint16x8(y,y,y,y,y,y,y,y); } -function Uint16x8SwizzleJS(o,A,B,C,D,E,F,G,H){ -return %Uint16x8Swizzle(o,A,B,C,D,E,F,G,H); +function Uint16x8SwizzleJS(q,C,D,E,F,G,H,I,J){ +return %Uint16x8Swizzle(q,C,D,E,F,G,H,I,J); } -function Uint16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){ -return %Uint16x8Shuffle(o,v,A,B,C,D,E,F,G,H); +function Uint16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){ +return %Uint16x8Shuffle(q,x,C,D,E,F,G,H,I,J); } -function Bool16x8Splat(w){ -return %CreateBool16x8(w,w,w,w,w,w,w,w); +function Bool16x8Splat(y){ +return %CreateBool16x8(y,y,y,y,y,y,y,y); } -function Bool16x8SwizzleJS(o,A,B,C,D,E,F,G,H){ -return %Bool16x8Swizzle(o,A,B,C,D,E,F,G,H); +function Bool16x8SwizzleJS(q,C,D,E,F,G,H,I,J){ +return %Bool16x8Swizzle(q,C,D,E,F,G,H,I,J); } -function Bool16x8ShuffleJS(o,v,A,B,C,D,E,F,G,H){ -return %Bool16x8Shuffle(o,v,A,B,C,D,E,F,G,H); +function Bool16x8ShuffleJS(q,x,C,D,E,F,G,H,I,J){ +return %Bool16x8Shuffle(q,x,C,D,E,F,G,H,I,J); } -function Int8x16Splat(w){ -return %CreateInt8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w); +function Int8x16Splat(y){ +return %CreateInt8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y); } -function Int8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Int8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ -return %Int8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +return %Int8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15); } -function Int8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +function Int8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15){ -return %Int8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +return %Int8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15); } -function Uint8x16Splat(w){ -return %CreateUint8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w); +function Uint8x16Splat(y){ +return %CreateUint8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y); } -function Uint8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Uint8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ -return %Uint8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +return %Uint8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15); } -function Uint8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +function Uint8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15){ -return %Uint8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +return %Uint8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15); } -function Bool8x16Splat(w){ -return %CreateBool8x16(w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w); +function Bool8x16Splat(y){ +return %CreateBool8x16(y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y); } -function Bool8x16SwizzleJS(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Bool8x16SwizzleJS(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ -return %Bool8x16Swizzle(o,A,B,C,D,E,F,G,H,c8,c9,c10,c11, +return %Bool8x16Swizzle(q,C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15); } -function Bool8x16ShuffleJS(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +function Bool8x16ShuffleJS(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15){ -return %Bool8x16Shuffle(o,v,A,B,C,D,E,F,G,H,c8,c9,c10, +return %Bool8x16Shuffle(q,x,C,D,E,F,G,H,I,J,c8,c9,c10, c11,c12,c13,c14,c15); } -function Float32x4Constructor(A,B,C,D){ +function Float32x4Constructor(C,D,E,F){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Float32x4"); +throw d(65,"Float32x4"); } -return %CreateFloat32x4((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D))); +return %CreateFloat32x4((%_ToNumber(C)),(%_ToNumber(D)), +(%_ToNumber(E)),(%_ToNumber(F))); } -function Int32x4Constructor(A,B,C,D){ +function Int32x4Constructor(C,D,E,F){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Int32x4"); +throw d(65,"Int32x4"); } -return %CreateInt32x4((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D))); +return %CreateInt32x4((%_ToNumber(C)),(%_ToNumber(D)), +(%_ToNumber(E)),(%_ToNumber(F))); } -function Uint32x4Constructor(A,B,C,D){ +function Uint32x4Constructor(C,D,E,F){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Uint32x4"); +throw d(65,"Uint32x4"); } -return %CreateUint32x4((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D))); +return %CreateUint32x4((%_ToNumber(C)),(%_ToNumber(D)), +(%_ToNumber(E)),(%_ToNumber(F))); } -function Bool32x4Constructor(A,B,C,D){ +function Bool32x4Constructor(C,D,E,F){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Bool32x4"); +throw d(65,"Bool32x4"); } -return %CreateBool32x4(A,B,C,D); +return %CreateBool32x4(C,D,E,F); } -function Int16x8Constructor(A,B,C,D,E,F,G,H){ +function Int16x8Constructor(C,D,E,F,G,H,I,J){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Int16x8"); +throw d(65,"Int16x8"); } -return %CreateInt16x8((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D)), +return %CreateInt16x8((%_ToNumber(C)),(%_ToNumber(D)), (%_ToNumber(E)),(%_ToNumber(F)), -(%_ToNumber(G)),(%_ToNumber(H))); +(%_ToNumber(G)),(%_ToNumber(H)), +(%_ToNumber(I)),(%_ToNumber(J))); } -function Uint16x8Constructor(A,B,C,D,E,F,G,H){ +function Uint16x8Constructor(C,D,E,F,G,H,I,J){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Uint16x8"); +throw d(65,"Uint16x8"); } -return %CreateUint16x8((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D)), +return %CreateUint16x8((%_ToNumber(C)),(%_ToNumber(D)), (%_ToNumber(E)),(%_ToNumber(F)), -(%_ToNumber(G)),(%_ToNumber(H))); +(%_ToNumber(G)),(%_ToNumber(H)), +(%_ToNumber(I)),(%_ToNumber(J))); } -function Bool16x8Constructor(A,B,C,D,E,F,G,H){ +function Bool16x8Constructor(C,D,E,F,G,H,I,J){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Bool16x8"); +throw d(65,"Bool16x8"); } -return %CreateBool16x8(A,B,C,D,E,F,G,H); +return %CreateBool16x8(C,D,E,F,G,H,I,J); } -function Int8x16Constructor(A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Int8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Int8x16"); +throw d(65,"Int8x16"); } -return %CreateInt8x16((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D)), +return %CreateInt8x16((%_ToNumber(C)),(%_ToNumber(D)), (%_ToNumber(E)),(%_ToNumber(F)), (%_ToNumber(G)),(%_ToNumber(H)), +(%_ToNumber(I)),(%_ToNumber(J)), (%_ToNumber(c8)),(%_ToNumber(c9)), (%_ToNumber(c10)),(%_ToNumber(c11)), (%_ToNumber(c12)),(%_ToNumber(c13)), (%_ToNumber(c14)),(%_ToNumber(c15))); } -function Uint8x16Constructor(A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Uint8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Uint8x16"); +throw d(65,"Uint8x16"); } -return %CreateUint8x16((%_ToNumber(A)),(%_ToNumber(B)), -(%_ToNumber(C)),(%_ToNumber(D)), +return %CreateUint8x16((%_ToNumber(C)),(%_ToNumber(D)), (%_ToNumber(E)),(%_ToNumber(F)), (%_ToNumber(G)),(%_ToNumber(H)), +(%_ToNumber(I)),(%_ToNumber(J)), (%_ToNumber(c8)),(%_ToNumber(c9)), (%_ToNumber(c10)),(%_ToNumber(c11)), (%_ToNumber(c12)),(%_ToNumber(c13)), (%_ToNumber(c14)),(%_ToNumber(c15))); } -function Bool8x16Constructor(A,B,C,D,E,F,G,H,c8,c9,c10,c11, +function Bool8x16Constructor(C,D,E,F,G,H,I,J,c8,c9,c10,c11, c12,c13,c14,c15){ if(!(new.target===(void 0))){ -throw %make_type_error(67,"Bool8x16"); +throw d(65,"Bool8x16"); } -return %CreateBool8x16(A,B,C,D,E,F,G,H,c8,c9,c10,c11,c12, +return %CreateBool8x16(C,D,E,F,G,H,I,J,c8,c9,c10,c11,c12, c13,c14,c15); } -function Float32x4AbsJS(o){ -return %Float32x4Abs(o); +function Float32x4AbsJS(q){ +return %Float32x4Abs(q); } -function Float32x4SqrtJS(o){ -return %Float32x4Sqrt(o); +function Float32x4SqrtJS(q){ +return %Float32x4Sqrt(q); } -function Float32x4RecipApproxJS(o){ -return %Float32x4RecipApprox(o); +function Float32x4RecipApproxJS(q){ +return %Float32x4RecipApprox(q); } -function Float32x4RecipSqrtApproxJS(o){ -return %Float32x4RecipSqrtApprox(o); +function Float32x4RecipSqrtApproxJS(q){ +return %Float32x4RecipSqrtApprox(q); } -function Float32x4DivJS(o,v){ -return %Float32x4Div(o,v); +function Float32x4DivJS(q,x){ +return %Float32x4Div(q,x); } -function Float32x4MinNumJS(o,v){ -return %Float32x4MinNum(o,v); +function Float32x4MinNumJS(q,x){ +return %Float32x4MinNum(q,x); } -function Float32x4MaxNumJS(o,v){ -return %Float32x4MaxNum(o,v); +function Float32x4MaxNumJS(q,x){ +return %Float32x4MaxNum(q,x); } -%AddNamedProperty(c,d,'SIMD',1|2); -%SetCode(e,Float32x4Constructor); -%FunctionSetPrototype(e,{}); -%AddNamedProperty(e.prototype,'constructor',e, +%AddNamedProperty(c,e,'SIMD',1|2); +%SetCode(g,Float32x4Constructor); +%FunctionSetPrototype(g,{}); +%AddNamedProperty(g.prototype,'constructor',g, 2); -%AddNamedProperty(e.prototype,d,'Float32x4', +%AddNamedProperty(g.prototype,e,'Float32x4', 2|1); -b.InstallFunctions(e.prototype,2,[ +b.InstallFunctions(g.prototype,2,[ 'toLocaleString',Float32x4ToLocaleString, 'toString',Float32x4ToString, 'valueOf',Float32x4ValueOf, ]); -%SetCode(f,Int32x4Constructor); -%FunctionSetPrototype(f,{}); -%AddNamedProperty(f.prototype,'constructor',f, +%SetCode(h,Int32x4Constructor); +%FunctionSetPrototype(h,{}); +%AddNamedProperty(h.prototype,'constructor',h, 2); -%AddNamedProperty(f.prototype,d,'Int32x4', +%AddNamedProperty(h.prototype,e,'Int32x4', 2|1); -b.InstallFunctions(f.prototype,2,[ +b.InstallFunctions(h.prototype,2,[ 'toLocaleString',Int32x4ToLocaleString, 'toString',Int32x4ToString, 'valueOf',Int32x4ValueOf, ]); -%SetCode(g,Int16x8Constructor); -%FunctionSetPrototype(g,{}); -%AddNamedProperty(g.prototype,'constructor',g, +%SetCode(i,Int16x8Constructor); +%FunctionSetPrototype(i,{}); +%AddNamedProperty(i.prototype,'constructor',i, 2); -%AddNamedProperty(g.prototype,d,'Int16x8', +%AddNamedProperty(i.prototype,e,'Int16x8', 2|1); -b.InstallFunctions(g.prototype,2,[ +b.InstallFunctions(i.prototype,2,[ 'toLocaleString',Int16x8ToLocaleString, 'toString',Int16x8ToString, 'valueOf',Int16x8ValueOf, ]); -%SetCode(h,Int8x16Constructor); -%FunctionSetPrototype(h,{}); -%AddNamedProperty(h.prototype,'constructor',h, +%SetCode(j,Int8x16Constructor); +%FunctionSetPrototype(j,{}); +%AddNamedProperty(j.prototype,'constructor',j, 2); -%AddNamedProperty(h.prototype,d,'Int8x16', +%AddNamedProperty(j.prototype,e,'Int8x16', 2|1); -b.InstallFunctions(h.prototype,2,[ +b.InstallFunctions(j.prototype,2,[ 'toLocaleString',Int8x16ToLocaleString, 'toString',Int8x16ToString, 'valueOf',Int8x16ValueOf, ]); -%SetCode(i,Uint32x4Constructor); -%FunctionSetPrototype(i,{}); -%AddNamedProperty(i.prototype,'constructor',i, +%SetCode(k,Uint32x4Constructor); +%FunctionSetPrototype(k,{}); +%AddNamedProperty(k.prototype,'constructor',k, 2); -%AddNamedProperty(i.prototype,d,'Uint32x4', +%AddNamedProperty(k.prototype,e,'Uint32x4', 2|1); -b.InstallFunctions(i.prototype,2,[ +b.InstallFunctions(k.prototype,2,[ 'toLocaleString',Uint32x4ToLocaleString, 'toString',Uint32x4ToString, 'valueOf',Uint32x4ValueOf, ]); -%SetCode(j,Uint16x8Constructor); -%FunctionSetPrototype(j,{}); -%AddNamedProperty(j.prototype,'constructor',j, +%SetCode(l,Uint16x8Constructor); +%FunctionSetPrototype(l,{}); +%AddNamedProperty(l.prototype,'constructor',l, 2); -%AddNamedProperty(j.prototype,d,'Uint16x8', +%AddNamedProperty(l.prototype,e,'Uint16x8', 2|1); -b.InstallFunctions(j.prototype,2,[ +b.InstallFunctions(l.prototype,2,[ 'toLocaleString',Uint16x8ToLocaleString, 'toString',Uint16x8ToString, 'valueOf',Uint16x8ValueOf, ]); -%SetCode(k,Uint8x16Constructor); -%FunctionSetPrototype(k,{}); -%AddNamedProperty(k.prototype,'constructor',k, +%SetCode(m,Uint8x16Constructor); +%FunctionSetPrototype(m,{}); +%AddNamedProperty(m.prototype,'constructor',m, 2); -%AddNamedProperty(k.prototype,d,'Uint8x16', +%AddNamedProperty(m.prototype,e,'Uint8x16', 2|1); -b.InstallFunctions(k.prototype,2,[ +b.InstallFunctions(m.prototype,2,[ 'toLocaleString',Uint8x16ToLocaleString, 'toString',Uint8x16ToString, 'valueOf',Uint8x16ValueOf, ]); -%SetCode(l,Bool32x4Constructor); -%FunctionSetPrototype(l,{}); -%AddNamedProperty(l.prototype,'constructor',l, +%SetCode(n,Bool32x4Constructor); +%FunctionSetPrototype(n,{}); +%AddNamedProperty(n.prototype,'constructor',n, 2); -%AddNamedProperty(l.prototype,d,'Bool32x4', +%AddNamedProperty(n.prototype,e,'Bool32x4', 2|1); -b.InstallFunctions(l.prototype,2,[ +b.InstallFunctions(n.prototype,2,[ 'toLocaleString',Bool32x4ToLocaleString, 'toString',Bool32x4ToString, 'valueOf',Bool32x4ValueOf, ]); -%SetCode(m,Bool16x8Constructor); -%FunctionSetPrototype(m,{}); -%AddNamedProperty(m.prototype,'constructor',m, +%SetCode(o,Bool16x8Constructor); +%FunctionSetPrototype(o,{}); +%AddNamedProperty(o.prototype,'constructor',o, 2); -%AddNamedProperty(m.prototype,d,'Bool16x8', +%AddNamedProperty(o.prototype,e,'Bool16x8', 2|1); -b.InstallFunctions(m.prototype,2,[ +b.InstallFunctions(o.prototype,2,[ 'toLocaleString',Bool16x8ToLocaleString, 'toString',Bool16x8ToString, 'valueOf',Bool16x8ValueOf, ]); -%SetCode(n,Bool8x16Constructor); -%FunctionSetPrototype(n,{}); -%AddNamedProperty(n.prototype,'constructor',n, +%SetCode(p,Bool8x16Constructor); +%FunctionSetPrototype(p,{}); +%AddNamedProperty(p.prototype,'constructor',p, 2); -%AddNamedProperty(n.prototype,d,'Bool8x16', +%AddNamedProperty(p.prototype,e,'Bool8x16', 2|1); -b.InstallFunctions(n.prototype,2,[ +b.InstallFunctions(p.prototype,2,[ 'toLocaleString',Bool8x16ToLocaleString, 'toString',Bool8x16ToString, 'valueOf',Bool8x16ValueOf, @@ -13990,7 +15554,7 @@ b.InstallFunctions(n.prototype,2,[ -b.InstallFunctions(e,2,[ +b.InstallFunctions(g,2,[ 'splat',Float32x4Splat, 'check',Float32x4CheckJS, 'extractLane',Float32x4ExtractLaneJS, @@ -14034,7 +15598,7 @@ b.InstallFunctions(e,2,[ 'store2',Float32x4Store2JS, 'store3',Float32x4Store3JS, ]); -b.InstallFunctions(f,2,[ +b.InstallFunctions(h,2,[ 'splat',Int32x4Splat, 'check',Int32x4CheckJS, 'extractLane',Int32x4ExtractLaneJS, @@ -14077,7 +15641,7 @@ b.InstallFunctions(f,2,[ 'store2',Int32x4Store2JS, 'store3',Int32x4Store3JS, ]); -b.InstallFunctions(i,2,[ +b.InstallFunctions(k,2,[ 'splat',Uint32x4Splat, 'check',Uint32x4CheckJS, 'extractLane',Uint32x4ExtractLaneJS, @@ -14119,7 +15683,7 @@ b.InstallFunctions(i,2,[ 'store2',Uint32x4Store2JS, 'store3',Uint32x4Store3JS, ]); -b.InstallFunctions(l,2,[ +b.InstallFunctions(n,2,[ 'splat',Bool32x4Splat, 'check',Bool32x4CheckJS, 'extractLane',Bool32x4ExtractLaneJS, @@ -14133,7 +15697,7 @@ b.InstallFunctions(l,2,[ 'swizzle',Bool32x4SwizzleJS, 'shuffle',Bool32x4ShuffleJS, ]); -b.InstallFunctions(g,2,[ +b.InstallFunctions(i,2,[ 'splat',Int16x8Splat, 'check',Int16x8CheckJS, 'extractLane',Int16x8ExtractLaneJS, @@ -14171,7 +15735,7 @@ b.InstallFunctions(g,2,[ 'load',Int16x8LoadJS, 'store',Int16x8StoreJS, ]); -b.InstallFunctions(j,2,[ +b.InstallFunctions(l,2,[ 'splat',Uint16x8Splat, 'check',Uint16x8CheckJS, 'extractLane',Uint16x8ExtractLaneJS, @@ -14208,7 +15772,7 @@ b.InstallFunctions(j,2,[ 'load',Uint16x8LoadJS, 'store',Uint16x8StoreJS, ]); -b.InstallFunctions(m,2,[ +b.InstallFunctions(o,2,[ 'splat',Bool16x8Splat, 'check',Bool16x8CheckJS, 'extractLane',Bool16x8ExtractLaneJS, @@ -14222,7 +15786,7 @@ b.InstallFunctions(m,2,[ 'swizzle',Bool16x8SwizzleJS, 'shuffle',Bool16x8ShuffleJS, ]); -b.InstallFunctions(h,2,[ +b.InstallFunctions(j,2,[ 'splat',Int8x16Splat, 'check',Int8x16CheckJS, 'extractLane',Int8x16ExtractLaneJS, @@ -14260,7 +15824,7 @@ b.InstallFunctions(h,2,[ 'load',Int8x16LoadJS, 'store',Int8x16StoreJS, ]); -b.InstallFunctions(k,2,[ +b.InstallFunctions(m,2,[ 'splat',Uint8x16Splat, 'check',Uint8x16CheckJS, 'extractLane',Uint8x16ExtractLaneJS, @@ -14297,7 +15861,7 @@ b.InstallFunctions(k,2,[ 'load',Uint8x16LoadJS, 'store',Uint8x16StoreJS, ]); -b.InstallFunctions(n,2,[ +b.InstallFunctions(p,2,[ 'splat',Bool8x16Splat, 'check',Bool8x16CheckJS, 'extractLane',Bool8x16ExtractLaneJS, @@ -14311,49 +15875,65 @@ b.InstallFunctions(n,2,[ 'swizzle',Bool8x16SwizzleJS, 'shuffle',Bool8x16ShuffleJS, ]); +b.Export(function(K){ +K.Float32x4ToString=Float32x4ToString; +K.Int32x4ToString=Int32x4ToString; +K.Uint32x4ToString=Uint32x4ToString; +K.Bool32x4ToString=Bool32x4ToString; +K.Int16x8ToString=Int16x8ToString; +K.Uint16x8ToString=Uint16x8ToString; +K.Bool16x8ToString=Bool16x8ToString; +K.Int8x16ToString=Int8x16ToString; +K.Uint8x16ToString=Uint8x16ToString; +K.Bool8x16ToString=Bool8x16ToString; +}); }) -Xharmony-string-paddingY +Xharmony-string-padding� (function(a,b){ %CheckIsBootstrapping(); var c=a.String; -function StringPad(d,e,f){ -e=(%_ToLength(e)); -var g=d.length; -if(e<=g)return""; -if((f===(void 0))){ -f=" "; -}else{ -f=(%_ToString(f)); -if(f===""){ +var d; +b.Import(function(e){ +d=e.MakeTypeError; +}); +function StringPad(f,g,h){ +g=(%_ToLength(g)); +var i=f.length; +if(g<=i)return""; +if((h===(void 0))){ +h=" "; +}else{ +h=(%_ToString(h)); +if(h===""){ return""; } } -var h=e-g; -var i=(h/f.length)|0; -var j=(h-f.length*i)|0; -var k=""; +var j=g-i; +var k=(j/h.length)|0; +var l=(j-h.length*k)|0; +var m=""; while(true){ -if(i&1)k+=f; -i>>=1; -if(i===0)break; -f+=f; +if(k&1)m+=h; +k>>=1; +if(k===0)break; +h+=h; } -if(j){ -k+=%_SubString(f,0,j); +if(l){ +m+=%_SubString(h,0,l); } -return k; +return m; } -function StringPadStart(e,f){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.padStart") -var d=(%_ToString(this)); -return StringPad(d,e,f)+d; +function StringPadStart(g,h){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw d(17,"String.prototype.padStart") +var f=(%_ToString(this)); +return StringPad(f,g,h)+f; } %FunctionSetLength(StringPadStart,1); -function StringPadEnd(e,f){ -if((%IS_VAR(this)===null)||(this===(void 0)))throw %make_type_error(17,"String.prototype.padEnd") -var d=(%_ToString(this)); -return d+StringPad(d,e,f); +function StringPadEnd(g,h){ +if((%IS_VAR(this)===null)||(this===(void 0)))throw d(17,"String.prototype.padEnd") +var f=(%_ToString(this)); +return f+StringPad(f,g,h); } %FunctionSetLength(StringPadEnd,1); b.InstallFunctions(c.prototype,2,[ @@ -14362,14 +15942,20 @@ b.InstallFunctions(c.prototype,2,[ ]); }); -`datetime-format-to-parts� +4promise-extrau (function(a,b){ "use strict"; %CheckIsBootstrapping(); -var c=a.Intl; -var d=b.ImportNow("FormatDateToParts"); -b.InstallFunctions(c.DateTimeFormat.prototype,2,[ -'formatToParts',d +var c=a.Promise; +var d=b.ImportNow("PromiseChain"); +var e=b.ImportNow("PromiseDefer"); +var f=b.ImportNow("PromiseAccept"); +b.InstallFunctions(c.prototype,2,[ +"chain",d, +]); +b.InstallFunctions(c,2,[ +"defer",e, +"accept",f, ]); }) @@ -14391,6 +15977,20 @@ d(c.prototype,'toLocaleUpperCase', h,true); }) +(intl-extram +(function(a,b){ +"use strict"; +%CheckIsBootstrapping(); +var c=a.Intl; +var d=b.ImportNow("AddBoundMethod"); +var e=b.ImportNow("IntlParseDate"); +var f=b.ImportNow("IntlParseNumber"); +d(c.DateTimeFormat,'v8Parse',e,1, +'dateformat'); +d(c.NumberFormat,'v8Parse',f,1, +'numberformat'); +}) + dByteLengthQueuingStrategy� (function(global, binding, v8) { 'use strict'; diff --git a/node_modules/.bin/asar b/node_modules/.bin/asar deleted file mode 100644 index 45ff677d..00000000 --- a/node_modules/.bin/asar +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../asar/bin/asar" "$@" - ret=$? -else - node "$basedir/../asar/bin/asar" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/asar b/node_modules/.bin/asar new file mode 120000 index 00000000..22758259 --- /dev/null +++ b/node_modules/.bin/asar @@ -0,0 +1 @@ +../asar/bin/asar \ No newline at end of file diff --git a/node_modules/.bin/babylon b/node_modules/.bin/babylon deleted file mode 100644 index 4177aa98..00000000 --- a/node_modules/.bin/babylon +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" - ret=$? -else - node "$basedir/../babylon/bin/babylon.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/babylon b/node_modules/.bin/babylon new file mode 120000 index 00000000..c2adc01b --- /dev/null +++ b/node_modules/.bin/babylon @@ -0,0 +1 @@ +../babylon/bin/babylon.js \ No newline at end of file diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist deleted file mode 100644 index 1df3f2a4..00000000 --- a/node_modules/.bin/browserslist +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../browserslist/cli.js" "$@" - ret=$? -else - node "$basedir/../browserslist/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 120000 index 00000000..3cd991b2 --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1 @@ +../browserslist/cli.js \ No newline at end of file diff --git a/node_modules/.bin/css-beautify b/node_modules/.bin/css-beautify deleted file mode 100644 index 60bda5e5..00000000 --- a/node_modules/.bin/css-beautify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../js-beautify/js/bin/css-beautify.js" "$@" - ret=$? -else - node "$basedir/../js-beautify/js/bin/css-beautify.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/css-beautify b/node_modules/.bin/css-beautify new file mode 120000 index 00000000..d9b8ee28 --- /dev/null +++ b/node_modules/.bin/css-beautify @@ -0,0 +1 @@ +../js-beautify/js/bin/css-beautify.js \ No newline at end of file diff --git a/node_modules/.bin/decompress-zip b/node_modules/.bin/decompress-zip deleted file mode 100644 index 45a90945..00000000 --- a/node_modules/.bin/decompress-zip +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../decompress-zip/bin/decompress-zip" "$@" - ret=$? -else - node "$basedir/../decompress-zip/bin/decompress-zip" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/decompress-zip b/node_modules/.bin/decompress-zip new file mode 120000 index 00000000..83255291 --- /dev/null +++ b/node_modules/.bin/decompress-zip @@ -0,0 +1 @@ +../decompress-zip/bin/decompress-zip \ No newline at end of file diff --git a/node_modules/.bin/har-validator b/node_modules/.bin/har-validator deleted file mode 100644 index e5f23009..00000000 --- a/node_modules/.bin/har-validator +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../har-validator/bin/har-validator" "$@" - ret=$? -else - node "$basedir/../har-validator/bin/har-validator" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/har-validator b/node_modules/.bin/har-validator new file mode 120000 index 00000000..c6ec1634 --- /dev/null +++ b/node_modules/.bin/har-validator @@ -0,0 +1 @@ +../har-validator/bin/har-validator \ No newline at end of file diff --git a/node_modules/.bin/html-beautify b/node_modules/.bin/html-beautify deleted file mode 100644 index f8f00300..00000000 --- a/node_modules/.bin/html-beautify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../js-beautify/js/bin/html-beautify.js" "$@" - ret=$? -else - node "$basedir/../js-beautify/js/bin/html-beautify.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/html-beautify b/node_modules/.bin/html-beautify new file mode 120000 index 00000000..c17c69c3 --- /dev/null +++ b/node_modules/.bin/html-beautify @@ -0,0 +1 @@ +../js-beautify/js/bin/html-beautify.js \ No newline at end of file diff --git a/node_modules/.bin/js-beautify b/node_modules/.bin/js-beautify deleted file mode 100644 index fac20a51..00000000 --- a/node_modules/.bin/js-beautify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../js-beautify/js/bin/js-beautify.js" "$@" - ret=$? -else - node "$basedir/../js-beautify/js/bin/js-beautify.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/js-beautify b/node_modules/.bin/js-beautify new file mode 120000 index 00000000..548ddf4b --- /dev/null +++ b/node_modules/.bin/js-beautify @@ -0,0 +1 @@ +../js-beautify/js/bin/js-beautify.js \ No newline at end of file diff --git a/node_modules/.bin/jsesc b/node_modules/.bin/jsesc deleted file mode 100644 index e59ea439..00000000 --- a/node_modules/.bin/jsesc +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" - ret=$? -else - node "$basedir/../jsesc/bin/jsesc" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/jsesc b/node_modules/.bin/jsesc new file mode 120000 index 00000000..7237604c --- /dev/null +++ b/node_modules/.bin/jsesc @@ -0,0 +1 @@ +../jsesc/bin/jsesc \ No newline at end of file diff --git a/node_modules/.bin/json5 b/node_modules/.bin/json5 deleted file mode 100644 index 71e29db4..00000000 --- a/node_modules/.bin/json5 +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" - ret=$? -else - node "$basedir/../json5/lib/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/json5 b/node_modules/.bin/json5 new file mode 120000 index 00000000..217f3798 --- /dev/null +++ b/node_modules/.bin/json5 @@ -0,0 +1 @@ +../json5/lib/cli.js \ No newline at end of file diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify deleted file mode 100644 index 0939216f..00000000 --- a/node_modules/.bin/loose-envify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" - ret=$? -else - node "$basedir/../loose-envify/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify new file mode 120000 index 00000000..ed9009c5 --- /dev/null +++ b/node_modules/.bin/loose-envify @@ -0,0 +1 @@ +../loose-envify/cli.js \ No newline at end of file diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp deleted file mode 100644 index 4b004672..00000000 --- a/node_modules/.bin/mkdirp +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" - ret=$? -else - node "$basedir/../mkdirp/bin/cmd.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp new file mode 120000 index 00000000..017896ce --- /dev/null +++ b/node_modules/.bin/mkdirp @@ -0,0 +1 @@ +../mkdirp/bin/cmd.js \ No newline at end of file diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt deleted file mode 100644 index 714334ea..00000000 --- a/node_modules/.bin/nopt +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" - ret=$? -else - node "$basedir/../nopt/bin/nopt.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt new file mode 120000 index 00000000..6b6566ea --- /dev/null +++ b/node_modules/.bin/nopt @@ -0,0 +1 @@ +../nopt/bin/nopt.js \ No newline at end of file diff --git a/node_modules/.bin/perfectionist b/node_modules/.bin/perfectionist deleted file mode 100644 index 4ac3d43a..00000000 --- a/node_modules/.bin/perfectionist +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../perfectionist/bin/cmd.js" "$@" - ret=$? -else - node "$basedir/../perfectionist/bin/cmd.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/perfectionist b/node_modules/.bin/perfectionist new file mode 120000 index 00000000..4db684ad --- /dev/null +++ b/node_modules/.bin/perfectionist @@ -0,0 +1 @@ +../perfectionist/bin/cmd.js \ No newline at end of file diff --git a/node_modules/.bin/regjsparser b/node_modules/.bin/regjsparser deleted file mode 100644 index a0add0f8..00000000 --- a/node_modules/.bin/regjsparser +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../regjsparser/bin/parser" "$@" - ret=$? -else - node "$basedir/../regjsparser/bin/parser" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/regjsparser b/node_modules/.bin/regjsparser new file mode 120000 index 00000000..91cec777 --- /dev/null +++ b/node_modules/.bin/regjsparser @@ -0,0 +1 @@ +../regjsparser/bin/parser \ No newline at end of file diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf deleted file mode 100644 index 3cebd6e8..00000000 --- a/node_modules/.bin/rimraf +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../rimraf/bin.js" "$@" - ret=$? -else - node "$basedir/../rimraf/bin.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf new file mode 120000 index 00000000..4cd49a49 --- /dev/null +++ b/node_modules/.bin/rimraf @@ -0,0 +1 @@ +../rimraf/bin.js \ No newline at end of file diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv deleted file mode 100644 index c9c2987e..00000000 --- a/node_modules/.bin/sshpk-conv +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" - ret=$? -else - node "$basedir/../sshpk/bin/sshpk-conv" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv new file mode 120000 index 00000000..a2a295c8 --- /dev/null +++ b/node_modules/.bin/sshpk-conv @@ -0,0 +1 @@ +../sshpk/bin/sshpk-conv \ No newline at end of file diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign deleted file mode 100644 index 1a921248..00000000 --- a/node_modules/.bin/sshpk-sign +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" - ret=$? -else - node "$basedir/../sshpk/bin/sshpk-sign" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign new file mode 120000 index 00000000..766b9b3a --- /dev/null +++ b/node_modules/.bin/sshpk-sign @@ -0,0 +1 @@ +../sshpk/bin/sshpk-sign \ No newline at end of file diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify deleted file mode 100644 index 597a66b8..00000000 --- a/node_modules/.bin/sshpk-verify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" - ret=$? -else - node "$basedir/../sshpk/bin/sshpk-verify" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify new file mode 120000 index 00000000..bfd7e3ad --- /dev/null +++ b/node_modules/.bin/sshpk-verify @@ -0,0 +1 @@ +../sshpk/bin/sshpk-verify \ No newline at end of file diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs new file mode 120000 index 00000000..fef3468b --- /dev/null +++ b/node_modules/.bin/uglifyjs @@ -0,0 +1 @@ +../uglify-js/bin/uglifyjs \ No newline at end of file diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid deleted file mode 100644 index 4f0e8e62..00000000 --- a/node_modules/.bin/uuid +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../node-uuid/bin/uuid" "$@" - ret=$? -else - node "$basedir/../node-uuid/bin/uuid" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid new file mode 120000 index 00000000..b3e45bc5 --- /dev/null +++ b/node_modules/.bin/uuid @@ -0,0 +1 @@ +../uuid/bin/uuid \ No newline at end of file diff --git a/node_modules/abbrev/abbrev.js b/node_modules/abbrev/abbrev.js index 69cfeac5..7b1dc5d6 100644 --- a/node_modules/abbrev/abbrev.js +++ b/node_modules/abbrev/abbrev.js @@ -1,4 +1,3 @@ - module.exports = exports = abbrev.abbrev = abbrev abbrev.monkeyPatch = monkeyPatch diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json index 16eb536f..6da4862f 100644 --- a/node_modules/abbrev/package.json +++ b/node_modules/abbrev/package.json @@ -2,25 +2,25 @@ "_args": [ [ "abbrev@1", - "D:\\wechat-devtools\\src\\node_modules\\nopt" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/nopt" ] ], - "_cnpm_publish_time": 1466016061215, + "_cnpm_publish_time": 1487054000235, "_from": "abbrev@>=1.0.0 <2.0.0", - "_id": "abbrev@1.0.9", + "_id": "abbrev@1.1.0", "_inCache": true, "_installable": true, "_location": "/abbrev", - "_nodeVersion": "4.4.4", + "_nodeVersion": "8.0.0-pre", "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/abbrev-1.0.9.tgz_1466016055839_0.7825860097073019" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/abbrev-1.1.0.tgz_1487054000015_0.9229173036292195" }, "_npmUser": { "email": "i@izs.me", "name": "isaacs" }, - "_npmVersion": "3.9.1", + "_npmVersion": "4.3.0", "_phantomChildren": {}, "_requested": { "name": "abbrev", @@ -34,11 +34,11 @@ "/nopt", "/touch/nopt" ], - "_resolved": "http://r.tnpm.oa.com/abbrev/download/abbrev-1.0.9.tgz", - "_shasum": "91b4792588a7738c25f35dd6f63752a2f8776135", + "_resolved": "http://r.tnpm.oa.com/abbrev/download/abbrev-1.1.0.tgz", + "_shasum": "d0554c2256636e2f56e7c2e5ad183f859428d81f", "_shrinkwrap": null, "_spec": "abbrev@1", - "_where": "D:\\wechat-devtools\\src\\node_modules\\nopt", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/nopt", "author": { "email": "i@izs.me", "name": "Isaac Z. Schlueter" @@ -49,24 +49,28 @@ "dependencies": {}, "description": "Like ruby's abbrev module, but in js", "devDependencies": { - "tap": "^5.7.2" + "tap": "^10.1" }, "directories": {}, "dist": { - "key": "/abbrev/-/abbrev-1.0.9.tgz", + "key": "/abbrev/-/abbrev-1.1.0.tgz", "noattachment": false, - "shasum": "91b4792588a7738c25f35dd6f63752a2f8776135", - "size": 1800, - "tarball": "http://r.tnpm.oa.com/abbrev/download/abbrev-1.0.9.tgz" + "shasum": "d0554c2256636e2f56e7c2e5ad183f859428d81f", + "size": 1838, + "tarball": "http://r.tnpm.oa.com/abbrev/download/abbrev-1.1.0.tgz" }, "files": [ "abbrev.js" ], - "gitHead": "c386cd9dbb1d8d7581718c54d4ba944cc9298d6f", + "gitHead": "7136d4d95449dc44115d4f78b80ec907724f64e0", "homepage": "https://github.com/isaacs/abbrev-js#readme", "license": "ISC", "main": "abbrev.js", "maintainers": [ + { + "email": "jerry.gabra@gmail.com", + "name": "gabra" + }, { "email": "isaacs@npmjs.com", "name": "isaacs" @@ -74,14 +78,17 @@ ], "name": "abbrev", "optionalDependencies": {}, - "publish_time": 1466016061215, + "publish_time": 1487054000235, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" }, "scripts": { - "test": "tap test.js --cov" + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test.js --100" }, - "version": "1.0.9" + "version": "1.1.0" } diff --git a/node_modules/align-text/LICENSE b/node_modules/align-text/LICENSE new file mode 100644 index 00000000..65f90aca --- /dev/null +++ b/node_modules/align-text/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/align-text/README.md b/node_modules/align-text/README.md new file mode 100644 index 00000000..476b97ff --- /dev/null +++ b/node_modules/align-text/README.md @@ -0,0 +1,236 @@ +# align-text [![NPM version](https://badge.fury.io/js/align-text.svg)](http://badge.fury.io/js/align-text) [![Build Status](https://travis-ci.org/jonschlinkert/align-text.svg)](https://travis-ci.org/jonschlinkert/align-text) + +> Align the text in a string. + +**Examples** + +Align text values in an array: + +```js +align([1, 2, 3, 100]); +//=> [' 1', ' 2', ' 3', '100'] +``` + +Or [do stuff like this](./example.js): + +[![screen shot 2015-06-09 at 2 08 34 am](https://cloud.githubusercontent.com/assets/383994/8051597/7b716fbc-0e4c-11e5-9aef-4493fd22db58.png)](./example.js) + +Visit [the example](./example.js) to see how this works. + +## Install + +Install with [npm](https://www.npmjs.com/) + +```sh +$ npm i align-text --save +``` + +## Usage + +```js +var align = require('align-text'); +align(text, callback_function_or_integer); +``` + +**Params** + +* `text` can be a **string or array**. If a string is passed, a string will be returned. If an array is passed, an array will be returned. +* `callback|integer`: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as `align` loops over each line. + +**Example** + +```js +align(text, 4); +``` + +Would align: + +``` +abc +abc +abc +``` + +To: + +``` + abc + abc + abc +``` + +## callback + +### params + +The callback is used to determine the indentation of each line and gets the following params: + +* `len` the length of the "current" line +* `longest` the length of the longest line +* `line` the current line (string) being aligned +* `lines` the array of all lines + +### return + +The callback may return: + +* an integer that represents the number of spaces to use for padding, +* or an object with the following properties: + - `indent`: **{Number}** the amount of indentation to use. Default is `0` when an object is returned. + - `character`: **{String}** the character to use for indentation. Default is `''` (empty string) when an object is returned. + - `prefix`: **{String}** leading characters to use at the beginning of each line. `''` (empty string) when an object is returned. + +**Integer example:** + +```js +// calculate half the difference between the length +// of the current line and the longest line +function centerAlign(len, longest, line, lines) { + return Math.floor((longest - len) / 2); +} +``` + +**Object example:** + +```js +function centerAlign(len, longest, line, lines) { + return { + character: '\t', + indent: Math.floor((longest - len) / 2), + prefix: '~ ', + } +} +``` + +## Usage examples + +### Center align + +Using the `centerAlign` function from above: + +```js +align(text, centerAlign); +``` + +Would align this text: + +```js +Lorem ipsum dolor sit amet +consectetur adipiscin +elit, sed do eiusmod tempor incididun +ut labore et dolor +magna aliqua. Ut enim ad mini +veniam, quis +``` + +Resulting in this: + +``` + Lorem ipsum dolor sit amet, + consectetur adipiscing +elit, sed do eiusmod tempor incididunt + ut labore et dolore + magna aliqua. Ut enim ad minim + veniam, quis +``` + +**Customize** + +If you wanted to add more padding on the left, just pass the number in the callback. + +For example, to add 4 spaces before every line: + +```js +function centerAlign(len, longest, line, lines) { + return 4 + Math.floor((longest - len) / 2); +} +``` + +Would result in: + +``` + Lorem ipsum dolor sit amet, + consectetur adipiscing + elit, sed do eiusmod tempor incididunt + ut labore et dolore + magna aliqua. Ut enim ad minim + veniam, quis +``` + +### Bullets + +```js +align(text, function (len, max, line, lines) { + return {prefix: ' - '}; +}); +``` + +Would return: + +``` +- Lorem ipsum dolor sit amet, +- consectetur adipiscing +- elit, sed do eiusmod tempor incididunt +- ut labore et dolore +- magna aliqua. Ut enim ad minim +- veniam, quis +``` + +### Different indent character + +```js +align(text, function (len, max, line, lines) { + return { + indent: Math.floor((max - len) / 2), + character: '~', + }; +}); +``` + +Would return + +``` +~~~~~Lorem ipsum dolor sit amet, +~~~~~~~~consectetur adipiscing +elit, sed do eiusmod tempor incididunt +~~~~~~~~~ut labore et dolore +~~~~magna aliqua. Ut enim ad minim +~~~~~~~~~~~~~veniam, quis +``` + +## Related projects + +* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string. +* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character +* [longest](https://github.com/jonschlinkert/longest): Get the longest item in an array. +* [right-align](https://github.com/jonschlinkert/right-align): Right-align the text in a string. +* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. +* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length. + +## Running tests + +Install dev dependencies: + +```sh +$ npm i -d && npm test +``` + +## Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/align-text/issues/new) + +## Author + +**Jon Schlinkert** + ++ [github/jonschlinkert](https://github.com/jonschlinkert) ++ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) + +## License + +Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert) +Released under the MIT license. + +*** + +_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._ diff --git a/node_modules/align-text/index.js b/node_modules/align-text/index.js new file mode 100644 index 00000000..75902a3f --- /dev/null +++ b/node_modules/align-text/index.js @@ -0,0 +1,52 @@ +/*! + * align-text + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +var typeOf = require('kind-of'); +var repeat = require('repeat-string'); +var longest = require('longest'); + +module.exports = function alignText(val, fn) { + var lines, type = typeOf(val); + + if (type === 'array') { + lines = val; + } else if (type === 'string') { + lines = val.split(/(?:\r\n|\n)/); + } else { + throw new TypeError('align-text expects a string or array.'); + } + + var fnType = typeOf(fn); + var len = lines.length; + var max = longest(lines); + var res = [], i = 0; + + while (len--) { + var line = String(lines[i++]); + var diff; + + if (fnType === 'function') { + diff = fn(line.length, max.length, line, lines, i); + } else if (fnType === 'number') { + diff = fn; + } else { + diff = max.length - line.length; + } + + if (typeOf(diff) === 'number') { + res.push(repeat(' ', diff) + line); + } else if (typeOf(diff) === 'object') { + var result = repeat(diff.character || ' ', diff.indent || 0); + res.push((diff.prefix || '') + result + line); + } + } + + if (type === 'array') return res; + return res.join('\n'); +}; diff --git a/node_modules/align-text/package.json b/node_modules/align-text/package.json new file mode 100644 index 00000000..1236a17e --- /dev/null +++ b/node_modules/align-text/package.json @@ -0,0 +1,114 @@ +{ + "_args": [ + [ + "align-text@^0.1.3", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/center-align" + ] + ], + "_cnpm_publish_time": 1454377857618, + "_from": "align-text@>=0.1.3 <0.2.0", + "_id": "align-text@0.1.4", + "_inCache": true, + "_installable": true, + "_location": "/align-text", + "_nodeVersion": "5.5.0", + "_npmOperationalInternal": { + "host": "packages-9-west.internal.npmjs.com", + "tmp": "tmp/align-text-0.1.4.tgz_1454377856920_0.9624228512402624" + }, + "_npmUser": { + "email": "snnskwtnb@gmail.com", + "name": "shinnn" + }, + "_npmVersion": "3.6.0", + "_phantomChildren": {}, + "_requested": { + "name": "align-text", + "raw": "align-text@^0.1.3", + "rawSpec": "^0.1.3", + "scope": null, + "spec": ">=0.1.3 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/center-align", + "/right-align" + ], + "_resolved": "http://r.tnpm.oa.com/align-text/download/align-text-0.1.4.tgz", + "_shasum": "0cd90a561093f35d0a99256c22b7069433fad117", + "_shrinkwrap": null, + "_spec": "align-text@^0.1.3", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/center-align", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + }, + "bugs": { + "url": "https://github.com/jonschlinkert/align-text/issues" + }, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "description": "Align the text in a string.", + "devDependencies": { + "mocha": "*", + "should": "*", + "word-wrap": "^1.0.3" + }, + "directories": {}, + "dist": { + "key": "/align-text/-/align-text-0.1.4.tgz", + "noattachment": false, + "shasum": "0cd90a561093f35d0a99256c22b7069433fad117", + "size": 3547, + "tarball": "http://r.tnpm.oa.com/align-text/download/align-text-0.1.4.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "7f08e823a54c6bda319d875895813537a66a4c5e", + "homepage": "https://github.com/jonschlinkert/align-text", + "keywords": [ + "align", + "align-center", + "alignment", + "center", + "center-align", + "indent", + "pad", + "padding", + "right", + "right-align", + "text", + "typography" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "email": "github@sellside.com", + "name": "jonschlinkert" + }, + { + "email": "snnskwtnb@gmail.com", + "name": "shinnn" + } + ], + "name": "align-text", + "optionalDependencies": {}, + "publish_time": 1454377857618, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/align-text.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.1.4" +} diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js index 4906755b..b9574ed7 100644 --- a/node_modules/ansi-regex/index.js +++ b/node_modules/ansi-regex/index.js @@ -1,4 +1,4 @@ 'use strict'; module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; + return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g; }; diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json index 0eda198e..743b7982 100644 --- a/node_modules/ansi-regex/package.json +++ b/node_modules/ansi-regex/package.json @@ -2,21 +2,25 @@ "_args": [ [ "ansi-regex@^2.0.0", - "D:\\wechat-devtools\\src\\node_modules\\has-ansi" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/has-ansi" ] ], - "_cnpm_publish_time": 1435680439279, + "_cnpm_publish_time": 1484363379887, "_from": "ansi-regex@>=2.0.0 <3.0.0", - "_id": "ansi-regex@2.0.0", + "_id": "ansi-regex@2.1.1", "_inCache": true, "_installable": true, "_location": "/ansi-regex", - "_nodeVersion": "0.12.5", + "_nodeVersion": "0.10.32", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ansi-regex-2.1.1.tgz_1484363378013_0.4482989883981645" + }, "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" + "email": "i.am.qix@gmail.com", + "name": "qix" }, - "_npmVersion": "2.11.2", + "_npmVersion": "2.14.2", "_phantomChildren": {}, "_requested": { "name": "ansi-regex", @@ -30,31 +34,32 @@ "/has-ansi", "/strip-ansi" ], - "_resolved": "http://r.tnpm.oa.com/ansi-regex/download/ansi-regex-2.0.0.tgz", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", + "_resolved": "http://r.tnpm.oa.com/ansi-regex/download/ansi-regex-2.1.1.tgz", + "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df", "_shrinkwrap": null, "_spec": "ansi-regex@^2.0.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\has-ansi", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/has-ansi", "author": { "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", "url": "sindresorhus.com" }, "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" + "url": "https://github.com/chalk/ansi-regex/issues" }, "dependencies": {}, "description": "Regular expression for matching ANSI escape codes", "devDependencies": { - "mocha": "*" + "ava": "0.17.0", + "xo": "0.16.0" }, "directories": {}, "dist": { - "key": "/ansi-regex/-/ansi-regex-2.0.0.tgz", + "key": "/ansi-regex/-/ansi-regex-2.1.1.tgz", "noattachment": false, - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "size": 1665, - "tarball": "http://r.tnpm.oa.com/ansi-regex/download/ansi-regex-2.0.0.tgz" + "shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df", + "size": 2340, + "tarball": "http://r.tnpm.oa.com/ansi-regex/download/ansi-regex-2.1.1.tgz" }, "engines": { "node": ">=0.10.0" @@ -62,8 +67,8 @@ "files": [ "index.js" ], - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", - "homepage": "https://github.com/sindresorhus/ansi-regex", + "gitHead": "7c908e7b4eb6cd82bfe1295e33fdf6d166c7ed85", + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -104,15 +109,21 @@ ], "name": "ansi-regex", "optionalDependencies": {}, - "publish_time": 1435680439279, + "publish_time": 1484363379887, "readme": "ERROR: No README data found!", "repository": { "type": "git", - "url": "git+https://github.com/sindresorhus/ansi-regex.git" + "url": "git+https://github.com/chalk/ansi-regex.git" }, "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" + "test": "xo && ava --verbose", + "view-supported": "node fixtures/view-codes.js" }, - "version": "2.0.0" + "version": "2.1.1", + "xo": { + "rules": { + "guard-for-in": 0, + "no-loop-func": 0 + } + } } diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md index 1a4894ec..6a928edf 100644 --- a/node_modules/ansi-regex/readme.md +++ b/node_modules/ansi-regex/readme.md @@ -1,4 +1,4 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) +# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) > Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) @@ -13,7 +13,7 @@ $ npm install --save ansi-regex ## Usage ```js -var ansiRegex = require('ansi-regex'); +const ansiRegex = require('ansi-regex'); ansiRegex().test('\u001b[4mcake\u001b[0m'); //=> true @@ -25,6 +25,14 @@ ansiRegex().test('cake'); //=> ['\u001b[4m', '\u001b[0m'] ``` +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + ## License diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json index b183533b..250af6fd 100644 --- a/node_modules/ansi-styles/package.json +++ b/node_modules/ansi-styles/package.json @@ -2,7 +2,7 @@ "_args": [ [ "ansi-styles@^2.2.1", - "D:\\wechat-devtools\\src\\node_modules\\chalk" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chalk" ] ], "_cnpm_publish_time": 1459197318267, @@ -37,7 +37,7 @@ "_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe", "_shrinkwrap": null, "_spec": "ansi-styles@^2.2.1", - "_where": "D:\\wechat-devtools\\src\\node_modules\\chalk", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chalk", "author": { "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json index b0946431..b8631633 100644 --- a/node_modules/anymatch/package.json +++ b/node_modules/anymatch/package.json @@ -2,7 +2,7 @@ "_args": [ [ "anymatch@^1.3.0", - "D:\\wechat-devtools\\src\\node_modules\\chokidar" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chokidar" ] ], "_cnpm_publish_time": 1429740340612, @@ -33,7 +33,7 @@ "_shasum": "a3e52fa39168c825ff57b0248126ce5a8ff95507", "_shrinkwrap": null, "_spec": "anymatch@^1.3.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\chokidar", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chokidar", "author": { "name": "Elan Shanker", "url": "http://github.com/es128" diff --git a/node_modules/arr-diff/LICENSE b/node_modules/arr-diff/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/arr-diff/package.json b/node_modules/arr-diff/package.json index 9e5f5159..d91d1069 100644 --- a/node_modules/arr-diff/package.json +++ b/node_modules/arr-diff/package.json @@ -2,7 +2,7 @@ "_args": [ [ "arr-diff@^2.0.0", - "D:\\wechat-devtools\\src\\node_modules\\micromatch" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/micromatch" ] ], "_cnpm_publish_time": 1449375974109, @@ -33,7 +33,7 @@ "_shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf", "_shrinkwrap": null, "_spec": "arr-diff@^2.0.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\micromatch", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/micromatch", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" diff --git a/node_modules/arr-flatten/LICENSE b/node_modules/arr-flatten/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/arr-flatten/README.md b/node_modules/arr-flatten/README.md old mode 100644 new mode 100755 diff --git a/node_modules/arr-flatten/index.js b/node_modules/arr-flatten/index.js old mode 100644 new mode 100755 diff --git a/node_modules/arr-flatten/package.json b/node_modules/arr-flatten/package.json index 7b0e2c7a..ca738c55 100644 --- a/node_modules/arr-flatten/package.json +++ b/node_modules/arr-flatten/package.json @@ -2,7 +2,7 @@ "_args": [ [ "arr-flatten@^1.0.1", - "D:\\wechat-devtools\\src\\node_modules\\arr-diff" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/arr-diff" ] ], "_cnpm_publish_time": 1426048109728, @@ -33,7 +33,7 @@ "_shasum": "e5ffe54d45e19f32f216e91eb99c8ce892bb604b", "_shrinkwrap": null, "_spec": "arr-flatten@^1.0.1", - "_where": "D:\\wechat-devtools\\src\\node_modules\\arr-diff", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/arr-diff", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" diff --git a/node_modules/array-unique/LICENSE b/node_modules/array-unique/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/array-unique/README.md b/node_modules/array-unique/README.md old mode 100644 new mode 100755 diff --git a/node_modules/array-unique/index.js b/node_modules/array-unique/index.js old mode 100644 new mode 100755 diff --git a/node_modules/array-unique/package.json b/node_modules/array-unique/package.json index 3f476ada..60625ece 100644 --- a/node_modules/array-unique/package.json +++ b/node_modules/array-unique/package.json @@ -2,7 +2,7 @@ "_args": [ [ "array-unique@^0.2.1", - "D:\\wechat-devtools\\src\\node_modules\\micromatch" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/micromatch" ] ], "_cnpm_publish_time": 1427255229823, @@ -33,7 +33,7 @@ "_shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53", "_shrinkwrap": null, "_spec": "array-unique@^0.2.1", - "_where": "D:\\wechat-devtools\\src\\node_modules\\micromatch", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/micromatch", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" diff --git a/node_modules/arrify/package.json b/node_modules/arrify/package.json index d4ea655f..76ed0f00 100644 --- a/node_modules/arrify/package.json +++ b/node_modules/arrify/package.json @@ -2,7 +2,7 @@ "_args": [ [ "arrify@^1.0.0", - "D:\\wechat-devtools\\src\\node_modules\\anymatch" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/anymatch" ] ], "_cnpm_publish_time": 1449683318769, @@ -33,7 +33,7 @@ "_shasum": "898508da2226f380df904728456849c1501a4b0d", "_shrinkwrap": null, "_spec": "arrify@^1.0.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\anymatch", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/anymatch", "author": { "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", diff --git a/node_modules/asar/.travis.yml b/node_modules/asar/.travis.yml new file mode 100644 index 00000000..285eb6ee --- /dev/null +++ b/node_modules/asar/.travis.yml @@ -0,0 +1,11 @@ +language: node_js +node_js: + - "0.10" + - "0.12" + - "4" + - "5" + +notifications: + email: + on_success: never + on_failure: change diff --git a/node_modules/asar/README.md b/node_modules/asar/README.md index 3f6ecb85..c7d3ef3a 100644 --- a/node_modules/asar/README.md +++ b/node_modules/asar/README.md @@ -1,7 +1,6 @@ # asar - Electron Archive -[![Travis build status](https://travis-ci.org/electron/asar.svg?branch=master)](https://travis-ci.org/electron/asar) -[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/k0158woosmypinrc/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/asar/branch/master) +[![build status](http://img.shields.io/travis/electron/asar.svg?style=flat-square)](https://travis-ci.org/electron/asar) [![dependencies](http://img.shields.io/david/electron/asar.svg?style=flat-square)](https://david-dm.org/electron/asar) [![npm version](http://img.shields.io/npm/v/asar.svg?style=flat-square)](https://npmjs.org/package/asar) diff --git a/node_modules/asar/bin/asar b/node_modules/asar/bin/asar old mode 100644 new mode 100755 diff --git a/node_modules/asar/coffeelint.json b/node_modules/asar/coffeelint.json new file mode 100644 index 00000000..cc06d0d3 --- /dev/null +++ b/node_modules/asar/coffeelint.json @@ -0,0 +1,6 @@ +{ + "max_line_length": { + "value": 80, + "level": "ignore" + } +} diff --git a/node_modules/asar/lib/asar.js b/node_modules/asar/lib/asar.js index 1cfb7dae..da6f78ec 100644 --- a/node_modules/asar/lib/asar.js +++ b/node_modules/asar/lib/asar.js @@ -43,7 +43,6 @@ }); }; - /* createPackageFromFiles - Create an asar-archive from a list of filenames src: Base path. All files are relative to this. @@ -52,10 +51,11 @@ metadata: Object with filenames as keys and {type='directory|file|link', stat: fs.stat} as values. (Optional) options: The options. callback: The callback function. Accepts (err). - */ + */ + module.exports.createPackageFromFiles = function(src, dest, filenames, metadata, options, callback) { - var file, filenamesSorted, files, filesystem, handleFile, i, insertsDone, j, k, l, len, len1, len2, len3, missing, names, next, ordering, orderingFiles, pathComponent, pathComponents, str, total; + var file, filenamesSorted, files, filesystem, handleFile, insertsDone, missing, names, next, ordering, orderingFiles, pathComponent, pathComponents, str, total, _i, _j, _k, _l, _len, _len1, _len2, _len3; if (metadata == null) { metadata = {}; } @@ -73,12 +73,12 @@ return line; }); ordering = []; - for (i = 0, len = orderingFiles.length; i < len; i++) { - file = orderingFiles[i]; + for (_i = 0, _len = orderingFiles.length; _i < _len; _i++) { + file = orderingFiles[_i]; pathComponents = file.split(path.sep); str = src; - for (j = 0, len1 = pathComponents.length; j < len1; j++) { - pathComponent = pathComponents[j]; + for (_j = 0, _len1 = pathComponents.length; _j < _len1; _j++) { + pathComponent = pathComponents[_j]; str = path.join(str, pathComponent); ordering.push(str); } @@ -86,14 +86,14 @@ filenamesSorted = []; missing = 0; total = filenames.length; - for (k = 0, len2 = ordering.length; k < len2; k++) { - file = ordering[k]; + for (_k = 0, _len2 = ordering.length; _k < _len2; _k++) { + file = ordering[_k]; if (filenamesSorted.indexOf(file) === -1 && filenames.indexOf(file) !== -1) { filenamesSorted.push(file); } } - for (l = 0, len3 = filenames.length; l < len3; l++) { - file = filenames[l]; + for (_l = 0, _len3 = filenames.length; _l < _len3; _l++) { + file = filenames[_l]; if (filenamesSorted.indexOf(file) === -1) { filenamesSorted.push(file); missing += 1; @@ -195,19 +195,19 @@ }; module.exports.extractAll = function(archive, dest) { - var content, destFilename, error, file, filename, filenames, filesystem, followLinks, i, len, linkDestPath, linkSrcPath, linkTo, relativePath, results; + var content, destFilename, error, file, filename, filenames, filesystem, followLinks, linkDestPath, linkSrcPath, linkTo, relativePath, _i, _len, _results; filesystem = disk.readFilesystemSync(archive); filenames = filesystem.listFiles(); followLinks = process.platform === 'win32'; mkdirp.sync(dest); - results = []; - for (i = 0, len = filenames.length; i < len; i++) { - filename = filenames[i]; + _results = []; + for (_i = 0, _len = filenames.length; _i < _len; _i++) { + filename = filenames[_i]; filename = filename.substr(1); destFilename = path.join(dest, filename); file = filesystem.getFile(filename, followLinks); if (file.files) { - results.push(mkdirp.sync(destFilename)); + _results.push(mkdirp.sync(destFilename)); } else if (file.link) { linkSrcPath = path.dirname(path.join(dest, file.link)); linkDestPath = path.dirname(destFilename); @@ -218,13 +218,13 @@ error = _error; } linkTo = path.join(relativePath, path.basename(file.link)); - results.push(fs.symlinkSync(linkTo, destFilename)); + _results.push(fs.symlinkSync(linkTo, destFilename)); } else { content = disk.readFileSync(filesystem, filename, file); - results.push(fs.writeFileSync(destFilename, content)); + _results.push(fs.writeFileSync(destFilename, content)); } } - return results; + return _results; }; }).call(this); diff --git a/node_modules/asar/lib/crawlfs.js b/node_modules/asar/lib/crawlfs.js index cdb0c07c..36be88df 100644 --- a/node_modules/asar/lib/crawlfs.js +++ b/node_modules/asar/lib/crawlfs.js @@ -9,12 +9,12 @@ var metadata; metadata = {}; return glob(dir + '/**/*', options, function(error, filenames) { - var filename, i, len, stat; + var filename, stat, _i, _len; if (error) { return callback(error); } - for (i = 0, len = filenames.length; i < len; i++) { - filename = filenames[i]; + for (_i = 0, _len = filenames.length; _i < _len; _i++) { + filename = filenames[_i]; stat = fs.lstatSync(filename); if (stat.isFile()) { metadata[filename] = { diff --git a/node_modules/asar/lib/disk.js b/node_modules/asar/lib/disk.js index 80f9e0b9..c9cda5a6 100644 --- a/node_modules/asar/lib/disk.js +++ b/node_modules/asar/lib/disk.js @@ -35,7 +35,7 @@ if (file.unpack) { filename = path.relative(filesystem.src, file.filename); try { - copyFileToSync(dest + ".unpacked", filesystem.src, filename); + copyFileToSync("" + dest + ".unpacked", filesystem.src, filename); } catch (_error) { error = _error; return callback(error); @@ -119,7 +119,7 @@ return buffer; } if (info.unpacked) { - buffer = fs.readFileSync(path.join(filesystem.src + ".unpacked", filename)); + buffer = fs.readFileSync(path.join("" + filesystem.src + ".unpacked", filename)); } else { fd = fs.openSync(filesystem.src, 'r'); try { diff --git a/node_modules/asar/lib/filesystem.js b/node_modules/asar/lib/filesystem.js index fb52cdd9..65d707f8 100644 --- a/node_modules/asar/lib/filesystem.js +++ b/node_modules/asar/lib/filesystem.js @@ -19,11 +19,11 @@ } Filesystem.prototype.searchNodeFromDirectory = function(p) { - var dir, dirs, i, json, len; + var dir, dirs, json, _i, _len; json = this.header; dirs = p.split(path.sep); - for (i = 0, len = dirs.length; i < len; i++) { - dir = dirs[i]; + for (_i = 0, _len = dirs.length; _i < _len; _i++) { + dir = dirs[_i]; if (dir !== '.') { json = json.files[dir]; } @@ -32,7 +32,7 @@ }; Filesystem.prototype.searchNodeFromPath = function(p) { - var base, name, node; + var name, node, _base; p = path.relative(this.src, p); if (!p) { return this.header; @@ -42,8 +42,8 @@ if (node.files == null) { node.files = {}; } - if ((base = node.files)[name] == null) { - base[name] = {}; + if ((_base = node.files)[name] == null) { + _base[name] = {}; } return node.files[name]; }; @@ -58,7 +58,8 @@ }; Filesystem.prototype.insertFile = function(p, shouldUnpack, file, options, callback) { - var dirNode, handler, node, tr; + var dirNode, handler, node, tr, + _this = this; dirNode = this.searchNodeFromPath(path.dirname(p)); node = this.searchNodeFromPath(p); if (shouldUnpack || dirNode.unpacked) { @@ -67,22 +68,20 @@ process.nextTick(callback); return; } - handler = (function(_this) { - return function() { - var size; - size = file.transformed ? file.transformed.stat.size : file.stat.size; - if (size > 4294967295) { - throw new Error(p + ": file size can not be larger than 4.2GB"); - } - node.size = size; - node.offset = _this.offset.toString(); - if (process.platform !== 'win32' && file.stat.mode & 0x40) { - node.executable = true; - } - _this.offset.add(UINT64(size)); - return callback(); - }; - })(this); + handler = function() { + var size; + size = file.transformed ? file.transformed.stat.size : file.stat.size; + if (size > 4294967295) { + throw new Error("" + p + ": file size can not be larger than 4.2GB"); + } + node.size = size; + node.offset = _this.offset.toString(); + if (process.platform !== 'win32' && file.stat.mode & 0x40) { + node.executable = true; + } + _this.offset.add(UINT64(size)); + return callback(); + }; tr = options.transform && options.transform(p); if (tr) { return tmp.file(function(err, path) { @@ -110,7 +109,7 @@ var link, node; link = path.relative(fs.realpathSync(this.src), fs.realpathSync(p)); if (link.substr(0, 2) === '..') { - throw new Error(p + ": file links out of the package"); + throw new Error("" + p + ": file links out of the package"); } node = this.searchNodeFromPath(p); return node.link = link; @@ -120,17 +119,17 @@ var files, fillFilesFromHeader; files = []; fillFilesFromHeader = function(p, json) { - var f, fullPath, results; + var f, fullPath, _results; if (!json.files) { return; } - results = []; + _results = []; for (f in json.files) { fullPath = path.join(p, f); files.push(fullPath); - results.push(fillFilesFromHeader(fullPath, json.files[f])); + _results.push(fillFilesFromHeader(fullPath, json.files[f])); } - return results; + return _results; }; fillFilesFromHeader('/', this.header); return files; diff --git a/node_modules/asar/lib/snapshot.js b/node_modules/asar/lib/snapshot.js index 3fe1ba75..2cb3c6a0 100644 --- a/node_modules/asar/lib/snapshot.js +++ b/node_modules/asar/lib/snapshot.js @@ -33,12 +33,12 @@ }; createSnapshot = function(src, dest, filenames, metadata, options, callback) { - var arch, builddir, compiled, content, error, file, filename, i, len, relativeFilename, script, snapshotdir, str, target, version; + var arch, builddir, compiled, content, error, file, filename, relativeFilename, script, snapshotdir, str, target, version, _i, _len; try { src = path.resolve(src); content = {}; - for (i = 0, len = filenames.length; i < len; i++) { - filename = filenames[i]; + for (_i = 0, _len = filenames.length; _i < _len; _i++) { + filename = filenames[_i]; file = metadata[filename]; if ((file.type === 'file' || file.type === 'link') && filename.substr(-3) === '.js') { script = wrapModuleCode(stripBOM(fs.readFileSync(filename, 'utf8'))); diff --git a/node_modules/asar/node_modules/glob/package.json b/node_modules/asar/node_modules/glob/package.json index 2ae2326d..bb79dc06 100644 --- a/node_modules/asar/node_modules/glob/package.json +++ b/node_modules/asar/node_modules/glob/package.json @@ -2,7 +2,7 @@ "_args": [ [ "glob@^6.0.4", - "D:\\wechat-devtools\\src\\node_modules\\asar" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/asar" ] ], "_cnpm_publish_time": 1452292542270, @@ -33,7 +33,7 @@ "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", "_shrinkwrap": null, "_spec": "glob@^6.0.4", - "_where": "D:\\wechat-devtools\\src\\node_modules\\asar", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/asar", "author": { "email": "i@izs.me", "name": "Isaac Z. Schlueter", diff --git a/node_modules/asar/package.json b/node_modules/asar/package.json index 4c1698a8..68255a3e 100644 --- a/node_modules/asar/package.json +++ b/node_modules/asar/package.json @@ -1,26 +1,26 @@ { "_args": [ [ - "asar@^0.12.1", - "D:\\wechat-devtools\\src" + "asar@0.12.1", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src" ] ], - "_cnpm_publish_time": 1472495620187, - "_from": "asar@>=0.12.1 <0.13.0", - "_id": "asar@0.12.3", + "_cnpm_publish_time": 1469430377291, + "_from": "asar@0.12.1", + "_id": "asar@0.12.1", "_inCache": true, "_installable": true, "_location": "/asar", - "_nodeVersion": "4.5.0", + "_nodeVersion": "6.3.0", "_npmOperationalInternal": { "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/asar-0.12.3.tgz_1472495619915_0.10142250289209187" + "tmp": "tmp/asar-0.12.1.tgz_1469430377039_0.6703754663467407" }, "_npmUser": { - "email": "kevinsawicki@gmail.com", - "name": "kevinsawicki" + "email": "zcbenz@gmail.com", + "name": "zcbenz" }, - "_npmVersion": "2.15.9", + "_npmVersion": "3.10.3", "_phantomChildren": { "inflight": "1.0.6", "inherits": "2.0.3", @@ -30,20 +30,20 @@ }, "_requested": { "name": "asar", - "raw": "asar@^0.12.1", - "rawSpec": "^0.12.1", + "raw": "asar@0.12.1", + "rawSpec": "0.12.1", "scope": null, - "spec": ">=0.12.1 <0.13.0", - "type": "range" + "spec": "0.12.1", + "type": "version" }, "_requiredBy": [ "/" ], - "_resolved": "http://r.tnpm.oa.com/asar/download/asar-0.12.3.tgz", - "_shasum": "11aa004349c87ae5d69d76c7ab7d5fb77cc2a95d", + "_resolved": "http://r.tnpm.oa.com/asar/download/asar-0.12.1.tgz", + "_shasum": "df943e8eb5cd74fbca0663e2d74b8f2b727b508f", "_shrinkwrap": null, - "_spec": "asar@^0.12.1", - "_where": "D:\\wechat-devtools\\src", + "_spec": "asar@0.12.1", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src", "bin": { "asar": "bin/asar" }, @@ -51,16 +51,16 @@ "url": "https://github.com/electron/asar/issues" }, "dependencies": { - "chromium-pickle-js": "^0.2.0", + "chromium-pickle-js": "^0.1.0", "commander": "^2.9.0", "cuint": "^0.2.1", "glob": "^6.0.4", - "minimatch": "^3.0.3", + "minimatch": "^3.0.0", "mkdirp": "^0.5.0", "mksnapshot": "^0.3.0", "tmp": "0.0.28" }, - "description": "Creating Electron app packages", + "description": "Creating atom-shell app packages", "devDependencies": { "coffee-script": "^1.10.0", "grunt": "^0.4.1", @@ -73,13 +73,13 @@ }, "directories": {}, "dist": { - "key": "/asar/-/asar-0.12.3.tgz", + "key": "/asar/-/asar-0.12.1.tgz", "noattachment": false, - "shasum": "11aa004349c87ae5d69d76c7ab7d5fb77cc2a95d", - "size": 9009, - "tarball": "http://r.tnpm.oa.com/asar/download/asar-0.12.3.tgz" + "shasum": "df943e8eb5cd74fbca0663e2d74b8f2b727b508f", + "size": 10520, + "tarball": "http://r.tnpm.oa.com/asar/download/asar-0.12.1.tgz" }, - "gitHead": "ec60ec8c495413a51ff41a6a2d1a3c9847727f39", + "gitHead": "a775e3dbbe1693547b9d28643a74a2ad03192f01", "homepage": "https://github.com/electron/asar", "license": "MIT", "main": "./lib/asar.js", @@ -119,7 +119,7 @@ ], "name": "asar", "optionalDependencies": {}, - "publish_time": 1472495620187, + "publish_time": 1469430377291, "readme": "ERROR: No README data found!", "repository": { "type": "git", @@ -131,5 +131,5 @@ "pretest": "grunt clean coffeelint coffee", "test": "mocha --reporter spec --compilers coffee:coffee-script/register" }, - "version": "0.12.3" + "version": "0.12.1" } diff --git a/node_modules/asar/test/expected/extractthis-filelist.txt b/node_modules/asar/test/expected/extractthis-filelist.txt new file mode 100644 index 00000000..4a08b450 --- /dev/null +++ b/node_modules/asar/test/expected/extractthis-filelist.txt @@ -0,0 +1,7 @@ +/dir1 +/dir1/file1.txt +/dir2 +/dir2/file2.png +/dir2/file3.txt +/emptyfile.txt +/file0.txt \ No newline at end of file diff --git a/node_modules/asar/test/expected/extractthis/dir1/file1.txt b/node_modules/asar/test/expected/extractthis/dir1/file1.txt new file mode 100644 index 00000000..2649b94e --- /dev/null +++ b/node_modules/asar/test/expected/extractthis/dir1/file1.txt @@ -0,0 +1 @@ +file one. \ No newline at end of file diff --git a/node_modules/asar/test/expected/extractthis/dir2/file2.png b/node_modules/asar/test/expected/extractthis/dir2/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/expected/extractthis/dir2/file2.png differ diff --git a/node_modules/asar/test/expected/extractthis/dir2/file3.txt b/node_modules/asar/test/expected/extractthis/dir2/file3.txt new file mode 100644 index 00000000..d800886d --- /dev/null +++ b/node_modules/asar/test/expected/extractthis/dir2/file3.txt @@ -0,0 +1 @@ +123 \ No newline at end of file diff --git a/node_modules/asar/test/expected/extractthis/emptyfile.txt b/node_modules/asar/test/expected/extractthis/emptyfile.txt new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/asar/test/expected/extractthis/file0.txt b/node_modules/asar/test/expected/extractthis/file0.txt new file mode 100644 index 00000000..2f993a31 --- /dev/null +++ b/node_modules/asar/test/expected/extractthis/file0.txt @@ -0,0 +1 @@ +file0 content \ No newline at end of file diff --git a/node_modules/asar/test/expected/packthis-transformed.asar b/node_modules/asar/test/expected/packthis-transformed.asar new file mode 100644 index 00000000..c73b7afc Binary files /dev/null and b/node_modules/asar/test/expected/packthis-transformed.asar differ diff --git a/node_modules/asar/test/expected/packthis-unpack-dir-glob.asar b/node_modules/asar/test/expected/packthis-unpack-dir-glob.asar new file mode 100644 index 00000000..c0b55c9a Binary files /dev/null and b/node_modules/asar/test/expected/packthis-unpack-dir-glob.asar differ diff --git a/node_modules/asar/test/expected/packthis-unpack-dir-globstar.asar b/node_modules/asar/test/expected/packthis-unpack-dir-globstar.asar new file mode 100644 index 00000000..6534bd47 Binary files /dev/null and b/node_modules/asar/test/expected/packthis-unpack-dir-globstar.asar differ diff --git a/node_modules/asar/test/expected/packthis-unpack-dir.asar b/node_modules/asar/test/expected/packthis-unpack-dir.asar new file mode 100644 index 00000000..02cbd143 Binary files /dev/null and b/node_modules/asar/test/expected/packthis-unpack-dir.asar differ diff --git a/node_modules/asar/test/expected/packthis-unpack.asar b/node_modules/asar/test/expected/packthis-unpack.asar new file mode 100644 index 00000000..82ffbfaa Binary files /dev/null and b/node_modules/asar/test/expected/packthis-unpack.asar differ diff --git a/node_modules/asar/test/expected/packthis-unpack.asar.unpacked/dir2/file2.png b/node_modules/asar/test/expected/packthis-unpack.asar.unpacked/dir2/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/expected/packthis-unpack.asar.unpacked/dir2/file2.png differ diff --git a/node_modules/asar/test/expected/packthis-without-hidden.asar b/node_modules/asar/test/expected/packthis-without-hidden.asar new file mode 100644 index 00000000..1f4934a2 Binary files /dev/null and b/node_modules/asar/test/expected/packthis-without-hidden.asar differ diff --git a/node_modules/asar/test/expected/packthis.asar b/node_modules/asar/test/expected/packthis.asar new file mode 100644 index 00000000..3638e1d3 Binary files /dev/null and b/node_modules/asar/test/expected/packthis.asar differ diff --git a/node_modules/asar/test/input/extractthis-unpack-dir.asar b/node_modules/asar/test/input/extractthis-unpack-dir.asar new file mode 100644 index 00000000..02cbd143 Binary files /dev/null and b/node_modules/asar/test/input/extractthis-unpack-dir.asar differ diff --git a/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file2.png b/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file2.png differ diff --git a/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file3.txt b/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file3.txt new file mode 100644 index 00000000..d800886d --- /dev/null +++ b/node_modules/asar/test/input/extractthis-unpack-dir.asar.unpacked/dir2/file3.txt @@ -0,0 +1 @@ +123 \ No newline at end of file diff --git a/node_modules/asar/test/input/extractthis-unpack.asar b/node_modules/asar/test/input/extractthis-unpack.asar new file mode 100644 index 00000000..82ffbfaa Binary files /dev/null and b/node_modules/asar/test/input/extractthis-unpack.asar differ diff --git a/node_modules/asar/test/input/extractthis-unpack.asar.unpacked/dir2/file2.png b/node_modules/asar/test/input/extractthis-unpack.asar.unpacked/dir2/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/input/extractthis-unpack.asar.unpacked/dir2/file2.png differ diff --git a/node_modules/asar/test/input/extractthis.asar b/node_modules/asar/test/input/extractthis.asar new file mode 100644 index 00000000..1f4934a2 Binary files /dev/null and b/node_modules/asar/test/input/extractthis.asar differ diff --git a/node_modules/asar/test/input/packthis-glob/x1/file1.txt b/node_modules/asar/test/input/packthis-glob/x1/file1.txt new file mode 100644 index 00000000..2b6df20b --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/x1/file1.txt @@ -0,0 +1 @@ +fileone diff --git a/node_modules/asar/test/input/packthis-glob/x2/file2.txt b/node_modules/asar/test/input/packthis-glob/x2/file2.txt new file mode 100644 index 00000000..88dd7396 --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/x2/file2.txt @@ -0,0 +1 @@ +filetwo diff --git a/node_modules/asar/test/input/packthis-glob/y3/file3.txt b/node_modules/asar/test/input/packthis-glob/y3/file3.txt new file mode 100644 index 00000000..ff041a4f --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/y3/file3.txt @@ -0,0 +1 @@ +filethree diff --git a/node_modules/asar/test/input/packthis-glob/y3/x1/file4.txt b/node_modules/asar/test/input/packthis-glob/y3/x1/file4.txt new file mode 100644 index 00000000..0bffe096 --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/y3/x1/file4.txt @@ -0,0 +1 @@ +filefour diff --git a/node_modules/asar/test/input/packthis-glob/y3/z1/x2/file5.txt b/node_modules/asar/test/input/packthis-glob/y3/z1/x2/file5.txt new file mode 100644 index 00000000..13d6e8d0 --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/y3/z1/x2/file5.txt @@ -0,0 +1 @@ +filefive diff --git a/node_modules/asar/test/input/packthis-glob/z4/w1/file6.txt b/node_modules/asar/test/input/packthis-glob/z4/w1/file6.txt new file mode 100644 index 00000000..edff27ae --- /dev/null +++ b/node_modules/asar/test/input/packthis-glob/z4/w1/file6.txt @@ -0,0 +1 @@ +filesix diff --git a/node_modules/asar/test/input/packthis-subdir/dir1/file1.txt b/node_modules/asar/test/input/packthis-subdir/dir1/file1.txt new file mode 100644 index 00000000..2649b94e --- /dev/null +++ b/node_modules/asar/test/input/packthis-subdir/dir1/file1.txt @@ -0,0 +1 @@ +file one. \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file2.png b/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file2.png differ diff --git a/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file3.txt b/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file3.txt new file mode 100644 index 00000000..d800886d --- /dev/null +++ b/node_modules/asar/test/input/packthis-subdir/dir2/subdir/file3.txt @@ -0,0 +1 @@ +123 \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis-subdir/file0.txt b/node_modules/asar/test/input/packthis-subdir/file0.txt new file mode 100644 index 00000000..2f993a31 --- /dev/null +++ b/node_modules/asar/test/input/packthis-subdir/file0.txt @@ -0,0 +1 @@ +file0 content \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis/.hiddenfile.txt b/node_modules/asar/test/input/packthis/.hiddenfile.txt new file mode 100644 index 00000000..bb8d6eae --- /dev/null +++ b/node_modules/asar/test/input/packthis/.hiddenfile.txt @@ -0,0 +1 @@ +This file is hidden \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis/dir1/file1.txt b/node_modules/asar/test/input/packthis/dir1/file1.txt new file mode 100644 index 00000000..2649b94e --- /dev/null +++ b/node_modules/asar/test/input/packthis/dir1/file1.txt @@ -0,0 +1 @@ +file one. \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis/dir2/file2.png b/node_modules/asar/test/input/packthis/dir2/file2.png new file mode 100644 index 00000000..a3986deb Binary files /dev/null and b/node_modules/asar/test/input/packthis/dir2/file2.png differ diff --git a/node_modules/asar/test/input/packthis/dir2/file3.txt b/node_modules/asar/test/input/packthis/dir2/file3.txt new file mode 100644 index 00000000..d800886d --- /dev/null +++ b/node_modules/asar/test/input/packthis/dir2/file3.txt @@ -0,0 +1 @@ +123 \ No newline at end of file diff --git a/node_modules/asar/test/input/packthis/emptyfile.txt b/node_modules/asar/test/input/packthis/emptyfile.txt new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/asar/test/input/packthis/file0.txt b/node_modules/asar/test/input/packthis/file0.txt new file mode 100644 index 00000000..2f993a31 --- /dev/null +++ b/node_modules/asar/test/input/packthis/file0.txt @@ -0,0 +1 @@ +file0 content \ No newline at end of file diff --git a/node_modules/asn1/.travis.yml b/node_modules/asn1/.travis.yml new file mode 100644 index 00000000..09d3ef37 --- /dev/null +++ b/node_modules/asn1/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.8 + - 0.10 diff --git a/node_modules/asn1/lib/ber/reader.js b/node_modules/asn1/lib/ber/reader.js index bd3357a6..0a00e98e 100644 --- a/node_modules/asn1/lib/ber/reader.js +++ b/node_modules/asn1/lib/ber/reader.js @@ -24,18 +24,26 @@ function Reader(data) { // These hold the "current" state this._len = 0; this._offset = 0; - - var self = this; - this.__defineGetter__('length', function() { return self._len; }); - this.__defineGetter__('offset', function() { return self._offset; }); - this.__defineGetter__('remain', function() { - return self._size - self._offset; - }); - this.__defineGetter__('buffer', function() { - return self._buf.slice(self._offset); - }); } +Object.defineProperty(Reader.prototype, 'length', { + enumerable: true, + get: function () { return (this._len); } +}); + +Object.defineProperty(Reader.prototype, 'offset', { + enumerable: true, + get: function () { return (this._offset); } +}); + +Object.defineProperty(Reader.prototype, 'remain', { + get: function () { return (this._size - this._offset); } +}); + +Object.defineProperty(Reader.prototype, 'buffer', { + get: function () { return (this._buf.slice(this._offset)); } +}); + /** * Reads a single byte and advances offset; you can pass in `true` to make this @@ -171,7 +179,7 @@ Reader.prototype.readString = function(tag, retbuf) { this._offset = o; if (this.length === 0) - return ''; + return retbuf ? new Buffer(0) : ''; var str = this._buf.slice(this._offset, this._offset + this.length); this._offset += this.length; @@ -183,28 +191,15 @@ Reader.prototype.readOID = function(tag) { if (!tag) tag = ASN1.OID; - var b = this.peek(); + var b = this.readString(tag, true); if (b === null) return null; - if (b !== tag) - throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) + - ': got 0x' + b.toString(16)); - - var o = this.readLength(this._offset + 1); // stored in `length` - if (o === null) - return null; - - if (this.length > this._size - o) - return null; - - this._offset = o; - var values = []; var value = 0; - for (var i = 0; i < this.length; i++) { - var byte = this._buf[this._offset++] & 0xff; + for (var i = 0; i < b.length; i++) { + var byte = b[i] & 0xff; value <<= 7; value += byte & 0x7f; @@ -245,19 +240,18 @@ Reader.prototype._readTag = function(tag) { return null; this._offset = o; - var fb = this._buf[this._offset++]; + var fb = this._buf[this._offset]; var value = 0; - value = fb & 0x7F; - for (var i = 1; i < this.length; i++) { + for (var i = 0; i < this.length; i++) { value <<= 8; value |= (this._buf[this._offset++] & 0xff); } - if ((fb & 0x80) == 0x80) - value = -value; + if ((fb & 0x80) == 0x80 && i !== 4) + value -= (1 << (i * 8)); - return value; + return value >> 0; }; diff --git a/node_modules/asn1/lib/ber/writer.js b/node_modules/asn1/lib/ber/writer.js index 7b445cc6..d9d99af6 100644 --- a/node_modules/asn1/lib/ber/writer.js +++ b/node_modules/asn1/lib/ber/writer.js @@ -50,16 +50,16 @@ function Writer(options) { // A list of offsets in the buffer where we need to insert // sequence tag/len pairs. this._seq = []; - - var self = this; - this.__defineGetter__('buffer', function() { - if (self._seq.length) - throw new InvalidAsn1Error(self._seq.length + ' unended sequence(s)'); - - return self._buf.slice(0, self._offset); - }); } +Object.defineProperty(Writer.prototype, 'buffer', { + get: function () { + if (this._seq.length) + throw new InvalidAsn1Error(this._seq.length + ' unended sequence(s)'); + + return (this._buf.slice(0, this._offset)); + } +}); Writer.prototype.writeByte = function(b) { if (typeof(b) !== 'number') @@ -78,7 +78,7 @@ Writer.prototype.writeInt = function(i, tag) { var sz = 4; - while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000)) && + while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) && (sz > 1)) { sz--; i <<= 8; @@ -92,7 +92,7 @@ Writer.prototype.writeInt = function(i, tag) { this._buf[this._offset++] = sz; while (sz-- > 0) { - this._buf[this._offset++] = ((i & 0xff000000) >> 24); + this._buf[this._offset++] = ((i & 0xff000000) >>> 24); i <<= 8; } @@ -236,7 +236,6 @@ Writer.prototype.writeLength = function(len) { this._buf[this._offset++] = len >> 8; this._buf[this._offset++] = len; } else if (len <= 0xffffff) { - this._shift(start, len, 1); this._buf[this._offset++] = 0x83; this._buf[this._offset++] = len >> 16; this._buf[this._offset++] = len >> 8; diff --git a/node_modules/asn1/package.json b/node_modules/asn1/package.json index 3056efc1..b87ea3dc 100644 --- a/node_modules/asn1/package.json +++ b/node_modules/asn1/package.json @@ -1,41 +1,38 @@ { "_args": [ [ - "asn1@0.1.11", - "D:\\wechat-devtools\\src\\node_modules\\http-signature" + "asn1@~0.2.3", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/sshpk" ] ], - "_cnpm_publish_time": 1325869339759, - "_defaultsLoaded": true, - "_engineSupported": true, - "_from": "asn1@0.1.11", - "_id": "asn1@0.1.11", + "_cnpm_publish_time": 1443653610238, + "_from": "asn1@>=0.2.3 <0.3.0", + "_id": "asn1@0.2.3", "_inCache": true, "_installable": true, "_location": "/asn1", - "_nodeVersion": "v0.6.6", "_npmUser": { - "email": "mcavage@gmail.com", - "name": "mcavage" + "email": "patrick.f.mooney@gmail.com", + "name": "pfmooney" }, - "_npmVersion": "1.1.0-beta-4", + "_npmVersion": "1.4.28", "_phantomChildren": {}, "_requested": { "name": "asn1", - "raw": "asn1@0.1.11", - "rawSpec": "0.1.11", + "raw": "asn1@~0.2.3", + "rawSpec": "~0.2.3", "scope": null, - "spec": "0.1.11", - "type": "version" + "spec": ">=0.2.3 <0.3.0", + "type": "range" }, "_requiredBy": [ - "/http-signature" + "/sshpk" ], - "_resolved": "http://r.tnpm.oa.com/asn1/download/asn1-0.1.11.tgz", - "_shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", + "_resolved": "http://r.tnpm.oa.com/asn1/download/asn1-0.2.3.tgz", + "_shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86", "_shrinkwrap": null, - "_spec": "asn1@0.1.11", - "_where": "D:\\wechat-devtools\\src\\node_modules\\http-signature", + "_spec": "asn1@~0.2.3", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/sshpk", "author": { "email": "mcavage@gmail.com", "name": "Mark Cavage" @@ -51,25 +48,27 @@ { "email": "yunong@joyent.com", "name": "Yunong Xiao" + }, + { + "email": "alex.wilson@joyent.com", + "name": "Alex Wilson" } ], "dependencies": {}, "description": "Contains parsers and serializers for ASN.1 (currently BER only)", "devDependencies": { - "tap": "0.1.4" + "tap": "0.4.8" }, "directories": {}, "dist": { - "key": "/asn1/-/asn1-0.1.11.tgz", + "key": "/asn1/-/asn1-0.2.3.tgz", "noattachment": false, - "shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", - "size": 7855, - "tarball": "http://r.tnpm.oa.com/asn1/download/asn1-0.1.11.tgz" - }, - "engines": { - "node": ">=0.4.9" + "shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86", + "size": 7931, + "tarball": "http://r.tnpm.oa.com/asn1/download/asn1-0.2.3.tgz" }, - "homepage": "https://github.com/mcavage/node-asn1#readme", + "homepage": "https://github.com/mcavage/node-asn1", + "license": "MIT", "main": "lib/index.js", "maintainers": [ { @@ -87,15 +86,14 @@ ], "name": "asn1", "optionalDependencies": {}, - "publish_time": 1325869339759, + "publish_time": 1443653610238, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/mcavage/node-asn1.git" }, "scripts": { - "pretest": "which gjslint; if [[ \"$?\" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo \"Missing gjslint. Skipping lint\"; fi", - "test": "./node_modules/.bin/tap ./tst" + "test": "tap ./tst" }, - "version": "0.1.11" + "version": "0.2.3" } diff --git a/node_modules/asn1/tst/ber/reader.test.js b/node_modules/asn1/tst/ber/reader.test.js index 0b78b474..062fd7ee 100644 --- a/node_modules/asn1/tst/ber/reader.test.js +++ b/node_modules/asn1/tst/ber/reader.test.js @@ -69,6 +69,42 @@ test('read 4 byte int', function(t) { }); +test('read 1 byte negative int', function(t) { + var reader = new BerReader(new Buffer([0x02, 0x01, 0xdc])); + t.ok(reader); + t.equal(reader.readInt(), -36, 'wrong value'); + t.equal(reader.length, 0x01, 'wrong length'); + t.end(); +}); + + +test('read 2 byte negative int', function(t) { + var reader = new BerReader(new Buffer([0x02, 0x02, 0xc0, 0x4e])); + t.ok(reader); + t.equal(reader.readInt(), -16306, 'wrong value'); + t.equal(reader.length, 0x02, 'wrong length'); + t.end(); +}); + + +test('read 3 byte negative int', function(t) { + var reader = new BerReader(new Buffer([0x02, 0x03, 0xff, 0x00, 0x19])); + t.ok(reader); + t.equal(reader.readInt(), -65511, 'wrong value'); + t.equal(reader.length, 0x03, 'wrong length'); + t.end(); +}); + + +test('read 4 byte negative int', function(t) { + var reader = new BerReader(new Buffer([0x02, 0x04, 0x91, 0x7c, 0x22, 0x1f])); + t.ok(reader); + t.equal(reader.readInt(), -1854135777, 'wrong value'); + t.equal(reader.length, 0x04, 'wrong length'); + t.end(); +}); + + test('read boolean true', function(t) { var reader = new BerReader(new Buffer([0x01, 0x01, 0xff])); t.ok(reader); diff --git a/node_modules/asn1/tst/ber/writer.test.js b/node_modules/asn1/tst/ber/writer.test.js index add0b9fd..d87cb7bc 100644 --- a/node_modules/asn1/tst/ber/writer.test.js +++ b/node_modules/asn1/tst/ber/writer.test.js @@ -105,6 +105,80 @@ test('write 4 byte int', function(t) { }); +test('write 1 byte negative int', function(t) { + var writer = new BerWriter(); + + writer.writeInt(-128); + var ber = writer.buffer; + + t.ok(ber); + + t.equal(ber.length, 3, 'Wrong length for an int'); + t.equal(ber[0], 0x02, 'ASN.1 tag wrong'); + t.equal(ber[1], 0x01, 'length wrong'); + t.equal(ber[2], 0x80, 'value wrong (byte 1)'); + + t.end(); +}); + + +test('write 2 byte negative int', function(t) { + var writer = new BerWriter(); + + writer.writeInt(-22400); + var ber = writer.buffer; + + t.ok(ber); + + t.equal(ber.length, 4, 'Wrong length for an int'); + t.equal(ber[0], 0x02, 'ASN.1 tag wrong'); + t.equal(ber[1], 0x02, 'length wrong'); + t.equal(ber[2], 0xa8, 'value wrong (byte 1)'); + t.equal(ber[3], 0x80, 'value wrong (byte 2)'); + + t.end(); +}); + + +test('write 3 byte negative int', function(t) { + var writer = new BerWriter(); + + writer.writeInt(-481653); + var ber = writer.buffer; + + t.ok(ber); + + t.equal(ber.length, 5, 'Wrong length for an int'); + t.equal(ber[0], 0x02, 'ASN.1 tag wrong'); + t.equal(ber[1], 0x03, 'length wrong'); + t.equal(ber[2], 0xf8, 'value wrong (byte 1)'); + t.equal(ber[3], 0xa6, 'value wrong (byte 2)'); + t.equal(ber[4], 0x8b, 'value wrong (byte 3)'); + + t.end(); +}); + + +test('write 4 byte negative int', function(t) { + var writer = new BerWriter(); + + writer.writeInt(-1522904131); + var ber = writer.buffer; + + t.ok(ber); + + t.equal(ber.length, 6, 'Wrong length for an int'); + t.equal(ber[0], 0x02, 'ASN.1 tag wrong'); + t.equal(ber[1], 0x04, 'length wrong'); + t.equal(ber[2], 0xa5, 'value wrong (byte 1)'); + t.equal(ber[3], 0x3a, 'value wrong (byte 2)'); + t.equal(ber[4], 0x53, 'value wrong (byte 3)'); + t.equal(ber[5], 0xbd, 'value wrong (byte 4)'); + + t.end(); +}); + + test('write boolean', function(t) { var writer = new BerWriter(); diff --git a/node_modules/assert-plus/AUTHORS b/node_modules/assert-plus/AUTHORS new file mode 100644 index 00000000..1923524f --- /dev/null +++ b/node_modules/assert-plus/AUTHORS @@ -0,0 +1,6 @@ +Dave Eddy +Fred Kuo +Lars-Magnus Skog +Mark Cavage +Patrick Mooney +Rob Gulewich diff --git a/node_modules/assert-plus/CHANGES.md b/node_modules/assert-plus/CHANGES.md new file mode 100644 index 00000000..d249d9b2 --- /dev/null +++ b/node_modules/assert-plus/CHANGES.md @@ -0,0 +1,8 @@ +# assert-plus Changelog + +## 0.2.0 + +- Fix `assert.object(null)` so it throws +- Fix optional/arrayOf exports for non-type-of asserts +- Add optiona/arrayOf exports for Stream/Date/Regex/uuid +- Add basic unit test coverage diff --git a/node_modules/assert-plus/README.md b/node_modules/assert-plus/README.md index c0c3a530..0b39593c 100644 --- a/node_modules/assert-plus/README.md +++ b/node_modules/assert-plus/README.md @@ -1,24 +1,26 @@ -# node-assert-plus +# assert-plus This library is a super small wrapper over node's assert module that has two things: (1) the ability to disable assertions with the environment variable -NODE_NDEBUG, and (2) some API wrappers for argument testing. Like +NODE\_NDEBUG, and (2) some API wrappers for argument testing. Like `assert.string(myArg, 'myArg')`. As a simple example, most of my code looks like this: +```javascript var assert = require('assert-plus'); function fooAccount(options, callback) { - assert.object(options, 'options'); - assert.number(options.id, 'options.id); - assert.bool(options.isManager, 'options.isManager'); - assert.string(options.name, 'options.name'); - assert.arrayOfString(options.email, 'options.email'); - assert.func(callback, 'callback'); + assert.object(options, 'options'); + assert.number(options.id, 'options.id'); + assert.bool(options.isManager, 'options.isManager'); + assert.string(options.name, 'options.name'); + assert.arrayOfString(options.email, 'options.email'); + assert.func(callback, 'callback'); // Do stuff - callback(null, {}); + callback(null, {}); } +``` # API @@ -27,60 +29,87 @@ take an argument, and then a string 'name' that's not a message; `AssertionError will be thrown if the assertion fails with a message like: AssertionError: foo (string) is required - at test (/home/mark/work/foo/foo.js:3:9) - at Object. (/home/mark/work/foo/foo.js:15:1) - at Module._compile (module.js:446:26) - at Object..js (module.js:464:10) - at Module.load (module.js:353:31) - at Function._load (module.js:311:12) - at Array.0 (module.js:484:10) - at EventEmitter._tickCallback (node.js:190:38) + at test (/home/mark/work/foo/foo.js:3:9) + at Object. (/home/mark/work/foo/foo.js:15:1) + at Module._compile (module.js:446:26) + at Object..js (module.js:464:10) + at Module.load (module.js:353:31) + at Function._load (module.js:311:12) + at Array.0 (module.js:484:10) + at EventEmitter._tickCallback (node.js:190:38) from: +```javascript function test(foo) { - assert.string(foo, 'foo'); + assert.string(foo, 'foo'); } +``` -There you go. You can check that arrays are of a homogenous type with `Arrayof$Type`: +There you go. You can check that arrays are of a homogeneous type with `Arrayof$Type`: +```javascript function test(foo) { - assert.arrayOfString(foo, 'foo'); + assert.arrayOfString(foo, 'foo'); } +``` You can assert IFF an argument is not `undefined` (i.e., an optional arg): +```javascript assert.optionalString(foo, 'foo'); +``` Lastly, you can opt-out of assertion checking altogether by setting the environment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have lots of assertions, and don't want to pay `typeof ()` taxes to v8 in -production. +production. Be advised: The standard functions re-exported from `assert` are +also disabled in assert-plus if NDEBUG is specified. Using them directly from +the `assert` module avoids this behavior. The complete list of APIs is: +* assert.array * assert.bool * assert.buffer * assert.func * assert.number * assert.object * assert.string +* assert.stream +* assert.date +* assert.regex +* assert.uuid +* assert.arrayOfArray * assert.arrayOfBool +* assert.arrayOfBuffer * assert.arrayOfFunc * assert.arrayOfNumber * assert.arrayOfObject * assert.arrayOfString +* assert.arrayOfStream +* assert.arrayOfDate +* assert.arrayOfUuid +* assert.optionalArray * assert.optionalBool * assert.optionalBuffer * assert.optionalFunc * assert.optionalNumber * assert.optionalObject * assert.optionalString +* assert.optionalStream +* assert.optionalDate +* assert.optionalUuid +* assert.optionalArrayOfArray * assert.optionalArrayOfBool +* assert.optionalArrayOfBuffer * assert.optionalArrayOfFunc * assert.optionalArrayOfNumber * assert.optionalArrayOfObject * assert.optionalArrayOfString +* assert.optionalArrayOfStream +* assert.optionalArrayOfDate +* assert.optionalArrayOfUuid * assert.AssertionError * assert.fail * assert.ok diff --git a/node_modules/assert-plus/assert.js b/node_modules/assert-plus/assert.js index ff2ba02d..6bce4d8c 100644 --- a/node_modules/assert-plus/assert.js +++ b/node_modules/assert-plus/assert.js @@ -1,245 +1,206 @@ // Copyright (c) 2012, Mark Cavage. All rights reserved. +// Copyright 2015 Joyent, Inc. var assert = require('assert'); var Stream = require('stream').Stream; var util = require('util'); - ///--- Globals -var NDEBUG = process.env.NODE_NDEBUG || false; +/* JSSTYLED */ var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; - -///--- Messages - -var ARRAY_TYPE_REQUIRED = '%s ([%s]) required'; -var TYPE_REQUIRED = '%s (%s) is required'; - - - ///--- Internal -function capitalize(str) { - return (str.charAt(0).toUpperCase() + str.slice(1)); +function _capitalize(str) { + return (str.charAt(0).toUpperCase() + str.slice(1)); } -function uncapitalize(str) { - return (str.charAt(0).toLowerCase() + str.slice(1)); +function _toss(name, expected, oper, arg, actual) { + throw new assert.AssertionError({ + message: util.format('%s (%s) is required', name, expected), + actual: (actual === undefined) ? typeof (arg) : actual(arg), + expected: expected, + operator: oper || '===', + stackStartFunction: _toss.caller + }); } -function _() { - return (util.format.apply(util, arguments)); +function _getClass(arg) { + return (Object.prototype.toString.call(arg).slice(8, -1)); } - -function _assert(arg, type, name, stackFunc) { - if (!NDEBUG) { - name = name || type; - stackFunc = stackFunc || _assert.caller; - var t = typeof (arg); - - if (t !== type) { - throw new assert.AssertionError({ - message: _(TYPE_REQUIRED, name, type), - actual: t, - expected: type, - operator: '===', - stackStartFunction: stackFunc - }); - } - } +function noop() { + // Why even bother with asserts? } -function _instanceof(arg, type, name, stackFunc) { - if (!NDEBUG) { - name = name || type; - stackFunc = stackFunc || _instanceof.caller; +///--- Exports - if (!(arg instanceof type)) { - throw new assert.AssertionError({ - message: _(TYPE_REQUIRED, name, type.name), - actual: _getClass(arg), - expected: type.name, - operator: 'instanceof', - stackStartFunction: stackFunc - }); - } +var types = { + bool: { + check: function (arg) { return typeof (arg) === 'boolean'; } + }, + func: { + check: function (arg) { return typeof (arg) === 'function'; } + }, + string: { + check: function (arg) { return typeof (arg) === 'string'; } + }, + object: { + check: function (arg) { + return typeof (arg) === 'object' && arg !== null; } -} - -function _getClass(object) { - return (Object.prototype.toString.call(object).slice(8, -1)); + }, + number: { + check: function (arg) { + return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg); + } + }, + buffer: { + check: function (arg) { return Buffer.isBuffer(arg); }, + operator: 'Buffer.isBuffer' + }, + array: { + check: function (arg) { return Array.isArray(arg); }, + operator: 'Array.isArray' + }, + stream: { + check: function (arg) { return arg instanceof Stream; }, + operator: 'instanceof', + actual: _getClass + }, + date: { + check: function (arg) { return arg instanceof Date; }, + operator: 'instanceof', + actual: _getClass + }, + regexp: { + check: function (arg) { return arg instanceof RegExp; }, + operator: 'instanceof', + actual: _getClass + }, + uuid: { + check: function (arg) { + return typeof (arg) === 'string' && UUID_REGEXP.test(arg); + }, + operator: 'isUUID' + } }; +function _setExports(ndebug) { + var keys = Object.keys(types); + var out; + + /* re-export standard assert */ + if (process.env.NODE_NDEBUG) { + out = noop; + } else { + out = function (arg, msg) { + if (!arg) { + _toss(msg, 'true', arg); + } + }; + } - -///--- API - -function array(arr, type, name) { - if (!NDEBUG) { - name = name || type; - - if (!Array.isArray(arr)) { - throw new assert.AssertionError({ - message: _(ARRAY_TYPE_REQUIRED, name, type), - actual: typeof (arr), - expected: 'array', - operator: 'Array.isArray', - stackStartFunction: array.caller - }); - } - - for (var i = 0; i < arr.length; i++) { - _assert(arr[i], type, name, array); - } + /* standard checks */ + keys.forEach(function (k) { + if (ndebug) { + out[k] = noop; + return; } -} - - -function bool(arg, name) { - _assert(arg, 'boolean', name, bool); -} - - -function buffer(arg, name) { - if (!Buffer.isBuffer(arg)) { - throw new assert.AssertionError({ - message: _(TYPE_REQUIRED, name || '', 'Buffer'), - actual: typeof (arg), - expected: 'buffer', - operator: 'Buffer.isBuffer', - stackStartFunction: buffer - }); + var type = types[k]; + out[k] = function (arg, msg) { + if (!type.check(arg)) { + _toss(msg, k, type.operator, arg, type.actual); + } + }; + }); + + /* optional checks */ + keys.forEach(function (k) { + var name = 'optional' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; } -} - - -function func(arg, name) { - _assert(arg, 'function', name); -} - - -function number(arg, name) { - _assert(arg, 'number', name); - if (!NDEBUG && (isNaN(arg) || !isFinite(arg))) { - throw new assert.AssertionError({ - message: _(TYPE_REQUIRED, name, 'number'), - actual: arg, - expected: 'number', - operator: 'isNaN', - stackStartFunction: number - }); + var type = types[k]; + out[name] = function (arg, msg) { + if (arg === undefined || arg === null) { + return; + } + if (!type.check(arg)) { + _toss(msg, k, type.operator, arg, type.actual); + } + }; + }); + + /* arrayOf checks */ + keys.forEach(function (k) { + var name = 'arrayOf' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; } -} - - -function object(arg, name) { - _assert(arg, 'object', name); -} - - -function stream(arg, name) { - _instanceof(arg, Stream, name); -} - - -function date(arg, name) { - _instanceof(arg, Date, name); -} - -function regexp(arg, name) { - _instanceof(arg, RegExp, name); -} - - -function string(arg, name) { - _assert(arg, 'string', name); -} - - -function uuid(arg, name) { - string(arg, name); - if (!NDEBUG && !UUID_REGEXP.test(arg)) { - throw new assert.AssertionError({ - message: _(TYPE_REQUIRED, name, 'uuid'), - actual: 'string', - expected: 'uuid', - operator: 'test', - stackStartFunction: uuid - }); + var type = types[k]; + var expected = '[' + k + ']'; + out[name] = function (arg, msg) { + if (!Array.isArray(arg)) { + _toss(msg, expected, type.operator, arg, type.actual); + } + var i; + for (i = 0; i < arg.length; i++) { + if (!type.check(arg[i])) { + _toss(msg, expected, type.operator, arg, type.actual); + } + } + }; + }); + + /* optionalArrayOf checks */ + keys.forEach(function (k) { + var name = 'optionalArrayOf' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; } -} - - -///--- Exports - -module.exports = { - bool: bool, - buffer: buffer, - date: date, - func: func, - number: number, - object: object, - regexp: regexp, - stream: stream, - string: string, - uuid: uuid -}; - - -Object.keys(module.exports).forEach(function (k) { - if (k === 'buffer') + var type = types[k]; + var expected = '[' + k + ']'; + out[name] = function (arg, msg) { + if (arg === undefined || arg === null) { return; - - var name = 'arrayOf' + capitalize(k); - - if (k === 'bool') - k = 'boolean'; - if (k === 'func') - k = 'function'; - module.exports[name] = function (arg, name) { - array(arg, k, name); + } + if (!Array.isArray(arg)) { + _toss(msg, expected, type.operator, arg, type.actual); + } + var i; + for (i = 0; i < arg.length; i++) { + if (!type.check(arg[i])) { + _toss(msg, expected, type.operator, arg, type.actual); + } + } }; -}); - -Object.keys(module.exports).forEach(function (k) { - var _name = 'optional' + capitalize(k); - var s = uncapitalize(k.replace('arrayOf', '')); - if (s === 'bool') - s = 'boolean'; - if (s === 'func') - s = 'function'; - - if (k.indexOf('arrayOf') !== -1) { - module.exports[_name] = function (arg, name) { - if (!NDEBUG && arg !== undefined) { - array(arg, s, name); - } - }; - } else { - module.exports[_name] = function (arg, name) { - if (!NDEBUG && arg !== undefined) { - _assert(arg, s, name); - } - }; - } -}); - + }); -// Reexport built-in assertions -Object.keys(assert).forEach(function (k) { + /* re-export built-in assertions */ + Object.keys(assert).forEach(function (k) { if (k === 'AssertionError') { - module.exports[k] = assert[k]; - return; + out[k] = assert[k]; + return; } + if (ndebug) { + out[k] = noop; + return; + } + out[k] = assert[k]; + }); - module.exports[k] = function () { - if (!NDEBUG) { - assert[k].apply(assert[k], arguments); - } - }; -}); + /* export ourselves (for unit tests _only_) */ + out._setExports = _setExports; + + return out; +} + +module.exports = _setExports(process.env.NODE_NDEBUG); diff --git a/node_modules/assert-plus/package.json b/node_modules/assert-plus/package.json index 56b59207..90fefddd 100644 --- a/node_modules/assert-plus/package.json +++ b/node_modules/assert-plus/package.json @@ -1,38 +1,39 @@ { "_args": [ [ - "assert-plus@^0.1.5", - "D:\\wechat-devtools\\src\\node_modules\\http-signature" + "assert-plus@^0.2.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/http-signature" ] ], - "_cnpm_publish_time": 1385400227053, - "_from": "assert-plus@>=0.1.5 <0.2.0", - "_id": "assert-plus@0.1.5", + "_cnpm_publish_time": 1447141862234, + "_from": "assert-plus@>=0.2.0 <0.3.0", + "_id": "assert-plus@0.2.0", "_inCache": true, "_installable": true, "_location": "/assert-plus", + "_nodeVersion": "0.10.36", "_npmUser": { - "email": "mcavage@gmail.com", - "name": "mcavage" + "email": "patrick.f.mooney@gmail.com", + "name": "pfmooney" }, - "_npmVersion": "1.3.11", + "_npmVersion": "3.3.8", "_phantomChildren": {}, "_requested": { "name": "assert-plus", - "raw": "assert-plus@^0.1.5", - "rawSpec": "^0.1.5", + "raw": "assert-plus@^0.2.0", + "rawSpec": "^0.2.0", "scope": null, - "spec": ">=0.1.5 <0.2.0", + "spec": ">=0.2.0 <0.3.0", "type": "range" }, "_requiredBy": [ "/http-signature" ], - "_resolved": "http://r.tnpm.oa.com/assert-plus/download/assert-plus-0.1.5.tgz", - "_shasum": "ee74009413002d84cec7219c6ac811812e723160", + "_resolved": "http://r.tnpm.oa.com/assert-plus/download/assert-plus-0.2.0.tgz", + "_shasum": "d74e1b87e7affc0db8aadb7021f3fe48101ab234", "_shrinkwrap": null, - "_spec": "assert-plus@^0.1.5", - "_where": "D:\\wechat-devtools\\src\\node_modules\\http-signature", + "_spec": "assert-plus@^0.2.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/http-signature", "author": { "email": "mcavage@gmail.com", "name": "Mark Cavage" @@ -40,21 +41,51 @@ "bugs": { "url": "https://github.com/mcavage/node-assert-plus/issues" }, + "contributors": [ + { + "email": "dave@daveeddy.com", + "name": "Dave Eddy" + }, + { + "email": "fred.kuo@joyent.com", + "name": "Fred Kuo" + }, + { + "email": "ralphtheninja@riseup.net", + "name": "Lars-Magnus Skog" + }, + { + "email": "mcavage@gmail.com", + "name": "Mark Cavage" + }, + { + "email": "pmooney@pfmooney.com", + "name": "Patrick Mooney" + }, + { + "email": "robert.gulewich@joyent.com", + "name": "Rob Gulewich" + } + ], "dependencies": {}, "description": "Extra assertions on top of node's assert module", - "devDependencies": {}, + "devDependencies": { + "faucet": "0.0.1", + "tape": "4.2.2" + }, "directories": {}, "dist": { - "key": "/assert-plus/-/assert-plus-0.1.5.tgz", + "key": "/assert-plus/-/assert-plus-0.2.0.tgz", "noattachment": false, - "shasum": "ee74009413002d84cec7219c6ac811812e723160", - "size": 3431, - "tarball": "http://r.tnpm.oa.com/assert-plus/download/assert-plus-0.1.5.tgz" + "shasum": "d74e1b87e7affc0db8aadb7021f3fe48101ab234", + "size": 3806, + "tarball": "http://r.tnpm.oa.com/assert-plus/download/assert-plus-0.2.0.tgz" }, "engines": { "node": ">=0.8" }, "homepage": "https://github.com/mcavage/node-assert-plus#readme", + "license": "MIT", "main": "./assert.js", "maintainers": [ { @@ -68,12 +99,14 @@ ], "name": "assert-plus", "optionalDependencies": {}, - "publish_time": 1385400227053, + "publish_time": 1447141862234, "readme": "ERROR: No README data found!", - "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+https://github.com/mcavage/node-assert-plus.git" }, - "version": "0.1.5" + "scripts": { + "test": "tape tests/*.js | ./node_modules/.bin/faucet" + }, + "version": "0.2.0" } diff --git a/node_modules/async-each/package.json b/node_modules/async-each/package.json index 7378801f..a0fc797b 100644 --- a/node_modules/async-each/package.json +++ b/node_modules/async-each/package.json @@ -2,7 +2,7 @@ "_args": [ [ "async-each@^1.0.0", - "D:\\wechat-devtools\\src\\node_modules\\chokidar" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chokidar" ] ], "_cnpm_publish_time": 1472080937631, @@ -37,7 +37,7 @@ "_shasum": "19d386a1d9edc6e7c1c85d388aedbcc56d33602d", "_shrinkwrap": null, "_spec": "async-each@^1.0.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\chokidar", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/chokidar", "author": { "name": "Paul Miller", "url": "http://paulmillr.com/" diff --git a/node_modules/async/LICENSE b/node_modules/async/LICENSE index 8f296985..9fe85b9d 100644 --- a/node_modules/async/LICENSE +++ b/node_modules/async/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2010-2014 Caolan McMahon +Copyright (c) 2010-2016 Caolan McMahon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/node_modules/async/README.md b/node_modules/async/README.md index 6cfb922c..aece5098 100644 --- a/node_modules/async/README.md +++ b/node_modules/async/README.md @@ -1,1647 +1,12 @@ -# Async.js +![Async Logo](https://raw.githubusercontent.com/caolan/async/master/logo/async-logo_readme.jpg) [![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) +[![NPM version](https://img.shields.io/npm/v/async.svg)](https://www.npmjs.com/package/async) +[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) +[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with [Node.js](https://nodejs.org/) and installable via `npm install --save async`, it can also be used directly in the browser. -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [Node.js](http://nodejs.org) and installable via `npm install async`, -it can also be used directly in the browser. +For Documentation, visit -Async is also installable via: - -- [bower](http://bower.io/): `bower install async` -- [component](https://github.com/component/component): `component install - caolan/async` -- [jam](http://jamjs.org/): `jam install async` -- [spm](http://spmjs.io/): `spm install async` - -Async provides around 20 functions that include the usual 'functional' -suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns -for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these -functions assume you follow the Node.js convention of providing a single -callback as the last argument of your `async` function. - - -## Quick Examples - -```javascript -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); - -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); - -async.parallel([ - function(){ ... }, - function(){ ... } -], callback); - -async.series([ - function(){ ... }, - function(){ ... } -]); -``` - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - -## Common Pitfalls - -### Binding a context to an iterator - -This section is really about `bind`, not about `async`. If you are wondering how to -make `async` execute your iterators in a given context, or are confused as to why -a method of another library isn't working as an iterator, study this example: - -```js -// Here is a simple object with an (unnecessarily roundabout) squaring method -var AsyncSquaringLibrary = { - squareExponent: 2, - square: function(number, callback){ - var result = Math.pow(number, this.squareExponent); - setTimeout(function(){ - callback(null, result); - }, 200); - } -}; - -async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ - // result is [NaN, NaN, NaN] - // This fails because the `this.squareExponent` expression in the square - // function is not evaluated in the context of AsyncSquaringLibrary, and is - // therefore undefined. -}); - -async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ - // result is [1, 4, 9] - // With the help of bind we can attach a context to the iterator before - // passing it to async. Now the square function will be executed in its - // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` - // will be as expected. -}); -``` - -## Download - -The source is available for download from -[GitHub](http://github.com/caolan/async). -Alternatively, you can install using Node Package Manager (`npm`): - - npm install async - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed - -## In the Browser - -So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. - -Usage: - -```html - - -``` - -## Documentation - -### Collections - -* [`each`](#each) -* [`eachSeries`](#eachSeries) -* [`eachLimit`](#eachLimit) -* [`map`](#map) -* [`mapSeries`](#mapSeries) -* [`mapLimit`](#mapLimit) -* [`filter`](#filter) -* [`filterSeries`](#filterSeries) -* [`reject`](#reject) -* [`rejectSeries`](#rejectSeries) -* [`reduce`](#reduce) -* [`reduceRight`](#reduceRight) -* [`detect`](#detect) -* [`detectSeries`](#detectSeries) -* [`sortBy`](#sortBy) -* [`some`](#some) -* [`every`](#every) -* [`concat`](#concat) -* [`concatSeries`](#concatSeries) - -### Control Flow - -* [`series`](#seriestasks-callback) -* [`parallel`](#parallel) -* [`parallelLimit`](#parallellimittasks-limit-callback) -* [`whilst`](#whilst) -* [`doWhilst`](#doWhilst) -* [`until`](#until) -* [`doUntil`](#doUntil) -* [`forever`](#forever) -* [`waterfall`](#waterfall) -* [`compose`](#compose) -* [`seq`](#seq) -* [`applyEach`](#applyEach) -* [`applyEachSeries`](#applyEachSeries) -* [`queue`](#queue) -* [`priorityQueue`](#priorityQueue) -* [`cargo`](#cargo) -* [`auto`](#auto) -* [`retry`](#retry) -* [`iterator`](#iterator) -* [`apply`](#apply) -* [`nextTick`](#nextTick) -* [`times`](#times) -* [`timesSeries`](#timesSeries) - -### Utils - -* [`memoize`](#memoize) -* [`unmemoize`](#unmemoize) -* [`log`](#log) -* [`dir`](#dir) -* [`noConflict`](#noConflict) - - -## Collections - - - -### each(arr, iterator, callback) - -Applies the function `iterator` to each item in `arr`, in parallel. -The `iterator` is called with an item from the list, and a callback for when it -has finished. If the `iterator` passes an error to its `callback`, the main -`callback` (for the `each` function) is immediately called with the error. - -Note, that since this function applies `iterator` to each item in parallel, -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occurred, the `callback` should be run without - arguments or with an explicit `null` argument. -* `callback(err)` - A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Examples__ - - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - -```js -// assuming openFiles is an array of file names - -async.each(openFiles, function(file, callback) { - - // Perform operation on file here. - console.log('Processing file ' + file); - - if( file.length > 32 ) { - console.log('This file name is too long'); - callback('File name too long'); - } else { - // Do work to process file here - console.log('File processed'); - callback(); - } -}, function(err){ - // if any of the file processing produced an error, err would equal that error - if( err ) { - // One of the iterations produced an error. - // All processing will now stop. - console.log('A file failed to process'); - } else { - console.log('All files have been processed successfully'); - } -}); -``` - ---------------------------------------- - - - -### eachSeries(arr, iterator, callback) - -The same as [`each`](#each), only `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -This means the `iterator` functions will complete in order. - - ---------------------------------------- - - - -### eachLimit(arr, limit, iterator, callback) - -The same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously -running at any time. - -Note that the items in `arr` are not processed in batches, so there is no guarantee that -the first `limit` `iterator` functions will complete before any others are started. - -__Arguments__ - -* `arr` - An array to iterate over. -* `limit` - The maximum number of `iterator`s to run at any time. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occurred, the callback should be run without - arguments or with an explicit `null` argument. -* `callback(err)` - A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Example__ - -```js -// Assume documents is an array of JSON objects and requestApi is a -// function that interacts with a rate-limited REST api. - -async.eachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in `arr` through -the `iterator` function. The `iterator` is called with an item from `arr` and a -callback for when it has finished processing. Each of these callback takes 2 arguments: -an `error`, and the transformed item from `arr`. If `iterator` passes an error to his -callback, the main `callback` (for the `map` function) is immediately called with the error. - -Note, that since this function applies the `iterator` to each item in parallel, -there is no guarantee that the `iterator` functions will complete in order. -However, the results array will be in the same order as the original `arr`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - A callback which is called when all `iterator` - functions have finished, or an error occurs. Results is an array of the - transformed items from the `arr`. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as [`map`](#map), only the `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - - ---------------------------------------- - - -### mapLimit(arr, limit, iterator, callback) - -The same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that -the first `limit` `iterator` functions will complete before any others are started. - -__Arguments__ - -* `arr` - An array to iterate over. -* `limit` - The maximum number of `iterator`s to run at any time. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - A callback which is called when all `iterator` - calls have finished, or an error occurs. The result is an array of the - transformed items from the original `arr`. - -__Example__ - -```js -async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - - -### filter(arr, iterator, callback) - -__Alias:__ `select` - -Returns a new array of all the values in `arr` which pass an async truth test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The `iterator` is passed a `callback(truthValue)`, which must be called with a - boolean argument once it has completed. -* `callback(results)` - A callback which is called after all the `iterator` - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - ---------------------------------------- - - - -### filterSeries(arr, iterator, callback) - -__Alias:__ `selectSeries` - -The same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as [`reject`](#reject), only the `iterator` is applied to each item in `arr` -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__Aliases:__ `inject`, `foldl` - -Reduces `arr` into a single value using an async `iterator` to return -each successive step. `memo` is the initial state of the reduction. -This function only operates in series. - -For performance reasons, it may make sense to split a call to this function into -a parallel map, and then use the normal `Array.prototype.reduce` on the results. -This function is for situations where each step in the reduction needs to be async; -if you can get the data before reducing it, then it's probably a good idea to do so. - -__Arguments__ - -* `arr` - An array to iterate over. -* `memo` - The initial state of the reduction. -* `iterator(memo, item, callback)` - A function applied to each item in the - array to produce the next step in the reduction. The `iterator` is passed a - `callback(err, reduction)` which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main `callback` is - immediately called with the error. -* `callback(err, result)` - A callback which is called after all the `iterator` - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ `foldr` - -Same as [`reduce`](#reduce), only operates on `arr` in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in `arr` that passes an async truth test. The -`iterator` is applied in parallel, meaning the first iterator to return `true` will -fire the detect `callback` with that result. That means the result might not be -the first item in the original `arr` (in terms of order) that passes the test. - -If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The iterator is passed a `callback(truthValue)` which must be called with a - boolean argument once it has completed. -* `callback(result)` - A callback which is called as soon as any iterator returns - `true`, or after all the `iterator` functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value `undefined` if none passed. - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as [`detect`](#detect), only the `iterator` is applied to each item in `arr` -in series. This means the result is always the first in the original `arr` (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each `arr` value through an async `iterator`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, sortValue)` which must be called once it - has completed with an error (which can be `null`) and a value to use as the sort - criteria. -* `callback(err, results)` - A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is the items from - the original `arr` sorted by the values returned by the `iterator` calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - -__Sort Order__ - -By modifying the callback parameter the sorting order can be influenced: - -```js -//ascending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x); -}, function(err,result){ - //result callback -} ); - -//descending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x*-1); //<- x*-1 instead of x, turns the order around -}, function(err,result){ - //result callback -} ); -``` - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ `any` - -Returns `true` if at least one element in the `arr` satisfies an async test. -_The callback for each iterator call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. Once any iterator -call returns `true`, the main `callback` is immediately called. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a callback(truthValue) which must be - called with a boolean argument once it has completed. -* `callback(result)` - A callback which is called as soon as any iterator returns - `true`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ `all` - -Returns `true` if every element in `arr` satisfies an async test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a callback(truthValue) which must be - called with a boolean argument once it has completed. -* `callback(result)` - A callback which is called after all the `iterator` - functions have finished. Result will be either `true` or `false` depending on - the values of the async tests. - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies `iterator` to each item in `arr`, concatenating the results. Returns the -concatenated list. The `iterator`s are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of `arr` passed to the `iterator` function. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, results)` which must be called once it - has completed with an error (which can be `null`) and an array of results. -* `callback(err, results)` - A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is an array containing - the concatenated results of the `iterator` function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as [`concat`](#concat), but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run the functions in the `tasks` array in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run, and `callback` is immediately called with the value of the error. -Otherwise, `callback` receives an array of results when `tasks` have completed. - -It is also possible to use an object instead of an array. Each property will be -run as a function, and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`series`](#series). - -**Note** that while many implementations preserve the order of object properties, the -[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) -explicitly states that - -> The mechanics and order of enumerating the properties is not specified. - -So if you rely on the order in which your series of functions are executed, and want -this to work on all platforms, consider using an array. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run the `tasks` array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main `callback` is immediately called with the value of the error. -Once the `tasks` have completed, the results are passed to the final `callback` as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`parallel`](#parallel). - - -__Arguments__ - -* `tasks` - An array or object containing functions to run. Each function is passed - a `callback(err, result)` which it must call on completion with an error `err` - (which can be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallelLimit(tasks, limit, [callback]) - -The same as [`parallel`](#parallel), only `tasks` are executed in parallel -with a maximum of `limit` tasks executing at any time. - -Note that the `tasks` are not executed in batches, so there is no guarantee that -the first `limit` tasks will complete before any others are started. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `limit` - The maximum number of `tasks` to run at any time. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -__Arguments__ - -* `test()` - synchronous truth test to perform before each execution of `fn`. -* `fn(callback)` - A function which is called each time `test` passes. The function is - passed a `callback(err)`, which must be called once it has completed with an - optional `err` argument. -* `callback(err)` - A callback which is called after the test fails and repeated - execution of `fn` has stopped. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post-check version of [`whilst`](#whilst). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -The inverse of [`whilst`](#whilst). - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### forever(fn, errback) - -Calls the asynchronous function `fn` with a callback parameter that allows it to -call itself again, in series, indefinitely. - -If an error is passed to the callback then `errback` is called with the -error, and execution stops, otherwise it will never be called. - -```js -async.forever( - function(next) { - // next is suitable for passing to things that need a callback(err [, whatever]); - // it will result in this function being called again. - }, - function(err) { - // if next is called with a value in its first parameter, it will appear - // in here as 'err', and execution will stop. - } -); -``` - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs the `tasks` array of functions in series, each passing their results to the next in -the array. However, if any of the `tasks` pass an error to their own callback, the -next function is not executed, and the main `callback` is immediately called with -the error. - -__Arguments__ - -* `tasks` - An array of functions to run, each function is passed a - `callback(err, result1, result2, ...)` it must call on completion. The first - argument is an error (which can be `null`) and any further arguments will be - passed as arguments in order to the next task. -* `callback(err, [results])` - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback) { - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); - }, - function(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions `f()`, `g()`, and `h()` would produce the result of -`f(g(h()))`, only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### seq(fn1, fn2...) - -Version of the compose function that is more natural to read. -Each function consumes the return value of the previous function. -It is the equivalent of [`compose`](#compose) with the arguments reversed. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* functions... - the asynchronous functions to compose - - -__Example__ - -```js -// Requires lodash (or underscore), express3 and dresende's orm2. -// Part of an app, that fetches cats of the logged user. -// This example uses `seq` function to avoid overnesting and error -// handling clutter. -app.get('/cats', function(request, response) { - var User = request.models.User; - async.seq( - _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - function(user, fn) { - user.getCats(fn); // 'getCats' has signature (callback(err, data)) - } - )(req.session.user_id, function (err, cats) { - if (err) { - console.error(err); - response.json({ status: 'error', message: err.message }); - } else { - response.json({ status: 'ok', message: 'Cats found', data: cats }); - } - }); -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling -`callback` after all functions have completed. If you only provide the first -argument, then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* `fns` - the asynchronous functions to all call with the same arguments -* `args...` - any number of separate arguments to pass to the function -* `callback` - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - ---------------------------------------- - - -### applyEachSeries(arr, iterator, callback) - -The same as [`applyEach`](#applyEach) only the functions are applied in series. - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a `queue` object with the specified `concurrency`. Tasks added to the -`queue` are processed in parallel (up to the `concurrency` limit). If all -`worker`s are in progress, the task is queued until one becomes available. -Once a `worker` completes a `task`, that `task`'s callback is called. - -__Arguments__ - -* `worker(task, callback)` - An asynchronous function for processing a queued - task, which must call its `callback(err)` argument when finished, with an - optional `error` as an argument. -* `concurrency` - An `integer` for determining how many `worker` functions should be - run in parallel. - -__Queue objects__ - -The `queue` object returned by this function has the following properties and -methods: - -* `length()` - a function returning the number of items waiting to be processed. -* `started` - a function returning whether or not any items have been pushed and processed by the queue -* `running()` - a function returning the number of items currently being processed. -* `idle()` - a function returning false if there are items waiting or being processed, or true if not. -* `concurrency` - an integer for determining how many `worker` functions should be - run in parallel. This property can be changed after a `queue` is created to - alter the concurrency on-the-fly. -* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once - the `worker` has finished processing the task. Instead of a single task, a `tasks` array - can be submitted. The respective callback is used for every task in the list. -* `unshift(task, [callback])` - add a new task to the front of the `queue`. -* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, - and further tasks will be queued. -* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. -* `paused` - a boolean for determining whether the queue is in a paused state -* `pause()` - a function that pauses the processing of tasks until `resume()` is called. -* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. -* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing item'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - - ---------------------------------------- - - -### priorityQueue(worker, concurrency) - -The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: - -* `push(task, priority, [callback])` - `priority` should be a number. If an array of - `tasks` is given, all tasks will be assigned the same priority. -* The `unshift` method was removed. - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a `cargo` object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the `payload` limit). If the -`worker` is in progress, the task is queued until it becomes available. Once -the `worker` has completed some tasks, each callback of those tasks is called. -Check out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work. - -While [queue](#queue) passes only one task to one of a group of workers -at a time, cargo passes an array of tasks to a single worker, repeating -when the worker is finished. - -__Arguments__ - -* `worker(tasks, callback)` - An asynchronous function for processing an array of - queued tasks, which must call its `callback(err)` argument when finished, with - an optional `err` argument. -* `payload` - An optional `integer` for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The `cargo` object returned by this function has the following properties and -methods: - -* `length()` - A function returning the number of items waiting to be processed. -* `payload` - An `integer` for determining how many tasks should be - process per round. This property can be changed after a `cargo` is created to - alter the payload on-the-fly. -* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called - once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` - can be submitted. The respective callback is used for every task in the list. -* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. -* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [callback]) - -Determines the best order for running the functions in `tasks`, based on their -requirements. Each function can optionally depend on other functions being completed -first, and each function is run as soon as its requirements are satisfied. - -If any of the functions pass an error to their callback, it will not -complete (so any other functions depending on it will not run), and the main -`callback` is immediately called with the error. Functions also receive an -object containing the results of functions which have completed so far. - -Note, all functions are called with a `results` object as a second argument, -so it is unsafe to pass functions in the `tasks` object which cannot handle the -extra argument. - -For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling `readFile` with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to `readFile` in a function which does not forward the -`results` object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* `tasks` - An object. Each of its properties is either a function or an array of - requirements, with the function itself the last item in the array. The object's key - of a property serves as the name of the task defined by that property, - i.e. can be used when specifying requirements for other tasks. - The function receives two arguments: (1) a `callback(err, result)` which must be - called when finished, passing an `error` (which can be `null`) and the result of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions. -* `callback(err, results)` - An optional callback which is called when all the - tasks have been completed. It receives the `err` argument if any `tasks` - pass an error to their callback. Results are always returned; however, if - an error occurs, no further `tasks` will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - make_folder: function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - }, - write_file: ['get_data', 'make_folder', function(callback, results){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, 'filename'); - }], - email_link: ['write_file', function(callback, results){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - callback(null, {'file':results.write_file, 'email':'user@example.com'}); - }] -}, function(err, results) { - console.log('err = ', err); - console.log('results = ', results); -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - } -], -function(err, results){ - async.series([ - function(callback){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - results.push('filename'); - callback(null); - }, - function(callback){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - callback(null, {'file':results.pop(), 'email':'user@example.com'}); - } - ]); -}); -``` - -For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding -new tasks much easier (and the code more readable). - - ---------------------------------------- - - -### retry([times = 5], task, [callback]) - -Attempts to get a successful response from `task` no more than `times` times before -returning an error. If the task is successful, the `callback` will be passed the result -of the successful task. If all attempts fail, the callback will be passed the error and -result (if any) of the final attempt. - -__Arguments__ - -* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5. -* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` - which must be called when finished, passing `err` (which can be `null`) and the `result` of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions (if nested inside another control flow). -* `callback(err, results)` - An optional callback which is called when the - task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. - -The [`retry`](#retry) function can be used as a stand-alone control flow by passing a -callback, as shown below: - -```js -async.retry(3, apiMethod, function(err, result) { - // do something with the result -}); -``` - -It can also be embeded within other control flow functions to retry individual methods -that are not as reliable, like this: - -```js -async.auto({ - users: api.getUsers.bind(api), - payments: async.retry(3, api.getPayments.bind(api)) -}, function(err, results) { - // do something with the results -}); -``` - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the `tasks` array, -returning a continuation to call the next one after that. It's also possible to -“peek” at the next iterator with `iterator.next()`. - -This function is used internally by the `async` module, but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* `tasks` - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied. - -Useful as a shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback), setImmediate(callback) - -Calls `callback` on a later loop around the event loop. In Node.js this just -calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` -if available, otherwise `setTimeout(callback, 0)`, which means other higher priority -events may precede the execution of `callback`. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* `callback` - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, callback) - -Calls the `callback` function `n` times, and accumulates results in the same manner -you would use with [`map`](#map). - -__Arguments__ - -* `n` - The number of times to run the function. -* `callback` - The function to call `n` times. - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - - -### timesSeries(n, callback) - -The same as [`times`](#times), only the iterator is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an `async` function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* `fn` - The function to proxy and cache results from. -* `hasher` - Tn optional function for generating a custom hash for storing - results. It has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized -form. Handy for testing. - -__Arguments__ - -* `fn` - the memoized function - - -### log(function, arguments) - -Logs the result of an `async` function to the `console`. Only works in Node.js or -in browsers that support `console.log` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.log` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an `async` function to the `console` using `console.dir` to -display the properties of the resulting object. Only works in Node.js or -in browsers that support `console.dir` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.dir` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of `async` back to its original value, returning a reference to the -`async` object. +*For Async v1.5.x documentation, go [HERE](https://github.com/caolan/async/blob/v1.5.2/README.md)* diff --git a/node_modules/async/bower.json b/node_modules/async/bower.json index 18176881..7dbeb149 100644 --- a/node_modules/async/bower.json +++ b/node_modules/async/bower.json @@ -1,38 +1,17 @@ { "name": "async", - "description": "Higher-order functions and common patterns for asynchronous code", - "version": "0.9.2", - "main": "lib/async.js", - "keywords": [ - "async", - "callback", - "utility", - "module" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/caolan/async.git" - }, - "devDependencies": { - "nodeunit": ">0.0.0", - "uglify-js": "1.2.x", - "nodelint": ">0.0.0", - "lodash": ">=2.4.1" - }, - "moduleType": [ - "amd", - "globals", - "node" - ], + "main": "dist/async.js", "ignore": [ - "**/.*", - "node_modules", "bower_components", - "test", - "tests" - ], - "authors": [ - "Caolan McMahon" + "lib", + "mocha_test", + "node_modules", + "perf", + "support", + "**/.*", + "*.config.js", + "*.json", + "index.js", + "Makefile" ] -} \ No newline at end of file +} diff --git a/node_modules/async/package.json b/node_modules/async/package.json index 17dc6429..8d7f2ef5 100644 --- a/node_modules/async/package.json +++ b/node_modules/async/package.json @@ -1,83 +1,112 @@ { "_args": [ [ - "async@~0.9.0", - "D:\\wechat-devtools\\src" + "async@2.1.4", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src" ] ], - "_cnpm_publish_time": 1432025157198, - "_from": "async@>=0.9.0 <0.10.0", - "_id": "async@0.9.2", + "_cnpm_publish_time": 1479842210375, + "_from": "async@2.1.4", + "_id": "async@2.1.4", "_inCache": true, "_installable": true, "_location": "/async", - "_nodeVersion": "2.0.1", + "_nodeVersion": "6.2.2", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/async-2.1.4.tgz_1479842208353_0.5100211726967245" + }, "_npmUser": { - "email": "beau@beaugunderson.com", - "name": "beaugunderson" + "email": "megawac@gmail.com", + "name": "megawac" }, - "_npmVersion": "2.9.0", + "_npmVersion": "3.9.5", "_phantomChildren": {}, "_requested": { "name": "async", - "raw": "async@~0.9.0", - "rawSpec": "~0.9.0", + "raw": "async@2.1.4", + "rawSpec": "2.1.4", "scope": null, - "spec": ">=0.9.0 <0.10.0", - "type": "range" + "spec": "2.1.4", + "type": "version" }, "_requiredBy": [ - "/", - "/form-data" + "/" ], - "_resolved": "http://r.tnpm.oa.com/async/download/async-0.9.2.tgz", - "_shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", + "_resolved": "http://r.tnpm.oa.com/async/download/async-2.1.4.tgz", + "_shasum": "2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4", "_shrinkwrap": null, - "_spec": "async@~0.9.0", - "_where": "D:\\wechat-devtools\\src", + "_spec": "async@2.1.4", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src", "author": { "name": "Caolan McMahon" }, "bugs": { "url": "https://github.com/caolan/async/issues" }, - "dependencies": {}, + "dependencies": { + "lodash": "^4.14.0" + }, "description": "Higher-order functions and common patterns for asynchronous code", "devDependencies": { - "lodash": ">=2.4.1", - "nodelint": ">0.0.0", - "nodeunit": ">0.0.0", - "uglify-js": "1.2.x" + "babel-cli": "^6.16.0", + "babel-core": "^6.3.26", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-istanbul": "^2.0.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16", + "babel-preset-es2015": "^6.3.13", + "babelify": "^7.2.0", + "benchmark": "^2.1.1", + "bluebird": "^3.4.6", + "chai": "^3.1.0", + "cheerio": "^0.22.0", + "coveralls": "^2.11.2", + "es6-promise": "^2.3.0", + "eslint": "^2.13.1", + "fs-extra": "^0.26.7", + "gh-pages-deploy": "^0.4.2", + "jsdoc": "^3.4.0", + "karma": "^1.3.0", + "karma-browserify": "^5.1.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.2.0", + "karma-mocha-reporter": "^2.2.0", + "mocha": "^3.1.2", + "native-promise-only": "^0.8.0-a", + "nyc": "^7.0.0", + "recursive-readdir": "^1.3.0", + "rimraf": "^2.5.0", + "rollup": "^0.36.3", + "rollup-plugin-node-resolve": "^2.0.0", + "rollup-plugin-npm": "^2.0.0", + "rsvp": "^3.0.18", + "semver": "^4.3.6", + "uglify-js": "~2.7.3", + "vinyl-buffer": "^1.0.0", + "vinyl-source-stream": "^1.1.0", + "watchify": "^3.7.0", + "yargs": "~3.9.1" }, "directories": {}, "dist": { - "key": "/async/-/async-0.9.2.tgz", + "key": "/async/-/async-2.1.4.tgz", "noattachment": false, - "shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", - "size": 20948, - "tarball": "http://r.tnpm.oa.com/async/download/async-0.9.2.tgz" + "shasum": "2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4", + "size": 92704, + "tarball": "http://r.tnpm.oa.com/async/download/async-2.1.4.tgz" }, - "gitHead": "de3a16091d5125384eff4a54deb3998b13c3814c", - "homepage": "https://github.com/caolan/async#readme", - "jam": { - "categories": [ - "Utilities" - ], - "include": [ - "lib/async.js", - "README.md", - "LICENSE" - ], - "main": "lib/async.js" + "gh-pages-deploy": { + "staticpath": "docs" }, + "homepage": "https://github.com/caolan/async#readme", "keywords": [ "async", "callback", - "utility", - "module" + "module", + "utility" ], "license": "MIT", - "main": "lib/async.js", + "main": "dist/async.js", "maintainers": [ { "email": "alexander.early@gmail.com", @@ -97,28 +126,27 @@ } ], "name": "async", + "nyc": { + "exclude": [ + "mocha_test" + ] + }, "optionalDependencies": {}, - "publish_time": 1432025157198, + "publish_time": 1479842210375, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/caolan/async.git" }, "scripts": { - "test": "nodeunit test/test-async.js" - }, - "spm": { - "main": "lib/async.js" + "coverage": "nyc npm run mocha-node-test -- --grep @nycinvalid --invert", + "coveralls": "npm run coverage && nyc report --reporter=text-lcov | coveralls", + "jsdoc": "jsdoc -c ./support/jsdoc/jsdoc.json && node support/jsdoc/jsdoc-fix-html.js", + "lint": "eslint lib/ mocha_test/ perf/memory.js perf/suites.js perf/benchmark.js support/build/ support/*.js karma.conf.js", + "mocha-browser-test": "karma start", + "mocha-node-test": "mocha mocha_test/ --compilers js:babel-core/register", + "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test", + "test": "npm run lint && npm run mocha-node-test" }, - "version": "0.9.2", - "volo": { - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "main": "lib/async.js" - } + "version": "2.1.4" } diff --git a/node_modules/asynckit/LICENSE b/node_modules/asynckit/LICENSE new file mode 100644 index 00000000..c9eca5dd --- /dev/null +++ b/node_modules/asynckit/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Alex Indigo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/asynckit/README.md b/node_modules/asynckit/README.md new file mode 100644 index 00000000..ddcc7e6b --- /dev/null +++ b/node_modules/asynckit/README.md @@ -0,0 +1,233 @@ +# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit) + +Minimal async jobs utility library, with streams support. + +[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit) +[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit) +[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit) + +[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master) +[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit) +[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit) + + + +AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects. +Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method. + +It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators. + +| compression | size | +| :----------------- | -------: | +| asynckit.js | 12.34 kB | +| asynckit.min.js | 4.11 kB | +| asynckit.min.js.gz | 1.47 kB | + + +## Install + +```sh +$ npm install --save asynckit +``` + +## Examples + +### Parallel Jobs + +Runs iterator over provided array in parallel. Stores output in the `result` array, +on the matching positions. In unlikely event of an error from one of the jobs, +will terminate rest of the active jobs (if abort function is provided) +and return error along with salvaged data to the main callback function. + +#### Input Array + +```javascript +var parallel = require('asynckit').parallel + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] + , target = [] + ; + +parallel(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// async job accepts one element from the array +// and a callback function +function asyncJob(item, cb) +{ + // different delays (in ms) per item + var delay = item * 25; + + // pretend different jobs take different time to finish + // and not in consequential order + var timeoutId = setTimeout(function() { + target.push(item); + cb(null, item * 2); + }, delay); + + // allow to cancel "leftover" jobs upon error + // return function, invoking of which will abort this job + return clearTimeout.bind(null, timeoutId); +} +``` + +More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js). + +#### Input Object + +Also it supports named jobs, listed via object. + +```javascript +var parallel = require('asynckit/parallel') + , assert = require('assert') + ; + +var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } + , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } + , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] + , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ] + , target = [] + , keys = [] + ; + +parallel(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); + assert.deepEqual(keys, expectedKeys); +}); + +// supports full value, key, callback (shortcut) interface +function asyncJob(item, key, cb) +{ + // different delays (in ms) per item + var delay = item * 25; + + // pretend different jobs take different time to finish + // and not in consequential order + var timeoutId = setTimeout(function() { + keys.push(key); + target.push(item); + cb(null, item * 2); + }, delay); + + // allow to cancel "leftover" jobs upon error + // return function, invoking of which will abort this job + return clearTimeout.bind(null, timeoutId); +} +``` + +More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js). + +### Serial Jobs + +Runs iterator over provided array sequentially. Stores output in the `result` array, +on the matching positions. In unlikely event of an error from one of the jobs, +will not proceed to the rest of the items in the list +and return error along with salvaged data to the main callback function. + +#### Input Array + +```javascript +var serial = require('asynckit/serial') + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] + , target = [] + ; + +serial(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// extended interface (item, key, callback) +// also supported for arrays +function asyncJob(item, key, cb) +{ + target.push(key); + + // it will be automatically made async + // even it iterator "returns" in the same event loop + cb(null, item * 2); +} +``` + +More examples could be found in [test/test-serial-array.js](test/test-serial-array.js). + +#### Input Object + +Also it supports named jobs, listed via object. + +```javascript +var serial = require('asynckit').serial + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] + , target = [] + ; + +var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } + , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } + , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , target = [] + ; + + +serial(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// shortcut interface (item, callback) +// works for object as well as for the arrays +function asyncJob(item, cb) +{ + target.push(item); + + // it will be automatically made async + // even it iterator "returns" in the same event loop + cb(null, item * 2); +} +``` + +More examples could be found in [test/test-serial-object.js](test/test-serial-object.js). + +_Note: Since _object_ is an _unordered_ collection of properties, +it may produce unexpected results with sequential iterations. +Whenever order of the jobs' execution is important please use `serialOrdered` method._ + +### Ordered Serial Iterations + +TBD + +For example [compare-property](compare-property) package. + +### Streaming interface + +TBD + +## Want to Know More? + +More examples can be found in [test folder](test/). + +Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions. + +## License + +AsyncKit is licensed under the MIT license. diff --git a/node_modules/asynckit/bench.js b/node_modules/asynckit/bench.js new file mode 100644 index 00000000..c612f1a5 --- /dev/null +++ b/node_modules/asynckit/bench.js @@ -0,0 +1,76 @@ +/* eslint no-console: "off" */ + +var asynckit = require('./') + , async = require('async') + , assert = require('assert') + , expected = 0 + ; + +var Benchmark = require('benchmark'); +var suite = new Benchmark.Suite; + +var source = []; +for (var z = 1; z < 100; z++) +{ + source.push(z); + expected += z; +} + +suite +// add tests + +.add('async.map', function(deferred) +{ + var total = 0; + + async.map(source, + function(i, cb) + { + setImmediate(function() + { + total += i; + cb(null, total); + }); + }, + function(err, result) + { + assert.ifError(err); + assert.equal(result[result.length - 1], expected); + deferred.resolve(); + }); +}, {'defer': true}) + + +.add('asynckit.parallel', function(deferred) +{ + var total = 0; + + asynckit.parallel(source, + function(i, cb) + { + setImmediate(function() + { + total += i; + cb(null, total); + }); + }, + function(err, result) + { + assert.ifError(err); + assert.equal(result[result.length - 1], expected); + deferred.resolve(); + }); +}, {'defer': true}) + + +// add listeners +.on('cycle', function(ev) +{ + console.log(String(ev.target)); +}) +.on('complete', function() +{ + console.log('Fastest is ' + this.filter('fastest').map('name')); +}) +// run async +.run({ 'async': true }); diff --git a/node_modules/asynckit/index.js b/node_modules/asynckit/index.js new file mode 100644 index 00000000..455f9454 --- /dev/null +++ b/node_modules/asynckit/index.js @@ -0,0 +1,6 @@ +module.exports = +{ + parallel : require('./parallel.js'), + serial : require('./serial.js'), + serialOrdered : require('./serialOrdered.js') +}; diff --git a/node_modules/asynckit/lib/abort.js b/node_modules/asynckit/lib/abort.js new file mode 100644 index 00000000..114367e5 --- /dev/null +++ b/node_modules/asynckit/lib/abort.js @@ -0,0 +1,29 @@ +// API +module.exports = abort; + +/** + * Aborts leftover active jobs + * + * @param {object} state - current state object + */ +function abort(state) +{ + Object.keys(state.jobs).forEach(clean.bind(state)); + + // reset leftover jobs + state.jobs = {}; +} + +/** + * Cleans up leftover job by invoking abort function for the provided job id + * + * @this state + * @param {string|number} key - job id to abort + */ +function clean(key) +{ + if (typeof this.jobs[key] == 'function') + { + this.jobs[key](); + } +} diff --git a/node_modules/asynckit/lib/async.js b/node_modules/asynckit/lib/async.js new file mode 100644 index 00000000..7f1288a4 --- /dev/null +++ b/node_modules/asynckit/lib/async.js @@ -0,0 +1,34 @@ +var defer = require('./defer.js'); + +// API +module.exports = async; + +/** + * Runs provided callback asynchronously + * even if callback itself is not + * + * @param {function} callback - callback to invoke + * @returns {function} - augmented callback + */ +function async(callback) +{ + var isAsync = false; + + // check if async happened + defer(function() { isAsync = true; }); + + return function async_callback(err, result) + { + if (isAsync) + { + callback(err, result); + } + else + { + defer(function nextTick_callback() + { + callback(err, result); + }); + } + }; +} diff --git a/node_modules/asynckit/lib/defer.js b/node_modules/asynckit/lib/defer.js new file mode 100644 index 00000000..b67110c7 --- /dev/null +++ b/node_modules/asynckit/lib/defer.js @@ -0,0 +1,26 @@ +module.exports = defer; + +/** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ +function defer(fn) +{ + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } +} diff --git a/node_modules/asynckit/lib/iterate.js b/node_modules/asynckit/lib/iterate.js new file mode 100644 index 00000000..5d2839a5 --- /dev/null +++ b/node_modules/asynckit/lib/iterate.js @@ -0,0 +1,75 @@ +var async = require('./async.js') + , abort = require('./abort.js') + ; + +// API +module.exports = iterate; + +/** + * Iterates over each job object + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {object} state - current job status + * @param {function} callback - invoked when all elements processed + */ +function iterate(list, iterator, state, callback) +{ + // store current index + var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; + + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) + { + // don't repeat yourself + // skip secondary callbacks + if (!(key in state.jobs)) + { + return; + } + + // clean up jobs + delete state.jobs[key]; + + if (error) + { + // don't process rest of the results + // stop still active jobs + // and reset the list + abort(state); + } + else + { + state.results[key] = output; + } + + // return salvaged results + callback(error, state.results); + }); +} + +/** + * Runs iterator over provided job element + * + * @param {function} iterator - iterator to invoke + * @param {string|number} key - key/index of the element in the list of jobs + * @param {mixed} item - job description + * @param {function} callback - invoked after iterator is done with the job + * @returns {function|mixed} - job abort function or something else + */ +function runJob(iterator, key, item, callback) +{ + var aborter; + + // allow shortcut if iterator expects only two arguments + if (iterator.length == 2) + { + aborter = iterator(item, async(callback)); + } + // otherwise go with full three arguments + else + { + aborter = iterator(item, key, async(callback)); + } + + return aborter; +} diff --git a/node_modules/asynckit/lib/readable_asynckit.js b/node_modules/asynckit/lib/readable_asynckit.js new file mode 100644 index 00000000..78ad240f --- /dev/null +++ b/node_modules/asynckit/lib/readable_asynckit.js @@ -0,0 +1,91 @@ +var streamify = require('./streamify.js') + , defer = require('./defer.js') + ; + +// API +module.exports = ReadableAsyncKit; + +/** + * Base constructor for all streams + * used to hold properties/methods + */ +function ReadableAsyncKit() +{ + ReadableAsyncKit.super_.apply(this, arguments); + + // list of active jobs + this.jobs = {}; + + // add stream methods + this.destroy = destroy; + this._start = _start; + this._read = _read; +} + +/** + * Destroys readable stream, + * by aborting outstanding jobs + * + * @returns {void} + */ +function destroy() +{ + if (this.destroyed) + { + return; + } + + this.destroyed = true; + + if (typeof this.terminator == 'function') + { + this.terminator(); + } +} + +/** + * Starts provided jobs in async manner + * + * @private + */ +function _start() +{ + // first argument – runner function + var runner = arguments[0] + // take away first argument + , args = Array.prototype.slice.call(arguments, 1) + // second argument - input data + , input = args[0] + // last argument - result callback + , endCb = streamify.callback.call(this, args[args.length - 1]) + ; + + args[args.length - 1] = endCb; + // third argument - iterator + args[1] = streamify.iterator.call(this, args[1]); + + // allow time for proper setup + defer(function() + { + if (!this.destroyed) + { + this.terminator = runner.apply(null, args); + } + else + { + endCb(null, Array.isArray(input) ? [] : {}); + } + }.bind(this)); +} + + +/** + * Implement _read to comply with Readable streams + * Doesn't really make sense for flowing object mode + * + * @private + */ +function _read() +{ + +} diff --git a/node_modules/asynckit/lib/readable_parallel.js b/node_modules/asynckit/lib/readable_parallel.js new file mode 100644 index 00000000..5d2929f7 --- /dev/null +++ b/node_modules/asynckit/lib/readable_parallel.js @@ -0,0 +1,25 @@ +var parallel = require('../parallel.js'); + +// API +module.exports = ReadableParallel; + +/** + * Streaming wrapper to `asynckit.parallel` + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {stream.Readable#} + */ +function ReadableParallel(list, iterator, callback) +{ + if (!(this instanceof ReadableParallel)) + { + return new ReadableParallel(list, iterator, callback); + } + + // turn on object mode + ReadableParallel.super_.call(this, {objectMode: true}); + + this._start(parallel, list, iterator, callback); +} diff --git a/node_modules/asynckit/lib/readable_serial.js b/node_modules/asynckit/lib/readable_serial.js new file mode 100644 index 00000000..78226982 --- /dev/null +++ b/node_modules/asynckit/lib/readable_serial.js @@ -0,0 +1,25 @@ +var serial = require('../serial.js'); + +// API +module.exports = ReadableSerial; + +/** + * Streaming wrapper to `asynckit.serial` + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {stream.Readable#} + */ +function ReadableSerial(list, iterator, callback) +{ + if (!(this instanceof ReadableSerial)) + { + return new ReadableSerial(list, iterator, callback); + } + + // turn on object mode + ReadableSerial.super_.call(this, {objectMode: true}); + + this._start(serial, list, iterator, callback); +} diff --git a/node_modules/asynckit/lib/readable_serial_ordered.js b/node_modules/asynckit/lib/readable_serial_ordered.js new file mode 100644 index 00000000..3de89c47 --- /dev/null +++ b/node_modules/asynckit/lib/readable_serial_ordered.js @@ -0,0 +1,29 @@ +var serialOrdered = require('../serialOrdered.js'); + +// API +module.exports = ReadableSerialOrdered; +// expose sort helpers +module.exports.ascending = serialOrdered.ascending; +module.exports.descending = serialOrdered.descending; + +/** + * Streaming wrapper to `asynckit.serialOrdered` + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {stream.Readable#} + */ +function ReadableSerialOrdered(list, iterator, sortMethod, callback) +{ + if (!(this instanceof ReadableSerialOrdered)) + { + return new ReadableSerialOrdered(list, iterator, sortMethod, callback); + } + + // turn on object mode + ReadableSerialOrdered.super_.call(this, {objectMode: true}); + + this._start(serialOrdered, list, iterator, sortMethod, callback); +} diff --git a/node_modules/asynckit/lib/state.js b/node_modules/asynckit/lib/state.js new file mode 100644 index 00000000..cbea7ad8 --- /dev/null +++ b/node_modules/asynckit/lib/state.js @@ -0,0 +1,37 @@ +// API +module.exports = state; + +/** + * Creates initial state object + * for iteration over list + * + * @param {array|object} list - list to iterate over + * @param {function|null} sortMethod - function to use for keys sort, + * or `null` to keep them as is + * @returns {object} - initial state object + */ +function state(list, sortMethod) +{ + var isNamedList = !Array.isArray(list) + , initState = + { + index : 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs : {}, + results : isNamedList ? {} : [], + size : isNamedList ? Object.keys(list).length : list.length + } + ; + + if (sortMethod) + { + // sort array keys based on it's values + // sort object's keys just on own merit + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) + { + return sortMethod(list[a], list[b]); + }); + } + + return initState; +} diff --git a/node_modules/asynckit/lib/streamify.js b/node_modules/asynckit/lib/streamify.js new file mode 100644 index 00000000..f56a1c92 --- /dev/null +++ b/node_modules/asynckit/lib/streamify.js @@ -0,0 +1,141 @@ +var async = require('./async.js'); + +// API +module.exports = { + iterator: wrapIterator, + callback: wrapCallback +}; + +/** + * Wraps iterators with long signature + * + * @this ReadableAsyncKit# + * @param {function} iterator - function to wrap + * @returns {function} - wrapped function + */ +function wrapIterator(iterator) +{ + var stream = this; + + return function(item, key, cb) + { + var aborter + , wrappedCb = async(wrapIteratorCallback.call(stream, cb, key)) + ; + + stream.jobs[key] = wrappedCb; + + // it's either shortcut (item, cb) + if (iterator.length == 2) + { + aborter = iterator(item, wrappedCb); + } + // or long format (item, key, cb) + else + { + aborter = iterator(item, key, wrappedCb); + } + + return aborter; + }; +} + +/** + * Wraps provided callback function + * allowing to execute snitch function before + * real callback + * + * @this ReadableAsyncKit# + * @param {function} callback - function to wrap + * @returns {function} - wrapped function + */ +function wrapCallback(callback) +{ + var stream = this; + + var wrapped = function(error, result) + { + return finisher.call(stream, error, result, callback); + }; + + return wrapped; +} + +/** + * Wraps provided iterator callback function + * makes sure snitch only called once, + * but passes secondary calls to the original callback + * + * @this ReadableAsyncKit# + * @param {function} callback - callback to wrap + * @param {number|string} key - iteration key + * @returns {function} wrapped callback + */ +function wrapIteratorCallback(callback, key) +{ + var stream = this; + + return function(error, output) + { + // don't repeat yourself + if (!(key in stream.jobs)) + { + callback(error, output); + return; + } + + // clean up jobs + delete stream.jobs[key]; + + return streamer.call(stream, error, {key: key, value: output}, callback); + }; +} + +/** + * Stream wrapper for iterator callback + * + * @this ReadableAsyncKit# + * @param {mixed} error - error response + * @param {mixed} output - iterator output + * @param {function} callback - callback that expects iterator results + */ +function streamer(error, output, callback) +{ + if (error && !this.error) + { + this.error = error; + this.pause(); + this.emit('error', error); + // send back value only, as expected + callback(error, output && output.value); + return; + } + + // stream stuff + this.push(output); + + // back to original track + // send back value only, as expected + callback(error, output && output.value); +} + +/** + * Stream wrapper for finishing callback + * + * @this ReadableAsyncKit# + * @param {mixed} error - error response + * @param {mixed} output - iterator output + * @param {function} callback - callback that expects final results + */ +function finisher(error, output, callback) +{ + // signal end of the stream + // only for successfully finished streams + if (!error) + { + this.push(null); + } + + // back to original track + callback(error, output); +} diff --git a/node_modules/asynckit/lib/terminator.js b/node_modules/asynckit/lib/terminator.js new file mode 100644 index 00000000..d6eb9921 --- /dev/null +++ b/node_modules/asynckit/lib/terminator.js @@ -0,0 +1,29 @@ +var abort = require('./abort.js') + , async = require('./async.js') + ; + +// API +module.exports = terminator; + +/** + * Terminates jobs in the attached state context + * + * @this AsyncKitState# + * @param {function} callback - final callback to invoke after termination + */ +function terminator(callback) +{ + if (!Object.keys(this.jobs).length) + { + return; + } + + // fast forward iteration index + this.index = this.size; + + // abort jobs + abort(this); + + // send back results we have so far + async(callback)(null, this.results); +} diff --git a/node_modules/asynckit/package.json b/node_modules/asynckit/package.json new file mode 100644 index 00000000..71503f88 --- /dev/null +++ b/node_modules/asynckit/package.json @@ -0,0 +1,123 @@ +{ + "_args": [ + [ + "asynckit@^0.4.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/form-data" + ] + ], + "_cnpm_publish_time": 1465928945418, + "_from": "asynckit@>=0.4.0 <0.5.0", + "_id": "asynckit@0.4.0", + "_inCache": true, + "_installable": true, + "_location": "/asynckit", + "_nodeVersion": "0.12.11", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/asynckit-0.4.0.tgz_1465928940169_0.8008207362145185" + }, + "_npmUser": { + "email": "iam@alexindigo.com", + "name": "alexindigo" + }, + "_npmVersion": "2.15.6", + "_phantomChildren": {}, + "_requested": { + "name": "asynckit", + "raw": "asynckit@^0.4.0", + "rawSpec": "^0.4.0", + "scope": null, + "spec": ">=0.4.0 <0.5.0", + "type": "range" + }, + "_requiredBy": [ + "/form-data" + ], + "_resolved": "http://r.tnpm.oa.com/asynckit/download/asynckit-0.4.0.tgz", + "_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", + "_shrinkwrap": null, + "_spec": "asynckit@^0.4.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/form-data", + "author": { + "email": "iam@alexindigo.com", + "name": "Alex Indigo" + }, + "bugs": { + "url": "https://github.com/alexindigo/asynckit/issues" + }, + "dependencies": {}, + "description": "Minimal async jobs utility library, with streams support", + "devDependencies": { + "browserify": "^13.0.0", + "browserify-istanbul": "^2.0.0", + "coveralls": "^2.11.9", + "eslint": "^2.9.0", + "istanbul": "^0.4.3", + "obake": "^0.1.2", + "phantomjs-prebuilt": "^2.1.7", + "pre-commit": "^1.1.3", + "reamde": "^1.1.0", + "rimraf": "^2.5.2", + "size-table": "^0.2.0", + "tap-spec": "^4.1.1", + "tape": "^4.5.1" + }, + "directories": {}, + "dist": { + "key": "/asynckit/-/asynckit-0.4.0.tgz", + "noattachment": false, + "shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", + "size": 8111, + "tarball": "http://r.tnpm.oa.com/asynckit/download/asynckit-0.4.0.tgz" + }, + "gitHead": "583a75ed4fe41761b66416bb6e703ebb1f8963bf", + "homepage": "https://github.com/alexindigo/asynckit#readme", + "keywords": [ + "async", + "jobs", + "parallel", + "serial", + "iterator", + "array", + "object", + "stream", + "destroy", + "terminate", + "abort" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "email": "iam@alexindigo.com", + "name": "alexindigo" + } + ], + "name": "asynckit", + "optionalDependencies": {}, + "pre-commit": [ + "clean", + "lint", + "test", + "browser", + "report", + "size" + ], + "publish_time": 1465928945418, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/alexindigo/asynckit.git" + }, + "scripts": { + "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", + "clean": "rimraf coverage", + "debug": "tape test/test-*.js", + "lint": "eslint *.js lib/*.js test/*.js", + "report": "istanbul report", + "size": "browserify index.js | size-table asynckit", + "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", + "win-test": "tape test/test-*.js" + }, + "version": "0.4.0" +} diff --git a/node_modules/asynckit/parallel.js b/node_modules/asynckit/parallel.js new file mode 100644 index 00000000..3c50344d --- /dev/null +++ b/node_modules/asynckit/parallel.js @@ -0,0 +1,43 @@ +var iterate = require('./lib/iterate.js') + , initState = require('./lib/state.js') + , terminator = require('./lib/terminator.js') + ; + +// Public API +module.exports = parallel; + +/** + * Runs iterator over provided array elements in parallel + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function parallel(list, iterator, callback) +{ + var state = initState(list); + + while (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, function(error, result) + { + if (error) + { + callback(error, result); + return; + } + + // looks like it's the last one + if (Object.keys(state.jobs).length === 0) + { + callback(null, state.results); + return; + } + }); + + state.index++; + } + + return terminator.bind(state, callback); +} diff --git a/node_modules/asynckit/serial.js b/node_modules/asynckit/serial.js new file mode 100644 index 00000000..6cd949a6 --- /dev/null +++ b/node_modules/asynckit/serial.js @@ -0,0 +1,17 @@ +var serialOrdered = require('./serialOrdered.js'); + +// Public API +module.exports = serial; + +/** + * Runs iterator over provided array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serial(list, iterator, callback) +{ + return serialOrdered(list, iterator, null, callback); +} diff --git a/node_modules/asynckit/serialOrdered.js b/node_modules/asynckit/serialOrdered.js new file mode 100644 index 00000000..607eafea --- /dev/null +++ b/node_modules/asynckit/serialOrdered.js @@ -0,0 +1,75 @@ +var iterate = require('./lib/iterate.js') + , initState = require('./lib/state.js') + , terminator = require('./lib/terminator.js') + ; + +// Public API +module.exports = serialOrdered; +// sorting helpers +module.exports.ascending = ascending; +module.exports.descending = descending; + +/** + * Runs iterator over provided sorted array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serialOrdered(list, iterator, sortMethod, callback) +{ + var state = initState(list, sortMethod); + + iterate(list, iterator, state, function iteratorHandler(error, result) + { + if (error) + { + callback(error, result); + return; + } + + state.index++; + + // are we there yet? + if (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, iteratorHandler); + return; + } + + // done here + callback(null, state.results); + }); + + return terminator.bind(state, callback); +} + +/* + * -- Sort methods + */ + +/** + * sort helper to sort array elements in ascending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function ascending(a, b) +{ + return a < b ? -1 : a > b ? 1 : 0; +} + +/** + * sort helper to sort array elements in descending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function descending(a, b) +{ + return -1 * ascending(a, b); +} diff --git a/node_modules/asynckit/stream.js b/node_modules/asynckit/stream.js new file mode 100644 index 00000000..d43465f9 --- /dev/null +++ b/node_modules/asynckit/stream.js @@ -0,0 +1,21 @@ +var inherits = require('util').inherits + , Readable = require('stream').Readable + , ReadableAsyncKit = require('./lib/readable_asynckit.js') + , ReadableParallel = require('./lib/readable_parallel.js') + , ReadableSerial = require('./lib/readable_serial.js') + , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js') + ; + +// API +module.exports = +{ + parallel : ReadableParallel, + serial : ReadableSerial, + serialOrdered : ReadableSerialOrdered, +}; + +inherits(ReadableAsyncKit, Readable); + +inherits(ReadableParallel, ReadableAsyncKit); +inherits(ReadableSerial, ReadableAsyncKit); +inherits(ReadableSerialOrdered, ReadableAsyncKit); diff --git a/node_modules/autoprefixer/CHANGELOG.md b/node_modules/autoprefixer/CHANGELOG.md index 40a43583..ae35fbb3 100644 --- a/node_modules/autoprefixer/CHANGELOG.md +++ b/node_modules/autoprefixer/CHANGELOG.md @@ -1,3 +1,22 @@ +## 6.7.2 +* Do not prefix grid/flexbox in `@supports` on `grid: false`/`flexbox: false`. + +## 6.7.1 +* Update Browserslist with `last n version` fix. + +## 6.7 “Krungthep doot thep saang” +* Add Electron support in browsers list (by Kilian Valkhof). +* Add `flex-flow` partial support for Flexbox 2009 specification. +* Fix browsers `0` version issue in some Can I Use data. + +## 6.6.1 +* Add metadata to use Autoprefixer in JSS tests (by Chi Vinh Le). + +## 6.6 “Kaiyuan” +* Add `browserslist` key in `package.json` support. +* Add support for separated environments in browserslist config. +* Add `browserslist-stats.json` file support to load custom usage statistics. + ## 6.5.4 * Fix unitless 0 basis in IE10/IE11 shorthand flex (by Google). diff --git a/node_modules/autoprefixer/README.md b/node_modules/autoprefixer/README.md index 5ec37809..73015f41 100644 --- a/node_modules/autoprefixer/README.md +++ b/node_modules/autoprefixer/README.md @@ -5,8 +5,7 @@ title="Autoprefixer logo by Anton Lovchikov"> [PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values -from [Can I Use]. It is [recommended] by Google and used in Twitter, -and Taobao. +from [Can I Use]. It is [recommended] by Google and used in Twitter and Taobao. Write your CSS rules without vendor prefixes (in fact, forget about them entirely): @@ -126,14 +125,20 @@ Autoprefixer uses [Browserslist], so you can specify the browsers you want to target in your project by queries like `last 2 versions` or `> 5%`. -If you don’t provide the browsers option, Browserslist will try -to find the `browserslist` config in parent dirs. +The best way to provide browsers is `browserslist` config +or `package.json` with `browserslist` key. Put it in your project root. + +We recommend to avoid Autoprefixer option and use `browserslist` config +or `package.json`. In this case browsers will be shared with other tools +like [babel-preset-env] or [Stylelint]. See [Browserslist docs] for queries, browser names, config format, and default value. -[Browserslist]: https://github.com/ai/browserslist [Browserslist docs]: https://github.com/ai/browserslist#queries +[babel-preset-env]: https://github.com/babel/babel-preset-env +[Browserslist]: https://github.com/ai/browserslist +[Stylelint]: http://stylelint.io/ ## Outdated Prefixes @@ -252,7 +257,7 @@ gulp.task('autoprefixer', function () { return gulp.src('./src/*.css') .pipe(sourcemaps.init()) - .pipe(postcss([ autoprefixer({ browsers: ['last 2 versions'] }) ])) + .pipe(postcss([ autoprefixer() ])) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('./dest')); }); @@ -270,8 +275,6 @@ In [webpack] you can use [postcss-loader] with `autoprefixer` and [other PostCSS plugins]. ```js -var autoprefixer = require('autoprefixer'); - module.exports = { module: { loaders: [ @@ -280,8 +283,17 @@ module.exports = { loader: "style-loader!css-loader!postcss-loader" } ] - }, - postcss: [ autoprefixer({ browsers: ['last 2 versions'] }) ] + } +} +``` + +And create a `postcss.config.js` with: + +```js +module.exports = { + plugins: [ + require('autoprefixer') + ] } ``` @@ -302,9 +314,7 @@ module.exports = function(grunt) { options: { map: true, processors: [ - require('autoprefixer')({ - browsers: ['last 2 versions'] - }) + require('autoprefixer') ] }, dist: { @@ -507,15 +517,17 @@ Function `autoprefixer(options)` returns new PostCSS plugin. See [PostCSS API] for plugin usage documentation. ```js -var plugin = autoprefixer({ browsers: ['> 1%', 'IE 7'], cascade: false }); +var plugin = autoprefixer({ cascade: false }); ``` There are 8 options: -* `browsers` (array): list of browsers, which are supported in your project. - You can directly specify browser version (like `IE 7`) or use selections - (like `last 2 version` or `> 5%`). See [Browserslist docs] for available +* `browsers` (array): list of browsers query (like `last 2 version`), + which are supported in your project. We recommend to use `browserslist` + config or `browserslist` key in `package.json`, rather than this option + to share browsers with other tools. See [Browserslist docs] for available queries and default value. +* `env` (string): environment for Browserslist. * `cascade` (boolean): should Autoprefixer use Visual Cascade, if CSS is uncompressed. Default: `true` * `add` (boolean): should Autoprefixer add prefixes. Default is `true`. @@ -544,6 +556,6 @@ to increase performance. You can check which browsers are selected and which properties will be prefixed: ```js -var info = autoprefixer({ browsers: ['last 1 version'] }).info(); +var info = autoprefixer().info(); console.log(info); ``` diff --git a/node_modules/autoprefixer/data/prefixes.js b/node_modules/autoprefixer/data/prefixes.js index 5a9e6702..cae2d303 100644 --- a/node_modules/autoprefixer/data/prefixes.js +++ b/node_modules/autoprefixer/data/prefixes.js @@ -81,34 +81,39 @@ feature(require('caniuse-db/features-json/border-radius.json'), function(browsers) { return prefix('border-radius', 'border-top-left-radius', 'border-top-right-radius', 'border-bottom-right-radius', 'border-bottom-left-radius', { mistakes: ['-khtml-', '-ms-', '-o-'], - browsers: browsers + browsers: browsers, + feature: 'border-radius' }); }); feature(require('caniuse-db/features-json/css-boxshadow.json'), function(browsers) { return prefix('box-shadow', { mistakes: ['-khtml-'], - browsers: browsers + browsers: browsers, + feature: 'css-boxshadow' }); }); feature(require('caniuse-db/features-json/css-animation.json'), function(browsers) { return prefix('animation', 'animation-name', 'animation-duration', 'animation-delay', 'animation-direction', 'animation-fill-mode', 'animation-iteration-count', 'animation-play-state', 'animation-timing-function', '@keyframes', { mistakes: ['-khtml-', '-ms-'], - browsers: browsers + browsers: browsers, + feature: 'css-animation' }); }); feature(require('caniuse-db/features-json/css-transitions.json'), function(browsers) { return prefix('transition', 'transition-property', 'transition-duration', 'transition-delay', 'transition-timing-function', { mistakes: ['-khtml-', '-ms-'], - browsers: browsers + browsers: browsers, + feature: 'css-transitions' }); }); feature(require('caniuse-db/features-json/transforms2d.json'), function(browsers) { return prefix('transform', 'transform-origin', { - browsers: browsers + browsers: browsers, + feature: 'transforms2d' }); }); @@ -116,11 +121,13 @@ feature(transforms3d, function(browsers) { prefix('perspective', 'perspective-origin', { - browsers: browsers + browsers: browsers, + feature: 'transforms3d' }); return prefix('transform-style', { mistakes: ['-ms-', '-o-'], - browsers: browsers + browsers: browsers, + feature: 'transforms3d' }); }); @@ -129,7 +136,8 @@ }, function(browsers) { return prefix('backface-visibility', { mistakes: ['-ms-', '-o-'], - browsers: browsers + browsers: browsers, + feature: 'transforms3d' }); }); @@ -141,7 +149,8 @@ return prefix('linear-gradient', 'repeating-linear-gradient', 'radial-gradient', 'repeating-radial-gradient', { props: ['background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image'], mistakes: ['-ms-'], - browsers: browsers + browsers: browsers, + feature: 'css-gradients' }); }); @@ -156,19 +165,22 @@ } }); return add('linear-gradient', 'repeating-linear-gradient', 'radial-gradient', 'repeating-radial-gradient', { - browsers: browsers + browsers: browsers, + feature: 'css-gradients' }); }); feature(require('caniuse-db/features-json/css3-boxsizing.json'), function(browsers) { return prefix('box-sizing', { - browsers: browsers + browsers: browsers, + feature: 'css3-boxsizing' }); }); feature(require('caniuse-db/features-json/css-filters.json'), function(browsers) { return prefix('filter', { - browsers: browsers + browsers: browsers, + feature: 'css-filters' }); }); @@ -177,7 +189,8 @@ feature(filterFunction, function(browsers) { return prefix('filter-function', { props: ['background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image'], - browsers: browsers + browsers: browsers, + feature: 'css-filter-function' }); }); @@ -185,7 +198,8 @@ feature(backdropFilter, function(browsers) { return prefix('backdrop-filter', { - browsers: browsers + browsers: browsers, + feature: 'css-backdrop-filter' }); }); @@ -194,16 +208,19 @@ feature(elementFunction, function(browsers) { return prefix('element', { props: ['background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image'], - browsers: browsers + browsers: browsers, + feature: 'css-element-function' }); }); feature(require('caniuse-db/features-json/multicolumn.json'), function(browsers) { prefix('columns', 'column-width', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', { - browsers: browsers + browsers: browsers, + feature: 'multicolumn' }); return prefix('column-count', 'column-rule-style', 'column-span', 'column-fill', 'break-before', 'break-after', 'break-inside', { - browsers: browsers + browsers: browsers, + feature: 'multicolumn' }); }); @@ -212,7 +229,8 @@ feature(userSelectNone, function(browsers) { return prefix('user-select', { mistakes: ['-khtml-'], - browsers: browsers + browsers: browsers, + feature: 'user-select-none' }); }); @@ -230,13 +248,16 @@ }); prefix('display-flex', 'inline-flex', { props: ['display'], - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); prefix('flex', 'flex-grow', 'flex-shrink', 'flex-basis', { - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); return prefix('flex-direction', 'flex-wrap', 'flex-flow', 'justify-content', 'order', 'align-items', 'align-self', 'align-content', { - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); }); @@ -244,20 +265,24 @@ match: /y\sx/ }, function(browsers) { add('display-flex', 'inline-flex', { - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); add('flex', 'flex-grow', 'flex-shrink', 'flex-basis', { - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); return add('flex-direction', 'flex-wrap', 'flex-flow', 'justify-content', 'order', 'align-items', 'align-self', 'align-content', { - browsers: browsers + browsers: browsers, + feature: 'flexbox' }); }); feature(require('caniuse-db/features-json/calc.json'), function(browsers) { return prefix('calc', { props: ['*'], - browsers: browsers + browsers: browsers, + feature: 'calc' }); }); @@ -265,26 +290,30 @@ feature(bckgrndImgOpts, function(browsers) { return prefix('background-clip', 'background-origin', 'background-size', { - browsers: browsers + browsers: browsers, + feature: 'background-img-opts' }); }); feature(require('caniuse-db/features-json/font-feature.json'), function(browsers) { return prefix('font-feature-settings', 'font-variant-ligatures', 'font-language-override', 'font-kerning', { - browsers: browsers + browsers: browsers, + feature: 'font-feature' }); }); feature(require('caniuse-db/features-json/border-image.json'), function(browsers) { return prefix('border-image', { - browsers: browsers + browsers: browsers, + feature: 'border-image' }); }); feature(require('caniuse-db/features-json/css-selection.json'), function(browsers) { return prefix('::selection', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'css-selection' }); }); @@ -300,13 +329,15 @@ }); return prefix('::placeholder', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'css-placeholder' }); }); feature(require('caniuse-db/features-json/css-hyphens.json'), function(browsers) { return prefix('hyphens', { - browsers: browsers + browsers: browsers, + feature: 'css-hyphens' }); }); @@ -315,7 +346,8 @@ feature(fullscreen, function(browsers) { return prefix(':fullscreen', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'fullscreen' }); }); @@ -324,20 +356,23 @@ }, function(browsers) { return prefix('::backdrop', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'fullscreen' }); }); feature(require('caniuse-db/features-json/css3-tabsize.json'), function(browsers) { return prefix('tab-size', { - browsers: browsers + browsers: browsers, + feature: 'css3-tabsize' }); }); feature(require('caniuse-db/features-json/intrinsic-width.json'), function(browsers) { return prefix('max-content', 'min-content', 'fit-content', 'fill', 'fill-available', { props: ['width', 'min-width', 'max-width', 'height', 'min-height', 'max-height', 'inline-size', 'min-inline-size', 'max-inline-size', 'block-size', 'min-block-size', 'max-block-size'], - browsers: browsers + browsers: browsers, + feature: 'intrinsic-width' }); }); @@ -346,7 +381,8 @@ feature(cursorsNewer, function(browsers) { return prefix('zoom-in', 'zoom-out', { props: ['cursor'], - browsers: browsers + browsers: browsers, + feature: 'css3-cursors-newer' }); }); @@ -355,20 +391,23 @@ feature(cursorsGrab, function(browsers) { return prefix('grab', 'grabbing', { props: ['cursor'], - browsers: browsers + browsers: browsers, + feature: 'css3-cursors-grab' }); }); feature(require('caniuse-db/features-json/css-sticky.json'), function(browsers) { return prefix('sticky', { props: ['position'], - browsers: browsers + browsers: browsers, + feature: 'css-sticky' }); }); feature(require('caniuse-db/features-json/pointer.json'), function(browsers) { return prefix('touch-action', { - browsers: browsers + browsers: browsers, + feature: 'pointer' }); }); @@ -376,7 +415,8 @@ feature(decoration, function(browsers) { return prefix('text-decoration-style', 'text-decoration-color', 'text-decoration-line', { - browsers: browsers + browsers: browsers, + feature: 'text-decoration' }); }); @@ -384,7 +424,8 @@ match: /x.*#3/ }, function(browsers) { return prefix('text-decoration-skip', { - browsers: browsers + browsers: browsers, + feature: 'text-decoration' }); }); @@ -392,16 +433,19 @@ feature(textSizeAdjust, function(browsers) { return prefix('text-size-adjust', { - browsers: browsers + browsers: browsers, + feature: 'text-size-adjust' }); }); feature(require('caniuse-db/features-json/css-masks.json'), function(browsers) { prefix('mask-clip', 'mask-composite', 'mask-image', 'mask-origin', 'mask-repeat', 'mask-border-repeat', 'mask-border-source', { - browsers: browsers + browsers: browsers, + feature: 'css-masks' }); return prefix('clip-path', 'mask', 'mask-position', 'mask-size', 'mask-border', 'mask-border-outset', 'mask-border-width', 'mask-border-slice', { - browsers: browsers + browsers: browsers, + feature: 'css-masks' }); }); @@ -409,25 +453,29 @@ feature(boxdecorbreak, function(browsers) { return prefix('box-decoration-break', { - browsers: browsers + browsers: browsers, + feature: 'css-boxdecorationbreak' }); }); feature(require('caniuse-db/features-json/object-fit.json'), function(browsers) { return prefix('object-fit', 'object-position', { - browsers: browsers + browsers: browsers, + feature: 'object-fit' }); }); feature(require('caniuse-db/features-json/css-shapes.json'), function(browsers) { return prefix('shape-margin', 'shape-outside', 'shape-image-threshold', { - browsers: browsers + browsers: browsers, + feature: 'css-shapes' }); }); feature(require('caniuse-db/features-json/text-overflow.json'), function(browsers) { return prefix('text-overflow', { - browsers: browsers + browsers: browsers, + feature: 'text-overflow' }); }); @@ -435,7 +483,8 @@ feature(devdaptation, function(browsers) { return prefix('@viewport', { - browsers: browsers + browsers: browsers, + feature: 'css-deviceadaptation' }); }); @@ -445,7 +494,8 @@ match: /( x($| )|a #3)/ }, function(browsers) { return prefix('@resolution', { - browsers: browsers + browsers: browsers, + feature: 'css-media-resolution' }); }); @@ -453,7 +503,8 @@ feature(textAlignLast, function(browsers) { return prefix('text-align-last', { - browsers: browsers + browsers: browsers, + feature: 'css-text-align-last' }); }); @@ -464,7 +515,8 @@ }, function(browsers) { return prefix('pixelated', { props: ['image-rendering'], - browsers: browsers + browsers: browsers, + feature: 'css-crisp-edges' }); }); @@ -472,7 +524,8 @@ match: /a x #2/ }, function(browsers) { return prefix('image-rendering', { - browsers: browsers + browsers: browsers, + feature: 'css-crisp-edges' }); }); @@ -480,7 +533,8 @@ feature(logicalProps, function(browsers) { return prefix('border-inline-start', 'border-inline-end', 'margin-inline-start', 'margin-inline-end', 'padding-inline-start', 'padding-inline-end', { - browsers: browsers + browsers: browsers, + feature: 'css-logical-props' }); }); @@ -488,32 +542,37 @@ match: /x\s#2/ }, function(browsers) { return prefix('border-block-start', 'border-block-end', 'margin-block-start', 'margin-block-end', 'padding-block-start', 'padding-block-end', { - browsers: browsers + browsers: browsers, + feature: 'css-logical-props' }); }); feature(require('caniuse-db/features-json/css-appearance.json'), function(browsers) { return prefix('appearance', { - browsers: browsers + browsers: browsers, + feature: 'css-appearance' }); }); feature(require('caniuse-db/features-json/css-snappoints.json'), function(browsers) { return prefix('scroll-snap-type', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scroll-snap-points-x', 'scroll-snap-points-y', { - browsers: browsers + browsers: browsers, + feature: 'css-snappoints' }); }); feature(require('caniuse-db/features-json/css-regions.json'), function(browsers) { return prefix('flow-into', 'flow-from', 'region-fragment', { - browsers: browsers + browsers: browsers, + feature: 'css-regions' }); }); feature(require('caniuse-db/features-json/css-image-set.json'), function(browsers) { return prefix('image-set', { props: ['background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image'], - browsers: browsers + browsers: browsers, + feature: 'css-image-set' }); }); @@ -523,14 +582,16 @@ match: /a|x/ }, function(browsers) { return prefix('writing-mode', { - browsers: browsers + browsers: browsers, + feature: 'css-writing-mode' }); }); feature(require('caniuse-db/features-json/css-cross-fade.json'), function(browsers) { return prefix('cross-fade', { props: ['background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image'], - browsers: browsers + browsers: browsers, + feature: 'css-cross-fade' }); }); @@ -539,13 +600,15 @@ feature(readOnly, function(browsers) { return prefix(':read-only', ':read-write', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'css-read-only-write' }); }); feature(require('caniuse-db/features-json/text-emphasis.json'), function(browsers) { return prefix('text-emphasis', 'text-emphasis-position', 'text-emphasis-style', 'text-emphasis-color', { - browsers: browsers + browsers: browsers, + feature: 'text-emphasis' }); }); @@ -554,10 +617,12 @@ feature(grid, function(browsers) { prefix('display-grid', 'inline-grid', { props: ['display'], - browsers: browsers + browsers: browsers, + feature: 'css-grid' }); return prefix('grid-template-columns', 'grid-template-rows', 'grid-row-start', 'grid-column-start', 'grid-row-end', 'grid-column-end', 'grid-row', 'grid-column', { - browsers: browsers + browsers: browsers, + feature: 'css-grid' }); }); @@ -565,7 +630,8 @@ match: /a x/ }, function(browsers) { return prefix('justify-items', 'grid-row-align', { - browsers: browsers + browsers: browsers, + feature: 'css-grid' }); }); @@ -573,14 +639,16 @@ feature(textSpacing, function(browsers) { return prefix('text-spacing', { - browsers: browsers + browsers: browsers, + feature: 'css-text-spacing' }); }); feature(require('caniuse-db/features-json/css-any-link.json'), function(browsers) { return prefix(':any-link', { selector: true, - browsers: browsers + browsers: browsers, + feature: 'css-any-link' }); }); diff --git a/node_modules/autoprefixer/lib/autoprefixer.js b/node_modules/autoprefixer/lib/autoprefixer.js index 3538ba2c..ac7e60e8 100644 --- a/node_modules/autoprefixer/lib/autoprefixer.js +++ b/node_modules/autoprefixer/lib/autoprefixer.js @@ -26,7 +26,7 @@ if (Object.keys(prefixes.add).length > 2) { return; } - return result.warn('Greetings, space traveller. ' + 'We are in the golden age of prefix-less CSS, ' + 'where Autoprefixer is no longer needed for your stylesheet.'); + return result.warn('Greetings, time traveller. ' + 'We are in the golden age of prefix-less CSS, ' + 'where Autoprefixer is no longer needed for your stylesheet.'); }; module.exports = postcss.plugin('autoprefixer', function() { @@ -60,7 +60,8 @@ plugin = function(css, result) { var prefixes, ref; prefixes = loadPrefixes({ - from: (ref = css.source) != null ? ref.input.file : void 0 + from: (ref = css.source) != null ? ref.input.file : void 0, + env: options.env }); timeCapsule(result, prefixes); if (options.remove !== false) { diff --git a/node_modules/autoprefixer/lib/browsers.js b/node_modules/autoprefixer/lib/browsers.js index c7b252f3..217f110d 100644 --- a/node_modules/autoprefixer/lib/browsers.js +++ b/node_modules/autoprefixer/lib/browsers.js @@ -40,10 +40,11 @@ } Browsers.prototype.parse = function(requirements) { - var ref; + var ref, ref1; return browserslist(requirements, { + stats: this.stats, path: (ref = this.options) != null ? ref.from : void 0, - stats: this.stats + env: (ref1 = this.options) != null ? ref1.env : void 0 }); }; diff --git a/node_modules/autoprefixer/lib/hacks/flex-direction.js b/node_modules/autoprefixer/lib/hacks/flex-direction.js index b0691c32..d5c0e544 100644 --- a/node_modules/autoprefixer/lib/hacks/flex-direction.js +++ b/node_modules/autoprefixer/lib/hacks/flex-direction.js @@ -23,7 +23,9 @@ FlexDirection.prototype.insert = function(decl, prefix, prefixes) { var already, cloned, dir, orient, ref, spec, value; ref = flexSpec(prefix), spec = ref[0], prefix = ref[1]; - if (spec === 2009) { + if (spec !== 2009) { + return FlexDirection.__super__.insert.apply(this, arguments); + } else { already = decl.parent.some(function(i) { return i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction'; }); @@ -47,8 +49,6 @@ cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } return decl.parent.insertBefore(decl, cloned); - } else { - return FlexDirection.__super__.insert.apply(this, arguments); } }; diff --git a/node_modules/autoprefixer/lib/hacks/flex-flow.js b/node_modules/autoprefixer/lib/hacks/flex-flow.js index a929cbe7..340f52e2 100644 --- a/node_modules/autoprefixer/lib/hacks/flex-flow.js +++ b/node_modules/autoprefixer/lib/hacks/flex-flow.js @@ -14,15 +14,43 @@ return FlexFlow.__super__.constructor.apply(this, arguments); } - FlexFlow.names = ['flex-flow']; + FlexFlow.names = ['flex-flow', 'box-direction', 'box-orient']; - FlexFlow.prototype.set = function(decl, prefix) { - var ref, spec; + FlexFlow.prototype.insert = function(decl, prefix, prefixes) { + var already, cloned, dir, orient, ref, spec, value, values; ref = flexSpec(prefix), spec = ref[0], prefix = ref[1]; - if (spec === 2012) { - return FlexFlow.__super__.set.apply(this, arguments); - } else if (spec === 'final') { - return FlexFlow.__super__.set.apply(this, arguments); + if (spec !== 2009) { + return FlexFlow.__super__.insert.apply(this, arguments); + } else { + values = decl.value.split(/\s+/).filter(function(i) { + return i !== 'wrap' && i !== 'nowrap' && 'wrap-reverse'; + }); + if (values.length === 0) { + return; + } + already = decl.parent.some(function(i) { + return i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction'; + }); + if (already) { + return; + } + value = values[0]; + orient = value.indexOf('row') !== -1 ? 'horizontal' : 'vertical'; + dir = value.indexOf('reverse') !== -1 ? 'reverse' : 'normal'; + cloned = this.clone(decl); + cloned.prop = prefix + 'box-orient'; + cloned.value = orient; + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix); + } + decl.parent.insertBefore(decl, cloned); + cloned = this.clone(decl); + cloned.prop = prefix + 'box-direction'; + cloned.value = dir; + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix); + } + return decl.parent.insertBefore(decl, cloned); } }; diff --git a/node_modules/autoprefixer/lib/prefixes.js b/node_modules/autoprefixer/lib/prefixes.js index 266ecb65..07d28e8d 100644 --- a/node_modules/autoprefixer/lib/prefixes.js +++ b/node_modules/autoprefixer/lib/prefixes.js @@ -328,7 +328,12 @@ }; Prefixes.prototype.unprefixed = function(prop) { - return this.normalize(vendor.unprefixed(prop)); + var value; + value = this.normalize(vendor.unprefixed(prop)); + if (value === 'flex-direction') { + value = 'flex-flow'; + } + return value; }; Prefixes.prototype.normalize = function(prop) { diff --git a/node_modules/autoprefixer/lib/processor.js b/node_modules/autoprefixer/lib/processor.js index 3586c2a5..d2397b05 100644 --- a/node_modules/autoprefixer/lib/processor.js +++ b/node_modules/autoprefixer/lib/processor.js @@ -184,6 +184,9 @@ notHack = _this.prefixes.group(decl).down(function(other) { return _this.prefixes.normalize(other.prop) === unprefixed; }); + if (unprefixed === 'flex-flow') { + notHack = true; + } if (notHack && !_this.withHackValue(decl)) { if (decl.raw('before').indexOf("\n") > -1) { _this.reduceSpaces(decl); diff --git a/node_modules/autoprefixer/lib/supports.js b/node_modules/autoprefixer/lib/supports.js index acaa6eb1..29b1a995 100644 --- a/node_modules/autoprefixer/lib/supports.js +++ b/node_modules/autoprefixer/lib/supports.js @@ -68,10 +68,12 @@ }; Supports.prototype.prefixed = function(str) { - var decl, j, k, len, len1, prefixer, prop, ref1, ref2, rule, value; + var decl, j, k, len, len1, prefixer, ref1, ref2, rule, value; rule = this.virtual(str); - prop = rule.first.prop; - prefixer = this.prefixer().add[prop]; + if (this.disabled(rule.first)) { + return rule.nodes; + } + prefixer = this.prefixer().add[rule.first.prop]; if (prefixer != null) { if (typeof prefixer.process === "function") { prefixer.process(rule.first); @@ -80,7 +82,7 @@ ref1 = rule.nodes; for (j = 0, len = ref1.length; j < len; j++) { decl = ref1[j]; - ref2 = this.prefixer().values('add', prop); + ref2 = this.prefixer().values('add', rule.first.prop); for (k = 0, len1 = ref2.length; k < len1; k++) { value = ref2[k]; value.process(decl); @@ -222,6 +224,28 @@ return rule.params = brackets.stringify(ast); }; + Supports.prototype.disabled = function(node) { + var other; + if (this.all.options.grid === false) { + if (node.prop === 'display' && node.value.indexOf('grid') !== -1) { + return true; + } + if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items') { + return true; + } + } + if (this.all.options.flexbox === false) { + if (node.prop === 'display' && node.value.indexOf('flex') !== -1) { + return true; + } + other = ['order', 'justify-content', 'align-items', 'align-content']; + if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1) { + return true; + } + } + return false; + }; + return Supports; })(); diff --git a/node_modules/autoprefixer/package.json b/node_modules/autoprefixer/package.json index 7f5d3549..bddd01e9 100644 --- a/node_modules/autoprefixer/package.json +++ b/node_modules/autoprefixer/package.json @@ -1,43 +1,43 @@ { "_args": [ [ - "autoprefixer@^6.5.2", - "D:\\wechat-devtools\\src" + "autoprefixer@6.7.2", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src" ] ], - "_cnpm_publish_time": 1481580339996, - "_from": "autoprefixer@>=6.5.2 <7.0.0", - "_id": "autoprefixer@6.5.4", + "_cnpm_publish_time": 1485879383449, + "_from": "autoprefixer@6.7.2", + "_id": "autoprefixer@6.7.2", "_inCache": true, "_installable": true, "_location": "/autoprefixer", - "_nodeVersion": "7.2.1", + "_nodeVersion": "7.4.0", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/autoprefixer-6.5.4.tgz_1481580339258_0.5241364154499024" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/autoprefixer-6.7.2.tgz_1485879383195_0.13213223172351718" }, "_npmUser": { "email": "andrey@sitnik.ru", "name": "ai" }, - "_npmVersion": "3.10.10", + "_npmVersion": "4.0.5", "_phantomChildren": {}, "_requested": { "name": "autoprefixer", - "raw": "autoprefixer@^6.5.2", - "rawSpec": "^6.5.2", + "raw": "autoprefixer@6.7.2", + "rawSpec": "6.7.2", "scope": null, - "spec": ">=6.5.2 <7.0.0", - "type": "range" + "spec": "6.7.2", + "type": "version" }, "_requiredBy": [ "/" ], - "_resolved": "http://r.tnpm.oa.com/autoprefixer/download/autoprefixer-6.5.4.tgz", - "_shasum": "1386eb6708ccff36aefff70adc694ecfd60af1b0", + "_resolved": "http://r.tnpm.oa.com/autoprefixer/download/autoprefixer-6.7.2.tgz", + "_shasum": "172ab07b998ae9b957530928a59a40be54a45023", "_shrinkwrap": null, - "_spec": "autoprefixer@^6.5.2", - "_where": "D:\\wechat-devtools\\src", + "_spec": "autoprefixer@6.7.2", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src", "author": { "email": "andrey@sitnik.ru", "name": "Andrey Sitnik" @@ -494,19 +494,19 @@ } ], "dependencies": { - "browserslist": "~1.4.0", - "caniuse-db": "^1.0.30000597", + "browserslist": "^1.7.1", + "caniuse-db": "^1.0.30000618", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^5.2.6", + "postcss": "^5.2.11", "postcss-value-parser": "^3.2.3" }, "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website", "devDependencies": { - "browserify": "^13.1.1", - "coffee-script": "1.12.1", + "browserify": "^14.0.0", + "coffee-script": "^1.12.3", "eslint-config-postcss": "^2.0.2", - "fs-extra": "^1.0.0", + "fs-extra": "^2.0.0", "gulp": "^3.9.1", "gulp-coffee": "^2.3.3", "gulp-eslint": "^3.0.1", @@ -514,16 +514,16 @@ "gulp-mocha": "^3.0.1", "gulp-replace": "^0.5.4", "mocha": "^3.2.0", - "should": "^11.1.2", + "should": "^11.2.0", "vinyl-source-stream": "^1.1.0" }, "directories": {}, "dist": { - "key": "/autoprefixer/-/autoprefixer-6.5.4.tgz", + "key": "/autoprefixer/-/autoprefixer-6.7.2.tgz", "noattachment": false, - "shasum": "1386eb6708ccff36aefff70adc694ecfd60af1b0", - "size": 43373, - "tarball": "http://r.tnpm.oa.com/autoprefixer/download/autoprefixer-6.5.4.tgz" + "shasum": "172ab07b998ae9b957530928a59a40be54a45023", + "size": 44165, + "tarball": "http://r.tnpm.oa.com/autoprefixer/download/autoprefixer-6.7.2.tgz" }, "eslintConfig": { "extends": "eslint-config-postcss/es5" @@ -554,7 +554,7 @@ ], "name": "autoprefixer", "optionalDependencies": {}, - "publish_time": 1481580339996, + "publish_time": 1485879383449, "readme": "ERROR: No README data found!", "repository": { "type": "git", @@ -563,5 +563,5 @@ "scripts": { "test": "gulp" }, - "version": "6.5.4" + "version": "6.7.2" } diff --git a/node_modules/aws-sign2/index.js b/node_modules/aws-sign2/index.js index 576e49dd..ac720930 100644 --- a/node_modules/aws-sign2/index.js +++ b/node_modules/aws-sign2/index.js @@ -1,8 +1,18 @@ /*! - * knox - auth - * Copyright(c) 2010 LearnBoost - * MIT Licensed + * Copyright 2010 LearnBoost + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** diff --git a/node_modules/aws-sign2/package.json b/node_modules/aws-sign2/package.json index 391236e6..99d79456 100644 --- a/node_modules/aws-sign2/package.json +++ b/node_modules/aws-sign2/package.json @@ -1,38 +1,39 @@ { "_args": [ [ - "aws-sign2@~0.5.0", - "D:\\wechat-devtools\\src\\node_modules\\mksnapshot\\node_modules\\request" + "aws-sign2@~0.6.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/request" ] ], - "_cnpm_publish_time": 1386185636519, - "_from": "aws-sign2@>=0.5.0 <0.6.0", - "_id": "aws-sign2@0.5.0", + "_cnpm_publish_time": 1444584244379, + "_from": "aws-sign2@>=0.6.0 <0.7.0", + "_id": "aws-sign2@0.6.0", "_inCache": true, "_installable": true, "_location": "/aws-sign2", + "_nodeVersion": "4.1.2", "_npmUser": { "email": "mikeal.rogers@gmail.com", "name": "mikeal" }, - "_npmVersion": "1.3.2", + "_npmVersion": "2.14.4", "_phantomChildren": {}, "_requested": { "name": "aws-sign2", - "raw": "aws-sign2@~0.5.0", - "rawSpec": "~0.5.0", + "raw": "aws-sign2@~0.6.0", + "rawSpec": "~0.6.0", "scope": null, - "spec": ">=0.5.0 <0.6.0", + "spec": ">=0.6.0 <0.7.0", "type": "range" }, "_requiredBy": [ - "/mksnapshot/request" + "/request" ], - "_resolved": "http://r.tnpm.oa.com/aws-sign2/download/aws-sign2-0.5.0.tgz", - "_shasum": "c57103f7a17fc037f02d7c2e64b602ea223f7d63", + "_resolved": "http://r.tnpm.oa.com/aws-sign2/download/aws-sign2-0.6.0.tgz", + "_shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f", "_shrinkwrap": null, - "_spec": "aws-sign2@~0.5.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\mksnapshot\\node_modules\\request", + "_spec": "aws-sign2@~0.6.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/request", "author": { "email": "mikeal.rogers@gmail.com", "name": "Mikeal Rogers", @@ -46,16 +47,18 @@ "devDependencies": {}, "directories": {}, "dist": { - "key": "/aws-sign2/-/aws-sign2-0.5.0.tgz", + "key": "/aws-sign2/-/aws-sign2-0.6.0.tgz", "noattachment": false, - "shasum": "c57103f7a17fc037f02d7c2e64b602ea223f7d63", - "size": 5049, - "tarball": "http://r.tnpm.oa.com/aws-sign2/download/aws-sign2-0.5.0.tgz" + "shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f", + "size": 5175, + "tarball": "http://r.tnpm.oa.com/aws-sign2/download/aws-sign2-0.6.0.tgz" }, "engines": { "node": "*" }, + "gitHead": "8554bdb41268fa295eb1ee300f4adaa9f7f07fec", "homepage": "https://github.com/mikeal/aws-sign#readme", + "license": "Apache-2.0", "main": "index.js", "maintainers": [ { @@ -65,11 +68,11 @@ ], "name": "aws-sign2", "optionalDependencies": {}, - "publish_time": 1386185636519, + "publish_time": 1444584244379, "readme": "ERROR: No README data found!", - "readmeFilename": "README.md", "repository": { "url": "git+https://github.com/mikeal/aws-sign.git" }, - "version": "0.5.0" + "scripts": {}, + "version": "0.6.0" } diff --git a/node_modules/aws4/aws4.js b/node_modules/aws4/aws4.js index a5431806..0cff0f0e 100644 --- a/node_modules/aws4/aws4.js +++ b/node_modules/aws4/aws4.js @@ -118,14 +118,14 @@ RequestSigner.prototype.prepareRequest = function() { if (request.body && !headers['Content-Length'] && !headers['content-length']) headers['Content-Length'] = Buffer.byteLength(request.body) - if (this.credentials.sessionToken) + if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token']) headers['X-Amz-Security-Token'] = this.credentials.sessionToken - if (this.service === 's3') + if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256']) headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex') - if (headers['X-Amz-Date']) - this.datetime = headers['X-Amz-Date'] + if (headers['X-Amz-Date'] || headers['x-amz-date']) + this.datetime = headers['X-Amz-Date'] || headers['x-amz-date'] else headers['X-Amz-Date'] = this.getDateTime() } @@ -202,13 +202,22 @@ RequestSigner.prototype.canonicalString = function() { var pathStr = this.parsedPath.path, query = this.parsedPath.query, + headers = this.request.headers, queryStr = '', normalizePath = this.service !== 's3', decodePath = this.service === 's3' || this.request.doNotEncodePath, decodeSlashesInPath = this.service === 's3', firstValOnly = this.service === 's3', - bodyHash = this.service === 's3' && this.request.signQuery ? 'UNSIGNED-PAYLOAD' : - (this.isCodeCommitGit ? '' : hash(this.request.body || '', 'hex')) + bodyHash + + if (this.service === 's3' && this.request.signQuery) { + bodyHash = 'UNSIGNED-PAYLOAD' + } else if (this.isCodeCommitGit) { + bodyHash = '' + } else { + bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] || + hash(this.request.body || '', 'hex') + } if (query) { queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj, key) { diff --git a/node_modules/aws4/package.json b/node_modules/aws4/package.json index 75c3b18c..36696cc5 100644 --- a/node_modules/aws4/package.json +++ b/node_modules/aws4/package.json @@ -2,25 +2,25 @@ "_args": [ [ "aws4@^1.2.1", - "D:\\wechat-devtools\\src\\node_modules\\request" + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/request" ] ], - "_cnpm_publish_time": 1476226260450, + "_cnpm_publish_time": 1486481934676, "_from": "aws4@>=1.2.1 <2.0.0", - "_id": "aws4@1.5.0", + "_id": "aws4@1.6.0", "_inCache": true, "_installable": true, "_location": "/aws4", "_nodeVersion": "4.5.0", "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/aws4-1.5.0.tgz_1476226259635_0.2796843808609992" + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/aws4-1.6.0.tgz_1486481933920_0.6127187723759562" }, "_npmUser": { "email": "michael.hart.au@gmail.com", "name": "hichaelmart" }, - "_npmVersion": "2.15.11", + "_npmVersion": "4.0.5", "_phantomChildren": {}, "_requested": { "name": "aws4", @@ -33,11 +33,11 @@ "_requiredBy": [ "/request" ], - "_resolved": "http://r.tnpm.oa.com/aws4/download/aws4-1.5.0.tgz", - "_shasum": "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755", + "_resolved": "http://r.tnpm.oa.com/aws4/download/aws4-1.6.0.tgz", + "_shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e", "_shrinkwrap": null, "_spec": "aws4@^1.2.1", - "_where": "D:\\wechat-devtools\\src\\node_modules\\request", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/request", "author": { "email": "michael.hart.au@gmail.com", "name": "Michael Hart", @@ -54,13 +54,13 @@ }, "directories": {}, "dist": { - "key": "/aws4/-/aws4-1.5.0.tgz", + "key": "/aws4/-/aws4-1.6.0.tgz", "noattachment": false, - "shasum": "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755", - "size": 9524, - "tarball": "http://r.tnpm.oa.com/aws4/download/aws4-1.5.0.tgz" + "shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e", + "size": 9584, + "tarball": "http://r.tnpm.oa.com/aws4/download/aws4-1.6.0.tgz" }, - "gitHead": "ba136334ee08884c6042c8578a22e376233eef34", + "gitHead": "74bf0b64d1e8cbcd184964999c7ef53f52d7ad32", "homepage": "https://github.com/mhart/aws4#readme", "keywords": [ "amazon", @@ -124,7 +124,7 @@ ], "name": "aws4", "optionalDependencies": {}, - "publish_time": 1476226260450, + "publish_time": 1486481934676, "readme": "ERROR: No README data found!", "repository": { "type": "git", @@ -133,5 +133,5 @@ "scripts": { "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list" }, - "version": "1.5.0" + "version": "1.6.0" } diff --git a/node_modules/babel-code-frame/lib/index.js b/node_modules/babel-code-frame/lib/index.js index 486f53a6..ff49b908 100644 --- a/node_modules/babel-code-frame/lib/index.js +++ b/node_modules/babel-code-frame/lib/index.js @@ -97,7 +97,7 @@ function getTokenType(match) { offset = _match$slice[0], text = _match$slice[1]; - var token = _jsTokens2.default.matchToToken(match); + var token = (0, _jsTokens.matchToToken)(match); if (token.type === "name") { if (_esutils2.default.keyword.isReservedWordES6(token.value)) { diff --git a/node_modules/babel-code-frame/package.json b/node_modules/babel-code-frame/package.json index 1844e739..30b1969b 100644 --- a/node_modules/babel-code-frame/package.json +++ b/node_modules/babel-code-frame/package.json @@ -1,44 +1,45 @@ { "_args": [ [ - "babel-code-frame@^6.20.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-core" + "babel-code-frame@6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src" ] ], - "_cnpm_publish_time": 1481239542068, - "_from": "babel-code-frame@>=6.20.0 <7.0.0", - "_id": "babel-code-frame@6.20.0", + "_cnpm_publish_time": 1484872406514, + "_from": "babel-code-frame@6.22.0", + "_id": "babel-code-frame@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-code-frame", "_nodeVersion": "6.9.0", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-code-frame-6.20.0.tgz_1481239541478_0.12437463807873428" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-code-frame-6.22.0.tgz_1484872404755_0.3806710622739047" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.10.8", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-code-frame", - "raw": "babel-code-frame@^6.20.0", - "rawSpec": "^6.20.0", + "raw": "babel-code-frame@6.22.0", + "rawSpec": "6.22.0", "scope": null, - "spec": ">=6.20.0 <7.0.0", - "type": "range" + "spec": "6.22.0", + "type": "version" }, "_requiredBy": [ + "/", "/babel-core", "/babel-traverse" ], - "_resolved": "http://r.tnpm.oa.com/babel-code-frame/download/babel-code-frame-6.20.0.tgz", - "_shasum": "b968f839090f9a8bc6d41938fb96cb84f7387b26", + "_resolved": "http://r.tnpm.oa.com/babel-code-frame/download/babel-code-frame-6.22.0.tgz", + "_shasum": "027620bee567a88c32561574e7fd0801d33118e4", "_shrinkwrap": null, - "_spec": "babel-code-frame@^6.20.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-core", + "_spec": "babel-code-frame@6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src", "author": { "email": "sebmck@gmail.com", "name": "Sebastian McKenzie" @@ -46,17 +47,17 @@ "dependencies": { "chalk": "^1.1.0", "esutils": "^2.0.2", - "js-tokens": "^2.0.0" + "js-tokens": "^3.0.0" }, "description": "Generate errors that contain a code frame that point to source locations.", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-code-frame/-/babel-code-frame-6.20.0.tgz", + "key": "/babel-code-frame/-/babel-code-frame-6.22.0.tgz", "noattachment": false, - "shasum": "b968f839090f9a8bc6d41938fb96cb84f7387b26", - "size": 2285, - "tarball": "http://r.tnpm.oa.com/babel-code-frame/download/babel-code-frame-6.20.0.tgz" + "shasum": "027620bee567a88c32561574e7fd0801d33118e4", + "size": 2297, + "tarball": "http://r.tnpm.oa.com/babel-code-frame/download/babel-code-frame-6.22.0.tgz" }, "homepage": "https://babeljs.io/", "license": "MIT", @@ -89,12 +90,12 @@ ], "name": "babel-code-frame", "optionalDependencies": {}, - "publish_time": 1481239542068, + "publish_time": 1484872406514, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame" }, "scripts": {}, - "version": "6.20.0" + "version": "6.22.0" } diff --git a/node_modules/babel-core/README.md b/node_modules/babel-core/README.md index 3db09945..5b2f4d53 100644 --- a/node_modules/babel-core/README.md +++ b/node_modules/babel-core/README.md @@ -9,7 +9,9 @@ import { transform } from 'babel-core'; import * as babel from 'babel-core'; ``` -## babel.transform(code: string, [options?](/docs/usage/api/#options): Object) +All transformations will use your local configuration files (.babelrc or in package.json). See [options](#options) to disable it. + +## babel.transform(code: string, [options?](#options): Object) Transforms the passed in `code`. Returning an object with the generated code, source map, and AST. @@ -27,7 +29,7 @@ result.map; result.ast; ``` -## babel.transformFile(filename: string, [options?](/docs/usage/api/#options): Object, callback: Function) +## babel.transformFile(filename: string, [options?](#options): Object, callback: Function) Asynchronously transforms the entire contents of a file. @@ -43,7 +45,7 @@ babel.transformFile("filename.js", options, function (err, result) { }); ``` -## babel.transformFileSync(filename: string, [options?](/docs/usage/api/#options): Object) +## babel.transformFileSync(filename: string, [options?](#options): Object) Synchronous version of `babel.transformFile`. Returns the transformed contents of the `filename`. @@ -58,7 +60,7 @@ babel.transformFileSync(filename, options) // => { code, map, ast } babel.transformFileSync("filename.js", options).code; ``` -## babel.transformFromAst(ast: Object, code?: string, [options?](/docs/usage/api/#options): Object) +## babel.transformFromAst(ast: Object, code?: string, [options?](#options): Object) Given, an [AST](https://astexplorer.net/), transform it. @@ -84,34 +86,36 @@ Following is a table of the options you can use: | Option | Default | Description | | ------------------------ | -------------------- | ------------------------------- | +| `ast` | `true` | Include the AST in the returned object | +| `auxiliaryCommentAfter` | `null` | Attach a comment after all non-user injected code. | +| `auxiliaryCommentBefore` | `null` | Attach a comment before all non-user injected code. | +| `babelrc` | `true` | Specify whether or not to use .babelrc and .babelignore files. Not available when using the CLI, [use `--no-babelrc` instead](https://babeljs.io/docs/usage/cli/#babel-ignoring-babelrc). | +| `code` | `true` | Enable code generation | +| `comments` | `true` | Output comments in generated output. | +| `compact` | `"auto"` | Do not include superfluous whitespace characters and line terminators. When set to `"auto"` compact is set to `true` on input sizes of >500KB. | +| `env` | `{}` | This is an object of keys that represent different environments. For example, you may have: `{ env: { production: { /* specific options */ } } }` which will use those options when the environment variable `BABEL_ENV` is set to `"production"`. If `BABEL_ENV` isn't set then `NODE_ENV` will be used, if it's not set then it defaults to `"development"` | +| `extends` | `null` | A path to an `.babelrc` file to extend | | `filename` | `"unknown"` | Filename for use in errors etc. | | `filenameRelative` | `(filename)` | Filename relative to `sourceRoot`. | -| `presets` | `[]` | List of [presets](/docs/plugins/#presets) (a set of plugins) to load and use. | -| `plugins` | `[]` | List of [plugins](/docs/plugins/) to load and use. | -| `parserOpts` | `{}` | An object containing the options to be passed down to the babel parser, babylon | | `generatorOpts` | `{}` | An object containing the options to be passed down to the babel code generator, babel-generator | +| `getModuleId` | `null` | Specify a custom callback to generate a module id with. Called as `getModuleId(moduleName)`. If falsy value is returned then the generated module id is used. | | `highlightCode` | `true` | ANSI highlight syntax error code frames | -| `only` | `null` | A [glob](https://github.com/isaacs/minimatch), regex, or mixed array of both, matching paths to **only** compile. Can also be an array of arrays containing paths to explicitly match. When attempting to compile a non-matching file it's returned verbatim. | | `ignore` | `null` | Opposite to the `only` option. `ignore` is disregarded if `only` is specified. | -| `auxiliaryCommentBefore` | `null` | Attach a comment before all non-user injected code. | -| `auxiliaryCommentAfter` | `null` | Attach a comment after all non-user injected code. | -| `sourceMaps` | `false` | If truthy, adds a `map` property to returned output. If set to `"inline"`, a comment with a sourceMappingURL directive is added to the bottom of the returned code. If set to `"both"` then a `map` property is returned as well as a source map comment appended. **This does not emit sourcemap files by itself!** To have sourcemaps emitted using the CLI, you must pass it the `--source-maps` option. | | `inputSourceMap` | `null` | A source map object that the output source map will be based on. | -| `sourceMapTarget` | `(filenameRelative)` | Set `file` on returned source map. | -| `sourceFileName` | `(filenameRelative)` | Set `sources[0]` on returned source map. | -| `sourceRoot` | `(moduleRoot)` | The root from which all sources are relative. | -| `moduleRoot` | `(sourceRoot)` | Optional prefix for the AMD module formatter that will be prepend to the filename on module definitions. | -| `moduleIds` | `false` | If truthy, insert an explicit id for modules. By default, all modules are anonymous. (Not available for `common` modules) | -| `moduleId` | `null` | Specify a custom name for module ids. | -| `getModuleId` | `null` | Specify a custom callback to generate a module id with. Called as `getModuleId(moduleName)`. If falsy value is returned then the generated module id is used. | -| `resolveModuleSource` | `null` | Resolve a module source ie. `import "SOURCE";` to a custom value. Called as `resolveModuleSource(source, filename)`. | -| `code` | `true` | Enable code generation | -| `no-babelrc` | [CLI flag](http://babeljs.io/docs/usage/cli/#ignoring-babelrc) | Specify whether or not to use .babelrc and .babelignore files. Only available when using the CLI. | -| `ast` | `true` | Include the AST in the returned object | -| `compact` | `"auto"` | Do not include superfluous whitespace characters and line terminators. When set to `"auto"` compact is set to `true` on input sizes of >500KB. | | `minified` | `false` | Should the output be minified (not printing last semicolons in blocks, printing literal string values instead of escaped ones, stripping `()` from `new` when safe) | -| `comments` | `true` | Output comments in generated output. | -| `shouldPrintComment` | `null` | An optional callback that controls whether a comment should be output or not. Called as `shouldPrintComment(commentContents)`. **NOTE:** This overrides the `comment` option when used. | -| `env` | `{}` | This is an object of keys that represent different environments. For example, you may have: `{ env: { production: { /* specific options */ } } }` which will use those options when the enviroment variable `BABEL_ENV` is set to `"production"`. If `BABEL_ENV` isn't set then `NODE_ENV` will be used, if it's not set then it defaults to `"development"` | +| `moduleId` | `null` | Specify a custom name for module ids. | +| `moduleIds` | `false` | If truthy, insert an explicit id for modules. By default, all modules are anonymous. (Not available for `common` modules) | +| `moduleRoot` | `(sourceRoot)` | Optional prefix for the AMD module formatter that will be prepend to the filename on module definitions. | +| `only` | `null` | A [glob](https://github.com/isaacs/minimatch), regex, or mixed array of both, matching paths to **only** compile. Can also be an array of arrays containing paths to explicitly match. When attempting to compile a non-matching file it's returned verbatim. | +| `parserOpts` | `{}` | An object containing the options to be passed down to the babel parser, babylon | +| `plugins` | `[]` | List of [plugins](/docs/plugins/) to load and use. | +| `presets` | `[]` | List of [presets](/docs/plugins/#presets) (a set of plugins) to load and use. | | `retainLines` | `false` | Retain line numbers. This will lead to wacky code but is handy for scenarios where you can't use source maps. (**NOTE:** This will not retain the columns) | -| `extends` | `null` | A path to an `.babelrc` file to extend | +| `resolveModuleSource` | `null` | Resolve a module source ie. `import "SOURCE";` to a custom value. Called as `resolveModuleSource(source, filename)`. | +| `shouldPrintComment` | `null` | An optional callback that controls whether a comment should be output or not. Called as `shouldPrintComment(commentContents)`. **NOTE:** This overrides the `comment` option when used. | +| `sourceFileName` | `(filenameRelative)` | Set `sources[0]` on returned source map. | +| `sourceMaps` | `false` | If truthy, adds a `map` property to returned output. If set to `"inline"`, a comment with a sourceMappingURL directive is added to the bottom of the returned code. If set to `"both"` then a `map` property is returned as well as a source map comment appended. **This does not emit sourcemap files by itself!** To have sourcemaps emitted using the CLI, you must pass it the `--source-maps` option. | +| `sourceMapTarget` | `(filenameRelative)` | Set `file` on returned source map. | +| `sourceRoot` | `(moduleRoot)` | The root from which all sources are relative. | +| `sourceType` | `"module"` | Indicate the mode the code should be parsed in. Can be either "script" or "module". | +| `wrapPluginVisitorMethod`| `null` | An optional callback that can be used to wrap visitor methods. **NOTE:** This is useful for things like introspection, and not really needed for implementing anything. Called as `wrapPluginVisitorMethod(pluginAlias, visitorType, callback)`. diff --git a/node_modules/babel-core/lib/api/node.js b/node_modules/babel-core/lib/api/node.js index 4978cad5..b1ab7216 100644 --- a/node_modules/babel-core/lib/api/node.js +++ b/node_modules/babel-core/lib/api/node.js @@ -1,7 +1,7 @@ "use strict"; exports.__esModule = true; -exports.transformFromAst = exports.transform = exports.analyse = exports.Pipeline = exports.OptionManager = exports.traverse = exports.types = exports.messages = exports.util = exports.version = exports.template = exports.buildExternalHelpers = exports.options = exports.File = undefined; +exports.transformFromAst = exports.transform = exports.analyse = exports.Pipeline = exports.OptionManager = exports.traverse = exports.types = exports.messages = exports.util = exports.version = exports.resolvePreset = exports.resolvePlugin = exports.template = exports.buildExternalHelpers = exports.options = exports.File = undefined; var _file = require("../transformation/file"); @@ -39,6 +39,24 @@ Object.defineProperty(exports, "template", { } }); +var _resolvePlugin = require("../helpers/resolve-plugin"); + +Object.defineProperty(exports, "resolvePlugin", { + enumerable: true, + get: function get() { + return _interopRequireDefault(_resolvePlugin).default; + } +}); + +var _resolvePreset = require("../helpers/resolve-preset"); + +Object.defineProperty(exports, "resolvePreset", { + enumerable: true, + get: function get() { + return _interopRequireDefault(_resolvePreset).default; + } +}); + var _package = require("../../package"); Object.defineProperty(exports, "version", { @@ -51,10 +69,6 @@ exports.Plugin = Plugin; exports.transformFile = transformFile; exports.transformFileSync = transformFileSync; -var _isFunction = require("lodash/isFunction"); - -var _isFunction2 = _interopRequireDefault(_isFunction); - var _fs = require("fs"); var _fs2 = _interopRequireDefault(_fs); @@ -105,7 +119,7 @@ var transform = exports.transform = pipeline.transform.bind(pipeline); var transformFromAst = exports.transformFromAst = pipeline.transformFromAst.bind(pipeline); function transformFile(filename, opts, callback) { - if ((0, _isFunction2.default)(opts)) { + if (typeof opts === "function") { callback = opts; opts = {}; } diff --git a/node_modules/babel-core/lib/helpers/get-possible-plugin-names.js b/node_modules/babel-core/lib/helpers/get-possible-plugin-names.js new file mode 100644 index 00000000..4c018353 --- /dev/null +++ b/node_modules/babel-core/lib/helpers/get-possible-plugin-names.js @@ -0,0 +1,8 @@ +"use strict"; + +exports.__esModule = true; +exports.default = getPossiblePluginNames; +function getPossiblePluginNames(pluginName) { + return ["babel-plugin-" + pluginName, pluginName]; +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-core/lib/helpers/get-possible-preset-names.js b/node_modules/babel-core/lib/helpers/get-possible-preset-names.js new file mode 100644 index 00000000..00fe1d4e --- /dev/null +++ b/node_modules/babel-core/lib/helpers/get-possible-preset-names.js @@ -0,0 +1,18 @@ +"use strict"; + +exports.__esModule = true; +exports.default = getPossiblePresetNames; +function getPossiblePresetNames(presetName) { + var possibleNames = ["babel-preset-" + presetName, presetName]; + + var matches = presetName.match(/^(@[^/]+)\/(.+)$/); + if (matches) { + var orgName = matches[1], + presetPath = matches[2]; + + possibleNames.push(orgName + "/babel-preset-" + presetPath); + } + + return possibleNames; +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-core/lib/helpers/resolve-from-possible-names.js b/node_modules/babel-core/lib/helpers/resolve-from-possible-names.js new file mode 100644 index 00000000..926ddaf4 --- /dev/null +++ b/node_modules/babel-core/lib/helpers/resolve-from-possible-names.js @@ -0,0 +1,17 @@ +"use strict"; + +exports.__esModule = true; +exports.default = resolveFromPossibleNames; + +var _resolve = require("./resolve"); + +var _resolve2 = _interopRequireDefault(_resolve); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function resolveFromPossibleNames(possibleNames, dirname) { + return possibleNames.reduce(function (accum, curr) { + return accum || (0, _resolve2.default)(curr, dirname); + }, null); +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-core/lib/helpers/resolve-plugin.js b/node_modules/babel-core/lib/helpers/resolve-plugin.js new file mode 100644 index 00000000..0c0a30cd --- /dev/null +++ b/node_modules/babel-core/lib/helpers/resolve-plugin.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports.default = resolvePlugin; + +var _resolveFromPossibleNames = require("./resolve-from-possible-names"); + +var _resolveFromPossibleNames2 = _interopRequireDefault(_resolveFromPossibleNames); + +var _getPossiblePluginNames = require("./get-possible-plugin-names"); + +var _getPossiblePluginNames2 = _interopRequireDefault(_getPossiblePluginNames); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function resolvePlugin(pluginName) { + var dirname = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : process.cwd(); + + return (0, _resolveFromPossibleNames2.default)((0, _getPossiblePluginNames2.default)(pluginName), dirname); +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-core/lib/helpers/resolve-preset.js b/node_modules/babel-core/lib/helpers/resolve-preset.js new file mode 100644 index 00000000..0a5449e8 --- /dev/null +++ b/node_modules/babel-core/lib/helpers/resolve-preset.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports.default = resolvePreset; + +var _resolveFromPossibleNames = require("./resolve-from-possible-names"); + +var _resolveFromPossibleNames2 = _interopRequireDefault(_resolveFromPossibleNames); + +var _getPossiblePresetNames = require("./get-possible-preset-names"); + +var _getPossiblePresetNames2 = _interopRequireDefault(_getPossiblePresetNames); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function resolvePreset(presetName) { + var dirname = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : process.cwd(); + + return (0, _resolveFromPossibleNames2.default)((0, _getPossiblePresetNames2.default)(presetName), dirname); +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-core/lib/tools/build-external-helpers.js b/node_modules/babel-core/lib/tools/build-external-helpers.js index 11d6b2a6..c397b273 100644 --- a/node_modules/babel-core/lib/tools/build-external-helpers.js +++ b/node_modules/babel-core/lib/tools/build-external-helpers.js @@ -44,10 +44,6 @@ var _babelTemplate = require("babel-template"); var _babelTemplate2 = _interopRequireDefault(_babelTemplate); -var _each = require("lodash/each"); - -var _each2 = _interopRequireDefault(_each); - var _babelTypes = require("babel-types"); var t = _interopRequireWildcard(_babelTypes); @@ -95,7 +91,7 @@ function buildVar(namespace, builder) { } function buildHelpers(body, namespace, whitelist) { - (0, _each2.default)(helpers.list, function (name) { + helpers.list.forEach(function (name) { if (whitelist && whitelist.indexOf(name) < 0) return; var key = t.identifier(name); diff --git a/node_modules/babel-core/lib/transformation/file/index.js b/node_modules/babel-core/lib/transformation/file/index.js index 4398a71c..8789d598 100644 --- a/node_modules/babel-core/lib/transformation/file/index.js +++ b/node_modules/babel-core/lib/transformation/file/index.js @@ -509,7 +509,7 @@ var File = function (_Store) { if (parser) { parseCode = require(parser).parse; } else { - throw new Error("Couldn't find parser " + parserOpts.parser + " with \"parse\" method relative to directory " + dirname); + throw new Error("Couldn't find parser " + parserOpts.parser + " with \"parse\" method " + ("relative to directory " + dirname)); } } else { parseCode = parserOpts.parser; @@ -708,7 +708,7 @@ var File = function (_Store) { if (generator) { gen = require(generator).print; } else { - throw new Error("Couldn't find generator " + gen + " with \"print\" method relative to directory " + dirname); + throw new Error("Couldn't find generator " + gen + " with \"print\" method relative " + ("to directory " + dirname)); } } } diff --git a/node_modules/babel-core/lib/transformation/file/options/option-manager.js b/node_modules/babel-core/lib/transformation/file/options/option-manager.js index aeb69d8d..e89e8ff6 100644 --- a/node_modules/babel-core/lib/transformation/file/options/option-manager.js +++ b/node_modules/babel-core/lib/transformation/file/options/option-manager.js @@ -40,9 +40,13 @@ var messages = _interopRequireWildcard(_babelMessages); var _index = require("./index"); -var _resolve = require("../../../helpers/resolve"); +var _resolvePlugin = require("../../../helpers/resolve-plugin"); -var _resolve2 = _interopRequireDefault(_resolve); +var _resolvePlugin2 = _interopRequireDefault(_resolvePlugin); + +var _resolvePreset = require("../../../helpers/resolve-preset"); + +var _resolvePreset2 = _interopRequireDefault(_resolvePreset); var _cloneDeepWith = require("lodash/cloneDeepWith"); @@ -169,7 +173,7 @@ var OptionManager = function () { var alias = typeof plugin === "string" ? plugin : loc + "$" + i; if (typeof plugin === "string") { - var pluginLoc = (0, _resolve2.default)("babel-plugin-" + plugin, dirname) || (0, _resolve2.default)(plugin, dirname); + var pluginLoc = (0, _resolvePlugin2.default)(plugin, dirname); if (pluginLoc) { plugin = require(pluginLoc); } else { @@ -218,6 +222,7 @@ var OptionManager = function () { var unknownOptErr = "Unknown option: " + alias + "." + _key2 + ". Check out http://babeljs.io/docs/usage/options/ for more information about options."; var presetConfigErr = "A common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n `{ presets: [{option: value}] }`\nValid:\n `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options."; + this.log.error(unknownOptErr + "\n\n" + presetConfigErr, ReferenceError); } } @@ -282,18 +287,7 @@ var OptionManager = function () { var presetLoc = void 0; try { if (typeof val === "string") { - presetLoc = (0, _resolve2.default)("babel-preset-" + val, dirname) || (0, _resolve2.default)(val, dirname); - - if (!presetLoc) { - var matches = val.match(/^(@[^/]+)\/(.+)$/); - if (matches) { - var orgName = matches[1], - presetPath = matches[2]; - - val = orgName + "/babel-preset-" + presetPath; - presetLoc = (0, _resolve2.default)(val, dirname); - } - } + presetLoc = (0, _resolvePreset2.default)(val, dirname); if (!presetLoc) { throw new Error("Couldn't find preset " + (0, _stringify2.default)(val) + " relative to directory " + (0, _stringify2.default)(dirname)); diff --git a/node_modules/babel-core/lib/transformation/plugin.js b/node_modules/babel-core/lib/transformation/plugin.js index dea26610..4d39a232 100644 --- a/node_modules/babel-core/lib/transformation/plugin.js +++ b/node_modules/babel-core/lib/transformation/plugin.js @@ -148,7 +148,7 @@ var Plugin = function (_Store) { var key = _ref2; if (visitor[key]) { - throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes."); + throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. " + "Please target individual nodes."); } } diff --git a/node_modules/babel-core/lib/util.js b/node_modules/babel-core/lib/util.js index 4c0f14e9..b35bbc35 100644 --- a/node_modules/babel-core/lib/util.js +++ b/node_modules/babel-core/lib/util.js @@ -36,10 +36,6 @@ var _startsWith = require("lodash/startsWith"); var _startsWith2 = _interopRequireDefault(_startsWith); -var _isBoolean = require("lodash/isBoolean"); - -var _isBoolean2 = _interopRequireDefault(_isBoolean); - var _minimatch = require("minimatch"); var _minimatch2 = _interopRequireDefault(_minimatch); @@ -48,10 +44,6 @@ var _includes = require("lodash/includes"); var _includes2 = _interopRequireDefault(_includes); -var _isString = require("lodash/isString"); - -var _isString2 = _interopRequireDefault(_isString); - var _isRegExp = require("lodash/isRegExp"); var _isRegExp2 = _interopRequireDefault(_isRegExp); @@ -114,8 +106,8 @@ function regexify(val) { function arrayify(val, mapFn) { if (!val) return []; - if ((0, _isBoolean2.default)(val)) return arrayify([val], mapFn); - if ((0, _isString2.default)(val)) return arrayify(list(val), mapFn); + if (typeof val === "boolean") return arrayify([val], mapFn); + if (typeof val === "string") return arrayify(list(val), mapFn); if (Array.isArray(val)) { if (mapFn) val = val.map(mapFn); diff --git a/node_modules/babel-core/package.json b/node_modules/babel-core/package.json index 9aab28da..979c139d 100644 --- a/node_modules/babel-core/package.json +++ b/node_modules/babel-core/package.json @@ -1,58 +1,58 @@ { "_args": [ [ - "babel-core@^6.16.0", - "D:\\wechat-devtools\\src" + "babel-core@6.23.1", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src" ] ], - "_cnpm_publish_time": 1481239542357, - "_from": "babel-core@>=6.16.0 <7.0.0", - "_id": "babel-core@6.20.0", + "_cnpm_publish_time": 1487038699972, + "_from": "babel-core@6.23.1", + "_id": "babel-core@6.23.1", "_inCache": true, "_installable": true, "_location": "/babel-core", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-core-6.20.0.tgz_1481239541659_0.2349888007156551" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-core-6.23.1.tgz_1487038699717_0.8698694983031601" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-core", - "raw": "babel-core@^6.16.0", - "rawSpec": "^6.16.0", + "raw": "babel-core@6.23.1", + "rawSpec": "6.23.1", "scope": null, - "spec": ">=6.16.0 <7.0.0", - "type": "range" + "spec": "6.23.1", + "type": "version" }, "_requiredBy": [ "/", "/babel-register" ], - "_resolved": "http://r.tnpm.oa.com/babel-core/download/babel-core-6.20.0.tgz", - "_shasum": "ab0d7176d9dea434e66badadaf92237865eab1ec", + "_resolved": "http://r.tnpm.oa.com/babel-core/download/babel-core-6.23.1.tgz", + "_shasum": "c143cb621bb2f621710c220c5d579d15b8a442df", "_shrinkwrap": null, - "_spec": "babel-core@^6.16.0", - "_where": "D:\\wechat-devtools\\src", + "_spec": "babel-core@6.23.1", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src", "author": { "email": "sebmck@gmail.com", "name": "Sebastian McKenzie" }, "dependencies": { - "babel-code-frame": "^6.20.0", - "babel-generator": "^6.20.0", - "babel-helpers": "^6.16.0", - "babel-messages": "^6.8.0", - "babel-register": "^6.18.0", - "babel-runtime": "^6.20.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.20.0", - "babel-types": "^6.20.0", + "babel-code-frame": "^6.22.0", + "babel-generator": "^6.23.0", + "babel-helpers": "^6.23.0", + "babel-messages": "^6.23.0", + "babel-register": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.23.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", "babylon": "^6.11.0", "convert-source-map": "^1.1.0", "debug": "^2.1.1", @@ -66,17 +66,17 @@ }, "description": "Babel compiler core.", "devDependencies": { - "babel-helper-fixtures": "^6.20.0", - "babel-helper-transform-fixture-test-runner": "^6.20.0", - "babel-polyfill": "^6.20.0" + "babel-helper-fixtures": "^6.22.0", + "babel-helper-transform-fixture-test-runner": "^6.23.0", + "babel-polyfill": "^6.23.0" }, "directories": {}, "dist": { - "key": "/babel-core/-/babel-core-6.20.0.tgz", + "key": "/babel-core/-/babel-core-6.23.1.tgz", "noattachment": false, - "shasum": "ab0d7176d9dea434e66badadaf92237865eab1ec", - "size": 21184, - "tarball": "http://r.tnpm.oa.com/babel-core/download/babel-core-6.20.0.tgz" + "shasum": "c143cb621bb2f621710c220c5d579d15b8a442df", + "size": 22005, + "tarball": "http://r.tnpm.oa.com/babel-core/download/babel-core-6.23.1.tgz" }, "homepage": "https://babeljs.io/", "keywords": [ @@ -90,7 +90,9 @@ "modules", "transpile", "transpiler", - "var" + "var", + "babel-core", + "compiler" ], "license": "MIT", "maintainers": [ @@ -121,7 +123,7 @@ ], "name": "babel-core", "optionalDependencies": {}, - "publish_time": 1481239542357, + "publish_time": 1487038699972, "readme": "ERROR: No README data found!", "repository": { "type": "git", @@ -131,5 +133,5 @@ "bench": "make bench", "test": "make test" }, - "version": "6.20.0" + "version": "6.23.1" } diff --git a/node_modules/babel-generator/lib/buffer.js b/node_modules/babel-generator/lib/buffer.js index 73e5100c..40b6c256 100644 --- a/node_modules/babel-generator/lib/buffer.js +++ b/node_modules/babel-generator/lib/buffer.js @@ -6,9 +6,9 @@ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); -var _trimEnd = require("lodash/trimEnd"); +var _trimRight = require("trim-right"); -var _trimEnd2 = _interopRequireDefault(_trimEnd); +var _trimRight2 = _interopRequireDefault(_trimRight); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -38,10 +38,27 @@ var Buffer = function () { Buffer.prototype.get = function get() { this._flush(); - return { - code: (0, _trimEnd2.default)(this._buf.join("")), - map: this._map ? this._map.get() : null + var map = this._map; + var result = { + code: (0, _trimRight2.default)(this._buf.join("")), + map: null, + rawMappings: map && map.getRawMappings() }; + + if (map) { + Object.defineProperty(result, "map", { + configurable: true, + enumerable: true, + get: function get() { + return this.map = map.get(); + }, + set: function set(value) { + Object.defineProperty(this, "map", { value: value, writable: true }); + } + }); + } + + return result; }; Buffer.prototype.append = function append(str) { diff --git a/node_modules/babel-generator/lib/generators/base.js b/node_modules/babel-generator/lib/generators/base.js index 3be3a8a5..938022f7 100644 --- a/node_modules/babel-generator/lib/generators/base.js +++ b/node_modules/babel-generator/lib/generators/base.js @@ -31,11 +31,14 @@ function Program(node) { function BlockStatement(node) { this.token("{"); this.printInnerComments(node); - if (node.body.length) { + + var hasDirectives = node.directives && node.directives.length; + + if (node.body.length || hasDirectives) { this.newline(); this.printSequence(node.directives, node, { indent: true }); - if (node.directives && node.directives.length) this.newline(); + if (hasDirectives) this.newline(); this.printSequence(node.body, node, { indent: true }); this.removeTrailingNewline(); diff --git a/node_modules/babel-generator/lib/generators/expressions.js b/node_modules/babel-generator/lib/generators/expressions.js index dbacb98e..d65fa78c 100644 --- a/node_modules/babel-generator/lib/generators/expressions.js +++ b/node_modules/babel-generator/lib/generators/expressions.js @@ -22,10 +22,6 @@ exports.BindExpression = BindExpression; exports.MemberExpression = MemberExpression; exports.MetaProperty = MetaProperty; -var _isNumber = require("lodash/isNumber"); - -var _isNumber2 = _interopRequireDefault(_isNumber); - var _babelTypes = require("babel-types"); var t = _interopRequireWildcard(_babelTypes); @@ -36,8 +32,6 @@ var n = _interopRequireWildcard(_node); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function UnaryExpression(node) { if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof") { this.word(node.operator); @@ -178,6 +172,8 @@ function ExpressionStatement(node) { function AssignmentPattern(node) { this.print(node.left, node); + if (node.left.optional) this.token("?"); + this.print(node.left.typeAnnotation, node); this.space(); this.token("="); this.space(); @@ -224,7 +220,7 @@ function MemberExpression(node) { } var computed = node.computed; - if (t.isLiteral(node.property) && (0, _isNumber2.default)(node.property.value)) { + if (t.isLiteral(node.property) && typeof node.property.value === "number") { computed = true; } diff --git a/node_modules/babel-generator/lib/generators/jsx.js b/node_modules/babel-generator/lib/generators/jsx.js index 49245289..6632db1c 100644 --- a/node_modules/babel-generator/lib/generators/jsx.js +++ b/node_modules/babel-generator/lib/generators/jsx.js @@ -12,6 +12,7 @@ exports.JSXNamespacedName = JSXNamespacedName; exports.JSXMemberExpression = JSXMemberExpression; exports.JSXSpreadAttribute = JSXSpreadAttribute; exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXSpreadChild = JSXSpreadChild; exports.JSXText = JSXText; exports.JSXElement = JSXElement; exports.JSXOpeningElement = JSXOpeningElement; @@ -57,6 +58,13 @@ function JSXExpressionContainer(node) { this.token("}"); } +function JSXSpreadChild(node) { + this.token("{"); + this.token("..."); + this.print(node.expression, node); + this.token("}"); +} + function JSXText(node) { this.token(node.value); } diff --git a/node_modules/babel-generator/lib/generators/modules.js b/node_modules/babel-generator/lib/generators/modules.js index 3dcda7cc..bbd3c556 100644 --- a/node_modules/babel-generator/lib/generators/modules.js +++ b/node_modules/babel-generator/lib/generators/modules.js @@ -19,6 +19,11 @@ var t = _interopRequireWildcard(_babelTypes); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + this.print(node.imported, node); if (node.local && node.local.name !== node.imported.name) { this.space(); diff --git a/node_modules/babel-generator/lib/generators/template-literals.js b/node_modules/babel-generator/lib/generators/template-literals.js index c1cdabbe..32467eb4 100644 --- a/node_modules/babel-generator/lib/generators/template-literals.js +++ b/node_modules/babel-generator/lib/generators/template-literals.js @@ -15,9 +15,7 @@ function TemplateElement(node, parent) { var value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${"); - if (!isFirst) this.space(); this.token(value); - if (!isLast) this.space(); } function TemplateLiteral(node) { diff --git a/node_modules/babel-generator/lib/node/parentheses.js b/node_modules/babel-generator/lib/node/parentheses.js index 3d9926fc..9aa812ea 100644 --- a/node_modules/babel-generator/lib/node/parentheses.js +++ b/node_modules/babel-generator/lib/node/parentheses.js @@ -174,15 +174,7 @@ function FunctionExpression(node, parent, printStack) { } function ArrowFunctionExpression(node, parent) { - if (t.isExportDeclaration(parent)) { - return true; - } - - if (t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) { - return true; - } - - if (t.isUnaryExpression(parent)) { + if (t.isExportDeclaration(parent) || t.isBinaryExpression(parent) || t.isLogicalExpression(parent) || t.isUnaryExpression(parent) || t.isTaggedTemplateExpression(parent)) { return true; } @@ -202,6 +194,10 @@ function ConditionalExpression(node, parent) { return true; } + if (t.isAwaitExpression(parent)) { + return true; + } + return UnaryLike(node, parent); } @@ -229,6 +225,10 @@ function isFirstInStatement(printStack) { return true; } + if (t.isTaggedTemplateExpression(parent)) { + return true; + } + if (considerDefaultExports && t.isExportDefaultDeclaration(parent, { declaration: node })) { return true; } diff --git a/node_modules/babel-generator/lib/node/whitespace.js b/node_modules/babel-generator/lib/node/whitespace.js index d3690a84..f39e7552 100644 --- a/node_modules/babel-generator/lib/node/whitespace.js +++ b/node_modules/babel-generator/lib/node/whitespace.js @@ -1,13 +1,5 @@ "use strict"; -var _isBoolean = require("lodash/isBoolean"); - -var _isBoolean2 = _interopRequireDefault(_isBoolean); - -var _each = require("lodash/each"); - -var _each2 = _interopRequireDefault(_each); - var _map = require("lodash/map"); var _map2 = _interopRequireDefault(_map); @@ -144,19 +136,14 @@ exports.list = { } }; -(0, _each2.default)({ - Function: true, - Class: true, - Loop: true, - LabeledStatement: true, - SwitchStatement: true, - TryStatement: true -}, function (amounts, type) { - if ((0, _isBoolean2.default)(amounts)) { +[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function (_ref) { + var type = _ref[0], + amounts = _ref[1]; + + if (typeof amounts === "boolean") { amounts = { after: amounts, before: amounts }; } - - (0, _each2.default)([type].concat(t.FLIPPED_ALIAS_KEYS[type] || []), function (type) { + [type].concat(t.FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) { exports.nodes[type] = function () { return amounts; }; diff --git a/node_modules/babel-generator/lib/source-map.js b/node_modules/babel-generator/lib/source-map.js index 192d8bca..8b191ace 100644 --- a/node_modules/babel-generator/lib/source-map.js +++ b/node_modules/babel-generator/lib/source-map.js @@ -22,27 +22,42 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var SourceMap = function () { function SourceMap(opts, code) { - var _this = this; - (0, _classCallCheck3.default)(this, SourceMap); + this._cachedMap = null; + this._code = code; this._opts = opts; - this._map = new _sourceMap2.default.SourceMapGenerator({ - file: opts.sourceMapTarget, - sourceRoot: opts.sourceRoot - }); - - if (typeof code === "string") { - this._map.setSourceContent(opts.sourceFileName, code); - } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") { - (0, _keys2.default)(code).forEach(function (sourceFileName) { - _this._map.setSourceContent(sourceFileName, code[sourceFileName]); - }); - } + this._rawMappings = []; } SourceMap.prototype.get = function get() { - return this._map.toJSON(); + var _this = this; + + if (!this._cachedMap) { + (function () { + var map = _this._cachedMap = new _sourceMap2.default.SourceMapGenerator({ + file: _this._opts.sourceMapTarget, + sourceRoot: _this._opts.sourceRoot + }); + + var code = _this._code; + if (typeof code === "string") { + map.setSourceContent(_this._opts.sourceFileName, code); + } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") { + (0, _keys2.default)(code).forEach(function (sourceFileName) { + map.setSourceContent(sourceFileName, code[sourceFileName]); + }); + } + + _this._rawMappings.forEach(map.addMapping, map); + })(); + } + + return this._cachedMap.toJSON(); + }; + + SourceMap.prototype.getRawMappings = function getRawMappings() { + return this._rawMappings.slice(); }; SourceMap.prototype.mark = function mark(generatedLine, generatedColumn, line, column, identifierName, filename) { @@ -52,18 +67,19 @@ var SourceMap = function () { return; } + this._cachedMap = null; this._lastGenLine = generatedLine; this._lastSourceLine = line; this._lastSourceColumn = column; - this._map.addMapping({ - name: identifierName, + this._rawMappings.push({ + name: identifierName || undefined, generated: { line: generatedLine, column: generatedColumn }, - source: line == null ? null : filename || this._opts.sourceFileName, - original: line == null ? null : { + source: line == null ? undefined : filename || this._opts.sourceFileName, + original: line == null ? undefined : { line: line, column: column } diff --git a/node_modules/babel-generator/package.json b/node_modules/babel-generator/package.json index 8020ea31..6bab055a 100644 --- a/node_modules/babel-generator/package.json +++ b/node_modules/babel-generator/package.json @@ -1,68 +1,69 @@ { "_args": [ [ - "babel-generator@^6.20.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-core" + "babel-generator@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core" ] ], - "_cnpm_publish_time": 1481239542017, - "_from": "babel-generator@>=6.20.0 <7.0.0", - "_id": "babel-generator@6.20.0", + "_cnpm_publish_time": 1487034858172, + "_from": "babel-generator@>=6.23.0 <7.0.0", + "_id": "babel-generator@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-generator", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-generator-6.20.0.tgz_1481239541411_0.3606008344795555" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-generator-6.23.0.tgz_1487034857936_0.3955616890452802" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-generator", - "raw": "babel-generator@^6.20.0", - "rawSpec": "^6.20.0", + "raw": "babel-generator@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.20.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-core" ], - "_resolved": "http://r.tnpm.oa.com/babel-generator/download/babel-generator-6.20.0.tgz", - "_shasum": "fee63614e0449390103b3097f3f6a118016c6766", + "_resolved": "http://r.tnpm.oa.com/babel-generator/download/babel-generator-6.23.0.tgz", + "_shasum": "6b8edab956ef3116f79d8c84c5a3c05f32a74bc5", "_shrinkwrap": null, - "_spec": "babel-generator@^6.20.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-core", + "_spec": "babel-generator@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core", "author": { "email": "sebmck@gmail.com", "name": "Sebastian McKenzie" }, "dependencies": { - "babel-messages": "^6.8.0", - "babel-runtime": "^6.20.0", - "babel-types": "^6.20.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.23.0", "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.2.0", - "source-map": "^0.5.0" + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "description": "Turns an AST into code.", "devDependencies": { - "babel-helper-fixtures": "^6.20.0", + "babel-helper-fixtures": "^6.22.0", "babylon": "^6.11.0" }, "directories": {}, "dist": { - "key": "/babel-generator/-/babel-generator-6.20.0.tgz", + "key": "/babel-generator/-/babel-generator-6.23.0.tgz", "noattachment": false, - "shasum": "fee63614e0449390103b3097f3f6a118016c6766", - "size": 17935, - "tarball": "http://r.tnpm.oa.com/babel-generator/download/babel-generator-6.20.0.tgz" + "shasum": "6b8edab956ef3116f79d8c84c5a3c05f32a74bc5", + "size": 18177, + "tarball": "http://r.tnpm.oa.com/babel-generator/download/babel-generator-6.23.0.tgz" }, "files": [ "lib" @@ -98,12 +99,12 @@ ], "name": "babel-generator", "optionalDependencies": {}, - "publish_time": 1481239542017, + "publish_time": 1487034858172, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-generator" }, "scripts": {}, - "version": "6.20.0" + "version": "6.23.0" } diff --git a/node_modules/babel-helper-call-delegate/package.json b/node_modules/babel-helper-call-delegate/package.json index 7c055765..cf2504b8 100644 --- a/node_modules/babel-helper-call-delegate/package.json +++ b/node_modules/babel-helper-call-delegate/package.json @@ -1,58 +1,58 @@ { "_args": [ [ - "babel-helper-call-delegate@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-parameters" + "babel-helper-call-delegate@^6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-parameters" ] ], - "_cnpm_publish_time": 1477343923423, - "_from": "babel-helper-call-delegate@>=6.18.0 <7.0.0", - "_id": "babel-helper-call-delegate@6.18.0", + "_cnpm_publish_time": 1484872409579, + "_from": "babel-helper-call-delegate@>=6.22.0 <7.0.0", + "_id": "babel-helper-call-delegate@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-call-delegate", "_nodeVersion": "6.9.0", "_npmOperationalInternal": { "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-call-delegate-6.18.0.tgz_1477343921564_0.057739556301385164" + "tmp": "tmp/babel-helper-call-delegate-6.22.0.tgz_1484872408882_0.8981972981709987" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.10.8", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-helper-call-delegate", - "raw": "babel-helper-call-delegate@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-call-delegate@^6.22.0", + "rawSpec": "^6.22.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.22.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-plugin-transform-es2015-parameters" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.18.0.tgz", - "_shasum": "05b14aafa430884b034097ef29e9f067ea4133bd", + "_resolved": "http://r.tnpm.oa.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.22.0.tgz", + "_shasum": "119921b56120f17e9dae3f74b4f5cc7bcc1b37ef", "_shrinkwrap": null, - "_spec": "babel-helper-call-delegate@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-parameters", + "_spec": "babel-helper-call-delegate@^6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-parameters", "dependencies": { - "babel-helper-hoist-variables": "^6.18.0", - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0" + "babel-helper-hoist-variables": "^6.22.0", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.22.0", + "babel-types": "^6.22.0" }, "description": "Helper function to call delegate", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz", + "key": "/babel-helper-call-delegate/-/babel-helper-call-delegate-6.22.0.tgz", "noattachment": false, - "shasum": "05b14aafa430884b034097ef29e9f067ea4133bd", - "size": 1202, - "tarball": "http://r.tnpm.oa.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.18.0.tgz" + "shasum": "119921b56120f17e9dae3f74b4f5cc7bcc1b37ef", + "size": 1200, + "tarball": "http://r.tnpm.oa.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.22.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -84,12 +84,12 @@ ], "name": "babel-helper-call-delegate", "optionalDependencies": {}, - "publish_time": 1477343923423, + "publish_time": 1484872409579, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-call-delegate" }, "scripts": {}, - "version": "6.18.0" + "version": "6.22.0" } diff --git a/node_modules/babel-helper-define-map/lib/index.js b/node_modules/babel-helper-define-map/lib/index.js index d9ffa202..95b6c85a 100644 --- a/node_modules/babel-helper-define-map/lib/index.js +++ b/node_modules/babel-helper-define-map/lib/index.js @@ -1,6 +1,11 @@ "use strict"; exports.__esModule = true; + +var _keys = require("babel-runtime/core-js/object/keys"); + +var _keys2 = _interopRequireDefault(_keys); + exports.push = push; exports.hasComputed = hasComputed; exports.toComputedObjectFromClass = toComputedObjectFromClass; @@ -11,10 +16,6 @@ var _babelHelperFunctionName = require("babel-helper-function-name"); var _babelHelperFunctionName2 = _interopRequireDefault(_babelHelperFunctionName); -var _each = require("lodash/each"); - -var _each2 = _interopRequireDefault(_each); - var _has = require("lodash/has"); var _has2 = _interopRequireDefault(_has); @@ -120,12 +121,14 @@ function toComputedObjectFromClass(obj) { function toClassObject(mutatorMap) { var objExpr = t.objectExpression([]); - (0, _each2.default)(mutatorMap, function (map) { + (0, _keys2.default)(mutatorMap).forEach(function (mutatorMapKey) { + var map = mutatorMap[mutatorMapKey]; var mapNode = t.objectExpression([]); var propNode = t.objectProperty(map._key, mapNode, map._computed); - (0, _each2.default)(map, function (node, key) { + (0, _keys2.default)(map).forEach(function (key) { + var node = map[key]; if (key[0] === "_") return; var inheritNode = node; @@ -145,7 +148,8 @@ function toClassObject(mutatorMap) { } function toDefineObject(mutatorMap) { - (0, _each2.default)(mutatorMap, function (map) { + (0, _keys2.default)(mutatorMap).forEach(function (key) { + var map = mutatorMap[key]; if (map.value) map.writable = t.booleanLiteral(true); map.configurable = t.booleanLiteral(true); map.enumerable = t.booleanLiteral(true); diff --git a/node_modules/babel-helper-define-map/package.json b/node_modules/babel-helper-define-map/package.json index f72e0074..10f7e36a 100644 --- a/node_modules/babel-helper-define-map/package.json +++ b/node_modules/babel-helper-define-map/package.json @@ -1,59 +1,58 @@ { "_args": [ [ - "babel-helper-define-map@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes" + "babel-helper-define-map@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes" ] ], - "_cnpm_publish_time": 1477343925781, - "_from": "babel-helper-define-map@>=6.18.0 <7.0.0", - "_id": "babel-helper-define-map@6.18.0", + "_cnpm_publish_time": 1487034869092, + "_from": "babel-helper-define-map@>=6.23.0 <7.0.0", + "_id": "babel-helper-define-map@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-define-map", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-define-map-6.18.0.tgz_1477343924044_0.6549405199475586" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-helper-define-map-6.23.0.tgz_1487034868872_0.7666173588950187" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-helper-define-map", - "raw": "babel-helper-define-map@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-define-map@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ - "/babel-plugin-transform-es2015-classes", - "/babel-plugin-transform-es2015-computed-properties" + "/babel-plugin-transform-es2015-classes" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-define-map/download/babel-helper-define-map-6.18.0.tgz", - "_shasum": "8d6c85dc7fbb4c19be3de40474d18e97c3676ec2", + "_resolved": "http://r.tnpm.oa.com/babel-helper-define-map/download/babel-helper-define-map-6.23.0.tgz", + "_shasum": "1444f960c9691d69a2ced6a205315f8fd00804e7", "_shrinkwrap": null, - "_spec": "babel-helper-define-map@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes", + "_spec": "babel-helper-define-map@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes", "dependencies": { - "babel-helper-function-name": "^6.18.0", - "babel-runtime": "^6.9.0", - "babel-types": "^6.18.0", + "babel-helper-function-name": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.23.0", "lodash": "^4.2.0" }, "description": "Helper function to define a map", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz", + "key": "/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz", "noattachment": false, - "shasum": "8d6c85dc7fbb4c19be3de40474d18e97c3676ec2", - "size": 1793, - "tarball": "http://r.tnpm.oa.com/babel-helper-define-map/download/babel-helper-define-map-6.18.0.tgz" + "shasum": "1444f960c9691d69a2ced6a205315f8fd00804e7", + "size": 1832, + "tarball": "http://r.tnpm.oa.com/babel-helper-define-map/download/babel-helper-define-map-6.23.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -85,12 +84,12 @@ ], "name": "babel-helper-define-map", "optionalDependencies": {}, - "publish_time": 1477343925781, + "publish_time": 1487034869092, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-define-map" }, "scripts": {}, - "version": "6.18.0" + "version": "6.23.0" } diff --git a/node_modules/babel-helper-evaluate-path/.npmignore b/node_modules/babel-helper-evaluate-path/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-evaluate-path/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-evaluate-path/README.md b/node_modules/babel-helper-evaluate-path/README.md new file mode 100644 index 00000000..4d1cef9c --- /dev/null +++ b/node_modules/babel-helper-evaluate-path/README.md @@ -0,0 +1,9 @@ +# # babel-helper-evaluate-path + +`path.evaluate` wrapped in a try catch + +## Installation + +```sh +$ npm install babel-helper-evaluate-path +``` diff --git a/node_modules/babel-helper-evaluate-path/lib/index.js b/node_modules/babel-helper-evaluate-path/lib/index.js new file mode 100644 index 00000000..8dd551d6 --- /dev/null +++ b/node_modules/babel-helper-evaluate-path/lib/index.js @@ -0,0 +1,12 @@ +"use strict"; + +module.exports = function evaluate(path) { + try { + return path.evaluate(); + } catch (e) { + return { + confident: false, + error: e + }; + } +}; \ No newline at end of file diff --git a/node_modules/babel-helper-evaluate-path/package.json b/node_modules/babel-helper-evaluate-path/package.json new file mode 100644 index 00000000..165ebabe --- /dev/null +++ b/node_modules/babel-helper-evaluate-path/package.json @@ -0,0 +1,93 @@ +{ + "_args": [ + [ + "babel-helper-evaluate-path@^0.0.3", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-constant-folding" + ] + ], + "_cnpm_publish_time": 1479508976769, + "_from": "babel-helper-evaluate-path@>=0.0.3 <0.0.4", + "_id": "babel-helper-evaluate-path@0.0.3", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-evaluate-path", + "_nodeVersion": "6.3.1", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-evaluate-path-0.0.3.tgz_1479508976223_0.06866875709965825" + }, + "_npmUser": { + "email": "kangax@gmail.com", + "name": "kangax" + }, + "_npmVersion": "3.10.3", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-evaluate-path", + "raw": "babel-helper-evaluate-path@^0.0.3", + "rawSpec": "^0.0.3", + "scope": null, + "spec": ">=0.0.3 <0.0.4", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-constant-folding" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.0.3.tgz", + "_shasum": "1d103ac9d4a59e5d431842212f151785f7ac547b", + "_shrinkwrap": null, + "_spec": "babel-helper-evaluate-path@^0.0.3", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-constant-folding", + "author": { + "name": "boopathi" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "path.evaluate wrapped in a try catch", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.0.3.tgz", + "noattachment": false, + "shasum": "1d103ac9d4a59e5d431842212f151785f7ac547b", + "size": 1151, + "tarball": "http://r.tnpm.oa.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.0.3.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin", + "babili" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-evaluate-path", + "optionalDependencies": {}, + "publish_time": 1479508976769, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-evaluate-path" + }, + "scripts": {}, + "version": "0.0.3" +} diff --git a/node_modules/babel-helper-flip-expressions/.npmignore b/node_modules/babel-helper-flip-expressions/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-flip-expressions/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-flip-expressions/README.md b/node_modules/babel-helper-flip-expressions/README.md new file mode 100644 index 00000000..4fc7b497 --- /dev/null +++ b/node_modules/babel-helper-flip-expressions/README.md @@ -0,0 +1,7 @@ +# babel-helper-flip-expressions + +## Installation + +```sh +npm install babel-helper-flip-expressions +``` diff --git a/node_modules/babel-helper-flip-expressions/lib/index.js b/node_modules/babel-helper-flip-expressions/lib/index.js new file mode 100644 index 00000000..4e97790a --- /dev/null +++ b/node_modules/babel-helper-flip-expressions/lib/index.js @@ -0,0 +1,95 @@ +"use strict"; + +var flipSeen = Symbol("flipSeen"); + +module.exports = function (t) { + return { + hasSeen(node) { + return !!node[flipSeen]; + }, + + // Takes an expressions and determines if it has + // more nodes that could benifit from flipping than not. + shouldFlip(topNode) { + var savings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + visit(topNode); + return savings > 0; + + function visit(node) { + if (t.isUnaryExpression(node, { operator: "!" })) { + savings++; + return; + } + + if (t.isLogicalExpression(node)) { + visit(node.left); + visit(node.right); + return; + } + + if (!(t.isBinaryExpression(node) && t.EQUALITY_BINARY_OPERATORS.indexOf(node.operator) > -1)) { + // Binary expressions wouldn't hurut because we know how to flip them + savings--; + } + } + }, + + flip(node, resultNotUsed) { + var lastNodeDesc = void 0; + var ret = visit(node); + + ret[flipSeen] = true; + + if (resultNotUsed && lastNodeDesc) { + var _lastNodeDesc = lastNodeDesc, + parent = _lastNodeDesc.parent, + key = _lastNodeDesc.key; + + if (parent && key && t.isUnaryExpression(parent[key], { operator: "!" })) { + parent[key] = parent[key].argument; + } + } + + return ret; + + function visit(node, parent, key) { + lastNodeDesc = { parent, key }; + + if (t.isUnaryExpression(node, { operator: "!" })) { + return node.argument; + } + + if (t.isLogicalExpression(node)) { + node.operator = node.operator === "&&" ? "||" : "&&"; + node.left = visit(node.left, node, "left"); + node.right = visit(node.right, node, "right"); + return node; + } + + if (t.isBinaryExpression(node)) { + var operator = void 0; + switch (node.operator) { + case "!==": + operator = "===";break; + case "===": + operator = "!==";break; + case "!=": + operator = "==";break; + case "==": + operator = "!=";break; + } + + if (operator) { + node.operator = operator; + return node; + } + + // Falls through to unary expression + } + + return t.unaryExpression("!", node, true); + } + } + }; +}; \ No newline at end of file diff --git a/node_modules/babel-helper-flip-expressions/package.json b/node_modules/babel-helper-flip-expressions/package.json new file mode 100644 index 00000000..94ac1b6c --- /dev/null +++ b/node_modules/babel-helper-flip-expressions/package.json @@ -0,0 +1,93 @@ +{ + "_args": [ + [ + "babel-helper-flip-expressions@^0.0.2", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-guarded-expressions" + ] + ], + "_cnpm_publish_time": 1484678389593, + "_from": "babel-helper-flip-expressions@>=0.0.2 <0.0.3", + "_id": "babel-helper-flip-expressions@0.0.2", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-flip-expressions", + "_nodeVersion": "6.3.1", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-flip-expressions-0.0.2.tgz_1484678388889_0.5006583614740521" + }, + "_npmUser": { + "email": "kangax@gmail.com", + "name": "kangax" + }, + "_npmVersion": "3.10.3", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-flip-expressions", + "raw": "babel-helper-flip-expressions@^0.0.2", + "rawSpec": "^0.0.2", + "scope": null, + "spec": ">=0.0.2 <0.0.3", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-guarded-expressions", + "/babel-plugin-minify-simplify" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.0.2.tgz", + "_shasum": "7bab2cf61162bc92703e9b298ef512bcf77d6787", + "_shrinkwrap": null, + "_spec": "babel-helper-flip-expressions@^0.0.2", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-guarded-expressions", + "author": { + "name": "amasad" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "## Installation", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.0.2.tgz", + "noattachment": false, + "shasum": "7bab2cf61162bc92703e9b298ef512bcf77d6787", + "size": 1795, + "tarball": "http://r.tnpm.oa.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.0.2.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-flip-expressions", + "optionalDependencies": {}, + "publish_time": 1484678389593, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-flip-expressions" + }, + "scripts": {}, + "version": "0.0.2" +} diff --git a/node_modules/babel-helper-function-name/lib/index.js b/node_modules/babel-helper-function-name/lib/index.js index b24deb0a..bde7c8a7 100644 --- a/node_modules/babel-helper-function-name/lib/index.js +++ b/node_modules/babel-helper-function-name/lib/index.js @@ -3,10 +3,10 @@ exports.__esModule = true; exports.default = function (_ref) { - var node = _ref.node; - var parent = _ref.parent; - var scope = _ref.scope; - var id = _ref.id; + var node = _ref.node, + parent = _ref.parent, + scope = _ref.scope, + id = _ref.id; if (node.id) return; diff --git a/node_modules/babel-helper-function-name/package.json b/node_modules/babel-helper-function-name/package.json index 6c25ddbf..1e740e29 100644 --- a/node_modules/babel-helper-function-name/package.json +++ b/node_modules/babel-helper-function-name/package.json @@ -1,33 +1,33 @@ { "_args": [ [ - "babel-helper-function-name@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes" + "babel-helper-function-name@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes" ] ], - "_cnpm_publish_time": 1477343928877, - "_from": "babel-helper-function-name@>=6.18.0 <7.0.0", - "_id": "babel-helper-function-name@6.18.0", + "_cnpm_publish_time": 1487034865628, + "_from": "babel-helper-function-name@>=6.23.0 <7.0.0", + "_id": "babel-helper-function-name@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-function-name", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-function-name-6.18.0.tgz_1477343927048_0.632998013868928" + "tmp": "tmp/babel-helper-function-name-6.23.0.tgz_1487034863483_0.0017370616551488638" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-helper-function-name", - "raw": "babel-helper-function-name@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-function-name@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ @@ -35,27 +35,27 @@ "/babel-plugin-transform-es2015-classes", "/babel-plugin-transform-es2015-function-name" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-function-name/download/babel-helper-function-name-6.18.0.tgz", - "_shasum": "68ec71aeba1f3e28b2a6f0730190b754a9bf30e6", + "_resolved": "http://r.tnpm.oa.com/babel-helper-function-name/download/babel-helper-function-name-6.23.0.tgz", + "_shasum": "25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6", "_shrinkwrap": null, - "_spec": "babel-helper-function-name@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes", + "_spec": "babel-helper-function-name@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes", "dependencies": { - "babel-helper-get-function-arity": "^6.18.0", - "babel-runtime": "^6.0.0", - "babel-template": "^6.8.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0" + "babel-helper-get-function-arity": "^6.22.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.23.0", + "babel-traverse": "^6.23.0", + "babel-types": "^6.23.0" }, "description": "Helper function to change the property 'name' of every function", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz", + "key": "/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz", "noattachment": false, - "shasum": "68ec71aeba1f3e28b2a6f0730190b754a9bf30e6", + "shasum": "25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6", "size": 1852, - "tarball": "http://r.tnpm.oa.com/babel-helper-function-name/download/babel-helper-function-name-6.18.0.tgz" + "tarball": "http://r.tnpm.oa.com/babel-helper-function-name/download/babel-helper-function-name-6.23.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -87,12 +87,12 @@ ], "name": "babel-helper-function-name", "optionalDependencies": {}, - "publish_time": 1477343928877, + "publish_time": 1487034865628, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name" }, "scripts": {}, - "version": "6.18.0" + "version": "6.23.0" } diff --git a/node_modules/babel-helper-get-function-arity/package.json b/node_modules/babel-helper-get-function-arity/package.json index 5c62c258..ee6b1375 100644 --- a/node_modules/babel-helper-get-function-arity/package.json +++ b/node_modules/babel-helper-get-function-arity/package.json @@ -1,57 +1,57 @@ { "_args": [ [ - "babel-helper-get-function-arity@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-helper-function-name" + "babel-helper-get-function-arity@^6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-helper-function-name" ] ], - "_cnpm_publish_time": 1477343929226, - "_from": "babel-helper-get-function-arity@>=6.18.0 <7.0.0", - "_id": "babel-helper-get-function-arity@6.18.0", + "_cnpm_publish_time": 1484872414016, + "_from": "babel-helper-get-function-arity@>=6.22.0 <7.0.0", + "_id": "babel-helper-get-function-arity@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-get-function-arity", "_nodeVersion": "6.9.0", "_npmOperationalInternal": { "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-get-function-arity-6.18.0.tgz_1477343927387_0.5835238571744412" + "tmp": "tmp/babel-helper-get-function-arity-6.22.0.tgz_1484872413165_0.5122983721084893" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.10.8", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-helper-get-function-arity", - "raw": "babel-helper-get-function-arity@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-get-function-arity@^6.22.0", + "rawSpec": "^6.22.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.22.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-helper-function-name", "/babel-plugin-transform-es2015-parameters" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.18.0.tgz", - "_shasum": "a5b19695fd3f9cdfc328398b47dafcd7094f9f24", + "_resolved": "http://r.tnpm.oa.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.22.0.tgz", + "_shasum": "0beb464ad69dc7347410ac6ade9f03a50634f5ce", "_shrinkwrap": null, - "_spec": "babel-helper-get-function-arity@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-helper-function-name", + "_spec": "babel-helper-get-function-arity@^6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-helper-function-name", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.18.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.22.0" }, "description": "Helper function to get function arity", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz", + "key": "/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.22.0.tgz", "noattachment": false, - "shasum": "a5b19695fd3f9cdfc328398b47dafcd7094f9f24", - "size": 789, - "tarball": "http://r.tnpm.oa.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.18.0.tgz" + "shasum": "0beb464ad69dc7347410ac6ade9f03a50634f5ce", + "size": 785, + "tarball": "http://r.tnpm.oa.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.22.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -83,12 +83,12 @@ ], "name": "babel-helper-get-function-arity", "optionalDependencies": {}, - "publish_time": 1477343929226, + "publish_time": 1484872414016, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity" }, "scripts": {}, - "version": "6.18.0" + "version": "6.22.0" } diff --git a/node_modules/babel-helper-hoist-variables/package.json b/node_modules/babel-helper-hoist-variables/package.json index 511b19b5..1680abb9 100644 --- a/node_modules/babel-helper-hoist-variables/package.json +++ b/node_modules/babel-helper-hoist-variables/package.json @@ -1,57 +1,57 @@ { "_args": [ [ - "babel-helper-hoist-variables@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-modules-systemjs" + "babel-helper-hoist-variables@^6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-modules-systemjs" ] ], - "_cnpm_publish_time": 1477343929969, - "_from": "babel-helper-hoist-variables@>=6.18.0 <7.0.0", - "_id": "babel-helper-hoist-variables@6.18.0", + "_cnpm_publish_time": 1484872413854, + "_from": "babel-helper-hoist-variables@>=6.22.0 <7.0.0", + "_id": "babel-helper-hoist-variables@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-hoist-variables", "_nodeVersion": "6.9.0", "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/babel-helper-hoist-variables-6.18.0.tgz_1477343927815_0.2728551540058106" + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-hoist-variables-6.22.0.tgz_1484872413035_0.7514224436599761" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.10.8", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-helper-hoist-variables", - "raw": "babel-helper-hoist-variables@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-hoist-variables@^6.22.0", + "rawSpec": "^6.22.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.22.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-helper-call-delegate", "/babel-plugin-transform-es2015-modules-systemjs" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.18.0.tgz", - "_shasum": "a835b5ab8b46d6de9babefae4d98ea41e866b82a", + "_resolved": "http://r.tnpm.oa.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.22.0.tgz", + "_shasum": "3eacbf731d80705845dd2e9718f600cfb9b4ba72", "_shrinkwrap": null, - "_spec": "babel-helper-hoist-variables@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-modules-systemjs", + "_spec": "babel-helper-hoist-variables@^6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-modules-systemjs", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.18.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.22.0" }, "description": "Helper function to hoist variables", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz", + "key": "/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz", "noattachment": false, - "shasum": "a835b5ab8b46d6de9babefae4d98ea41e866b82a", - "size": 1276, - "tarball": "http://r.tnpm.oa.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.18.0.tgz" + "shasum": "3eacbf731d80705845dd2e9718f600cfb9b4ba72", + "size": 1271, + "tarball": "http://r.tnpm.oa.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.22.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -83,12 +83,12 @@ ], "name": "babel-helper-hoist-variables", "optionalDependencies": {}, - "publish_time": 1477343929969, + "publish_time": 1484872413854, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-hoist-variables" }, "scripts": {}, - "version": "6.18.0" + "version": "6.22.0" } diff --git a/node_modules/babel-helper-is-nodes-equiv/.npmignore b/node_modules/babel-helper-is-nodes-equiv/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-is-nodes-equiv/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-is-nodes-equiv/README.md b/node_modules/babel-helper-is-nodes-equiv/README.md new file mode 100644 index 00000000..77dd1cf7 --- /dev/null +++ b/node_modules/babel-helper-is-nodes-equiv/README.md @@ -0,0 +1,7 @@ +# babel-helper-is-nodes-equiv + +## Installation + +```sh +$ npm install babel-helper-is-nodes-equiv +``` diff --git a/node_modules/babel-helper-is-nodes-equiv/lib/index.js b/node_modules/babel-helper-is-nodes-equiv/lib/index.js new file mode 100644 index 00000000..92b9b971 --- /dev/null +++ b/node_modules/babel-helper-is-nodes-equiv/lib/index.js @@ -0,0 +1,68 @@ +"use strict"; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + +module.exports = function (t) { + function equiv(a, b) { + if ((typeof a === "undefined" ? "undefined" : _typeof(a)) !== "object" || (typeof a === "undefined" ? "undefined" : _typeof(a)) !== "object" || a == null || b == null) { + return a === b; + } + + if (a.type !== b.type) { + return false; + } + + var fields = Object.keys(t.NODE_FIELDS[a.type]); + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var field = _step.value; + + if (_typeof(a[field]) !== _typeof(b[field])) { + return false; + } + + if (Array.isArray(a[field])) { + if (!Array.isArray(b[field])) { + return false; + } + if (a[field].length !== b[field].length) { + return false; + } + + for (var i = 0; i < a[field].length; i++) { + if (!equiv(a[field][i], b[field][i])) { + return false; + } + } + continue; + } + + if (!equiv(a[field], b[field])) { + return false; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return true; + } + + return equiv; +}; \ No newline at end of file diff --git a/node_modules/babel-helper-is-nodes-equiv/package.json b/node_modules/babel-helper-is-nodes-equiv/package.json new file mode 100644 index 00000000..488628e8 --- /dev/null +++ b/node_modules/babel-helper-is-nodes-equiv/package.json @@ -0,0 +1,92 @@ +{ + "_args": [ + [ + "babel-helper-is-nodes-equiv@^0.0.1", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-simplify" + ] + ], + "_cnpm_publish_time": 1472172735953, + "_from": "babel-helper-is-nodes-equiv@>=0.0.1 <0.0.2", + "_id": "babel-helper-is-nodes-equiv@0.0.1", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-is-nodes-equiv", + "_nodeVersion": "5.10.1", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-helper-is-nodes-equiv-0.0.1.tgz_1472172733931_0.23376714740879834" + }, + "_npmUser": { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + "_npmVersion": "3.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-is-nodes-equiv", + "raw": "babel-helper-is-nodes-equiv@^0.0.1", + "rawSpec": "^0.0.1", + "scope": null, + "spec": ">=0.0.1 <0.0.2", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-simplify" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", + "_shasum": "34e9b300b1479ddd98ec77ea0bbe9342dfe39684", + "_shrinkwrap": null, + "_spec": "babel-helper-is-nodes-equiv@^0.0.1", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-simplify", + "author": { + "name": "amasad" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "## Installation", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "noattachment": false, + "shasum": "34e9b300b1479ddd98ec77ea0bbe9342dfe39684", + "size": 1067, + "tarball": "http://r.tnpm.oa.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-is-nodes-equiv", + "optionalDependencies": {}, + "publish_time": 1472172735953, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-is-nodes-equiv" + }, + "scripts": {}, + "version": "0.0.1" +} diff --git a/node_modules/babel-helper-is-void-0/.npmignore b/node_modules/babel-helper-is-void-0/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-is-void-0/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-is-void-0/README.md b/node_modules/babel-helper-is-void-0/README.md new file mode 100644 index 00000000..e3907765 --- /dev/null +++ b/node_modules/babel-helper-is-void-0/README.md @@ -0,0 +1,7 @@ +# babel-helper-is-void-0 + +## Installation + +```sh +$ npm install babel-helper-is-void-0 +``` diff --git a/node_modules/babel-helper-is-void-0/lib/index.js b/node_modules/babel-helper-is-void-0/lib/index.js new file mode 100644 index 00000000..2ac50f3e --- /dev/null +++ b/node_modules/babel-helper-is-void-0/lib/index.js @@ -0,0 +1,7 @@ +"use strict"; + +module.exports = function (t) { + return function isVoid0(expr) { + return t.isUnaryExpression(expr, { operator: "void" }) && t.isNumericLiteral(expr.argument, { value: 0 }); + }; +}; \ No newline at end of file diff --git a/node_modules/babel-helper-is-void-0/package.json b/node_modules/babel-helper-is-void-0/package.json new file mode 100644 index 00000000..1b6a0866 --- /dev/null +++ b/node_modules/babel-helper-is-void-0/package.json @@ -0,0 +1,93 @@ +{ + "_args": [ + [ + "babel-helper-is-void-0@^0.0.1", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-flip-comparisons" + ] + ], + "_cnpm_publish_time": 1472172735739, + "_from": "babel-helper-is-void-0@>=0.0.1 <0.0.2", + "_id": "babel-helper-is-void-0@0.0.1", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-is-void-0", + "_nodeVersion": "5.10.1", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-helper-is-void-0-0.0.1.tgz_1472172733882_0.13038781913928688" + }, + "_npmUser": { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + "_npmVersion": "3.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-is-void-0", + "raw": "babel-helper-is-void-0@^0.0.1", + "rawSpec": "^0.0.1", + "scope": null, + "spec": ">=0.0.1 <0.0.2", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-flip-comparisons", + "/babel-plugin-minify-type-constructors" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.0.1.tgz", + "_shasum": "ed74553b883e68226ae45f989a99b02c190f105a", + "_shrinkwrap": null, + "_spec": "babel-helper-is-void-0@^0.0.1", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-flip-comparisons", + "author": { + "name": "amasad" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "## Installation", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-is-void-0/-/babel-helper-is-void-0-0.0.1.tgz", + "noattachment": false, + "shasum": "ed74553b883e68226ae45f989a99b02c190f105a", + "size": 622, + "tarball": "http://r.tnpm.oa.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.0.1.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-is-void-0", + "optionalDependencies": {}, + "publish_time": 1472172735739, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-is-void-0" + }, + "scripts": {}, + "version": "0.0.1" +} diff --git a/node_modules/babel-helper-mark-eval-scopes/README.md b/node_modules/babel-helper-mark-eval-scopes/README.md new file mode 100644 index 00000000..1c30b0ff --- /dev/null +++ b/node_modules/babel-helper-mark-eval-scopes/README.md @@ -0,0 +1,9 @@ +# babel-helper-mark-eval-scopes + +Traverse through input path and mark all scopes that contain Direct eval (`eval("")`) calls. + +## Installation + +```sh +npm install babel-helper-mark-eval-scopes +``` diff --git a/node_modules/babel-helper-mark-eval-scopes/__tests__/helper-mark-eval-scopes-test.js b/node_modules/babel-helper-mark-eval-scopes/__tests__/helper-mark-eval-scopes-test.js new file mode 100644 index 00000000..492f1008 --- /dev/null +++ b/node_modules/babel-helper-mark-eval-scopes/__tests__/helper-mark-eval-scopes-test.js @@ -0,0 +1,48 @@ +jest.autoMockOff(); + +const babel = require("babel-core"); +const helper = require("../src"); + +function getPath(source) { + let path; + + babel.transform(source, { + babelrc: false, + plugins: [ + function ({ traverse }) { + traverse.clearCache(); + return { + visitor: { + Program(programPath) { + path = programPath; + } + } + }; + } + ] + }); + + return path; +} + +describe("babel-helper-mark-eval-scopes", () => { + it("getEvalScopes - should give a set of scopes which contains eval", () => { + const source = ` + function foo() { + function bar() { + eval(";"); + } + function baz() { + noeval(); + } + } + `; + + const program = getPath(source); + const evalScopes = [...helper.getEvalScopes(program)]; + + expect(evalScopes).toContain(program.scope); + expect(evalScopes).toContain(program.get("body.0.body.body.0").scope); + expect(evalScopes).not.toContain(program.get("body.0.body.body.1").scope); + }); +}); diff --git a/node_modules/babel-helper-mark-eval-scopes/lib/index.js b/node_modules/babel-helper-mark-eval-scopes/lib/index.js new file mode 100644 index 00000000..c30d57e0 --- /dev/null +++ b/node_modules/babel-helper-mark-eval-scopes/lib/index.js @@ -0,0 +1,60 @@ +"use strict"; + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var EVAL_SCOPE_MARKER = Symbol("evalInScope"); + +module.exports = { + EVAL_SCOPE_MARKER, + getEvalScopes, + markEvalScopes, + isMarked, + hasEval +}; + +function getEvalScopes(path) { + var evalScopes = new Set(); + + function add(scope) { + var evalScope = scope; + do { + evalScopes.add(evalScope); + } while (evalScope = evalScope.parent); + } + + path.traverse({ + CallExpression(evalPath) { + var callee = evalPath.get("callee"); + + if (callee.isIdentifier() && callee.node.name === "eval" && !callee.scope.getBinding("eval")) { + add(callee.scope); + } + } + }); + + return evalScopes; +} + +function markEvalScopes(path) { + var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EVAL_SCOPE_MARKER; + + var evalScopes = getEvalScopes(path); + [].concat(_toConsumableArray(evalScopes)).forEach(function (scope) { + scope[key] = true; + }); +} + +function isMarked(scope) { + var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EVAL_SCOPE_MARKER; + + return Object.prototype.hasOwnProperty.call(scope, key); +} + +function hasEval(scope) { + var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EVAL_SCOPE_MARKER; + + if (!isMarked(scope, key)) { + markEvalScopes(scope, key); + } + return scope[key]; +} \ No newline at end of file diff --git a/node_modules/babel-helper-mark-eval-scopes/package.json b/node_modules/babel-helper-mark-eval-scopes/package.json new file mode 100644 index 00000000..91a215c4 --- /dev/null +++ b/node_modules/babel-helper-mark-eval-scopes/package.json @@ -0,0 +1,94 @@ +{ + "_args": [ + [ + "babel-helper-mark-eval-scopes@^0.0.3", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-dead-code-elimination" + ] + ], + "_cnpm_publish_time": 1488563259959, + "_from": "babel-helper-mark-eval-scopes@>=0.0.3 <0.0.4", + "_id": "babel-helper-mark-eval-scopes@0.0.3", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-mark-eval-scopes", + "_nodeVersion": "7.4.0", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-helper-mark-eval-scopes-0.0.3.tgz_1488563258039_0.08950474299490452" + }, + "_npmUser": { + "email": "me@boopathi.in", + "name": "boopathi" + }, + "_npmVersion": "4.0.5", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-mark-eval-scopes", + "raw": "babel-helper-mark-eval-scopes@^0.0.3", + "rawSpec": "^0.0.3", + "scope": null, + "spec": ">=0.0.3 <0.0.4", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-dead-code-elimination", + "/babel-plugin-minify-mangle-names" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.0.3.tgz", + "_shasum": "902f75aeb537336edc35eb9f52b6f09db7785328", + "_shrinkwrap": null, + "_spec": "babel-helper-mark-eval-scopes@^0.0.3", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-dead-code-elimination", + "author": { + "name": "boopathi" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "Mark scopes for deopt which contain a direct eval call", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.0.3.tgz", + "noattachment": false, + "shasum": "902f75aeb537336edc35eb9f52b6f09db7785328", + "size": 2193, + "tarball": "http://r.tnpm.oa.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.0.3.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin", + "babili" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-mark-eval-scopes", + "optionalDependencies": {}, + "publish_time": 1488563259959, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-mark-eval-scopes" + }, + "scripts": {}, + "version": "0.0.3" +} diff --git a/node_modules/babel-helper-mark-eval-scopes/src/index.js b/node_modules/babel-helper-mark-eval-scopes/src/index.js new file mode 100644 index 00000000..466a9fa6 --- /dev/null +++ b/node_modules/babel-helper-mark-eval-scopes/src/index.js @@ -0,0 +1,52 @@ +"use strict"; + +const EVAL_SCOPE_MARKER = Symbol("evalInScope"); + +module.exports = { + EVAL_SCOPE_MARKER, + getEvalScopes, + markEvalScopes, + isMarked, + hasEval, +}; + +function getEvalScopes(path) { + const evalScopes = new Set; + + function add(scope) { + let evalScope = scope; + do { + evalScopes.add(evalScope); + } while (evalScope = evalScope.parent); + } + + path.traverse({ + CallExpression(evalPath) { + const callee = evalPath.get("callee"); + + if (callee.isIdentifier() && callee.node.name === "eval" && !callee.scope.getBinding("eval")) { + add(callee.scope); + } + } + }); + + return evalScopes; +} + +function markEvalScopes(path, key = EVAL_SCOPE_MARKER) { + const evalScopes = getEvalScopes(path); + [...evalScopes].forEach((scope) => { + scope[key] = true; + }); +} + +function isMarked(scope, key = EVAL_SCOPE_MARKER) { + return Object.prototype.hasOwnProperty.call(scope, key); +} + +function hasEval(scope, key = EVAL_SCOPE_MARKER) { + if (!isMarked(scope, key)) { + markEvalScopes(scope, key); + } + return scope[key]; +} diff --git a/node_modules/babel-helper-optimise-call-expression/package.json b/node_modules/babel-helper-optimise-call-expression/package.json index 82b84e9c..8994eab8 100644 --- a/node_modules/babel-helper-optimise-call-expression/package.json +++ b/node_modules/babel-helper-optimise-call-expression/package.json @@ -1,57 +1,57 @@ { "_args": [ [ - "babel-helper-optimise-call-expression@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes" + "babel-helper-optimise-call-expression@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes" ] ], - "_cnpm_publish_time": 1477343929850, - "_from": "babel-helper-optimise-call-expression@>=6.18.0 <7.0.0", - "_id": "babel-helper-optimise-call-expression@6.18.0", + "_cnpm_publish_time": 1487034857969, + "_from": "babel-helper-optimise-call-expression@>=6.23.0 <7.0.0", + "_id": "babel-helper-optimise-call-expression@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-optimise-call-expression", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-optimise-call-expression-6.18.0.tgz_1477343927840_0.06359984679147601" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-helper-optimise-call-expression-6.23.0.tgz_1487034857738_0.6244811387732625" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-helper-optimise-call-expression", - "raw": "babel-helper-optimise-call-expression@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-optimise-call-expression@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-helper-replace-supers", "/babel-plugin-transform-es2015-classes" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.18.0.tgz", - "_shasum": "9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f", + "_resolved": "http://r.tnpm.oa.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.23.0.tgz", + "_shasum": "f3ee7eed355b4282138b33d02b78369e470622f5", "_shrinkwrap": null, - "_spec": "babel-helper-optimise-call-expression@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes", + "_spec": "babel-helper-optimise-call-expression@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.18.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.23.0" }, "description": "Helper function to optimise call expression", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz", + "key": "/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz", "noattachment": false, - "shasum": "9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f", - "size": 840, - "tarball": "http://r.tnpm.oa.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.18.0.tgz" + "shasum": "f3ee7eed355b4282138b33d02b78369e470622f5", + "size": 841, + "tarball": "http://r.tnpm.oa.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.23.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -83,12 +83,12 @@ ], "name": "babel-helper-optimise-call-expression", "optionalDependencies": {}, - "publish_time": 1477343929850, + "publish_time": 1487034857969, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-optimise-call-expression" }, "scripts": {}, - "version": "6.18.0" + "version": "6.23.0" } diff --git a/node_modules/babel-helper-regex/package.json b/node_modules/babel-helper-regex/package.json index d9e174a1..2c7ceb87 100644 --- a/node_modules/babel-helper-regex/package.json +++ b/node_modules/babel-helper-regex/package.json @@ -1,58 +1,58 @@ { "_args": [ [ - "babel-helper-regex@^6.8.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-sticky-regex" + "babel-helper-regex@^6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-sticky-regex" ] ], - "_cnpm_publish_time": 1477343931975, - "_from": "babel-helper-regex@>=6.8.0 <7.0.0", - "_id": "babel-helper-regex@6.18.0", + "_cnpm_publish_time": 1484872415860, + "_from": "babel-helper-regex@>=6.22.0 <7.0.0", + "_id": "babel-helper-regex@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-regex", "_nodeVersion": "6.9.0", "_npmOperationalInternal": { "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/babel-helper-regex-6.18.0.tgz_1477343930448_0.029067028081044555" + "tmp": "tmp/babel-helper-regex-6.22.0.tgz_1484872415226_0.4949791971594095" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.10.8", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-helper-regex", - "raw": "babel-helper-regex@^6.8.0", - "rawSpec": "^6.8.0", + "raw": "babel-helper-regex@^6.22.0", + "rawSpec": "^6.22.0", "scope": null, - "spec": ">=6.8.0 <7.0.0", + "spec": ">=6.22.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-plugin-transform-es2015-sticky-regex", "/babel-plugin-transform-es2015-unicode-regex" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-regex/download/babel-helper-regex-6.18.0.tgz", - "_shasum": "ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6", + "_resolved": "http://r.tnpm.oa.com/babel-helper-regex/download/babel-helper-regex-6.22.0.tgz", + "_shasum": "79f532be1647b1f0ee3474b5f5c3da58001d247d", "_shrinkwrap": null, - "_spec": "babel-helper-regex@^6.8.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-sticky-regex", + "_spec": "babel-helper-regex@^6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-sticky-regex", "dependencies": { - "babel-runtime": "^6.9.0", - "babel-types": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.22.0", "lodash": "^4.2.0" }, "description": "Helper function to check for literal RegEx", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz", + "key": "/babel-helper-regex/-/babel-helper-regex-6.22.0.tgz", "noattachment": false, - "shasum": "ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6", - "size": 852, - "tarball": "http://r.tnpm.oa.com/babel-helper-regex/download/babel-helper-regex-6.18.0.tgz" + "shasum": "79f532be1647b1f0ee3474b5f5c3da58001d247d", + "size": 847, + "tarball": "http://r.tnpm.oa.com/babel-helper-regex/download/babel-helper-regex-6.22.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -84,12 +84,12 @@ ], "name": "babel-helper-regex", "optionalDependencies": {}, - "publish_time": 1477343931975, + "publish_time": 1484872415860, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-regex" }, "scripts": {}, - "version": "6.18.0" + "version": "6.22.0" } diff --git a/node_modules/babel-helper-remove-or-void/.npmignore b/node_modules/babel-helper-remove-or-void/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-remove-or-void/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-remove-or-void/README.md b/node_modules/babel-helper-remove-or-void/README.md new file mode 100644 index 00000000..9ff97620 --- /dev/null +++ b/node_modules/babel-helper-remove-or-void/README.md @@ -0,0 +1,7 @@ +# babel-helper-remove-or-void + +## Installation + +```sh +$ npm install babel-helper-remove-or-void +``` diff --git a/node_modules/babel-helper-remove-or-void/lib/index.js b/node_modules/babel-helper-remove-or-void/lib/index.js new file mode 100644 index 00000000..1ce96a0d --- /dev/null +++ b/node_modules/babel-helper-remove-or-void/lib/index.js @@ -0,0 +1,26 @@ +"use strict"; + +module.exports = function (t) { + // If we can't remove the expression we'll just replace it with an empty statement. + function removeOrVoid(path) { + // If we are working with the expression of an expression statement we want to deal + // with the expression statement instead. + if (path.parentPath.isExpressionStatement({ expression: path.node })) { + path = path.parentPath; + } + + // If we are working with a variable declarator and there is only one then + // we need to look at the parent. + if (path.isVariableDeclarator() && path.parent.declarations[0] === path.node && path.parent.declarations.length === 1) { + path = path.parentPath; + } + + if (!path.inList && path.scope.path.type !== "ForStatement") { + path.replaceWith(t.emptyStatement()); + } else { + path.remove(); + } + } + + return removeOrVoid; +}; \ No newline at end of file diff --git a/node_modules/babel-helper-remove-or-void/package.json b/node_modules/babel-helper-remove-or-void/package.json new file mode 100644 index 00000000..47b5c13f --- /dev/null +++ b/node_modules/babel-helper-remove-or-void/package.json @@ -0,0 +1,92 @@ +{ + "_args": [ + [ + "babel-helper-remove-or-void@^0.0.1", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-dead-code-elimination" + ] + ], + "_cnpm_publish_time": 1472172734492, + "_from": "babel-helper-remove-or-void@>=0.0.1 <0.0.2", + "_id": "babel-helper-remove-or-void@0.0.1", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-remove-or-void", + "_nodeVersion": "5.10.1", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-remove-or-void-0.0.1.tgz_1472172733857_0.2751821589190513" + }, + "_npmUser": { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + "_npmVersion": "3.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-remove-or-void", + "raw": "babel-helper-remove-or-void@^0.0.1", + "rawSpec": "^0.0.1", + "scope": null, + "spec": ">=0.0.1 <0.0.2", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-dead-code-elimination" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.0.1.tgz", + "_shasum": "f602790e465acf2dfbe84fb3dd210c43a2dd7262", + "_shrinkwrap": null, + "_spec": "babel-helper-remove-or-void@^0.0.1", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-dead-code-elimination", + "author": { + "name": "amasad" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "## Installation", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.0.1.tgz", + "noattachment": false, + "shasum": "f602790e465acf2dfbe84fb3dd210c43a2dd7262", + "size": 865, + "tarball": "http://r.tnpm.oa.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.0.1.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-remove-or-void", + "optionalDependencies": {}, + "publish_time": 1472172734492, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-remove-or-void" + }, + "scripts": {}, + "version": "0.0.1" +} diff --git a/node_modules/babel-helper-replace-supers/package.json b/node_modules/babel-helper-replace-supers/package.json index 71538780..5f6dc7e6 100644 --- a/node_modules/babel-helper-replace-supers/package.json +++ b/node_modules/babel-helper-replace-supers/package.json @@ -1,61 +1,61 @@ { "_args": [ [ - "babel-helper-replace-supers@^6.18.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes" + "babel-helper-replace-supers@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes" ] ], - "_cnpm_publish_time": 1477343932968, - "_from": "babel-helper-replace-supers@>=6.18.0 <7.0.0", - "_id": "babel-helper-replace-supers@6.18.0", + "_cnpm_publish_time": 1487034865589, + "_from": "babel-helper-replace-supers@>=6.23.0 <7.0.0", + "_id": "babel-helper-replace-supers@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-helper-replace-supers", - "_nodeVersion": "6.9.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/babel-helper-replace-supers-6.18.0.tgz_1477343931154_0.06444387580268085" + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-replace-supers-6.23.0.tgz_1487034863512_0.42063009017147124" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-helper-replace-supers", - "raw": "babel-helper-replace-supers@^6.18.0", - "rawSpec": "^6.18.0", + "raw": "babel-helper-replace-supers@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.18.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-plugin-transform-es2015-classes", "/babel-plugin-transform-es2015-object-super" ], - "_resolved": "http://r.tnpm.oa.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.18.0.tgz", - "_shasum": "28ec69877be4144dbd64f4cc3a337e89f29a924e", + "_resolved": "http://r.tnpm.oa.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.23.0.tgz", + "_shasum": "eeaf8ad9b58ec4337ca94223bacdca1f8d9b4bfd", "_shrinkwrap": null, - "_spec": "babel-helper-replace-supers@^6.18.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-plugin-transform-es2015-classes", + "_spec": "babel-helper-replace-supers@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-transform-es2015-classes", "dependencies": { - "babel-helper-optimise-call-expression": "^6.18.0", - "babel-messages": "^6.8.0", - "babel-runtime": "^6.0.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0" + "babel-helper-optimise-call-expression": "^6.23.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.23.0", + "babel-traverse": "^6.23.0", + "babel-types": "^6.23.0" }, "description": "Helper function to replace supers", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz", + "key": "/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz", "noattachment": false, - "shasum": "28ec69877be4144dbd64f4cc3a337e89f29a924e", + "shasum": "eeaf8ad9b58ec4337ca94223bacdca1f8d9b4bfd", "size": 2506, - "tarball": "http://r.tnpm.oa.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.18.0.tgz" + "tarball": "http://r.tnpm.oa.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.23.0.tgz" }, "license": "MIT", "main": "lib/index.js", @@ -87,12 +87,12 @@ ], "name": "babel-helper-replace-supers", "optionalDependencies": {}, - "publish_time": 1477343932968, + "publish_time": 1487034865589, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-replace-supers" }, "scripts": {}, - "version": "6.18.0" + "version": "6.23.0" } diff --git a/node_modules/babel-helper-to-multiple-sequence-expressions/.npmignore b/node_modules/babel-helper-to-multiple-sequence-expressions/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-helper-to-multiple-sequence-expressions/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-helper-to-multiple-sequence-expressions/README.md b/node_modules/babel-helper-to-multiple-sequence-expressions/README.md new file mode 100644 index 00000000..665dcc24 --- /dev/null +++ b/node_modules/babel-helper-to-multiple-sequence-expressions/README.md @@ -0,0 +1,7 @@ +# babel-helper-to-multiple-sequence-expressions + +## Installation + +```sh +npm install babel-helper-to-multiple-sequence-expressions +``` diff --git a/node_modules/babel-helper-to-multiple-sequence-expressions/lib/index.js b/node_modules/babel-helper-to-multiple-sequence-expressions/lib/index.js new file mode 100644 index 00000000..8a7fb5cf --- /dev/null +++ b/node_modules/babel-helper-to-multiple-sequence-expressions/lib/index.js @@ -0,0 +1,119 @@ +"use strict"; + +module.exports = function (t) { + return function toMultipleSequenceExpressions(statements) { + var retStatements = []; + var bailed = void 0; + do { + var res = convert(statements); + bailed = res.bailed; + var seq = res.seq, + bailedAtIndex = res.bailedAtIndex; + + if (seq) { + retStatements.push(t.expressionStatement(seq)); + } + if (bailed && statements[bailedAtIndex]) { + retStatements.push(statements[bailedAtIndex]); + } + if (bailed) { + statements = statements.slice(bailedAtIndex + 1); + if (!statements.length) { + bailed = false; + } + } + } while (bailed); + + return retStatements; + + function convert(nodes) { + var exprs = []; + + var _loop = function _loop(i) { + var bail = function bail() { + var seq = void 0; + if (exprs.length === 1) { + seq = exprs[0]; + } else if (exprs.length) { + seq = t.sequenceExpression(exprs); + } + + return { + seq, + bailed: true, + bailedAtIndex: i + }; + }; + + var node = nodes[i]; + if (t.isExpression(node)) { + exprs.push(node); + } else if (t.isExpressionStatement(node)) { + exprs.push(node.expression); + } else if (t.isIfStatement(node)) { + var consequent = void 0; + if (node.consequent) { + var _res = convert([node.consequent]); + if (_res.bailed) { + return { + v: bail() + }; + } + consequent = _res.seq; + } + var alternate = void 0; + if (node.alternate) { + var _res2 = convert([node.alternate]); + if (_res2.bailed) { + return { + v: bail() + }; + } + alternate = _res2.seq; + } + + if (!alternate && !consequent) { + exprs.push(node.test); + } else if (!alternate) { + exprs.push(t.logicalExpression("&&", node.test, consequent)); + } else if (!consequent) { + exprs.push(t.logicalExpression("||", node.test, alternate)); + } else { + exprs.push(t.conditionalExpression(node.test, consequent, alternate)); + } + } else if (t.isBlockStatement(node)) { + var _res3 = convert(node.body); + if (_res3.bailed) { + return { + v: bail() + }; + } + if (_res3.seq) { + exprs.push(_res3.seq); + } + } else { + return { + v: bail() + }; + } + }; + + for (var i = 0; i < nodes.length; i++) { + var _ret = _loop(i); + + if (typeof _ret === "object") return _ret.v; + } + + var seq = void 0; + if (exprs.length === 1) { + seq = exprs[0]; + } else if (exprs.length) { + seq = t.sequenceExpression(exprs); + } + + /* eslint-disable no-self-assign */ + seq = seq; + return { seq }; + } + }; +}; \ No newline at end of file diff --git a/node_modules/babel-helper-to-multiple-sequence-expressions/package.json b/node_modules/babel-helper-to-multiple-sequence-expressions/package.json new file mode 100644 index 00000000..8553996d --- /dev/null +++ b/node_modules/babel-helper-to-multiple-sequence-expressions/package.json @@ -0,0 +1,92 @@ +{ + "_args": [ + [ + "babel-helper-to-multiple-sequence-expressions@^0.0.4", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-simplify" + ] + ], + "_cnpm_publish_time": 1488563258709, + "_from": "babel-helper-to-multiple-sequence-expressions@>=0.0.4 <0.0.5", + "_id": "babel-helper-to-multiple-sequence-expressions@0.0.4", + "_inCache": true, + "_installable": true, + "_location": "/babel-helper-to-multiple-sequence-expressions", + "_nodeVersion": "7.4.0", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz_1488563257994_0.6234401997644454" + }, + "_npmUser": { + "email": "me@boopathi.in", + "name": "boopathi" + }, + "_npmVersion": "4.0.5", + "_phantomChildren": {}, + "_requested": { + "name": "babel-helper-to-multiple-sequence-expressions", + "raw": "babel-helper-to-multiple-sequence-expressions@^0.0.4", + "rawSpec": "^0.0.4", + "scope": null, + "spec": ">=0.0.4 <0.0.5", + "type": "range" + }, + "_requiredBy": [ + "/babel-plugin-minify-simplify" + ], + "_resolved": "http://r.tnpm.oa.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz", + "_shasum": "d94414b386b6286fbaad77f073dea9b34324b01c", + "_shrinkwrap": null, + "_spec": "babel-helper-to-multiple-sequence-expressions@^0.0.4", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-plugin-minify-simplify", + "author": { + "name": "amasad" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": {}, + "description": "## Installation", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz", + "noattachment": false, + "shasum": "d94414b386b6286fbaad77f073dea9b34324b01c", + "size": 1767, + "tarball": "http://r.tnpm.oa.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + } + ], + "name": "babel-helper-to-multiple-sequence-expressions", + "optionalDependencies": {}, + "publish_time": 1488563258709, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-helper-to-multiple-sequence-expressions" + }, + "scripts": {}, + "version": "0.0.4" +} diff --git a/node_modules/babel-helpers/README.md b/node_modules/babel-helpers/README.md index c4a927ff..2614f116 100644 --- a/node_modules/babel-helpers/README.md +++ b/node_modules/babel-helpers/README.md @@ -4,8 +4,8 @@ ## Install -```js -$ npm install babel-helpers +```sh +npm install --save-dev babel-helpers ``` ## Usage diff --git a/node_modules/babel-helpers/lib/index.js b/node_modules/babel-helpers/lib/index.js index 3a44afaa..54697eb0 100644 --- a/node_modules/babel-helpers/lib/index.js +++ b/node_modules/babel-helpers/lib/index.js @@ -23,7 +23,7 @@ function get(name) { } var list = exports.list = (0, _keys2.default)(_helpers2.default).map(function (name) { - return name[0] === "_" ? name.slice(1) : name; + return name.replace(/^_/, ""); }).filter(function (name) { return name !== "__esModule"; }); diff --git a/node_modules/babel-helpers/package.json b/node_modules/babel-helpers/package.json index c16f290b..63d0e621 100644 --- a/node_modules/babel-helpers/package.json +++ b/node_modules/babel-helpers/package.json @@ -1,60 +1,60 @@ { "_args": [ [ - "babel-helpers@^6.16.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-core" + "babel-helpers@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core" ] ], - "_cnpm_publish_time": 1475091532054, - "_from": "babel-helpers@>=6.16.0 <7.0.0", - "_id": "babel-helpers@6.16.0", + "_cnpm_publish_time": 1487034865334, + "_from": "babel-helpers@>=6.23.0 <7.0.0", + "_id": "babel-helpers@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-helpers", - "_nodeVersion": "5.11.1", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/babel-helpers-6.16.0.tgz_1475091530459_0.6499027637764812" + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-helpers-6.23.0.tgz_1487034863510_0.43610644876025617" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-helpers", - "raw": "babel-helpers@^6.16.0", - "rawSpec": "^6.16.0", + "raw": "babel-helpers@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.16.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-core" ], - "_resolved": "http://r.tnpm.oa.com/babel-helpers/download/babel-helpers-6.16.0.tgz", - "_shasum": "1095ec10d99279460553e67eb3eee9973d3867e3", + "_resolved": "http://r.tnpm.oa.com/babel-helpers/download/babel-helpers-6.23.0.tgz", + "_shasum": "4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992", "_shrinkwrap": null, - "_spec": "babel-helpers@^6.16.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-core", + "_spec": "babel-helpers@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core", "author": { "email": "sebmck@gmail.com", "name": "Sebastian McKenzie" }, "dependencies": { - "babel-runtime": "^6.0.0", - "babel-template": "^6.16.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.23.0" }, "description": "Collection of helper functions used by Babel transforms.", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-helpers/-/babel-helpers-6.16.0.tgz", + "key": "/babel-helpers/-/babel-helpers-6.23.0.tgz", "noattachment": false, - "shasum": "1095ec10d99279460553e67eb3eee9973d3867e3", - "size": 4900, - "tarball": "http://r.tnpm.oa.com/babel-helpers/download/babel-helpers-6.16.0.tgz" + "shasum": "4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992", + "size": 4910, + "tarball": "http://r.tnpm.oa.com/babel-helpers/download/babel-helpers-6.23.0.tgz" }, "homepage": "https://babeljs.io/", "license": "MIT", @@ -87,12 +87,12 @@ ], "name": "babel-helpers", "optionalDependencies": {}, - "publish_time": 1475091532054, + "publish_time": 1487034865334, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-helpers" }, "scripts": {}, - "version": "6.16.0" + "version": "6.23.0" } diff --git a/node_modules/babel-messages/README.md b/node_modules/babel-messages/README.md index 297cd0c8..98ecf8b2 100644 --- a/node_modules/babel-messages/README.md +++ b/node_modules/babel-messages/README.md @@ -5,7 +5,7 @@ ## Install ```sh -$ npm install babel-messages +npm install --save-dev babel-messages ``` ## Usage diff --git a/node_modules/babel-messages/lib/index.js b/node_modules/babel-messages/lib/index.js index 9565195a..39e023ec 100644 --- a/node_modules/babel-messages/lib/index.js +++ b/node_modules/babel-messages/lib/index.js @@ -1,4 +1,4 @@ -/*istanbul ignore next*/"use strict"; +"use strict"; exports.__esModule = true; exports.MESSAGES = undefined; @@ -8,24 +8,17 @@ var _stringify = require("babel-runtime/core-js/json/stringify"); var _stringify2 = _interopRequireDefault(_stringify); exports.get = get; -/*istanbul ignore next*/exports.parseArgs = parseArgs; +exports.parseArgs = parseArgs; -var /*istanbul ignore next*/_util = require("util"); +var _util = require("util"); -/*istanbul ignore next*/ var util = _interopRequireWildcard(_util); -/*istanbul ignore next*/ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -/** - * Mapping of messages to be used in Babel. - * Messages can include $0-style placeholders. - */ - -var MESSAGES = /*istanbul ignore next*/exports.MESSAGES = { +var MESSAGES = exports.MESSAGES = { tailCallReassignmentDeopt: "Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence", classesIllegalBareSuper: "Illegal use of bare super", classesIllegalSuperCall: "Direct super call is illegal in non-constructor, use super.$1() instead", @@ -61,42 +54,28 @@ var MESSAGES = /*istanbul ignore next*/exports.MESSAGES = { pluginInvalidProperty: "Plugin $2 specified in $1 provided an invalid property of $3" }; -/** - * Get a message with $0 placeholders replaced by arguments. - */ - -/* eslint max-len: 0 */ - function get(key) { - /*istanbul ignore next*/ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var msg = MESSAGES[key]; - if (!msg) throw new ReferenceError( /*istanbul ignore next*/"Unknown message " + /*istanbul ignore next*/(0, _stringify2.default)(key)); + if (!msg) throw new ReferenceError("Unknown message " + (0, _stringify2.default)(key)); - // stringify args args = parseArgs(args); - // replace $0 placeholders with args return msg.replace(/\$(\d+)/g, function (str, i) { return args[i - 1]; }); } -/** - * Stingify arguments to be used inside messages. - */ - function parseArgs(args) { return args.map(function (val) { if (val != null && val.inspect) { return val.inspect(); } else { try { - return (/*istanbul ignore next*/(0, _stringify2.default)(val) || val + "" - ); + return (0, _stringify2.default)(val) || val + ""; } catch (e) { return util.inspect(val); } diff --git a/node_modules/babel-messages/package.json b/node_modules/babel-messages/package.json index 7a21a0cc..f38b9381 100644 --- a/node_modules/babel-messages/package.json +++ b/node_modules/babel-messages/package.json @@ -1,33 +1,33 @@ { "_args": [ [ - "babel-messages@^6.8.0", - "D:\\wechat-devtools\\src\\node_modules\\babel-core" + "babel-messages@^6.23.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core" ] ], - "_cnpm_publish_time": 1462232652056, - "_from": "babel-messages@>=6.8.0 <7.0.0", - "_id": "babel-messages@6.8.0", + "_cnpm_publish_time": 1487027061702, + "_from": "babel-messages@>=6.23.0 <7.0.0", + "_id": "babel-messages@6.23.0", "_inCache": true, "_installable": true, "_location": "/babel-messages", - "_nodeVersion": "5.1.0", + "_nodeVersion": "6.9.1", "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/babel-messages-6.8.0.tgz_1462232650913_0.2572917281650007" + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/babel-messages-6.23.0.tgz_1487027061100_0.7234047667589039" }, "_npmUser": { - "email": "hi@henryzoo.com", - "name": "hzoo" + "email": "loganfsmyth@gmail.com", + "name": "loganfsmyth" }, - "_npmVersion": "3.8.6", + "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { "name": "babel-messages", - "raw": "babel-messages@^6.8.0", - "rawSpec": "^6.8.0", + "raw": "babel-messages@^6.23.0", + "rawSpec": "^6.23.0", "scope": null, - "spec": ">=6.8.0 <7.0.0", + "spec": ">=6.23.0 <7.0.0", "type": "range" }, "_requiredBy": [ @@ -37,27 +37,27 @@ "/babel-plugin-transform-es2015-classes", "/babel-traverse" ], - "_resolved": "http://r.tnpm.oa.com/babel-messages/download/babel-messages-6.8.0.tgz", - "_shasum": "bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9", + "_resolved": "http://r.tnpm.oa.com/babel-messages/download/babel-messages-6.23.0.tgz", + "_shasum": "f3cdf4703858035b2a2951c6ec5edf6c62f2630e", "_shrinkwrap": null, - "_spec": "babel-messages@^6.8.0", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-core", + "_spec": "babel-messages@^6.23.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-core", "author": { "email": "sebmck@gmail.com", "name": "Sebastian McKenzie" }, "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.22.0" }, "description": "Collection of debug messages used by Babel.", "devDependencies": {}, "directories": {}, "dist": { - "key": "/babel-messages/-/babel-messages-6.8.0.tgz", + "key": "/babel-messages/-/babel-messages-6.23.0.tgz", "noattachment": false, - "shasum": "bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9", - "size": 2487, - "tarball": "http://r.tnpm.oa.com/babel-messages/download/babel-messages-6.8.0.tgz" + "shasum": "f3cdf4703858035b2a2951c6ec5edf6c62f2630e", + "size": 2336, + "tarball": "http://r.tnpm.oa.com/babel-messages/download/babel-messages-6.23.0.tgz" }, "homepage": "https://babeljs.io/", "license": "MIT", @@ -90,12 +90,12 @@ ], "name": "babel-messages", "optionalDependencies": {}, - "publish_time": 1462232652056, + "publish_time": 1487027061702, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-messages" }, "scripts": {}, - "version": "6.8.0" + "version": "6.23.0" } diff --git a/node_modules/babel-plugin-check-es2015-constants/README.md b/node_modules/babel-plugin-check-es2015-constants/README.md index 0401a3f5..608891b3 100644 --- a/node_modules/babel-plugin-check-es2015-constants/README.md +++ b/node_modules/babel-plugin-check-es2015-constants/README.md @@ -1,11 +1,31 @@ # babel-plugin-check-es2015-constants -Validate ES2015 constants +Validate ES2015 constants (prevents reassignment of const variables). + +## Example + +**In** + +```js +const a = 1; +a = 2; +``` + +**Out** + +```bash +repl: "a" is read-only + 1 | const a = 1; +> 2 | a = 2; + | ^ +``` + +[Try in REPL](http://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015&experimental=false&loose=false&spec=false&code=const%20a%20%3D%201%3B%0Aa%20%3D%202%3B&playground=true) ## Installation ```sh -$ npm install babel-plugin-check-es2015-constants +npm install --save-dev babel-plugin-check-es2015-constants ``` ## Usage @@ -23,7 +43,7 @@ $ npm install babel-plugin-check-es2015-constants ### Via CLI ```sh -$ babel --plugins check-es2015-constants script.js +babel --plugins check-es2015-constants script.js ``` ### Via Node API @@ -36,4 +56,4 @@ require("babel-core").transform("code", { ## Note -This check will only validate consts. If you need it to compile down to `var` then you must also install and enable [`transform-es2015-block-scoping`](../babel-plugin-transform-es2015-block-scoping). +This check will only validate consts. If you need it to compile down to `var` then you must also install and enable [`transform-es2015-block-scoping`](http://babeljs.io/docs/plugins/transform-es2015-block-scoping/). diff --git a/node_modules/babel-plugin-check-es2015-constants/lib/index.js b/node_modules/babel-plugin-check-es2015-constants/lib/index.js index 9b52995e..f4a43eac 100644 --- a/node_modules/babel-plugin-check-es2015-constants/lib/index.js +++ b/node_modules/babel-plugin-check-es2015-constants/lib/index.js @@ -1,4 +1,4 @@ -/*istanbul ignore next*/"use strict"; +"use strict"; exports.__esModule = true; @@ -6,20 +6,19 @@ var _getIterator2 = require("babel-runtime/core-js/get-iterator"); var _getIterator3 = _interopRequireDefault(_getIterator2); -exports.default = function ( /*istanbul ignore next*/_ref) { - /*istanbul ignore next*/var messages = _ref.messages; +exports.default = function (_ref) { + var messages = _ref.messages; return { - visitor: { /*istanbul ignore next*/ + visitor: { Scope: function Scope(_ref2) { - /*istanbul ignore next*/var scope = _ref2.scope; + var scope = _ref2.scope; for (var name in scope.bindings) { var binding = scope.bindings[name]; if (binding.kind !== "const" && binding.kind !== "module") continue; - for ( /*istanbul ignore next*/var _iterator = binding.constantViolations, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { - /*istanbul ignore next*/ + for (var _iterator = binding.constantViolations, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { var _ref3; if (_isArray) { @@ -41,7 +40,6 @@ exports.default = function ( /*istanbul ignore next*/_ref) { }; }; -/*istanbul ignore next*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/babel-plugin-check-es2015-constants/package.json b/node_modules/babel-plugin-check-es2015-constants/package.json index 6cca5e72..c20f338d 100644 --- a/node_modules/babel-plugin-check-es2015-constants/package.json +++ b/node_modules/babel-plugin-check-es2015-constants/package.json @@ -1,57 +1,57 @@ { "_args": [ [ - "babel-plugin-check-es2015-constants@^6.3.13", - "D:\\wechat-devtools\\src\\node_modules\\babel-preset-es2015" + "babel-plugin-check-es2015-constants@^6.22.0", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-preset-es2015" ] ], - "_cnpm_publish_time": 1462232653395, - "_from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "_id": "babel-plugin-check-es2015-constants@6.8.0", + "_cnpm_publish_time": 1484872420585, + "_from": "babel-plugin-check-es2015-constants@>=6.22.0 <7.0.0", + "_id": "babel-plugin-check-es2015-constants@6.22.0", "_inCache": true, "_installable": true, "_location": "/babel-plugin-check-es2015-constants", - "_nodeVersion": "5.1.0", + "_nodeVersion": "6.9.0", "_npmOperationalInternal": { "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/babel-plugin-check-es2015-constants-6.8.0.tgz_1462232651122_0.1353444093838334" + "tmp": "tmp/babel-plugin-check-es2015-constants-6.22.0.tgz_1484872418811_0.9349760548211634" }, "_npmUser": { "email": "hi@henryzoo.com", "name": "hzoo" }, - "_npmVersion": "3.8.6", + "_npmVersion": "3.10.10", "_phantomChildren": {}, "_requested": { "name": "babel-plugin-check-es2015-constants", - "raw": "babel-plugin-check-es2015-constants@^6.3.13", - "rawSpec": "^6.3.13", + "raw": "babel-plugin-check-es2015-constants@^6.22.0", + "rawSpec": "^6.22.0", "scope": null, - "spec": ">=6.3.13 <7.0.0", + "spec": ">=6.22.0 <7.0.0", "type": "range" }, "_requiredBy": [ "/babel-preset-es2015" ], - "_resolved": "http://r.tnpm.oa.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.8.0.tgz", - "_shasum": "dbf024c32ed37bfda8dee1e76da02386a8d26fe7", + "_resolved": "http://r.tnpm.oa.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", + "_shasum": "35157b101426fd2ffd3da3f75c7d1e91835bbf8a", "_shrinkwrap": null, - "_spec": "babel-plugin-check-es2015-constants@^6.3.13", - "_where": "D:\\wechat-devtools\\src\\node_modules\\babel-preset-es2015", + "_spec": "babel-plugin-check-es2015-constants@^6.22.0", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-preset-es2015", "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.22.0" }, "description": "Compile ES2015 constants to ES5", "devDependencies": { - "babel-helper-plugin-test-runner": "^6.8.0" + "babel-helper-plugin-test-runner": "^6.22.0" }, "directories": {}, "dist": { - "key": "/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz", + "key": "/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "noattachment": false, - "shasum": "dbf024c32ed37bfda8dee1e76da02386a8d26fe7", - "size": 1270, - "tarball": "http://r.tnpm.oa.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.8.0.tgz" + "shasum": "35157b101426fd2ffd3da3f75c7d1e91835bbf8a", + "size": 1465, + "tarball": "http://r.tnpm.oa.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz" }, "keywords": [ "babel-plugin" @@ -86,12 +86,12 @@ ], "name": "babel-plugin-check-es2015-constants", "optionalDependencies": {}, - "publish_time": 1462232653395, + "publish_time": 1484872420585, "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-check-es2015-constants" }, "scripts": {}, - "version": "6.8.0" + "version": "6.22.0" } diff --git a/node_modules/babel-plugin-minify-builtins/.npmignore b/node_modules/babel-plugin-minify-builtins/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-plugin-minify-builtins/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-plugin-minify-builtins/README.md b/node_modules/babel-plugin-minify-builtins/README.md new file mode 100644 index 00000000..2e23c7e0 --- /dev/null +++ b/node_modules/babel-plugin-minify-builtins/README.md @@ -0,0 +1,51 @@ +# babel-plugin-minify-builtins + +Minify Standard built-in Objects + +## Example + +**In** + +```javascript +Math.floor(a) + Math.floor(b) +``` + +**Out** + +```javascript +var _Mathfloor = Math.floor; + +_Mathfloor(a) + _Mathfloor(b); +``` + +## Installation + +```sh +npm install babel-plugin-minify-builtins +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["minify-builtins"] +} +``` + +### Via CLI + +```sh +babel --plugins minify-builtins script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["minify-builtins"] +}); +``` diff --git a/node_modules/babel-plugin-minify-builtins/lib/index.js b/node_modules/babel-plugin-minify-builtins/lib/index.js new file mode 100644 index 00000000..d53dfbf9 --- /dev/null +++ b/node_modules/babel-plugin-minify-builtins/lib/index.js @@ -0,0 +1,226 @@ +"use strict"; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var evaluate = require("babel-helper-evaluate-path"); +// Assuming all the static methods from below array are side effect free evaluation +// except Math.random +var VALID_CALLEES = ["String", "Number", "Math"]; +var INVALID_METHODS = ["random"]; + +module.exports = function (_ref) { + var t = _ref.types; + + var BuiltInReplacer = function () { + function BuiltInReplacer(program) { + _classCallCheck(this, BuiltInReplacer); + + this.program = program; + this.pathsToUpdate = new Map(); + } + + _createClass(BuiltInReplacer, [{ + key: "run", + value: function run() { + this.collect(); + this.replace(); + } + }, { + key: "collect", + value: function collect() { + var context = this; + + var collectVisitor = { + MemberExpression(path) { + if (path.parentPath.isCallExpression()) { + return; + } + + if (!isComputed(path) && isBuiltin(path)) { + var expName = memberToString(path.node); + + if (!context.pathsToUpdate.has(expName)) { + context.pathsToUpdate.set(expName, []); + } + context.pathsToUpdate.get(expName).push(path); + } + }, + + CallExpression: { + exit(path) { + var callee = path.get("callee"); + if (!callee.isMemberExpression()) { + return; + } + + // computed property should be not optimized + // Math[max]() -> Math.max() + if (!isComputed(callee) && isBuiltin(callee)) { + var result = evaluate(path); + // deopt when we have side effecty evaluate-able arguments + // Math.max(foo(), 1) --> untouched + // Math.floor(1) --> 1 + if (result.confident && hasPureArgs(path)) { + path.replaceWith(t.valueToNode(result.value)); + } else { + var expName = memberToString(callee.node); + + if (!context.pathsToUpdate.has(expName)) { + context.pathsToUpdate.set(expName, []); + } + context.pathsToUpdate.get(expName).push(callee); + } + } + } + } + }; + + this.program.traverse(collectVisitor); + } + }, { + key: "replace", + value: function replace() { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this.pathsToUpdate[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _ref2 = _step.value; + + var _ref3 = _slicedToArray(_ref2, 2); + + var expName = _ref3[0]; + var paths = _ref3[1]; + + // Should only transform if there is more than 1 occurence + if (paths.length > 1) { + var uniqueIdentifier = this.program.scope.generateUidIdentifier(expName); + var newNode = t.variableDeclaration("var", [t.variableDeclarator(uniqueIdentifier, paths[0].node)]); + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = paths[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var path = _step2.value; + + path.replaceWith(uniqueIdentifier); + } + // hoist the created var to top of the program + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + this.program.unshiftContainer("body", newNode); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }]); + + return BuiltInReplacer; + }(); + + return { + name: "minify-builtins", + visitor: { + Program(path) { + var builtInReplacer = new BuiltInReplacer(path); + builtInReplacer.run(); + } + } + }; + + function memberToString(memberExpr) { + var object = memberExpr.object, + property = memberExpr.property; + + var result = ""; + + if (t.isIdentifier(object)) result += object.name; + if (t.isMemberExpression(object)) result += memberToString(object); + if (t.isIdentifier(property)) result += property.name; + + return result; + } + + function isBuiltin(memberExpr) { + var _memberExpr$node = memberExpr.node, + object = _memberExpr$node.object, + property = _memberExpr$node.property; + + + if (t.isIdentifier(object) && t.isIdentifier(property) && VALID_CALLEES.indexOf(object.name) >= 0 && INVALID_METHODS.indexOf(property.name) < 0) { + return true; + } + return false; + } +}; + +function hasPureArgs(path) { + var args = path.get("arguments"); + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = args[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var arg = _step3.value; + + if (!arg.isPure()) { + return false; + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + return true; +} + +function isComputed(path) { + var node = path.node; + + return node.computed; +} \ No newline at end of file diff --git a/node_modules/babel-plugin-minify-builtins/package.json b/node_modules/babel-plugin-minify-builtins/package.json new file mode 100644 index 00000000..b84b5f94 --- /dev/null +++ b/node_modules/babel-plugin-minify-builtins/package.json @@ -0,0 +1,101 @@ +{ + "_args": [ + [ + "babel-plugin-minify-builtins@^0.0.2", + "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-preset-babili" + ] + ], + "_cnpm_publish_time": 1488563259882, + "_from": "babel-plugin-minify-builtins@>=0.0.2 <0.0.3", + "_id": "babel-plugin-minify-builtins@0.0.2", + "_inCache": true, + "_installable": true, + "_location": "/babel-plugin-minify-builtins", + "_nodeVersion": "7.4.0", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/babel-plugin-minify-builtins-0.0.2.tgz_1488563258095_0.23415788495913148" + }, + "_npmUser": { + "email": "me@boopathi.in", + "name": "boopathi" + }, + "_npmVersion": "4.0.5", + "_phantomChildren": {}, + "_requested": { + "name": "babel-plugin-minify-builtins", + "raw": "babel-plugin-minify-builtins@^0.0.2", + "rawSpec": "^0.0.2", + "scope": null, + "spec": ">=0.0.2 <0.0.3", + "type": "range" + }, + "_requiredBy": [ + "/babel-preset-babili" + ], + "_resolved": "http://r.tnpm.oa.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.0.2.tgz", + "_shasum": "f3be6121763c0c518d5ef82067cef4b615c9498c", + "_shrinkwrap": null, + "_spec": "babel-plugin-minify-builtins@^0.0.2", + "_where": "/Users/gydevgydev/Desktop/hudson/workspace/wechat-web-devtools-newui-mac/src/node_modules/babel-preset-babili", + "author": { + "email": "vignesh.shanmugam22@gmail.com", + "name": "Vignesh Shanmugam", + "url": "https://vigneshh.in" + }, + "bugs": { + "url": "https://github.com/babel/babili/issues" + }, + "dependencies": { + "babel-helper-evaluate-path": "^0.0.3" + }, + "description": "Minify Standard built-in Objects", + "devDependencies": {}, + "directories": {}, + "dist": { + "key": "/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.0.2.tgz", + "noattachment": false, + "shasum": "f3be6121763c0c518d5ef82067cef4b615c9498c", + "size": 3554, + "tarball": "http://r.tnpm.oa.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.0.2.tgz" + }, + "homepage": "https://github.com/babel/babili#readme", + "keywords": [ + "babel-plugin", + "transform-built-ins" + ], + "license": "MIT", + "main": "lib/index.js", + "maintainers": [ + { + "email": "amjad.masad@gmail.com", + "name": "amasad" + }, + { + "email": "me@boopathi.in", + "name": "boopathi" + }, + { + "email": "hi@henryzoo.com", + "name": "hzoo" + }, + { + "email": "kangax@gmail.com", + "name": "kangax" + }, + { + "email": "vignesh.shanmugam22@gmail.com", + "name": "vignesh.shanmugam" + } + ], + "name": "babel-plugin-minify-builtins", + "optionalDependencies": {}, + "publish_time": 1488563259882, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "https://github.com/babel/babili/tree/master/packages/babel-plugin-minify-builtins" + }, + "scripts": {}, + "version": "0.0.2" +} diff --git a/node_modules/babel-plugin-minify-constant-folding/.npmignore b/node_modules/babel-plugin-minify-constant-folding/.npmignore new file mode 100644 index 00000000..22250660 --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/.npmignore @@ -0,0 +1,4 @@ +src +__tests__ +node_modules +*.log diff --git a/node_modules/babel-plugin-minify-constant-folding/README.md b/node_modules/babel-plugin-minify-constant-folding/README.md new file mode 100644 index 00000000..71468cca --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/README.md @@ -0,0 +1,55 @@ +# babel-plugin-minify-constant-folding + +Tries to evaluate expressions and inline the result. For now only deals with numbers and strings. + +## Example + +**In** + +```javascript +"a" + "b" +2 * 3; +4 | 3; +"b" + a + "c" + "d" + g + z + "f" + "h" + "z" +``` + +**Out** + +```javascript +"ab"; +6; +7; +"b" + a + "cd" + g + z + "fhz"; +``` + +## Installation + +```sh +npm install babel-plugin-minify-constant-folding +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["minify-constant-folding"] +} +``` + +### Via CLI + +```sh +babel --plugins minify-constant-folding script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["minify-constant-folding"] +}); +``` diff --git a/node_modules/babel-plugin-minify-constant-folding/lib/index.js b/node_modules/babel-plugin-minify-constant-folding/lib/index.js new file mode 100644 index 00000000..e4ab380e --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/lib/index.js @@ -0,0 +1,131 @@ +"use strict"; + +var evaluate = require("babel-helper-evaluate-path"); +var jsesc = require("jsesc"); + +module.exports = function (_ref) { + var t = _ref.types, + traverse = _ref.traverse; + + var seen = Symbol("seen"); + + return { + name: "minify-constant-folding", + visitor: { + + // Evaluate string expressions that are next to each other + // but are not actually a binary expression. + // "a" + b + "c" + "d" -> "a" + b + "cd" + BinaryExpression(path) { + var literal = void 0, + bin = void 0; + if (path.get("right").isStringLiteral()) { + literal = path.get("right"); + if (path.get("left").isBinaryExpression({ operator: "+" })) { + bin = path.get("left"); + } else { + return; + } + } else if (path.get("left").isStringLiteral()) { + literal = path.get("left"); + if (path.get("right").isBinaryExpression({ operator: "+" })) { + bin = path.get("right"); + } else { + return; + } + } else { + return; + } + + var relevant = getLeaf(bin, literal.key); + + if (!relevant) { + return; + } + + var value = literal.key === "right" ? relevant.node.value + literal.node.value : literal.node.value + relevant.node.value; + + relevant.replaceWith(t.stringLiteral(value)); + path.replaceWith(bin.node); + + function getLeaf(path, direction) { + if (path.isStringLiteral()) { + return path; + } else if (path.isBinaryExpression({ operator: "+" })) { + return getLeaf(path.get(direction), direction); + } + } + }, + + // TODO: look into evaluating binding too (could result in more code, but gzip?) + Expression(path) { + var node = path.node; + + + if (node[seen]) { + return; + } + + if (path.isLiteral()) { + return; + } + + if (!path.isPure()) { + return; + } + + if (traverse.hasType(node, path.scope, "Identifier", t.FUNCTION_TYPES)) { + return; + } + + // -0 maybe compared via dividing and then checking against -Infinity + // Also -X will always be -X. + if (t.isUnaryExpression(node, { operator: "-" }) && t.isNumericLiteral(node.argument)) { + return; + } + + // We have a transform that converts true/false to !0/!1 + if (t.isUnaryExpression(node, { operator: "!" }) && t.isNumericLiteral(node.argument)) { + if (node.argument.value === 0 || node.argument.value === 1) { + return; + } + } + + // void 0 is used for undefined. + if (t.isUnaryExpression(node, { operator: "void" }) && t.isNumericLiteral(node.argument, { value: 0 })) { + return; + } + + var res = evaluate(path); + if (res.confident) { + // Avoid fractions because they can be longer than the original expression. + // There is also issues with number percision? + if (typeof res.value === "number" && !Number.isInteger(res.value)) { + return; + } + + // Preserve -0 + if (typeof res.value === "number" && res.value === 0) { + if (1 / res.value === -Infinity) { + var _node2 = t.unaryExpression("-", t.numericLiteral(0), true); + _node2[seen] = true; + path.replaceWith(_node2); + return; + } + } + + // https://github.com/babel/babili/issues/382 + if (typeof res.value === "string") { + res.value = jsesc(res.value, { + isScriptContext: true + }); + } + + var _node = t.valueToNode(res.value); + _node[seen] = true; + path.replaceWith(_node); + } + } + } + }; +}; \ No newline at end of file diff --git a/node_modules/babel-plugin-minify-constant-folding/node_modules/.bin/jsesc b/node_modules/babel-plugin-minify-constant-folding/node_modules/.bin/jsesc new file mode 120000 index 00000000..7237604c --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/node_modules/.bin/jsesc @@ -0,0 +1 @@ +../jsesc/bin/jsesc \ No newline at end of file diff --git a/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/LICENSE-MIT.txt b/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/LICENSE-MIT.txt new file mode 100644 index 00000000..a41e0a7e --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/README.md b/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/README.md new file mode 100644 index 00000000..60ee6ba5 --- /dev/null +++ b/node_modules/babel-plugin-minify-constant-folding/node_modules/jsesc/README.md @@ -0,0 +1,406 @@ +# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](https://coveralls.io/repos/mathiasbynens/jsesc/badge.svg)](https://coveralls.io/r/mathiasbynens/jsesc) [![Dependency status](https://gemnasium.com/mathiasbynens/jsesc.svg)](https://gemnasium.com/mathiasbynens/jsesc) + +This is a JavaScript library for [escaping JavaScript strings](https://mathiasbynens.be/notes/javascript-escapes) while generating the shortest possible valid ASCII-only output. [Here’s an online demo.](https://mothereff.in/js-escapes) + +This can be used to avoid [mojibake](https://en.wikipedia.org/wiki/Mojibake) and other encoding issues, or even to [avoid errors](https://twitter.com/annevk/status/380000829643571200) when passing JSON-formatted data (which may contain U+2028 LINE SEPARATOR, U+2029 PARAGRAPH SEPARATOR, or [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14)) to a JavaScript parser or an UTF-8 encoder, respectively. + +Feel free to fork if you see possible improvements! + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install jsesc +``` + +In [Node.js](https://nodejs.org/): + +```js +const jsesc = require('jsesc'); +``` + +## API + +### `jsesc(value, options)` + +This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in JavaScript strings](https://mathiasbynens.be/notes/javascript-escapes). The first supported value type is strings: + +```js +jsesc('Ich ♥ Bücher'); +// → 'Ich \\u2665 B\\xFCcher' + +jsesc('foo 𝌆 bar'); +// → 'foo \\uD834\\uDF06 bar' +``` + +Instead of a string, the `value` can also be an array, an object, a map, a set, or a buffer. In such cases, `jsesc` returns a stringified version of the value where any characters that are not printable ASCII symbols are escaped in the same way. + +```js +// Escaping an array +jsesc([ + 'Ich ♥ Bücher', 'foo 𝌆 bar' +]); +// → '[\'Ich \\u2665 B\\xFCcher\',\'foo \\uD834\\uDF06 bar\']' + +// Escaping an object +jsesc({ + 'Ich ♥ Bücher': 'foo 𝌆 bar' +}); +// → '{\'Ich \\u2665 B\\xFCcher\':\'foo \\uD834\\uDF06 bar\'}' +``` + +The optional `options` argument accepts an object with the following options: + +#### `quotes` + +The default value for the `quotes` option is `'single'`. This means that any occurrences of `'` in the input string are escaped as `\'`, so that the output can be used in a string literal wrapped in single quotes. + +```js +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.'); +// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' + +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'single' +}); +// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' +// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc." +``` + +If you want to use the output as part of a string literal wrapped in double quotes, set the `quotes` option to `'double'`. + +```js +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'double' +}); +// → 'Lorem ipsum \\"dolor\\" sit \'amet\' etc.' +// → "Lorem ipsum \\\"dolor\\\" sit 'amet' etc." +``` + +This setting also affects the output for arrays and objects: + +```js +jsesc({ 'Ich ♥ Bücher': 'foo 𝌆 bar' }, { + 'quotes': 'double' +}); +// → '{"Ich \\u2665 B\\xFCcher":"foo \\uD834\\uDF06 bar"}' + +jsesc([ 'Ich ♥ Bücher', 'foo 𝌆 bar' ], { + 'quotes': 'double' +}); +// → '["Ich \\u2665 B\\xFCcher","foo \\uD834\\uDF06 bar"]' +``` + +#### `numbers` + +The default value for the `numbers` option is `'decimal'`. This means that any numeric values are represented using decimal integer literals. Other valid options are `binary`, `octal`, and `hexadecimal`, which result in binary integer literals, octal integer literals, and hexadecimal integer literals, respectively. + +```js +jsesc(42, { + 'numbers': 'binary' +}); +// → '0b101010' + +jsesc(42, { + 'numbers': 'octal' +}); +// → '0o52' + +jsesc(42, { + 'numbers': 'decimal' +}); +// → '42' + +jsesc(42, { + 'numbers': 'hexadecimal' +}); +// → '0x2A' +``` + +#### `wrap` + +The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. + +```js +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'single', + 'wrap': true +}); +// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' +// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" + +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'double', + 'wrap': true +}); +// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' +// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" +``` + +#### `es6` + +The `es6` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, any astral Unicode symbols in the input are escaped using [ECMAScript 6 Unicode code point escape sequences](https://mathiasbynens.be/notes/javascript-escapes#unicode-code-point) instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 environments is a concern, don’t enable this setting. If the `json` setting is enabled, the value for the `es6` setting is ignored (as if it was `false`). + +```js +// By default, the `es6` option is disabled: +jsesc('foo 𝌆 bar 💩 baz'); +// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' + +// To explicitly disable it: +jsesc('foo 𝌆 bar 💩 baz', { + 'es6': false +}); +// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' + +// To enable it: +jsesc('foo 𝌆 bar 💩 baz', { + 'es6': true +}); +// → 'foo \\u{1D306} bar \\u{1F4A9} baz' +``` + +#### `escapeEverything` + +The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output are escaped — even printable ASCII symbols. + +```js +jsesc('lolwat"foo\'bar', { + 'escapeEverything': true +}); +// → '\\x6C\\x6F\\x6C\\x77\\x61\\x74\\"\\x66\\x6F\\x6F\\\'\\x62\\x61\\x72' +// → "\\x6C\\x6F\\x6C\\x77\\x61\\x74\\\"\\x66\\x6F\\x6F\\'\\x62\\x61\\x72" +``` + +This setting also affects the output for string literals within arrays and objects. + +#### `minimal` + +The `minimal` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, only a limited set of symbols in the output are escaped: + +* U+0000 `\0` +* U+0008 `\b` +* U+0009 `\t` +* U+000A `\n` +* U+000C `\f` +* U+000D `\r` +* U+005C `\\` +* U+2028 `\u2028` +* U+2029 `\u2029` +* whatever symbol is being used for wrapping string literals (based on [the `quotes` option](#quotes)) + +Note: with this option enabled, jsesc output is no longer guaranteed to be ASCII-safe. + +```js +jsesc('foo\u2029bar\nbaz©qux𝌆flops', { + 'minimal': false +}); +// → 'foo\\u2029bar\\nbaz©qux𝌆flops' +``` + +#### `isScriptContext` + +The `isScriptContext` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, occurrences of [`` or `