<!DOCTYPE html>
<html>
<!--STATUS OK-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="百度帐号是登录所有百度系产品的通行证，登录后还可以在帐户管理页管理/修改您的个人信息，包括修改密码、绑定手机、身份认证等">
<title>登录百度帐号</title>
<script type="text/javascript">
        window.pageStartTime = Date.now();
        </script>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=240, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover">
<meta name="format-detection" content="telephone=no, email=no" />
<style type="text/css">body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0}html{color:#111;-webkit-text-size-adjust:none}body,button,input,select,textarea,pre{font-size:1.6rem;font-family:PingFang SC,Helvetica,sans-serif}input[type=password]{font-family:Helvetica,sans-serif}h1,h2,h3,h4,h5,h6{font-size:100%}h3,h4,h5,h6{font-weight:400}ul,ol{list-style:none}a{text-decoration:none;color:#3c76ff;-webkit-touch-callout:none}a:hover{cursor:pointer}fieldset,img{border:0}table{border-collapse:collapse;border-spacing:0}textarea{resize:vertical}html,body{width:100%;height:100%;min-height:430px;position:relative}body{-webkit-touch-callout:none;-webkit-text-size-adjust:none;-webkit-user-select:none;-webkit-highlight:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:focus{outline:0}.left{float:left}.right{float:right}.tright{text-align:right}.tcenter{text-align:center}.hide{display:none}.inlineBlock{display:inline-block;zoom:1}.inline{display:inline}button{cursor:pointer}.block,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block}.clearfix:after{content:'\20';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.clearfix{zoom:1}.clear{clear:both}.wordwrap{word-break:break-all;word-wrap:break-word}input[type=submit],input[type=button]{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none}.gray{color:#999}.black0{color:#002A00}.f12{font-size:1.2rem}.f14{font-size:1.4rem}.fb{font-weight:700}.m-t05{margin-top:.5rem}.m-t10{margin-top:1rem}.m-t20{margin-top:2rem}.m-t40{margin-top:4rem}.m-t50{margin-top:5rem}.m-t25{margin-top:2.5rem}.m-b10{margin-bottom:1rem}.m-b15{margin-bottom:1.5rem}.link-font{color:#666;cursor:pointer;font-size:1.4rem;height:3rem}.p-t25{padding-top:2.5rem}.p-t15{padding-top:1.5rem}.p-t50{padding-top:5rem}.p-l5{padding-left:.5rem}.orange{color:#ff812d}.p-b20{padding-bottom:2rem;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.m-t180{margin-top:18rem}.p-b40{padding-bottom:4rem}.pass-header{background:#fff;border-bottom:1px solid #d6d6d6;height:4.4rem;width:100%;padding:0;display:block;text-align:center;z-index:100;position:relative}.pass-header-title{text-align:center;width:100%;height:4.4rem;display:block;font-size:2rem;line-height:4.4rem}.pass-header-links{margin:.6rem 0;border:1px solid #fff;background:#fff;font-size:1.6rem;line-height:3rem;text-align:center;width:5rem;color:#666;display:block;position:absolute;right:1.4rem;top:0;cursor:pointer;-webkit-border-radius:2px;border:1px solid #ccc}.pass-header-back{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAApCAYAAAAvUenwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowRTYwMTYyRkVBMTZFNDExOTczNkJERkUyMDY2QTY5NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDAyNDIwMDE2RUMxMUU0OTNFRTlCRTlEQkY5RkEzOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDAyNDFGRjE2RUMxMUU0OTNFRTlCRTlEQkY5RkEzOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBFNjAxNjJGRUExNkU0MTE5NzM2QkRGRTIwNjZBNjk1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBFNjAxNjJGRUExNkU0MTE5NzM2QkRGRTIwNjZBNjk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k2fgIgAAAc1JREFUeNq0lz8sA2EYxq+XxmAwsJiYGIiNTSIiGBAiLGyGMwhDO2BikXQQBhJ6kxiIf5MYDBQTk9gsNpOlEZImkobnTd5PvjT9c9d7+ia/9L636fNr+9333V0snU47UcrzvP9j3/fjeDkGb+ivSM91SGWFT4FljFM0QUG4qTqKoET4Nv6iBENQNjyqoGJ4FEGg8GoFgcOrEYQKDysIHR5GUCx8CyQqfdCNEJ4M8s3cWoZXEkQOLyeghJcS0MKLCajhhQJ6uC2oSbgR1CzcCI4Kwi9Y4UaQAb9WbwyMMwV7YAF8WdfSczDLEjgq6QCv1qQfyl0JSyD1DvrAs/XePus0NfUBBsCjjmNgE6yxBFJZMAhurd66imIMgdQ3GAVXVi+pc+UyBFI5MAlOrN68Tn6cIZD60dP1wOrJ+MzcGjIumXkwB3as3gS4BPUMgaMrfQmkrN4QuMa9aQNDYGpVMdULbiBpYgkc/RWL1v7VDe4haWYJpHZ1XvI67gQPkLSyBI6eWTN6pkm1qaSdJZA61bWS03GL/l1dLIE8BMpqH9HVLyVzcQdJD+0ZDZKM7l9ZbTWCDepTJiSyA/frjvwEpqkClbzo2hjG8af0/gQYAHkain5LZUqyAAAAAElFTkSuQmCC') no-repeat 15px 13px;-webkit-background-size:1.2rem 2rem;padding:1.3rem 0 1.3rem 3.3rem;width:3.6rem;height:1.8rem;position:absolute;left:0;top:0;cursor:pointer;color:#fff}.mod-button-back.active{}#agreement-headerWrapper,#personal_agreement-headerWrapper{position:fixed;top:0}.error_area{color:#E85352;font-size:1.2rem;min-height:2.5rem;line-height:2.5rem;clear:both}.error_redtip{color:red;height:2rem;line-height:2rem;visibility:hidden}.mod-info{color:#cac9c9;-webkit-box-flex:1;visibility:visible;text-align:center}.error_div .t-a-l{text-align:left}.mod-ok,.mod-page-ok{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/icon_ok.png) no-repeat 0 5px;-webkit-background-size:14px 14px}.mod-page-ok{margin-top:14px;background-position:0 2px;-webkit-background-size:20px 20px;padding-left:25px}.pass-mod-toastWrapper{background:rgba(0,0,0,.7);text-align:center;min-height:3.4rem;line-height:3.4rem;color:#fff;width:50%;position:absolute;left:25%;top:50%;margin-top:-6rem;-webkit-border-radius:2px;z-index:101;padding:.8rem;display:none}.pass-form-item{display:-webkit-box;width:100%;background:#fff}.pass-form-item-v{width:100%;float:left;height:5rem;display:-webkit-box}.pass-form-verify-wrapper p.pass-form-item-v{margin:1rem 0 0}.pass-form-input-wrapper{display:-webkit-box;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;-webkit-box-flex:1;height:5rem;line-height:4.8rem;padding:0 1.4rem;background:#fff;margin-left:1px}.pass-form-input-wrapper-forvcode{display:-webkit-box;-webkit-box-sizing:border-box;float:left;width:66%;border-radius:2px;-webkit-border-radius:2px;-webkit-box-flex:1;height:5rem;line-height:4.8rem;padding:0 1.4rem;background:#fff;z-index:10}.pass-form-verify-wrapper span.pass-form-input-wrapper-forvcode{margin-right:1rem}.pass-form-code{line-height:4rem}input[type=text],input[type=password],input[type=number],input[type=email],input[type=tel],textarea{border:0;display:block;-webkit-box-flex:1;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);line-height:2rem;font-size:1.6rem;height:2rem;padding-top:1.5rem;padding-bottom:1.3rem;color:#333;line-height:2rem;z-index:10;position:relative;margin-top:1px}.normandy-mod-content input.pass-text-input{color:#121C32;margin-top:0;line-height:1.8rem;padding-top:2.4rem;padding-bottom:1.4rem;caret-color:#000}textarea{padding-bottom:0}.pass-text-label{display:inline-block}.pass-text-label{font-size:1.6rem;width:5rem;margin-right:.5rem}.pass-text-label-long{width:6.5rem}.pass-overseas-wrapper{width:60px;display:inline-block;border-right:1px solid #efefef;margin-right:10px;margin-top:1rem}.pass-label-code{position:relative;z-index:14;text-align:right;width:50px;margin-right:4px;margin-left:-1.5rem;float:left;height:3rem;line-height:3rem}.pass-overseas-down{width:.6rem;height:.6rem;display:block;margin-top:1rem;margin-right:11px;border-right:1px solid #333;border-bottom:1px solid #333;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);float:left}.pass-input-aide{width:22px;height:19px;display:block;cursor:pointer;margin-top:1.5rem}.pass-input-pwdToggle{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAABAJJREFUWAntVVtsTEEYnplzdrunKihVStASVaJBtg/UujwgIZSwjdJIX5EG8STxsG9IvDTCs1Sp9IhbH0h4oKIpaWRttVUqRLRIrVZ62e5lZsy/p3OcXZu2pBUP5yS7889//c43//wHIfuxGbAZsBmwGbAZsBmwGbAZ+G8Y4JzjysrKtH8NCGpCbWtdc3Po0KmZw7F+N6aMX79+8QHGmFsdJ0sGQPv3H93CFYJd6tTm6uozQailwF9Fhc81FP6+HSOejjBK128/iLQFnsUdwD6Zz6s3wWWCgzyEuBZjkUVF7h3v/P5HsTgwEFauXosRY9kAAnM+u8hd3OX3Nw1PJqgDBw7PENXWiRoE6igo7VVNzdnPIMcVIBQszmzDjPSBLNArQ2Hq8fp8TmM/8f8+kTvG1fVQC7JD7fz8ae2ykglMODLGpjQyRmKGkWbgN9+L6+rq4oEyYCJWyNna8U2AohlGPkxVFT8FDDK/CQwUun7uh1Phz6UR8dgc/VbDRu8EgoNcdTcbPKJv4m1j1MK0pMQzaNYVQgIwMESJ6rI6QAJ+5/EmuCBW/d/IXu8JDd9+splgNjcxnjn1u0+XWHUJwIBiTGmB1QFkwvjsUKhnW0XFkTnJtvHuy8uPz8VqdBviNEvGcKR0SxnqWtsmsX/ScpZiThcYziREkbOdIGpQjpEjSlHu8pVF01cVuvtbWprHdWMFS5nLC4vcjMcKRaM7IDfMSAUR/949G/xtrz/mGXruaH3bFZZjyhywgPbGrYadCDENgrnieKHXVHXAm0ZoTFxplnBDMUNBQnCXqmo9mpYxkJODIhDX3Y2c/f29U5nKszhl8xBnmaCXD2ZKWNNo4+XLl76Azlt+LB/T6BrDTkL79myoLy0tpSZjLtfCdMrDgh08RRxeyLvb06TrOg8Emga2bin+MDTAXOJTMF0WgEEs9tmURfOGI4PLeoKDK+AHMkcs15iJPP6SZgzCNM3hulddXdUrdb7TJ/tM1jDre/e250sg0Bg1GZOOZWXHsglhjqtXL3ySOlgT38xqGV3mAqXxeTPmlTwJa9TBg5XzxZiK1tZWfZX634BJg3X97ZiJ8hIRHkIUZyGOM8XNFTfWaAGIE0z2EoKCjJBvKxbP6mrt7M1NdVzWGsmymqxItYerLIqPHIs45hJPB/SB8H0v/UvLjpRJWa+9dN+UhSBerFP0b4EBnmkjo6FD+qRaE8ZFKgdgyzpCuKK0j4BK5Z5SB/4QJ43Jo0HqreuYwOrrn7tEzw4YQYKtXcWd1gTjlY04Eor7i3zxvKMEj3mUV66ch0/FQ3kp/pQtWRviRJM3M+aI1l771eTSnryOCUwGWG+M1P3pmnzTR4sf8yhHC7Zt/xMDPwHC9rXZOH7hHgAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:18px 18px;z-index:12;position:relative;margin-left:20px}.pass-input-pwdToggle-show{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAABSVJREFUWAntWF1MXEUUnpl7lwW2ERSQWlutishvFygaChIwaUz0oTGQRcDW8NQH47ZNNPF1n0xM1LRL4gNPpD9bZJPG+Gia+lMhdaMW6HZZShOLFWOhVNCyYXfvzDhnYC53l13K9sFsUm7CnTnnfHPOd2fPPXMuCG1f2zvwiO4AfpjnHh4e1i5c+G4XJfqThBpFnJB8hHjOqi8cw4xFmKYvaMyY6+ho/7Orq4tmGicjYkeOfOiIx1cqKWJ7MUa2rQTjHMU1RG7ZbLmTZ858uryVNYDZEjGPx6OHwwu1FPFyjBnZqnMrjnPCNIRvVFQUXRP+DKst1fyBxHp6Pig2eLRZEHJYHXCu/aNjclvT8Hx+fuHSwYNVUbBfvBiyRyKLBZTyEoOzPRjTxxLXkWUd20fPn//srlWfPN+UWG/vsRdjiO4nnK/jsDafn0ODg4Nf/JXsLJXc1/fezkhMq0Gclig7w1gkpPaLz+edVrrkcT1gkuXtw24np7RKqVdzJefnoaGTt5Quk7G7+8ReimKN1tzEmhb68mz/eCo/Wipld7e7nnNaadowuZer513y+T6fN3UZToLBK4v769tmqNw5nieXc15SW9NkCwYDG3Z/AzHXO26xS7TGjIvxbFV5yQ9e78cyh0z9Q0wmJkbjrs43Z+bvRQrFcpl7HPPiKmcTC10LJDx0wk/pevf4Mzgeb1ExCdf+qKjwjng8mCmddXSJeoa+HikjnD2LDF4gbTpeYpjMoEMtN/1p6pfHw0k4fKyFYbpb+eM224j/9KnflWwSc7k+KiBk+XXxVuvSKJKcv9X6bTrnR4968peW7rYJPDz9hktUlcWCguLvBwY8kQ1GoYCHwl9dfk29FAJvMOb4xu//ZAnwsiZBJSc5y80mKaTdLy1Cl9ORAqebkQLHQBgwcldBkXSBb4iBRCwwQWzgAFxAljdi37mPM7ZHAgTCkatfGhjwpq3S1fZd5SIPn1N4pOtXq8uLR0uKHZNzi7EVxFCpqAgYYZ6LpmejoYmfFgCbfAUCAfpyY/NczOAvSDznuZPTt/H1icAdva/vROH9WLxSlXMdo/HBwZOLyU6sMuQUVwpdG/OfPTXlVzJCU67DxwVv1gAqmX9Ct25OnEGsnp73x8VhWg8Wylil4DRDlqNGg1lARV75fP1pnZguVaILRXXZ47+Z+rVJgs6CTcYpWcYUsUEGLpKTMmbbSBx2/Vc4IiQxUfx6e90vPZCkKAkKc/3m3zLXlAxjgs6CtWKscxlz7cgCLsBJGxu7slLrbNKQqMIAZhyXvtLYPAt662LrvMp5QMecPSV1ItGr6w4YXR1v/Nve3q6V7HaWIYPWyWQWAE70cLrkh/WQ41GDtSg80bTJc6e9MzLnOw+1BjEhMuGhrYlEaavb7bbLwKluonhCnQIT4DGNN4Sm5jrhD+aqNZIYgU3lAnQQA2KZeMEBuIBNEoMOk8Uco8LRWp9Ed9xZQK2b1SAonoocOEq+wAaYzWohxBDv4Q5YC7GBg+p2zcoPxqw8koAYXHCIY0adq5K4rx7io1vpOs01m0ygGw7dmG8WOf20gnGijfvP9YeUDGPCjikDtD3igK1QMhJtj13L/TGTnt1ca5nAN0OUrryKOHtCqUWjEB4a6r+qZDVuaHvAAP1RTd36myrerTyDxp/fV9MSgb5KLc5khEYxzlbaMOIyp2CtbBR9/WOp/KTcMQXMytZakcvKjxFFLis/3xQ5GLPug9dKDub/x78IkmNuy9s78MjswH8L1cCvWdLPCAAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:18px 18px;z-index:12;position:relative;margin-left:20px}.pass-input-clearValue{width:20px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAJ1BMVEUAAABMaXFFRUXz8/MAAAAAAAAAAAAAAAAAAADx8fEAAAAAAAD///+VXwL6AAAADHRSTlMzAEHYHS8CKQfREQq/Q1+sAAAAsUlEQVR42pXU6w6DIAyG4W/aE+j9X++SynB1mnbvLxOeRCMUvAr9j6STMsBKXR6QEWPGZDdICJdIrsgUP6lFtDFu4u0b2WmishOJ4iGViQiP0QcZvNYWzJbW4NlANNC+LtOs+0B0IOG54Co+sjjqQFgKBuiOCFFFA3KkiCoaqCNGVNGAHQFRRQNUUf666ofnv6D+M/NtyTe4flTyQ5cf3/og5COVD2c+5vULo371JJXRG1ESBwk5JTX6AAAAAElFTkSuQmCC) no-repeat center center;-webkit-background-size:18px 18px;cursor:pointer;z-index:12;position:relative}.pass-form-vcodeImg{float:right;display:inline-block;position:relative;width:10rem;height:5rem}.pass-verifyCode-img{display:block;float:left;-webkit-box-sizing:border-box;-webkit-border-radius:2px;margin-left:1px;position:relative;z-index:15;height:4.8rem;width:9.8rem;top:1px}.pass-form-item-content{height:14rem}.pass-text-area{height:12rem;resize:none;font-size:1.6rem}.pass-form-item-realname{border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;margin-bottom:0;float:left;border-bottom:0;padding-top:1px}.pass-form-item-code{border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;margin-bottom:0;float:left;border-bottom:0}.pass-form-item-accpassword{border-top:0;border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;float:left}.pass-form-item-smsvc,.pass-form-item-smsVcode{width:64%;float:left}.pass-form-item-password,.pass-form-item-idcard{border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;float:left}.pass-form-input-wrapper{float:left}.pass-form-VerifyButton,.sms_verify-noVerifyButton{-webkit-box-sizing:border-box;display:box;background-color:#fff;border:0;line-height:4.8rem;width:98%;font-size:1.4rem;position:relative;z-index:12;left:1%;top:2%;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;-ms-border-radius:2px}.pass-form-VerifyButton:disabled{border:0;background:#fff;color:#d6d6d6;opacity:1}p.verify-button{position:relative;height:5rem;width:33%;float:right;background:#fff}p.verify-button:before{content:" ";-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;z-index:1;-webkit-transform:scale(0.5,.5);-ms-transform:scale(0.5,.5);-moz-transform:scale(0.5,.5);transform:scale(0.5,.5);-webkit-transform-origin:0 0;-ms-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px}.pass-form-item-univc{width:100%}.agree-link{text-decoration:underline;color:#999;display:inline-block}input[type=text]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=email]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder{font-size:1.6rem;-webkit-appearance:none;color:#CCC}input.pass-button-vcode{z-index:10;top:0;float:right;margin-right:.5rem;width:40%}p.pass-form-input-wrapper{position:relative}p.pass-form-item.pass-form-input-wrapper:before,span.pass-form-input-wrapper-forvcode:before,span.pass-form-vcodeImg:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0;border:1px solid #ccc;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;-ms-border-radius:2px}.border-lighter:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-username,p.pass-form-item.pass-form-input-wrapper.pass-form-item-code{margin-bottom:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-username:before,p.pass-form-item.pass-form-input-wrapper.pass-form-item-code:before{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;border-bottom:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-password:before{-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-password-other:before{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}span.pass-form-input-wrapper-forvcode{position:relative;-webkit-box-flex:1}p.pass-form-item.pass-form-input-wrapper.pass-form-item-content:before{-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;border-bottom:0}p.pass-form-item.pass-form-item-error:before,span.pass-form-item-error:before,span.pass-form-item-error:before{-webkit-transition:all .3s;border:1px solid red!important}@-webkit-keyframes progressError{0%{border:1px solid #fc4343}100%{border:1px solid #fc4343}}.pass-form-item-submit{float:left;border:0;background:0 0;margin:0 0 1.5rem}.pass-button-full{color:#fff;font-size:1.8rem;width:100%;line-height:4.8rem;height:4.8rem;background:#5291FF;border:1px solid #5291FF;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;cursor:pointer;display:block;text-align:center;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pass-button-full-disabled{border:1px solid #5291FF;background:#5291FF;color:#90b6ff;-webkit-border-radius:2px;border-radius:2px}.normandy-mod-content .pass-button-full{-webkit-border-radius:10rem;border-radius:10rem;line-height:5rem;height:5rem;background:#397BE6;border:0}.normandy-mod-content .pass-button-full-disabled{-webkit-border-radius:10rem;border-radius:10rem;color:#fff;background:#DCDFE6}.normandy-mod-content .pass-button-full-active{opacity:.8}.normandy-mod-content .pass-button-full.bdred{background:#E73E32;color:#FFEEC1}.normandy-mod-content .pass-button-full-disabled.bdred{background:#E73E32;color:#f1957c}.pass-button-full-active{border:1px solid #3c76ff;background:#3c76ff;border-radius:2px;-webkit-border-radius:2px}.pass-button-auto{z-index:12;position:relative;display:block;font-size:1.8rem;color:#666;height:4.4rem;line-height:4.4rem;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:1px solid #ddd;background:#f1f1f1;padding:0 2rem;cursor:pointer;width:13.6rem;margin:.5rem .5rem .5rem 0}.pass-button-sub-full{background:#fff;border:1px solid #d6d6d6;color:#3c76ff}.pass-button-auto-active{background:#eee}.pass-button-disabled{color:#ccc}.pass-button-sub-default{width:100%;line-height:4.3rem;text-align:center;-webkit-box-sizing:border-box;background:#fff;border:1px solid #ddd;margin-top:2.5rem;-webkit-border-radius:2px;cursor:pointer;color:#666}.pass-button-sub-active{border:1px solid #ddd;background:#ddd}.mod-btn-colwrapper a{display:inline-block;width:12rem;padding:0;border:0}.mod-btn-colwrapper a.pass-button-auto{background:#dfdfdf;margin-left:1.4rem}.pass-button-minor{font-size:1.6rem;width:auto;line-height:4.4rem;background:#e1e1e1;border-color:#d5d5d5;color:#666;-webkit-box-sizing:border-box;cursor:pointer;display:block;text-align:center;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-border-radius:2px}.other-log{border:0;background:0 0;position:relative;color:#3c76ff;cursor:pointer;font-size:1.4rem;line-height:1.4rem;height:2rem;line-height:2rem}.pass-button-other{color:#3c76ff;font-size:1.8rem;width:100%;line-height:4.4rem;height:4.4rem;background:#fff;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;display:block;text-align:center;border:0;position:relative;z-index:3}.pass-button-other:before{border:1px solid #3c76ff}.mod-vcode{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1010;background:#000;opacity:.7}.mod-vcode-body{width:30.5rem;position:absolute;left:50%;top:50%;margin-left:-15.25rem;margin-top:-15.25rem;z-index:1012;overflow-y:auto;-webkit-border-radius:2px;-webkit-transform-style:preserve-3d}.mod-vcode-content{background:#fff;padding:4rem 1.6rem 2.3rem;text-align:center}.vcode-content-btn{height:4.4rem;line-height:4.4rem}.mod-page-verifyImg{text-align:center;margin:2rem 0 .6rem}.vcodeInputWrapper{display:inline-block;position:relative}.mod-page-verifyImg img{height:4.6rem;width:11rem;border:1px solid #e0e0e0}.small-tip{font-size:1.2rem;color:#adadad;line-height:1.4rem}.vcode-close{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/vcode_close.png) no-repeat center center;width:3rem;height:3rem;-webkit-background-size:1.4rem 1.4rem;background-size:1.4rem 1.4rem;position:absolute;top:.7rem;right:.7rem}.keyboardInputEle_focus{color:#fff;border-bottom:1px solid #3C76FF}.vcode_error_redtip{height:1.2rem;line-height:1.4rem;font-size:1.2rem;margin-top:.8rem;color:#E65757}.mod-vcode-content .mod-page-tipInfo-gray{font-size:2rem;color:#102233;line-height:2.4rem}.vcodeInputWrapper .vcodeInput{width:15rem;font-family:PingFangSC-Regular;font-size:2rem;color:#333;letter-spacing:0;line-height:2rem;padding-top:1.4rem;padding-bottom:.4rem;text-align:center}.vcodeInputWrapper .vcodeInput-hr{background:#bec2cc;width:15rem;height:1px;border:0;display:block}.vcodeInputWrapper .vcodeInput-hr-error{background:#E65757}.vcodeInputWrapper .vcodeInput-clearValue{width:1.4rem;height:1.4rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAJ1BMVEUAAABMaXFFRUXz8/MAAAAAAAAAAAAAAAAAAADx8fEAAAAAAAD///+VXwL6AAAADHRSTlMzAEHYHS8CKQfREQq/Q1+sAAAAsUlEQVR42pXU6w6DIAyG4W/aE+j9X++SynB1mnbvLxOeRCMUvAr9j6STMsBKXR6QEWPGZDdICJdIrsgUP6lFtDFu4u0b2WmishOJ4iGViQiP0QcZvNYWzJbW4NlANNC+LtOs+0B0IOG54Co+sjjqQFgKBuiOCFFFA3KkiCoaqCNGVNGAHQFRRQNUUf666ofnv6D+M/NtyTe4flTyQ5cf3/og5COVD2c+5vULo371JJXRG1ESBwk5JTX6AAAAAElFTkSuQmCC) no-repeat center center;-webkit-background-size:1.4rem 1.4rem;cursor:pointer;z-index:12;position:absolute;right:0;top:1.8rem}.mod-vcode .pass-form-item-submit{margin:0}.vcode-submit{width:24.5rem;margin:3rem auto 0;-webkit-border-radius:5rem}.mod-vcode-content .pass-form-item-submit{margin:1rem 0 0}.vcodeInputWrapper .vcodeInput_9300:focus{top:100rem}.vcodeInput_ios:focus{visibility:hidden}.keyboardInputEle{width:4rem;height:4rem;display:block;float:left;margin-right:1rem;text-align:center;line-height:4rem;border:0;border-bottom:1px solid #aaa;-webkit-border-radius:0;border-radius:0;font-size:1.8rem}.keyboardCursor,.keyboardCursor2{color:#3c76ff;font-size:2.2rem;font-weight:lighter;-webkit-animation:blink 1s infinite;-moz-animation:blink 1s infinite;animation:blink 1s infinite;border-bottom:1px solid #3C76FF}.keyboardCursor2:before{content:"|";position:relative;height:4rem;line-height:4rem;display:block;width:4rem;text-align:center}@-moz-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@-webkit-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}.keyboarddone{border-bottom:1px solid #3C76FF}.keyboarderror{border-bottom:1px solid #E85352}.vcode-slide-faceboder{position:relative;width:9rem;height:6.5rem;-webkit-background-size:100% 100%;background-size:100% 100%;-webkit-border-radius:2.6rem;border-radius:2.6rem;margin:4.4rem auto 4.5rem;overflow:hidden;border:0}.vcode-slide-faceboder img{position:relative;z-index:998;width:100%;height:100%;border:0}.vcode-slide-expression{position:absolute;left:1.35rem;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:50%;margin-top:-2.25rem;width:62.7rem;height:4.5rem;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/expression.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-transition{-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.vcode-slide-control{position:relative;height:5rem;margin:0 .65rem}.vcode-slide-bottom{position:absolute;left:0;top:0;background:#F7F7F7;border:1px solid #DDD;-webkit-border-radius:10rem;border-radius:10rem;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vcode-slide-bottom p{position:absolute;font-family:PingFangSC-Regular;font-size:1.8rem;color:#B2B2B2;letter-spacing:-.87px;text-align:center;width:15rem;height:2.5rem;top:50%;left:50%;margin-top:-1.35rem;margin-left:-7.5rem}.vcode-slide-cover{position:absolute;left:0;top:0;background:#4b96ea;width:5rem;height:100%;-webkit-border-radius:10rem;border-radius:10rem}.vcode-slide-cover-error{background:#EC3F3F}.vcode-slide-cover p{position:absolute;font-family:PingFangSC-Regular;font-size:1.8rem;color:#fff;letter-spacing:-.87px;text-align:center;width:15rem;height:2.5rem;top:130%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0}.vcode-slide-button{position:absolute;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;width:5rem;height:100%;-webkit-border-radius:10rem;border-radius:10rem;border:1px solid #DDD;background:#F7F7F7;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vcode-slide-button p{position:absolute;width:.9rem;height:1.8rem;top:50%;left:50%;margin-top:-.9rem;margin-left:-.45rem;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/arrowblur.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-loading{display:none;position:absolute;width:5rem;height:2.5rem;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/slideloading.gif) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-button-focus{background:#4b96ea;border:1px solid #4b96ea}.vcode-slide-button-error{background:#EC3F3F;border:1px solid #EC3F3F}.vcode-slide-button-focus p{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/arrowfocus.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-footer{padding-top:4rem;font-family:PingFangSC-Regular;font-size:1.2rem;color:#B7BCC1;line-height:1.6rem}@-webkit-keyframes horizontal{0%{-webkit-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-webkit-transform:translate(1px,0);transform:translate(1px,0)}100%{-webkit-transform:translate(0px,0);transform:translate(0px,0)}}@-moz-keyframes horizontal{0%{-moz-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-moz-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-moz-transform:translate(1px,0);transform:translate(1px,0)}100%{-moz-transform:translate(0px,0);transform:translate(0px,0)}}@keyframes horizontal{0%{-webkit-transform:translate(0px,0);-moz-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-1px,0);-moz-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-webkit-transform:translate(1px,0);-moz-transform:translate(1px,0);transform:translate(1px,0)}100%{-webkit-transform:translate(0px,0);-moz-transform:translate(0px,0);transform:translate(0px,0)}}.vcode-slidefaceboder-horizontal{-webkit-animation:horizontal .6s .2s ease both;-moz-animation:horizontal .6s .2s ease both;animation:horizontal .6s .2s ease both}.zindex1{z-index:99}.zindex2{z-index:98}.zindex3{z-index:97}.normandy-history-con{position:relative;padding-top:4rem}.normandy-img{position:relative}.normandy-img .normandy-active{position:absolute}.normandy-img .normandy-del{position:absolute}.normandy-history-con li{list-style-type:none;position:absolute;-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;-moz-transition:transform .5s,-moz-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s,-moz-transform .5s;text-align:center}.normandy-history-con img{height:4rem;width:4rem;-webkit-border-radius:100%;border-radius:100%;background-image:url(data:image/jpeg;base64,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);-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top}.normandy-history-con li.normandy-head0 img{height:6.6rem;width:6.6rem;-webkit-border-radius:3.3rem;border-radius:3.3rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top}.normandy-history-con span{font-size:1rem;color:#B2B7C2;line-height:1.5rem;height:1.5rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;width:6.9rem;padding-top:.8rem}.normandy-history-con li.normandy-head0 span{width:9.8rem;padding-top:1.2rem;font-size:1.4rem;color:#121C32}.normandy-history-con li.normandy-head0{left:0}.normandy-history-con li.normandy-head1{opacity:.3;margin-top:2rem;-webkit-transform:translateX(13rem);-moz-transform:translateX(13rem);-ms-transform:translateX(13rem);transform:translateX(13rem)}.normandy-history-con li.normandy-head2{opacity:.3;margin-top:2rem;-webkit-transform:translateX(23rem);-moz-transform:translateX(23rem);-ms-transform:translateX(23rem);transform:translateX(23rem)}.normandy-history-del{display:none;position:absolute;right:1rem;top:-.3rem;width:1.5rem;height:1.5rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top;background-image:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/historydel.png)}.normandy-history-con li.normandy-head0 .normandy-history-del{top:.1rem;right:1rem;width:2rem;height:2rem}.normandy-history-active{display:none;position:absolute;right:1.2rem;bottom:.1rem;width:1rem;height:1rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top;background-image:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/historyActive.png)}.normandy-history-con li.normandy-head0 .normandy-history-active{bottom:.1rem;width:2rem;height:2rem;display:block}.normandy-history-con li.historycenter{-webkit-transition:left .5s,-webkit-transform .5s;transition:left .5s,-webkit-transform .5s;-moz-transition:left .5s,transform .5s,-moz-transform .5s;transition:left .5s,transform .5s;transition:left .5s,transform .5s,-webkit-transform .5s,-moz-transform .5s;left:50%;-webkit-transform:translate(-50%);-moz-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%)}.history_login .pass-form-verify-wrapper{-webkit-transition:margin-top .5s;-moz-transition:margin-top .5s;transition:margin-top .5s;margin-top:9.8rem}.history_smslogin .pass-form-verify-wrapper{margin-top:14.4rem}#face_login-errorWrapper{margin-top:18.8rem}.normandy-mod-content{}.mod-dialog{position:absolute;top:0;left:0;width:100%;height:100%;z-index:101;background:#000;opacity:.3}.mod-dialog-body{width:80%;position:absolute;left:50%;z-index:102;overflow-y:auto;-webkit-border-radius:2px;-webkit-transform-style:preserve-3d}.mod-dialog-content{background:#fff;padding:2.1rem 1.6rem 1.6rem}.page-dialog-content{line-height:2.8rem;font-size:1.6rem;text-align:left;padding-bottom:3.5rem}.dialog-title{font-size:20px;text-align:center;padding-bottom:3.2rem}.page-dialog-title{text-align:center;font-size:2rem;color:#333;margin-bottom:3rem;line-height:2rem}.pass-dialog-orangecolor{color:#ff5400}.dialog-content-btn{height:4.4rem;line-height:4.4rem}.dialog-content-btn input{background:0 0;border:0;display:inline-block;color:#333;text-align:center;height:100%;width:47%;-webkit-border-radius:2px;border-radius:2px}.dialog-content-btn input.pass-dialog-btnleft{float:left;background:#fff;border:1px solid #ccc}.dialog-content-btn input.pass-dialog-btnright{float:right;background:#3c76ff;color:#fff;border:1px solid #3c76ff}.dialog-content-btn input.pass-dialog-btnleft.blue{background:#3c76ff;color:#fff;border:1px solid #3c76ff}.dialog-content-btn input.pass-dialog-btnright.white{color:#333;background:#fff;border:1px solid #ccc}.dialog-content-btn input.pass-dialog-btnwhite{background:#fff;border:0;color:#000;height:4.2rem;width:100%;display:inline-block;text-align:center;padding-top:.2rem}.dialog-content-btn input.pass-dialog-btncenter{background:#3c76ff;color:#fff;border:1px solid #3c76ff;height:4.2rem;width:100%;display:inline-block;text-align:center}.dialog-content-btn input.pass-dialog-btncenter-disabled{background:#DCDFE6;border:1px solid #DCDFE6}.pass-fast-dialog{padding-bottom:3.5rem}a.dialog-banner-mainbtn{background:#3c76ff;color:#fff;border:1px solid #3c76ff;height:4.2rem;width:100%;display:inline-block;text-align:center}.dialogNoPassword p{text-align:center}.dialogNoPassword input{font-size:1.6rem}.footer{margin:2rem 0 1rem;text-align:center}.register-content .border-none{border:0}.fastlogin-bordertext{position:absolute;left:50%;margin-left:-2rem;font-size:1.2rem;color:#bcbcbc;top:-.7rem;z-index:10;width:4rem;background:#f5f5f5}.fastlogin-layer-login{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-box;display:box;-webkit-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center}.fastlogin-item{position:relative;padding-top:1.5rem}.fastlogin-item a{display:block;width:3rem;height:3rem;-webkit-background-size:2.9rem 2.9rem;background-size:2.9rem 2.9rem;margin-right:2.5rem;color:transparent}.fastlogin-item.fastlogin-big a{width:4.8rem;height:4.8rem;-webkit-background-size:4.7rem 4.7rem;background-size:4.7rem 4.7rem;margin-right:5.5rem}.fastlogin-item:last-child a,.fastlogin-item.fastlogin-big:last-child a{margin-right:0}.li-img-tweixin_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAulBMVEUAAADX19fX19fc3Nw1wSDX19fW1tbY2NjY2Njf39/X19fX19fX19fX19fY2NjZ2dk8xyU8yyk1wSDW1tbY2NjX19fY2NjY2NjX19fZ2dk1wSA2wSA3wiJL1DA1wSA1wSA1wSE1wSA1wSA2wSA4wyM2wSA2wSDW1tbW1tbW1tbX19c1wSDX19fW1tbY2Ng2wSHY2Ng1wiA3wiHa2trb29s2wiA3wSE4xSM2wiE2wiE2wiE2wyI1wCDX19eDmsXKAAAAPHRSTlMA+O0b+uHVbFoP0cetqEITFQ7anY5jT0s6NLZxNQfCy5Xw6aEn4Y7n28G6rKCWgoB1VUwpCoc/HWljRVkDLAkYAAAEfklEQVRo3qzV13biMBAG4F8S7jY2HUJLwNkUUgklYTXv/1qb45C1D5ZlU76ruRpbMyMNqnEG9kvguQZnjBuuF7zYAweX4vTaLn1jpvfoPz35j57J6Jvb7jkXyN55YETms1UXyBB169kkYg8dB+foBYx4yxZQEnaLEwt6OJVtEvO70Or6jEwbp+jc091biFLh2x3dd3CsvkuGtUIlK8sgt49jhC3iFo5gcWqFqKzLKRA4igiId1FRm4w6jlY3qI0qhEd+iBOEPnkCpQacWTiRxfig9KCM93GyPmd1aNnM+MAZPgxma/OTKXAWYZKtq48Z4kyhWVylATMEziYMNoCS4PwDF/DBuYCKx/q4iD7z1PfXwoVYqjvdJR8X41MXB0JuOLgYx+CH49iiOi6oTq2DvlAArUa8GcURKguojyyXi+Lcy+tmTSZuJusdKhHcRUaneIJGiyR56na9rTZJHaTujaL0VzKv9qeBcsZ9GttFB3itSaWbJUpZmVfPvFtBYTuRhdYos7ozsdejN2X+W6mxQJk36uFHwELkRU2pNUeJkAVIOMxH3niaNvUmE6WGKOEzZz+jXVV/5a9JhM991MAwM0wx9Lr7SX3gyIvT+dkAaB5EiSlK8IefCrWQl5n/JYCffu+SKLWDXiupUU+1paPMBWiOoj/ZKHUFPTuZozYJ5AxliZvbWU3KLbREsnhcE3lTTeqr4SgaJ8eMG9AzXcChZ+TVpFptsQEau9f51bQ5WVwPR9B6JgcD1TsUFaRfbzH+nNSy51nstO/RALZqlY2kyiRGtJ7JQ80vzWKz8aLq8VL1+0PgfSZVpnFhl18QMORtFPnf0ZgnkfrjaiyAZyIvzqdYojGRxV6hZHpwPVSZoqEmv2ZBeC6MR+heivTOzqXeOxQeDXAfCu8HBYrSvs//Xstfs8+v5v84Qp7PwZ6gMJ4dLJfx7e+sInOYERBrN9AT+0eLGeRGCMNQNIscIMkyEAjQzmYWqLOYgeL7n6tCorIrfdmRqnkXiGIn/v9bHiC5kaR3B13c5KSKsl0+wANwiVyUYzmJpqQoxG77U8wOlkg2WfItBV6O788lieZnDwWIm3w+U0wl4rL01MCEnun50TDlLu7+RS1E8NF4VCh3WLmtKh9gVPCwU57S4o62G4Bhx+NaucLQ1oMZjWsWHEX5fQjUwIAER0omrtCcPXVuIJsOSSaLPrjAlQXK83A7mfgARJ9tCzaP+fdhxJksFmRb2HihFqcHnK+Y6YWM12UdIaUvTnC39ABaRza/JnEkjQrNL9v3/55QsX2XAcQmZiKM35QAwhHKZp90xccRikOgzat6AoxqCJQx1iasKBz2MMbiIG4TjprHNKcxr4/LVVQcxO1Vgk3ZTvWeirJK0JchNqWbyUdlGWKtc2zK/kTrHHshZWMvpN6/UuOl4E+zdm4DAADCMJCWiv23RWzAZykZI+ewt0WdgvCtSR+z9LWMn+P0vU8DBU0sNBLRzEVDXY8a3RbzokYFLD1wrw5Yr8hdLRqYZQ+q4UYvPVGPZ875TwJ0jrZtBTDtOQAAAABJRU5ErkJggg==) no-repeat}.li-img-tsina_sso,.li-img-tsina{background:url(data:image/png;base64,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) no-repeat}.li-img-qzone,.li-img-qq_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAtFBMVEUAAADB5f/X19fX19fX19fe3t7X19fY2NjY2NjX19fX19fc3NxGpeXX19dGpeXX19fW1tbY2NjY2NjX19fY2NjX19fZ2dna2trZ2dlHpudQre5HpeVIp+dHpeVHpebW1tbW1tbW1tbW1tbX19fX19dGpeXW1tbY2NhHpubY2NjW1tbY2NjX19fa2trf399GpeVHpeZLq+pGpeVLqelHpeVGpeZIquZGpeVHpeZIpuZGpOTX19e+AMOpAAAAOnRSTlMABNT57Q7hWk2tnhn2893GqY5vakE6NB4TRg7rNKRv59vJwbqllpaCf3VkY0YpCMZmF9IesIgnul1RnBebHwAAA7JJREFUaN601ely2jAUBeCj1RsGm8XQkIQ1ECCQTLY2uu//Xk3SNiUlXIFxv/EPz1gjee6RrnAYUwTzrCGtVkpb2cjmQWFQFRPmkl6lsjGJ4jiaNGRKr2QeGpzMLMeKSM5a7QRbknZrJonUeGlwijBTpOMgwZeSINakshAliUCSikLBjgkjRTIQZaZfDWmwMPAyiwENVwJH6kiyrQ0OsmlZkh0coxeTbgocTDQ1xb0jstU0TXCUZEr60LRFTraNo7Ut5QIH6I4oMijBRDTqwqvQqomSmkoX8LhJdQeldXR6A1ag7BonWFsVsPOT7OIkXUkBUx8lezhRT6q9VSpS28XJujYt9nzReo0KrLXu4gtipDqoREeNBHbl1ERFmpRjR0gRKhNRuBO+tgaVMVb38FlMbVSoTfE/udAUlZpSB1uE1Al8Hi4v6jXXv716EfBKtNwetfLvoJdb96F29QCfJq3wQQytAOv83n12dQaesEOx1eNa/OBrt6N+Dl5rq+vJwQYMceG+UPsG1mYg/56xhW/+MissPk5bpgwYT26P2jM4RmV/XiI2X7fXLVjR7x9fUsgV6N7tdwlOSEu8GWuB/e4co3YGhtDjXxWKwbh3nDtw4vcahRT4EiibQvBe/JwStkKsmgAjoRyAlGBcON45OFIChmZgfHe8F3BmZFDwfajueJeeflQgYK8y0Xe8J8/FFmDOZvzDefQ9Kc+RpWA8Oh++46UZGtIfQfkQZOPtYfSdzzU4DQk7+Z8LTCx0xGbsVT8DI9LgWt1zzfk98u3uZ7NWjMMgDANJ5yh7QmBD6gYpAqT8/2GVUYeCxF0KsorVsWqKiX2+O8sBEAp4tPAAlKI2F4VNKEXgJQeby6JDLxlc02cuDDuCayofUmQ8WlBox61izsWxgFZx3Ox8Lg4Hmp20a1JkPCxo1wI4lw+oAeAIZKqlSCDzGPTHFbBYLTQOdYvHA40tLufeMMTxXq4pGFvA4DVkl1iinHytDmDwQqNjNBQ0vRTMCEZHPvymF0QbNvzy8b0KDvw+Hd85AfHgCWyXCAGhFMp0pMQ8pFCcBHa0S0REAimNNZajDaCxgIiXg1qDiPheSuCo5pr9SxihlMDFkNZ+J/xpqrhsKNRMxBAu54ShcZ8/P4RKIk5LvR7XTxHLOeWCVEjBbBOQkmGClLakpi4Kasua2sKsurSsLY5ry/vaBoW2xaJtEmnbXNpG3f+txmtm6T3s3tOG9Z0s9xNLA/dbe/hhcePOqyf6yzPX13/e+L6eSfmd6+IAAAAASUVORK5CYII=) no-repeat}.li-img-tqq{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAn1BMVEUAAADX19fE6/fX19fX19fW1tbY2NjY2NjY2NjY2Njd3d3X19fX19fX19fX19fY2Njc3Nzc3Nw6y+43yOs3yOs4yu03yOs3yOvX19fW1tbY2NjX19fa2to3yOs9zfA4yOs3yOs4yOw5yew4yOs5yu43yOw3yOs+1PXW1tY3yOvX19fW1tbY2NjY2Ng4yOw4yuza2to3yOw5yes4yOs3x+r+1LUmAAAANHRSTlMA/gXv49VsWk03EtHHrahDGQ0hwKk+9Ni+nY5jHuMW65Z5X7QraYwO282gloJ1VDQpgkmda1aT/gAABF9JREFUaN6s0UeuwzAMBNAZU7KKVZyd2wE+UgDf/3Q/yyDFVW8tzFAktrk4c0+hUUKKakK6G3dBKRc7NHwSHbp4vcYuaOFTM9hLgfSxI6lvdW7xos31TZPsxnMdNpHSmxZftaYXMlkcVBlNRlstvrGR1KY6Ej/+UT08VvmH4t+4u8I1VHW1cZZasXHYw/eU1/j1CmHvsZkVpha7tIlit44zUGXslhWHTZ+eAqPHAT4yTFjlhDUOqikOK7KIw2FOJGORoZpxwqxolvP1hFMmvdSQqT1O8pr59wbVhNMm9euKk8iMAmaRr3NWgQ5FOIYKnwbWKKTmgA+WEcVEWrzxojyK8Ure03pmFJTZv98loahEhxfVP6FV2pwgFAPDA4ZaqOPBZR2oyKF4lEH8/7+tj0NfpgzLftPnJNnNJtHWZ/e/8Oo08J9+tG2O8fx90G3upP2sgzbFz5Mhfcw7ac+KOxuCEOLD8z9Kb4awcVYxrRkCj756Py3yY564QZ/iIDAFtvVMTKDu4rkP8dar7jKWMaZgqhm7E0AnzzYjDpH48stoQwB37eNtKTRjRRs/H3e9FSpAHD5f1l/DJfHbiu/RGKdtS0zAhbEePPoB7OkP8ccQbYYE/b0anBrqoAxXBjlOmTeSyUEbhB72Cu1oElVrH5qCJ18bQGGnrTsiFiTgx5gfeLY68b+11fQEywAFKWS16yYZ+4y7sOoOj23SJHIZQIksmtEIyz6XQCPTbltwhRKU3DUDUsErABa5yiYs0B6KuELJEJ7P3aaliPbRgix0yrhHRaQSBPSCHJMKHTaLbqDHQsbyVEMVVNWB/AXq8o2WOsEEmTI9Q8W6jG6PviTHxAkqzKDECUyHbAe8c4kEu5kRAYk4HJuMELxzw3i+SpCMOE4gNEhHu1rWd3gZUhFgS7rCNqUvnbQLeG/eapy6+9LHd09qNvCg0UX7I85cdhWGYSAa8QtJYdVXWtFdJOD+/7ddiwBupXC8svCqaqWkeXhmPOYJymcH0hNWuynGqTsuMQacgLdoO8uwb0i4bE28zgG3qB4yEv6p8ppmRNhj3bgFPGS+pjLyE+2+kGOW17cQ+JpKouEMWf6wtOl9lXX18hkTjaDiAHNrk5L/ijwgVCjYMe1cW8JIswTATuEaFtA4yjIq8xBcV8LByA1lty67jEbCIcpUwOwPIw1Fhpd46FugTCB9hZu5bsoY0/RYXoAxaoYB6atswVwb6kr2MakeItlCwktpIKnMrnGZeXgVXiQdFW7udar7nJYY0zUfAZqlI4vf+t9nPEwUvyrfiXNSgGD5bhcggwXIXIDYJVQxONEooewi8FZJk4OLQC5jFwGcQMFlrF2I90QpZiFuWwknOGPbSkAzROU5mhJshth2TseXiO0cb0PK21JzNwW9bU1vY9bdWvY2x73tfe8GhXeLxbtJ5N3m8m7U/b7V+D/KJksHx3Qv2RPWg2nKnYxFA4Nv2QMJCzcG89IT2i+eoXz5DwCy95LAOnqoxwAAAABJRU5ErkJggg==) no-repeat}.li-img-qr_app_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAwFBMVEUAAACYmJiYmJiZmZm+vr6Xl5e/v7+9vb29vb29vb29vb2+vr6YmJi+vr6+vr7CwsLDw8P///+YmJi8vLyXl5e+vr69vb3MzMyYmJi9vb29vb29vb2bm5vAwMC8vLy9vb28vLy9vb28vLy9vb29vb29vb29vb2/v7+ZmZmZmZm/v7/Dw8OYmJiZmZmYmJiXl5eYmJiXl5e9vb28vLy9vb2ampq9vb2YmJiYmJiYmJiXl5eXl5eYmJiZmZmXl5eZmZkRPPILAAAAPnRSTlMAgOT4O9ZH7ePSnnRsX04bCAJw++aJhwvyk3nOIBHm3MvJt6WAbVFAOCooItnbdO1LyMC/SUjVmopjqZ2Vju7SEMQAAAKbSURBVEjHpZdpd6IwFIZfgbKKaFkUpe5al7bW7p3l8v//1QwuGU2CwvB8Muf4nBAS3tyLXFpr3Z11uzNXX7dQjqYejnxzbMdRFNtj0x+FerOwfG8br1Pt5P9Nbfpq2PdF3Na8ZzkeBDzH6s2vrkKzhg3k0Bha2kX5bmIyWUbDnNwhl9UgbOMi7XCwQg5vhouruMYbpDh9DQXQ+g4kdH0PhfA+YsncH20UpO0L8+t9D4Xx+tz6V4aGEmjG6my/By5K4Q5O938SoiThBAzNbJfV2yZbbctqoDQNq4U98yH+g+Ece3rc5LV/LLE8GZ1P3zukg8XZdALohHPf2ueH7fB6mtKOlBQobJByumPvksjwBJ1uMgJ1p6v7EfG6Z2R5pr+A1+kGGfWDfouMB17Hqw4gmsp0hShhekKqItGnIYCRJtPVtPPO9PdOqkp0bQS0/KZMpw4tmL74O5LoTb+FtQmZnjwvTta+eE8kOsw19LFEV24zvg7676eMQNTHOlxb1FN1z37f2UjQbRezWKIfoQABMQQ9nqEb8fqSlCObT3xu2IiWOCfqMr0cTJ/FF2YPPvFzE2Rs8bWhpfjwrn1p7RsEuxERHqSvTh9fefOUZtAPkm2c/Ngo9YwvlekZ0mPDDq146m4POhHThUOLkZZ35g+6etPpSHVtxD5Y2Rd31OvPcn0a5sbFo0oJ0xNSM2ghxgULKzFtmA4GH1byqKTHDDrqd9vtL3w/BAkflfKgTo+wtRNhKwY1uyYu5nz9OfuhcHqjxy6pi7fME/BdWyCp1bhLquIVWe2CrlYeVCxOKpdG1QszhuMXLws/HAjEvaJFqd+tXhKL6MUKcr16O1C9GaneClVvxORt4AvfBr6wNrBQExqdN6FRThNasQX+AwgWdZdofh1XAAAAAElFTkSuQmCC) no-repeat}.li-img-device_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAvVBMVEUAAAC4uLisrKyZmZmbm5u9vb29vb29vb2+vr6+vr6/v7+9vb3CwsKYmJiYmJiYmJiYmJjJycmYmJi+vr69vb29vb25ubm9vb2+vr6YmJi8vLy9vb29vb28vLy9vb29vb28vLy9vb28vLy9vb29vb29vb29vb2+vr6/v7/AwMC/v7/Dw8OYmJiampqYmJiYmJiXl5e9vb28vLyXl5eYmJi9vb29vb2YmJiYmJi9vb2YmJiYmJiZmZmXl5e8vLz2HM7+AAAAPXRSTlMACAQoEtLlnl9OSDwb5MiQeQv5iYeTEHl1bvju6+HczsvJt6VybVFGQDgoIkMcU/PcwL+liIB/YUvYtaw5ANOjygAAAkFJREFUSMell2lzqjAUht+k7KItF3Df11qXultvG///z7qRcjtQggJ5PmQyjs+QhMPJOUiFLixjUqtNDGtBkQ8ycwfNzlD3Pc/Xh53mwJ2RzPKr3tqdSpH/k9Jp19Jfs7h02lPrNhLYdbU3fbiLkto3kYLZV0t35epI43I6pjaqIpW3ruvgLo7bfUMKVtvAQ4y2BSFjbY4MzLUxBNSuNjJhX3zBsy8OMuJcE8+3NBuZsTXr15m358jBvB07/2rXQC6MbvT9j1zkxB1FIlVz8uqO9hO/VDWRG1Ol4WzaRwH603DSM4voZi/MDioKoX7nD71eTK/rt5G07GK63SJ8nG1RkN2MD96xqH5y+TCI5S9FIUBVUb5jkiqKQoMxmBBFieXFAUCbBBHK7BmoMPYe/HpgjD3hiQWc8cL+IAJpUiw6EOlsDc7mro7OAtZQpG/YHuBeOdTXhBCa0IcWDF2kfwarP7C/of4BTkLXDUx8kd54Z+vb2s+hfl6tVsmn+xPUPKG+Z5/4YpVlZO+rhO7V0vQPvvoDe3mkpy2eltl6w1bLu3v3JylH18AzP7YKlo+OzhqK9S/G+PhfX/OocwQvLiVsGrcZWyG6970obHjQivUDX3u6Hgbt70+GEhodQMhtCKC3n+KfjOQHK5kuJJOVXKqUTNRy14TkJSV5Rcpd0LLlgXxxIl8ayRdmnPE1e1l4EZSlvpq1KL3W5UpiuYJcrh2Qb0bkWyH5Riy9Ddwe423gccvbwBxNqBdvQr2UJlSyBf4HshNRox/DyWYAAAAASUVORK5CYII=) no-repeat}.li-img-nuomi_login{background:url(data:image/png;base64,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) no-repeat}.li-img-voice_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAA/1BMVEUAAACZmZmZmZmampq9vb29vb29vb3R0dGZmZm+vr6ZmZm9vb2+vr6goKC8vLy9vb2/v7/BwcHDw8PFxcW9vb29vb2bm5uampq9vb2bm5u+vr6/v7+/v7++vr69vb29vb29vb29vb2bm5uamprDw8OZmZm9vb2+vr6bm5u8vLy9vb2ZmZm9vb29vb29vb29vb29vb2ampq9vb2+vr6+vr6goKC8vLyYmJi9vb29vb28vLy9vb29vb29vb2/v7+ampqbm5vCwsKampq9vb2ZmZmbm5ubm5ucnJyampqZmZmampq9vb2bm5uampqampqbm5uZmZmampqZmZmampqZmZmsMcHzAAAAVHRSTlMA8fWACOvjBPdF+4BSEcx5NBoVEu9xLfifYEsxLQzGtK6RZ1se5pVbHPXp3t3Y0MGocmVhPxPDvoc7/b+jjV45NSO1ak5GJiD+18e8pZWRbdKnelZN0wLTAAADS0lEQVRIx52XCXeiMBDHJxEQQUERFW+tR73qva22VWvv7bnHfP/PsqCtz5UE0X/fy/OR+TGZIZNMgavgMjNK6PrdPFSFA5XPzLrNTtEqq5O6dSU1C+o46BsOXZuvelTYeltoUhDLUT9s8PRMSxju50u1cxXa7/msxzU6PTvPecJGqePpYSQmBP5sVlIF8H6/pcV4c2ExDHulS5wUqlIWfCgjnrIeTy4N8KWcOGT47grgU7HLsCtuyQDfioq5nZyL3nF7OzOkMBwktbAdakmFA1W629qpHU7aHk8CJ4/MmapY3VTJGWenBihRCA0w5xKlTSn02PRPRJnISH+xJoXWd/Y5zk9oigwWA1TwhLl7+1+Ra0w6QhGduBu2/wjLvbgunusEE18QWln9qFCyYBlYKy5vGpy1k+TqR5JQ5urH3VUFvXLSjjTyHQU7+S1n9TOdh6d+rHGZg/fn9qBFj8WHFkCwKRyLR+3glx3GYR34u4s3bp/cl0nTzlzRjaeRPuzg7Wd020lVGFmsdZP0VuZTNl5DBq5lIVFm4pWd715DxW3XG4POKPVPWR7ADaHpdSiU3ABF6rYrZkCfuB9XCH5AhKDy5DhHJJF8CmtM/K7uftyQHeM0Khh4CBCFpp0X/nbbnU9hboFbbST3ABcUFaIgvjilTyqM1OUgdMXA0wRreYABJfbfwDl2sMboD0QDqhKrltvPcluwo6gMKg0nDOdLuhQ37aGZZ/BPiLLy8LW5PijKbwyjacGJn3lU3VBE0g6k7z9vaQrJS5B1WjpZVyfA5NsEUSGE2iN9Z9FQDNvDuMBpcv7UVixJ3SbZBmbcGcUlcLR4VxDvf/AuuvX5XubfUEmCF/x7arSu+s5ReNxZu6Or02PwWXnTyx2Bx83YZuuPODYNxDfOVLm+1ewYPD4pcFrAVhw2qltwmILacLtENP0wvH/9f68lZQ6hdU3Y7bWyhzRWMVe3fRnzS0/NKOPG4rW0bkdRfkN9fEudk9T9X6zPb+iNQqnqTWcL1wJ/VlA9/9uIl1tD8FS11NIFDjwz6/H93X5ftMbumMMls+zv08YS3VZ/GM1v3E4TRbM3ioNvxeZWtylpvWLxXBPNQj3MZ/l5yI4zmWnO8DD5B0zwWnMFdY1SAAAAAElFTkSuQmCC) no-repeat}.li-img-huawei_login{background:url(data:image/png;base64,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) no-repeat}.li-img-feifan{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAsVBMVEUAAADX19fX19f29vbX19fX19fX19fY2NgAjtUAjtXX19fX19fX19fY2Njc3Nzb29vX19cAj9fX19fY2NjY2NjX19fX19fY2NjY2NjX19fZ2dna2trh4eEAjtYApvsAjdUAjtUAjtUAjtUAj9bZ2dkAjtUAk9gAlt0Aj9gAjtUAjtUAjtUAjtUAj9bW1tbW1tbY2NjY2NgAjtba2toAkdgAjtYAnOIAjtUAjtYAjdTX19fhoWO8AAAAOXRSTlMA+qsE1uzhWpbk88eeQxkO0Du+jm9qY09LOjQeEHcE2IvtrVYT8x0PL7+zpp9J6JaCdV8pKIIJyGk8kZE5AAAEUUlEQVRo3qzNt66DQBSE4dksbQBEXqCkdhDdef8Huy7taxsT9mtHmh/b5IO5cVdoxZjSheM3M+RIJe+rgh6sdCX3npdOWnooqj5BJG9LRiSvTcjwJAvNVRKxsj3X6Dkj5U2GjzLjFTHe4yBhJDHeCawQHWckjThy30q63Cf8NN0vJNvdiViQbgQ2EY2mImKP2ZOtBTYTtSU/Y7NOEc+wS8ZJddhGVKQDdguaKoENRkd8wgETJzfip0GxGgfVTA34IVgVcVhUNmCVYXrBCYtmZvWf5IhTRkkrhcDkjJNmyQK+GKwecdqo7fBlUWpBAotSIz4QjkUkEZkTeFdRjURqqvCmI45kOHX4Z1Z6QjKTVjNeeQpIKJDHi0gcSXGKeCL+WK333gRhKArgR4oO1CA12WaW8RCi04F7EOZ2+f4fbLbgK+uda+YvJhj/6NHLsSUcBgAvTxIJK8EwFDi6+71BH0SUWTfpDgfCHQjwItopYEcMXHGyx93C7KmWeUqKB0u3J7ue+yKMq6cJ7fkrWBIvLjqz5h0Gq4SOVrD23szQcnqPpu/v09EnTi3TdSkByNSrtuA89hxok90bg5KI+QX5gnbWdaZnJ8FxepOuo/f4aUlnFtVxfTq3AeO+a+q0L4zd1/ysmJOSHZIXdM7npiT603ZCYxj4pHhbINZZJTqqtSmkvjOyXhNRBcZYz2hmPqVJSWIoMlFrdtZE81hfSLaT/OCfIWb6oAnYgAiteBNJdDz1sb5QDaBQOYxAHzyhCz7AVN9os5/UEsC2qsFyQ2DSvPIBz2CVOuCC12aCB2YfIi0HY6m69XV5P3rADXOUdWVMnrOsKMqy9M613S08L43yJ/AH2w3emoAJ+LN5xd/lNzhDMAEWvBhmQwcjF0ZzspFyNRqp1/8D2P/CKMRgepWADEbTAfrOVQJ8GDl99MYw8skOt919E2c2OwoCQRDukDWB9bLzAIwshL9RLgaBff8X28MOziL5EjB27JMaQxGaqa6q1gc4RJoA0QGavBvgG5v8dXwJwAlf0+PHSwBaPGjR5/MAt7q7kwVRBZDdNgAr4vzHicgO6fq0AaAXO/+tIbrGgZNvOb7xfP0RBw6OzOmHqzzH4/KHHkcmDv2Bm9DWImLcv+t3OPRZtkiBr7ztXJ5WYvL5SRmWLSy8RGKifvM3j41Uk0uSMa2FhRdLRxGbw5l19x4XXriwdETxywi3esFBYyPC4jfId7KX6zKL5iS+vyjfvQGh6pIVbdpz+FJm/vmTAQkWimpIk0eFUs4370J7yUIFE8hlTXGd0jZ4qaYoOtNUwwYTuLaxXI5pmW3s2ohzXVH/sBHHKIEBsl1RAoUhHFhkdk8YAnEOVHO5pP2+OEc7kNKO1NRDQe1YUzuYVY+WtcNx7Xhfe0GhvWLRXhJpr7m0F3XvXzX+jrLJ0sEx3Uv2hPVgmnInY9HA4Fv2QMLCjcG89IQmi2cIL/9hIWX5DwDxxHRbWuJ7sQAAAABJRU5ErkJggg==) no-repeat}.li-img-meizu_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAjVBMVEUAAAAApeHX19fX19f29vYApuHX19fX19fb29ve3t4AtujY2NjY2NjX19fX19fX19fX19fY2NjY2NgAp+IAq+YApeIAp+HX19fY2NjX19fX19fY2NjY2NgAp+MApeEAp+IApeIAqOMAqOTZ2dkApuIApeHW1tbY2Nja2toApuEAp+QApuEApuEApeDX19e4gPZeAAAALXRSTlMAZvfVBK/s4xsOC1o3x62onnFCMRydY76OamNPS0DnTHdSOBNb8ZaCKbwlzokphfAyAAADSElEQVRo3rTS2VarMBiG4a9JzNAwa2V0q7va1iH//V+eOYBKq7TUwrM4YIV/8RIA45jAbuOQK8mYVDyMtzYwmIppipA8xsM8SpIoDzkjLyyaCSKmyhkR35SZRo/Oyg33zby6rtHEjGRiNX6lbSKJxQ3+SFhOLKrFyZk6YsStwOVExUmlBmeZVBGvLk4EnFQpMIoofSLAJdYJsVRgNJEyStYYrZYUa1xExyRrjCMKUhkulikqBEbQIUUGf2AiCjXOCiRL8Ucpk8HZjZ6YGfV0GU6yTO1whZ1iFidY4hpX0ZzsqffD17jSmg+/pYApjatpxYKBK1LuMIGdlBq/EKEvTyJgocBPBaWYSEoFfqgpwmQiqnFkLZXBZIySaxxKKMOEMkpwIKAYk4opQI/gTGNSmnGBbxWlmFhKVX8DSmBiQvW2YKnE5Eqy6LQbmHwLaDWUYgYpNd0vxQxmYFjcnUSYRdQ+eEU1ZlG3f2ouBWYhZA7PsAQzSZgB0JDFTCw1AArSmImmAgDnmA0PAUMbzGZDBgGVmE1JASxlmE1GFtv+NxaPiwOP4mjxBXhfLO6A+8Xe8xJisbhF68EPdTRtETN8e3NHVkeL/4B75x6A14OhpXNPaK380B6LEXLsvTv3euN9OPd24/m7LNvF1qoLrLoVP/M5HOAh/LF369w9vEfn/sN7cu6uXex0gc6ncx/L4UDIofKDwHM/sGgDz0MBsXLuZonhQK4go/OBl2VHHASW/vOsBE4EIgmWnA30vPQDdx/tfYcDCftq1gxaGAZhKKxzuwxkh8puG6O0h7L6///enCDNijhq+ai5tNVCQE1M3ns7HHTP+P3HQf0SPUY/xpfyElVv8hCCIgVXcZONLTrIH9M49XZKOJjT+2V1TK0pO8gHWhj0Uxoc1Hn5Z/KrQLudyg7yqcJ5YfN3XYS9ZKr4SXZOayefndbXfLILU4v1McUlu/dKJjs8XeMXDn9lKote+njZghdeeOlIF794+Y43IHQLhTeBdBuLN+I4lECDITicQwNSNKSGg4I0rEkDszi0TIPjNLxPExQ0xUKTRDTNRRN1x1ON+8jSNujeasK6Jcq9QjTQnuxhg3CjZelJEs+YnHjGVIhnAPnPB5DOfF7ZVT85AAAAAElFTkSuQmCC) no-repeat}.li-img-chuanke{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAt1BMVEUAAADp6em+vr6+vr6ampq9vb29vb29vb29vb2+vr6+vr69vb3CwsK+vr69vb25ubm9vb29vb29vb28vLy8vLy9vb29vb29vb28vLy9vb28vLy9vb29vb2/v7/AwMC/v7/Dw8Ozs7PR0dGZmZm9vb2ampqZmZmZmZm8vLyampqampq9vb29vb2ampqampqampqdnZ2ampqZmZmampqbm5uampqampqdnZ2ampqZmZmZmZmZmZm8vLyQXjBPAAAAO3RSTlMAAk9HwAjt5cp0XzwbiYcRk3nR+OHczsC3paCbbUA4KCINC/XUyJ3g0rWkgH+ulYwo6djUdE9EGhiHMpDXbCgAAAIpSURBVEjHpZfrdqowEIWHhHAHAe9KVRSLVj29nV7O0fd/rhZoXdhOQjD7Fz/4VrIyOzszwJW2oE4SRYlDFxq0E6O+1e2NJmEQhJNRr2v5lEnDN1NjuHdr/zN3PzSmNzKsRgax7cEveXY8IFoT7W4sAhwRa+MK4c7YJCAQMccd4Gre95cg1NLvz4EjajjQKMeggMo2ZyChmWkDoujkgZS8LETWzlKQVHr6tT41PZCWZ9IfZ27MoIVmxvyi3n0HWsnp1+s/9qGl/HHNqeayLb40z/7VMgKtRTba+SrAFTpfrQG5BieDr3SI4SrFVX5MMQ8/6KvDd23eDo//UsSn0zKJDMxv6+PxeF99vuef338R7xmssOsQEB0/pVeWei6+18g/w8K6wU6Ip8U+0NVh7xcFcEU400v6D5qLFoDWZQJc25b0LRqxrKvBogd8XLs705h6C6AjAX4rpGFEwZnw8XsxDRMHkpCLrxpoCBOIAh5e6Y5PQxA14utUiIs3L+bDROLodMY/OmHhvsq+ZfzCiW2zrXi+bcSmZdWFOfBM23RlOs/88rlW84V9y7lXbu9LxMXDY8m/YHFRhZUQh/9l/Z+wsOJGZV7b8GvB50hU8oP6JV/p77XYfXpFglrtmVB8pBSfSLUHWrk9UG9O1Fsj9cYMwD7Jt4UZ4tMwlm1KT5FaS6zWkCuPA+rDCC43E41Cmas2iMmOgbvLMXCHjIF8MRpcDqEBZwhVHIE/ANC6Tp2hu4zRAAAAAElFTkSuQmCC) no-repeat}.lastlogin{position:absolute;top:-3.3rem;left:-1.9rem;width:8.2rem;height:4.8rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKQAAABgCAYAAACTzNnjAAAAAXNSR0IArs4c6QAAFFBJREFUeAHtXQfQFUUSnh8wgihmEMwJBWOZM5JUPKFK8QyneIochpLCKuWu1DKVuRBL5QgWhWJAxYRYByJYmHMCwZxAMEeMCP/NN7xe+vWbmZ19Yd97/9up+umenp7ent7vzU7apUmVJzWVx0xmpc4j0Fyq/8UAqZg6pfqZ1a/fCCQCaSi4QvXqN2yZ52lEIBaccUCLKy+lEZW0XYpfWd2VEYgFTwmBctr2gcJXFuJLqfVDrpHpVC8CTlAFumSt7wKNS+67VjF1uL1S63NbGZ88AlaAJDBTTP2COjYQ2GQ+v+L048p9trOy2otAAYiEi3HlQl3l6UuwyLyszPMuXZec6saVk15GayMCeYCxuOQqd8ktJlaBUoJD5m2VIbPphcqkTVs9qZPl04tACJBsOqEyW0uiuhwMnLdVgsymI2Uy76onr2GrJ3WyfOUiEIHCcwmbjpTJPMzZZPIyRoeDgPNSGXlZ7sv7yqRtqSvLs3y6EfCBR5bxPOfhcVxetsroczBwXirLMp5PynPbvC6XZ3x1IyDBRN5weVIeNngdsknUlBEgiFKhpLzcxkeyL7/8cqf111//n61bt+7V1NTURRtqJ41l+bqOwNLm5uaFy5cvn/ndd99N2GSTTeaz1hDgiKLIxbNqERvpAlCuv1a6jP5aa57+2mgef6vh7/rrr2/7119/jdbOLtd/WWqMCCzHPce9JxzkMAFcEE5ACT+gLpxFnZrWcSpxQ/wCBWBcsWLF7Ma4B1krZQRw78sEymiikodOIDSXuJz4Aqp/JaP0I3ooVcpo40VAP8L/26ZNm2G65fTYdVEEh8pkoJrRA7oSAQ/lxBfQRYsW7aTBOMRlJJM3RgSAAWDBhxUWCcIRE61k6ZleUOARkDHQpo033vifmvqA7TGVFbWgCLTKYcHgItcuwkpoM5tcQOKGiCcK4+BNXnfTPUOvlum17AgwLET4yLWYsEMUYs5HgXEBMlIQjDSiV3bM0o5Qy7KNGIEcFgowkiQWcYAk40RhGzz/y9YZk0S8ZesCCxwbEjdoPZcVRCMOkLyC1xBXzPgsAiICwdjBeqJMvsook3+yfpZv7AjY8ONa5oFuXllID2m7QGOHPGt9sRGIxZIPkLGVtVchOsU6n9WrzwiEYMKpY3tk28IAA7Y/m24myyLgAlze49kWJl8PadPPZFkEKhqBUgHp+iVU1OnMeE1HoCRMxAHSZ9xXVpGI6VMmatKkSerxxx+viH0yOmvWLDVlyhT122+/kagi9P3338+zi/bpQwp5sjrN+LDhKzPnGYtps9doMQZD6uCGPfPMM2q77bZTvXv3DqmSp/P999+radOmqQEDBqh27dzr+U899ZT69ttvjV6egcDMO++8o2bPnu3U3nnnndUvv/yiHnnkEXX++eer7bffXukjXGrChAlq6dKl6qyzzlKrr766sz4K8MP8+eefvTqyUB+AUEOGpHYOBhiJHTNKH0MnNbxeVcDIHSiWf+mllwygv/rqKzVs2DCFGyQTAPHFF1+oLbfc0lou9W15gO2zzz4rKPrjjz/Ur7/+qjbddFPVs2dPNWPGDHX//ferCy64QN12223qjTfeUAcffLBabTWcefYntAE/sND0ww8/KPygU06JQZkUkBKMMp9ye5Ndrk+fPmrhwoXq5ZdfVvfcc486+eSTCwx88MEHRtalS5egG6j3bwtsbL311uqaa67Jk+szo0bWqlUr07ujhz7iiCPUQw89pC677DL19ddfm3z//v1NPQAXAO7QoUOeHcqgZ02SrrvuOvXpp58mqVKsLgLCkS/zXrsSkIXRXbXWaCvzGq/FwlNPPdXc/KeffloBOPvvv3+emwRIlOMvLt16661Kn3KJ1PSZQHXDDTeoXXbZRZ1yyilRGX4A+DGcccYZ0XABveRrr71mgHLYYYcpAiN66VGjRpnH96WXXqrWXHPNyH6dMgRKorwZebJVkeQqq0CYL20BOTwOMY66/PLL1b333mvGoxtttFHUMkw00IthnOpLAG7btm0jwJFup06d1H777WfGkPqFNzV06FC1YMECM1TYdddd1V577UWqpu7ZZ5+trr76avXiiy+aH8d6662nbrzxRjNsOOmkk5xg/PPPP9Xo0aMjW3HM4sWL41TSLs8DIl3cBUgqJ4rKLSbptyIVbjbGbQ8++GA00H/33XfVJ598orp3767OOeccZ3vxeL3ooosUACYTwHz88cerLbbYQt15553qqquuMrN1TFKOOuoo9eOPP8oq6sQTT1RjxowxvSJA/s0336hBgwapffbZp0CXCwDK0FSF8aN0zQpAqRQKSFkP+aqBFGMrPP58ae2111Yb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) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}#pageWrapper{width:100%;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#question{background-color:#FAFBFC}[data-role]{-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.wrapper{width:100%;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:none}.mod-content{padding:0 15px;-webkit-box-sizing:border-box}.mod-content-code{padding-right:0;-webkit-box-sizing:border-box}.pass-form-wrapper{margin-top:2.5rem}.pass-form-item-username{position:relative}.mod-page-tipInfo{font-size:1.5rem;color:#333;line-height:2.1rem;padding:4rem 0 0}.mod-page-downInfo{padding-top:1rem;clear:both}.mod-page-tipInfo-gray{color:#333;text-align:center;font-size:1.8rem}.mod-page-tipUsername{text-align:center;font-size:2.4rem;font-weight:400;padding-top:1.5rem}.pass-mod-loadingWrap,.pass-mod-reSendToast{background:rgba(0,0,0,.7);text-align:center;min-height:3.4rem;line-height:3.4rem;color:#fff;width:50%;position:absolute;left:25%;top:50%;margin-top:-1.7re,;-webkit-border-radius:2px;z-index:151;padding:.8rem;display:none}@-webkit-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}.pass-mod-loadingImg{background-color:#fff;-webkit-border-radius:100%;border-radius:100%;margin:2px;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;border:2px solid #fff;border-bottom-color:transparent;height:20px;width:20px;margin-right:10px;background:transparent!important;display:inline-block;vertical-align:middle;-webkit-animation:rotate .75s linear infinite;-moz-animation:rotate .75s linear infinite;animation:rotate .75s linear infinite}.pass-mod-Mask{background:rgba(0,0,0,.5);position:absolute;top:0;left:0;display:none;width:100%;height:100%;z-index:100;opacity:0;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.canshare-account-list{margin-top:1.6rem}.loading-img{background:url(data:image/gif;base64,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) no-repeat 50% 50%}.loading{-webkit-background-size:30px 30px;width:100%;height:30px;margin-top:14px;text-align:center}.loading1{background-position:50% 20px;-webkit-background-size:60px 60px;padding-top:100px}.canshare-account-list li{height:8.2rem;padding:2rem 1.6rem;margin-bottom:1.2rem;width:100%;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-animation-duration:1s;-webkit-animation-name:fadeInDown;position:relative;background:#fff;-webkit-box-shadow:0 3px 16px 0 rgba(0,0,0,.05);box-shadow:0 3px 16px 0 rgba(0,0,0,.05);-webkit-border-radius:4px;border-radius:4px}.ajax-loading{-webkit-background-size:1.2rem 1.2rem;width:1.5rem;display:none}.canshare-account-list li.canshare-account-active{background:#e7e7e7}.user-avatar{display:block;-webkit-border-radius:4rem;border-radius:4rem;width:4rem;height:4rem;padding:3px;margin-right:12px;overflow:hidden}.user-avatar img{-webkit-border-radius:4rem;border-radius:4rem;width:4rem;height:4rem}.normandy-other-login{border:1px solid #EAEAEA;-webkit-border-radius:3.7rem;border-radius:3.7rem;height:3rem;background:#fff;font-size:1.3rem;color:#363638;line-height:1.3rem;padding:.9rem 1.2rem;margin-top:4rem}.normandy-canshare-title{font-size:1.4rem;color:#666;line-height:1.4rem;padding:4rem 2.9rem 0}.canshare-account-list span:nth-child(2){-webkit-box-flex:1;display:block;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:#999}.canshare-account-list li:last-child{border-bottom:0}span.canshare-account-displayname{color:#333;float:left;font-size:1.6rem;line-height:1.6rem;margin-top:.1rem}.canshare-account-tip{height:25px;display:inline-block}.canshare-account-tip img{display:none;padding-left:10px;padding-top:4px}.mod-btn-wrapper input:nth-child(2){margin-top:10px}.mod-intro-tit{font-size:14px;color:#666;margin-top:10px}.mod-intro-info{font-size:14px;color:#999;line-height:20px;margin-top:10px}.mod-send-tip{margin-top:1rem;color:#999;font-size:1.4rem}.fast-reg-tip{margin-top:65px}.fast-reg-tippaymsg{color:#969696;font-size:14px;margin:6px 6px 12px 0}.fast-reg-tip li{margin-top:10px}.fast-regSuccess-tip{line-height:24px;margin:10px 0 25px}.prompt-css{margin-top:10px;font-size:14px}.account_login{color:#1b66c7;float:right;font-size:14px;line-height:35px}.pass-form-item-code,.overseas_login_header{display:none}.text-input-code{padding-left:2.3rem}.mod-agreement-info{word-break:break-all;line-height:2.4rem;font-family:PingFang SC,Helvetica,sans-serif;padding-top:4rem}.mod-agreement-info h5{margin:1.5rem 0}.register-content{min-height:12rem;text-align:center;visibility:hidden;display:-webkit-box;display:box;box-orient:horizontal;box-align:end;box-pack:center;-webkit-box-orient:horizontal;-webkit-box-align:end;-webkit-box-pack:center;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-moz-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-justify-content:center;-webkit-align-items:flex-end;overflow:hidden}.other-text-reg{font-size:1.2rem;color:#999;z-index:0}.img-item .item-icon{width:14px;height:14px;display:inline-block;line-height:14px;padding-top:30px;text-align:center;background-color:transparent;padding-right:15px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.item-shoubai{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAfCAMAAADDR10IAAAAjVBMVEUAAAAwbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf/r1LKAAAAALnRSTlMADt368NLGtgvnzasjFAgF9IF3TEDr4Z+Uj25RRSu6pJpqWBjZwHtjUx+IhjSwTBwNhAAAAXBJREFUKM9lkumWgjAMRj+sssgmiKgsOo46rpP3f7xJUvDY8f5pmgtNmlOMJEH95WmUHfEPryaiQKJ2RUHqypKECugMr2dX+iq3yGoNlo6MNBfjSsrGkRPN7VFY+eXIQHM/+LHyAstx7T88fEvKJHalKLQuPPFmnuGXl4K3WvwKS0PCHXmzacH0u+msxfFQSMNnlSs4JCsZSY4pKaEj97a9UWaSu7VV+HbrGfzXsWnMwfQAICfF4DLMDd7JpsqXXADyve8Ba7KYClhoNAFQHTrA3t6WuCFwZ9gZ3gw/z8M+kh+Pg1vKQfDIsgvDtrlmg7sYsnK0KiwbolNRlizjmJvcnclP39w+B8ASkLt7XDAZ6hHVGR6T2Ztk643PZ4OOh+NIKjHM6o7Dh/RFpvqwEjNIM8oawpQbTNCXDSdT9N3TyrnKtZSvtFv71q3cquwNiZ4zPPaJIIknlG+2HxQYSIp9vN42VYr8ttz60SIKlpL/Aw9YRuh9rZgdAAAAAElFTkSuQmCC) no-repeat 50% 50%;-webkit-background-size:14px 15px}.item-tieba{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAdVBMVEUAAAAwbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf/LFGklAAAAJnRSTlMALdJb8A5EHndL+syZu6qkN+HuyCcK5pSHgGfz6NO9cmxlVTYUAYSstRUAAAC2SURBVCjPzdDJDoIwEIDhkSJU0C7s4L7N+z+iMzVptNSD8eJ/aJv5QkMK95NFXwMAS9pzeHbElxYB2hjqtVZKaaDjOXN59IEbuT7hrqoaeLuW693IL8EP/T0KOdI+SG4KMUH0pd/ifsMlcRTArX7HlhYTw7osc4M84lOAXE+ogJvjoiAsTBRNh1xn5njR/N1IS6FEyzhknESsADkJgjR8vpIx5YuudoYCtrW8AddOh7SB0pMV8AADADyRZvtGZQAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:14px 14px}.item-yun{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAbCAMAAAAu7K2VAAABdFBMVEUAAAA0dvw2bfw0dvwyfPoyfvc2bPwvcO4vcO41cPw1cfwyf/w1cPwycfcze/w0dPwyfPUyffYzffw0efwubOwzfPw1cvwxefMzePjIQjg5b/Y0hPo1cvw1cfw2bPwzfvw1cvwxePMzfvw0hPoyg/wze/w0dfwzgvkye/Q0dfwye/Qzffw1b/w0hPozfvw2bPwtZucyhPw1c/w0efxVZtI1cvw0hPoyg/wwdPM0dfw1c/w2bPw1cvw1c/w1ePu7RUYzeftaccdKbOAxfvjSQCzFRD2zS1QwdPA0ZN8wdPDSQCw2bPw2bPxoabcwdPAwdPAyhPwyhPw1c/wzfvwxdvGVTG+zRk5hW65SY8svbu2nT2U2bfw1b/wygPw1cvwzfvw0ePw0dfwyg/vSQCw2bfwvcO4yffYye/Uze/wzf/cxePQwdvIwdPAye/lPbtjFRT07eO8uYuR6VZG1SVAtZuhDZ9RVatB8X5eQUXmdVnHDRkDQQC70GNcVAAAAXHRSTlMAA/byPPDSuIqCfG5cWlM3NiYK7cm/tm4d/v369/Lq6Ojo5+HXz83JsrGtpaWjmoaEeW5hU0pKREAxLh8aFAH9+fHo3NvQxsLCwLOysayjoJmWkoZwXV1ZVFM3LbwkyeMAAAGjSURBVCjPlZBVVwJRFIUPw4CSIlJ2d7dI2N2dSAwI0mH75z2HewdYC3zwe5i797f2w70DlXgXxntbW3vHF7zwB42DIc5gI9TEpHopoTJBDRyq5wpUDqhmKEqM2O0jxTBU4yJxpNtE0dRNufo69gQisrxE+bJqcpJMJvfksoPluGpSF4lE6uVSj6XuvxOFOH269pF/s8jCEklEN86mRYUsFvtCROHn85aJu3iI0bfIhM7H+JKklRsShpSvhI6EkZfstyRJhd2pKQtbcIwA5h4/0jlxtC0R+dxryk9YLyY66ewxg47OUTMAXDXjpDlXXKQMKMyjFHVgjcVi/ezm1zjJZGPI6hJ7aT9mKzQFAoFZYGxKmXQAaVrmYpYKkBK52WcLpRM4IlVQBoNBIzdb6SCibAAZI1UYwO8wE/fvfFFiGPsAaJ6QGeqedYrtuDDYzj1kZkhowN1Gp00/r+2i0IILJ55d2nm9jUSbG0D7WEHLHADoK42WHj9W7gItwNFeNmMKoI1GCDPU/H88qLkQNLQgXJNqIdxxqJc7KAwHHWFBPemi8gvfwZrL/V/n2wAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:17px 14px}.item-map{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAMAAAA45HFkAAABd1BMVEUAAAD1TkH5hn38wLz2Vkn4gHf7pJ78uLT8vbnzNSb0RDb0Rzr0Oyz1Rjn1UkX1UUT1UET3bWP3dmz3c2n5kov6m5T7qaP7sq35jITzMCLzLBzzKhv0SDv1VEf1UUX1UUT0Sz71WE30SDz1VEj1Sz72YVX1Sj71VEn2ZFn2WEz2Ylf3a1/2Ylf2b2T2ZFr3bWL4gHj3b2X2Ylb4gHb2XlP2Z1z5jYb5iYH4hn33cWf7qqX6npf5lY77ta/7q6X8t7L6pJ30Qzb0RDb////0Rjn0QTP0PzL0OizzNynzMSLzLR7zJxfyJRX0MyXzKRryIhL0Rzr0PC7yIxPzNSfyKxz0OSvzLyDyHg73amD5npj5kov/+/v+5eP91dL5l5D3eW/2XVH1Sz7xCgD//v7+6un+4d/92NX7qqT6nZb4ioP4h373dWv1V0v1UUXyFwr+9fT+7ev929n929j7vrr7vrn7sKr6opz4hHv3cGb2YlfxEADwAADvAAANfL5uAAAAQXRSTlMA3XEdzmE7Gg367uvi3dnHu6+bkmNiQjg3+Pj19Ork5OLc19PQz8y+uLGuqKainpmUiYaBfXdrY1hHRkU+MCkTBEHgNf4AAAIcSURBVDjLdZIHe5swEIYvdhI7afbu3nvvPaQTYmPAeNTbzmh29+6P7xmw6yb2Cw8Hep8PoRPQZeXB1UtTF2buPYWDjAyrWU2qkq5DD9/0mlfTga1wzhljnGv65PN/anTMoHE6Iit0Y6GjlvO64CyECnmhZRYjlTyad2NFkKKk5iyFbspx40wHStpjaVIjZjQoFF0VXS+c2+RO6zycRhG7TaWT5lyVr2FUjwfyjfKm33WMOwm4a7SfhAxaLr4rWIHren7WJWtcgcsaVdc2ivUa1jLfdzx1b/unRkFvCIa8divsL0hs+/jB8X9Qvj3/ETjl0Sutr7heLGHJx0+GWcS3GXJ8vJ1j2Sau7v0RWPNxI3acUW46x5i+i+Wg0MCShVXLinPyDNyg5anae9z53cSSieuZViNy2WEY0an7Vh1xo4KbrSquVdfwW4GmC+YhrajUXqv+EVcrW/v8M2K5smXSZ9orALcCwQSzbEUqzNUNKaWiUFvy5wEgpeXolsucqkrBFSphdV4AkShwIuwhndFmicx1CLnmd/emu0PnIGbGassoGSp9Ig0dJo1Qxq8W2WNJ6JI8bgsWw0XOXIIeXuazgvFIec4T+I9nZk5E/4bMJOAAC6aM1mHNwyHm/HZQBMPQh3Gbgp6e7OcWTcqZd6AvJzQutVR/N+cI4yL0Z9RWjEcwgJN5JTXIzRbOwiDu788OdIlfNwe65YnH0MNfzWOzs64Gx8IAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:13px 20px}.item-waimai{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAMAAADn2eWTAAAAclBMVEUAAAD/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEyWrCWWAAAAJXRSTlMAw+9LtIfSeDz5XTIcEAvr4tXKt6aQbzcFA0QlGLqun353Uy0Gl7BG3QAAAK5JREFUKM/lz0kWwiAQRdEfYlRC+r6zt/a/RU9EIAqswDerf0cFpkLHpp5dwWo0TFaDVDhQeKQIFGBHsuCPdRFpJhKI2ak6l45Ga1sTo6WtscaEa+VKy6fSlrTmpGoGibFezghIFyQrRmaI0JIpXHVv7jsmv/IUY+HVBkDnVQFgKD16wZrgTi1S/aCt7AF8mFua99D1xY9WMzalLd9o3g34brlVUqtTnMFR9l5HmF5+40kC6aqtOwAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:15px 15px}.item-nuomi{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAMAAAAIG46tAAAAjVBMVEUAAADvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHL1rlf2AAAALnRSTlMA3SzM8IhqeFbD4mYx+JY7A3Cg9LqqJFEXErOlkIt/YRsJSzYP7dKvm4N1QtQhF2XLpQAAAX5JREFUKM91k4tugkAQRe9KER9QEOShohTrs7b3/z+vd4qkaNOTkN3kMDPL3QBjUSf4lxeOYFRTN2ACrLahyYMfAw2HTNWSS5NzLVitPTFj5hklMKEzuWWOO2Or6YgZmczpY+yJvlKkeCMrSY9jTPkEkojvkkfuJb252NB1C4EZyxe+kyNJf5XOf2bGebg3uTt9qXK9TEyGOvRCcseF5DCElAuEBwSSSZyMIodaWZAz585tUsEqg64SbYKMPQUUQ9qo7RrxJoSIgyCIWAdBiTsr30RH9ZNtobri0z0wBjz7zjjLWpR85AwNvUnayHZx9cWSkS27IERLjtRWOeFOrgN19NkqJyAsJyJjOjFuCUIykTyxwZ6PXHDjEZJLfihURseIUS9df9k5tyYtPF+bVxs9s5hN1kxN4le+Sl55Nrnj+q/UczE5pvckU8mcvkmNfpIbycbFJt9O279yeNlzkx+8ounaOhguqmyJ+anE6i/9BSN769JFqL1RHDCgSL4BhU47dLtijlIAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:14px 15px}.item-purse{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAMAAAAFBf7qAAAAhFBMVEUAAAD1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTLHUw/gAAAAK3RSTlMA/AmlBeTbhzjsvRfx58v4sJNQQzs1JRH10n5qY1hILh/W1cW2jnZfKqCbz/BkcAAAASdJREFUKM9tkut6gjAMhkMRaBGnyBk56XS69f7vbyQppWO+P+Dr87VJmgbEtRfgUkSNDi4kY13H0TN7TdMo+/auNPFEK9Pv+ATkR2/xGp8j7nztckgHJ3l3sEY87OAP4mYMCRv2H2QEPfxzQnJOFUDbHFSYChuNz3yhvB5J3yq2IlpdgMkTKj9HPXmoI7DcaWs5qweK0C2ZEiSzoDt1XE/Gnse59/irASkDE9enrsDIzWSHc/J2DTl+U1yjYzxS/CYPADhrIrHJQFIjbIZErqdK6t7yOKqAJYAHgna82FMjINRTZS4YAsEXL7QprSPhg6XiFot5Jxcd22EjhysbzKx8V1hByKuaY8frKFkhbas3eGdYcMeN772SB84RfzNv8qQw0zFsBTC/ojA+33fBVWMAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:13px 15px}.pass-user-userlist{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAP1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzJYIvAAAAFXRSTlMAZmFNDAM5XVlAHBcSU0hFNDAsIQblJJu8AAAAY0lEQVQ4y83TOxKAIAwEUDco+P/f/6yW2yXOWkha3jCBbJq6KqXbBwtS54K2fyHWQBRsfhtzwRAIi8RkyF/FaNgDARy+uIDTFxkm3sAetFfwH7RzzkKbJvMgJoqZFFPNvfilHgy/AoabbxK1AAAAAElFTkSuQmCC) no-repeat 50% 50%;background-size:16px 16px;-webkit-background-size:16px 16px;width:16px;height:16px;display:block;cursor:pointer;margin-top:13px;margin-left:5px}.user-text{color:#999;font-size:1.2rem;line-height:1.2rem;display:block;margin-top:.1rem}.mod-page-downInfo{font-size:1.4rem;color:#999}.mod-page-tipInfo-black{font-size:1.5rem;line-height:2.2rem;margin:4rem 0 0}.mod-voice-sms{float:left;margin-bottom:5px;margin-top:15px}.sms_verify-voice-verify{border:0;background:#f6f6f6;font-size:14px;color:#000}.mod-voice-sms .voice_sms_disabled{color:#666}.mod-unametip{position:absolute;font-size:14px;padding:0 5px;right:0;top:50px;z-index:14;background:#000;color:#fff;opacity:.7;-webkit-border-radius:2px;border-radius:2px;line-height:44px;display:none}.mod-unametip:before{display:inline-block;width:0;height:0;overflow:hidden;line-height:0;font-size:0;vertical-align:center;border-bottom:8px solid #000;border-top:0 none;border-left:8px dashed transparent;border-right:8px dashed transparent;content:"";left:50%;position:absolute;top:-7px;margin-left:-6px}.success-img{height:5.7rem;width:100%;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/bindsuccess.png) no-repeat center 5.5rem;-webkit-background-size:5.7rem 5.7rem;background-size:5.7rem 5.7rem;padding:5.5rem 0 1.7rem}.mod-page-bind-tipInfo{text-align:center;font-size:1.8rem;padding-bottom:1.5rem}.mod-page-bind-tipInfo1{text-align:center;font-size:1.5rem;line-height:2.2rem}#face_login{background:#fff}.face-login-link{display:none}#face_login .face-main{padding-top:6.8rem}.biometry-loadingImg{margin:0 auto;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;height:30px;width:30px;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/biometry-loading.png) no-repeat 0 0;-webkit-background-size:30px 30px;background-size:30px 30px;display:block;vertical-align:middle;-webkit-animation:rotate .75s linear infinite;-moz-animation:rotate .75s linear infinite;animation:rotate .75s linear infinite}@-webkit-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}.biometry-loadingMask{top:0;left:0;width:100%;height:100%;position:fixed;background:#fff;z-index:1020;display:none}.biometry-loading{font-size:24px;padding-top:15rem;padding-bottom:2rem;color:#367cff;text-align:center}.personal_agreement-info{line-height:2.4rem;font-size:1.4rem;padding-top:4rem}.personal_agreement-info ul{list-style:none;padding-left:2rem;margin-bottom:.5rem}.personal_agreement-info strong{line-height:5rem}.personal_agreement-info div>p{margin:1rem 0}.mod-tipinfo-title1{font-size:1.8rem;font-weight:300}.mod-tipinfo-title3{font-size:2.4rem;line-height:3rem}.form-label{font-size:1.3rem;color:#666}.mod-tipinfo-subtitle1{font-size:1.4rem;margin-top:.8rem;font-weight:200}.form-input-value{font-size:1.6rem;color:#333;display:-webkit-box;border-bottom:1px solid #eee}.pass-form-item-sep{background:#eee;height:1px;border:0;display:block;margin-top:-1px}.form-input-value input{padding-bottom:.6rem;padding-top:.8rem}.pass-norm-item-sep-focus{background:#3c76ff;-webkit-animation:processFocus .3s ease-in}.pass-form-item-sep-blur{background:#3c76ff;-webkit-animation:processBlur .3s linear}.pass-form-item-sep-error{background:#e65757}@-webkit-keyframes processFocus{0%{width:0}100%{width:100%}}@-webkit-keyframes processBlur{0%{width:0}100%{width:100%}}.form-input-value .text-grey,.form-input-value .text-grey:disabled{color:#333;opacity:1}.pass-input-clearValue-new{height:20px;float:right}.other-baidu-reg{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.agreement-contentWrapper{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.personal_agreement-contentWrapper{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}div.mod-dialog-content-faceLoginNotice{padding:2.1rem 0 0;background:#fafdff}.pass-faceLoginNotice-dialog{text-align:center}.pass-faceLoginNotice-icon{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/faceLoginNotice.png) no-repeat center center;-webkit-background-size:12.2rem 9.8rem;background-size:12.2rem 9.8rem;height:9.8rem;margin:2.3rem}.pass-faceLoginNotice-title{margin-top:.1rem;color:#333;font-size:1.9rem;line-height:2.4rem}.pass-faceLoginNotice-msg{margin-top:.7rem;color:#666;font-size:1.4rem;padding:0 2.1rem 2.2rem}.pass-faceLoginNotice-ul{background:#fff}.pass-faceLoginNotice-ul li{height:5.2rem;line-height:5.2rem;color:#333;font-size:1.6rem;position:relative}.pass-faceLoginNotice-ul li:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0;border-top:1px solid #eee;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}li.pass-faceLoginNotice-main{color:#5291ff}.normandy-mod-content{padding-left:2.9rem;padding-right:2.9rem;-webkit-box-sizing:border-box}.pass-normandy-form-input-wrapper{display:-webkit-box;-webkit-box-sizing:border-box;-webkit-box-flex:1;background:#fff;padding-top:2.4rem;width:100%;position:relative}.pass-normandy-item{width:100%}.pass-normandy-title{position:absolute;z-index:98;font-size:1.2rem;color:#B2B7C2;line-height:1.8rem;display:none}.pass-normandy-label{position:absolute;z-index:97;font-size:1.6rem;color:#ddd;line-height:1.8rem;margin-top:1.4rem}.pass-form-verify-wrapper{margin-top:4.8rem}.pass-normandy-form-item-sep{background:#ddd;height:1px;border:0;display:block;z-index:2;position:relative}.pass-normandy-item-sep-focus{background:#121C32;-webkit-animation:processFocus .3s ease-in}.flexdiv{width:100%;height:100%}.pass-normandy-item-code{display:none}.pass-normandy-code-left{margin-right:1.8rem;border-bottom:1px solid #ddd}.normandy-sub-font{font-size:1.2rem;color:#333;line-height:1.4rem;height:1.4rem}.normandy-text-label-code{line-height:4rem;height:4rem;display:inline-block;width:5.5rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKAgMAAADJO5Z1AAAACVBMVEUAAABoaGhmZmbrODhJAAAAAnRSTlMAgJsrThgAAAA0SURBVAjXDckxAQAgDMTAsKCAqWqwQ9VUBAtVSX64IU929yP0MrUYuiHNEGY8SofZHXALPozFEG5vWPX4AAAAAElFTkSuQmCC) no-repeat center right;-webkit-background-size:1rem .5rem;background-size:1rem .5rem}.pass-normandy-code-right{-webkit-box-flex:1}.pass-normandy-code-p{-webkit-box-flex:1;display:-webkit-box}.pass-normandy-form-code input.pass-text-input{padding-top:2.6rem;padding-bottom:.8rem}.pass-normandy-form-code .pass-normandy-title{font-size:1.2rem;color:#333;line-height:1.4rem;height:1.4rem}.pass-normandy-form-code .pass-normandy-label{margin-top:2.6rem;display:block}.pass-normandy-item-username .pass-input-clearValue{margin-top:1rem}.pass-normandy-form-code .pass-input-clearValue{margin-top:1.5rem}.pass-normandy-item-password .pass-input-clearValue{margin-top:1rem}.pass-normandy-item-mobilenum .pass-input-clearValue{margin-top:1rem}.pass-normandy-item-password .pass-input-aide{margin-top:2.3rem}#setunamepwd .pass-input-aide{margin-top:1.2rem}#setunamepwd .pass-input-aide-focus{margin-top:2.5rem}.normandy-img-div{padding:4.9rem 2.9rem 0}.normandy-img-title{float:left}.normandy-title-div{padding:1.24rem 2.9rem 0}.normandy-title-content{font-size:2.7rem;color:#121C32;line-height:3rem}.normandy-img-logo{float:left;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAA0CAMAAAA65sNKAAAA81BMVEUAAADkCQThBgLiCALhBgLjBwPoCgrhBgLiBwLsEhLhBgPiBwPiBgLhBgM3Pe//MjLhBgLhBgLhBgLmCAgpMuLnBwfhCALjBgPiBgMuNucpMuHhBgIpMuLiBgPiBwPkCAQpMuLiBwPiBgIpMuEpMuEpMuEpMuIpMuIrNeQqM+MrNOMpMuHhBgLiBgIpM+MqM+MrNOUpMuLiBgMpM+IqM+LlBgYpMuIpMuIpMuIpMuLiBgLhBgMqNOLiBgLhBgIpMuH////Z2vlvdet9g+1hZ+m+wfafo/KVmvCJju/19f7u7/zIyvessPM5QePf4PtSWudES+UZqqD2AAAAPnRSTlMAMPhf7kEW2GcNmourkQkFesDqHtohV1NMFfbMtpZFOq6FfsPv5p9qJUAv0/G3Ujcdp6CDWyfMl414caNJ4DaRUjwAAATqSURBVGjezZlpW9pAEIAnqEAEI0eUKyJy34egBYqsxarVevT//5pmd7OZhByg7SN5P5jdjcr7TGZmNwr/iUVjoUBwaauEkFoLF5RhoHSbVULJD4TeuEqq4wApaoRzbfhV2KwEQaFNBAubbx0Cwjdqg0FrmNMBBIMKEaj6LJeno0A95Box0WczggSkTgiSo/FEmhAIVCLIGzP0DQQaEXTsgioEgzEhlsbSQcEp7JThbFSfsAERtHnTweku6VfZQ21anDS2HpAAto12V8sB5FQ+HLKNThUZuNsmUyGWsOVGdDAERpMbXu+2hNvEpA9UcYA+SqNUKU3YqUbNV68bO4nkGAVH4EGuQ3YXS22LblcnBhX4elQUzIM7St6SBV9ObbPggpAdhrBDTGpm4cw0bTRRME13dqyx7xea0V1KRkAb+C2fONaEJR0ZkAMb52nwRw5TAFrEhAu1qnhO5fEafUowutQpArJcoxvPgA9HS8qxpVFXc2JjQUOjiJEhSHte6L/MMrtc6iSKgjAKIpGrLQSbImJ9c39DZnRtShCF/qAHMkDI8+YpuK12pc2C0GZ1orbWooWvSw1rq/wvgkjkeJMgZdCYDIAxQRc8QjRxOgY42yTY3XcjYwiaC0vOHngwL1DW/Ft5sk5FYVWCaZq5MInQT7hJCI65oKQXbDQaDQNH0u9kzSKJYJVesIUz+AAD5vfz5eXRXiiKZoSzZW8EXfoJZUCE4KF+ObBU86VFEEnShQLrKCayvNZmTLDB/Lq9/UEs1OmtaUmrG6eZE0FiSSmKqWwIUiMnh07B71xwLWsKCdmRg5h/KGg3RLwLIWrc29tWsEAXekIQ2c+6Cs7ImiAy+pBgJpWil5sIJ6WPQ6lUzCHII51AQSTrFFRKxCGIaMq2gpiDkmsO7scEBTYP0R0vljJZMlLyuuCQ9cL3l+enp6dbKvj+8PBAl/7o13dxVEXB5IGdrrfgHAVdSICdqx5fXhPMqTx0DCZ4p39lJa1fV7SA2zbBONjZdwqeJRjlGz/BMjiIsMxEQXxxuqNqb29vz26CJL/4kKCdmIdgCANor+2kKYj18ao/2+ef+uDRVZBUm58WTJ14PuKkzJtetCwoOAWVGnvATMVbkJQsgpGYnZBdUMpYKXIJ44wlKHDD76BTXi88FMQG+KIHkPgJkuGWVbx36ELa0WYO+HYsYZvxEpwKwR/+go0tBS/d7kpCEIka+ZldbhDUCOVhYwSn/yAYOnEKnrOVON+TQ/NzTs8pOCKiiO98Beso2JPs2Ioky9vtEf240wi3OAGn4Jyt9GR2mftU8ZSIKr799ef19UEI3q9Wq0eL4Ni7ilO2IpEvQuxTpPARGxQO3E4zUoq7h3kK+Aj2iRFCkx9UV4A5uK0gQDq+pDC9VBQsVXwm6C05cx7BS09B/MvB6hkFycopONxWkHJeMJIvJgMKOgmFgWdBIc65cQjii+/r3f1vxgvbhe8Nfpr/H8O9OGsjunQIFpNcoHtx5SUocm9vUxVDrkq2YLLlaeY0qXPjaDM+h4WyryC+i/ijwQbBjONEHS/2fAW7h0ZpFHsbBGGgEiu160pHtUt/UzYIJmW7YOQiTUv1qBBhXMGpncx5+hhM5LSNsL7CAJN+XXfqVLT6rN80XJqNUo0w8qUWmEiupPlxTkcOM+BryA0W/VZbgX/nL0iU6D8+181sAAAAAElFTkSuQmCC) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%;width:8rem;height:2.6rem}.normandy-bottom-link{cursor:pointer;font-size:1.4rem;color:#333;line-height:1.6rem;padding-bottom:2rem;padding-top:.3rem}.center-bottom-link{width:14rem;margin:0 auto}.normandy-spilit-line{height:1rem;color:#333;display:inline-block;padding:0 1rem}.normandy-more-qa-cancle{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.layer-account{display:none;position:fixed;width:100%;z-index:10000;left:0;bottom:0;-moz-transition:all .3s;transition:all .3s;-webkit-transition:all .3s;-webkit-transform:translateY(27.5rem);-ms-transform:translateY(27.5rem);-moz-transform:translateY(27.5rem);transform:translateY(27.5rem)}.layer-account >a{font-size:1.8rem;color:#102233;background-color:#fff;cursor:pointer;border-bottom:1px solid #eee;display:block;text-align:center;height:5.5rem;line-height:5.5rem}.layermenu-out{bottom:0;-webkit-transform:translateY(0);-ms-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}#login-facelogin,#sms_login-facelogin,#overseasLink{display:none}#smsloginlink,#loginlink{display:none}.normandy-agree{padding-top:2rem;text-align:center;font-size:1.2rem;color:#5D667A}.normandy-agree-bottom{text-align:center;font-size:1.2rem;color:#5D667A}.normandy-agree .agree-link{color:#5D667A}#reg_verify .mod-content,#sms_verify_new .mod-content,#sms_verify .mod-content{padding:2rem 3rem 0}#reg_verify .sms-smsLayerCon,#sms_verify_new .sms-smsLayerCon,#sms_verify .sms-smsLayerCon{padding-top:2.2rem}#reg_verify .sms-pasteVerify,#sms_verify_new .sms-pasteVerify,#sms_verify .sms-pasteVerify{height:5rem;line-height:5rem;margin:0 auto 1.5rem}#reg_verify .sms-pasteVerify-show,#sms_verify_new .sms-pasteVerify-show,#sms_verify .sms-pasteVerify-show{position:relative;width:13.3rem;text-align:center;color:#fff;background:#333;-webkit-border-radius:4px;border-radius:4px}#reg_verify .sms-pasteVerify-show span,#sms_verify_new .sms-pasteVerify-show span,#sms_verify .sms-pasteVerify-show span{content:"";width:0;height:0;position:absolute;left:5.8rem;bottom:-1.4rem;border-top:.8rem solid #333;border-right:.8rem solid rgba(0,0,0,0);border-bottom:.8rem solid rgba(0,0,0,0);border-left:.8rem solid rgba(0,0,0,0)}#sms_verify .sms-tipTitle1,#sms_verify_new .sms-tipTitle1,#reg_verify .sms-tipTitle1{font-size:2.7rem;color:#333;line-height:2.7rem}#sms_verify .sms-tipTitle2,#sms_verify_new .sms-tipTitle2,#reg_verify .sms-tipTitle2{font-size:1.4rem;color:#999;margin-top:1rem;margin-bottom:1rem}#sms_verify .sms-pass-layout-error,#sms_verify_new .sms-pass-layout-error,#reg_verify .sms-pass-layout-error{font-size:1.2rem;color:#E65757;letter-spacing:0;line-height:1.3rem;min-height:1.3rem;padding-top:.6rem}#sms_verify .keyboardInputWrapper:after,#sms_verify_new .keyboardInputWrapper:after,#reg_verify .keyboardInputWrapper:after{content:"\20";display:block;height:0;clear:both;overflow:hidden;visibility:hidden}#sms_verify .keyboardInputWrapper,#sms_verify_new .keyboardInputWrapper,#reg_verify .keyboardInputWrapper{margin:0 auto;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify}#sms_verify .keyboardInputEle,#sms_verify_new .keyboardInputEle,#reg_verify .keyboardInputEle{float:none}#sms_verify .pass-layout-input,#sms_verify_new .pass-layout-input,#reg_verify .pass-layout-input{border:0;background:0 0;font-size:1.4rem;color:#999;line-height:2rem;margin-top:.5rem}#sms_verify .pass-layout-link-msg,#sms_verify_new .pass-layout-link-msg,#reg_verify .pass-layout-link-msg{display:inline-block;font-size:1.4rem;color:#3C76FF}#sms_verify .pass-layout-noVerifycode,#sms_verify_new .pass-layout-noVerifycode,#reg_verify .pass-layout-noVerifycode{display:none;margin-left:2rem}.canshare-ai-logos .canshare-ai-logos-block p{width:5.7rem;padding:1rem 0;line-height:1.2rem}.p-t10{padding-top:1rem}#reg-div .pass-form-verify-wrapper{margin-top:3.1rem}#reg-div .pass-form-item-submit{margin:2.5rem 0 1.6rem}#reg-agree{vertical-align:middle;margin-top:-2px}#reg-registerWrapper{visibility:visible;position:absolute;bottom:0;left:50%;margin-left:-10rem}@media screen and (max-height:500px){#reg-registerWrapper{position:relative;left:0;margin-left:0}}.set-bottom-link{color:#E73E32;font-size:1.3rem;text-align:center}.onekey-img{height:15rem}.onekey-login-agree{position:absolute;bottom:1.5rem;width:100%}@media screen and (orientation:landscape){.normandy-img-div{display:none}#sms_verify .sms-smsLayerCon,#sms_verify_new .sms-smsLayerCon,#reg_verify .sms-smsLayerCon{padding-top:0}#sms_verify .keyboardWrapper,#sms_verify_new .keyboardWrapper,#reg_verify .keyboardWrapper{padding-top:3rem}#sms_verify .mod-content,#sms_verify_new .mod-content,#reg_verify .mod-content{padding-top:0}.normandy-bottom-link{padding-bottom:1rem}.normandy-bottom-link span{font-size:1.8rem;padding:1rem}.pass-input-clearValue{width:4rem}.pass-input-pwdToggle{margin-left:0}.pass-input-aide{padding:.7rem}.pass-normandy-item-password .pass-input-aide{margin-top:1.3rem}.sms-smsLayerCon{position:relative}#reg_verify .sms-pasteVerify,#sms_verify .sms-pasteVerify{position:absolute}#reg_verify .sms-pasteVerify-show,#sms_verify .sms-pasteVerify-show{left:50%;margin-left:-6.6rem;top:-6rem}}#sms_verify_new-keyboardInputHidden{position:absolute;opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);transform:scale(0);top:16rem;left:0;padding:0;margin:0;z-index:1000}@media screen and (max-height:500px){.onekey-login-agree{position:relative}}.keyboardInput{border-bottom:1px solid #eee;height:3.5rem;line-height:3.5rem;font-size:1.8rem}.keyboardInput:after{color:#3c76ff;font-size:2.2rem;-moz-animation:blink 1s infinite;animation:blink 1s infinite;-webkit-animation:blink 1s infinite;content:'|'}.keyboardInputWrapper{margin:0 auto;display:inline-block}.keyboardInputWrapper:after{content:'\20';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.keyboardInputEle{width:4rem;height:4rem;display:block;float:left;margin-right:1rem;text-align:center;line-height:4rem;border:0;border-bottom:1px solid #aaa;-webkit-border-radius:0;border-radius:0;font-size:1.8rem}.keyboardCursor,.keyboardCursor2{color:#3c76ff;font-size:2.2rem;font-weight:lighter;-moz-animation:blink 1s infinite;animation:blink 1s infinite;-webkit-animation:blink 1s infinite;border-bottom:1px solid #3C76FF}.keyboardCursorBlueLine{border-bottom:1px solid #3C76FF}.keyboardInputWrapper.androidPaste .keyboardInputEle{border:1px solid #EBEBED}.keyboardInputWrapper.androidPaste .keyboardCursor2,.keyboardInputWrapper.androidPaste .keyboardCursorBlueLine{border:1px solid #333}.keyboardInputWrapper.androidPaste .keyboardLongPress{background:#f9f9f9;border:1px solid #333}.keyboardCursor2:before{content:'|';position:relative;height:4rem;line-height:4rem;display:block;width:4rem;text-align:center}@-moz-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@-webkit-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}.keyboarddone{border-bottom:1px solid #3C76FF}.keyboarderror{border-bottom:1px solid #E85352}.keyboardWrapper{width:100%;position:absolute;bottom:0;bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom)}.keyboard-row{width:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.keyboard-row span{text-align:center;display:block;width:33%;-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border:1px solid #eee;border-width:1px 1px 0 0;margin-right:-1px;height:5.4rem;line-height:5.4rem;font-size:2.8rem}.keyboard-row span:last-child{border-right:0}.keyboard-gray-bg{background:#e5e7eb}.keyboard-span:active{background:#efefef}.keyboard-hightlight-bg{background:#efefef}.keyboard-delete{background:#e5e7eb}.keyboard-delete img{height:100%}.keyboard-delete-hightlight{background:#fff}.keyboard-placeholder{position:absolute;color:#d6d6d6;font-size:1.8rem;font-weight:300}.keyboar-relative #sms_verify .keyboardWrapper{position:relative}.canshare-ai-block{padding:1rem}.canshare-ai-top{background:url(data:image/jpeg;base64,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);-webkit-background-size:100% 100%;background-size:100% 100%;text-align:center;padding:5.5rem 4.7rem 4.8rem}.canshare-ai-tip{line-height:5rem;font-size:1.8rem;color:#fff}.canshare-clienttip{padding:1rem 4.7rem;font-weight:500}.canshare-ul{padding-left:4.7rem;padding-bottom:1rem}.canshare-ul li{color:#666;font-size:1.2rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAElBMVEXZ2dn////h4eHw8PDj4+P8/PyPUMZYAAAAM0lEQVQI12MQFFZgMhRkEHVgYGAJZBBhAAJHBgMQxcygAKKYGFAAVBCqBKoBrJ0pEGoYAJxUA7eadnHyAAAAAElFTkSuQmCC) left center no-repeat;-webkit-background-size:.5rem .5rem;background-size:.5rem .5rem;padding-left:1rem}.canshare-ai-logos{width:19rem;margin:0 auto}.canshare-ai-logos img{display:block;width:5.7rem;height:5.7rem;-webkit-border-radius:5px;border-radius:5px}#canshareAi-div .normandy-agree{padding:0 0 4rem 3.5rem}.canshare-ai-logos-block{float:left}.canshare-ai-logos-block p{line-height:2.4rem;color:#fff;font-size:1rem}.logos-middle1{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0BAMAAAA3VgbYAAAAG1BMVEUAAAD////////////////////////////////rTT7CAAAACXRSTlMAmF9WLglFhEdCtF7pAAAAuklEQVQ4y33UMQ6CQBBG4YmRAwwaazyCjbXewM7aeAYPYLy4wZi84sFPATvsfgSWmanheanysT3f6t7j0tSxX/Xunjyz6T7UqWdm1Lu69syMev87w0A9/S9GI1chBkKMhBgKMTYiECLyOkItIzbihhDMCCYEA5mBxEBiIDGQGEhMSFP5gUZmfvn8yXmjvL3xpxiZOQGMzJxsKUVDYqdyCEWUSi8UbChzIRjILDSi1L4eq00vtcrhs9Zgv/76JqNkQNSIAAAAAElFTkSuQmCC) center center no-repeat;width:7.4rem;height:5.7rem;-webkit-background-size:1.3rem 1.3rem;background-size:1.3rem 1.3rem}.logos-middle2{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA0CAMAAADsb9tqAAAAPFBMVEUAAAD////////////////////////////////////////////////////////////////////////////YSWgTAAAAFHRSTlMAsgyMRSNppaNBpGeZfGtmOgQCer1uvncAAACFSURBVEjH7da7DoAgDIXhFquA98v7v6umrAz2kBiHfiPJSf4JoIpTFsL0HfNOgLDyYz7ITCKrDLSqZF2GgYstgK1dj7YK2jqZW8fG1tHcOnExWFtzQlrVpcMoZMcwn75Czjnyu+mHU3+HK62psTWaW7fv/wwZalXHzI81EGDXVswiZ+X0BgHpBc8jryAzAAAAAElFTkSuQmCC) center center no-repeat;width:7.4rem;height:5.7rem;-webkit-background-size:1.3rem 1.3rem;background-size:1.3rem 1.3rem}.logos-baidu{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAAByCAMAAABXwR5xAAABAlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////8pMuE0PeOGjO76+v86QuSCiO4sNeJNVefT1fl+hO0vOOL8/P/s7f1la+oqM+L4+P719v7h4vu3uvVtc+tFTeVDS+Xm5/ygpPKYnfEyOuPp6vzLzfidofJ4fe3c3fvS0/m/wve7vvaQlfBpb+tdZOlASOXv8P3W1/qtsPSNkvBiaepXX+g9RuXz8/7GyfjCxfdLUuZIT+bj5PxyeOxmbOpQWOeytfWorPPy8v3P0fmlqfOSl/CHje+Ahe5/hO2VmfCKj+8LUdLQAAAAFHRSTlMAHfNr2ve2m4lOMiQa07y4q3RkEJvyYokAAAVzSURBVGjevNbpVtpQFIZhRKtt7dz9xUCQgEAZlXlWBBEUcCi23v+tdIUjIckWjOkxz0+mlxP2ZiWwtP/9y06Q3kxwZ3d7K2Cz/418sPfJkvzxjnwR/GAm35NvtgPCNvlInPRjjHwUXPymX8lXe8YxyWdbfgwQH6PP5LPdQOAd+Wwn8JP8Fgxske9e01TTR7mTSPSU1pHfrI4gRFXi3qQ5PMFSP0UO+XKrFb6T3awqWJnEyEptajC0q1KbsSmsCmQRN5/TGzKb97BR4mTKZ2HSZvKasQ7smrR0MYKFXpPWrMOhY/6iGdjkkrKaFTiVSDiDw7GsZhZrPvo2BAclKafZBdOihSaYtJzmIZip2MwQmIyc5hBMhwwNcGM5zTQYhQwH4DQ5zUswAzK0365ZAxMhQwScIqdZBDMhQwdcW06Tfzb+Pu0t15TUvIbTJRmm4A7lNPnghlQytMCMyGszNQtnKr07Evjuz9f+Dd14bdYHWBjXSTiGjX61bonGqsfmHKaKKg6afXZOYgM41MlbswCLcxEt6VjpJ4mdXwiTt2YtAasKLcxWj2bjtKRGwL6gl2b7+akYDiBMurRylcXKRCVvzSHbi6fGbXmkQTmqk00xgydKIUZC97RRulJf0eT731tdyi5xtYOpltD7x0VaSN1EYNCvS26bKR3gfwDu/RrBlLlw16yDu3tFMgSLbN5V8xFcgdzhAzhNuWmeg+uRWzM4PLhpjsH98XJMQau6aCrgKuRS3s17eVMHFyXB081a0tu1DZNTsXRZKxIzBzf0NkNlsmlEx2ITwlWyy4Arv9z8Da5uK0awkrEvYB/c/OVmDUyiSKZ4GzYnM7IYgXt4uUm5TXeP1dzG5c15bN5vuMWpKeAe/7+pdmA3Nqe928FzyhuHvueiSSUNVonSupnmr+h7mVt+dbUCLZWxRqdLQgtc2lWTzv4Vb67bicJQGH2JHBvFFhVBBAG1XltR8TJqqx1b3/9dppK1QEikJMxq9l8vewEHki+cuPFjZBPXjwr3mGQMSnY+JzIaGhmtP734Or/BfRx0LwO/5M8Odqvn+APG2gkbjTzhVi4dmXI7aTqQSZnM7CuQQvXEne8aZPMnrKN6AEnOSNg5UoAJNbn/SJ7dfYEsGCmrNdzUV1/M4q2F5TeFCHWMhZ2+klpHeAAW+1CKug/t8PvWxRbPvGcAlpMtJax2xqpAzsZ9yOuEPpEWzfanKeR3gon/g3P3BjxOODQLO0cl4HPC8rWgcw7A64StXcTZNOPh5TJ6nF15jpz1k97EAyCU6yHhWQkexZ04GqJVJ446kTOxslu+DQFuS9SJDwAE6xkhHidoZ0HnhQqRuZyEic7hpKOHMkP8TphifqddSq5gotf5S/mbfU4nfPE7K1HF6onJdCOvEza8zrqazGQnC3id1Rqnc5x6YeQAtxNGnM44BJD7ZCngNPmcBkSQtT1XwKnqXM4hRITjRBMEnDDI56TTg0f+TMTZ4nJ20mtgCxFnT/Q4/eipxHJ6SobzLHo991HiYjmRX7rvdETr1iXV1+xrKaeHyAfGlR3L+c7lRMHtGyOCfex8MyJO6ihE65YdwpQNe1wpGT84XcznHN7+tst0QtvIdi5QbifdkKD0MMsJrnPKch55nHTc3Pp6yklQJ5UECsSoK14nbkMCdfF0QxV+5sI/N+lqUAi3zu9EfjHpX6H57REKUBGcx68tuIumQAbaWDiv6OcA0gSLT//DvtYk9mYtxwyAZrspksvwZm4uq23LaleXk/7YX9OVMesdErelcmjVEIdTlN2wM7+YDfNp3lvTtyXt/HVk9E7K6BGV0Qsro+dXRm+zhB5uGb3qEnryJew9kLDHQtZeEhl7Zv4BVVJIj8ZsqxIAAAAASUVORK5CYII=) left center no-repeat;-webkit-background-size:5.7rem 5.7rem;background-size:5.7rem 5.7rem;width:5.7rem;height:5.7rem}.canshare-app{height:13.1rem}.appdiaplay{display:none}.appagree a{color:#5D667A}.p-t1{padding-top:1rem}.checkbox{float:left;width:2rem;height:2rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAABlBMVEX///+Xl5f99WcxAAAAFElEQVQI12P4//8/QwMDIy0wyGwAPncRES1HywsAAAAASUVORK5CYII=) no-repeat center;-webkit-background-size:1.2rem 1.2rem;background-size:1.2rem 1.2rem}.checkbox.active{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAe1BMVEWcnJyXl5f////7+/svLy/19fWgoKCcnJxRUVFISEg2NjYnJyfr6+vd3d22trawsLCOjo5fX19AQEAyMjLa2tq+vr5ycnI6Ojr39/fm5ubW1tbV1dXPz8/Nzc3AwMCbm5uIiIh+fn53d3dsbGxra2tiYmJDQ0M+Pj4jIyNcQj86AAAAAnRSTlPy5hlwCUoAAAChSURBVCjPpZJXDsMgEESJGTDFHZf03u5/whDFllOWj8j7g/RGsDvDshmjyuNYcKJEzFhElr/EKc7/E5aCFqQ9kj1yY9te4FKOfNuhTPqnanvPB76uoJKhuTijql881dDpONVCo5w/eaJQbd7HbQz2/hAluubTR+FMFvETTP5lkF+gVgWc/HGeXm9Ku4KIJAPsgcwqa3fBEKcJwa8NLkNwfR5PNgjL6Gjm1AAAAABJRU5ErkJggg==) no-repeat center;-webkit-background-size:1.2rem 1.2rem;background-size:1.2rem 1.2rem}.appagree{float:left;line-height:2rem;height:2rem}.canshare-ai-tipdown,.canshare-ai-tipconfig{color:#fff;font-size:1.3rem;padding-top:2rem;text-align:left;line-height:1.8rem}.canshare-ai-tipconfig{display:none}
</style><link href="" type=text/css rel=stylesheet id=product-skin>
<script type="text/javascript">
        var CssEndTime = + new Date();
        </script>
</head>
<body>
<div id="pageWrapper" class="page-wrapper"></div>
<script type="text/javascript">
        var apiDomain = location.protocol+"//"+location.host;
        var publicData = {
            'vcodestr': '{{$ppVcodestr|sp_escape_js}}',
            'action': '{{$ppRequestInfo.action|default:"login"|sp_escape_js}}',
            'u': '{{$ppRequestInfo.u|sp_escape_js}}',
            'tpl': '{{$ppRequestInfo.tpl|default:"pp"|sp_escape_js}}',
            'tn': '{{$ppRequestInfo.tn|sp_escape_js}}',
            'pu': '{{$ppRequestInfo.pu|sp_escape_js}}',
            'ssid': '{{$ppRequestInfo.ssid|sp_escape_js}}',
            'from': '{{$ppRequestInfo.from|sp_escape_js}}',
            'bd_page_type': '{{$ppRequestInfo.bd_page_type|sp_escape_js}}',
            'uid': '{{$ppRequestInfo.uid|sp_escape_js}}',
            'type': '{{$ppRequestInfo.type|sp_escape_js}}',
            'regtype': '{{$ppRegtype|sp_escape_js}}',
            'adapter': '{{$ppPageInfo.adapter|sp_escape_js}}',
            'skin': '{{$ppPageInfo.skin|sp_escape_js}}',
            'regist_mode': '{{$ppRequestInfo.regist_mode|sp_escape_js}}',
            'login_share_strategy': '{{$ppRequestInfo.login_share_strategy|sp_escape_js}}',
            'bdcm': '{{$ppRequestInfo.bdcm|sp_escape_js}}',
            'token': '{{$ppBdToken|sp_escape_js}}',
            'client': '{{$ppRequestInfo.client|sp_escape_js}}',
            'clientfrom': '{{$ppRequestInfo.clientfrom|sp_escape_js}}'
        };
        var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
        var cdnDomain = "https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3";
        window._hmt = window._hmt || [];
        var currClientWidth;
        var fontValue;
        var originWidth;
        originWidth = 375;
        __resize();
        window.addEventListener('resize', __resize, false);

        function __resize() {
            currClientWidth = document.documentElement.clientWidth;
            if (currClientWidth < 320) {
                currClientWidth = 320;
            }
            if (currClientWidth > 400) {
                currClientWidth = 400;
            }
            fontValue = ((62.5 * currClientWidth) / originWidth).toFixed(2);
            document.documentElement.style.fontSize = (fontValue * 0.16) + 'px';
        }

        window.px2rem = function (px) {
            return px / (16 * fontValue / 100);
        };
        </script>
<script type="text/javascript">function BarrettMu(t){this.modulus=biCopy(t),this.k=biHighIndex(this.modulus)+1;var e=new BigInt;e.digits[2*this.k]=1,this.mu=biDivide(e,this.modulus),this.bkplus1=new BigInt,this.bkplus1.digits[this.k+1]=1,this.modulo=BarrettMu_modulo,this.multiplyMod=BarrettMu_multiplyMod,this.powMod=BarrettMu_powMod}function BarrettMu_modulo(t){var e=biDivideByRadixPower(t,this.k-1),i=biMultiply(e,this.mu),n=biDivideByRadixPower(i,this.k+1),a=biModuloByRadixPower(t,this.k+1),o=biMultiply(n,this.modulus),s=biModuloByRadixPower(o,this.k+1),r=biSubtract(a,s);r.isNeg&&(r=biAdd(r,this.bkplus1));for(var l=biCompare(r,this.modulus)>=0;l;)r=biSubtract(r,this.modulus),l=biCompare(r,this.modulus)>=0;return r}function BarrettMu_multiplyMod(t,e){var i=biMultiply(t,e);return this.modulo(i)}function BarrettMu_powMod(t,e){var i=new BigInt;i.digits[0]=1;for(var n=t,a=e;0!=(1&a.digits[0])&&(i=this.multiplyMod(i,n)),a=biShiftRight(a,1),0!=a.digits[0]||0!=biHighIndex(a);)n=this.multiplyMod(n,n);return i}function setMaxDigits(t){maxDigits=t,ZERO_ARRAY=new Array(maxDigits);for(var e=0;e<ZERO_ARRAY.length;e++)ZERO_ARRAY[e]=0;bigZero=new BigInt,bigOne=new BigInt,bigOne.digits[0]=1}function BigInt(t){this.digits="boolean"==typeof t&&1==t?null:ZERO_ARRAY.slice(0),this.isNeg=!1}function biFromDecimal(t){for(var e,i="-"==t.charAt(0),n=i?1:0;n<t.length&&"0"==t.charAt(n);)++n;if(n==t.length)e=new BigInt;else{var a=t.length-n,o=a%dpl10;for(0==o&&(o=dpl10),e=biFromNumber(Number(t.substr(n,o))),n+=o;n<t.length;)e=biAdd(biMultiply(e,lr10),biFromNumber(Number(t.substr(n,dpl10)))),n+=dpl10;e.isNeg=i}return e}function biCopy(t){var e=new BigInt(!0);return e.digits=t.digits.slice(0),e.isNeg=t.isNeg,e}function biFromNumber(t){var e=new BigInt;e.isNeg=0>t,t=Math.abs(t);for(var i=0;t>0;)e.digits[i++]=t&maxDigitVal,t>>=biRadixBits;return e}function reverseStr(t){for(var e="",i=t.length-1;i>-1;--i)e+=t.charAt(i);return e}function biToString(t,e){var i=new BigInt;i.digits[0]=e;for(var n=biDivideModulo(t,i),a=hexatrigesimalToChar[n[1].digits[0]];1==biCompare(n[0],bigZero);)n=biDivideModulo(n[0],i),digit=n[1].digits[0],a+=hexatrigesimalToChar[n[1].digits[0]];return(t.isNeg?"-":"")+reverseStr(a)}function biToDecimal(t){var e=new BigInt;e.digits[0]=10;for(var i=biDivideModulo(t,e),n=String(i[1].digits[0]);1==biCompare(i[0],bigZero);)i=biDivideModulo(i[0],e),n+=String(i[1].digits[0]);return(t.isNeg?"-":"")+reverseStr(n)}function digitToHex(t){var e=15,n="";for(i=0;4>i;++i)n+=hexToChar[t&e],t>>>=4;return reverseStr(n)}function biToHex(t){for(var e="",i=(biHighIndex(t),biHighIndex(t));i>-1;--i)e+=digitToHex(t.digits[i]);return e}function charToHex(t){var e,i=48,n=i+9,a=97,o=a+25,s=65,r=90;return e=t>=i&&n>=t?t-i:t>=s&&r>=t?10+t-s:t>=a&&o>=t?10+t-a:0}function hexToDigit(t){for(var e=0,i=Math.min(t.length,4),n=0;i>n;++n)e<<=4,e|=charToHex(t.charCodeAt(n));return e}function biFromHex(t){for(var e=new BigInt,i=t.length,n=i,a=0;n>0;n-=4,++a)e.digits[a]=hexToDigit(t.substr(Math.max(n-4,0),Math.min(n,4)));return e}function biFromString(t,e){var i="-"==t.charAt(0),n=i?1:0,a=new BigInt,o=new BigInt;o.digits[0]=1;for(var s=t.length-1;s>=n;s--){var r=t.charCodeAt(s),l=charToHex(r),c=biMultiplyDigit(o,l);a=biAdd(a,c),o=biMultiplyDigit(o,e)}return a.isNeg=i,a}function biDump(t){return(t.isNeg?"-":"")+t.digits.join(" ")}function biAdd(t,e){var i;if(t.isNeg!=e.isNeg)e.isNeg=!e.isNeg,i=biSubtract(t,e),e.isNeg=!e.isNeg;else{i=new BigInt;for(var n,a=0,o=0;o<t.digits.length;++o)n=t.digits[o]+e.digits[o]+a,i.digits[o]=65535&n,a=Number(n>=biRadix);i.isNeg=t.isNeg}return i}function biSubtract(t,e){var i;if(t.isNeg!=e.isNeg)e.isNeg=!e.isNeg,i=biAdd(t,e),e.isNeg=!e.isNeg;else{i=new BigInt;var n,a;a=0;for(var o=0;o<t.digits.length;++o)n=t.digits[o]-e.digits[o]+a,i.digits[o]=65535&n,i.digits[o]<0&&(i.digits[o]+=biRadix),a=0-Number(0>n);if(-1==a){a=0;for(var o=0;o<t.digits.length;++o)n=0-i.digits[o]+a,i.digits[o]=65535&n,i.digits[o]<0&&(i.digits[o]+=biRadix),a=0-Number(0>n);i.isNeg=!t.isNeg}else i.isNeg=t.isNeg}return i}function biHighIndex(t){for(var e=t.digits.length-1;e>0&&0==t.digits[e];)--e;return e}function biNumBits(t){var e,i=biHighIndex(t),n=t.digits[i],a=(i+1)*bitsPerDigit;for(e=a;e>a-bitsPerDigit&&0==(32768&n);--e)n<<=1;return e}function biMultiply(t,e){for(var i,n,a,o=new BigInt,s=biHighIndex(t),r=biHighIndex(e),l=0;r>=l;++l){for(i=0,a=l,j=0;s>=j;++j,++a)n=o.digits[a]+t.digits[j]*e.digits[l]+i,o.digits[a]=n&maxDigitVal,i=n>>>biRadixBits;o.digits[l+s+1]=i}return o.isNeg=t.isNeg!=e.isNeg,o}function biMultiplyDigit(t,e){var i,n,a;result=new BigInt,i=biHighIndex(t),n=0;for(var o=0;i>=o;++o)a=result.digits[o]+t.digits[o]*e+n,result.digits[o]=a&maxDigitVal,n=a>>>biRadixBits;return result.digits[1+i]=n,result}function arrayCopy(t,e,i,n,a){for(var o=Math.min(e+a,t.length),s=e,r=n;o>s;++s,++r)i[r]=t[s]}function biShiftLeft(t,e){var i=Math.floor(e/bitsPerDigit),n=new BigInt;arrayCopy(t.digits,0,n.digits,i,n.digits.length-i);for(var a=e%bitsPerDigit,o=bitsPerDigit-a,s=n.digits.length-1,r=s-1;s>0;--s,--r)n.digits[s]=n.digits[s]<<a&maxDigitVal|(n.digits[r]&highBitMasks[a])>>>o;return n.digits[0]=n.digits[s]<<a&maxDigitVal,n.isNeg=t.isNeg,n}function biShiftRight(t,e){var i=Math.floor(e/bitsPerDigit),n=new BigInt;arrayCopy(t.digits,i,n.digits,0,t.digits.length-i);for(var a=e%bitsPerDigit,o=bitsPerDigit-a,s=0,r=s+1;s<n.digits.length-1;++s,++r)n.digits[s]=n.digits[s]>>>a|(n.digits[r]&lowBitMasks[a])<<o;return n.digits[n.digits.length-1]>>>=a,n.isNeg=t.isNeg,n}function biMultiplyByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,0,i.digits,e,i.digits.length-e),i}function biDivideByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,e,i.digits,0,i.digits.length-e),i}function biModuloByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,0,i.digits,0,e),i}function biCompare(t,e){if(t.isNeg!=e.isNeg)return 1-2*Number(t.isNeg);for(var i=t.digits.length-1;i>=0;--i)if(t.digits[i]!=e.digits[i])return t.isNeg?1-2*Number(t.digits[i]>e.digits[i]):1-2*Number(t.digits[i]<e.digits[i]);return 0}function biDivideModulo(t,e){var i,n,a=biNumBits(t),o=biNumBits(e),s=e.isNeg;if(o>a)return t.isNeg?(i=biCopy(bigOne),i.isNeg=!e.isNeg,t.isNeg=!1,e.isNeg=!1,n=biSubtract(e,t),t.isNeg=!0,e.isNeg=s):(i=new BigInt,n=biCopy(t)),new Array(i,n);i=new BigInt,n=t;for(var r=Math.ceil(o/bitsPerDigit)-1,l=0;e.digits[r]<biHalfRadix;)e=biShiftLeft(e,1),++l,++o,r=Math.ceil(o/bitsPerDigit)-1;n=biShiftLeft(n,l),a+=l;for(var c=Math.ceil(a/bitsPerDigit)-1,u=biMultiplyByRadixPower(e,c-r);-1!=biCompare(n,u);)++i.digits[c-r],n=biSubtract(n,u);for(var d=c;d>r;--d){var p=d>=n.digits.length?0:n.digits[d],f=d-1>=n.digits.length?0:n.digits[d-1],h=d-2>=n.digits.length?0:n.digits[d-2],m=r>=e.digits.length?0:e.digits[r],g=r-1>=e.digits.length?0:e.digits[r-1];i.digits[d-r-1]=p==m?maxDigitVal:Math.floor((p*biRadix+f)/m);for(var v=i.digits[d-r-1]*(m*biRadix+g),b=p*biRadixSquared+(f*biRadix+h);v>b;)--i.digits[d-r-1],v=i.digits[d-r-1]*(m*biRadix|g),b=p*biRadix*biRadix+(f*biRadix+h);u=biMultiplyByRadixPower(e,d-r-1),n=biSubtract(n,biMultiplyDigit(u,i.digits[d-r-1])),n.isNeg&&(n=biAdd(n,u),--i.digits[d-r-1])}return n=biShiftRight(n,l),i.isNeg=t.isNeg!=s,t.isNeg&&(i=s?biAdd(i,bigOne):biSubtract(i,bigOne),e=biShiftRight(e,l),n=biSubtract(e,n)),0==n.digits[0]&&0==biHighIndex(n)&&(n.isNeg=!1),new Array(i,n)}function biDivide(t,e){return biDivideModulo(t,e)[0]}function biModulo(t,e){return biDivideModulo(t,e)[1]}function biMultiplyMod(t,e,i){return biModulo(biMultiply(t,e),i)}function biPow(t,e){for(var i=bigOne,n=t;0!=(1&e)&&(i=biMultiply(i,n)),e>>=1,0!=e;)n=biMultiply(n,n);return i}function biPowMod(t,e,i){for(var n=bigOne,a=t,o=e;0!=(1&o.digits[0])&&(n=biMultiplyMod(n,a,i)),o=biShiftRight(o,1),0!=o.digits[0]||0!=biHighIndex(o);)a=biMultiplyMod(a,a,i);return n}function RSAKeyPair(t,e,i){this.e=biFromHex(t),this.d=biFromHex(e),this.m=biFromHex(i),this.chunkSize=2*biHighIndex(this.m),this.radix=16,this.barrett=new BarrettMu(this.m)}function twoDigit(t){return(10>t?"0":"")+String(t)}function encryptedString(t,e){for(var i=new Array,n=e.length,a=0;n>a;)i[a]=e.charCodeAt(a),a++;for(;i.length%t.chunkSize!=0;)i[a++]=0;var o,s,r,l=i.length,c="";for(a=0;l>a;a+=t.chunkSize){for(r=new BigInt,o=0,s=a;s<a+t.chunkSize;++o)r.digits[o]=i[s++],r.digits[o]+=i[s++]<<8;var u=t.barrett.powMod(r,t.e),d=16==t.radix?biToHex(u):biToString(u,t.radix);c+=d+" "}return c.substring(0,c.length-1)}function decryptedString(t,e){var i,n,a,o=e.split(" "),s="";for(i=0;i<o.length;++i){var r;for(r=16==t.radix?biFromHex(o[i]):biFromString(o[i],t.radix),a=t.barrett.powMod(r,t.d),n=0;n<=biHighIndex(a);++n)s+=String.fromCharCode(255&a.digits[n],a.digits[n]>>8)}return 0==s.charCodeAt(s.length-1)&&(s=s.substring(0,s.length-1)),s}!function(t){String.prototype.trim===t&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Array.prototype.reduce===t&&(Array.prototype.reduce=function(e){if(void 0===this||null===this)throw new TypeError;var i,n=Object(this),a=n.length>>>0,o=0;if("function"!=typeof e)throw new TypeError;if(0==a&&1==arguments.length)throw new TypeError;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o++];break}if(++o>=a)throw new TypeError}for(;a>o;)o in n&&(i=e.call(t,i,n[o],o,n)),o++;return i})}();var Zepto=function(){function t(t){return null==t?String(t):Z[U.call(t)]||"object"}function e(e){return"function"==t(e)}function i(t){return null!=t&&t==t.window}function n(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function a(e){return"object"==t(e)}function o(t){return a(t)&&!i(t)&&t.__proto__==Object.prototype}function s(t){return t instanceof Array}function r(t){return"number"==typeof t.length}function l(t){return I.call(t,function(t){return null!=t})}function c(t){return t.length>0?D.fn.concat.apply([],t):t}function u(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function d(t){return t in N?N[t]:N[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function p(t,e){return"number"!=typeof e||L[u(t)]?e:e+"px"}function f(t){var e,i;return B[t]||(e=P.createElement(t),P.body.appendChild(e),i=E(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==i&&(i="block"),B[t]=i),B[t]}function h(t){return"children"in t?j.call(t.children):D.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function m(t,e,i){for(k in e)i&&(o(e[k])||s(e[k]))?(o(e[k])&&!o(t[k])&&(t[k]={}),s(e[k])&&!s(t[k])&&(t[k]=[]),m(t[k],e[k],i)):e[k]!==x&&(t[k]=e[k])}function g(t,e){return e===x?D(t):D(t).filter(e)}function v(t,i,n,a){return e(i)?i.call(t,n,a):i}function b(t,e,i){null==i?t.removeAttribute(e):t.setAttribute(e,i)}function y(t,e){var i=t.className,n=i&&i.baseVal!==x;return e===x?n?i.baseVal:i:void(n?i.baseVal=e:t.className=e)}function w(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:isNaN(e=Number(t))?/^[\[\{]/.test(t)?D.parseJSON(t):t:e):t}catch(i){return t}}function _(t,e){e(t);for(var i in t.childNodes)_(t.childNodes[i],e)}var x,k,D,C,T,S,A=[],j=A.slice,I=A.filter,P=window.document,B={},N={},E=P.defaultView.getComputedStyle,L={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},M=/^\s*<(\w+|!)[^>]*>/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,F=/^(?:body|html)$/i,q=["val","css","html","text","data","width","height","offset"],O=["after","prepend","before","append"],V=P.createElement("table"),H=P.createElement("tr"),$={tr:P.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:H,th:H,"*":P.createElement("div")},z=/complete|loaded|interactive/,W=/^\.([\w-]+)$/,J=/^#([\w-]*)$/,Q=/^[\w-]+$/,Z={},U=Z.toString,X={},Y=P.createElement("div");return X.matches=function(t,e){if(!t||1!==t.nodeType)return!1;var i=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(i)return i.call(t,e);var n,a=t.parentNode,o=!a;return o&&(a=Y).appendChild(t),n=~X.qsa(a,e).indexOf(t),o&&Y.removeChild(t),n},T=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},S=function(t){return I.call(t,function(e,i){return t.indexOf(e)==i})},X.fragment=function(t,e,i){t.replace&&(t=t.replace(R,"<$1></$2>")),e===x&&(e=M.test(t)&&RegExp.$1),e in $||(e="*");var n,a,s=$[e];return s.innerHTML=""+t,a=D.each(j.call(s.childNodes),function(){s.removeChild(this)}),o(i)&&(n=D(a),D.each(i,function(t,e){q.indexOf(t)>-1?n[t](e):n.attr(t,e)})),a},X.Z=function(t,e){return t=t||[],t.__proto__=D.fn,t.selector=e||"",t},X.isZ=function(t){return t instanceof X.Z},X.init=function(t,i){if(t){if(e(t))return D(P).ready(t);if(X.isZ(t))return t;var n;if(s(t))n=l(t);else if(a(t))n=[o(t)?D.extend({},t):t],t=null;else if(M.test(t))n=X.fragment(t.trim(),RegExp.$1,i),t=null;else{if(i!==x)return D(i).find(t);n=X.qsa(P,t)}return X.Z(n,t)}return X.Z()},D=function(t,e){return X.init(t,e)},D.extend=function(t){var e,i=j.call(arguments,1);return"boolean"==typeof t&&(e=t,t=i.shift()),i.forEach(function(i){m(t,i,e)}),t},X.qsa=function(t,e){var i;return n(t)&&J.test(e)?(i=t.getElementById(RegExp.$1))?[i]:[]:1!==t.nodeType&&9!==t.nodeType?[]:j.call(W.test(e)?t.getElementsByClassName(RegExp.$1):Q.test(e)?t.getElementsByTagName(e):t.querySelectorAll(e))},D.contains=function(t,e){return t!==e&&t.contains(e)},D.type=t,D.isFunction=e,D.isWindow=i,D.isArray=s,D.isPlainObject=o,D.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},D.inArray=function(t,e,i){return A.indexOf.call(e,t,i)},D.camelCase=T,D.trim=function(t){return t.trim()},D.uuid=0,D.support={},D.expr={},D.map=function(t,e){var i,n,a,o=[];if(r(t))for(n=0;n<t.length;n++)i=e(t[n],n),null!=i&&o.push(i);else for(a in t)i=e(t[a],a),null!=i&&o.push(i);return c(o)},D.each=function(t,e){var i,n;if(r(t)){for(i=0;i<t.length;i++)if(e.call(t[i],i,t[i])===!1)return t}else for(n in t)if(e.call(t[n],n,t[n])===!1)return t;return t},D.grep=function(t,e){return I.call(t,e)},window.JSON&&(D.parseJSON=JSON.parse),D.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){Z["[object "+e+"]"]=e.toLowerCase()}),D.fn={forEach:A.forEach,reduce:A.reduce,push:A.push,sort:A.sort,indexOf:A.indexOf,concat:A.concat,map:function(t){return D(D.map(this,function(e,i){return t.call(e,i,e)}))},slice:function(){return D(j.apply(this,arguments))},ready:function(t){return z.test(P.readyState)?t(D):P.addEventListener("DOMContentLoaded",function(){t(D)},!1),this},get:function(t){return t===x?j.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return A.every.call(this,function(e,i){return t.call(e,i,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):D(I.call(this,function(e){return X.matches(e,t)}))},add:function(t,e){return D(S(this.concat(D(t,e))))},is:function(t){return this.length>0&&X.matches(this[0],t)},not:function(t){var i=[];if(e(t)&&t.call!==x)this.each(function(e){t.call(this,e)||i.push(this)});else{var n="string"==typeof t?this.filter(t):r(t)&&e(t.item)?j.call(t):D(t);this.forEach(function(t){n.indexOf(t)<0&&i.push(t)})}return D(i)},has:function(t){return this.filter(function(){return a(t)?D.contains(this,t):D(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!a(t)?t:D(t)},last:function(){var t=this[this.length-1];return t&&!a(t)?t:D(t)},find:function(t){var e,i=this;return e="object"==typeof t?D(t).filter(function(){var t=this;return A.some.call(i,function(e){return D.contains(e,t)})}):1==this.length?D(X.qsa(this[0],t)):this.map(function(){return X.qsa(this,t)})},closest:function(t,e){var i=this[0],a=!1;for("object"==typeof t&&(a=D(t));i&&!(a?a.indexOf(i)>=0:X.matches(i,t));)i=i!==e&&!n(i)&&i.parentNode;return D(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=D.map(i,function(t){return(t=t.parentNode)&&!n(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return g(e,t)},parent:function(t){return g(S(this.pluck("parentNode")),t)},children:function(t){return g(this.map(function(){return h(this)}),t)},contents:function(){return this.map(function(){return j.call(this.childNodes)})},siblings:function(t){return g(this.map(function(t,e){return I.call(h(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return D.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=null),"none"==E(this,"").getPropertyValue("display")&&(this.style.display=f(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var i=e(t);if(this[0]&&!i)var n=D(t).get(0),a=n.parentNode||this.length>1;return this.each(function(e){D(this).wrapAll(i?t.call(this,e):a?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){D(this[0]).before(t=D(t));for(var e;(e=t.children()).length;)t=e.first();D(t).append(this)}return this},wrapInner:function(t){var i=e(t);return this.each(function(e){var n=D(this),a=n.contents(),o=i?t.call(this,e):t;a.length?a.wrapAll(o):n.append(o)})},unwrap:function(){return this.parent().each(function(){D(this).replaceWith(D(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=D(this);(t===x?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return D(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return D(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return t===x?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;D(this).empty().append(v(this,t,e,i))})},text:function(t){return t===x?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=t})},attr:function(t,e){var i;return"string"==typeof t&&e===x?0==this.length||1!==this[0].nodeType?x:"value"==t&&"INPUT"==this[0].nodeName?this.val():!(i=this[0].getAttribute(t))&&t in this[0]?this[0][t]:i:this.each(function(i){if(1===this.nodeType)if(a(t))for(k in t)b(this,k,t[k]);else b(this,t,v(this,e,i,this.getAttribute(t)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&b(this,t)})},prop:function(t,e){return e===x?this[0]&&this[0][t]:this.each(function(i){this[t]=v(this,e,i,this[t])})},data:function(t,e){var i=this.attr("data-"+u(t),e);return null!==i?w(i):x},val:function(t){return t===x?this[0]&&(this[0].multiple?D(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=v(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=D(this),n=v(this,t,e,i.offset()),a=i.offsetParent().offset(),o={top:n.top-a.top,left:n.left-a.left};"static"==i.css("position")&&(o.position="relative"),i.css(o)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,i){if(arguments.length<2&&"string"==typeof e)return this[0]&&(this[0].style[T(e)]||E(this[0],"").getPropertyValue(e));var n="";if("string"==t(e))i||0===i?n=u(e)+":"+p(e,i):this.each(function(){this.style.removeProperty(u(e))});else for(k in e)e[k]||0===e[k]?n+=u(k)+":"+p(k,e[k])+";":this.each(function(){this.style.removeProperty(u(k))});return this.each(function(){this.style.cssText+=";"+n})},index:function(t){return t?this.indexOf(D(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return A.some.call(this,function(t){return this.test(y(t))},d(t))},addClass:function(t){return this.each(function(e){C=[];var i=y(this),n=v(this,t,e,i);n.split(/\s+/g).forEach(function(t){D(this).hasClass(t)||C.push(t)},this),C.length&&y(this,i+(i?" ":"")+C.join(" "))})},removeClass:function(t){return this.each(function(e){return t===x?y(this,""):(C=y(this),v(this,t,e,C).split(/\s+/g).forEach(function(t){C=C.replace(d(t)," ")}),void y(this,C.trim()))})},toggleClass:function(t,e){return this.each(function(i){var n=D(this),a=v(this,t,i,y(this));a.split(/\s+/g).forEach(function(t){(e===x?!n.hasClass(t):e)?n.addClass(t):n.removeClass(t)})})},scrollTop:function(){return this.length?"scrollTop"in this[0]?this[0].scrollTop:this[0].scrollY:void 0},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),n=F.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(D(t).css("margin-top"))||0,i.left-=parseFloat(D(t).css("margin-left"))||0,n.top+=parseFloat(D(e[0]).css("border-top-width"))||0,n.left+=parseFloat(D(e[0]).css("border-left-width"))||0,{top:i.top-n.top,left:i.left-n.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||P.body;t&&!F.test(t.nodeName)&&"static"==D(t).css("position");)t=t.offsetParent;return t})}},D.fn.detach=D.fn.remove,["width","height"].forEach(function(t){D.fn[t]=function(e){var a,o=this[0],s=t.replace(/./,function(t){return t[0].toUpperCase()});return e===x?i(o)?o["inner"+s]:n(o)?o.documentElement["offset"+s]:(a=this.offset())&&a[t]:this.each(function(i){o=D(this),o.css(t,v(this,e,i,o[t]()))})}}),O.forEach(function(e,i){var n=i%2;D.fn[e]=function(){var e,a,o=D.map(arguments,function(i){return e=t(i),"object"==e||"array"==e||null==i?i:X.fragment(i)}),s=this.length>1;return o.length<1?this:this.each(function(t,e){a=n?e:e.parentNode,e=0==i?e.nextSibling:1==i?e.firstChild:2==i?e:null,o.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!a)return D(t).remove();_(a.insertBefore(t,e),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},D.fn[n?e+"To":"insert"+(i?"Before":"After")]=function(t){return D(t)[e](this),this}}),X.Z.prototype=D.fn,X.uniq=S,X.deserializeValue=w,D.zepto=X,D}();window.Zepto=Zepto,"$"in window||(window.$=Zepto),function(t){function e(t){var e=this.os={},i=this.browser={},n=t.match(/WebKit\/([\d.]+)/),a=t.match(/(Android)\s+([\d.]+)/),o=t.match(/(iPad).*OS\s([\d_]+)/),s=!o&&t.match(/(iPhone\sOS)\s([\d_]+)/),r=t.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),l=r&&t.match(/TouchPad/),c=t.match(/Kindle\/([\d.]+)/),u=t.match(/Silk\/([\d._]+)/),d=t.match(/(BlackBerry).*Version\/([\d.]+)/),p=t.match(/(BB10).*Version\/([\d.]+)/),f=t.match(/(RIM\sTablet\sOS)\s([\d.]+)/),h=t.match(/PlayBook/),m=t.match(/Chrome\/([\d.]+)/)||t.match(/CriOS\/([\d.]+)/),g=t.match(/Firefox\/([\d.]+)/);(i.webkit=!!n)&&(i.version=n[1]),a&&(e.android=!0,e.version=a[2]),s&&(e.ios=e.iphone=!0,e.version=s[2].replace(/_/g,".")),o&&(e.ios=e.ipad=!0,e.version=o[2].replace(/_/g,".")),r&&(e.webos=!0,e.version=r[2]),l&&(e.touchpad=!0),d&&(e.blackberry=!0,e.version=d[2]),p&&(e.bb10=!0,e.version=p[2]),f&&(e.rimtabletos=!0,e.version=f[2]),h&&(i.playbook=!0),c&&(e.kindle=!0,e.version=c[1]),u&&(i.silk=!0,i.version=u[1]),!u&&e.android&&t.match(/Kindle Fire/)&&(i.silk=!0),m&&(i.chrome=!0,i.version=m[1]),g&&(i.firefox=!0,i.version=g[1]),e.tablet=!!(o||h||a&&!t.match(/Mobile/)||g&&t.match(/Tablet/)),e.phone=!(e.tablet||!(a||s||r||d||p||m&&t.match(/Android/)||m&&t.match(/CriOS\/([\d.]+)/)||g&&t.match(/Mobile/)))}e.call(t,navigator.userAgent),t.__detect=e}(Zepto),function(t){function e(t){return t._zid||(t._zid=f++)}function i(t,i,o,s){if(i=n(i),i.ns)var r=a(i.ns);return(p[e(t)]||[]).filter(function(t){return!(!t||i.e&&t.e!=i.e||i.ns&&!r.test(t.ns)||o&&e(t.fn)!==e(o)||s&&t.sel!=s)})}function n(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function a(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(e,i,n){"string"!=t.type(e)?t.each(e,n):e.split(/\s/).forEach(function(t){n(t,i)})}function s(t,e){return t.del&&("focus"==t.e||"blur"==t.e)||!!e}function r(t){return m[t]||t}function l(i,a,l,c,u,d){var f=e(i),h=p[f]||(p[f]=[]);o(a,l,function(e,a){var o=n(e);o.fn=a,o.sel=c,o.e in m&&(a=function(e){var i=e.relatedTarget;return!i||i!==this&&!t.contains(this,i)?o.fn.apply(this,arguments):void 0}),o.del=u&&u(a,e);var l=o.del||a;o.proxy=function(t){var e=l.apply(i,[t].concat(t.data));return e===!1&&(t.preventDefault(),t.stopPropagation()),e},o.i=h.length,h.push(o),i.addEventListener(r(o.e),o.proxy,s(o,d))})}function c(t,n,a,l,c){var u=e(t);o(n||"",a,function(e,n){i(t,e,n,l).forEach(function(e){delete p[u][e.i],t.removeEventListener(r(e.e),e.proxy,s(e,c))})})}function u(e){var i,n={originalEvent:e};for(i in e)b.test(i)||void 0===e[i]||(n[i]=e[i]);return t.each(y,function(t,i){n[t]=function(){return this[i]=g,e[t].apply(e,arguments)},n[i]=v}),n}function d(t){if(!("defaultPrevented"in t)){t.defaultPrevented=!1;var e=t.preventDefault;t.preventDefault=function(){this.defaultPrevented=!0,e.call(this)}}}var p=(t.zepto.qsa,{}),f=1,h={},m={mouseenter:"mouseover",mouseleave:"mouseout"};h.click=h.mousedown=h.mouseup=h.mousemove="MouseEvents",t.event={add:l,remove:c},t.proxy=function(i,n){if(t.isFunction(i)){var a=function(){return i.apply(n,arguments)};return a._zid=e(i),a}if("string"==typeof n)return t.proxy(i[n],i);throw new TypeError("expected function")},t.fn.bind=function(t,e){return this.each(function(){l(this,t,e)})},t.fn.unbind=function(t,e){return this.each(function(){c(this,t,e)})},t.fn.one=function(t,e){return this.each(function(i,n){l(this,t,e,null,function(t,e){return function(){var i=t.apply(n,arguments);return c(n,e,t),i}})})};var g=function(){return!0},v=function(){return!1},b=/^([A-Z]|layer[XY]$)/,y={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(e,i,n){return this.each(function(a,o){l(o,i,n,e,function(i){return function(n){var a,s=t(n.target).closest(e,o).get(0);return s?(a=t.extend(u(n),{currentTarget:s,liveFired:o}),i.apply(s,[a].concat([].slice.call(arguments,1)))):void 0}})})},t.fn.undelegate=function(t,e,i){return this.each(function(){c(this,e,i,t)})},t.fn.live=function(e,i){return t(document.body).delegate(this.selector,e,i),this},t.fn.die=function(e,i){return t(document.body).undelegate(this.selector,e,i),this},t.fn.on=function(e,i,n){return!i||t.isFunction(i)?this.bind(e,i||n):this.delegate(i,e,n)},t.fn.off=function(e,i,n){return!i||t.isFunction(i)?this.unbind(e,i||n):this.undelegate(i,e,n)},t.fn.trigger=function(e,i){return("string"==typeof e||t.isPlainObject(e))&&(e=t.Event(e)),d(e),e.data=i,this.each(function(){"dispatchEvent"in this&&this.dispatchEvent(e)})},t.fn.triggerHandler=function(e,n){var a,o;return this.each(function(s,r){a=u("string"==typeof e?t.Event(e):e),a.data=n,a.target=r,t.each(i(r,e.type||e),function(t,e){return o=e.proxy(a),a.isImmediatePropagationStopped()?!1:void 0})}),o},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){"string"!=typeof t&&(e=t,t=e.type);var i=document.createEvent(h[t]||"Events"),n=!0;if(e)for(var a in e)"bubbles"==a?n=!!e[a]:i[a]=e[a];return i.initEvent(t,n,!0,null,null,null,null,null,null,null,null,null,null,null,null),i.isDefaultPrevented=function(){return this.defaultPrevented},i}}(Zepto),function(t){function e(e,i,n){var a=t.Event(i);return t(e).trigger(a,n),!a.defaultPrevented}function n(t,i,n,a){return t.global?e(i||y,n,a):void 0}function a(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function o(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function s(t,e){var i=e.context;return e.beforeSend.call(i,t,e)===!1||n(e,i,"ajaxBeforeSend",[t,e])===!1?!1:void n(e,i,"ajaxSend",[t,e])}function r(t,e,i){var a=i.context,o="success";i.success.call(a,t,o,e),n(i,a,"ajaxSuccess",[e,i,t]),c(o,e,i),window.Pass&&window.Pass.traceID&&window.Pass.traceID.getTraceID&&window.Pass.traceID.getTraceID(e,t)}function l(t,e,i,a){var o=a.context;a.error.call(o,i,e,t),n(a,o,"ajaxError",[i,a,t]),c(e,i,a)}function c(t,e,i){var a=i.context;i.complete.call(a,e,t),n(i,a,"ajaxComplete",[e,i]),o(i)}function u(){}function d(t){return t&&(t=t.split(";",2)[0]),t&&(t==D?"html":t==k?"json":_.test(t)?"script":x.test(t)&&"xml")||"text"}function p(t,e){return(t+"&"+e).replace(/[&?]{1,2}/,"?")}function f(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=p(e.url,e.data))}function h(e,i,n,a){var o=!t.isFunction(i);return{url:e,data:o?i:void 0,success:o?t.isFunction(n)?n:void 0:i,dataType:o?a||n:n}}function m(e,i,n,a){var o,s=t.isArray(i);t.each(i,function(i,r){o=t.type(r),a&&(i=n?a:a+"["+(s?"":i)+"]"),!a&&s?e.add(r.name,r.value):"array"==o||!n&&"object"==o?m(e,r,n,i):e.add(i,r)})}var g,v,b=0,y=window.document,w=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,_=/^(?:text|application)\/javascript/i,x=/^(?:text|application)\/xml/i,k="application/json",D="text/html",C=/^\s*$/;t.active=0,t.ajaxJSONP=function(e){if(!("type"in e))return t.ajax(e);var i,n="jsonp"+ ++b,a=y.createElement("script"),o=function(){clearTimeout(i),t(a).remove(),delete window[n]},c=function(t){o(),t&&"timeout"!=t||(window[n]=u),l(null,t||"abort",d,e)},d={abort:c};return s(d,e)===!1?(c("abort"),!1):(window[n]=function(t){o(),r(t,d,e)},a.onerror=function(){c("error")},a.src=e.url.replace(/=\?/,"="+n),t("head").append(a),e.timeout>0&&(i=setTimeout(function(){c("timeout")},e.timeout)),d)},t.ajaxSettings={type:"GET",beforeSend:u,success:u,error:u,complete:u,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:k,xml:"application/xml, text/xml",html:D,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){window.Pass&&window.Pass.traceID&&window.Pass.traceID.createTraceID&&window.Pass.traceID.setData&&window.Pass.traceID.setData(e);var n=t.extend({},e||{});for(g in t.ajaxSettings)void 0===n[g]&&(n[g]=t.ajaxSettings[g]);a(n),urlProtcol=null,urlDomain=null,crosstest=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url),urlProtcol=RegExp.$1,urlDomain=RegExp.$2;var o="wappass.baidu.com";"http:"==urlProtcol&&urlDomain==o&&(n.url=n.url.replace(/^http:/,"https:")),n.crossDomain||(n.crossDomain=crosstest&&urlDomain!=window.location.host),n.url||(n.url=window.location.toString()),f(n),n.cache===!1&&(n.url=p(n.url,"_="+Date.now()));var c=n.dataType,h=/=\?/.test(n.url);if("jsonp"==c||h)return h||(n.url=p(n.url,"callback=?")),t.ajaxJSONP(n);var m,b=n.accepts[c],y={},w=urlProtcol?urlProtcol:window.location.protocol,_=n.xhr();urlDomain==o&&"http:"==window.location.protocol&&(n.crossDomain=!0),n.crossDomain||(y["X-Requested-With"]="XMLHttpRequest"),b&&(y.Accept=b,b.indexOf(",")>-1&&(b=b.split(",",2)[0]),_.overrideMimeType&&_.overrideMimeType(b)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&(y["Content-Type"]=n.contentType||"application/x-www-form-urlencoded"),n.headers=t.extend(y,n.headers||{}),_.onreadystatechange=function(){if(4==_.readyState){_.onreadystatechange=u,clearTimeout(m);var e,i=!1;if(_.status>=200&&_.status<300||304==_.status||0==_.status&&"file:"==w){c=c||d(_.getResponseHeader("content-type")),e=_.responseText;try{"script"==c?(1,eval)(e):"xml"==c?e=_.responseXML:"json"==c&&(e=C.test(e)?null:t.parseJSON(e))}catch(a){i=a}i?l(i,"parsererror",_,n):r(e,_,n)}else l(null,_.status?"error":"abort",_,n)}};var x="async"in n?n.async:!0;if(_.open(n.type,n.url,x),n.xhrFields)for(i in n.xhrFields)_[i]=n.xhrFields[i];urlDomain==o&&(_.withCredentials=!0);for(v in n.headers)_.setRequestHeader(v,n.headers[v]);return s(_,n)===!1?(_.abort(),!1):(n.timeout>0&&(m=setTimeout(function(){_.onreadystatechange=u,_.abort(),l(null,"timeout",_,n)
},n.timeout)),_.send(n.data?n.data:null),_)},t.get=function(){return t.ajax(h.apply(null,arguments))},t.post=function(){var e=h.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=h.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,i,n){if(!this.length)return this;var a,o=this,s=e.split(/\s/),r=h(e,i,n),l=r.success;return s.length>1&&(r.url=s[0],a=s[1]),r.success=function(e){o.html(a?t("<div>").html(e.replace(w,"")).find(a):e),l&&l.apply(o,arguments)},t.ajax(r),this};var T=encodeURIComponent;t.param=function(t,e){var i=[];return i.add=function(t,e){this.push(T(t)+"="+T(e))},m(i,t,e),i.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var e,i=[];return t(Array.prototype.slice.call(this.get(0).elements)).each(function(){e=t(this);var n=e.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&("radio"!=n&&"checkbox"!=n||this.checked)&&i.push({name:e.attr("name"),value:e.val()})}),i},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var i=t.Event("submit");this.eq(0).trigger(i),i.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(t,e){function i(t){return n(t.replace(/([a-z])([A-Z])/,"$1-$2"))}function n(t){return t.toLowerCase()}function a(t){return o?o+t:n(t)}var o,s,r,l,c,u,d,p,f="",h={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},m=window.document,g=m.createElement("div"),v=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,b={};t.each(h,function(t,i){return g.style[t+"TransitionProperty"]!==e?(f="-"+n(t)+"-",o=i,!1):void 0}),s=f+"transform",b[r=f+"transition-property"]=b[l=f+"transition-duration"]=b[c=f+"transition-timing-function"]=b[u=f+"animation-name"]=b[d=f+"animation-duration"]=b[p=f+"animation-timing-function"]="",t.fx={off:o===e&&g.style.transitionProperty===e,speeds:{_default:400,fast:200,slow:600},cssPrefix:f,transitionEnd:a("TransitionEnd"),animationEnd:a("AnimationEnd")},t.fn.animate=function(e,i,n,a){return t.isPlainObject(i)&&(n=i.easing,a=i.complete,i=i.duration),i&&(i=("number"==typeof i?i:t.fx.speeds[i]||t.fx.speeds._default)/1e3),this.anim(e,i,n,a)},t.fn.anim=function(n,a,o,f){var h,m,g,y={},w="",_=this,x=t.fx.transitionEnd;if(a===e&&(a=.4),t.fx.off&&(a=0),"string"==typeof n)y[u]=n,y[d]=a+"s",y[p]=o||"linear",x=t.fx.animationEnd;else{m=[];for(h in n)v.test(h)?w+=h+"("+n[h]+") ":(y[h]=n[h],m.push(i(h)));w&&(y[s]=w,m.push(s)),a>0&&"object"==typeof n&&(y[r]=m.join(", "),y[l]=a+"s",y[c]=o||"linear")}return g=function(e){if("undefined"!=typeof e){if(e.target!==e.currentTarget)return;t(e.target).unbind(x,g)}t(this).css(b),f&&f.call(this)},a>0&&this.bind(x,g),this.size()&&this.get(0).clientLeft,this.css(y),0>=a&&setTimeout(function(){_.each(function(){g.call(this)})},0),this},g=null}(Zepto),function(t){function e(t){return"tagName"in t?t:t.parentNode}function i(t,e,i,n){var a=Math.abs(t-e),o=Math.abs(i-n);return a>=o?t-e>0?"Left":"Right":i-n>0?"Up":"Down"}function n(){c=null,u.last&&(u.el.trigger("longTap"),u={})}function a(){c&&clearTimeout(c),c=null}function o(){s&&clearTimeout(s),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),s=r=l=c=null,u={}}var s,r,l,c,u={},d=750;t(document).ready(function(){var p,f,h=0,m=0;t(document.body).bind("touchstart",function(i){p=Date.now(),f=p-(u.last||p),u.el=t(e(i.touches[0].target)),s&&clearTimeout(s),u.x1=i.touches[0].pageX,u.y1=i.touches[0].pageY,f>0&&250>=f&&(u.isDoubleTap=!0),u.last=p,c=setTimeout(n,d)}).bind("touchmove",function(t){a(),u.x2=t.touches[0].pageX,u.y2=t.touches[0].pageY,Math.abs(u.x1-u.x2)>10&&t.preventDefault(),h+=Math.abs(u.x1-u.x2),m+=Math.abs(u.y1-u.y2)}).bind("touchend",function(){a(),u.x2&&Math.abs(u.x1-u.x2)>30||u.y2&&Math.abs(u.y1-u.y2)>30?l=setTimeout(function(){u.el.trigger("swipe"),u.el.trigger("swipe"+i(u.x1,u.x2,u.y1,u.y2)),u={}},0):"last"in u&&(30>h&&30>m?r=setTimeout(function(){var e=t.Event("tap");e.cancelTouch=o,u.el.trigger(e),u.isDoubleTap?(u.el.trigger("doubleTap"),u={}):s=setTimeout(function(){s=null,u.el.trigger("singleTap"),u={}},250)},0):u={}),h=m=0}).bind("touchcancel",o),t(window).bind("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(e){t.fn[e]=function(t){return this.bind(e,t)}})}(Zepto),function(t){function e(e){return e=t(e),!(!e.width()&&!e.height())&&"none"!==e.css("display")}function i(t,e){t=t.replace(/=#\]/g,'="#"]');var i,n,a=r.exec(t);if(a&&a[2]in s&&(i=s[a[2]],n=a[3],t=a[1],n)){var o=Number(n);n=isNaN(o)?n.replace(/^["']|["']$/g,""):o}return e(t,i,n)}var n=t.zepto,a=n.qsa,o=n.matches,s=t.expr[":"]={visible:function(){return e(this)?this:void 0},hidden:function(){return e(this)?void 0:this},selected:function(){return this.selected?this:void 0},checked:function(){return this.checked?this:void 0},parent:function(){return this.parentNode},first:function(t){return 0===t?this:void 0},last:function(t,e){return t===e.length-1?this:void 0},eq:function(t,e,i){return t===i?this:void 0},contains:function(e,i,n){return t(this).text().indexOf(n)>-1?this:void 0},has:function(t,e,i){return n.qsa(this,i).length?this:void 0}},r=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),l=/^\s*>/,c="Zepto"+ +new Date;n.qsa=function(e,o){return i(o,function(i,s,r){try{var u;!i&&s?i="*":l.test(i)&&(u=t(e).addClass(c),i="."+c+" "+i);var d=a(e,i)}catch(p){throw console.error("error performing selector: %o",o),p}finally{u&&u.removeClass(c)}return s?n.uniq(t.map(d,function(t,e){return s.call(t,e,d,r)})):d})},n.matches=function(t,e){return i(e,function(e,i,n){return!(e&&!o(t,e)||i&&i.call(t,null,n)!==t)})}}(Zepto),function(t){t.fn.formJson=function(e,i){function n(t,e){var i=c[t];i?(i.push||(c[t]=[i]),c[t].push(e)):c[t]=e}for(var a,o,s,r,e=e||t(this).get(0),l=e.elements,i=i||function(t){return t},c={},u=0,d=l.length;d>u;u++)if(a=l[u],s=a.name,!a.disabled&&s)switch(o=a.type,r=a.value,o){case"radio":case"checkbox":if(!a.checked)break;case"textarea":case"text":case"tel":case"email":case"password":case"hidden":case"file":n(s,i(r,s))}return c}}(Zepto),function(t,e){function i(i,n,a,o,s){"function"!=typeof n||s||(s=n,n=e);var r={opacity:a};return o&&(r.scale=o,i.css(t.fx.cssPrefix+"transform-origin","0 0")),i.animate(r,n,null,s)}function n(e,n,a,o){return i(e,n,0,a,function(){s.call(t(this)),o&&o.call(this)})}var a=window.document,o=(a.documentElement,t.fn.show),s=t.fn.hide,r=t.fn.toggle;t.fn.show=function(t,n){return o.call(this),t===e?t=0:this.css("opacity",0),i(this,t,1,"1,1",n)},t.fn.hide=function(t,i){return t===e?s.call(this):n(this,t,"0,0",i)},t.fn.toggle=function(i,n){return i===e||"boolean"==typeof i?r.call(this,i):this.each(function(){var e=t(this);e["none"==e.css("display")?"show":"hide"](i,n)})},t.fn.fadeTo=function(t,e,n){return i(this,t,e,null,n)},t.fn.fadeIn=function(t,e){var i=this.css("opacity");return i>0?this.css("opacity",0):i=1,o.call(this).fadeTo(t,i,e)},t.fn.fadeOut=function(t,e){return n(this,t,null,e)},t.fn.fadeToggle=function(e,i){return this.each(function(){var n=t(this);n[0==n.css("opacity")||"none"==n.css("display")?"fadeIn":"fadeOut"](e,i)})},t.fn.longPress=function(t){for(var i=e,n=this,a=0;a<n.length;a++)n[a].addEventListener("touchstart",function(){i=setTimeout(t,800)},!1),n[a].addEventListener("touchend",function(){clearTimeout(i)},!1)}}(Zepto),function(t){t.fn.getQueryString=function(t){for(var e=location.href.substring(location.href.indexOf("?")+1).split("&"),i={},n=0,a=e.length;a>n;n++){var o=e[n].split("=");i[o[0]]=o[1]}return i[t]?i[t]:""}}(Zepto),function(t){t.extend(t.fn,{cookie:function(e,i,n){var a,o,s,r;return arguments.length>1&&"[object Object]"!==String(i)?(n=t.extend({},n),(null===i||void 0===i)&&(n.expires=-1),"number"==typeof n.expires&&(a=24*n.expires*60*60*1e3,o=n.expires=new Date,o.setTime(o.getTime()+a)),i=String(i),document.cookie=[encodeURIComponent(e),"=",n.raw?i:encodeURIComponent(i),n.expires?"; expires="+n.expires.toUTCString():"",n.path?"; path="+n.path:"",n.domain?"; domain="+n.domain:"",n.secure?"; secure":""].join("")):(n=i||{},r=n.raw?function(t){return t}:decodeURIComponent,(s=new RegExp("(?:^|; )"+encodeURIComponent(e)+"=([^;]*)").exec(document.cookie))?r(s[1]):null)}})}(Zepto),!function(t){"use strict";function e(t){(e=Array.prototype.indexOf?function(t){return o.indexOf(t)>-1}:function(t){var e=t+s;return o.join(s).indexOf(e)>-1})(t)}function i(t,i){var a,o,s=t.split("/"),r=s.length;for(a=0,o=n;r>a;a++,o=o[t]){if(t=s[a],0===a&&e(t))throw t+"is reservedWord";o[t]||a===r-1||(o[t]={}),a===r-1&&(o[t]=i)}}var n,a={},o=["require","define"],s="arr"+ +new Date;n=t.Pass={},n.define=function(t,e){if(!t)throw"base/namespace Pass.define first param must be passed in";return e?(a[t]=e,i(t,a[t])):(a[t]={},i(t,a[t])),a[t]},n.require=function(t){if(!t||!a[t])throw"base/namespace Pass.require cant get target obj";return a[t]},t.Pass=n}(window),!function(t,e){"use strict";var i={login:"/static/appsapi/js/app_show_webapp_login.js",login_again:"/static/appsapi/js/app_show_webapp_login_again.js",oneKeyLogin:"/static/appsapi/js/app_show_webapp_onekey_login.js",sms_login:"/static/appsapi/js/app_show_webapp_sms_login.js",sms_verify:"/static/appsapi/js/app_show_webapp_sms_verify.js",sms_verify_new:"/static/appsapi/js/app_show_webapp_sms_verify_new.js",face_login:"/static/appsapi/js/app_show_webapp_face_login.js",bind:"/static/appsapi/js/app_show_webapp_bind.js",bind_verify:"/static/appsapi/js/app_show_webapp_bind_verify.js",bindResult:"/static/appsapi/js/app_show_webapp_bind_result.js",forcedBind:"/static/appsapi/js/app_show_webapp_forced_bind.js",forcedBind_verify:"/static/appsapi/js/app_show_webapp_forced_bind_verify.js",realName:"/static/appsapi/js/app_show_webapp_real_name.js",realName_verify:"/static/appsapi/js/app_show_webapp_real_name_verify.js",verify:"/static/appsapi/js/app_show_webapp_verify.js",reg:"/static/appsapi/js/app_show_webapp_reg.js",reg_verify:"/static/appsapi/js/app_show_webapp_reg_verify.js",canshare_accounts:"/static/appsapi/js/app_show_webapp_canshare_accounts.js",authPwd:"/static/appsapi/js/app_show_webapp_auth_pwd.js",agreement:"/static/appsapi/js/app_show_webapp_agreement.js",personal_agreement:"/static/appsapi/js/app_show_webapp_personal_agreement.js",getpass:"/static/appsapi/js/app_show_webapp_getpass.js",getpassbyphone:"/static/appsapi/js/app_show_webapp_getpassbyphone.js",getpassbyemail:"/static/appsapi/js/app_show_webapp_getpassbyemail.js",getpassbyemail_result:"/static/appsapi/js/app_show_webapp_getpassbyemail_result.js",fastReg:"/static/appsapi/js/app_show_webapp_fast_reg.js",upstreamReg:"/static/appsapi/js/app_show_webapp_upstream_reg.js",setpwd:"/static/appsapi/js/app_show_webapp_setpwd.js",fastRegSuccess:"/static/appsapi/js/app_show_webapp_fast_reg_success.js",fastRegVerify:"/static/appsapi/js/app_show_webapp_fast_reg_verify.js",feedback:"/static/appsapi/js/app_show_webapp_feedback.js",codelist:"/static/appsapi/js/app_show_webapp_codelist.js",idcardverify:"/static/appsapi/js/app_show_webapp_idcardverify.js",uniqueVerifyCode:"/static/appsapi/js/app_show_webapp_unique_verify_code.js",setunamepwd:"/static/appsapi/js/app_show_webapp_setuname_pwd.js",secondCardVerify:"/static/appsapi/js/app_show_webapp_secondCard_verify.js",secondCardResult:"/static/appsapi/js/app_show_webapp_secondCard_result.js",smsSecondcard:"/static/appsapi/js/app_show_webapp_sms_secondcard.js",fullName:"/static/appsapi/js/app_show_webapp_fullName.js",question:"/static/appsapi/js/app_show_webapp_question.js",canshareAi:"/static/appsapi/js/app_show_webapp_canshare_ai.js"},n={realName:"/static/appsapi/css/realname.css",secondCardResult:"/static/appsapi/css/second_card.css",secondCardVerify:"/static/appsapi/css/second_card.css",fullName:"/static/appsapi/css/second_card.css",smsSecondcard:"/static/appsapi/css/second_card.css",login_again:"/static/appsapi/css/login_again.css",question:"/static/appsapi/css/question.css",idcardverify:"/static/appsapi/css/idcard.css",codelist:"/static/appsapi/css/codelist.css",feedback:"/static/appsapi/css/feedback.css",uniqueVerifyCode:"/static/appsapi/css/show/uniqueVerifyCode.css",upstreamReg:"/static/appsapi/css/show/upstreamReg.css",setunamepwd:"/static/appsapi/css/show/setunamepwd.css"};e._modulePool=e._modulePool||{},e._moduleList=e._moduleList||[],e._moduleCurrent="",e._define=e._define||function(t,i){e._modulePool[t]=i&&i()},e._getModule=e._getModule||function(t){return e._modulePool[t]};var a=function(t,e){for(var i=e.length;i>0;i--)return t===e[i-1]?i-1:-1},o=function(t,e){for(var i=0;i<e.length;i++)if(t===e[i])return i;return-1};e.removeLast=function(){var t=a(e._moduleCurrent,e._moduleList);e._moduleList.splice(t-1,1)},e.switchView=function(i,n){setTimeout(function(){i=i||"pagename",e.logAll.logBfb({en:"appsapi-"+i}),e.logAll.logBfb({en:"na-"+i+"-show"})},100),t("input").blur();var s;if("back"===i){if(s=a(e._moduleCurrent,e._moduleList),e._modulePool[e._moduleCurrent].backSign)return e._modulePool[e._moduleCurrent].back&&e._modulePool[e._moduleCurrent].back(),i=e._moduleList[s],void e.animate(i);i=s>0?e._moduleList[s-1]:"",e._modulePool[i]&&e._modulePool[i].backNeedFn&&e._modulePool[i].backFn&&e._modulePool[i].backFn();var r=t(".mod-dialog-body");if(r.length>0&&"block"===r.css("display"))return;e._moduleList.length>0&&e._moduleList.splice(s,1),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-back-"+e._moduleCurrent+(void 0===e._modulePool[e._moduleCurrent].history?"":e._modulePool[e._moduleCurrent].history?"_history":"_noHistory"),ev:[i,"show"]})}else-1===t.inArray(i,e._moduleList)?e._moduleList.push(i):(s=o(i,e._moduleList),e._moduleList.splice(s,1),e._moduleList.push(i));e.animate(i),n&&"init"===n&&(window.Jsdoing3=+new Date),""!==i&&(e._moduleCurrent=i,e.client.deviceTitle(e._getModule(i).lang.title),t("title").html(e._getModule(i).lang.title),e.client.ischeckNativeMethod("sapi_action_update_navigator",function(){var t=["login","sms_login","face_login","canshare_accounts"],n=t.indexOf(i)>-1?1:2;"ios"===publicData.client&&e.client.deviceClass("sapi_action_update_navigator",{state:n},function(){},function(){},"iframe")},function(){}))},e._getScript=e._getScript||function(t,a,o){function s(){var i=e._getModule(t);if(!i)throw new Error("load "+t+"module script error.");o&&"init"===o&&(window.Jsdoing2=+new Date,window.cache=!1),a&&a(i)}function r(t){var e=document,i=e.createElement("SCRIPT");i.type="text/javascript",i.charset="UTF-8",i.readyState?i.onreadystatechange=function(){("loaded"===i.readyState||"complete"===i.readyState)&&(i.onreadystatechange=null,s())}:i.onload=function(){s()},i.src=cdnDomain+t,e.getElementsByTagName("head")[0].appendChild(i)}var l=e._getModule(t);l?(o&&"init"===o&&(window.Jsdoing2=+new Date,window.cache=!0),a&&a(l)):n[t]?e.load.loadCssFileW(cdnDomain+n[t],function(){r(i[t])}):r(i[t])}}($,window.Pass),!function(){var t,e;!function(){function i(e){var i=e.factory,n=function(i){var n=i;return"."===i.charAt(0)&&(n=e.id.slice(0,e.id.lastIndexOf(s))+s+i.slice(2)),t(n)};return e.exports={},delete e.factory,i(n,e.exports,e),e.exports}var n={},a=[],o={},s=".";t=function(t){if(!n[t])throw"module "+t+" not found";if(t in o){var e=a.slice(o[t]).join("->")+"->"+t;throw"Cycle in require graph: "+e}if(n[t].factory)try{return o[t]=a.length,a.push(t),i(n[t])}finally{delete o[t],a.pop()}return n[t].exports},e=function(t,e){if(n[t])throw"module "+t+" already defined";n[t]={id:t,factory:e}},e.remove=function(t){delete n[t]},e.moduleMap=n}(),e("sapi_bridge",function(t,e,i){var n={callbackId:Math.floor(2e9*Math.random()),callbacks:{},commandQueue:[],loopEnabled:!1,invoke:function(t,e,i,n,a){return this.loopEnabled?void this.enqueueCommand(t,e,i,n):(t||(t="defaultCommand"),e||(e={}),this.callbackId++,this.callbacks[this.callbackId]={success:i,fail:n},void(a&&"iframe"===a?this.bridgeLoadURL("sapi://"+t+"/"+JSON.stringify(e)+"/"+this.callbackId):document.location="sapi://"+t+"/"+JSON.stringify(e)+"/"+this.callbackId))},bridgeLoadURL:function(t){var e;e=document.createElement("iframe"),e.setAttribute("src",t),e.setAttribute("style","display:none;"),e.setAttribute("height","0px"),e.setAttribute("width","0px"),e.setAttribute("frameborder","0"),document.body.appendChild(e),e.parentNode.removeChild(e),e=null},enqueueCommand:function(t,e,i,n){t||(t="defaultCommand"),e||(e={}),this.callbackId++,this.callbacks[this.callbackId]={success:i,fail:n};var a=t+"/"+JSON.stringify(e)+"/"+this.callbackId;this.commandQueue.push(a)},fetchNativeCommands:function(){var t=JSON.stringify(this.commandQueue);return this.commandQueue=[],t},activateCommandQueue:function(){document.location="sapi://ready"},callbackSuccess:function(t,e){try{n.callbackFromNative(t,e,!0)}catch(i){console.log("Error in error callback: "+t+" = "+i)}},callbackError:function(t,e){try{n.callbackFromNative(t,e,!1)}catch(i){console.log("Error in error callback: "+t+" = "+i)}},callbackFromNative:function(t,e,i){var a=this.callbacks[t];a&&(i?a.success&&a.success(t,e):a.fail&&a.fail(t,e),delete n.callbacks[t])}};i.exports=n}),window.sapi_bridge=t("sapi_bridge")}(),!function(t,e){e.client=e.client||{network:!1,encodeHTML:function(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")},upData:function(){var t,e=location.search.substring(1).split("&"),i=this,n={};for(var a in e)t=e[a].split("="),n[t[0]]=i.encodeHTML(t[1]);window.publicData=n,publicData.lang=(publicData.lang||"zh-cn").toLowerCase(),-1==="zh-cn|en".indexOf(publicData.lang)&&(publicData.lang="zh-cn"),publicData.lang+""=="en"&&(publicData.overseas=1)},fastReg:function(){window.sapi_obj&&window.sapi_obj.action_fast_reg?window.sapi_obj.action_fast_reg():publicData.client+""=="android"?prompt('{action:{name:"action_fast_reg"}}'):publicData.client+""=="ios"&&this.deviceClass("action_fast_reg")},customLogin:function(){window.sapi_obj&&window.sapi_obj.action_share_accounts_view_btn_clicked?window.sapi_obj.action_share_accounts_view_btn_clicked():publicData.client+""=="android"?prompt('{action:{name:"action_share_accounts_view_btn_clicked"}}'):publicData.client+""=="ios"&&this.deviceClass("action_share_accounts_view_btn_clicked")},vcodetoclient:function(t){window.sapi_obj&&window.sapi_obj.action_received_sms_code?window.sapi_obj.action_received_sms_code("Pass.client.setVcodeVal",t):publicData.client+""=="android"&&prompt('{action:{name:"action_received_sms_code", params:["Pass.client.setVcodeVal","'+t+'"]}}')},setVcodeVal:function(t,i){var n=e._modulePool[i];n&&n.setVcodeVal&&"[object function]"===Object.prototype.toString.call(n.setVcodeVal).toLowerCase()&&n.setVcodeVal(t,"android")},webViewWillAppear:function(){var t=e._moduleCurrent||"login",i=e._modulePool[t];i&&i.webViewWillAppear&&"[object function]"===Object.prototype.toString.call(i.webViewWillAppear).toLowerCase()&&i.webViewWillAppear()},webViewWillDisappear:function(){var t=e._moduleCurrent||"login",i=e._modulePool[t],n=Object.prototype.toString.call;i&&i.webViewWillDisappear&&"[object function]"===n(i.webViewWillDisappear).toLowerCase()&&i.webViewWillDisappear()},deviceClass:function(t,e,i,n,a){if(publicData.client+""=="android"&&window.sapi_obj){if(window.sapi_obj[t])return window.sapi_obj[t]()}else{if("android"===publicData.client){var o="";if(e){for(var s in e)o+='"'+e[s]+'",';o=o.substring(0,o.length-1)}var r='{action:{name:"'+t+'",params:['+o+"]}}",l=prompt(r);return i&&i&&i("",l?JSON.parse(l):""),l}if(publicData.client+""=="ios"){e=e||{};var c=function(t,e){i&&i(t,e)},u=function(t,e){n&&n(t,e)};window.sapi_bridge.invoke(arguments[0],e,c,u,a)}}},deviceClassJson:function(t,e,i,n){if("android"===publicData.client&&window.sapi_obj){if(window.sapi_obj[t])return window.sapi_obj[t]()}else{if("android"===publicData.client){e=e||{};var a=JSON.stringify(e),o='{action:{name:"'+t+'",params:['+a+"]}}",s=prompt(o);return s=s?JSON.parse(s):"",s&&0===parseInt(s.errno,10)?i&&i("android",s):n&&n("android",s),s}if("ios"===publicData.client){e=e||{};var r=function(t,e){i&&i(t,e)},l=function(t,e){n&&n(t,e)};window.sapi_bridge.invoke(arguments[0],e,r,l,"iframe")}}},deviceTitle:function(t){e.client.deviceClass("action_set_title",{title:t},"","","iframe")},checkLivinguname:function(t,e){return t=e?t.replace("<livinguname></livinguname>","<livinguname>"+encodeURIComponent(e)+"</livinguname>"):t.replace("<livinguname></livinguname>","")},success:function(t,i,n){if(e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"na_login_success"}),t=this.checkLivinguname(t,n),t=t.replace("<loginType></loginType>","<loginType>"+(i?i:"password")+"</loginType>"),window.sapi_obj)window.sapi_obj.authorized_response(t);else if(publicData.client+""=="android"){var a='{action:{name:"authorized_response",params:["'+t+'"]}}';prompt(a)}else if(publicData.client+""=="ios"){var o=function(){},s=function(){};window.sapi_bridge.invoke("loginSucceed",{result:t},o,s)}},action_unite_verify:function(t){if(window.sapi_obj&&window.sapi_obj.action_unite_verify)window.sapi_obj.action_unite_verify&&window.sapi_obj.action_unite_verify(t);else if(publicData.client+""=="android")prompt('{action:{name:"action_unite_verify"}}')&&prompt('{action:{name:"action_unite_verify",params:["'+t+'"]}}',"action_unite_verify");else if(publicData.client+""=="ios"){var e=function(){},i=function(){};window.sapi_bridge.invoke("action_unite_verify",{result:t},e,i)}},getNavWhiteList:function(){return[{title:"第三方登录",url:"https: //passport.baidu.com/phoenix/account/startlogin"}]},net:function(){this.network=!0;var t="appsapi";e.load.loadCssFileW("https://wappass.baidu.com/static/"+t+"/css/sapi_theme/style.css")},checkNativeMethod:function(t,e,i){this.deviceClass("sapi_action_check_method_support",{method:t},function(t,n){1===n.errno||1===n?e&&e():i&&i()},function(){},"iframe")},ischeckNativeMethod:function(t,e,i){"1"===publicData.suppcheck?this.checkNativeMethod(t,e,i):i&&i()},logAjax:function(){},logPV:function(){},identificationData:function(i,n,a,o,s){var r,l={};l.tpl=publicData.tpl||"empty",l.scene=n;var c="{tpl:"+l.tpl+",scene:"+l.scene+"}";r="pp-pp-"+(publicData.subpro||"empty")+"-"+c,e.client.checkNativeMethod("sapi_biometrics_identification_with_uid",function(){var i={type:2,subpro:r,hideGuidePage:1,uid:"ios"===publicData.client?encodeURIComponent(a):a},n=function(e){t(".biometry-loadingMask").show(),o&&o(e)},l=function(t,e){if(-204!==t){var i=0;-301===t||-302===t||-306===t?(e="登录失败，请确保本人操作，调整光线环境，或尝试其他方式登录",i=1):-303===t&&(e="刷脸功能获取失败，请重新尝试")}s&&s(t,e,i)};e.client.deviceClassJson("sapi_biometrics_identification_with_uid",i,function(t,e){n(e.callbackkey)},function(t,e){var i=parseInt(e.errno,10);l(i,e.errmsg)})})},identification:function(i,n,a,o,s){function r(e){t(".biometry-loadingMask").show(),o&&o(e)}function l(t,e){if(-204!==t){var i=0;-301===t||-302===t||-306===t?(e="登录失败，请确保本人操作，调整光线环境，或尝试其他方式登录",i=1):-303===t&&(e="刷脸功能获取失败，请重新尝试")}s&&s(t,e,i)}var c,u={};u.tpl=publicData.tpl||"empty",u.scene=n;var d="{tpl:"+u.tpl+",scene:"+u.scene+"}";if(c="pp-pp-"+(publicData.subpro||"empty")+"-"+d,"ios"===publicData.client)e.client.deviceClass("sapi_biometrics_identification_with_authtoken",{type:1,subpro:c,authtoken:encodeURIComponent(a),hideGuidePage:1},function(t,e){r(e.credentialKey)},function(t,e){l(+e.errno,e.errmsg)});else{var p={hideGuidePage:1},f=JSON.parse(prompt('{action: {name: "sapi_biometrics_identification_with_authtoken", params: ["1","'+a+'","0","'+c+'",'+JSON.stringify(p)+"]}}"));0===f.errno?r(f.credentialKey):l(+f.errno,f.errmsg)}},fillLoginNameFn:function(t){var i={};i.username=t,e._getScript("login",function(t){t.render("pageWrapper",i)})},getBadiuSid:function(t){e.client.ischeckNativeMethod("sapi_action_sid_ability",function(){e.client.deviceClassJson("sapi_action_sid_ability",{},function(e,i){i.sidValue&&(t.expSid=i.sidValue||"")})})}},e.client.upData()}($,window.Pass),!function(t,e,i){"use strict";e.client.ischeckNativeMethod("sapi_action_mini_di",function(){var t={di_keys:["cuid","AppVersion","SdkVersion"]};if("android"===i.client){var n=e.client.deviceClassJson("sapi_action_mini_di",t);n&&(n.cuid&&(i.cuid=n.cuid),n.AppVersion&&(i.sdk_version=n.AppVersion),n.SdkVersion&&(i.sdk_version=n.SdkVersion))}else"ios"===i.client&&e.client.deviceClassJson("sapi_action_mini_di",t,function(t,e){e&&(e.cuid&&(i.cuid=e.cuid),e.AppVersion&&(i.app_version=e.AppVersion),e.SdkVersion&&(i.sdk_version=e.SdkVersion))})}),e.traceID={headID:"",flowID:"",cases:"",initTraceID:function(t){var e=this;t&&t.length>0&&(e.headID=t.slice(0,6),e.flowID=t.slice(6,8))},createTraceID:function(){var t=this;return t.headID+t.flowID+t.cases},startFlow:function(t){var e=this,i=e.getFlowID(t);0===e.flowID.length&&(e.createHeadID(),e.flowID=i)},finishFlow:function(){var t=this;t.destory()},getRandom:function(){return parseInt(90*Math.random()+10,10)},createHeadID:function(){var t=this,e=(new Date).getTime()+t.getRandom().toString(),i=Number(e).toString(16),n=i.length,a=i.slice(n-6,n).toUpperCase();t.headID=a},getTraceID:function(t,e){var i=this,n=t&&t.getResponseHeader&&t.getResponseHeader("Trace-ID")||e&&e.traceid||"";i.initTraceID(n)},getFlowID:function(t){var e={wapLogin:"03",wapReg:"04",wapAppeal:"05",wapGetPass:"06",wapAccount:"07",wapFreeze:"08",wapUnFreeze:"09"};return e[t]},setData:function(t){var e=this;return t.data?t.data.traceid=e.createTraceID():t.url=t.url+(t.url.indexOf("?")>-1?"&":"?")+"traceid="+e.createTraceID(),t},destory:function(){var t=this;t.headID="",t.flowID=""}},e.logAll={logPass:function(i,n,a){var o="";for(var s in n)n.hasOwnProperty(s)&&(o=o+s+":"+n[s]+",");o=e.logAll.base64encode("{"+o.substring(0,o.length-1)+"}"),a&&(i=t.extend({},i,a));var r=e.logAll.makeImgSrc(i);r+="&auto_statistic="+o,r+="&auto_en="+n.eventType;var l=new Image;l.onload=l.onerror=function(){l.onload=l.onerror=null,l=null},l.src=r},logBfb:function(i){i=i||{};var n;i.urlObj&&(n=t.extend({},i.urlObj),delete i.urlObj);var a={};i.autoStatisticObj&&(a=t.extend({},i.autoStatisticObj),delete i.autoStatisticObj),a.eventType=i.en||"";var o=e.logAll.formatLogData(i);e.logAll.logPass(o,a,n)},base64encode:function(t){var e,i,n,a,o,s,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(n=t.length,i=0,e="";n>i;){if(a=255&t.charCodeAt(i++),i===n){e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4),e+="==";break}if(o=t.charCodeAt(i++),i===n){e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4|(240&o)>>4),e+=r.charAt((15&o)<<2),e+="=";break}s=t.charCodeAt(i++),e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4|(240&o)>>4),e+=r.charAt((15&o)<<2|(192&s)>>6),e+=r.charAt(63&s)}return e},logClickLink:function(t,i){t=t||{},t=e.logAll.formatLogData(t);var n=i.target,a=n.getAttribute&&n.getAttribute("target"),o="_self"===a||null===a,s=e.logAll.makeImgSrc(t),r="{eventType:"+(t.en||"")+"}";r=e.logAll.base64encode(r),s+="&auto_statistic="+r,s+="&auto_en="+(t.en||""),o&&(i.preventDefault?i.preventDefault():i.returnValue=!1),window.navigator.sendBeacon&&o?(window.navigator.sendBeacon(s),window.location.href=n.getAttribute("href")):o?e.logAll.lazyLog(n,s,null):e.logAll.logBfb(t)},logCallBack:function(t,i){t=t||{},t=e.logAll.formatLogData(t);var n=e.logAll.makeImgSrc(t),a="{eventType:"+(t.en||"")+"}";a=e.logAll.base64encode(a),n+="&auto_statistic="+a,n+="&auto_en="+(t.en||""),e.logAll.lazyLog({},n,i)},makeImgSrc:function(t){var e=document.location.protocol+"//nsclick.baidu.com/v.gif?pid=111&type=1023&v="+(new Date).getTime(),i="";for(var n in t)t.hasOwnProperty(n)&&"en"!==n&&(i+="&"+n+"="+t[n]);return e+=i},formatLogData:function(n){return t.extend({},{page:n.logPage||e._moduleCurrent||"",source:"native",tpl:i.tpl||"",subpro:i.subpro||"",extrajson:i.extrajson||"",cuid:i.cuid||"",app_version:i.app_version||"",sdk_version:i.sdk_version||"",livinguname:i.livinguname||"",device:i.client||"",data_source:"fe"},n)},lazyLog:function(t,e,i){function n(){i?i():window.location.href=a}var a=t.getAttribute&&t.getAttribute("href"),o=new Image,s=setTimeout(function(){o.onload=o.onerror=o=null,n("imgTimeout")},200);o.onload=o.onerror=function(){clearTimeout(s),o.onload=o.onerror=o=null,n("imgSuccess")},o.src=e}}}($,window.Pass,window.publicData),!function(t,e,i){"use strict";if("android"===i.client){e.netQueryList=[];var n=t.ajax,a=t.getJSON,o=t.get,s=t.post,r=e._getScript,l=e.logAll.logPass,c=e.logAll.logBfb,u=e.logAll.logClickLink,d=e.logAll.logCallBack,p=!1,f=null,h=function(){t.ajax=n,t.getJSON=a,t.get=o,t.post=s,e._getScript=r,e.logAll.logPass=l,e.logAll.logBfb=c,e.logAll.logClickLink=u,e.logAll.logCallBack=d};Object.defineProperty?Object.defineProperty(e.client,"network",{enumerable:!0,configurable:!0,set:function(t){if(p=t,t===!0){var i=e.netQueryList.length;e.netQueryList.fire(),h(),e.logAll.logBfb({en:"na-android-network-define",errno:i})}},get:function(){return p}}):f=setInterval(function(){if(e.client.network){clearInterval(f);var t=e.netQueryList.length;e.netQueryList.fire(),h(),e.logAll.logBfb({en:"na-android-network-timer",errno:t})}},100),e.netQueryList.fire=function(){for(;this.length>0;)this.shift()()},t.ajax=function(){var t=arguments;e.client.network?n(t[0],t[1],t[2]):e.netQueryList.push(function(){n(t[0],t[1],t[2])})},t.getJSON=function(){var t=arguments;e.client.network?a(t[0],t[1],t[2],t[3]):e.netQueryList.push(function(){a(t[0],t[1],t[2],t[3])})},t.get=function(){var t=arguments;e.client.network?o(t[0],t[1],t[2],t[3]):e.netQueryList.push(function(){o(t[0],t[1],t[2],t[3])})},t.post=function(){var t=arguments;e.client.network?s(t[0],t[1],t[2],t[3]):e.netQueryList.push(function(){s(t[0],t[1],t[2],t[3])})},e._getScript=function(){var t=arguments;e.client.network?r(t[0],t[1],t[2]):e.netQueryList.push(function(){r(t[0],t[1],t[2])})},e.logAll.logPass=function(){var t=arguments;e.client.network?l(t[0],t[1],t[2]):e.netQueryList.push(function(){l(t[0],t[1],t[2])})},e.logAll.logBfb=function(){var t=arguments;e.client.network?c(t[0],t[1],t[2]):e.netQueryList.push(function(){c(t[0],t[1],t[2])})},e.logAll.logClickLink=function(){var t=arguments;e.client.network?u(t[0],t[1],t[2]):e.netQueryList.push(function(){u(t[0],t[1],t[2])})},e.logAll.logCallBack=function(){var t=arguments;e.client.network?d(t[0],t[1],t[2]):e.netQueryList.push(function(){d(t[0],t[1],t[2])})}}}($,window.Pass,window.publicData),!function(t,e){"use strict";function i(t){this.module=t.module}var n=window.publicData,a={"zh-cn":{goback:"返回"},en:{goback:"Back"}}[n.lang||"zh-cn"];i.prototype.getId=function(t){return this.module+"-"+t},i.prototype._getHeaderField=function(t){var e=t.nextRole?' data-role="'+t.nextRole+'"':"",i="";return i+=t.overseas?'<header class="pass-header overseas_login_header" id="login-overseas-headerWrapper" data-role="back"><span class="pass-header-back">'+(1===+n.isVoiceover?a.goback:"")+"</span>":t.usual?'<header class="pass-header usual_login_header" id="'+this.getId("headerWrapper")+'">':'<header class="pass-header" id="'+this.getId("headerWrapper")+'">',i+=(t.goBack?'<span class="pass-header-back" data-role="back">'+(1===+n.isVoiceover||"yuedu"===n.tpl||"ppdemo"===n.tpl?a.goback:"")+"</span>":"")+'<span class="pass-header-title">'+t.title+"</span>"+(t.words?'<span class="pass-header-links"'+e+">"+t.words+"</span>":"")+"</header>"},i.prototype._getToastField=function(){return'<p class="pass-mod-toastWrapper" id="'+this.getId("toastWrapper")+'"></p>'},i.prototype._getMoreField=function(t){return'<footer id="'+t.module+'-layer" class="layer-account">'+(t.temp?t.temp:"")+'<a id="'+t.module+'-layerReg" class="normandy-more-reg">注册帐号</a><a id="'+t.module+'-layerQuestion" class="normandy-more-qa">登录遇到问题</a><a id="'+t.module+'-layerCancle" class="normandy-more-qa-cancle">取消</a></footer>'},i.prototype._getLoadingField=function(t){return'<p class="pass-mod-loadingWrap" id="'+this.module+'-loading"><span class="pass-mod-loadingImg"></span>'+t.html+'</p><div class="pass-mod-Mask" id="'+this.module+'-loadingMask"></div>'},i.prototype._getToptitle=function(t){return'<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div><div class="normandy-img-ailogo"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+t+"</div></div>"
},i.prototype._getErrorField=function(){return'<p class="error_area" id="'+this.getId("errorWrapper")+'" role="alert"></p>'},i.prototype._getRegularFieldNormandy=function(t){var e=t.autoComplete?' autocomplete = "off"':"",i=t.type?t.type:t.pwd?"password":"text",n=t.maxLength?'maxlength="'+t.maxLength+'"':"",a=t.placeholder?' placeholder="'+t.placeholder+'"':"",o=t.value?t.value:"",s=t.code?'<div class="pass-normandy-code-left"><p class="normandy-sub-font">国家/地区</p><span class="normandy-text-label-code">+86</span></div>':"",r=t.code?'<div class="pass-normandy-form-code pass-normandy-form-input-wrapper pass-normandy-item-':'<div class="pass-normandy-form-input-wrapper pass-normandy-item-',l=t.title?'<span class="pass-normandy-title">'+t.title+"</span>":"",c=t.label?'<label class="pass-normandy-label" for="'+this.getId(t.field)+'" id="'+this.module+"-label-"+t.field+'">'+t.labeltext+"</label>":"";return r+t.field+'">'+s+(t.code?'<div class="pass-normandy-code-right"><p class="pass-normandy-code-p">':"")+l+c+'<input type="'+i+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="'+(t.passcode?"text-input-code":"")+" pass-text-input pass-text-input-"+t.field+'" '+n+e+a+' value="'+o+'" '+(t.readonly?"readonly":"")+"/>"+(t.clearValue===!1?"":'<span class="pass-input-clearValue hide pass-clearbtn-'+t.field+'"></span>')+(t.rightDom?t.rightDom:"")+(t.code?'</p><hr class="pass-normandy-form-item-sep pass-normandy-sep-'+t.field+'"></div></div>':'</div><hr class="pass-normandy-form-item-sep pass-normandy-sep-'+t.field+'">')},i.prototype._getRegularField=function(t){var e=t.autoComplete?' autocomplete = "off"':"",i=t.type?t.type:t.pwd?"password":"text",n=t.maxLength?'maxlength="'+t.maxLength+'"':"",a=t.placeholder?' placeholder="'+t.placeholder+'"':"",o=t.value?t.value:"",s=(t.code?'<span class="pass-overseas-wrapper">':"")+'<label class="pass-text-label '+(t.labellong?"pass-text-label-long ":"")+(t.code?"pass-label-"+this.module+"-code pass-label-code pass-text-label-":"pass-text-label-"),r=t.code?'<p class="pass-form-code pass-form-item pass-form-input-wrapper pass-form-item-':'<p class="pass-form-item pass-form-input-wrapper pass-form-item-';return r+t.field+'">'+(t.label?s+t.field+'" for="'+this.getId(t.field)+'" id="'+this.module+"-label-"+t.field+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+(t.code?'<span class="pass-overseas-down"></span></span>':"")+'<input type="'+i+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="'+(t.passcode?"text-input-code":"")+" pass-text-input pass-text-input-"+t.field+'" '+n+e+a+' value="'+o+'" '+(t.readonly?"readonly":"")+"/>"+(t.clearValue?'<span class="pass-input-clearValue hide pass-clearbtn-'+t.field+'"></span>':"")+(t.rightDom?t.rightDom:"")+"</p>"},i.prototype._getRegularFieldNew=function(t){var e=t.maxLength?'maxlength="'+t.maxLength+'"':"",i=t.placeholder?' placeholder="'+t.placeholder+'"':"",n=t.value?t.value:"",a=t.label?'<label class="form-label">'+t.labeltext+"</label>":"";return'<div class="form-input">'+a+'<p class="pass-form-item form-input-value"><input type="text" name="'+t.field+'" class="text-input'+(t.disabled?" text-grey":"")+'"'+e+i+' value="'+n+'" id="'+this.module+"-"+t.field+'"'+(t.disabled?"disabled":"")+'><span class="pass-input-clearValue hide pass-input-clearValue-new"></span></p><hr class="pass-form-item-sep"><p class="error_area" id="'+this.module+"-"+t.field+'Error"></p></div>'},i.prototype._getVCodeField=function(t){var e=t.show?"":' style="display:none;"',i=t.type?t.type:"text";return'<p class="pass-form-item-v pass-form-item-'+t.field+'"'+e+' id="'+this.getId("verifyCodeWrapper")+'"><span class="pass-form-input-wrapper-forvcode">'+(t.labeltext?'<label class="pass-text-label pass-text-label-verifyCode" for="'+this.getId(t.field)+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+'<input type="'+i+'" id="'+this.getId(t.field)+'" name="'+t.field+'" class="pass-text-input pass-text-input-'+t.field+'" value="" placeholder="'+t.placeholder+'" autocomplete="off" maxlength="6"/>'+(0==!!t.clearValue?"":'<span class="pass-input-clearValue pass-clearbtn-'+t.field+'"></span>')+'</span><span class="pass-form-vcodeImg"><img class="pass-verifyCode-img" width="100" height="40" id="'+this.getId("verifyCodeImg")+'" alt="验证码"/></span></p>'},i.prototype._getVCodeSmsField=function(t){var e=t.type?t.type:"text";return'<p class="pass-form-item-v pass-form-item-'+t.field+' pass-form-item-smsVcode pass-form-item-vcode"><span class="pass-form-input-wrapper-forvcode">'+(t.labeltext?'<label class="pass-text-label pass-text-label-verifyCode" for="'+this.getId(t.field)+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+'<input type="'+e+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="pass-text-input pass-text-input-'+t.field+'" value="" placeholder="'+t.placeholder+'" autocomplete="off" maxlength="6"/>'+(0==!!t.clearValue?"":'<span class="pass-input-clearValue pass-clearbtn-'+t.field+'"></span>')+'</span></p><p class="verify-button"><input type="button" value="'+t.text+'" class="pass-form-VerifyButton" id="'+this.getId("verifyCodeSend")+'"></p>'},i.prototype._getHiddenField=function(t){var e,i=this,n='<p id="'+this.getId("hiddenFields")+'" class="hide">';for(var a in t)t.hasOwnProperty(a)&&(e="string"==typeof t[a]?t[a].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/\x22/g,"&quot;").replace(/\x27/g,"&#39;"):t[a],n+='<input type="hidden" id="'+i.getId(a)+'" name="'+a+'" value="'+e+'" />');return n+="</p>"},i.prototype._getSubmitField=function(t){return'<p class="pass-form-item pass-form-item-submit"><input id="'+this.getId("submit")+'" type="submit" value="'+t.value+'" class="pass-button-full pass-button-submit '+(t.actived?"":"pass-button-full-disabled")+'"'+(t.disabled?"disabled=disabled":"")+" /></p>"},i.prototype._getFooterField=function(){return'<footer class="footer" id="'+this.getId("footerWrapper")+'">&copy;'+(new Date).getFullYear()+" Baidu</footer>"},e.define("ui/temp",i)}($,window.Pass),!function(t,e){"use strict";function i(e){this.config=t.extend(e,{}),this.button=this.config.handler,this._validations=[],this._errno=0,this._time=this.config.sTime||60,this._init()}i.prototype._init=function(){var t=this;this.addValidation(this.config.validations),this.button.on("click",function(){t.clickCallBack(),t.config.tapcallback&&t.config.tapcallback()}),"disabled"===this.config.initStatus&&(this._timing(),this.button.get(0).disabled=!0)},i.prototype.clickCallBack=function(){this.button.get(0).disabled||(this._validate(),0===this.getErrno()&&(this._send(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-button_smsSend",ev:[e._moduleCurrent||"","click"]})))},i.prototype._timing=function(){function e(){return 0===--o?(a.val(n.config.sendText),a.removeClass("pass-button-disabled"),n.config.is_voice_sms?t("#sms_verify-verifyCodeSend").removeAttr("disabled").removeClass("pass-button-disabled"):t("#sms_verify-voiceVerify")&&t("#sms_verify-voiceVerify").removeAttr("disabled").removeClass("voice_sms_disabled"),void(a.get(0).disabled=!1)):(a.val(n.config.reSend+"("+o+")"),void(i=setTimeout(function(){e()},1e3)))}var i,n=this,a=n.button,o=n._time;a.addClass("pass-button-disabled"),e()},i.prototype._send=function(){var i,n,a=this;a.config.beforeSend&&a.config.beforeSend(),i="[object function]"===Object.prototype.toString.call(a.config.url).toLowerCase()?a.config.url():a.config.url,"[object function]"===Object.prototype.toString.call(a.config.data).toLowerCase()?(n=a.config.data(),n.tpl=publicData.tpl):(n=a.config.data,n.tpl=publicData.tpl),a.button.get(0).disabled=!0,a.button.get(0).value=a.config.loadingText,n.clientfrom=publicData.clientfrom||"native",a.config.beforeSend&&a.config.beforeSend(),t.ajax({url:i,data:n,type:a.config.type||"POST",dataType:a.config.dataType||"json",success:function(t){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-button_smsSend_request",ev:[e._moduleCurrent||"","request",t.errInfo.no,t.errInfo.msg]}),0===+t.errInfo.no?(a._timing(),a.config.success(t)):(a.button.get(0).value=a.config.sendText,a.button.get(0).disabled=!1,a.config.error(t)),a.sendTimer&&clearTimeout(a.sendTimer)}}),a.config.timmerText&&(a.sendTimer=setTimeout(function(){a.button.get(0).disabled=!1,a.config.is_voice_sms?t("#sms_verify-verifyCodeSend").removeAttr("disabled").removeClass("pass-button-disabled"):t("#sms_verify-voiceVerify")&&t("#sms_verify-voiceVerify").removeAttr("disabled").removeClass("voice_sms_disabled"),a.button.get(0).value=a.config.sendText,a.config.error({errInfo:{msg:a.config.timmerText}})},a.config.timmer||15e3))},i.prototype.addValidation=function(t){"[object Function]"===Object.prototype.toString.call(t)&&this._validations.push(t)},i.prototype._validate=function(){for(var t=this._validations.length;t--;){var e=this._validations[t].call(this,this._value);if(this.setErrno(e.errNo),e.errNo)break}},i.prototype.getErrno=function(){return this._errno},i.prototype.setErrno=function(t){this._errno=t},e.define("ui/button",i)}($,window.Pass),!function(t,e){"use strict";var i=window.publicData,n={"zh-cn":{required:"请输入%s",phone:"请输入有效手机号码",email:"邮箱格式不正确",password:"密码格式不正确",idcard:"身份证格式不正确",passAllNum:"请输入数字、字母和符号组合",passHaveSpace:"密码6-14位不能含有空格"},en:{required:"Enter %s",phone:"Incorrect phone format",email:"Incorrect email format",password:"Incorrect password format",idcard:"Incorrect idcard format",passAllNum:"Incorrect password format",passHaveSpace:"Incorrect password format"}}[i.lang||"zh-cn"];e.animate=function(n){if(""===n){var a=window.publicData.backType;return void(a?window.history.go(-1):"ios"===window.publicData.client||"android"===window.publicData.client?e.client.deviceClass("finish"):document.location=i.u)}""===e._moduleCurrent?t("#"+n).css("display","block"):e._moduleCurrent!==n?(t("#"+e._moduleCurrent).css("display","none").css("z-index","-1"),t("#"+n).css("display","block").css("z-index","0")):t("#"+n).css("display","block").css("z-index","0"),e._modulePool&&e._modulePool[n]&&e._modulePool[n].initModule&&e._modulePool[n].initModule()},e.infoAnimate=function(e,i){var n=t("#"+e+"-errorWrapper");n.html(i)},e.removeInfoAnimate=function(e){t("#"+e+"-errorWrapper").html(""),t(".pass-form-item-error").removeClass("pass-form-item-error")},"ios"===window.publicData.client&&t(window).on("resize",function(){var e=document.documentElement;setTimeout(function(){t("html").width(e.clientWidth)},0),setTimeout(function(){t("html").width(e.clientWidth)},400)}),t(window).on("orientationchange",function(){var e=document.documentElement;setTimeout(function(){t("html").width(e.clientWidth)},0),setTimeout(function(){t("html").width(e.clientWidth)},400)}),e.view={tap:function(e,i){var n=function(e){e.stopPropagation(),e.preventDefault(),t(document).off("click",n,!0)};e.on("tap",i).on("touchstart",function(){t(document).on("click",n,!0)})},click:function(e,i){var n=function(e){e.stopPropagation(),e.preventDefault(),t(document).off("click",n,!0)};e.on("click",i).on("touchstart",function(){t(document).on("click",n,!0)})},cutPage:function(i,n){e.view.click(i,function(){var i=t(this).attr("data-role");if(e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-"+i+"_cutPage",ev:[e.module||"","click"]}),n&&n.callback&&n.callback(),"back"===i)e.switchView(i);else{if("fastReg"===i||"reg"===i&&"1"===window.publicData.fastRegLink)return void e.client.fastReg();e._getScript(i,function(t){t.render("pageWrapper",n||{})})}})},clearInputValueBtn:function(i,n,a){i.on("focus",function(){""!==t(this).val()&&n.is(":hidden")&&setTimeout(function(){n.css("display","block")},25)}),i.on("blur",function(){n.is(":hidden")||n.css("display","none")}),i.on("keyup",function(){e.removeInfoAnimate(e._moduleCurrent),""!==t(this).val()||n.is(":hidden")?""!==t(this).val()&&n.is(":hidden")&&n.css("display","block"):n.css("display","none")}),n.on("tap",function(){e.removeInfoAnimate(e._moduleCurrent),i.val(""),t(this).hide(),a&&t(a).addClass("pass-button-full-disabled"),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-input_clearValue_"+i.attr("name"),ev:[e._moduleCurrent||"","click"]})})},layerEvent:function(n){var a=t("#"+n+"-layer"),o=t("#"+n+"-loadingMask");t("#"+n+"-layerReg").on("touchend",function(t){t.preventDefault(),e.logAll.logBfb({en:"appsapi-"+n+"_reg_link"}),"1"===i.fastRegLink&&"android"===i.client?e.client.deviceClass("action_fast_reg"):e._getScript("reg",function(t){t.render("pageWrapper",t)}),a.css("display","none").removeClass("layermenu-out"),o.hide()}),t("#"+n+"-loadingMask, #"+n+"-layerCancle").on("touchend",function(t){t.preventDefault(),a.hasClass("layermenu-out")&&(a.removeClass("layermenu-out"),setTimeout(function(){a.css("display","none")},300),o.hide())}),t("#"+n+"-layerQuestion").on("touchend",function(i){i.preventDefault(),t("input").blur(),e.logAll.logBfb({en:"appsapi-"+n+"_question_link_click"}),e._getScript("question",function(t){var e={type:"question"};t.render("pageWrapper",e)}),a.css("display","none").removeClass("layermenu-out"),o.hide()})},layerShow:function(e){t("#"+e+"-layer").css("display","block"),setTimeout(function(){t("#"+e+"-layer").addClass("layermenu-out")},0),t("#"+e+"-loadingMask").show()},_setFocusStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&!n.hasClass("pass-form-item-focus")&&n.addClass("pass-form-item-focus")},_setBlurStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&n.hasClass("pass-form-item-focus")&&n.removeClass("pass-form-item-focus")},_setErrorStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&!n.hasClass("pass-form-item-error")&&n.addClass("pass-form-item-error")},_clearErrorStyle:function(){setTimeout(function(){t(".pass-form-item-error").each(function(){t(this).removeClass("pass-form-item-error")})},2e3)},_mobilenumFormat:function(e,i,n){t(e.getElement(i)).on("keyup",function(){var a=t(e.getElement(i)).val(),o=/(\d{3}){1}(\d){1,4}?(?=\d*$)/g;a.indexOf("*")<0&&(a=a&&a.replace(/\s/g,"").replace(o,"$1 $2")),t(e.getElement(i)).val(a),n&&n()})},_substrMobile:function(t){var e="",i=/(\d{3}){1}(\d){1,4}?(?=\d*$)/g;return t?t.indexOf("*")>-1?t:(e=t.replace(/[^0-9*]/g,"").replace(i,"$1 $2"),e=t.replace(/[^0-9*]/g,"").length>11?t.replace(/[^0-9*]/g,"").substring(0,11).replace(i,"$1 $2"):t.replace(/[^0-9*]/g,"").replace(i,"$1 $2")):void 0},_strTrim:function(t){return"[object string]"===Object.prototype.toString.call(t).toLowerCase()?t.replace(/\s/g,""):void 0},_SBCtoDBC:function(t){var e="";if(t){for(var i=t.length,n=0;i>n;n++){var a=t.charCodeAt(n);a=a>=65281&&65374>=a?a-65248:a,a=12288===a?32:a,e+=String.fromCharCode(a)}return e}},loadingHide:function(t){t.css("opacity","0"),setTimeout(function(){t.css("display","none")},300)},_setMaxLength:function(t,i,n){t.on("keydown",function(){e.view._strTrim(this.value).length===i?this.setAttribute("maxlength",i+n):this.removeAttribute("maxlength")})},setSubmitStyle:function(e,i){function n(){e.keyupTimer=!0;for(var i in e.validateRules)if(e.validateRules.hasOwnProperty(i)){var n=e.getElement(i);if(!n||0===+n.offsetHeight)continue;if(n.value+""=="")return-1===e.getElement("submit").className.indexOf("pass-button-full-disabled")&&t(e.getElement("submit")).addClass("pass-button-full-disabled"),!1}t(e.getElement("submit")).removeClass("pass-button-full-disabled")}clearTimeout(e.keyupTimer),0===i?n():e.keyupTimer=setTimeout(function(){n()},200)},fullButton:function(e){e.on("touchstart",function(){t(this).hasClass("pass-button-full-disabled")||t(this).addClass("pass-button-full-active")}),e.on("touchend",function(){t(this).hasClass("pass-button-full-active")&&t(this).removeClass("pass-button-full-active")})},touch:function(e,i){e.on("touchstart",function(){t(this).disabled||t(this).addClass(i)}),e.on("touchend",function(){t(this).hasClass(i)>-1&&t(this).removeClass(i)})},labelFocus:function(e,i){t("#"+e.module+"-label-"+i).addClass("pass-label-"+i+"-focus")},labelBlur:function(e,i){t("#"+e.module+"-label-"+i).removeClass("pass-label-"+i+"-focus")},inputBlur:function(){t(document).on("tap",function(e){"input"!==e.target.tagName.toLowerCase()&&"label"!==e.target.tagName.toLowerCase()&&t("input").blur()})},inputFocusLine:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item").next(".pass-form-item-sep");t("#"+e.module+"-"+i+"Error").html(""),n.removeClass("pass-form-item-sep-error").removeClass("pass-form-item-sep-blur"),t(".pass-form-item-sep-blur").length>0?setTimeout(function(){n.addClass("pass-form-item-sep-focus")},300):n.addClass("pass-form-item-sep-focus")},inputBlurLine:function(e,i){var n=t(e.getElement(i)),a=n.parents(".pass-form-item").next(".pass-form-item-sep");a.removeClass("pass-form-item-sep-focus").addClass("pass-form-item-sep-blur"),setTimeout(function(){a.removeClass("pass-form-item-sep-blur")},300)},inputSuccessLine:function(e,i){var e=this,n=t(e.getElement(i));n.next(".input-clearValue").addClass("input-clearValue-ok");var a=t("#"+e.module+"-"+i+"Error");t(a).html(""),t(e.getElement(i)).parents(".pass-form-item").next(".pass-form-item-sep").removeClass("pass-form-item-sep-error")},inputScroll:function(e,i){var n=["automap"],a=t.fn.getQueryString("tpl");n.indexOf(a)&&t(e).each(function(e,n){n.focus(function(){var e=t(window).height(),n=e+e/2,a=t(this).offset().top;i.height(n),window.scrollTo(0,a-76)})})},setVcodeVal:function(e,i,n,a,o){var i=i+"";if(o=o||"",i&&6===i.length){var s=t(e.getElement("keyboardInputWrapper")).find("span.keyboardInputEle");t(s).forEach(function(e,n){t(e).html(i[n])}),t(s).addClass("keyboardCursorBlueLine").removeClass("keyboardCursor2"),"ios"!==o&&t(e.getElement("keyboardInputHidden")).val(i),n&&n()}else a&&a()},bottomCal:function(e){if(t(e.getElement("registerWrapper")).html()){var i=t(e.getElement("registerWrapper")).offset().top;t(e.getElement("registerWrapper")).height(windowHeight-i).css("visibility","visible")}},secondCardJumpParams:function(t,e){var n=["?loginType="+e,"&clientfrom="+i.clientfrom,"&adapter="+(i.adapter||""),"&client="+i.client,"&tpl="+i.tpl,"&lstr="+encodeURIComponent(t.data.lstr),"&ltoken="+t.data.ltoken,"&token="+encodeURIComponent(t.data.authtoken),"&ppU="+t.data.ppU,"&scscene="+t.data.scscene,"&scnewuser="+t.data.scnewuser,"&redireu="+encodeURIComponent(location.href),"&liveAbility="+i.liveAbility];return n}},e.validator={_validator:{_validateInfo:{},confStorage:{},builtInMsg:n,builtInRules:{required:/\S+/,phone:/^1[3456789]\d{9}$/,email:/^([a-zA-Z0-9_.\-+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/,password:/^\S{6,14}$/,idcard:/(^\d{15}$)|(^\d{17}(\d|X|x)$)/,passAllNum:/^[0-9]*$/,passHaveSpace:/^([0-9a-zA-Z_`!~@#$%^*+=,.?;'":)(}{/\\|&lt;&gt;&amp;[-]|\]]){6,14}$/},init:function(t,e){this.confStorage[t.module]=e},validate:function(t,e,i){var n=this,a=t.getElement(e),o={field:e};if(!a||0===+a.offsetHeight)return!1;var s,r=n.confStorage[t.module][e],l=r.rules;s=a.value;for(var c=0,u=l.length;u>c;c++){var d,p=l[c],f=n.builtInRules[p];if(f instanceof Function?d=f.call(t,a):(d=new RegExp(f).test(s),p+""=="passAllNum"&&(d=!d)),!d)return o.error=!0,n._validateInfo[e]=0,o.msg=n.builtInMsg[p].replace(/%s/,r.desc),o.field=a,o.fieldname=e,t._validateError(o),void i.error(o)}r.asyncRule?r.asyncRule.call(t,{success:function(){o.error=!1,n._validateInfo[e]=1,t._validateSuccess(o),i.success(o)},error:function(a){o.error=!0,n._validateInfo[e]=0,o.msg=a.msg,t._validateError(o),i.error(o)}}):(o.error=!1,n._validateInfo[e]=1,t._validateSuccess(o),i.success(o))},validateAll:function(t,e,i){function n(){r=!0,s?e&&e.error(l):e&&e.success(l)}var a=this.confStorage[t.module],o=0,s=!1,r=!1,l=[],c=this._getActiveValidate(t,!0);for(var u in a){if(r)break;this.validate(t,u,{success:function(t){o++,l.push(t),o===c&&n()},error:function(t){return s=!0,i?void n():(o++,l.push(t),void(o===c&&n()))}})}},_getActiveValidate:function(t,e){var i=this.confStorage[t.module],n=[];for(var a in i){var o=t.getElement(a);o&&0!==+o.offsetHeight&&n.push(o)}return e?n.length:n},addRule:function(e,i){var n={};n[e]=i,t.extend(this.builtInRules,n)},addMsg:function(e,i){var n={};n[e]=i,t.extend(this.builtInMsg,n)}},validate:function(t,e){var i=this;this._validator.validate(i,t,{success:function(t){e&&e.success&&e.success(t)},error:function(t){e&&e.error&&e.error(t)}})},validateAll:function(t,e,i){var n=this;return e="boolean"==typeof t?t:e?e:!1,i===!1?void(t&&t.success&&t.success()):void n._validator.validateAll(n,{success:function(e){t&&t.success&&t.success(e)},error:function(e){t&&t.error&&t.error(e)}},e)},getValidateStatus:function(t){return this._validateInfo.hasOwnProperty(t)?this._validateInfo[t]:-1},setValidateSuccess:function(t){var e=this;e._validateInfo[t]=1,e._validateSuccess({field:t})},setValidateError:function(t,e){var i=this;i._validateInfo[t]=0,i._validateError({field:t,msg:e})}},e.load={insertScript:function(t,i,n){function a(){var n=document,a=n.createElement("script");a.type="text/javascript",a.charset="utf-8",a.readyState?a.onreadystatechange=function(){("loaded"===a.readyState||"complete"===a.readyState)&&(a.onreadystatechange=null,e.jsFileList[t]=!0,i&&i())}:a.onload=function(){e.jsFileList[t]=!0,i&&i()},a.src=t,n.getElementsByTagName("head")[0].appendChild(a)}e.jsFileList=e.jsFileList||{},e.jsFileList[t]?i&&i():n?setTimeout(function(){a()},100):a()},loadCssFileW:function(t,e){if(window._loadedFilesW=window._loadedFilesW||{},window._loadedFilesW[t])e&&e();else{window._loadedFilesW[t]=!0;var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.href=t,document.getElementsByTagName("head")[0].appendChild(i),i.readyState?i.onreadystatechange=function(){("loaded"===i.readyState||"complete"===i.readyState)&&(i.onreadystatechange=null,e&&e())}:i.onload=function(){e&&e()}}}}}($,window.Pass),!function(t,e){"use strict";function i(e){var i=this;i.conf=t.extend(e,{}),i.width=i.conf.width||"100%",i.height=i.conf.height||"auto",i.keyboardWrap=i.conf.conEle,i.inputWrapLength=i.conf.inputWrapLength||"1",i.inputEle=i.conf.inputEle,i.keyboardCursor=i.conf.keyboardCursor||"",i.inputHidden=i.conf.inputHidden||"",i.module=i.conf.module||"",i.init()}var n=window.apiDomain;i.prototype.init=function(){var t=this;t.createDom()},i.prototype.createDom=function(){var t=this;return t.keyboardCon='<div class="keyboard-con" id="'+t.module+'_keyboardCon"><div class="keyboard-row"><span class="keyboard-span">1</span><span class="keyboard-span">2</span><span class="keyboard-span">3</span></div><div class="keyboard-row"><span class="keyboard-span">4</span><span class="keyboard-span">5</span><span class="keyboard-span">6</span></div><div class="keyboard-row"><span class="keyboard-span">7</span><span class="keyboard-span">8</span><span class="keyboard-span">9</span></div><div class="keyboard-row"><span class="keyboard-gray-bg">&nbsp;</span><span class="keyboard-span">0</span><span class="keyboard-delete"><img src="'+n+'/static/appsapi/img/keyboardDel.png" id="'+t.module+'_keyboardDelete" alt="删除"></span></div></div>',t.keyboardWrap.append(t.keyboardCon),t.conf.render&&t.conf.render(),1===+t.inputWrapLength?t.bind():t.bindSplit(),t},i.prototype.bind=function(){var e=this;t("#"+e.module+"_keyboardCon").on("touchend",function(i){var n=i.target;if(t(n).hasClass("keyboard-span")){if(e.conf.inputLength&&e.conf.inputLength<=e.inputEle.html().length)return void(e.conf.finishInputFn&&e.conf.finishInputFn());var a=t(n).html(),o=e.inputEle.html()+a;e.inputEle.html(o),e.conf.inputFn&&e.conf.inputFn(o),t(".pass-input-clearValue").show()}else if(t(n).attr("id")===e.module+"_keyboardDelete"){var s=e.inputEle.html();s.length>0?(e.inputEle.html(s.slice(0,-1)),e.conf.deleteFn&&e.conf.deleteFn(s.slice(0,-1))):(e.conf.finishDeleteFn&&e.conf.finishDeleteFn(),t(".pass-input-clearValue").hide())}}),t(".pass-input-clearValue").on("touchend",function(){e.inputEle.html(""),e.conf.clearFn&&e.conf.clearFn()})},i.prototype.bindSplit=function(){var e=this,i=t("#"+e.module+"_keyboardCon");i.on("touchstart",function(e){var i=e.target;t(i).hasClass("keyboard-span")&&t(i).addClass("keyboard-hightlight-bg")}),t("#"+e.module+"_keyboardDelete").on("touchstart",function(){t(this).addClass("keyboard-delete-hightlight")}),i.on("touchend",function(i){e.count=e.inputHidden.val().length||0;for(var n,a=i.target,o=0;o<e.conf.inputWrapLength;o++)e.inputEle.eq(o).removeClass("keyboarderror");if(t(a).hasClass("keyboard-span")){t(a).removeClass("keyboard-hightlight-bg");var s=t(a).html();if(e.inputEle.eq(e.count).removeClass(e.keyboardCursor).addClass("keyboardCursorBlueLine").html(s),e.inputEle.eq(e.count+1).addClass(e.keyboardCursor),e.count++,n=e.inputHidden.val()+s,e.inputHidden.val(n),e.conf.inputFn&&e.conf.inputFn(s),e.conf.inputWrapLength&&e.conf.inputWrapLength===e.count)return e.conf.finishInputFn&&e.conf.finishInputFn(),!1}else if(t(a).attr("id")===e.module+"_keyboardDelete")if(t(a).removeClass("keyboard-delete-hightlight"),e.count=e.inputHidden.val().length||0,e.count>0){var r=e.inputEle.eq(e.count-1).html();e.inputEle.eq(e.count-1).addClass(e.keyboardCursor).removeClass("keyboardCursorBlueLine").html(""),e.inputEle.eq(e.count).removeClass(e.keyboardCursor),e.count--,n=e.inputHidden.val().slice(0,e.inputHidden.val().length-1),e.inputHidden.val(n),e.conf.deleteFn&&e.conf.deleteFn(r)}else e.conf.finishDeleteFn&&e.conf.finishDeleteFn()})},i.prototype.destory=function(){t("#keyboardCon").remove()},e.define("ui/keyboard",i)}($,window.Pass),!function(t,e){"use strict";function i(t){this.conf=t,this.width=t.width,this.height=t.height,this.mask=t.mask,this.titleText=t.titleText,this.content=t.content,this.cssconf=t.cssconf||"",this.onRender=t.onRender||function(){},this.num=Math.floor(1e3*Math.random()),this.dialogclass=t.dialogclass||"",this.init()}i.prototype.init=function(){this.mask&&this.createMask(),this.createBody()},i.prototype.createMask=function(){var e='<div class="mod-dialog'+(this.dialogclass?" mod-dialog-"+this.dialogclass:"")+'" id="pass-'+this.num+'"></div>';this.maskDom=t(e),t("body").append(this.maskDom)},i.prototype.show=function(){this.mask&&(this.maskDom.get(0).style.display="block"),this.domBody.show()},i.prototype.hide=function(){var t=this;t.mask&&(t.maskDom.get(0).style.display="none"),t.domBody.hide()},i.prototype.remove=function(){this.mask&&this.maskDom.remove(),this.domBody.remove()},i.prototype.createBody=function(){var e,i,n='<div class="mod-dialog-body" id="pass-content'+this.num+'"><div class="mod-dialog-content'+(this.dialogclass?" mod-dialog-content-"+this.dialogclass:"")+'"><div class="mod-dialog-main"></div></div></div>';this.domBody=t(n),t("body").append(this.domBody),this.domBody.css({width:this.width,marginLeft:-parseInt(this.width,10)/2+"%"}),e=this.domBody.children(".mod-dialog-content"),this.content&&(e.children(".mod-dialog-main").append(this.content),this.show(),i=this.domBody.height(),this.domBody.css({top:Math.max((t(window).height()-i)/2,0)+"px"})),this.cssconf&&this.domBody.css(this.cssconf),this.bind(),this.onRender(this)},i.prototype.setContent=function(t){this.domBody.append(t),this.show()},i.prototype.bind=function(){var e=this;t("#close-"+e.num).on("click",function(t){e.hide(),t.preventDefault()})},e.define("ui/dialog",i)}($,window.Pass),!function(t,e){"use strict";function i(t,i){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode-"+t.from_module+i+(void 0===t.conf.history?"":t.conf.history?"-history":"-noHistory")+(void 0===t.conf.source?"":"-"+t.conf.source||"-smslogin")})}function n(t){this.conf=t,this.mask=t.mask,this.from_module=t.from_module||"",this.slide=t.slide||!1,this.onRender=t.onRender||function(){},this.num=Math.floor(1e3*Math.random()),this.vcodestr=t.vcodestr,this.vcodenum="",this.lang={"zh-cn":{title:"验证码",securityVerify:"安全验证",introducer:"滑至最右 完成验证",bottomTitle:"为了你的帐号安全，本次操作需要进行安全验证",uniqueVerifyCode:"验证码",uniqueVerifyCodePlaceholder:"请输入验证码",uniqueVerifyCodeTip:"输入图中验证码",clickReresh:"看不清? 点击刷新",networkNoText:"网络连接失败，请稍后再试。"},en:{title:"Captcha",securityVerify:"Safety Verification",introducer:"Slide to the right",bottomTitle:"For your account security",uniqueVerifyCode:"Captcha",uniqueVerifyCodePlaceholder:"Captcha",uniqueVerifyCodeTip:"Enter Image Captcha",clickReresh:"click refresh",networkNoText:"Network Error"}}[a.lang||"zh-cn"],this.current=0,this.init()}var a=window.publicData,o=window.apiDomain;n.prototype.init=function(){this.mask&&this.createMask(),this.createBody()},n.prototype.createMask=function(){this.maskDom=t('<div class="mod-vcode" id="pass-'+this.num+'"></div>'),t("body").append(this.maskDom)},n.prototype.show=function(){var e=this;if(this.mask&&(this.maskDom.get(0).style.display="block"),this.domBody.fadeIn(),t("input.pass-text-input").attr("disabled","true"),!this.slide){var i="https://wappass.baidu.com/cgi-bin/genimage?"+e.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+e.num).attr("src",i)}},n.prototype.hide=function(){var t=this;t.mask&&(t.maskDom.get(0).style.display="none"),t.domBody.fadeOut(150),this.remove()},n.prototype.remove=function(){this.mask&&this.maskDom.remove(),this.domBody.remove(),t("input.pass-text-input").removeAttr("disabled")},n.prototype.inputLayer=function(){var t='<div class="vcodeInputWrapper" id="vcode-wrapper-'+this.num+'"><input class="vcodeInput" id="vcode-input-'+this.num+'"type="text" maxlength="6" autocapitalize="off"/><span class="vcodeInput-clearValue hide"></span><hr class="vcodeInput-hr"></div><p class="pass-form-item pass-form-item-submit"><input id="vcode-submit" type="submit" value="确定"class="pass-button-full pass-button-submit pass-button-full-disabled"></p>';return t},n.prototype.createBody=function(){var i;this.domBody=t('<div class="mod-vcode-body" id="pass-content'+this.num+'"><div class="mod-vcode-content clearfix"></div></div>'),t("body").append(this.domBody),i=this.domBody.children(".mod-vcode-content"),this.slide?this.content='<p class="mod-page-tipInfo-gray">'+this.lang.securityVerify+'</p><div class="vcode-slide-faceboder"><img src="'+o+'/static/appsapi/img/faceboder2x.png"><div class="vcode-slide-expression"></div></div><div class="vcode-slide-control"><div class="vcode-slide-bottom"><p>'+this.lang.introducer+'</p></div><div class="vcode-slide-cover"><p></p></div><div class="vcode-slide-button"><p class=""></p></div><div class="vcode-slide-loading"></div></div><p class="vcode-slide-footer">'+this.lang.bottomTitle+"</p>":(this.content='<p class="mod-page-tipInfo-gray">'+this.lang.uniqueVerifyCodeTip+'</p><p class="mod-page-verifyImg"><img id="vcode-'+this.num+'" alt="验证码"/></p><p class="small-tip" id="refresh-'+this.num+'">'+this.lang.clickReresh+'</p><p class="vcode_error_redtip" id="vcode-error-'+this.num+'"></p>',this.content+=this.inputLayer()),this.content+='<div id="close-'+this.num+'" class="vcode-close"></div>',i.append(this.content),this.show(),this.slide?this.setSildeEvent():this.setEvent(),this.onRender(this),!this.slide&&e.logAll&&e.logAll.logBfb?e.logAll.logBfb({en:"appsapi-vcode-"+this.from_module}):this.slide&&e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode-slide-"+this.from_module})},n.prototype.setContent=function(t){this.domBody.append(t),this.show()},n.prototype.setVcode=function(e){var i=this;t("#vcode-"+i.num).attr("src",e),this.vcodestr=e},n.prototype.setEvent=function(){var n=this,a=t(".vcodeInput"),s=t(".vcodeInput-clearValue"),r=t("#vcode-submit"),l=t(".vcodeInput-hr");n.slide||a.focus();var c=function(){var s=e.view._strTrim(a.val());if(""===s)return t("#vcode-error-"+n.num).html("请输入验证码"),l.addClass("vcodeInput-hr-error"),!1;i(n,"-submit");var c={verifycode:s,codestring:n.vcodestr};t.ajax({url:o+"/wp/api/security/checkvcode?tt="+(new Date).getTime(),data:c,success:function(a){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_request-"+n.from_module,ev:[e.module||"","request",a.errInfo.no,a.errInfo.msg]});var o=t("#vcode-input-"+n.num);if("0"===a.errInfo.no)n.hide(),o.blur(),n.conf.verifySuccessFn&&n.conf.verifySuccessFn(s),o.val(""),i(n,"-request_success");else{t("#vcode-error-"+n.num).html(a.errInfo.msg),o.val(""),t(".vcodeInput-clearValue").css("display","none");
var r="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+n.num).attr("src",r),i(n,"-request_error")}},error:function(){t("#vcode-error-"+n.num).html(n.lang.networkNoText),t("#vcode-input-"+n.num).val(""),r.addClass("pass-button-full-disabled"),l.addClass("vcodeInput-hr-error")}})};t("#close-"+n.num).on("touchend",function(t){t.preventDefault(),n.conf.closeFn&&n.conf.closeFn(),n.hide(),i(n,"-vcode_close")}),t("#vcode-"+n.num).on("touchend",function(i){i.preventDefault(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_verifyChange-"+n.from_module,ev:[e.module||"","click"]});var a="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t(this).attr("src",a)}),t("#refresh-"+n.num).on("touchend",function(i){i.preventDefault(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_verifyChange-"+n.from_module,ev:[e.module||"","click"]});var a="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+n.num).attr("src",a)}),e.view.clearInputValueBtn(a,s,r),a.on("focus",function(){i(n,"_verify_start")}),a.on("keypress",function(t){13===t.keyCode&&c()}),a.on("keyup",function(){""===t(this).val()?r.addClass("pass-button-full-disabled"):""!==t(this).val()&&(r.removeClass("pass-button-full-disabled"),l.removeClass("vcodeInput-hr-error"),t("#vcode-error-"+n.num).html(""))}),r.on("touchend",function(t){t.preventDefault(),c()})},n.prototype.setSildeEvent=function(){var i=this;t("#close-"+i.num).on("touchend",function(t){t.preventDefault(),i.conf.closeFn&&i.conf.closeFn(),i.hide()});var n=t("#pass-content"+this.num+" .vcode-slide-faceboder"),a=t("#pass-content"+this.num+" .vcode-slide-expression"),o=t("#pass-content"+this.num+" .vcode-slide-button"),s=o.width(),r=t("#pass-content"+this.num+" .vcode-slide-bottom"),l=t("#pass-content"+this.num+" .vcode-slide-cover"),c=t("#pass-content"+this.num+" .vcode-slide-loading"),u=r.find("p"),d=l.find("p"),p=o.find("p"),f=r.width()-s,h=function(){n.animate({scale:1.05,"transform-origin":"center bottom"},250,"ease-out",function(){setTimeout(function(){n.animate({scale:1},250,"ease-in")},0)}),d.animate({top:"50%",opacity:"1"},250).html("验证成功"),p.animate({opacity:"0"},250,"ease-out")},m=function(){l.addClass("vcode-transition").css({width:s}),o.addClass("vcode-transition").css({transform:"translateX(0)"}),a.addClass("vcode-transition").css({transform:"translateX(0)"}),u.addClass("vcode-transition").css({transform:"translateX(0)"}),setTimeout(function(){o.removeClass("vcode-slide-button-focus vcode-slide-button-error vcode-transition"),l.removeClass("vcode-slide-cover-error vcode-transition"),n.removeClass("vcode-slidefaceboder-horizontal"),a.removeClass("vcode-transition"),u.removeClass("vcode-transition")},300)};o.on("touchstart",function(t){if(i.finish)return!1;var n=t?t:window.event;n.preventDefault(),o.addClass("vcode-slide-button-focus"),this.type=!0,this.currentX=n.touches[0].clientX||n.changedTouches[0].clientX,i.startTime=(new Date).getTime()/1e3,e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slide_start-"+i.from_module})}),o.on("touchmove",function(t){if(i.finish)return!1;var e=t?t:window.event;e.preventDefault();var n=e.changedTouches[0].clientX-this.currentX;o.addClass("vcode-slide-button-focus"),n>=f-5?(n=f,i.finish=!0):0>=n&&(n=0,o.removeClass("vcode-slide-button-focus"));var r=parseFloat(n/f).toFixed(2);o.css({transform:"translateX("+n+"px)"}),l.css({width:n+s}),a.css({transform:"translateX(-"+89.5*r+"%)"}),u.css({transform:"translateX("+10*r+"%)"})}),o.on("touchend",function(t){var n=t?t:window.event;n.preventDefault();var a=n.changedTouches[0].clientX-this.currentX;0>=a?o.removeClass("vcode-slide-button-focus vcode-slide-button-error"):i.finish||m(),i.finish===!0&&(i.endTime=(new Date).getTime()/1e3,c.css("display","block"),e&&e.dataAcquisition&&e.dataAcquisition.postData&&(e.dataAcquisition.setData("ac_c",1),setTimeout(function(){e.dataAcquisition.postData(function(){i.hide(),i.conf.verifySuccessFn&&i.conf.verifySuccessFn()})},1e3)),c.css("display","none"),h(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slide_success-"+i.from_module,ev:[e.module||"","touchmove"]}),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slideDuration-"+i.from_module,ev:[e.module||"","touchmove"],autoStatisticObj:{slideDuration:parseFloat(i.endTime-i.startTime).toFixed(2)},urlObj:{slideDuration:parseFloat(i.endTime-i.startTime).toFixed(2)}}))})},e.define("ui/vcode",n)}($,window.Pass),!function(t,e){"use strict";function i(e){var i=this;return i.conf=t.extend(e,{}),i.me=e.me,i.data=e.data,"{}"===JSON.stringify(i.data)||"[]"===JSON.stringify(i.data)?!1:void i.init()}var n=window.publicData,a=window.apiDomain;i.prototype.init=function(){var t=this;t.conf.initHandler&&t.conf.initHandler(),t.createDom(),t.setEvent()},i.prototype.createDom=function(){var e=this,i=t('<div class="normandy-history-con">'),n="";e.data.length>3&&(e.data.length=3);for(var a=0;a<e.data.length;a++)n+='<li class="normandy-head'+a+'" data-username="'+e.data[a].username+'" data-index="'+a+'"><div class="normandy-img"><img src="'+e.data[a].portrait+"?tt="+(new Date).getTime()+'"><div class="normandy-history-active"></div><div class="normandy-history-del"></div></div><span>'+e.data[a].username+"</span></li>";1===e.data.length&&(n=n.replace("normandy-head0","normandy-head0 historycenter")),i.append(n),t("#"+e.me.module+" .normandy-mod-content").prepend(i),e.conf.domHandler&&e.conf.domHandler()},i.prototype.setEvent=function(){var i=this,o=t("#"+i.me.module+" .normandy-history-con");i.data.length>1&&o.on("touchend","li",function(e){var n=t(this);if("normandy-history-del"===e.target.className||i.langType||n.hasClass("normandy-head0"))return i.langType=!1,!1;e.preventDefault();var a=t("#"+i.me.module+" .normandy-head0"),o=n.attr("class");i.conf.setHandler&&i.conf.setHandler(n.attr("data-username"),i.data[n.attr("data-index")]),a.removeClass("normandy-head0 zindex1").addClass(o),n.removeClass(o).addClass("normandy-head0 zindex1")}),t("#"+i.me.module+" .normandy-history-con li").longPress(function(){i.langType=!0;var e=i.conf.longHandler&&i.conf.longHandler();e!==!1&&t("#"+i.me.module+" .normandy-history-del").show()}),o.on("touchend",".normandy-history-del",function(){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-"+i.me.module+"_delete_history"});var o=t(this).parents("li"),s=o.attr("data-username"),r=t("#"+i.me.module+" .normandy-img").length,l=parseInt(o.attr("class").substr(13),10);1===r&&(i.destory(),i.conf.removeHandler&&i.conf.removeHandler()),o.remove(),i.me.history=!1;for(var c=l+1;r>c;c++){if(1===c){var u=t(".normandy-head"+c);i.conf.setHandler&&i.conf.setHandler(u.attr("data-username"),i.data[u.attr("data-index")])}t("#"+i.me.module+" .normandy-head"+c).removeClass("normandy-head"+c).addClass("normandy-head"+(c-1))}t.getJSON(a+"/wp/api/login/history?item="+s+"&token="+n.token+"&tpl="+n.tpl+"&clientfrom="+n.clientfrom+"&v="+(new Date).getTime(),{},function(){},"json")}),t("#"+i.me.module).on("tap",function(e){var n=t("#"+i.me.module+" .normandy-history-del");if("normandy-history-del"!==e.target.className&&!n.is(":hidden")){var a=t("#"+i.me.module+" .normandy-img").length;1===a&&t("#"+i.me.module+" .normandy-head0").addClass("historycenter"),n.hide()}})},i.prototype.destory=function(){var e=this;t("#"+e.me.module+" .normandy-history-con").remove()},e.define("ui/history",i)}($,window.Pass);var biRadixBase=2,biRadixBits=16,bitsPerDigit=biRadixBits,biRadix=65536,biHalfRadix=biRadix>>>1,biRadixSquared=biRadix*biRadix,maxDigitVal=biRadix-1,maxInteger=9999999999999998,maxDigits,ZERO_ARRAY,bigZero,bigOne;setMaxDigits(20);var dpl10=15,lr10=biFromNumber(1e15),hexatrigesimalToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"),hexToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"),highBitMasks=new Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535),lowBitMasks=new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535);!function(t,e){var i=window.publicData,n=window.apiDomain;e.getSeverTimeAsync=function(){t.ajax({url:n+"/wp/api/security/antireplaytoken?tpl="+i.tpl+"&v="+(new Date).getTime(),type:"GET",dataType:"json",success:function(t){e.serverTime=t.time}})},e.getSeverTime=function(){t.ajax({url:n+"/wp/api/security/antireplaytoken?tpl="+i.tpl+"&v="+(new Date).getTime(),type:"GET",dataType:"json",async:!1,success:function(t){e.serverTime=t.time},error:function(){}})},e.getSeverTimeAsync()}($,window.Pass),!function($,Pass){var publicData=window.publicData,lang={"zh-cn":{sina:"新浪微博登录",tsina_sso:"新浪微博登录",tsina:"新浪微博登录",qq:"QQ",qzone:"QQ",qq_sso:"QQ",tqq:"腾讯微博",tweixin_sso:"微信",qrcode:"二维码",device:"设备号",nuomi:"原糯米",voice:"百度语音",huawei:"华为帐号",feifan:"飞凡帐号",chuanke:"原传课帐号",ok:"确定",otherlogin:"第三方帐号登录"},en:{sina:"Sina Weibo",tsina_sso:"Sina Weibo",tsina:"Sina Weibo",qq:"QQ",qzone:"QQ",qq_sso:"QQ",tqq:"Tencent Weibo",tweixin_sso:"Weixin",qrcode:"QRcode",device:"Device Number",nuomi:"Nuomi",voice:"BaiduVoice",huawei:"Huawei",feifan:"Feifan",chuanke:"Chuanke",ok:"OK",otherlogin:"Other Account"}}[publicData.lang||"zh-cn"],qqTip;Pass.fastLogin={config:{tsina_sso:{name:lang.sina,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_sina_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=2&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tsina:{name:lang.sina,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_sina_weibo_webview")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=2&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tqq:{name:lang.tqq,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_tx_weibo_webview")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=4&u="+publicData.u+"&act="+publicData.act+"&display=wap"},qzone:{name:lang.qq,fn:function(){Pass.fastLogin.tipDownloadqq()}},qq_sso:{name:lang.qq_sso,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_qq_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=15&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tweixin_sso:{name:lang.tweixin_sso,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_weixin_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=42&u="+publicData.u+"&act="+publicData.act+"&display=wap"},qr_app_login:{name:lang.qrcode,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("loginWithQRCode")}:!1,href:""},device_login:{name:lang.device,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("loginWithDeviceId")}:!1,href:""},nuomi_login:{name:lang.nuomi,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_nuomi_login")}:!1,href:""},voice_login:{name:lang.voice,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_voice_login")}:!1,href:""},huawei_login:{name:lang.huawei,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_huawei_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=45&u="+publicData.u+"&act="+publicData.act+"&display=wap"},feifan:{name:lang.feifan,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_feifan_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=46&u="+publicData.u+"&act="+publicData.act+"&display=wap"},chuanke:{name:lang.chuanke,fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_chuanke_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=&u="+publicData.u+"&act="+publicData.act+"&display=wap"},meizu_sso:{name:"魅族",fn:"android"===publicData.client||"ios"===publicData.client?function(){Pass.client.deviceClass("action_social_meizu_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=50&u="+publicData.u+"&act="+publicData.act+"&display=wap"}},num:1,init:function(module){var me=this;if(this.module=module,"android"===publicData.client){var str=Pass.client.deviceClass("config_fastlogin_features"),realStrArray=[];return str&&(realStrArray=str.toLocaleString().split(",")),me.draw(realStrArray,module),!1}"ios"===publicData.client?Pass.client.deviceClass("getFastLoginOptionList",{},function(id,params){var thirdList=eval(params.result);return me.draw(thirdList,module),!1}):me.draw(["qzone","chuanke","meizu_sso","tqq","tsina","feifan"],module)},getHref:function(t){return"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type="+t+"&u="+publicData.u+"&act="+publicData.act+"&display=wap"},draw:function(t,e){var i=t.length||0,n="";if("[object Array]"===Object.prototype.toString.call(t)&&t.length>0){$("#"+e+"-sotherlogin").css("display","block"),$("#"+e+"-bottomLink").css("margin-bottom","0");for(var a=t.length>5?5:t.length,o=0;a>o;o++){var s=this.config[t[o]];s&&(n+=s.fn?'<div class="fastlogin-item '+(3>=i?"fastlogin-big":"")+'"><a class="li-img-'+t[o]+'" type="'+t[o]+'" actjs="'+t[o]+'">'+(lang[t[o]]?lang[t[o]]:"")+"</a></div>":'<div class="fastlogin-item '+(3>=i?"fastlogin-big":"")+'"><a class="li-img-'+t[o]+'" type="'+t[o]+'" href="'+s.href+'">'+(lang[t[o]]?lang[t[o]]:"")+"</a></div>")}this.num=i,document.getElementById("fastlogin-layer-"+e).innerHTML=n,this.bind(),this.getLastLoginType()}},bind:function(){var t=this;Pass.view.tap($("[actjs]","#"+this.module),function(){var e=$(this).attr("actjs");t.config[e].fn()}),$("body").on("click",".fastlogin-item a",function(){Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-authsite_"+$(this).attr("type"),ev:[Pass.module||"","click"]})})},getLastLoginType:function(){var t=this;Pass.client.ischeckNativeMethod("sapi_action_last_login_type",function(){Pass.client.deviceClassJson("sapi_action_last_login_type",{},function(e,i){i.lastLoginType&&i.lastLoginType+""=="4"?t.showLastFast("tweixin_sso"):i.lastLoginType&&i.lastLoginType+""=="5"?t.showLastFast("tsina_sso"):i.lastLoginType&&i.lastLoginType+""=="6"&&t.showLastFast("qq_sso")})})},showLastFast:function(t){t=t||"";var e='<div class="lastlogin"></div>';$("[type="+t+"]").after(e),setTimeout(function(){$(".lastlogin").hide()},5e3)},tipDownloadqq:function(){var t=this;if(qqTip)qqTip.show();else{var e='<div class="page-dialog-content"><p class="page-dialog-title">公告</p><p>亲爱的百度用户</p><p>自3.5号起，腾讯QQ已停用原有网页登录方式，为保证您正常使用百度帐号，您可选择其他登录方式或尝试下载最新版APP继续使用QQ登录。</p></div><div class="dialog-content-btn tcenter dialogNoPassword"><input type="button" value="确定" class="pass-button-auto pass-dialog-btncenter" id="qqcancelBtn"></div>';qqTip=new Pass.ui.dialog({width:"90%",mask:!0,content:e}),$("#qqcancelBtn").on("touchend",function(e){e.preventDefault(),qqTip.hide(),Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+t.module+"qqtip_cancle_click",ev:[t.module,"click"]})})}Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+t.module+"qqtip_click",ev:[t.module,"click"]})}}}($,window.Pass),!function(t,e){e.guideRandom=function(){return"xxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,i="x"===t?e:3&e|8;return i.toString(16)}).toUpperCase()}()}($,window.Pass);var publicData=window.publicData||{};publicData.Passconf={supportFace:!0,fobidFaceTplList:["baidulvyou_new"],forbidFindBack:!1,fobidFindBackTplList:["nuomi","wkc"]};var JsEndTime=+new Date;$(function(){window.Jsdoing1=+new Date;var t=location.hash.substring(1)||publicData.action||"login";publicData.supportFace=publicData.Passconf.supportFace,publicData.Passconf.fobidFaceTplList.indexOf(publicData.tpl)>-1&&(publicData.supportFace=!1),publicData.forbidFindBack=publicData.Passconf.forbidFindBack,publicData.Passconf.fobidFindBackTplList.indexOf(publicData.tpl)>-1&&(publicData.forbidFindBack=!0),"face_login"!==t||publicData.supportFace||(t="login");var e=publicData.traceid||"";e&&window.Pass&&window.Pass.traceID&&window.Pass.traceID.initTraceID&&window.Pass.traceID.initTraceID(e),window.screenTime=window.Jsdoing2=window.Jsdoing3=window.cache="",Pass._getScript(t,function(t){t.render("pageWrapper",{},"init")},"init")}),window.onload=function(){var t=location.hash.substring(1)||publicData.action||"login";window.onLoadTime=Date.now(),window.CssTime=CssEndTime-pageStartTime,window.JsTime=JsEndTime-pageStartTime,setTimeout(function(){window.Pass.loadLog()},100),window.Pass.loadLog=function(){function e(){Pass.logAll.logBfb({en:"appsapi-"+t+"_onLoadTime",autoStatisticObj:{"na-firstLoad":publicData.liveAbility?"face":"none"},urlObj:{onLoadTime_new:onLoadTime-pageStartTime,onLoadTime:onLoadTime-pageStartTime,CssTime:CssTime,JsTime:JsTime,screenTime:1,client:publicData.client,Jsdoing1:window.Jsdoing1-pageStartTime,Jsdoing2:window.Jsdoing2-pageStartTime,Jsdoing3:window.Jsdoing3-pageStartTime,Jsdoing3_new:window.Jsdoing3-pageStartTime,cache:window.cache,allTime:window.allTime||"",isnew:window.isnew||"",viewInitDone:window.viewInitDone||"",beforeLogin:window.beforeLogin||"",startLogin:window.startLogin||"",loadLogin:window.loadLogin||"",pageStart:window.pageStart||"",wkwebview:window.wkwebview||""}})}Pass.client.ischeckNativeMethod("action_get_loadtime",function(){Pass.client.deviceClass("action_get_loadtime",{},function(t,i){function n(t){window.viewInitDone=t.t_view_init_done-t.t_open_login,window.beforeLogin=t.t_before_login-t.t_open_login,window.startLogin=t.t_start_login-t.t_open_login,window.loadLogin=t.t_load_login-t.t_open_login,window.cache=t.is_load_cache,window.pageStart=window.pageStartTime-t.t_open_login,window.wkwebview=t.is_wkwebview||"",window.isnew=!0}"android"===publicData.client&&i&&i.t_open_login?(window.allTime=window.Jsdoing3-i.t_open_login,n(i)):"ios"===publicData.client&&i&&i.t_open_login&&(window.allTime=window.onLoadTime-i.t_open_login,n(i)),e()},function(){})},function(){e()})}}; window.Pass._define("login",function(){function e(e,a){l.logAll&&l.logAll.logBfb&&(l.logAll.logBfb({en:"appsapi-"+e.module+a+(void 0===e.history?"":e.history?"_history":"_noHistory")}),l.logAll.logBfb({en:"appsapi-"+e.module+a}))}var a,o,n,t,i,l=window.Pass,s=window.publicData||{},r=window.apiDomain,d={module:"login",initialized:!1,error:{field:""},stage:"usual",backSign:!1,pwdErrorCount:0,faceLoginData:{tempUsername:"",tempRealname:0},data:{code:"+86",countrycode:"",username:"",userid:""},serverTimeCount:0,loginVcode:"",loginHistory:"",history:!1,getRerocdListDone:!1,isInsertUsername:!1,isInsertPassword:!1,rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return d=$.extend(d,l.validator),d=$.extend(d,{lang:{"zh-cn":{title:"百度帐号登录",username:"用户名/手机号/邮箱",password:"请输入登录密码",passwordError:"登录密码",verifycode:"验证码",usernamePlaceholder:"请输入用户名/手机号/邮箱",passwordPlaceholder:"密码",faceLogin:"刷脸登录",forgetPassword:"忘记密码",more:"更多",otherLogin:"其他登录方式",prompt:"登录百度帐号，体验全新个人中心，好礼等您拿！（不支持安卓网用户名登录）",submitText:"登录",submitLoading5s:"继续登录中",smsLoginText:"短信快捷登录",submitLoading:"登录中",overseas:"海外登录",overseasPhoneNumber:"海外手机号",mobilenumPlaceholder:"手机号",overseasMobilenumPlaceholder:"请输入手机号码",welcome:"欢迎登录百度帐号",code:"+86",loading:"登录中...",tel:"手机号",phoneformatRegError:"请输入有效手机号码",cancel:"取消",smsLogin:"短信验证码登录",fastLogin:"第三方登录",fastReg:"快速注册",usernameOrMobile:"为了您的帐号安全，请先确认您输入的帐号是用户名还是手机号",smsReg:"短信注册",smsLoginBtn:"短信登录",networkError:"网络连接失败，请检查您的网络设置并稍后再试。",mobile:"手机号",accountname:"用户名",or:"或",mobileSure:"不需要解绑",appealBtn:"申诉去解绑",reg:"快速注册",sureMobileMsg:"您绑定的手机号,请确认该手机号是否还在使用,为了您的帐号安全，请及时解绑不使用的手机。"},en:{title:"Baidu Login",username:"Account",password:"Password",passwordError:"Login Password",verifycode:"Captcha",usernamePlaceholder:"Account/Phone/Email",passwordPlaceholder:"Password",faceLogin:"face Login",forgetPassword:"Forget Password",more:"More",prompt:"Logging on to Baidu account and experience all new personal center. There are more prices waiting for you too! (doesn’t support Android network login).",submitText:"Login",submitLoading5s:"Login",smsLoginText:"Login via SMS",submitLoading:"Login",overseas:"Overseas number",overseasPhoneNumber:"Overseas phone number",mobilenumPlaceholder:"Phone",overseasMobilenumPlaceholder:"Enter overseas mobile phone number",welcome:"Welcome to login baidu account",code:"+86",loading:"Login",tel:"Phone",phoneformatRegError:"Incorrect phone format",cancel:"Cancel",smsLogin:"SMS Login",otherLogin:"Other",fastLogin:"Other Account",fastReg:"Sign Up",usernameOrMobile:"Phone or username?",smsReg:"Sign Up",smsLoginBtn:"SMS Login",networkError:"Network error",mobile:"Phone",accountname:"Account",or:"or",mobileSure:"don't unbind",appealBtn:"unbind",reg:"Sign Up",sureMobileMsg:"is the cell phone number you bind to your account. please make sure that the cell phone number is still available. Otherwise, for the safety of your account, please unbind it soon."}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var a=this,o={passwordRightDom:'<span id="'+a.module+'-pwdToggle" class="pass-input-aide pass-input-pwdToggle"></span>',forgetPassword:'<span id="'+a.module+'-forgetPassword" class="right normandy-bottom-forgot">'+a.lang.forgetPassword+"</span>",more:'<span id="'+a.module+'-more" class="left normandy-bottom-more">'+a.lang.more+"</span>",smsLogin:'<span id="'+a.module+'-smslogin" class="left" >'+a.lang.smsLoginText+"</span>",faceLogin:'<span id="'+a.module+'-facelogin" class="left link-font face-login-link" >'+a.lang.faceLogin+"</span>",prompt:"<span>"+a.lang.prompt+"</span>",overseaslink:'<div id="overseasLink">'+a.lang.overseas+"</div>",loadingFaceLogin:'<div class="biometry-loadingMask"><p class="biometry-loading">'+a.lang.loading+'</p><div class="biometry-loadingImg"></div></div>',otherLayer:'<div id="fastlogin-layer-login" class="fastlogin-layer-login"></div>',setBottomLink:'<div class="set-bottom-link">登录后去【我的】-【活动中心】参与领取</div>'};return o[e]},getTemplate:function(){var e=this,a=window.Pass.ui.temp,o=new a({module:e.module}),n='<article class="wrapper" id="'+this.module+'">',t=s,i=[];t.action="login",t.loginmerge=1,t.isphone="0",t.dialogVerifyCode="",t.dialogVcodestr="",t.dialogVcodesign="",t.ds="",t.tk="",t.gid=l.guideRandom||"",t.authtoken="",t.vcodestr="",t.verifycode="",i.push({field:"username",title:e.lang.username,placeholder:e.lang.usernamePlaceholder,maxLength:60,rightDom:e.getIrregularField("userNameRightDom")}),i.push({field:"code",title:e.lang.overseasPhoneNumber,placeholder:e.lang.overseasMobilenumPlaceholder,type:"tel",code:!0}),i.push({field:"password",title:e.lang.passwordError,placeholder:e.lang.password,pwd:!0,rightDom:e.getIrregularField("passwordRightDom")}),n+='<div id="login-div" class="flexdiv">',"apps"!==s.adapter&&1!==+s.adapter&&3!==+s.adapter&&(n+=o._getHeaderField({title:"<span >"+e.lang.title+"</span>",goBack:!0,usual:!0})),n+=o._getToptitle(e.lang.welcome),n+='<div class="normandy-mod-content" id="'+o.getId("contentWrapper")+'">',n+='<form autocomplete="off" id="'+o.getId("formWrapper")+'" method="POST" class="form-wrapper pass-form-verify-wrapper m-t25 clearfix">';for(var r=0;r<i.length;r++)n+=o._getRegularFieldNormandy(i[r]);return n+=o._getErrorField(),n+='<div class="normandy-bottom-link clearfix">',n+=e.getIrregularField("smsLogin"),n+='<span class="left normandy-spilit-line">|</span>',n+=e.getIrregularField("more"),n+=e.getIrregularField("forgetPassword"),n+="</div>",n+=o._getSubmitField({value:e.lang.submitText}),n+=o._getHiddenField(t),n+="</form>",n+='<div class="clearfix patch-clearfix">',n+="</div>",1===+s.androidmerge&&(n+='<div class="prompt-css">'+e.getIrregularField("prompt")+"</div>"),n+="</div>",n+='<div class="register-content" id="'+e.module+'-registerWrapper">'+o._getMoreField({module:e.module,temp:'<a href="javascript:void(0);" id="'+e.module+'-facelogin" class="normandy-more-face">刷脸登录</a><a href="javascript:void(0);" id="smsloginlink" class="normandy-more-smslogin">短信快捷登录</a><a href="javascript:void(0);" id="overseasLink" class="normandy-more-overseas">境外手机号登录</a>'})+'<div class="p-b20">'+e.getIrregularField("otherLayer")+"</div></div>",1===+s.liveAbility&&(n+=e.getIrregularField("loadingFaceLogin")),n+="</div>",n+=o._getLoadingField({module:e.module,html:e.lang.loading}),n+="</article>"},checkUserName:function(e){var a=this,o=window.apiDomain+"/wp/api/login/check?clientfrom="+s.clientfrom+"&gid="+(l.guideRandom||"")+"&tt="+(new Date).getTime();$.getJSON(o,e,function(o){(o.data.userid||o.data.isconnect)&&a.dialogNoPassword(o,e)},"json")},getFaceLoginCheck:function(e){if("1"===s.liveAbility){var a=this,o=l.view._strTrim(a.getElement("username").value),n={username:o,uid:e?a.data.userid||"":"",encryptedId:e?a.data.encryptedId||"":"",tpl:s.tpl,faceCheckRole:"passFe"};a.faceLoginData.tempUsername=o,$.ajax({url:"/v3/login/facelogincheck",data:n,type:"GET",dataType:"json",success:function(e){var o=e.type&&"face_login"===e.type&&(0!==parseInt(e.hasRealName,10)||"1"===s.suppcheck);a.faceLoginData.hasRealName=e.hasRealName,o?(setTimeout(function(){$(a.getElement("facelogin")).css("display","block"),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_show_faceLogin",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}})},0),a.faceLoginData.tempRealname="1"):($(a.getElement("facelogin")).css("display","none"),a.faceLoginData.tempRealname="0"),a.exp_case=e.exp_case,a.livinguname=e.livinguname}})}},getUrlLoginUserName:function(){var e=$.fn.getQueryString("loginUserName");return e=decodeURIComponent(e&&e.indexOf("#")>-1?e.split("#")[0]:e)},showUserNameDom:function(){var e=this;$("#"+e.module+" .normandy-history-con").remove(),e.removeRercodeList(),$("#"+e.module+"-smslogin").show(),$("#"+e.module+"-otherLogin").hide(),$("#"+e.module+"-facelogin").hide(),$("#smsloginlink").css("display","none"),s.overseas&&$("#overseasLink").css("display","block"),e.loginHistory="",e.history=!1},removeRercodeList:function(){var e=this;$("#"+e.module).removeClass("history_login"),$(".pass-normandy-item-username, .pass-normandy-sep-username").fadeIn(),$(e.getElement("username")).val(""),$(e.getElement("password")).val(""),$("#"+e.module+"-smslogin").show(),$("#smsloginlink").css("display","none"),s.overseas&&$("#overseasLink").css("display","block"),$("#"+e.module+"-otherLogin").hide()},getRerocdList:function(){var e=this,a=e.getUrlLoginUserName();if(""!==a){$(e.getElement("username")).val(a);var o=$(".pass-normandy-item-username");return $(".pass-normandy-title",o).show(),$(".pass-normandy-label",o).hide(),!1}if(!e.getRerocdListDone){var n=window.apiDomain+"/wp/api/login/history?item=&token="+s.token+"&clientfrom="+s.clientfrom+"&tpl="+s.tpl+"&gid="+(l.guideRandom||"")+"&tt="+(new Date).getTime();$.ajax({url:n,data:{},type:"GET",dataType:"json",success:function(a){if(a.data.historyInfo.length>0&&e.getRerocdListDone===!1){e.getRerocdListDone=!0,$("#smsloginlink").css("display","block"),$("#overseasLink").css("display","none");var o={me:e,data:a.data.historyInfo,initHandler:function(){var e=this;e.setHandler(a.data.historyInfo[0].username)},domHandler:function(){$(".pass-normandy-item-username, .pass-normandy-sep-username").hide(),$("#"+e.module).addClass("history_login");var a='<span id="login-otherLogin" class="left">登录其他帐号</span>',o=$("#"+e.module+"-smslogin");o.after(a),o.hide(),$(e.getElement("contentWrapper")).on("touchend","#login-otherLogin",function(a){a.preventDefault(),e.showUserNameDom(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_otherLogin_click"})})},removeHandler:function(){e.removeRercodeList()},setHandler:function(a){$(e.getElement("username")).val(a);var o={username:l.view._strTrim(a),tpl:s.tpl};e.checkUserName(o),"1"===s.liveAbility&&s.supportFace&&e.getFaceLoginCheck()}},n=l.ui.history;e.loginHistory=new n(o),e.history=!0,l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_history_show"})}else l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_noHistory_show"})},error:function(){l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_noHistory_show"})}})}},back:function(){$(".pass-normandy-item-username").css("display","-webkit-box"),$(".pass-normandy-sep-username").show(),$(".pass-normandy-item-code").css("display","none"),$("#login-password").val(""),s.overseas&&$("#overseasLink").css("display","block"),l.removeInfoAnimate(this.module),this.backSign=!1,this.stage="usual"},render:function(e,a,o){var n=this;if(s.smsLoginLink=1,a&&a.code&&($("#login .normandy-text-label-code").html(a.code),n.data.code=a.code,n.data.countrycode=a.countrycode),n.initialized){if(a&&a.username){n.data.username=a.username;var t=$(".pass-normandy-item-username");n.showUserNameDom(),$(n.getElement("username")).val(a.username),$(".pass-normandy-title",t).show()}l.switchView(n.module)}else{var i=n.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(i):e.append(i),this.initialized=!0,l.switchView(n.module,o),l.login=n,a&&a.username?(n.data.username=a.username,n.data.userid=a.userid,n.setUserNameInfo()):s.direct+""=="1"?l.client.ischeckNativeMethod("sapi_action_directed_login",function(){l.client.deviceClassJson("sapi_action_directed_login",{},function(e,a){a&&a.displayname&&a.encryptedId?(n.data.username=a.displayname||"",n.data.encryptedId=a.encryptedId||"",n.setUserNameInfo()):n.getRerocdList()})}):n.getRerocdList(),s.overseas&&$("#overseasLink").css("display","block"),n.setEvent(),l.fastLogin.init(n.module),l.view.inputBlur(),l.view.bottomCal(n)}n.setValidator(),a&&a.mobileNum&&($(n.getElement("username")).val(a.mobileNum),$("#"+n.module+" .pass-normandy-title").show(),l.view.setSubmitStyle(n,0)),l&&l.traceID&&l.traceID.startFlow&&l.traceID.startFlow("wapLogin");try{sessionStorage.setItem("liveAbility",s.liveAbility)}catch(r){console.log(r)}n.loadMachine(),l.client.getBadiuSid&&l.client.getBadiuSid(n.data)},loadMachine:function(){l&&l.load&&l.load.insertScript&&l.load.insertScript(r+"/static/appsapi/js/mod/mkd.js",function(){})},webViewWillAppear:function(){var e="localStorage"in window&&null!==window.localStorage;e&&1===+localStorage.getItem("isCallLoginWebAppear")&&l&&l.setloginAgainWebViewWillAppear&&(l.setloginAgainWebViewWillAppear(),localStorage.setItem("isCallLoginWebAppear",""))},setUserNameInfo:function(){var e=this,a=$(".pass-normandy-item-username");$(e.getElement("username")).val(e.data.username),$(".pass-normandy-title",a).show(),s.supportFace&&e.getFaceLoginCheck(!0)},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){l.view.cutPage($(this))});var o=function(e){a.eventHandler.entrance.apply(a,[e])};$(".pass-text-input",a.getElement("formWrapper")).on({focus:o,blur:o,change:o,keyup:o}),$(".pass-input-clearValue",a.getElement("formWrapper")).each(function(e,o){o=$(this),l.view.clearInputValueBtn(o.prev(),o,a.getElement("submit"))}),$(a.getElement("formWrapper")).on("submit",o),$(a.getElement("pwdToggle")).on("tap",o),$(a.getElement("smslogin")).on("touchend",function(e){e.preventDefault(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_smslogin_link",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}});var o={},n=$(a.getElement("username")).val(),t=/^[1][3,4,5,7,8][0-9]{9}$/;o.from="acclogin",!a.getRerocdListDone&&t.test(n)&&(o.mobileNum=n),s.direct&&(s.direct=""),l._getScript("sms_login",function(e){e.render("pageWrapper",o)})}),$(a.getElement("more")).on("touchend",function(o){o.preventDefault(),l.view.layerShow(a.module),e(a,"_more_click")}),$(a.getElement("forgetPassword")).on("touchend",function(o){e(a,"_findPass_click"),o.preventDefault(),a.goFindPass()}),l.view.layerEvent(a.module),$(a.getElement("facelogin")).on("touchend",function(e){e.preventDefault(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_faceLogin_click"}),a.getUserInfo(),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),l.view.loadingHide($(a.getElement("loadingMask")))}),$("#smsloginlink").on("touchend",function(e){e.preventDefault(),l.logAll.logBfb({en:"appsapi-"+a.module+"_smslogin_link_more"}),$(a.getElement("layer")).hasClass("layermenu-out")&&($(a.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(a.getElement("layer")).css("display","none")},300),l.view.loadingHide($(a.getElement("loadingMask")))),l._getScript("sms_login",function(e){e.render("pageWrapper")})}),l.view.fullButton($(a.getElement("submit"))),$("#overseasLink").on("touchend",function(e){e.preventDefault(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_overseas_link"}),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),l.view.loadingHide($(a.getElement("loadingMask"))),$(".pass-normandy-item-username").css("display","none"),$(".pass-normandy-sep-username").hide(),$(".pass-normandy-item-code").css("display","-webkit-box"),$("#login-password").val(""),$(this).css("display","none"),l.removeInfoAnimate(a.module),a.stage="overseas",a.backSign=!0}),$("#login .normandy-text-label-code").on("touchend",function(e){e.preventDefault(),$("input").blur();var o={};o.module=a.module,l._getScript("codelist",function(e){e.render("pageWrapper",o)})})},getUserInfo:function(){var e=this,a={tpl:s.tpl,clientfrom:s.clientfrom,client:s.client,username:e.livinguname};$.ajax({url:r+"/v3/login/api/prelivinglogin?tt="+(new Date).getTime(),data:a,type:"POST",success:function(a){a=JSON.parse(a),"0"===a.errInfo.no?a.data.authtoken&&($(e.getElement("authtoken")).val(a.data.authtoken),0===parseInt(e.faceLoginData.hasRealName,10)?e.identificationData():e.identification(a.data.authtoken)):(e._validateError({msg:a.errInfo.msg}),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_faceLoginError_request",autoStatisticObj:{faceLoginCase:e.data.faceLoginCase||"none"}}))},error:function(){e._validateError({msg:e.lang.networkError})}})},gotoGetPass:function(e,a){var o=this,n=s||{};if(n.username=a.username||"",n.usernamess=e.data.ppEncryptedUsername||"","sessionStorage"in window)try{sessionStorage.setItem("findpwd_username",n.username)}catch(t){console.log(t)}$.ajax({url:r+"/passport/getpass?v="+(new Date).getTime(),data:n,type:"POST",success:function(e){0===+e.errInfo.no?document.location.href=e.data.gotoUrl+"&redireu="+encodeURIComponent(location.href):o.goFindPass()},error:function(){o._validateError({msg:o.lang.networkError})}})},goFindPass:function(){var e=location.protocol+"//"+location.hostname,a="?tpl="+s.tpl+"&client="+s.client+"&clientfrom="+s.clientfrom+"&subpro="+s.subpro+"&adapter="+s.adapter+"&liveAbility="+(s.liveAbility||"")+"&suppcheck="+(s.suppcheck||""),o=e+"/passport/getpass"+a,n=function(e,a){l.client.deviceClass("action_load_external_webview",{placeholderTitle:e,url:"ios"===s.client?encodeURIComponent(a):a})};if("1"===s.enableExternalWeb){var t=o+"&enableExternalWeb=1&adapter=3";n("找回密码",t)}else window.location.replace(o+"&newForgetPwd=no&redireu="+encodeURIComponent(location.href))},identificationData:function(){var e=this;l.client.identificationData(e,"uncertlogin",e.livinguname,function(a){e._validateError({msg:""}),e.upliving(a)},function(a,o,n){-204!==a&&e.setErrorMsg(o,n,n),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+e.module+"_faceLoginError_request"})})},identification:function(e){var a=this;l.client.identification(a,"certlogin",e,function(e){a._validateError({msg:""}),a.upliving(e)},function(e,o,n){-204!==e&&a.setErrorMsg(o,n,n),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginError_request"})})},upliving:function(e){var a=this,o={};o.callbackkey=e,o.tpl=s.tpl,o.clientfrom=s.clientfrom,o.client=s.client,o.token=$(a.getElement("authtoken")).val(),o.username=a.livinguname,o.faceLoginCase=a.exp_case||"none",$.ajax({url:"/v3/login/api/livinglogin",data:o,type:"POST",success:function(e){if(e=JSON.parse(e),0===+e.errInfo.no)if(a._validateError({msg:""}),$("#login").hide(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginSuccess_request",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}}),s.client+""=="ios"||s.client+""=="android"){var o=e.data.xml.replace("<account></account>","<account>"+a.username+"</account>").replace("<password></password>","<password></password>");l.client.success(o,"face",e.data.livinguname)}else document.location=s.u;else $(".biometry-loadingMask").hide(),a._validateError({msg:e.errInfo.msg}),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginError_request",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}})}})},setErrorMsg:function(e,a,o){var n=this,t='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p>'+e+'</p></div><div class="dialog-content-btn">'+(o?'<input type="button" value="继续刷脸" class="pass-button-auto pass-dialog-btnleft blue" id="dialogmsg-faceLogin-btn"><input type="button" value="其他方式登录" class="pass-button-auto pass-dialog-btnright white" id="dialogmsg-changeLogin-btn">':'<a class="dialog-banner-mainbtn" id="dialogmsg-changeLogin-btn">确定</a>')+"</div>",i=l.ui.dialog,s=new i({width:"90%",mask:!0,content:t});$("#dialogmsg-changeLogin-btn").off("click").on("click",function(e){e.preventDefault(),s.remove(),a&&l._getScript("login",function(e){e.render("pageWrapper",n.module),l.removeLast()})}),$("#dialogmsg-faceLogin-btn").off("click").on("click",function(e){e.preventDefault(),s.remove(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+n.module+"_faceLogin_click"}),n.getUserInfo(),$(n.getElement("layer")).css("display","none"),$(n.getElement("layer")).removeClass("layermenu-out"),l.view.loadingHide($(n.getElement("loadingMask")))})},getVerifyCode:function(e,a){var o=this,n=e.data.codeString,t={mask:!0,vcodestr:n,from_module:"login",slide:"1"===e.data.isslide,history:!!o.loginHistory,verifySuccessFn:function(t){"1"===e.data.isslide?(o.getElement("ds").value=window.LG_KD_RJ.ds||"",o.getElement("tk").value=window.LG_KD_RJ.tk||""):(o.getElement("verifycode").value=t,o.getElement("vcodestr").value=n),o.loginVcode.remove(),a&&a(t)}};$(o.getElement("password")).blur();var i=l.ui.vcode;o.loginVcode=new i(t)},_validateError:function(e){var a=this;l.infoAnimate(a.module,e.msg),l.view.setSubmitStyle(a),e.field?(a.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):a.error.field=""},_validateSuccess:function(e){var a=this;e.msg?l.infoAnimate(a.module,e.msg):e.field===a.error.field&&(l.removeInfoAnimate(a.module),a.error.field="")},setValidator:function(){var e=this;e.validateRules={username:{rules:["required"],asyncRule:e.asyncValidate.checkUserName,desc:e.lang.username},code:{rules:"+86"===e.data.code?["required","phoneformatReg"]:["required","numformat"],desc:e.lang.tel},password:{rules:["required"],desc:e.lang.passwordError}},e._validator.addRule("phoneformatReg",function(){var a=l.view._strTrim(e.getElement("code").value);return/^1[3456789]\d{9}$/.test(a)}),e._validator.addMsg("phoneformatReg",e.lang.phoneformatRegError),e._validator.addRule("numformat",function(){var a=l.view._strTrim(e.getElement("code").value);return/^\d+$/.test(a)}),e._validator.addMsg("numformat",e.lang.phoneformatRegError),e._validator.init(e,e.validateRules)},asyncValidate:{},sureAccountType:function(){var e=this,o='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+e.lang.usernameOrMobile+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.mobile+'" class="pass-button-auto pass-dialog-btnleft" id="account-type-phone"><input type="button" value="'+e.lang.accountname+'" class="pass-button-auto pass-dialog-btnright" id="account-type-username"></div>',n=l.ui.dialog;a=new n({width:"90%",mask:!0,content:o}),l.view.tap($("#account-type-phone"),function(){e.getElement("loginmerge").value=0,e.getElement("isphone").value=1,a.remove(),$(e.getElement("formWrapper")).submit()}),l.view.tap($("#account-type-username"),function(){e.getElement("loginmerge").value=0,e.getElement("isphone").value=0,a.remove(),$(e.getElement("formWrapper")).submit()}),$("#account-type-phone,#account-type-username").each(function(){l.view.touch($(this),"pass-button-auto-active")})},sureMobile:function(e){var a=this,n='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p><span class="pass-dialog-orangecolor">'+e.mobileNum+"</span>"+a.lang.sureMobileMsg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+a.lang.mobileSure+'" class="pass-button-auto pass-dialog-btnleft" id="mobile-sure-btn"><input type="button" value="'+a.lang.appealBtn+'" class="pass-button-auto pass-dialog-btnright" id="appeal-btn"></div>',t=l.ui.dialog;o=new t({width:"90%",mask:!0,content:n}),l.view.tap($("#mobile-sure-btn"),function(){o.remove(),e.successFn&&e.successFn()}),l.view.tap($("#appeal-btn"),function(){o.remove(),e.otherFn&&e.otherFn()}),$("#mobile-sure-btn,#appeal-btn").each(function(){l.view.touch($(this),"pass-button-auto-active")})},getSmsVerify:function(e){var a=this;a.globaTemp=e||{};var o=e.data.phone,n=e.data.userid,t=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",i={mobilenum:o,tpl:s.tpl,isuserid:1,username:n,sub_source:"leadsetpwd",clientfrom:"native",dialogVerifyCode:a.getElement("dialogVerifyCode").value,vcodesign:a.getElement("dialogVcodesign").value,vcodestr:a.getElement("dialogVcodestr").value,dv:t};$.post(r+"/wp/api/login/sms?v="+(new Date).getTime(),i,function(e){if(a.getElement("dialogVcodesign").value="",a.getElement("dialogVcodestr").value="",l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_smsLogin_request"}),0===+e.errInfo.no)l.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),e.data.mobilenum=o,e.data.isuserid=1,e.data.checkUserid=n,e.data.sub_source="leadsetpwd",e.data.clientfrom="native",l._getScript("sms_verify",function(a){a.render("pageWrapper",e.data)});else if(50020===+e.errInfo.no||50021===+e.errInfo.no){l.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide();var t=e.data.vcodestr;e.data.verifyCodeData={mask:!0,vcodestr:t,from_module:"login",verifySuccessFn:function(o){a.getElement("dialogVerifyCode").value=o||"",a.getElement("dialogVcodesign").value=e.data.vcodesign,a.getElement("dialogVcodestr").value=t,a.getSmsVerify(a.globaTemp||{}),a.loginVcode.remove()}};var i=l.ui.vcode;a.loginVcode=new i(e.data.verifyCodeData)}else a._validateError({msg:e.errInfo.msg})},"json")},dialogNoPassword:function(e,a){var o=this,n='<div class="page-dialog-content dialogNoPassword"><p class="page-dialog-title">'+(e.data.isconnect?e.data.displayname:e.data.phone)+"</p><p>该帐号尚未设置密码</p>"+(e.data.isconnect?"<p>请先设置密码后登录</p>":"<p>可通过短信验证登录</p>")+'</div><div class="dialog-content-btn tcenter dialogNoPassword"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogNoPasswordMsg-cancel-btn"><input type="button" value="'+(e.data.isconnect?"设置密码":"短信验证码登录")+'" class="pass-button-auto pass-dialog-btnright" id="dialogNoPasswordMsg-smslogin-btn"></div>';o.getElement("password").blur();var t=l.ui.dialog;i=new t({width:"90%",mask:!0,content:n});var s=$(".mod-dialog-body");s.css({top:Math.max((window.windowHeight-s.height())/2,0)+"px"}),$("#dialogNoPasswordMsg-cancel-btn").on("touchend",function(e){e.preventDefault(),i.remove(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+o.module+"_dialogNoPassword_cancel_click"})}),$("#dialogNoPasswordMsg-smslogin-btn").on("touchend",function(n){n.preventDefault(),i.remove(),e.data.ppEncryptedUsername?o.gotoGetPass(e,a):e.data.isconnect?o.goFindPass():o.getSmsVerify(e),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+o.module+"_dialogNoPassword_smslogin_click"})})},disablePwdCut:function(){var e=this,a=$(e.getElement("password"));"text"===a.attr("type")&&(a.on("longTap",function(){a.attr("type","password"),$(e.getElement("pwdToggle")).removeClass("pass-input-pwdToggle-show")}),a.on("copy",function(){return!1}),a.on("cut",function(){return!1}))},eventHandler:function(){var a=this,o={focus:function(o){var n=$(".pass-normandy-item-"+o);$(".pass-normandy-title",n).show(),$(".pass-normandy-label",n).hide();var t=$(".pass-normandy-sep-"+o);"username"===o&&($(a.getElement("facelogin")).css("display","none"),$(".lastlogin").hide(),e(a,"_username_input")),"password"===o&&e(a,"_password_input"),t.addClass("pass-normandy-item-sep-focus")},blur:function(e){var o=$(".pass-normandy-item-"+e),n=$(".pass-text-input",o).val(),t=$(".pass-normandy-sep-"+e);if(n||($(".pass-normandy-title",o).hide(),$(".pass-normandy-label",o).show()),t.removeClass("pass-normandy-item-sep-focus"),"username"===e&&"1"===s.liveAbility){var i=$(a.getElement("username")).val();if(""===i)return;a.faceLoginData.tempUsername===i&&"1"===a.faceLoginData.tempRealname?$(a.getElement("facelogin")).css("display","block"):a.faceLoginData.tempUsername!==i&&s.supportFace&&a.getFaceLoginCheck()}l.view.setSubmitStyle(a,0)},keyup:function(o){if(l.view.setSubmitStyle(a),"username"===o){if($(a.getElement("facelogin")).css("display","none"),a.isInsertUsername)return;e(a,"_username_input"),a.isInsertUsername=!0}if("password"===o){if(a.isInsertPassword)return;e(a,"_password_input"),a.isInsertPassword=!0}}},i={change:{username:function(){var e=a.getElement("username");a.pwdErrorCount=0,a.checkUserName({username:l.view._strTrim(e.value),tpl:s.tpl}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0},code:function(){var e=a.getElement("code");a.validate("code",{success:function(){a.checkUserName({username:l.view._strTrim(e.value),tpl:s.tpl,countrycode:a.data.countrycode})}})}},tap:{pwdToggle:function(e){var o=$(a.getElement("password"));"text"===o.attr("type")?(o.attr("type","password"),$(a.getElement(e)).removeClass("pass-input-pwdToggle-show"),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_hidePwd_click"})):(o.attr("type","text"),$(a.getElement(e)).addClass("pass-input-pwdToggle-show"),a.disablePwdCut(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_showPwd_click"}))}},submit:function(o){var r=a.getElement("submit");o.preventDefault(),r.disabled||a.validateAll({success:function(){function o(){d.logLoginType="sdk_login",d.passAppHash=s.passAppHash||"",d.passAppVersion=s.passAppVersion||"",d.cv="170601",d.faceLoginCase=a.exp_case||"none",d.liveAbility=s.liveAbility||"",d.ds=a.getElement("ds").value,d.tk=a.getElement("tk").value,d.extrajson=s.extrajson||"",a.getElement("ds").value="",a.getElement("tk").value="",d.username===a.data.username&&(d.userid=a.data.userid||"",d.encryptedId=a.data.encryptedId||"",d.encryptedType="living",d.loginmerge=""),a.data.encryptedId&&(d.loginmerge="1");var p=window.apiDomain+"/wp/api/login?v="+(new Date).getTime()+"&cv=170601";$.post(p,d,function(p){function m(){l.removeInfoAnimate(a.module),l.logAll.logBfb({en:"appsapi-"+a.module+"_secLogin_guide"}),l._getScript("login_again",function(e){var a={mobile:p.data.mobile,mobileState:p.data.ppEncryptUserid?"2":"3",ppEncryptUserid:p.data.ppEncryptUserid,mobileHidden:p.data.mobileHidden,idcard:p.data.idcard,countrycode:p.data.countrycode,livinguname:p.data.livinguname,hasRealName:p.data.hasRealName};e.render("pageWrapper",a)})}if(r.disabled=!1,l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_request",urlObj:{errno:p.errInfo.no,loginHistory:a.loginHistory?"history":"noHistory",verify:a.loginVcode?"vcode":"normal"}}),clearTimeout(a.submitTimer5s),clearTimeout(a.submitTimer15s),p.errInfo.no+""=="0"&&p.data.realName+""=="1"&&(p.errInfo.no=400408),0===+p.errInfo.no){if(l.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),"ios"===s.client||"android"===s.client)if("1"!==s.liveAbility&&"1"!==s.suppcheck||"1"!==p.data.hasGuideFaceLogin){var u=p.data.xml.replace("<account></account>","<account>"+d.username+"</account>").replace("<password></password>","<password>"+g+"</password>");l.client.success(u,"password",p.data.livinguname)}else{var f=p.data;f.username=d.username,f.password=g,f.suppcheck=s.suppcheck;try{sessionStorage.setItem("storageData",JSON.stringify(f))}catch(v){console.log(v)}var w="faceAuthsid="+p.data.guideFaceAuthsid+"&clientfrom="+s.clientfrom+"&client="+s.client+"&tpl="+s.tpl+"&adapter="+s.adapter+"&isFinanceTpl="+(p.data.isFinanceTpl||"")+"&openSwitchType="+(p.data.openSwitchType||"")+"&authtokenFaceLogin="+encodeURIComponent(p.data.authtokenFaceLogin||"")+"&guidefrom="+p.data.guidefrom;window.location.replace("https://wappass.baidu.com/v3/login/faceloginguide?"+w)}else document.location=s.u;a.getElement("loginmerge").value=1,a.getElement("isphone").value=0,e(a,"_login_success")}else if(e(a,"_login_fail"),l.getSeverTime(),l.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),400101===+p.errInfo.no||400023===+p.errInfo.no)document.location.href=p.data.verifyUrl+"&newForgetPwd=no&redireu="+encodeURIComponent(window.location.href);else{if(50018===+p.errInfo.no&&a.serverTimeCount<=5)return++a.serverTimeCount,void i[c.type].apply($(c.target),[c]);if(400032===+p.errInfo.no)if("1"===p.data.ppIsUpgradeMobile){var u=p.data.xml.replace("<account></account>","<account>"+d.username+"</account>").replace("<password></password>","<password>"+g+"</password>").replace("<livinguname></livinguname>","<livinguname>"+encodeURIComponent(p.data.livinguname)+"</livinguname>");sessionStorage.setItem("ppIsUpgradeMobileStatus",u),document.location.href=p.data.verifyUrl}else p.data.guide=1,p.data.account=d.username,p.data.password=d.password,l._getScript("bind",function(e){e.render("pageWrapper",p.data)
}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0;else if(400024===+p.errInfo.no)p.data.account=d.username,p.data.password=d.password,l._getScript("forcedBind",function(e){e.render("pageWrapper",p.data)}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0;else if(400408===+p.errInfo.no)p.data.account=d.username,p.data.password=d.password,p.data.realnameNeed=1,p.data.loginProxy=p.data.ppU,p.data.realnameverifyemail?l._getScript("verify",function(e){e.render("pageWrapper",p.data)}):l._getScript("realName",function(e){e.render("pageWrapper",p.data)});else if(400401===+p.errInfo.no)a.sureAccountType();else if(400036===+p.errInfo.no){var h={mobileNum:p.data.phone||"",successFn:function(){var e=new Image;if(e.onerror=e.onload=function(){e=null},e.src="https://passport.baidu.com/v.gif?type=mobileSureNative&clientfrom="+s.clientfrom+"&client="+s.client+"&tpl="+(s.tpl||"")+"&tt="+(new Date).getTime(),"ios"===s.client||"android"===s.client){var a=p.data.xml.replace("<account></account>","<account>"+d.username+"</account>").replace("<password></password>","<password>"+g+"</password>");l.client.success(a,"password",p.data.livinguname)}else document.location=s.u},otherFn:function(){var e=new Image;e.onerror=e.onload=function(){e=null},e.src="https://passport.baidu.com/v.gif?type=appealMobileNative&clientfrom="+s.clientfrom+"&client="+s.client+"&tpl="+(s.tpl||"")+"&tt="+(new Date).getTime(),document.location.href=p.data.appealurl}};a.sureMobile(h)}else if(400413===+p.errInfo.no||400414===+p.errInfo.no){var b=l.view.secondCardJumpParams(p,"password");document.location.href="https://wappass.baidu.com/wp/v3/security/authsecondcard"+b.join("")+"&verifytype=secondcard"}else if($.inArray(p.errInfo.no,["100002","110001","400012"])>-1){var y='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p id="fastdialog-msg">'+p.errInfo.msg+'</p></div><div class="dialog-content-btn"><a class="dialog-banner-mainbtn" id="dialogmsg-ok-btn">确定</a></div>',_=l.ui.dialog;n=new _({width:"90%",mask:!0,content:y}),$("#dialogmsg-ok-btn").live("click",function(){n.remove()})}else if($.inArray(p.errInfo.no,["50028","50029"])>-1)if(t)t.show();else{var y='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>帐号或密码多次输错，请3个小时之后再试或找回密码</p></div><div class="dialog-content-btn tcenter"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogmsg_find-cancel-btn"><input type="button" value="找回密码" class="pass-button-auto pass-dialog-btnright" id="dialogmsg_find-getpass-btn"></div>',E=l.ui.dialog;t=new E({width:"90%",mask:!0,content:y}),$("#dialogmsg_find-cancel-btn").live("touchend",function(e){e.preventDefault(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_pwdError_cancel_click"}),t.hide()}),$("#dialogmsg_find-getpass-btn").live("touchend",function(e){e.preventDefault(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_pwdError_getpass_click"});var o=window.location.href,n=location.protocol+"//"+location.hostname,i="?tpl="+s.tpl+"&client="+s.client+"&clientfrom="+s.clientfrom+"&subpro="+s.subpro,r=n+"/passport/getpass"+i;if(t.hide(),1===+s.enableExternalWeb){var d=r+"&enableExternalWeb=1&adapter=3";"android"===s.client?prompt('{"action":{"name":"action_load_external_webview",params:[找回密码,"'+d+'"]}}'):l.client.deviceClass("action_load_external_webview",{placeholderTitle:"找回密码",url:encodeURIComponent(d)})}else window.location.href=r+"&newForgetPwd=no&redireu="+encodeURIComponent(o)})}else if(72200===+p.errInfo.no){var y='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+p.errInfo.msg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogmsg-cancel-btn"><input type="button" value="去解冻" class="pass-button-auto pass-dialog-btnright" id="dialogmsg-unfreeze-btn"></div>',_=l.ui.dialog;n=new _({width:"90%",mask:!0,content:y}),$("#dialogmsg-cancel-btn").off("touchend").on("touchend",function(e){e.preventDefault(),n.remove()}),$("#dialogmsg-unfreeze-btn").off("touchend").on("touchend",function(e){e.preventDefault();var a=window.location.href,o=location.protocol+"//"+location.hostname,t="?tpl="+s.tpl+"&client="+s.client+"&clientfrom="+s.clientfrom,i=o+"/wp/v3/ucenter/accountunfreezeapply"+t;if(n.remove(),1===+s.enableExternalWeb){var r=i+"&enableExternalWeb=1&adapter=3";"android"===s.client?prompt('{"action":{"name":"action_load_external_webview",params:[帐号解冻,"'+r+'"]}}'):l.client.deviceClass("action_load_external_webview",{placeholderTitle:"帐号解冻",url:encodeURIComponent(r)})}else window.location.href=i+"&newForgetPwd=no&redireu="+encodeURIComponent(a)})}else $.inArray(p.errInfo.no,["400011","400015","400038"])>-1?(a._validateError({msg:p.errInfo.msg}),$("input").blur(),a.getElement("verifycode").value="",a.disablePwdCut(),l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_showPwd_pwdError"}),"1"===p.data.isFinance?m():++a.pwdErrorCount>1&&m()):p.data.codeString&&$.inArray(p.errInfo.no,["340002","500001","500002","50020","50021"])>-1?(a._validateError({msg:p.errInfo.msg}),a.getVerifyCode(p,function(e){r.disabled=!0,$(a.getElement("loadingMask")).show(),$(a.getElement("loading")).show(),d.verifycode=e,d.vcodestr=p.data.codeString,o()}),a.loginHistory?l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_history_verify"}):l.logAll&&l.logAll.logBfb&&l.logAll.logBfb({en:"appsapi-"+a.module+"_noHistory_verify"})):"400041"===p.errInfo.no?document.location.href="https://wappass.baidu.com/wp/v3/security/guideforceappeal?tpl="+s.tpl+"&client="+s.client+"&clientfrom="+s.clientfrom+"&appealcode="+encodeURIComponent(p.data.appealcode)+"&adapter="+s.adapter+"&verifytype=loginmj&redireu="+encodeURIComponent(location.href):a._validateError({msg:p.errInfo.msg})}r.value=a.lang.submitText,("ios"===s.client||"android"===s.client)&&400032===+p.errInfo.no&&(p.errInfo.no=0)},"json"),a.submitTimer5s=setTimeout(function(){r.value=a.lang.submitLoading5s},5e3),a.submitTimer15s=setTimeout(function(){r.disabled=!1,r.value=a.lang.submitText,l.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),a._validateError({msg:a.lang.networkError}),l.getSeverTime()},15e3)}e(a,"_submit"),r.disabled=!0,l.removeInfoAnimate(a.module);var d=$(a.getElement("formWrapper")).formJson();$(a.getElement("loadingMask")).show(),$(a.getElement("loading")).show();try{setTimeout(function(){document.documentElement.scrollTop=window.pageYOffset=document.body.scrollTop=0})}catch(c){console.log(c)}"overseas"===a.stage?(d.username=l.view._strTrim(d.code),d.isphone=1,d.countrycode=a.data.countrycode):d.countrycode="",d.username=l.view._strTrim(d.username),d.verifycode=l.view._strTrim(d.verifycode),d.expSid=a.data.expSid||"";var g=d.password;try{l.serverTime?(d.password=d.password+l.serverTime,g+=l.serverTime,d.servertime=l.serverTime):(l.getSeverTime(),d.password=d.password+l.serverTime,g+=l.serverTime,d.servertime=l.serverTime),window.setMaxDigits(131);var p=new window.RSAKeyPair("10001","",a.rsa);d.password=window.encryptedString(p,d.password),g=window.encryptedString(p,g)}catch(m){console.log(m)}o()}},!0)}};return{entrance:function(e){a=this;var n=e.target.name;if(!n&&e.target.id){var t=e.target.id.match(/login-(.*)$/);t&&(n=t[1])}n&&(o.hasOwnProperty(e.type)&&o[e.type].apply($(e.target),[n,e]),i.hasOwnProperty(e.type)&&("function"==typeof i[e.type]&&i[e.type].apply($(e.target),[e]),i[e.type].hasOwnProperty(n)&&i[e.type][n].apply($(e.target),[n,e])))}}}()}),sessionStorage&&sessionStorage.setItem("sdklogin_mobileAppeal_v2",location.href),d}); window.Pass._define("reg",function(){var e,t,a=window.Pass,n=window.publicData,l=window.apiDomain,o={error:{field:""},data:{code:"+86",countrycode:""},module:"reg",reg_vcode:"",sms_vcode:"",rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return o=$.extend(o,a.validator),o=$.extend(o,{lang:{"zh-cn":{title:"注册",words:"登录",mobilenum:"手机号码",mobilenumPlaceholder:"请输入手机号码",phoneformatRegError:"您输入的手机号格式有误，请重新输入",welcome:"欢迎注册百度帐号",password:"密码",passwordPlaceholder:"6-14位，建议数字、字母、符号组合",submitTextVerify:"获取手机验证码",loading:"请等待...",regDialogVerifyCodeErr:"验证码为空",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",fastLogin:"注册",otherBaidu:"注册百度帐号，即可登录所有百度产品",regTip:"注册成功后，可用其登录百度所有产品,如贴吧、文库、知道、地图等",otherReg:'您还可以通过<a id="#{module}-upstreamReg">手机快速注册</a>的方式完成注册',readAndAccept:"阅读并同意",agreement:"百度用户协议",personal_agreement:"百度隐私权保护声明",and:"及",cancel:"取消",smsLogin:"短信登录",agree:"请勾选“阅读并接受百度用户协议”"},en:{title:"Sign Up",words:"Login",mobilenum:"Phone",mobilenumPlaceholder:"Phone ",phoneformatRegError:"Incorrect phone format",password:"Password",welcome:"Welcome to reg baidu account",passwordPlaceholder:"6-14 Alaphabets, numbers and symbols",submitTextVerify:"Next",loading:"Waiting",regDialogVerifyCodeErr:"Code is empty",networkNoText:"Network error",fastLogin:"Sign Up",otherBaidu:"This Baidu account can be used in all Baidu app.",regTip:"This Baidu account can be used in all Baidu app.",otherReg:'You can use <a id="#{module}-upstreamReg">expedite cellphone registration</a> to register.',readAndAccept:"I agree to",personal_agreement:"Baidu Privacy Statement",agreement:"Baidu Service Agreement",cancel:"Cancel",and:"and",smsLogin:"Login via SMS",agree:'Please check "Read and accept Baidu User Agreement"'}}[n.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},_getIrregularField:function(e){var t=this,a={passportTip:'<p class="f14 m-b10 gray">'+t.lang.regTip+"</p>",regAgreement:'<p class="f12 gray tcenter"><input type="checkbox" name="agree" id="'+t.module+'-agree"/>&nbsp;'+t.lang.readAndAccept+'<a data-role="agreement" class="agree-link">'+t.lang.agreement+"</a>&nbsp;"+t.lang.and+'&nbsp;<a data-role="personal_agreement" class="agree-link">'+t.lang.personal_agreement+"</a></p>",upstreamReg:'<p class="f14 m-t20 gray hide" id="'+t.module+'-upstreamRegWrapper">'+t.lang.otherReg.replace("#{module}",t.module)+"</p>"};return a[e]},_getTemplate:function(){var e=this,t=window.Pass.ui.temp,l=new t({module:e.module}),o='<article class="wrapper" id="'+this.module+'">',i=n,r=[];i.tempid="",i.agreement=1,i.nopsw=n.nopsw||"",i.regVcodesign="",i.regVcodestr="",i.regDialogVerifyCode="",i.ds="",i.tk="",i.smsVcodesign="",i.smsVcodestr="",i.smsDialogVerifyCode="",i.gid=a.guideRandom||"",r.push({field:"mobilenum",title:"手机号",label:!0,labeltext:e.lang.mobilenumPlaceholder,type:"tel",code:"1"!==n.regdomestic&&"1"===n.overseas?!0:!1}),o+='<div id="reg-div" class="flexdiv">',"apps"!==n.adapter&&1!==+n.adapter&&3!==+n.adapter&&(o+=l._getHeaderField({title:e.lang.fastLogin,goBack:!0})),o+=l._getToptitle(e.lang.welcome),o+='<div class="normandy-mod-content" id="'+l.getId("contentWrapper")+'">',o+='<form autocomplete="off" id="'+l.getId("formWrapper")+'" method="POST" class="pass-form-wrapper m-t25 clearfix pass-form-verify-wrapper">';for(var s=0;s<r.length;s++)o+=l._getRegularFieldNormandy(r[s]);return o+=l._getErrorField(),o+=l._getSubmitField({value:e.lang.submitTextVerify}),o+=l._getHiddenField(i),o+="</form>",o+=e._getIrregularField("regAgreement"),o+=e._getIrregularField("upstreamReg"),o+=l._getLoadingField({module:e.module,html:e.lang.loading}),o+="</div>",o+='<div class="register-content" id="'+e.module+'-registerWrapper"><div class="other-baidu-reg" id="other-baidu-reg"><div><span class="other-text-reg">'+e.lang.otherBaidu+'</span></div><div class="img-item"><span class="item-icon item-shoubai"></span><span class="item-icon item-tieba"></span><span class="item-icon item-yun"></span><span class="item-icon item-map"></span><span class="item-icon item-waimai"></span><span class="item-icon item-nuomi"></span><span class="item-icon item-purse"></span></div></div></div>',o+="</div>",o+="</article>"},render:function(e,t,n){var l=this;if(a&&a.traceID&&a.traceID.startFlow&&a.traceID.startFlow("wapReg"),l.initialized)a.switchView(l.module);else{var o=l._getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(o):e.append(o),this.initialized=!0,a.switchView(l.module,n),l.setEvent(),a._getScript("login")}t&&t.code&&($("#"+l.module+" .normandy-text-label-code").html(t.code),l.data.code=t.code,l.data.countrycode=t.countrycode),l._setValidator(),a.view.inputBlur(),sessionStorage.setItem("regfrom","reg"),l.loadMachine()},loadMachine:function(){a&&a.load&&a.load.insertScript&&a.load.insertScript(l+"/static/appsapi/js/mod/mkd.js",function(){})},getPhone:function(){var e=this,t=function(t){$(e.getElement("mobilenum")).val(t?a.view._substrMobile(t):""),t&&($("#"+e.module+" .pass-normandy-item-mobilenum .pass-normandy-title").show(),$("#"+e.module+" .pass-normandy-item-mobilenum .pass-normandy-label").hide(),a.view.setSubmitStyle(e,0))};if("android"===n.client){var l=a.client.deviceClass("get_preset_phone_number");t(l)}else"ios"===n.client&&a.client.deviceClass("get_preset_phone_number",{},function(e,a){a=a||{};var n=a.result;t(n)})},setEvent:function(){var e=this;$("[data-role]",$("#"+e.module)).each(function(){a.view.cutPage($(this))});var t=function(t){e.eventHandler().entrance.apply(e,[t])};$(".pass-text-input",e.getElement("formWrapper")).on({focus:t,blur:t,change:t,keyup:t}),$(".pass-input-clearValue",e.getElement("formWrapper")).each(function(t,n){n=$(this),a.view.clearInputValueBtn(n.prev(),n,e.getElement("submit"))}),e.getPhone(),2!==+n.regtype&&(a.view._mobilenumFormat(e,"mobilenum",function(){var t=$(e.getElement("mobilenum")).val().replace(/\s/g,"").length,l=e.data.code;if(1===+n.nopsw&&("+86"===l&&t>=11||"+86"!==l&&t>=1))a.view.setSubmitStyle(e,0);else{var o=e.getElement("submit").className.indexOf("pass-button-full-disabled");1===+n.nopsw&&-1===o&&$(e.getElement("submit")).addClass("pass-button-full-disabled")}}),a.view._setMaxLength($(e.getElement("mobilenum")),11,2),$(e.getElement("mobilenum")).on("paste",function(){var e=this;setTimeout(function(){e.value=a.view._substrMobile(e.value)},100)})),$(e.getElement("formWrapper")).on("submit",t),$(e.getElement("upstreamReg")).on("tap",function(){var t=$(e.getElement("mobilenum")).val(),n=window.data||{};n._upstreamMobile=a.view._strTrim(t),a._getScript("upstreamReg",function(e){e.render("pageWrapper",n)})}),a.view.fullButton($(e.getElement("submit"))),$("#"+e.module+" .normandy-text-label-code").on("touchend",function(t){t.preventDefault();var n={};n.module=e.module,a._getScript("codelist",function(e){e.render("pageWrapper",n)})}),$("#reg-agree").on("click",function(){$("#reg-agree").attr("checked")&&$(".error_area").html("")})},_setValidator:function(){var e=this;e.validateRules={mobilenum:{rules:"+86"===e.data.code?["required","phoneformatReg"]:["required","numformat"],desc:e.lang.mobilenum},agree:{rules:["agree"],desc:e.lang.agree}},e._validator.addRule("phoneformatReg",function(){var t=a.view._strTrim(e.getElement("mobilenum").value);return/^1[3456789]\d{9}$/.test(t)?!0:!1}),e._validator.addMsg("phoneformatReg",e.lang.phoneformatRegError),e._validator.addRule("numformat",function(){var t=a.view._strTrim(e.getElement("mobilenum").value);return/^\d+$/.test(t)?!0:!1}),e._validator.addMsg("numformat",e.lang.phoneformatRegError),e._validator.addRule("agree",function(){return $("#reg-agree").attr("checked")?!0:!1}),e._validator.addMsg("agree",e.lang.agree),e._validator.init(e,e.validateRules)},_validateError:function(e){var t=this;a.infoAnimate(t.module,e.msg),a.view.setSubmitStyle(t),e.field?(t.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):t.error.field=""},_validateSuccess:function(e){var t=this;e=e||{},e.msg?a.infoAnimate(t.module,e.msg):e.field===t.error.field&&(t.error.field="")},showUpRegDialog:function(){var t=this;if(e)e.show();else{var n='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><div><p>当前该手机号仅支持短信快速注册</p><p>编辑短信6-14位字符（支持数字/字母/符号）作为登录密码，发送至<span class="pass-dialog-orangecolor">10690691036590</span>注册成功后，手机号即为您的登录用户名。</p></div></div><div class="dialog-content-btn tcenter"><input type="button" value="更换手机号" class="pass-button-auto pass-dialog-btnleft" id="upRegDialogCancelBtn"><input type="button" value="去发送" class="pass-button-auto pass-dialog-btnright" id="upRegDialogOkBtn"></div>';e=new a.ui.dialog({width:"90%",mask:!0,content:n}),$("#upRegDialogCancelBtn").live("click",function(){e.hide(),$(t.getElement("mobilenum")).focus().val(""),a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+t.module+"_upreg_cancel"}),t.getElement("regVcodesign").value="",t.getElement("regVcodestr").value=""}),$("#upRegDialogOkBtn").live("click",function(){e.hide(),a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+t.module+"_upreg"}),t.getElement("regVcodesign").value="",t.getElement("regVcodestr").value="",location.href="sms:10690691036590"})}},eventHandler:function(){var e=this,o={focus:function(t){a.view._setFocusStyle(e,t),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-title").show(),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-label").hide()},blur:function(t){var l=$("#"+e.module+" .pass-normandy-item-"+t+" .pass-text-input").val();a.view._setBlurStyle(e,t),l||($("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-title").hide(),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-label").show()),1!==+n.nopsw&&a.view.setSubmitStyle(e,0)},keyup:function(){1!==+n.nopsw&&a.view.setSubmitStyle(e)}},i={change:{},blur:{mobilenum:function(t){var n=e.getElement(t).value;""!==n&&(e.getElement(t).value=a.view._substrMobile(n))}},keyup:{mobilenum:function(){e.isInputMobileNum||(e.isInputMobileNum=!0,a.logAll.logBfb({en:"na-reg-mobile-num-input"}))}},tap:{},submit:function(o){var i=e.getElement("submit");o.preventDefault(),i.disabled||(a.logAll.logBfb({en:"na-reg-smscode-submit-click"}),e.validateAll({success:function(){function o(){i.disabled=!0,r.mobilenum=a.view._strTrim(e.getElement("mobilenum").value),r.vcodesign=e.getElement("regVcodesign").value,r.vcodestr=e.getElement("regVcodestr").value,r.dialogVerifyCode=e.getElement("regDialogVerifyCode").value,r.ds=e.getElement("ds").value,r.tk=e.getElement("tk").value,e.getElement("ds").value="",e.getElement("tk").value="",$.post(l+"/wp/api/reg/sms?v="+(new Date).getTime(),r,function(s){function d(){e.data.username=e.getElement("mobilenum").value,i.disabled=!0,a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_smsLogin_submit"}),$(e.getElement("loadingMask")).show(),$(e.getElement("loading")).show();var t=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",o={username:a.view._strTrim(e.getElement("mobilenum").value),tpl:n.tpl,clientfrom:n.clientfrom,countrycode:e.data.countrycode,gid:a.guideRandom||"",vcodesign:e.getElement("smsVcodesign").value,vcodestr:e.getElement("smsVcodestr").value,dialogVerifyCode:e.getElement("smsDialogVerifyCode").value,dv:t},r=l+"/wp/api/login/sms?v="+(new Date).getTime();$.post(r,o,function(t){if(a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_smsLogin_request"}),e.getElement("smsVcodesign").value="",e.getElement("smsVcodestr").value="",0===+t.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),t.data.username=o.username,t.data.code=e.data.code;var n=e.getElement("submit");n.className.indexOf("pass-button-full-disabled")>-1&&$(n).removeClass("pass-button-full-disabled"),a._getScript("sms_verify",function(e){e.render("pageWrapper",t.data)})}else if(50020===+t.errInfo.no||50021===+t.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide();var l=t.data.vcodestr;t.data.verifyCodeData={mask:!0,vcodestr:l,from_module:"reg-smsLogin",verifySuccessFn:function(a){e.getElement("smsDialogVerifyCode").value=a||"",e.getElement("smsVcodesign").value=t.data.vcodesign,e.getElement("smsVcodestr").value=l,d&&d(),e.sms_vcode.remove()}};var r=a.ui.vcode;e.sms_vcode=new r(t.data.verifyCodeData)}else $(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e._validateError({msg:t.errInfo.msg});i.disabled=!1,clearTimeout(e.submitTimer)},"json")}if(a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_request"}),e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value="",0===+s.errInfo.no)s.data.tempid&&(e.getElement("tempid").value=s.data.tempid),s.data.mobilenum=r.mobilenum,s.data.code=e.data.code,a._getScript("reg_verify",function(t){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),t.render("pageWrapper",s.data)});else if(400003===+s.errInfo.no){if($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),t)t.show();else{var g='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+s.errInfo.msg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.cancel+'"class="pass-button-auto pass-dialog-btnleft"id="reg-cancel-btn"><input type="button"value="'+e.lang.smsLogin+'"class="pass-button-auto pass-dialog-btnright"id="sms_login-ok-btn" data-no="'+s.errInfo.no+'"></div>';t=new a.ui.dialog({width:"90%",mask:!0,content:g})}$("#reg-cancel-btn").off().on("click",function(){t.hide(),e.getElement("regDialogVerifyCode").value="",e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value=""}),$("#sms_login-ok-btn").off().on("click",function(){t.hide(),d()})}else if("50019"===s.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide();var m=s.data.vcodestr;e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value="",s.data.verifyCodeData={mask:!0,vcodestr:m,from_module:"reg",slide:"1"===s.data.isslide?!0:!1,verifySuccessFn:function(t){"1"===s.data.isslide?(e.getElement("ds").value=window.LG_KD_RJ.ds||"",e.getElement("tk").value=window.LG_KD_RJ.tk||""):(e.getElement("regDialogVerifyCode").value=t||"",e.getElement("regVcodesign").value=s.data.vcodesign,e.getElement("regVcodestr").value=m),o&&o(),e.reg_vcode.remove()}};var u=a.ui.vcode;e.reg_vcode=new u(s.data.verifyCodeData)}else"400603"===s.errInfo.no?($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e.showUpRegDialog()):($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),50013===+s.errInfo.no&&$(e.getElement("upstreamRegWrapper")).show(),e._validateError({msg:s.errInfo.msg}));i.disabled=!1,clearTimeout(e.submitTimer)},"json"),e.submitTimer=setTimeout(function(){i.disabled=!1,$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e._validateError({msg:e.lang.networkNoText})},15e3)}e.getElement("submit").focus(),e._validateError({msg:""});var r=$(e.getElement("formWrapper")).formJson();a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_submit"}),$(e.getElement("loadingMask")).show(),$(e.getElement("loading")).show(),r.tpl=n.tpl,r.countrycode=e.data.countrycode,r.tt=(new Date).getTime(),o()}},!0))}};return{entrance:function(e){var t=e.target.name;if(!t&&e.target.id){var a=e.target.id.match(/reg-(.*)$/);a&&(t=a[1])}t&&(o.hasOwnProperty(e.type)&&o[e.type].apply($(e.target),[t,e]),i.hasOwnProperty(e.type)&&("function"==typeof i[e.type]&&i[e.type].apply($(e.target),[e]),i[e.type].hasOwnProperty(t)&&i[e.type][t].apply($(e.target),[t,e])))}}}})}); window.Pass._define("canshare_accounts",function(){var Pass=window.Pass,publicData=window.publicData,apiDomain=window.apiDomain,canshareAccounts={data:{},bduss:[],getnetwork:!1,num:0,submitData:[],netstrvalue:"",newCanshare:"",module:"canshare_accounts",initialized:!1,defaultPortrait:"",rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return Pass.client=Pass.client||{},canshareAccounts=$.extend(canshareAccounts,{lang:{"zh-cn":{title:"快速登录",words:"登录",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",btn:"用其它帐号登录",promap:{BaiduBoxApp:"百度App",Zhidao:"百度知道",netdisk:"百度网盘",Waimai:"百度外卖",BaiduVideo:"百度视频",smartnews:"百度新闻",translate:"百度翻译",mybox:"百度网盘"},baiduOtherApp:"百度其他产品",sms_login:"短信验证登录",fastReg:"快速注册",login:"百度帐号登录",face_login:"刷脸登录",fastLogin:"快速登录",welcome:"欢迎登录百度帐号"},en:{title:"Login",words:"Login",networkNoText:"Network error",btn:"Other Account",promap:{BaiduBoxApp:"Baidu App",Zhidao:"Baidu Know",netdisk:"Baidu Cloud",Waimai:"Baidu Takeaway",BaiduVideo:"Baidu Video",smartnews:"Baidu News",translate:"Baidu Trans",mybox:"Baidu Cloud"},baiduOtherApp:"Other App",sms_login:"SMS Login",fastReg:"Sign Up",login:"Login with account and password",face_login:"Face Login",fastLogin:"Login",welcome:"Welcome to login baidu account"}}[publicData.lang||"zh-cn"],getElement:function(a){return document.getElementById(this.module+"-"+a)},_getIrregularField:function(a){var e=this,t={normalLogin:'<div class="normal-login tcenter"><input type="button" class="normandy-other-login" value="'+e.lang.btn+'"'+("3"===publicData.loginInitType?"":' data-role="'+e.loginType+'"')+' id="'+this.module+'-login" /></div>'};return t[a]},_getTemplate:function(){var a=this,e=Pass.ui.temp,t=new e({module:a.module}),i='<article class="wrapper" id="'+this.module+'">';return"apps"!==publicData.adapter&&1!==+publicData.adapter&&3!==+publicData.adapter&&(i+=t._getHeaderField({title:a.lang.title,nextRole:a.loginType,goBack:!0})),i+=t._getToptitle(a.lang.welcome),i+='<p class="normandy-canshare-title">请选择一个帐号，完成互通登录</p>',i+='<div class="normandy-mod-content mod-content-code '+t.getId("contentWrapper")+'" id="'+t.getId("contentWrapper")+'">',i+='<div class="loading loading-img"></div>',i+=a._getIrregularField("normalLogin"),i+=t._getErrorField(),i+="</div>",i+="</article>"},render:function(a,e,t){var i=this,n=publicData.loginInitType;if(i.loginType="login","2"===publicData.share_version&&(i.newCanshare=!0),i.loginType="1"===n?"sms_login":"2"===n&&"android"===publicData.client?"fastReg":"4"===n&&"1"===publicData.liveAbility&&publicData.supportFace?"face_login":"5"===n?"oneKeyLogin":"login",Pass&&Pass.traceID&&Pass.traceID.startFlow&&Pass.traceID.startFlow("wapLogin"),i.initialized)Pass.switchView(i.module);else{var s=i._getTemplate();"[object string]"===Object.prototype.toString.call(a).toLowerCase()?$("#"+a).append(s):a.append(s),this.initialized=!0,Pass.switchView(i.module,t),i.setEvent(),i.newCanshare?i.getNewCanshareData():i.getData()}},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){Pass.view.cutPage($(this))}),$(a.getElement("login")).on("click",function(){"3"===publicData.loginInitType&&Pass.client.customLogin(),Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+a.module+"_login"}),Pass.client.ischeckNativeMethod("action_share_click_other",function(){Pass.client.deviceClass("action_share_click_other",{version:a.newCanshare?"v2":"v1"},"","","iframe")},function(){})}),Pass.view.touch($(a.getElement("login")),"pass-button-sub-active")},getData:function(){var me=this;if("android"===publicData.client){for(var str=Pass.client.deviceClass("config_canshare_accounts"),realStr=eval("("+str.toLocaleString()+")"),strvalue="",i=0;i<realStr.length;i++)strvalue+=realStr[i].bduss+"|";strvalue=strvalue.substring(0,strvalue.length-1),me.netstrvalue=strvalue,me.draw(realStr)}else"ios"===publicData.client&&Pass.client.deviceClass("getAccountsInfo",{},function(id,params){for(var ret=eval("("+params.result+")"),strvalue="",i=0;i<ret.length;i++)strvalue+=ret[i].bduss+"|";strvalue=strvalue.substring(0,strvalue.length-1),me.netstrvalue=strvalue,me.draw(ret)})},getNewCanshareData:function(){function a(a){for(var t="",i=0;i<a.length;i++)t+=a[i].bduss+"|";t=t.substring(0,t.length-1),e.netstrvalue=t,e.draw(a)}var e=this;Pass.client.deviceClass("config_canshare_version2_accounts",{},function(e,t){var i=t;"ios"===publicData.client&&(i=JSON.parse(t.result)),a(i)})},draw:function(a){function e(e){if(e){var i=e.split(",");for(var n in a){g=a[n].url||a[n].portrait,p=g&&g.split("/"),d=p.length&&p[p.length-1].split(".")[0];for(var s=i.length-1;s>=0;s--)if(d===i[s]){t.loginType="login",$(t.getElement("login")).attr("data-role",t.loginType);break}if("login"===t.loginType)break}}}var t=this,i='<ul class="canshare-account-list clearfix">',n=$(t.getElement("contentWrapper")),s=t.lang.promap;t.num=0,t.submitData=[];var o=window.innerHeight;if(a.length>0&&"[object Array]"===Object.prototype.toString.call(a))for(var l=0,r=a.length;r>l;l++){var c=t.lang.baiduOtherApp;if(t.num>=3||t.num>=2&&500>o)break;if(a[l].displayname+""!=""&&a[l].bduss+""!=""){var u=a[l].app;s[u]&&void 0!==s[u]?c=s[u]:u&&void 0!==u&&(c=u),i+='<li id="purse-li-'+a[l].uid+'" data-role="2" data-pkg="'+a[l].pkg+'"><span class="user-avatar">'+(t.newCanshare?'<img data-src="'+a[l].url+'" class="newCanPortrait">':"<img/>")+'</span><span><span class="canshare-account-displayname">'+a[l].displayname+'</span><span class="canshare-account-tip"><img data-role="purse-icon" id="purse-icon-'+a[l].uid+'"  src="" width="40" height="12"/></span><span class="user-text">通过'+c+'关联</span></span><span class="ajax-loading loading-img"></span><span class="pass-user-userlist"></span></li>',t.bduss.push(a[l].bduss?a[l].bduss:""),t.num++,t.submitData.push(a[l])}}if(0===t.num)"3"!==publicData.loginInitType&&(Pass.client.deviceTitle(t.lang[t.loginType]),Pass._getScript(t.loginType,function(a){publicData.loginInitType="1",a.render("pageWrapper"),Pass.removeLast()}));else if(i+="</ul>",$(".loading",n).remove(),$(".normal-login",n).before(i),t.getImg(),t.newCanshare?this.bindNewCanshare():this._bind(),"face_login"===t.loginType&&"netdisk"===publicData.tpl){var p,d,g;if("android"===publicData.client){var m=Pass.client.deviceClass("getFaceLoginInfo");m=JSON.parse(m),e(JSON.parse(m.queryRes).portrait_sign)}else"ios"===publicData.client&&Pass.client.deviceClass("getFaceLoginInfo",{},function(a,t){t=t||{};var i=t.result;e(i.queryRes.portrait_sign)})}},getCardImg:function(){var a=this;$.ajax({url:apiDomain+"/v3/login/api/getcardinfo/?v="+(new Date).getTime(),type:"POST",data:{data:a.netstrvalue},dataType:"json",error:function(){},success:function(a){if(-1===+a.result)console.log();else for(var e=a.has_card_info.length,t=0;e>t;t++)$("#purse-li-"+a.has_card_info[t].uid).attr("data-role",a.has_card_info[t].hascard)}})},getImg:function(){var a=this;a.getnetwork!==!0&&0!==+a.num&&(a.newCanshare?(a.getnetwork=!0,a.reSetImgNewCanshareSrc()):$.post(apiDomain+"/wp/api/ucenter/portrait/get?v="+(new Date).getTime(),{tpl:publicData.tpl,data:a.bduss},function(e){a.getnetwork=!0,a.reSetImgSrc(e.data.portrait),a.getCardImg()},"json"))},reSetImgNewCanshareSrc:function(){var a=this,e="https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/default_portrait.jpg";a.getImg(),$(".canshare-account-list li").length>0&&$("img.newCanPortrait").each(function(){var a=$(this).attr("data-src")||e,t=a.indexOf("?")>0?"&":"?";$(this).attr("src",a+t+"v="+(new Date).getTime())})},reSetImgSrc:function(a){var e=this;if(e.getImg(),$(".canshare-account-list li").length>0){var t=0;$(".canshare-account-list img").each(function(){var e=a[t]?a[t]:$(this).attr("src"),i=e.indexOf("?")>0?"&":"?";"purse-icon"!==$(this).attr("data-role")&&(t++,$(this).attr("src",e+i+"v="+(new Date).getTime()))})}},bindNewCanshare:function(){var a=this,e=$(".canshare-account-list li");$(".canshare-account-list").off("tap").off("touchstart"),Pass.view.tap($(".canshare-account-list"),a.bindNewCansharecallback),Pass.view.touch(e,"canshare-account-active")},bindNewCansharecallback:function(a){var e=Pass._modulePool.canshare_accounts,t=$(a.target).closest("li"),i=t.index(),n=e.submitData[i];t&&(Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+e.module+"_newcanshare_submit"}),$(".ajax-loading",t).css("display","block"),$(".canshare-account-list").off("tap").off("touchstart"),Pass.client.ischeckNativeMethod("sapi_share_account_click",function(){Pass.client.deviceClassJson("sapi_share_account_click",n)},function(){Pass.infoAnimate(e.module,e.lang.networkNoText),$(".ajax-loading",t).css("display","none"),Pass.view.tap($(".canshare-account-list"),e.bindNewCansharecallback)}))},webViewWillAppear:function(){var a=this;a.initialized===!0&&a.newCanshare&&($(".ajax-loading").css("display","none"),$(".canshare-account-list").off("tap").off("touchstart"),Pass.view.tap($(".canshare-account-list"),a.bindNewCansharecallback))},_bind:function(){var a=this,e=$(".canshare-account-list li"),t=function(e){var i=$(e.target).closest("li"),n=i.index(),s=a.submitData[n];if(i){Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+a.module+"_submit"});var o=i.attr("data-role"),l=0;a.num>1&&(l=1),$(".ajax-loading",i).css("display","block"),$(".canshare-account-list").off("tap").off("touchstart"),Pass.removeInfoAnimate(a.module);var r=s.uid,c=s.uid;if(r)try{window.setMaxDigits(131);var u=new window.RSAKeyPair("10001","",a.rsa);r=window.encryptedString(u,r)}catch(p){console.log(p)}$.post(apiDomain+"/wp/checkuser?v="+(new Date).getTime(),{bduss:s.bduss,uid:r||"",tpl:publicData.tpl||"",client:publicData.client||"",cardflag:o,passAppHash:publicData.passAppHash||"",passAppVersion:publicData.passAppVersion||"",cardNum:l},function(e){if(Pass.logAll&&Pass.logAll.logBfb&&Pass.logAll.logBfb({en:"appsapi-"+a.module+"_request"}),0===+e.errInfo.no)if("android"===publicData.client){var o="<client><page>login</page><data><actiontype>choice_share</actiontype><errno>0</errno><errmsg></errmsg><res>";if(s.uname=e.data.uname,s.displayname=e.data.displayname,e.data.incomplete_user&&(s.incomplete_user=e.data.incomplete_user),$.each(s,function(a,e){o+="<"+a+">"+e+"</"+a+">"}),o+="</res></data></client>",window.sapi_obj&&window.sapi_obj.authorized_response)window.sapi_obj.authorized_response(o);else{var l='{action:{name:"authorized_response",params:["'+o.replace(/"/g,"'")+'"]}}';prompt(l,"authorized_response_str")}}else"ios"===publicData.client&&(e.data.incomplete_user&&e.data.incomplete_user+""!=""&&(s.incomplete_user=e.data.incomplete_user),Pass.client.deviceClass("loginWithExistedAccount",s));else 220003===+e.errInfo.no?(Pass.infoAnimate(e.errInfo.msg),"android"===publicData.client&&window.sapi_obj&&window.sapi_obj.action_remove_share_account?(i.remove(),a.submitData.splice(n,1),window.sapi_obj.action_remove_share_account(c)):"android"===publicData.client?(i.remove(),a.submitData.splice(n,1),prompt('{action:{name:"action_remove_share_account", params:["'+c+'"]}}')):"ios"===publicData.client&&(i.remove(),a.submitData.splice(n,1),Pass.client.deviceClass("action_remove_share_account",{uid:c}))):(Pass.client.deviceTitle("快速登录"),Pass._getScript("authPwd",function(a){a.render("pageWrapper",s)}));$(".ajax-loading",i).css("display","none"),Pass.view.tap($(".canshare-account-list"),t),clearTimeout(a.submitTimer)},"json"),a.submitTimer=setTimeout(function(){$(".ajax-loading",i).css("display","none"),Pass.view.tap($(".canshare-account-list"),t),Pass.infoAnimate(a.module,a.lang.networkNoText)},15e3),e.preventDefault(),Pass.client.ischeckNativeMethod("action_share_v1_account_click",function(){if("ios"===publicData.client)Pass.client.deviceClass("action_share_v1_account_click",{uid:s.uid},function(){},function(){},"iframe");else{prompt('{action: {name: "action_share_v1_account_click", params: ["'+s.uid+'"]}}')}},function(){})}};Pass.view.tap($(".canshare-account-list"),t),Pass.view.touch(e,"canshare-account-active")}})}); window.Pass._define("sms_login",function(){var e,t=window.Pass,o=window.publicData,n=window.apiDomain,l={error:{field:""},module:"sms_login",data:{code:"+86",countrycode:""},smsLoginVcode:"",smsLoginHistory:"",history:!1,getRerocdListDone:!1},i=!1,a=!1,s=function(e,o){t.logAll&&t.logAll.logBfb&&(t.logAll.logBfb({en:"appsapi-"+e.module+o+(void 0===e.history?"":e.history?"_history":"_noHistory")}),t.logAll.logBfb({en:"appsapi-"+e.module+o}))};return l=$.extend(l,t.validator),l=$.extend(l,{lang:{"zh-cn":{title:"短信验证登录",words:"注册",mobilenum:"手机号码",mobilenumError:"手机号",more:"更多",loginText:"帐号名密码登录",otherLoginText:"登录其他帐号",overseasPhoneNumber:"手机号",welcome:"欢迎登录百度帐号",mobilenumPlaceholder:"请输入手机号码",overseasMobilenumPlaceholder:"请输入手机号码",phoneformatSmsError:"您输入的手机号格式有误，请重新输入",submitText:"获取短信验证码",loading:"请等待...",smsDialogVerifyCodeErr:"验证码为空",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",code:"+86",readAndAccept:"我已阅读并同意",agreement:"百度用户协议",cancel:"取消",otherLogin:"其他登录方式",fastLogin:"第三方帐号登录",fastReg:"快速注册",bindTip:"您的手机号尚未注册，点击注册将为您注册百度帐号，您可通过手机号和短信验证码登录",notReg:"该手机号尚未注册，无法登录",reg:"快速注册"},en:{title:"SMS Login",words:"Sign Up",mobilenum:"Phone",mobilenumError:"Phone",more:"More",loginText:"The account password to log in",otherLoginText:"Log on to the other account",overseasPhoneNumber:"Overseas phone number",welcome:"Welcome to login baidu account",mobilenumPlaceholder:"Phone",overseasMobilenumPlaceholder:"Enter mobile phone number",phoneformatSmsError:"Incorrect phone format",submitText:"Next",loading:"Waiting",smsDialogVerifyCodeErr:"Code is empty",networkNoText:"Network error",code:"+86",readAndAccept:"I agree to",agreement:"Baidu Service Agreement",cancel:"Cancel",otherLogin:"Other",fastLogin:"Other Account",fastReg:"Sign Up",bindTip:"Phone number is not registered, Automatically register Baidu account and bind to the cell phone number.",notReg:"Phone number is not registered,so can not login",reg:"Sign Up"}}[o.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var t,o=this;return t={regAgreement:'<p class="f14 gray normandy-agree">'+o.lang.readAndAccept+'<a data-role="agreement" class="agree-link">&nbsp;'+o.lang.agreement+"</a></p>",otherLayer:'<div id="fastlogin-layer-sms_login" class="fastlogin-layer-login"></div>',more:'<div id="'+o.module+'-more" class="left normandy-bottom-more">'+o.lang.more+"</div>",moreHistory:'<div id="'+o.module+'-more-history" class="normandy-bottom-more left">'+o.lang.more+"</div>",usernameLogin:'<div id="'+o.module+'-login" class="left" >'+o.lang.loginText+"</div>",otherLogin:'<div id="'+o.module+'-otherLogin" class="left">'+o.lang.otherLoginText+"</div>",setBottomLink:'<div class="set-bottom-link">登录后去【我的】-【活动中心】参与领取</div>'},t[e]},getTemplate:function(){var e=this,n=window.Pass.ui.temp,l=new n({module:e.module}),i='<article class="wrapper" id="'+this.module+'">',a=o,s={sms:1},r=[];a.agreement=1,a.vcodesign="",a.vcodestr="",a.dialogVerifyCode="",a.gid=t.guideRandom||"",r.push({field:"mobilenum",title:"1"===o.overseas?e.lang.overseasPhoneNumber:e.lang.mobilenumError,placeholder:"1"===o.overseas?e.lang.overseasMobilenumPlaceholder:e.lang.mobilenumPlaceholder,type:"tel",code:"1"===o.overseas}),i+='<div id="sms_login-div" class="flexdiv">',"apps"!==o.adapter&&1!==+o.adapter&&3!==+o.adapter&&(i+=l._getHeaderField({title:e.lang.title,goBack:!0})),i+=l._getToptitle(e.lang.welcome),i+='<div class="normandy-mod-content" id="'+l.getId("contentWrapper")+'">',i+='<form autocomplete="off" id="'+l.getId("formWrapper")+'" method="POST" class="pass-form-wrapper m-t25 clearfix pass-form-verify-wrapper">';for(var m=0;m<r.length;m++)i+=l._getRegularFieldNormandy(r[m]);return i+=l._getErrorField(),i+='<div class="normandy-bottom-link clearfix" id="sms_login-blink">',o.hideExtraEntry+""!="1"&&(i+=e.getIrregularField("usernameLogin"),i+='<div class="left normandy-spilit-line left">|</div>',i+=e.getIrregularField("more")),i+="</div>",i+=l._getSubmitField({value:e.lang.submitText}),i+=l._getHiddenField(a),i+=l._getHiddenField(s),i+="</form>",i+=l._getLoadingField({module:e.module,html:e.lang.loading}),i+="</div>",i+='<div class="register-content" id="'+e.module+'-registerWrapper">'+l._getMoreField({module:e.module,temp:'<a href="javascript:void(0);" id="'+e.module+'-facelogin" class="normandy-more-face">刷脸登录</a><a href="javascript:void(0);" id="loginlink" class="normandy-more-login">帐号名密码登录</a>'})+'<div class="p-b20">'+e.getIrregularField("otherLayer")+e.getIrregularField("regAgreement")+"</div></div>",i+="</div>",i+="</article>"},getRerocdList:function(){var e=this,l=n+"/wp/api/login/history?type=sms&item=&token="+o.token+"&clientfrom="+o.clientfrom+"&tpl="+o.tpl+"&gid="+(t.guideRandom||"")+"&tt="+(new Date).getTime();e.getRerocdListDone||$.ajax({url:l,data:{},type:"GET",dataType:"json",success:function(o){if(o.data.historyInfo.length>0&&e.getRerocdListDone===!1){e.getRerocdListDone=!0,$("#loginlink").css("display","block");var n={me:e,data:o.data.historyInfo,initHandler:function(){var e=this;e.setHandler(o.data.historyInfo[0].username)},domHandler:function(){var o=this;$("#"+e.module).addClass("history_smslogin"),$(".pass-normandy-item-mobilenum, .pass-normandy-sep-mobilenum, #sms_login-blink").hide();var n="";n+='<div style="clear: both;"></div>',n+='<div class="normandy-bottom-link clearfix center-bottom-link" id="sms_login-blink-history">',n+=e.getIrregularField("otherLogin"),n+='<div class="normandy-spilit-line left">|</div>',n+=e.getIrregularField("moreHistory"),n+="</div>",$("#"+e.module+" .pass-form-item-submit").after(n),$(e.getElement("contentWrapper")).on("touchend","#sms_login-otherLogin",function(n){n.preventDefault(),$("#"+e.module+" .normandy-history-con").remove(),o.removeHandler(),$("#sms_login-blink").show(),$("#loginlink").css("display","none"),$("#sms_login-blink-history").hide(),t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_otherLogin_click"}),e.smsLoginHistory="",e.history=!1})},removeHandler:function(){$("#"+e.module).removeClass("history_smslogin"),$(".pass-normandy-item-mobilenum, .pass-normandy-sep-mobilenum").fadeIn(),$(e.getElement("mobilenum")).val(""),$(e.getElement("submit")).addClass("pass-button-full-disabled"),$("#sms_login-blink").show(),$("#loginlink").css("display","none"),$("#sms_login-blink-history").hide()},setHandler:function(o){$(e.getElement("mobilenum")).val(o),t.view.setSubmitStyle(e,0)}},l=t.ui.history;e.smsLoginHistory=new l(n),e.history=!0,t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_loginHistory_show"}),t.view.bottomCal(e)}else t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_loginNoHistory_show"})},error:function(){t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_loginNoHistory_show"})}})},render:function(e,n,l){var a=this;if(n&&n.code&&($("#sms_login .normandy-text-label-code").html(n.code),a.data.code=n.code,a.data.countrycode=n.countrycode),a.error.field="",a.initialized)t.switchView(a.module);else{a.initialized=!0;var s=a.getTemplate();if("[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(s):e.append(s),t.switchView(a.module,l),o.reMobile){i=!0;var r=decodeURIComponent(o.reMobile);$(a.getElement("mobilenum")).val(r),$("#"+a.module+" .pass-normandy-title").show(),t.view.setSubmitStyle(a,0)}else o.direct+""=="1"?t.client.ischeckNativeMethod("sapi_action_directed_login",function(){t.client.deviceClassJson("sapi_action_directed_login",{},function(e,o){o&&o.displayname&&o.encryptedId?(a.data.username=o.displayname||"",a.data.encryptedId=o.encryptedId||"",$(a.getElement("mobilenum")).val(a.data.username),$("#"+a.module+" .pass-normandy-title").show(),t.view.setSubmitStyle(a,0)):a.getPhone()})}):a.getPhone();window.Pass.sms_login=a,a.setEvent(),t.view.bottomCal(a)}if(""!==$.fn.getQueryString("setTitleTxt")&&(document.title=decodeURIComponent($.fn.getQueryString("setTitleTxt"))),t&&t.traceID&&t.traceID.startFlow&&t.traceID.startFlow("wapLogin"),a.setValidator(),n&&n.mobileNum){var m=t.view._substrMobile(n.mobileNum);$(a.getElement("mobilenum")).val(m),$(".pass-normandy-title",$(".pass-normandy-item-mobilenum")).show(),t.view.setSubmitStyle(a,0)}o.smsfastlogin&&t.fastLogin.init(a.module),t.view.inputBlur()},getPhone:function(){function e(e){if($(n.getElement("mobilenum")).val(e?t.view._substrMobile(e):""),e){a=!0;var o=$(".pass-normandy-item-mobilenum");$(".pass-normandy-title",o).show(),$(".pass-normandy-label",o).hide(),t.view.setSubmitStyle(n,0)}else n.getRerocdList()}var n=this;if("android"===o.client){var l=t.client.deviceClass("get_preset_phone_number");e(l)}else"ios"===o.client&&t.client.deviceClass("get_preset_phone_number",{},function(t,o){o=o||{};var n=o.result;e(n)},function(){},"iframe")},setEvent:function(){var e=this;$("[data-role]",$("#"+e.module)).each(function(){t.view.cutPage($(this))});var o=function(t){e.eventHandler.entrance.apply(e,[t])};$(".pass-text-input",e.getElement("formWrapper")).on({focus:o,blur:o,keyup:o}),t.view._setMaxLength($(e.getElement("mobilenum")),11,2),$(".pass-input-clearValue",e.getElement("formWrapper")).each(function(o,n){n=$(this),t.view.clearInputValueBtn(n.prev(),n,e.getElement("submit"))}),$(e.getElement("formWrapper")).on("submit",o),t.view._mobilenumFormat(e,"mobilenum",function(){"+86"===e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=11||"+86"!==e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=1?t.view.setSubmitStyle(e,0):-1===e.getElement("submit").className.indexOf("pass-button-full-disabled")&&$(e.getElement("submit")).addClass("pass-button-full-disabled")}),t.view.layerEvent(e.module),$(e.getElement("login")).on("touchend",function(o){o.preventDefault(),t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_usernameLogin"});var n={},l=$(e.getElement("mobilenum")).val(),i=t.view._strTrim(l),a=/^[1][3,4,5,7,8][0-9]{9}$/;return n.from="sms_login",!e.getRerocdListDone&&a.test(i)&&(n.mobileNum=i),t._getScript("login",function(e){e.render("pageWrapper",n)}),!1}),$("#loginlink").on("touchend",function(o){o.preventDefault(),t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+e.module+"_usernameLogin"}),$(e.getElement("layer")).hasClass("layermenu-out")&&($(e.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(e.getElement("layer")).css("display","none")},300),$(e.getElement("loadingMask")).hide()),t._getScript("login",function(e){e.render("pageWrapper")})}),$(e.getElement("contentWrapper")).on("touchend","#sms_login-more, #sms_login-more-history",function(o){o.preventDefault(),t.view.layerShow(e.module),s(e,"_more_click")}),t.view.fullButton($(e.getElement("submit"))),$("#sms_login .normandy-text-label-code").on("touchend",function(o){o.preventDefault(),$("input").blur();var n={};n.module=e.module,t._getScript("codelist",function(e){e.render("pageWrapper",n)})})},setValidator:function(){var e=this;e.validateRules={mobilenum:{rules:["required","phoneformatSms"],desc:e.lang.mobilenumError}},e._validator.addRule("phoneformatSms",function(){var o=t.view._strTrim(e.getElement("mobilenum").value);return"+86"!==e.data.code?/^\d+$/.test(o):o.indexOf("*")>-1?/\d{3}\*{4}\d{4}/.test(o):/^1[3456789]\d{9}$/.test(o)}),e._validator.addMsg("phoneformatSms",e.lang.phoneformatSmsError),e._validator.init(e,e.validateRules)},_validateError:function(e){var o=this;t.infoAnimate(o.module,e.msg),$(o.getElement("submit")).addClass("pass-button-full-disabled"),e.field?(o.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):o.error.field=""},_validateSuccess:function(e){var o=this;e.msg?t.infoAnimate(o.module,e.msg):e.field===o.error.field&&(t.removeInfoAnimate(o.module),o.error.field="")},showUpRegDialog:function(){var o=this;if(e)e.show();else{var n='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><div><p>您的手机号尚未注册</p><p>当前该手机号仅支持短信快速注册</p><p>编辑短信6-14位字符（支持数字/字母/符号）作为登录密码，发送至<span class="pass-dialog-orangecolor">10690691036590</span>注册成功后，手机号即为您的登录用户名。</p></div></div><div class="dialog-content-btn tcenter"><input type="button" value="更换手机号" class="pass-button-auto pass-dialog-btnleft" id="sms_upRegDialogCancelBtn"><input type="button" value="去发送" class="pass-button-auto pass-dialog-btnright" id="sms_upRegDialogOkBtn"></div>';e=new t.ui.dialog({width:"90%",mask:!0,content:n}),$("#sms_upRegDialogCancelBtn").live("click",function(){e.hide(),$(o.getElement("mobilenum")).focus().val(""),t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+o.module+"_upreg_cancel"}),o.getElement("vcodesign").value="",o.getElement("vcodestr").value=""}),$("#sms_upRegDialogOkBtn").live("click",function(){e.hide(),t.logAll&&t.logAll.logBfb&&t.logAll.logBfb({en:"appsapi-"+o.module+"_upreg"}),o.getElement("vcodesign").value="",o.getElement("vcodestr").value="",location.href="sms:10690691036590"})}},eventHandler:function(){var e=this,o={focus:function(o){var n=$(".pass-normandy-sep-"+o);t.view._setFocusStyle(e,o);var l=$(".pass-normandy-item-"+o);$(".pass-normandy-title",l).show(),$(".pass-normandy-label",l).hide(),$(".pass-normandy-item-sep-blur").length>0?setTimeout(function(){n.addClass("pass-normandy-item-sep-focus")},300):n.addClass("pass-normandy-item-sep-focus"),"mobilenum"===o&&($(".lastlogin").hide(),s(e,"_mobilenum_input"))},blur:function(o){var n=$(".pass-normandy-item-"+o),l=$(".pass-text-input",n).val(),i=$(".pass-normandy-sep-"+o);l||($(".pass-normandy-title",n).hide(),$(".pass-normandy-label",n).show()),i.removeClass("pass-normandy-item-sep-focus").addClass("pass-normandy-item-sep-blur"),setTimeout(function(){i.removeClass("pass-normandy-item-sep-blur")},300),t.view._setBlurStyle(e,o)}},n={blur:{mobilenum:function(o){var n=e.getElement(o).value;""!==n&&(e.getElement(o).value=t.view._substrMobile(n),t.view.setSubmitStyle(e,0))}},keyup:{mobilenum:function(){e.isInsertMobileNum||(s(e,"_mobilenum_input"),e.isInsertMobileNum=!0)}},submit:function(o){var n=e.getElement("submit"),l=$(".pass-normandy-item-mobilenum").is(":hidden");o.preventDefault(),n.disabled||e.validateAll({success:function(){s(e,"_submit");var o={};o.source="smslogin",o.history=e.history,o.sourcedata=$(e.getElement("formWrapper")).formJson(),o.username=t.view._strTrim(o.sourcedata.mobilenum),o.mobilenum=t.view._strTrim(o.sourcedata.mobilenum),o.countrycode=e.data.countrycode,o.code=e.data.code,o.smsLoginHistory=e.smsLoginHistory,o.username===e.data.username&&(o.encryptedId=e.data.encryptedId||""),t._getScript("sms_verify_new",function(e){e.render("pageWrapper",o)})}},!0,!l)}};return{entrance:function(t){e=this;var l=t.target.name;if(!l&&t.target.id){var i=t.target.id.match(/sms_login-(.*)$/);i&&(l=i[1])}l&&(o.hasOwnProperty(t.type)&&o[t.type].apply($(t.target),[l,t]),n.hasOwnProperty(t.type)&&("function"==typeof n[t.type]&&n[t.type].apply($(t.target),[t]),n[t.type].hasOwnProperty(l)&&n[t.type][l].apply($(t.target),[l,t])))}}}()})}); Pass._define("sms_verify_new",function(){var e,o,t,a,n=Pass,s={error:{field:""},module:"sms_verify_new",data:{},smsVerifyVcode:"",voiceLoginVcode:"",isVoiceSmsLogin:0,rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F",smsVerifyCountTime:60},r=function(e,o,t){t=t||{},n.logAll&&n.logAll.logBfb&&n.logAll.logBfb({en:"appsapi-"+e.module+o+"-"+(e.data.history?"history":"noHistory")+"-"+e.data.source||"smslogin",pagesource:e.data.source||"smslogin",loginHistory:e.data.history?"history":"noHistory",errno:t.errno||""})};return s=$.extend(s,Pass.validator),s=$.extend(s,{lang:{"zh-cn":{title:"验证手机号",words:"注册",password:"验证码",passwordPlaceholder:"请输入验证码",submitText:"提交",sendText:"验证码已发送",verifySendInfo:"发送验证码",verifySendInfoVoice:"发送语音验证码",countTime:60,countTimeVoice:20,noVerifycode:"没收到验证码？",reSendText:"重新发送",loading:"正在登录...",vcodeloading:"发送中",loginLinkText:"使用百度帐号登录",smsVerDialogVerifyCodeErr:"验证码为空",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",inputVCode:"请输入图片验证码",vcode:"验证码",cancel:"取消",ok:"确定",sendvoiceSMS:"获取语音验证码",smsVerifyTit:"输入短信验证码",smsVerifyTip:"短信验证码发送至",smsSendText:"S后重新发送",notReg:"该手机号尚未注册，无法登录",bindTip:"您的手机号尚未注册，点击注册将为您注册百度帐号，您可通过手机号和短信验证码登录",reg:"快速注册"},en:{title:"Phone Verify",words:"Sign Up",password:"Code",passwordPlaceholder:"Verification Code",submitText:"Submit",sendText:"Verification code has been sent to your phone",verifySendInfo:"Send Verification.",verifySendInfoVoice:"Send Voice Verification.",countTime:60,countTimeVoice:20,noVerifycode:"No SMS received?",reSendText:"Resend",loading:"Login",vcodeloading:"Sending",loginLinkText:"Login",smsVerDialogVerifyCodeErr:"Code is empty",networkNoText:"Network error",inputVCode:"Code",vcode:"Code",cancel:"Cancel",ok:"OK",sendvoiceSMS:"Send Voice SMS",smsVerifyTit:"Enter the SMS verification code",smsVerifyTip:"SMS verification code sent to",smsSendText:"Second resend",notReg:"Phone number is not registered,so can not login",bindTip:"Phone number is not registered, Automatically register Baidu account and bind to the cell phone number.",reg:"Sign Up"}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var o=this,t={smsVerify:'<div id="'+o.module+'-smsVerify-body"><p class="sms-tipTitle1">'+o.lang.smsVerifyTit+'</p><p class="sms-tipTitle2">'+o.lang.smsVerifyTip+(n.view._substrMobile(o.data.mobilenum)||"")+"</p>"+o.createSmsKeyboard()+"</div>"};return t[e]},createSmsKeyboard:function(){var e=this,o='<div class="sms-smsLayerCon">'+("android"===publicData.client?'<p class="sms-pasteVerify"></p>':"")+'<div class="keyboardInputWrapper'+("android"===publicData.client?" androidPaste":"")+'" id="'+e.module+'-keyboardInputWrapper"><span class="keyboardInputEle"></span><span class="keyboardInputEle"></span><span class="keyboardInputEle"></span><span class="keyboardInputEle"></span><span class="keyboardInputEle"></span><span class="keyboardInputEle"></span><input type="tel" name="smsvc" value="" id="'+e.module+'-keyboardInputHidden" maxlength="6"/></div><p class="sms-pass-layout-error pass-layout-tip-center" id="'+e.module+'-smsVerifyError"></p><p class="sms-pass-layout-sendText"><input type="button" class="pass-layout-input" value="'+e.lang.countTime+e.lang.smsSendText+'" id="'+e.module+'-reSendText" disabled=true /><span class="pass-layout-link-msg pass-layout-noVerifycode" id="'+e.module+'-noVerifycode">'+e.lang.noVerifycode+"</span></p></div>";return o},smsCountDown:function(e){var o=this,t=$(o.getElement("reSendText"));return 0===--e?(t.addClass("pass-layout-link-msg").val(o.lang.reSendText),void t.prop("disabled",!1)):(50===e&&$(o.getElement("noVerifycode")).fadeIn(),o.smsVerifyCountTime=e,t.val(e+o.lang.smsSendText),void(o.timer=setTimeout(function(){o.smsCountDown(e)},1e3)))},getTemplate:function(){var e=this,o=window.Pass.ui.temp,t=new o({module:e.module}),a='<article class="wrapper" id="'+this.module+'">',n=publicData;return n.smsverify=1,n.vcodesign="",n.vcodestr="",n.dialogVerifyCode="",e.titleBar=!1,"apps"!==publicData.adapter&&1!==+publicData.adapter&&3!==+publicData.adapter&&(e.titleBar=!0,a+=t._getHeaderField({title:e.lang.title,nextRole:"reg",goBack:!0})),(e.titleBar&&px2rem(windowHeight)<49.5||!e.titleBar&&px2rem(windowHeight)<45)&&$("#pageWrapper").addClass("keyboar-relative"),a+='<div class="mod-content" id="'+t.getId("contentWrapper")+'">',a+='<form autocomplete="off" id="'+t.getId("formWrapper")+'" method="POST" class="pass-form-wrapper m-t25 clearfix">',a+=t._getHiddenField(n),a+=e.getIrregularField("smsVerify"),a+="</div>",a+='<div class="keyboardWrapper" id="'+e.module+'-keyboardWrapper"></div>',a+="</form>",a+=t._getToastField(),a+=t._getLoadingField({module:e.module,html:e.lang.loading}),a+="</article>"},setErrorMsg:function(e,o){$(e).html(o)},render:function(e,o){var t=this;if(t.data=o||{},t.isAndroidPasteCode=!1,t.error.field="",t.data.countrycode=t.data.code&&"+86"!==t.data.code?"00"+t.data.code.substring(1):"",t.initialized)t.smsVerifyCountTime&&1!==t.smsVerifyCountTime&&t.sourceUserName&&t.sourceUserName===t.data.username&&t.sendMobileOk?(t.clearInput(),Pass.switchView(t.module)):(t.clearInput(),$(".sms-tipTitle2").html("短信验证码发送至"+(n.view._substrMobile(t.data.mobilenum)||"")),$(t.getElement("noVerifycode")).hide(),Pass.switchView(t.module),t.sendMobileOk=!1,t.autoCodetip=!1,t.data.nopostReg===!0?t.smsVerifyFn():t.getphonestatus());else{t.initialized=!0;var a=t.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(a):e.append(a),Pass.switchView(t.module),t.setEvent(),t.data.nopostReg===!0?t.smsVerifyFn():t.getphonestatus()}t.sourceUserName=t.data.username,"smslogin"===t.data.source&&n.client.getBadiuSid&&n.client.getBadiuSid(t.data),$(t.getElement("keyboardInputHidden")).focus()},submitVcodeFn:function(e){var o=this;o.submitVcode(function(){o.autoCodetip=!1},function(e){o.autoCodetip=!1,o.arraySpan.addClass("keyboarderror").removeClass("keyboardCursorBlueLine").html(""),o.arraySpan.eq(0).addClass("keyboardCursor2"),$(o.getElement("keyboardInputHidden")).val(""),o.current=0,o.setErrorMsg($(o.getElement("smsVerifyError")),e&&e.errInfo&&e.errInfo.msg||"系统错误")},{type:e||"android"})},clearInput:function(){var e=this;e.setErrorMsg(e.smsVerifyError,""),$(e.getElement("keyboardInputHidden")).val(""),e.current=0,e.arraySpan.removeClass("keyboardCursorBlueLine keyboarderror keyboardCursor2").html(""),e.arraySpan.eq(0).addClass("keyboardCursor2"),$(".sms-smsLayerCon .sms-pasteVerify").removeClass("sms-pasteVerify-show").html("")},setVcodeVal:function(e,o){var t=this;n&&n.view&&n.view.setVcodeVal&&n.view.setVcodeVal(t,e,function(){"android"===o&&r(t,"-autoinput_android"),t.submitVcodeFn(o)},function(){},o)},sendMobile:function(e,o,t,a){var s=this;a=a||{};var i=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",l={encryptedId:s.data.encryptedId||"",username:s.data.username||"",tpl:publicData.tpl,clientfrom:publicData.clientfrom,countrycode:s.data.countrycode,gid:n.guideRandom||"",dialogVerifyCode:s.getElement("dialogVerifyCode").value,vcodesign:s.getElement("vcodesign").value,vcodestr:s.getElement("vcodestr").value,dv:i,mobileEncryption:s.data.mobileEncryption||""};$.ajax({url:apiDomain+"/wp/api/login/sms",data:l,type:"POST",success:function(i){if(r(s,"-smsSend_request"),a&&"smslogin"===a.source){var l={errno:i.errInfo.no};r(s,"-request",l)}if("0"===i.errInfo.no)e&&e();else if(50020===+i.errInfo.no||50021===+i.errInfo.no){var d=i.data.vcodestr;s.getElement("vcodesign").value="",s.getElement("vcodestr").value="",i.data.verifyCodeData={mask:!0,vcodestr:d,from_module:"sms_verify_new",source:"smslogin",history:!!s.data.smsLoginHistory,verifySuccessFn:function(e){s.getElement("dialogVerifyCode").value=e||"",s.getElement("vcodesign").value=i.data.vcodesign,s.getElement("vcodestr").value=d,t&&t(),s.smsVerifyVcode.remove()},closeFn:function(){var e=s.getElement("reSendText");e&&$(e).addClass("pass-layout-link-msg").prop("disabled",!1),n.switchView("back")}};var c=n.ui.vcode;s.smsVerifyVcode=new c(i.data.verifyCodeData),r(s,"-verify")}else i.errInfo.no+""=="400603"?s.showUpRegDialog():o&&o(i);s.getElement("vcodesign").value="",s.getElement("vcodestr").value=""},error:function(e){console.log(e),o&&o()}})},reSendVcode:function(){var e=this;e.sendMobile(function(){e.sendMobileOk=!0,e.isVoiceSmsLogin=0,$("#sms_verify_new-reSendText").removeClass("pass-layout-link-msg").prop("disabled",!0),clearTimeout(e.submitTimer),e.smsCountDown(e.lang.countTime),e.getElement("vcodesign").value="",e.getElement("vcodestr").value=""},function(o){e.setErrorMsg($(e.getElement("smsVerifyError")),o&&o.errInfo&&o.errInfo.msg||"系统错误"),$("#sms_verify_new-reSendText").addClass("pass-layout-link-msg").prop("disabled",!1);var t=$(e.getElement("keyboardInputWrapper")).find("span.keyboardInputEle");$(t).addClass("keyboarderror").removeClass("keyboardCursorBlueLine keyboardCursor2").html(""),$(t).eq(0).addClass("keyboardCursor2"),$(e.getElement("keyboardInputHidden")).val(""),e.current=0},function(){e.reSendVcode()})},submitVcode:function(o,t,a){function s(){l.encryptedId=i.data.encryptedId||"",l.mobilenum=i.data.username,l.username=i.data.username,l.countrycode=i.data.countrycode,l.loginmerge="",l.tpl=publicData.tpl||"ppdemo",l.passAppHash=publicData.passAppHash||"",l.passAppVersion=publicData.passAppVersion||"",l.smsvc=$(i.getElement("keyboardInputHidden")).val(),l.sms=1,l.isVoiceSmsLogin=i.isVoiceSmsLogin,l.expSid=i.data.expSid||"",l.mobileEncryption=i.data.mobileEncryption||"",l.from=i.data.from||"",i.data.checkUserid&&(l.isuserid=i.data.isuserid,l.username=i.data.checkUserid,l.sub_source="leadsetpwd",l.clientfrom="native"),l.dv=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",l.extrajson=publicData.extrajson||"",$.post(window.apiDomain+"/wp/api/login?v="+(new Date).getTime(),l,function(o){if(n.logAll&&n.logAll.logBfb&&"smslogin"===i.data.source&&n.logAll.logBfb({en:"appsapi-"+i.module+"_request",urlObj:{errno:o.errInfo.no}}),n.logAll&&n.logAll.logBfb&&i.isAndroidPasteCode&&n.logAll.logBfb({en:"appsapi-"+i.module+"_login_success_AndroidPasteCode",errno:o.errInfo.no}),a&&"android"===a.type){var s={errno:o.errInfo.no};r(i,"-autoinput_android-loginrequest",s)}if(0===+o.errInfo.no){if($(i.getElement("loadingMask")).hide(),$(i.getElement("loading")).hide(),"ios"===publicData.client||"android"===publicData.client)if("1"!==publicData.liveAbility&&"1"!==publicData.suppcheck||"1"!==o.data.hasGuideFaceLogin){var d=o.data.xml.replace("{#user.account#}","").replace("{#user.password#}","");d=d.replace("<mobilephone></mobilephone>","<mobilephone>"+l.mobilenum+"</mobilephone>"),n.client.success(d,"sms",o.data.livinguname)}else{var c=o.data;c.username="",c.password="",c.suppcheck=publicData.suppcheck;var d=o.data.xml.replace("<mobilephone></mobilephone>","<mobilephone>"+l.mobilenum+"</mobilephone>");c.xml=d.replace("<loginType></loginType>","<loginType>sms</loginType>");try{sessionStorage.setItem("storageData",JSON.stringify(c))}catch(u){console.log(u)}var p="faceAuthsid="+o.data.guideFaceAuthsid+"&clientfrom="+publicData.clientfrom+"&client="+publicData.client+"&tpl="+publicData.tpl+"&adapter="+publicData.adapter+"&isFinanceTpl="+(o.data.isFinanceTpl||"")+"&openSwitchType="+(o.data.openSwitchType||"")+"&authtokenFaceLogin="+encodeURIComponent(o.data.authtokenFaceLogin||"")+"&guidefrom="+o.data.guidefrom;window.location.replace("https://wappass.baidu.com/v3/login/faceloginguide?"+p)}else document.location=publicData.u;n.logAll&&n.logAll.logBfb&&i.data.smsLoginHistory&&n.logAll.logBfb({en:"appsapi-"+i.module+"_history_login_sms_success",ev:[i.module,"request",o.errInfo.no,o.errInfo.msg],urlObj:{errno:o.errInfo.no}})}else if(400410===+o.errInfo.no||400412===+o.errInfo.no){$(i.getElement("loadingMask")).hide(),$(i.getElement("loading")).hide();var d=o.data.xml.replace("{#user.account#}","").replace("{#user.password#}","");d=d.replace("<mobilephone></mobilephone>","<mobilephone>"+l.mobilenum+"</mobilephone>");var m=o.data||{};m.xml=d,m.from_module=i.module,m.authsid=o.data.authsid||"",m.bdstoken=o.data.bdstoken||"",m.tpl=l.tpl,m.mobilenum=l.mobilenum,m.loginType="sms",m.livinguname=o.data.livinguname,400410===+o.errInfo.no?(m.jump=!0,m.type="set",i.data.checkUserid&&(m.isuserid=1,m.checkUserid=i.data.checkUserid,m.sub_source="leadsetpwd",m.clientfrom="native"),Pass._getScript("setpwd",function(e){e.render("pageWrapper",m)})):(m.jumpset=o.data.jumpset||"",Pass._getScript("setunamepwd",function(e){e.render("pageWrapper",m)}))}else if(72200===+o.errInfo.no){var g='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+o.errInfo.msg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogmsg-smscancel-btn"><input type="button" value="去解冻" class="pass-button-auto pass-dialog-btnright" id="dialogmsg-smsunfreeze-btn"></div>',f=Pass.ui.dialog;e=new f({width:"90%",mask:!0,content:g}),$("#dialogmsg-smscancel-btn").off().on("touchend",function(o){o.preventDefault(),e.remove()}),$("#dialogmsg-smsunfreeze-btn").off().on("touchend",function(o){o.preventDefault();var t=window.location.href,a=location.protocol+"//"+location.hostname,s="?tpl="+publicData.tpl+"&client="+publicData.client+"&clientfrom="+publicData.clientfrom,r=a+"/wp/v3/ucenter/accountunfreezeapply"+s;if(e.remove(),1===+publicData.enableExternalWeb){var i=r+"&enableExternalWeb=1&adapter=3";"android"===publicData.client?prompt('{"action":{"name":"action_load_external_webview",params:[帐号解冻,"'+i+'"]}}'):n.client.deviceClass("action_load_external_webview",{placeholderTitle:"帐号解冻",url:encodeURIComponent(i)})}else window.location.href=r+"&newForgetPwd=no&redireu="+encodeURIComponent(t)})}else if("400413"===o.errInfo.no||"400414"===o.errInfo.no){var v=Pass.view.secondCardJumpParams(o,"sms");document.location.href=400413===+o.errInfo.no?"https://wappass.baidu.com/wp/v3/security/secondcardselect"+v.join(""):"https://wappass.baidu.com/wp/v3/security/authsecondcard"+v.join("")+"&verifytype=secondcard"}else $(i.getElement("loadingMask")).hide(),$(i.getElement("loading")).hide(),t&&t(o);$(i.getElement("loadingMask")).hide(),$(i.getElement("loading")).hide(),clearTimeout(i.submitTimer),0!==+o.errInfo.no&&(n.logAll&&n.logAll.logBfb&&i.data.smsLoginHistory&&n.logAll.logBfb({en:"appsapi-"+i.module+"_history_login_code_error",urlObj:{errno:o.errInfo.no}}),n.logAll&&n.logAll.logBfb&&i.isAndroidPasteCode&&n.logAll.logBfb({en:"appsapi-"+i.module+"_login_code_error_AndroidPasteCode",urlObj:{errno:o.errInfo.no}})),i.isAndroidPasteCode=!1},"json"),i.submitTimer=setTimeout(function(){$(i.getElement("loadingMask")).hide(),$(i.getElement("loading")).hide(),t&&t()},15e3)}var i=this,l=$(i.getElement("formWrapper")).formJson();n.logAll&&n.logAll.logBfb&&"smslogin"===i.data.source&&n.logAll.logBfb({en:"appsapi-"+i.module+"_submit"}),n.logAll&&n.logAll.logBfb&&i.isAndroidPasteCode&&n.logAll.logBfb({en:"appsapi-"+i.module+"_submit_AndroidPasteCode"}),$(i.getElement("loadingMask")).show(),$(i.getElement("loading")).show(),s()},showUpRegDialog:function(){var e=this;if(a)a.show();else{var o='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><div><p>您的手机号尚未注册</p><p>当前该手机号仅支持短信快速注册</p><p>编辑短信6-14位字符（支持数字/字母/符号）作为登录密码，发送至<span class="pass-dialog-orangecolor">10690691036590</span>注册成功后，手机号即为您的登录用户名。</p></div></div><div class="dialog-content-btn tcenter"><input type="button" value="更换手机号" class="pass-button-auto pass-dialog-btnleft" id="sms_upRegDialogCancelBtn"><input type="button" value="去发送" class="pass-button-auto pass-dialog-btnright" id="sms_upRegDialogOkBtn"></div>',t=Pass.ui.dialog;a=new t({width:"90%",mask:!0,content:o,cssconf:{top:"50%","margin-top":"-40%"}}),$(e.getElement("keyboardInputHidden")).blur(),$("#sms_upRegDialogCancelBtn").on("click",function(){a.hide(),r(e,"-upreg_cancel"),e.getElement("vcodesign").value="",e.getElement("vcodestr").value="",n.switchView("back")}),$("#sms_upRegDialogOkBtn").on("click",function(){a.hide(),r(e,"-upreg"),e.getElement("vcodesign").value="",e.getElement("vcodestr").value="",n.switchView("back"),location.href="sms:10690691036590"})}$(e.getElement("keyboardInputHidden")).blur()},androidPasteCode:function(e){n.client.ischeckNativeMethod("action_get_sms_check_code_from_clip",function(){"android"===publicData.client&&n.client.deviceClass("action_get_sms_check_code_from_clip",{},function(o,t){t&&e&&e(t)},function(){},"")},function(){})},setEvent:function(){var e=this;if($("[data-role]",$("#"+e.module)).each(function(){$(this).attr("data-role");n.view.cutPage($(this))}),$("[data-role]",$("#"+e.module)).on("click",function(){r(e,"-back")}),e.setInputEvent(),"android"===publicData.client){var t=$(".keyboardInputWrapper.androidPaste .keyboardInputEle");$("#"+e.module+"-keyboardInputWrapper").longPress(function(){n.client.ischeckNativeMethod("action_get_sms_check_code_from_clip",function(){$(".sms-smsLayerCon .sms-pasteVerify").removeClass("sms-pasteVerify-show").html(""),t.addClass("keyboardLongPress"),e.isAndroidPasteCode=!1,n.client.deviceClass("action_get_sms_check_code_from_clip",{},function(o,a){a&&($(".sms-smsLayerCon .sms-pasteVerify").addClass("sms-pasteVerify-show").html("粘贴验证码<span></span>"),t.addClass("keyboardCursorBlueLine"),n.logAll&&n.logAll.logBfb&&n.logAll.logBfb({en:"appsapi-sms_verify_new_androidPaste_show",ev:[e.module,"show"]}))},function(){},"")},function(){})}),$("#"+e.module+"-keyboardInputWrapper").on("touchend",function(){n.client.ischeckNativeMethod("action_get_sms_check_code_from_clip",function(){t.removeClass("keyboardLongPress")},function(){})}),$(".sms-pasteVerify").on("touchend",function(){e.androidPasteCode(function(o){n.logAll&&n.logAll.logBfb&&n.logAll.logBfb({en:"appsapi-sms_verify_new_androidPaste_click",ev:[e.module,"click"]});var t=$(e.getElement("keyboardInputWrapper")).find("span.keyboardInputEle"),a=o.toString().split("")||[];$(e.getElement("keyboardInputWrapper")).find("span.keyboardInputEle").each(function(e){$("span.keyboardInputEle").eq(e).html(a[e]).removeClass("keyboardCursor2")}),$(e.getElement("keyboardInputHidden")).val(o),$(".sms-smsLayerCon .sms-pasteVerify").text()&&(e.isAndroidPasteCode=!0,e.submitVcode(function(){},function(o){$(t).addClass("keyboarderror").removeClass("keyboardCursorBlueLine").html(""),$(t).eq(0).addClass("keyboardCursor2"),$(e.getElement("keyboardInputHidden")).val(""),e.current=0,e.setErrorMsg($(e.getElement("smsVerifyError")),o&&o.errInfo&&o.errInfo.msg||e.lang.networkNoText)}))},function(){})})}var a=$("#"+this.module);a.on("click","#sms_verify_new-reSendText",function(o){o.preventDefault(),r(e,"-reSendText"),$(this).removeClass("pass-layout-link-msg").prop("disabled",!0),e.setErrorMsg($(e.getElement("smsVerifyError")),""),e.reSendVcode()}),a.on("click","#sms_verify_new-noVerifycode",function(t){if(t.preventDefault(),o)o.show();else{var a="";a=publicData.disable_voice_vcode&&"0"!==publicData.disable_voice_vcode?'<div class="dialog-content-btn tcenter"><input type="button" value="关闭" class="pass-button-auto pass-dialog-btncenter" id="noVerifycodeDialogMsg-smscancel-btn"></div>':'<div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.verifySendInfoVoice+'" class="pass-button-auto pass-dialog-btncenter" id="voiceVerifyBtn"></div><div class="dialog-content-btn tcenter"><input type="button" value="关闭" class="pass-button-auto pass-dialog-btnwhite" id="noVerifycodeDialogMsg-smscancel-btn"></div>';var n='<div class="page-dialog-content"><p class="page-dialog-title">收不到验证码</p><p>1、请确认手机号是否为当前使用的手机号，如需修改请进帐号申诉</p><p>2、检查短信是否被安全软件拦截</p><p>3、运营商网络原因，短信可能延迟到达</p></div>'+a,s=Pass.ui.dialog;o=new s({width:"90%",mask:!0,content:n,cssconf:{top:"50%","margin-top":"-40%"}})}var i="";i=publicData.disable_voice_vcode&&"0"!==publicData.disable_voice_vcode?"noVoice":"voice",r(e,"-noVerifycode-"+i)}),$(document).on("touchend","#noVerifycodeDialogMsg-smscancel-btn",function(e){e.preventDefault(),o.hide()}),$(document).on("touchend","#voiceVerifyBtn",function(t){function a(){var t={encryptedId:e.data.encryptedId||"",username:e.data.checkUserid?e.data.checkUserid:e.data.username,isuserid:e.data.isuserid?e.data.isuserid:"",sub_source:e.data.sub_source?e.data.sub_source:"",tpl:publicData.tpl,clientfrom:publicData.clientfrom,countrycode:e.data.countrycode,is_voice_sms:1,dialogVerifyCode:e.getElement("dialogVerifyCode").value,vcodesign:e.getElement("vcodesign").value,vcodestr:e.getElement("vcodestr").value,dv:s,mobileEncryption:e.data.mobileEncryption||""};$.ajax({url:apiDomain+"/wp/api/login/sms?v="+(new Date).getTime(),data:t,type:"POST",dataType:"json",success:function(t){if(n.logAll&&n.logAll.logBfb&&n.logAll.logBfb({en:"appsapi-button_smsSend_request"}),o.hide(),e.setErrorMsg($(e.getElement("smsVerifyError")),""),"0"===t.errInfo.no)e.isVoiceSmsLogin=1,e.setToastError("验证码将通过电话发送，请稍等"),e.getElement("vcodesign").value="",e.getElement("vcodestr").value="";else if(50020===+t.errInfo.no||50021===+t.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide();var s=t.data.vcodestr;e.getElement("vcodesign").value="",e.getElement("vcodestr").value="",t.data.verifyCodeData={vcodestr:s,from_module:"sms_verify_new",mask:!0,verifySuccessFn:function(o){e.getElement("dialogVerifyCode").value=o||"",e.getElement("vcodesign").value=t.data.vcodesign,e.getElement("vcodestr").value=s,a(),e.voiceLoginVcode.remove()}};var r=n.ui.vcode;e.voiceLoginVcode=new r(t.data.verifyCodeData)}else e.setErrorMsg($(e.getElement("smsVerifyError")),t.errInfo.msg)},error:function(t,a){console.log(a),o.hide(),e.setErrorMsg($(e.getElement("smsVerifyError")),"网络连接失败，请检查您的网络设置并稍后再试。")}}),e.voiceSmsTime()}if(t.preventDefault(),$(this).hasClass("pass-dialog-btncenter-disabled"))return!1;var s=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"";a(),r(e,"-voiceVerifyBtn")})},getphonestatus:function(){var e=this,o=e.data.sourcedata||{};o.username=e.data.username||"",o.countrycode=e.data.countrycode||"",e.data.encryptedId?e.smsVerifyFn():$.ajax({url:apiDomain+"/wp/api/security/getphonestatus?v="+(new Date).getTime(),data:o,type:"POST",dataType:"json",success:function(o){if(r(e,"-phonestatus_request"),"0"===o.errInfo.no)e.smsVerifyFn(),$(".sms-pass-layout-sendText").show();else if("3"===o.errInfo.no)if(1===+publicData.regdomestic&&""!==e.data.countrycode)e.validateError({msg:e.lang.notReg});else{if(r(e,"-reg_dialog_show"),t)t.show();else{var a='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+e.lang.bindTip+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.cancel+'" class="pass-button-auto pass-dialog-btnleft" id="smsreg-cancel-btn"><input type="button" value="'+e.lang.reg+'" class="pass-button-auto pass-dialog-btnright" id="smsreg-ok-btn"></div>',s=Pass.ui.dialog;t=new s({width:"90%",mask:!0,content:a,cssconf:{top:"50%","margin-top":"-35%"}}),$("#smsreg-cancel-btn").on("click",function(){t.hide(),r(e,"-reg_cancel"),n.switchView("back")}),$("#smsreg-ok-btn").on("click",function(){t.hide(),r(e,"-reg"),""!==e.data.countrycode?n._getScript("reg",function(e){e.render("pageWrapper",o.data)}):e.smsVerifyFn()})}$(e.getElement("keyboardInputHidden")).blur()}else $(".sms-pass-layout-sendText").hide(),e.validateError({msg:o.errInfo.msg})},error:function(){e.validateError({msg:e.lang.networkNoText})}})},smsVerifyFn:function(){var e=this;e.sendMobile(function(){n.client.vcodetoclient(e.module),$(".sms-pass-layout-sendText").show(),e.sendMobileOk=!0,$("#sms_verify_new-reSendText").removeClass("pass-layout-link-msg").prop("disabled",!0),$("#voiceVerifyBtn").removeClass("pass-dialog-btncenter-disabled"),clearTimeout(e.submitTimer),clearTimeout(e.timer),clearInterval(e.voiceInterval),e.smsCountDown(e.lang.countTime)},function(o){e.sendMobileOk=!0,clearTimeout(e.timer),e.smsCountDown(e.lang.countTime),e.validateError({msg:o.errInfo.msg})},function(){e.smsVerifyFn()},{source:e.data.source||"smslogin"})},setInputEvent:function(){var e=this,o=$(e.getElement("keyboardInputHidden"));e.smsVerifyError=$(e.getElement("smsVerifyError")),e.arraySpan=$("#"+e.module+"-keyboardInputWrapper span"),e.current=0,e.autoCodetip=!1,$(".keyboardInputWrapper").on("touchend",function(e){e.preventDefault(),e.stopPropagation(),o.focus()}),o.on("keypress",function(e){return 13===e.keyCode?!1:void 0}),o.on("input",function(){var t=o.val();o.val(t.replace(/[^\d]/g,"")),t=o.val(),""!==e.smsVerifyError.val()&&e.setErrorMsg(e.smsVerifyError,""),e.arraySpan.hasClass("keyboarderror")&&e.arraySpan.removeClass("keyboarderror");var a=t.split(""),n=t.length;e.current=t.length,e.arraySpan.removeClass("keyboardCursorBlueLine keyboarderror keyboardCursor2").html(""),0===a.length&&e.arraySpan.eq(e.current).addClass("keyboardCursor2 keyboardCursorBlueLine");for(var s=0;s<a.length;s++){var r=a[s];e.arraySpan.eq(s).html(r).removeClass("keyboardCursor2").addClass("keyboardCursorBlueLine").next(".keyboardInputEle").addClass("keyboardCursor2")}6!==n||e.autoCodetip||(e.autoCodetip=!0,e.setVcodeVal(t,"ios"))}),o.on("blur",function(){e.arraySpan.eq(e.current).removeClass("keyboardCursor2 keyboardCursorBlueLine")}),o.on("focus",function(){e.arraySpan.eq(e.current).addClass("keyboardCursor2 keyboardCursorBlueLine")})},voiceSmsTime:function(){var e=this;$("#voiceVerifyBtn").addClass("pass-dialog-btncenter-disabled"),e.voicetimer=0,e.voiceInterval=setInterval(function(){e.voicetimer++,e.voicetimer>=59&&(clearInterval(e.voiceInterval),e.voiceInterval=null,$("#voiceVerifyBtn").removeClass("pass-dialog-btncenter-disabled"))},1e3)},setToastError:function(e){var o=this;$(o.getElement("toastWrapper")).html(e).show(),setTimeout(function(){$(o.getElement("toastWrapper")).hide()},3e3)},validateError:function(e){var o=this;o.arraySpan.addClass("keyboarderror").removeClass("keyboardCursorBlueLine").html(""),o.arraySpan.eq(0).addClass("keyboardCursor2"),$(o.getElement("keyboardInputHidden")).val(""),o.current=0,o.setErrorMsg($(o.getElement("smsVerifyError")),e&&e.msg||"系统错误")}})}); Pass._define("fastReg",function(){var e=Pass,t={error:{field:""},module:"fastReg",data:{}};return t=$.extend(t,{lang:{"zh-cn":{title:publicData.fastRegText?decodeURIComponent(publicData.fastRegText):"手机一键注册",loading:"正在处理中...",tipPayMsg:"系统将使用您当前手机号发送一条短信验证您的身份，预计花费0.1元，短信费用将由短信运营商收取",tipTitle:"注册成功后",tipList1:"帐号：即为当前手机号，用于登录和找回密码;",tipList2:"密码：系统自动帮您生成密码，随时可以修改;",readAndAccept:"我已阅读并同意",agreement:"百度用户协议"},en:{title:"Sign Up",loading:"Proccessing",tipPayMsg:"System will send a short message to your current cellphone for verification. Expected charge is 0.1 yuan by telecom provider.",tipTitle:"After successful registration",tipList1:"Account: Your current cellphone number, used to login and retrieve password.",tipList2:"Password: System automatically generates password and can be revised at any time.",readAndAccept:"Agree to",agreement:"Baidu Service Agreement"}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},_getIrregularField:function(e){var t=this,i={loading:'<p class="loading loading1">'+t.lang.loading+"</p>",tipPayMsg:'<p class="fast-reg-tippaymsg">'+t.lang.tipPayMsg+"</p>",tipTitle:"<h4>"+t.lang.tipTitle+"</h4>",tipList1:"<li>"+t.lang.tipList1+"</li>",tipList2:"<li>"+t.lang.tipList2+"</li>",regAgreement:'<p class="f14 gray m-t10">'+t.lang.readAndAccept+' <a data-role="agreement">&lt;&lt;'+t.lang.agreement+"&gt;&gt;</a></p>"};return i[e]},_getTemplate:function(){var e=this,t=new Pass.ui.temp({module:e.module}),i='<article class="wrapper" id="'+this.module+'">';return"apps"!=publicData.adapter&&1!=publicData.adapter&&3!=publicData.adapter&&(i+=t._getHeaderField({title:e.lang.title,goBack:!0})),i+='<div class="mod-content" id="'+t.getId("contentWrapper")+'">',i+=e._getIrregularField("loading"),i+='<section class="fast-reg-tip">',i+=e._getIrregularField("tipPayMsg"),i+=e._getIrregularField("tipTitle"),i+="<ul>",i+=e._getIrregularField("tipList1"),i+=e._getIrregularField("tipList2"),i+="</ul></section>",i+=e._getIrregularField("regAgreement"),i+="</article>"},render:function(e){var t=this;if(t.initialized)Pass.switchView(t.module);else{var i=t._getTemplate();"[object string]"==Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(i):e.append(i),this.initialized=!0,Pass.switchView(t.module),this.setEvent()}},setEvent:function(){var t=this;$("[data-role]",$("#"+t.module)).each(function(){e.view.cutPage($(this))})}})}); Pass._define("face_login",function(){var e=Pass,a={module:"face_login",initialized:!1,getUserInfoHasCall:"0"},i=function(a,i){e.logAll.logBfb({en:"appsapi-"+a.module+i,urlObj:{livinguname:a.data.livinguname}})};return a=$.extend(a,{lang:{"zh-cn":{title:"刷脸登录",submitText:"刷脸登录",baiduLogin:"其他方式登录",baiduLoginNotice:"百度帐号登录",smsLoginNotice:"短信快速登录",loading:"认证中",submitLoading:"登录中...",forgot:"遇到问题",reg:"快速注册",welcome:"欢迎使用刷脸登录",networkError:"网络连接失败，请检查您的网络设置并稍后再试。",readAndAccept:"我已阅读并同意",agreement:"百度用户协议",more:"更多"},en:{title:"Face Login",submitText:"Face Login",baiduLogin:"Login",baiduLoginNotice:"Login",smsLoginNotice:"SMS Login",loading:"loading",submitLoading:"Login...",forgot:"Can't Login?",reg:"Sign Up",welcome:"Welcome to use brush face to log in",networkError:"Network error",readAndAccept:"I agree to",agreement:"Baidu Service Agreement",more:"More"}}[window.publicData.lang||"zh-cn"],render:function(e,a,i){var t=this;if(t.initialized)Pass.switchView(t.module);else{t.data=a||{},t.data.faceLoginCan="1";var n=t.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(n):e.append(n),this.initialized=!0,Pass.switchView(t.module,i),window.Pass.face_login=t,t.setEvent(),"android"===publicData.client&&"tb"===publicData.tpl&&t.getCookie(),t.getUidList()}},getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var a=this,i={baidLogin:'<div id="'+a.module+'-baidLogin" class="left">'+a.lang.baiduLogin+"</div>",loading:'<div class="biometry-loadingMask"><p class="biometry-loading">'+a.lang.loading+'</p><div class="biometry-loadingImg"></div></div>',more:'<div id="'+a.module+'-more" class="normandy-bottom-more left">'+a.lang.more+"</div>",regAgreement:'<p class="f14 gray normandy-agree">'+a.lang.readAndAccept+'<a data-role="agreement" class="agree-link">&nbsp;'+a.lang.agreement+"</a></p>"};return i[e]},getTemplate:function(){var e=this,a=Pass.ui.temp,i=new a({module:e.module}),t=publicData;t.authtoken="";var n="";return n+='<article class="wrapper" id="'+this.module+'">',n+='<div id="face_login-div" class="flexdiv">',"apps"!==publicData.adapter&&"1"!==publicData.adapter&&"3"!==publicData.adapter&&(n+=i._getHeaderField({title:"<span >"+e.lang.title+"</span>",goBack:!0,usual:!0})),n+=i._getToptitle(e.lang.welcome),n+='<div class="normandy-mod-content clearfix">',n+=i._getErrorField(),n+=i._getSubmitField({value:e.lang.submitText,disabled:!0}),n+='<div style="clear: both;"></div>',n+=i._getLoadingField({module:e.module,html:e.lang.loading}),n+='<div class="normandy-bottom-link center-bottom-link clearfix">',n+=e.getIrregularField("baidLogin"),n+='<div class="normandy-spilit-line left">|</div>',n+=e.getIrregularField("more"),n+="</div>",n+="</div>",n+=i._getHiddenField(t),n+=i._getMoreField({module:e.module}),n+='<div class="p-b20">'+e.getIrregularField("regAgreement")+"</div>",n+=e.getIrregularField("loading"),n+="</div>",n+="</div>",n+="</article>"},setErrorMsg:function(a,i,t){var n=this;if(n.dialogMessage)n.dialogMessage.show();else{var o='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p>'+a+'</p></div><div class="dialog-content-btn">'+(t?'<input type="button" value="继续刷脸" class="pass-button-auto pass-dialog-btnleft blue" id="dialogmsg-faceLogin-btn"><input type="button" value="其他方式登录" class="pass-button-auto pass-dialog-btnright white" id="dialogmsg-changeLogin-btn">':'<a class="dialog-banner-mainbtn" id="dialogmsg-changeLogin-btn">确定</a>')+"</div>",l=window.Pass.ui.dialog;n.dialogMessage=new l({width:"90%",mask:!0,content:o}),$("body").off("click","#dialogmsg-changeLogin-btn").on("click","#dialogmsg-changeLogin-btn",function(a){a.preventDefault(),n.dialogMessage.remove(),n.dialogMessage=null,(i||t)&&e._getScript("login",function(a){a.render("pageWrapper",n.module),e.removeLast()}),i&&n.noticeNotShowFace()}),$("body").off("click","#dialogmsg-faceLogin-btn").on("click","#dialogmsg-faceLogin-btn",function(e){e.preventDefault(),n.dialogMessage.remove(),n.dialogMessage=null,n.submitFaceLogin()})}},faceLoginShowNotice:function(){var e=this;try{e.data.hideFaceLoginNotice=localStorage.getItem("hideFaceLoginNotice")}catch(a){return}var i="0";return i},noticeNotShowFace:function(a){var i=this;if(a=a||i.data.livinguname){var t={enable:!1,livinguname:"ios"===publicData.client?encodeURIComponent(a):a};e.client.ischeckNativeMethod("action_face_login_switch",function(){e.client.deviceClassJson("action_face_login_switch",t)})}},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){e.view.cutPage($(this))}),$(a.getElement("baidLogin")).on("touchend",function(t){t.preventDefault(),i(a,"_baiduLogin_click");var n={};n.username=a.userName,n.userid=a.data.livinguname;var o="1"===publicData.loginInitType?"sms_login":"login";"1"===a.faceLoginShowNotice()?a.faceLoginNotice(o,function(){e._getScript(o,function(e){e.render("pageWrapper",n)})}):e._getScript(o,function(e){e.render("pageWrapper",n)})}),$(a.getElement("more")).on("touchend",function(e){e.preventDefault(),Pass.view.layerShow(a.module),i(a,"_more_click")}),Pass.view.layerEvent(a.module),$(a.getElement("submit")).on("touchend",function(e){e.preventDefault(),a.submitFaceLogin()})},renderLog:function(){var e=this;i(e,"_render")},faceLoginNotice:function(e,a){var t=this,n='<div class="pass-dialog-content pass-faceLoginNotice-dialog"><div class="pass-faceLoginNotice-icon"></div><p class="pass-faceLoginNotice-title">放弃刷脸登录吗？</p><p class="pass-faceLoginNotice-msg">更安全、便捷、高科技的登录方式</p><ul class="pass-faceLoginNotice-ul"><li id="faceLoginNoticeToFace" class="pass-faceLoginNotice-main">继续刷脸</li><li id="faceLoginNoticeTo'+e+'">'+("login"===e?t.lang.baiduLoginNotice:t.lang.smsLoginNotice)+"</li></ul></div>",o=window.Pass.ui.dialog,l=new o({width:"70%",mask:!0,dialogclass:"faceLoginNotice",content:n,onRender:function(){i(t,"_faceLoginNotice_"+e+"_show");try{localStorage.setItem("hideFaceLoginNotice",1)}catch(a){console.log(a)}}});$("#faceLoginNoticeToFace").on("click",function(e){e.preventDefault(),l.remove(),i(t,"_faceLoginNoticeToFace_click"),""!==$(t.getElement("authtoken")).val()&&(0===parseInt(t.data.hasRealName,10)?t.identificationData():t.identification($(t.getElement("authtoken")).val()))}),$("#faceLoginNoticeTo"+e).on("click",function(n){n.preventDefault(),l.remove(),i(t,"_faceLoginNoticeTo_"+e+"_click"),a&&a()})},getUidList:function(){var a=this;e.client.ischeckNativeMethod("getFaceLoginListInfo",function(){e.client.deviceClassJson("getFaceLoginListInfo",{},function(e,i){var t="";i.list.forEach(function(e){t+=","+e.livinguname}),a.multiple=1,a.listData=i.list,a.livinguanameList=t.substring(1,t.length),"0"===a.getUserInfoHasCall&&a.getUserInfo()})},function(){a.multiple=0,a.getUid()})},historyListShow:function(a){var i=this;a.sort(function(e,a){return a.time-e.time});var t={me:i,data:a,longHandler:function(){return!1},initHandler:function(){var e=this;e.setHandler(a[0].username,a[0])},setHandler:function(e,a){i.userName=e,i.data.livinguname=a.livinguname,i.data.faceLoginCase=a.exp_case,i.data.hasRealName=a.hasRealName,$(i.getElement("authtoken")).val(a.authtoken),i.renderLog()}},n=e.ui.history;i.loginHistory=new n(t)},singleFaceShow:function(){var e='<div class="normandy-history-con"><li class="normandy-head0 historycenter" data-username=""><div class="normandy-img"><img><div class="normandy-history-active"></div></div><span></span></li></div>';$("#face_login .normandy-mod-content").prepend(e)},getUid:function(){var a=this;if(a.singleFaceShow(),"android"===publicData.client){var i=e.client.deviceClass("getFaceLoginInfo");i=JSON.parse(i),a.data.livinguname=i.livinguname,a.data.faceLoginCase=JSON.parse(i.queryRes).exp_case,a.data.hasRealName=JSON.parse(i.queryRes).hasRealName,a.getUserInfo()}else"ios"===publicData.client?e.client.deviceClass("getFaceLoginInfo",{},function(e,i){i=i||{};var t=i.result;a.data.livinguname=t.queryRes.livinguname,a.data.faceLoginCase=t.queryRes.exp_case,a.data.hasRealName=t.queryRes.hasRealName,a.getUserInfo()}):a.getUserInfo()},getCookie:function(){var a=this;e.client.ischeckNativeMethod("sapi_action_mini_di",function(){var i=e.client.deviceClassJson("sapi_action_mini_di",{di_keys:["cuid"]});i&&i.cuid&&(a.data.cuid=i.cuid)})},getUserInfo:function(){var e=this,a={tpl:publicData.tpl,clientfrom:publicData.clientfrom,client:publicData.client,username:e.livinguanameList||e.data.livinguname,is_multiple:e.multiple||""};e.data.cuid&&(a.cuid=e.data.cuid),$.ajax({url:apiDomain+"/v3/login/api/prelivinglogin?tt="+(new Date).getTime(),data:a,type:"POST",dataType:"json",success:function(a){if("1"!==e.getUserInfoHasCall)if(e.getUserInfoHasCall="1",e.multiple){for(var i=a.list,t=e.listData.length,n=[],o=[],l=0;t>l;l++)"0"===i[l].errno&&0===e.listData[l].errno&&n.push($.extend(e.listData[l],a.list[l])),"0"!==i[l].errno&&0===e.listData[l].errno&&o.push($.extend(e.listData[l],a.list[l]));n.length>0?(e.data.faceLoginCan="1",e.historyListShow(n),$(e.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled")):(e.data.faceLoginCan="0",e.setErrorMsg("刷脸系统繁忙，请尝试其他登录方式",1)),o.length>0&&e.noticeNotShowFace(o[0].livinguname)}else a.errInfo&&"0"===a.errInfo.no?($(".normandy-head0 img").attr("src",a.data.portrait+"?tt="+(new Date).getTime()),$(".normandy-head0 span").html(a.data.username),e.userName=a.data.username,a.data.authtoken&&($(e.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),$(e.getElement("authtoken")).val(a.data.authtoken),e.data.faceLoginCan="1"),e.renderLog()):(e.data.faceLoginCan="0",e.setErrorMsg(a.errInfo.msg,1),e.renderLog())},error:function(){e.data.faceLoginCan="0",e.setErrorMsg(e.lang.networkError),e.renderLog()}})},submitFaceLogin:function(){var e=this,a=$(e.getElement("submit"));"disabled"!==a.attr("disabled")&&(a.attr("disabled","disabled").addClass("pass-button-full-disabled"),i(e,"_submitBtn_click"),""!==$(e.getElement("authtoken")).val()&&(0===parseInt(e.data.hasRealName,10)?e.identificationData():e.identification($(e.getElement("authtoken")).val())))},identificationData:function(){var a=this;e.client.identificationData(a,"uncertlogin",a.data.livinguname,function(e){a.upliving(e)},function(i,t,n){$(a.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),-204!==i&&a.setErrorMsg(t,"",n),e.logAll.logBfb({en:"na-facelogin-data-error",errno:i,livinguname:a.data.livinguname})})},identification:function(a){var i=this;e.client.identification(i,"certlogin",a,function(e){i.upliving(e)},function(a,t,n){$(i.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),-204!==a&&i.setErrorMsg(t,"",n),e.logAll.logBfb({en:"na-facelogin-cert-error",errno:a,livinguname:i.data.livinguname})})},upliving:function(a){var t=this,n={};n.callbackkey=a,n.tpl=publicData.tpl,n.clientfrom=publicData.clientfrom,n.client=publicData.client,n.token=$(t.getElement("authtoken")).val(),n.username=t.data.livinguname,n.faceLoginCase=t.data.faceLoginCase||"none",t.data.cuid&&(n.cuid=t.data.cuid),$.ajax({url:"/v3/login/api/livinglogin",data:n,type:"POST",dataType:"json",success:function(a){if("0"===a.errInfo.no)if(i(t,"_success"),$("#face_login").hide(),"ios"===publicData.client||"android"===publicData.client){var n=a.data.xml.replace("<account></account>","<account>"+t.userName+"</account>");e.logAll&&e.logAll.logCallBack&&t.crossAccount?e.logAll.logCallBack({en:"na-face_login-cross-success",page:t.crossAccount.secret_first,errno:t.crossAccount.secret_second},function(){e.client.success(n,"face",a.data.livinguname)}):e.client.success(n,"face",a.data.livinguname)}else e.logAll&&e.logAll.logCallBack&&t.crossAccount?e.logAll.logCallBack({en:"na-face_login-cross-success",page:t.crossAccount.secret_first,errno:t.crossAccount.secret_second},function(){document.location=publicData.u}):document.location=publicData.u;else i(t,"_error"),$(".biometry-loadingMask").hide(),$(t.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),t.setErrorMsg(a.errInfo.msg)}})}})}); window.Pass._define("canshareAi",function(){var e=window.Pass,a=window.publicData,i={module:"canshareAi",initialized:!1,backNeedFn:!0};return i=$.extend(i,{lang:{"zh-cn":{title:"登录",submitText:"授权登录",loading:"加载中",submitLoading:"登录中...",forgot:"遇到问题",reg:"快速注册",networkError:"网络连接失败，请检查您的网络设置并稍后再试。"},en:{title:"Login",submitText:"Login",loading:"loading",submitLoading:"Login...",forgot:"Can't Login?",reg:"Sign Up",networkError:"Network error"}}[a.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var a=this,i={authorize:'<div id="authorize" class="appdiaplay"><div class="canshare-ai-logos clearfix"><div class="canshare-ai-logos-block"><div class="logos-baidu"></div><p>百度帐号</p></div><div class="canshare-ai-logos-block logos-middle2"></div><div class="canshare-ai-logos-block"><img id="appicon-authorize"><p id="appname-authorize"></p></div></div><p class="canshare-ai-tip">授权登录</p></div>',connect:'<div id="connect" class="appdiaplay"><div class="canshare-ai-logos clearfix"><div class="canshare-ai-logos-block"><img id="appicon-connect"><p id="appname-connect"></p></div><div class="canshare-ai-logos-block logos-middle1"></div><div class="canshare-ai-logos-block"><div class="logos-baidu"></div><p>百度帐号</p></div></div><p class="canshare-ai-tip">联合登录</p></div>',regAgreement:'<div class="normandy-agree" id="'+a.module+'-agreelist"></div>'};return i[e]},getTemplate:function(){var i=this,t=e.ui.temp,n=new t({module:i.module}),r=a;r.authtoken="";var o="";return o+='<article class="wrapper" id="'+this.module+'">',"apps"!==a.adapter&&"1"!==a.adapter&&"3"!==a.adapter&&(o+=n._getHeaderField({title:"<span >"+i.lang.title+"</span>",goBack:!0,usual:!0})),o+='<div id="canshareAi-div" class="canshare-ai-block">',o+='<div class="canshare-ai-top">',o+='<div class="canshare-app">',o+=i.getIrregularField("authorize"),o+=i.getIrregularField("connect"),o+="</div>",o+='<p class="canshare-ai-tipdown">百度帐号能够很便捷的使用百度、百度地图、百度钱包、百度云等服务，体验到更全面到位的贴心服务，便于用户操作。</p>',o+='<p class="canshare-ai-tipconfig"></p>',o+="</div>",o+='<p class="canshare-clienttip">允许<span id="appName"></span>客户端进行以下操作</p><ul class="canshare-ul"><li>允许阅读您的帐号</li><li>允许阅读您的用户名等基本信息</li></ul>',o+='<div class="normandy-mod-content clearfix">',o+=n._getErrorField(),o+=n._getSubmitField({value:"登录",actived:!0}),o+=n._getLoadingField({module:i.module,html:i.lang.loading}),o+="</div>",o+=n._getHiddenField(r),o+=i.getIrregularField("regAgreement"),o+="</div>",o+="</article>"},render:function(a,i,t){var n=this;if(n.data=i||{},n.initialized)e.switchView(n.module);else{var r="https://wappass.baidu.com",o="appsapi";e.load.loadCssFileW(r+"/static/"+o+"/css/sapi_theme/style.css");var s=n.getTemplate();"[object string]"===Object.prototype.toString.call(a).toLowerCase()?$("#"+a).append(s):a.append(s),window.Pass.canshareAi=n,this.initialized=!0,e.switchView(n.module,t),n.setEvent()}},backFn:function(){$("html").addClass("rooter")},setEvent:function(){var a=this;$("html").addClass("rooter"),$("[data-role]",$("#"+a.module)).each(function(){e.view.cutPage($(this))}),$("body").on("tap",".checkbox",function(){$(this).toggleClass("active")}),a.getData()},getData:function(){var i=this;if("android"===a.client){var t=e.client.deviceClass("action_join_login");i.appshow(JSON.parse(t))}else"ios"===a.client&&e.client.deviceClass("action_join_login",{},function(e,a){i.appshow(a)})},appshow:function(i){var t=this;a.canshareAi=!0;var n="true"===i.hasThirdAccount?"authorize":"connect";if($("#appicon-"+n).attr("src",i.icon),$("#appname-"+n).html(i.name),$("#"+n).show(),$("#appName").html(i.name),t.getElement("submit").value="authorize"===n?"授权登录":"百度帐号登录",i.agreement)for(var r=i.agreement,o=0;o<r.length;o++)$(t.getElement("agreelist")).append('<div class="clearfix"><div class="checkbox active"></div><p class="appagree"><a class="config-agree" data-href="'+r[o].url+'">'+r[o].name+"</a></p></div>");$(t.getElement("submit")).on("touchend",function(n){n.preventDefault();for(var r=$(".checkbox"),o=0;o<r.length;o++){if(!$(r[o]).hasClass("active"))return void t.showError("请勾选协议");t.clearError()}$("html").removeClass("rooter"),"true"===i.supportFaceLogin?e._getScript("face_login",function(e){e.render("pageWrapper")}):"true"===i.openShareLogin?(a.share_version="2",e._getScript("canshare_accounts",function(e){e.render("pageWrapper")})):e._getScript("login",function(e){e.render("pageWrapper")})}),$(".config-agree").on("tap",function(){var i=$(this).html(),t=$(this).attr("data-href");"android"===a.client?prompt('{"action":{"name":"action_load_external_webview",params:['+i+',"'+t+'"]}}'):e.client.deviceClass("action_load_external_webview",{placeholderTitle:i,url:encodeURIComponent(t)})})},showError:function(e){var a=this;$(a.getElement("errorWrapper")).html(e)},clearError:function(){var e=this;$(e.getElement("errorWrapper")).html("")}})}); window.Pass._define("oneKeyLogin",function(){var e,n,o=window.Pass,t=window.publicData,i={module:"oneKeyLogin",initialized:!1,backNeedFn:!0},a=function(e,n){o.logAll.logBfb({en:"na-"+e.module+n})};return i=$.extend(i,{lang:{"zh-cn":{title:"百度帐号登录",submitText:"本机号码一键登录",loading:"加载中",submitLoading:"登录中...",welcome:"欢迎使用一键登录",baiduLogin:"登录其他帐号",more:"更多",agreeIntro:"中国移动为您提供本机号码一键登录服务",readAndAccept:"登录即代表同意",agreement:"百度用户协议",connectAgree:"中国移动认证服务协议",networkError:"网络连接失败，请检查您的网络设置并稍后再试。",tokenError:"获取信息失败，请尝试其他登录方式",bindTip:"您的手机号尚未注册，点击注册将为您注册百度帐号，您可通过手机号和短信验证码登录",reg:"快速注册",cancel:"取消",notMobileTip:"手机号获取失败，您可切换其他方式登录",gotoLogin:"百度帐号登录"},en:{title:"Login",submitText:"Login",loading:"loading",submitLoading:"Login...",networkError:"Network error",welcome:"Welcome to login baidu account",baiduLogin:"other account",more:"more",agreeIntro:"China Mobile provides you with a local key number login service.",readAndAccept:"Login and accept",agreement:"Baidu user agreement",connectAgree:"China Mobile authentication service protocol",tokenError:"system busy, please try other login type.",bindTip:"Phone number is not registered, Automatically register Baidu account and bind to the cell phone number.",reg:"Sign up",cancel:"Cancle",notMobileTip:"system busy, please try other login type.",gotoLogin:"Baidu login"}}[t.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var n=this,o={otherAccount:'<div class="normandy-bottom-link center-bottom-link clearfix"><div id="'+n.module+'-baidLogin" class="left">'+n.lang.baiduLogin+'</div><div class="normandy-spilit-line left">|</div><div id="'+n.module+'-more" class="normandy-bottom-more left">'+n.lang.more+"</div></div>",regAgreement:'<p class="normandy-agree">'+n.lang.agreeIntro+'</p><p class="normandy-agree-bottom">'+n.lang.readAndAccept+'<a id="connectAgree" class="agree-link">&nbsp;'+n.lang.connectAgree+'</a>、<a data-role="agreement" class="agree-link">&nbsp;'+n.lang.agreement+"</a></p>"};return o[e]},getTemplate:function(){var e=this,n=o.ui.temp,i=new n({module:e.module}),a=t;a.authtoken="";var l="";l+='<article class="wrapper" id="'+this.module+'">',"apps"!==t.adapter&&"1"!==t.adapter&&"3"!==t.adapter&&(l+=i._getHeaderField({title:"<span >"+e.lang.title+"</span>",goBack:!0,usual:!0})),l+='<div id="oneKeyLogin-div" class="onekey-login-block">',l+=i._getToptitle(e.lang.welcome),l+="</div>",l+='<div id="'+e.module+'-img-block" class="normandy-mod-content p-b40 clearfix">';var r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAVFBMVEUAAADw9P7w9f70///w9f7w9v3w9v3x9v/x9v/1+f/w9f7w9P7v9f3w9P/x9f/z9//w9f7x9f/w9f/v9P1MWnPj6fTP1eGHkqWzu8p7h5tfbIOXobPGJ0qzAAAAE3RSTlMA7ccPt56LZ1YY39SUdUo+q38yoUOF/QAAAqlJREFUeNrE11uOozAUhOE6vmIuIUlNd6v3v9FRNA9+IGLAAepbwS+7IAGNypzTPbihN9L6wYV7ynPBZUoXnfEtc7E7v8R348D/GMbO4zxd4EahwynmaNzB4oyj5Z679fnQJUzGJjb5oxIexmb2OCQjGz9iGZ96On7MPfEJP/IQo0ezm/EgdkOjxAMltCiOh3JFeRXtVzLxBFPzHGTDiDxJxGaBpwnYyPFETn4OL0Gwh6ZdJJ4uCd4Pu98XN17ihhXFeAkrgodzwQlHWSXtINZn4Y0XMo93Rq75+tnti2tGvPHkesSf3dYj+MSSuzrCYSHz6gjm5Sovj1hu88FNEb8/m/xuiuBjz0HUiG9u8l0jdhzFxMsjlj+npomwxaMhiGBG1asi+towUxXBuf631UXEOktZRJ1mR10EO/wTZBH1W8hTGUFfb0MTUe9j1EaMeBm0EcOroVAbwVInoYioo4jqiAjAqSMcAFNHGFCojmDBrI+YkfURGUkfkXDXR9wR9BEBTh/hMOgjBvT6iB6mjzBQH8G/zdy7DsIwDIVhogwgloqhIW3f/z0RFVsYsAH185qhR73Fsf9jQwTxOIgXk/hEiZ8V8dsmNjBiKyeSGiK9IxJdIuU3Dj/EMZA4EBOlAaJIYpSLiMJZDYjo7aPoARE1VEwNxxwBSy5HiricXlGOE1GCrYZIJFoN03EipkT7aYy1z21Ji7hmGnGjhv1KS1bEOdGSHGPbF1tSRMk0Z8fo7xdTzdlakiLu39yJUlMN+zHac23Nibj9DF3Y+rZm0QUR4jBwFgPsIRAnA/YisDcDADRQSAMKJfBYAxQ2kGkDHjcwesNQYFgrDJOJYbcxjEeGBcswoxm2PMSgaFg1DdMqYt9FjMyGpRsxtys2f2TggTL6ARmC8Z9xIA/AjvwEG4x4FwAAAABJRU5ErkJggg==";return l+='<div class="normandy-history-con onekey-img"><li class="normandy-head0 historycenter" data-username=""><div class="normandy-img"><img src="'+r+'"><div class="normandy-history-active"></div></div><span></span></li></div>',l+=i._getErrorField(),l+=i._getSubmitField({value:e.lang.submitText,actived:!0}),l+=e.getIrregularField("otherAccount"),l+=i._getLoadingField({module:e.module,html:e.lang.loading}),l+="</div>",l+=i._getHiddenField(a),l+=i._getMoreField({module:e.module}),l+='<div class="onekey-login-agree">',l+=e.getIrregularField("regAgreement"),l+="</div>",l+="</div>",l+="</article>"},render:function(e,n,t){var i=this;if(i.data=n||{},i.initialized)o.switchView(i.module);else{var a=i.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(a):e.append(a),window.Pass.oneKeyLogin=i,this.initialized=!0,o.switchView(i.module,t),i.setEvent()}},setEvent:function(){var e=this;e.getData(),$("[data-role]",$("#"+e.module)).each(function(){o.view.cutPage($(this))}),$(e.getElement("more")).on("touchend",function(n){n.preventDefault(),o.view.layerShow(e.module),a(e,"-more-click")}),o.view.layerEvent(e.module),$(e.getElement("submit")).on("touchend",function(n){n.preventDefault(),$(e.getElement("loadingMask")).show(),$(e.getElement("loading")).show(),a(e,"-login-submit"),e.getToken()}),$(e.getElement("baidLogin")).on("touchend",function(n){n.preventDefault(),a(e,"-baiduLogin-click");var i="1"===t.loginInitType?"sms_login":"login";o._getScript(i,function(e){e.render("pageWrapper",{})})});var n=function(e,n){o.client.deviceClass("action_load_external_webview",{placeholderTitle:e,url:"ios"===t.client?encodeURIComponent(n):n})};$("#connectAgree").on("touchend",function(o){o.preventDefault(),n(e.lang.connectAgree,"https://wap.cmpassport.com/resources/html/contract.html")})},getData:function(){var e=this;o.client.ischeckNativeMethod("sapi_action_pre_get_phone",function(){o.client.deviceClassJson("sapi_action_pre_get_phone",{},function(n,o){e.data.mobile=o.phone,$(".onekey-img span").html(e.data.mobile)},function(){o._getScript("login",function(e){e.render("pageWrapper",e)})})},function(){o._getScript("login",function(e){e.render("pageWrapper",e)})})},getToken:function(){var e=this;o.client.ischeckNativeMethod("sapi_action_china_mobile_oauth",function(){o.client.deviceClassJson("sapi_action_china_mobile_oauth",{},function(n,o){e.data.token=o.token,e.onekeyLogin()},function(){e.showError(e.lang.tokenError),$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide()})},function(){e.showError(e.lang.tokenError),$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide()})},phoneRegTip:function(e){var t=this;if(n)n.show();else{var i='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+t.lang.bindTip+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+t.lang.cancel+'" class="pass-button-auto pass-dialog-btnleft" id="smsreg-cancel-btn"><input type="button" value="'+t.lang.reg+'" class="pass-button-auto pass-dialog-btnright" id="smsreg-ok-btn"></div>',l=o.ui.dialog;n=new l({width:"90%",mask:!0,content:i,cssconf:{top:"50%","margin-top":"-35%"}}),$("#smsreg-cancel-btn").on("click",function(){n.hide(),a(t,"-reg-cancel")}),$("#smsreg-ok-btn").on("click",function(){n.hide(),a(t,"-toreg"),e&&e()})}},notMobileTip:function(){var n=this;if(e)e.show();else{var t='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+n.lang.notMobileTip+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+n.lang.cancel+'" class="pass-button-auto pass-dialog-btnleft" id="notmobile-cancle-btn"><input type="button" value="'+n.lang.gotoLogin+'" class="pass-button-auto pass-dialog-btnright" id="notmobile-ok-btn"></div>',i=o.ui.dialog;e=new i({width:"90%",mask:!0,content:t,cssconf:{top:"50%","margin-top":"-35%"}}),$("#notmobile-ok-btn").on("click",function(){e.hide(),a(n,"-notmobile-login"),o._getScript("login",function(e){e.render("pageWrapper",{})})}),$("#notmobile-cancle-btn").on("click",function(){e.hide(),a(n,"-notmobile-cancle")})}},onekeyLogin:function(){var e=this;$.ajax({url:apiDomain+"/v3/login/onekeylogin?tt="+(new Date).getTime(),data:{token:e.data.token,client:t.client,clientfrom:t.clientfrom,tpl:t.tpl},type:"POST",dataType:"json",success:function(n){if($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),"0"===n.errInfo.no)a(e,"-login-success"),o.client.success(n.data.xml,"oneKeyLogin",n.data.livinguname);else if("401001"===n.errInfo.no)e.phoneRegTip(function(){var t={};t.source="onekeylogin",t.username=n.data.mobile,t.mobilenum=e.data.mobile,t.nopostReg=!0,t.mobileEncryption=1,t.from=e.module,o._getScript("sms_verify_new",function(e){e.render("pageWrapper",t)})});else if("400023"===n.errInfo.no||"400031"===n.errInfo.no)document.location.href=n.data.verifyUrl+"&sourcePage=onekey&redireu="+encodeURIComponent(window.location.href)+"&adapter="+t.adapter;else if("400413"===n.errInfo.no||"400414"===n.errInfo.no){var i=o.view.secondCardJumpParams(n,"sms");document.location.href="400413"===n.errInfo.no?"https://wappass.baidu.com/wp/v3/security/secondcardselect"+i.join(""):"https://wappass.baidu.com/wp/v3/security/authsecondcard"+i.join("")+"&verifytype=secondcard"}else"930000"===n.errInfo.no?e.notMobileTip():e.showError(n.errInfo.msg);o.logAll.logBfb({en:"appsapi-onekey-request",errno:n.errInfo.no})},error:function(){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide()}})},showError:function(e){var n=this;$(n.getElement("errorWrapper")).html(e)},clearError:function(){var e=this;$(e.getElement("errorWrapper")).html("")}})}); </script></body>
</html>
